Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!

Reply
 
Thread Tools
  #51    
Old October 23rd, 2013 (3:30 AM).
chrunch chrunch is offline
  • Gold Tier
 
Join Date: Oct 2009
Gender: Male
Posts: 1,349
Quote:
Originally Posted by thjenvuongxh View Post
(FIRE RED)
Today, I created a new asm routine, capable of reading one byte in the var 0x8009.

First, go at 0x8150400 and paste of thus:

A1 46 70 BC 01 BC 00 47 00 49 08 47 XX XX XX 08
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

(Use xx xx xx 08 +1 for the byte of the routine. Example: 0x800000 is 0x8000001 and 00 00 80 08 is 01 00 80 08)

At 0x8xxxxxx, paste it:
00 B5 00 06 00 0E 04 28 06 48 00 88 00 28 03 D0
05 49 06 49 06 49 07 49 07 49 08 49 08 49 09 49
09 49 00 00 CA 70 03 02 18 D8 80 00 01 49 40 18
00 68 87 46 XX XX XX 08

This new 0x8XXXXXX is your other free space that you paste it:
34 04 15 08 38 04 15 08 3C 04 15 08 40 04 15 08 44 04 15 08
BUT INSERT MORE BYTES WITH THIS, WHERE ITS COMPOSITION IS
THE TABLE WITH THIS:
10 20 00 E0 40 20 40 00 01 49 40 18 02 BC 08 47 EC 1D 47 08

Use a 10 20 E0 for the number of this table at:0x471DEC

But you can create a new collors and insering at var 0x8009 bytes with
0x0 0x1, 0x2, 0x3, 0x4, BUT THE 0x5 can' not except if you expand the table at 0x471DEC
I'm a bit confused by this explanation. Does this fix the text so that it makes it the correct color? I've done a bit of experimenting and I think I like the look of this:

I just want to make the text non-transparent. Do I apply that to fix it?
__________________
Reply With Quote

Relevant Advertising!

  #52    
Old October 23rd, 2013 (4:14 AM).
karatekid552's Avatar
karatekid552 karatekid552 is offline
What happens if I push it?....
     
    Join Date: Nov 2012
    Location: Do you really want to know? Really?
    Gender: Male
    Nature: Bold
    Posts: 1,766
    Quote:
    Originally Posted by chrunch View Post
    I'm a bit confused by this explanation. Does this fix the text so that it makes it the correct color? I've done a bit of experimenting and I think I like the look of this:

    I just want to make the text non-transparent. Do I apply that to fix it?
    This took me a while to get:

    All colors will be made transparent except White. This is what I have found and worked my text boxes around it accordingly. I have yet to find a way to change it.

    Also, by screwing around with some of the values that are being written to the 0x400000 area, you can change the opacity of the transparent colors.
    __________________

    Paired with Simba
    Reply With Quote
      #53    
    Old October 23rd, 2013 (12:08 PM).
    BugMania's Avatar
    BugMania BugMania is offline
    The Bug Master
       
      Join Date: Jun 2013
      Gender: Male
      Nature: Quiet
      Posts: 32
      Quote:
      Originally Posted by karatekid552 View Post
      This took me a while to get:

      All colors will be made transparent except White. This is what I have found and worked my text boxes around it accordingly. I have yet to find a way to change it.

      Also, by screwing around with some of the values that are being written to the 0x400000 area, you can change the opacity of the transparent colors.
      you can use different colors according to the table of your liking. The color table would be selected when you set a number in the variable 0x8009.
      __________________
      Even the smallest of beings can achieve the greatest of obstacles!
      Click in the spoiler, if you dare!
      Spoiler:


      L
      et's dream bigger than our bodies can endure!
      G
      et to the extreme!

      See my works here

      Reply With Quote
        #54    
      Old October 23rd, 2013 (1:40 PM).
      karatekid552's Avatar
      karatekid552 karatekid552 is offline
      What happens if I push it?....
         
        Join Date: Nov 2012
        Location: Do you really want to know? Really?
        Gender: Male
        Nature: Bold
        Posts: 1,766
        Quote:
        Originally Posted by BugMania View Post
        you can use different colors according to the table of your liking. The color table would be selected when you set a number in the variable 0x8009.
        I honestly didn't use his routine, I wrote my own and hooked it directly into the msgbox command itself. That is probably why I didn't understand that part.
        __________________

        Paired with Simba
        Reply With Quote
          #55    
        Old October 24th, 2013 (4:48 AM).
        ep!c ep!c is offline
        Banned
           
          Join Date: Mar 2013
          Gender: Male
          Posts: 124
          Lol guys, you discuss years for a simple code.

          Its easy to understand: The more "black" the color has, the more transparent it is.
          Black -> ~50% transparency ...... White -> 0% transparency
          Then just make the code (only contains loading and writing in fact o.o) and make a built-in routine in the textbox. Afterwards, change text color to white and textbox color to full black and it results in this:



          Also the menu is working fine, if you hack the color and graphics correctly:



          The graphics box downsides has the offset 0x4566A8.
          I could also give out my NSE-bookmarks, if you wish.
          Many useful things in it
          Reply With Quote
            #56    
          Old October 24th, 2013 (5:03 AM).
          karatekid552's Avatar
          karatekid552 karatekid552 is offline
          What happens if I push it?....
             
            Join Date: Nov 2012
            Location: Do you really want to know? Really?
            Gender: Male
            Nature: Bold
            Posts: 1,766
            Quote:
            Originally Posted by ep!c View Post
            Lol guys, you discuss years for a simple code.

            Its easy to understand: The more "black" the color has, the more transparent it is.
            Black -> ~50% transparency ...... White -> 0% transparency
            Then just make the code (only contains loading and writing in fact o.o) and make a built-in routine in the textbox. Afterwards, change text color to white and textbox color to full black and it results in this:



            Also the menu is working fine, if you hack the color and graphics correctly:



            The graphics box downsides has the offset 0x4566A8.
            I could also give out my NSE-bookmarks, if you wish.
            Many useful things in it
            That is exactly what I did, however I changed the transparency level of the black and added some red.

            http://www.romhack.me/photo/1582/dc/userid_2957/
            __________________

            Paired with Simba
            Reply With Quote
              #57    
            Old October 24th, 2013 (2:03 PM).
            BugMania's Avatar
            BugMania BugMania is offline
            The Bug Master
               
              Join Date: Jun 2013
              Gender: Male
              Nature: Quiet
              Posts: 32
              Quote:
              Originally Posted by karatekid552 View Post
              I honestly didn't use his routine, I wrote my own and hooked it directly into the msgbox command itself. That is probably why I didn't understand that part.
              My routine asm (as was I who posted by the thjenvuongxh) is interesting because it allows a color change. It has nothing to do with the permissions of a transparent text box, ok?


              Again, sorry for my bad english.
              __________________
              Even the smallest of beings can achieve the greatest of obstacles!
              Click in the spoiler, if you dare!
              Spoiler:


              L
              et's dream bigger than our bodies can endure!
              G
              et to the extreme!

              See my works here

              Reply With Quote
                #58    
              Old October 24th, 2013 (5:21 PM).
              karatekid552's Avatar
              karatekid552 karatekid552 is offline
              What happens if I push it?....
                 
                Join Date: Nov 2012
                Location: Do you really want to know? Really?
                Gender: Male
                Nature: Bold
                Posts: 1,766
                Quote:
                Originally Posted by BugMania View Post
                My routine asm (as was I who posted by the thjenvuongxh) is interesting because it allows a color change. It has nothing to do with the permissions of a transparent text box, ok?


                Again, sorry for my bad english.
                I never said there was anything wrong with yours, I just made my own and I like the way it came out.

                but thanks, now I understand.
                __________________

                Paired with Simba
                Reply With Quote
                  #59    
                Old January 16th, 2014 (10:21 PM).
                KennyKid's Avatar
                KennyKid KennyKid is offline
                scipter
                   
                  Join Date: Mar 2013
                  Location: Civiland (Cai Nhum,Vinh Long :D)
                  Gender: Male
                  Nature: Quiet
                  Posts: 30
                  It's a long time since I first read this thread. I found out how to transperant textbox without asm code (writebytetooffset), just a simple code like ~Andrea. This usefull for someone not good at asm code.

                  First call 0x(offset) to make it transperant textbox
                  Spoiler:
                  writebytetooffset 0x3F 0x4000048
                  writebytetooffset 0x1F 0x4000049
                  writebytetooffset 0x41 0x4000050
                  writebytetooffset 0x3F 0x4000051
                  writebytetooffset 0xF 0x4000052
                  writebytetooffset 0xA 0x4000053
                  writebytetooffset 0xFF 0x202F0AA
                  writebytetooffset 0xFF 0x202F0AB
                  writebytetooffset 0x0 0x202F0B8
                  writebytetooffset 0x0 0x202F0B9
                  writebytetooffset 0x0 0x202F0AC
                  writebytetooffset 0x0 0x202F0AD
                  writebytetooffset 0x0 0x202F0BE
                  writebytetooffset 0x0 0x202F0BF
                  writebytetooffset 0x0 0x202F0C0
                  writebytetooffset 0x0 0x202F0C1
                  writebytetooffset 0x0 0x202F0C2
                  writebytetooffset 0x0 0x202F0C3
                  writebytetooffset 0x0 0x202F0C4
                  writebytetooffset 0x0 0x202F0C5
                  writebytetooffset 0x0 0x202F0C6
                  writebytetooffset 0x0 0x202F0C7
                  writebytetooffset 0x0 0x202F0C8
                  writebytetooffset 0x0 0x202F0C9



                  After you finish your script, call this code and the textbox and menu'll back to normal
                  Spoiler:
                  writebytetooffset 0x1F 0x4000048
                  writebytetooffset 0x1F 0x4000049
                  writebytetooffset 0x40 0x4000050
                  writebytetooffset 0x1E 0x4000051
                  writebytetooffset 0x10 0x4000052
                  writebytetooffset 0x0 0x4000053
                  writebytetooffset 0x29 0x202F0AA
                  writebytetooffset 0x25 0x202F0AB
                  writebytetooffset 0x5A 0x202F0B8
                  writebytetooffset 0x67 0x202F0B9
                  writebytetooffset 0x1F 0x202F0AC
                  writebytetooffset 0x0 0x202F0AD
                  writebytetooffset 0x9C 0x202F0BE
                  writebytetooffset 0x77 0x202F0BF
                  writebytetooffset 0xFF 0x202F0C0
                  writebytetooffset 0x7F 0x202F0C1
                  writebytetooffset 0x33 0x202F0C2
                  writebytetooffset 0x7F 0x202F0C3
                  writebytetooffset 0xEF 0x202F0C4
                  writebytetooffset 0x72 0x202F0C5
                  writebytetooffset 0xFF 0x202F0C6
                  writebytetooffset 0x7F 0x202F0C7
                  writebytetooffset 0xE 0x202F0C8
                  writebytetooffset 0x53 0x202F0C9



                  The writeback bytes are found by NarutoActor.
                  One more thing: You can adjust the bold of the textbox (the black transperant color) by adjust this code:
                  Quote:
                  writebytetooffset 0xF 0x4000052
                  writebytetooffset 0xA 0x4000053
                  writebytetooffset 0xFF 0x202F0AA
                  Change the value of 0xA, from the darkest to the lightest is 0x0, 0x1, ... , 0xA, 0xb,..., 0xe and finally 0xf
                  So if you want it a little darker, change 0xA to 0x8 or 0x7

                  These code can't change the text color.
                  __________________


                  Quick way to edit palettes, indexing sprites and insert tileset
                  Reply With Quote
                    #60    
                  Old January 17th, 2014 (6:16 AM).
                  ~Andrea's Avatar
                  ~Andrea ~Andrea is offline
                     
                    Join Date: Oct 2012
                    Gender: Male
                    Posts: 172
                    why you don't use "windows" instead of making the textbox or BG0 semi-transparent? if you use it you will not have any bugs in the menu (and other tile load in BG0)...
                    __________________
                    Reply With Quote
                      #61    
                    Old June 4th, 2014 (12:20 AM).
                    kebbles's Avatar
                    kebbles kebbles is offline
                    Rom Hacker.
                       
                      Join Date: Jul 2007
                      Location: Victoria, Australia!
                      Gender: Male
                      Nature: Brave
                      Posts: 624
                      yeah andrea is right, 'windows'
                      __________________
                      Pokémon Ice Version

                      When the world is in its final moments..
                      Where will you be?
                      Reply With Quote
                        #62    
                      Old July 30th, 2014 (1:32 PM).
                      Danny0317's Avatar
                      Danny0317 Danny0317 is offline
                      Fluorite's back, brah
                      • Gold Tier
                       
                      Join Date: Jun 2013
                      Location: Miami, FL
                      Age: 17
                      Gender: Male
                      Nature: Hasty
                      Posts: 1,075
                      Quote:
                      Originally Posted by itman View Post
                      This is amazing, but it takes up so much room to use in EVERY script.

                      So what everyone should do is make that a separate script, and then at the beginning of every script, call it, so this way you can save lots of room.

                      Example:

                      Script to be called:
                      Spoiler:

                      #org @begin
                      writebytetooffset 0x3F 0x4000048
                      writebytetooffset 0x1F 0x4000049
                      writebytetooffset 0x41 0x4000050
                      writebytetooffset 0x3F 0x4000051
                      writebytetooffset 0xF 0x4000052
                      writebytetooffset 0xA 0x4000053
                      writebytetooffset 0xFF 0x202F0AA
                      writebytetooffset 0xFF 0x202F0AB
                      writebytetooffset 0x0 0x202F0B8
                      writebytetooffset 0x0 0x202F0B9
                      writebytetooffset 0x0 0x202F0AC
                      writebytetooffset 0x0 0x202F0AD
                      writebytetooffset 0x0 0x202F0BE
                      writebytetooffset 0x0 0x202F0BF
                      writebytetooffset 0x0 0x202F0C0
                      writebytetooffset 0x0 0x202F0C1
                      writebytetooffset 0x0 0x202F0C2
                      writebytetooffset 0x0 0x202F0C3
                      writebytetooffset 0x0 0x202F0C4
                      writebytetooffset 0x0 0x202F0C5
                      writebytetooffset 0x0 0x202F0C6
                      writebytetooffset 0x0 0x202F0C7
                      writebytetooffset 0x0 0x202F0C8
                      writebytetooffset 0x0 0x202F0C9
                      return


                      Then if a script wants to use transparent text boxes, it would just call that one, and then it will automatically return to the script afterward due to the return command.

                      Spoiler:

                      #org @begin
                      call 0x(whateveroffsetit'sat!)
                      lock
                      faceplayer
                      msgbox @hi 0x6
                      release
                      end

                      #org @hi
                      = Hi.


                      Space saving ftw! I know this isn't a complex technique in anyway; I was just over explaning for newer hackers out there.
                      Instead of doing that, how about putting that (by "that" I mean what he said about @call) in a level script so every script in the map has it and you don't have to add it to NPCs? I haven't tested it, and won't since I don't hack FR or Ruby, but would that work?
                      __________________
                      Reply With Quote
                        #63    
                      Old July 30th, 2014 (10:49 PM). Edited July 30th, 2014 by MrKongKillz.
                      MrKongKillz's Avatar
                      MrKongKillz MrKongKillz is offline
                         
                        Join Date: Jul 2014
                        Location: The Primous Region
                        Gender: Other
                        Nature: Calm
                        Posts: 27
                        Quote:
                        Originally Posted by Dark Sneasel View Post
                        Instead of doing that, how about putting that (by "that" I mean what he said about @call) in a level script so every script in the map has it and you don't have to add it to NPCs? I haven't tested it, and won't since I don't hack FR or Ruby, but would that work?
                        Thank you now i can rom hacking with transparent textboxs :D
                        Reply With Quote
                          #64    
                        Old September 2nd, 2014 (11:15 AM). Edited September 2nd, 2014 by Derlo.
                        Derlo's Avatar
                        Derlo Derlo is offline
                        Working on Essence of light...
                           
                          Join Date: Aug 2007
                          Posts: 129
                          Works great to me, but I have a little problem.

                          After call all "writebytetooffset" to bring the textbox to normal, if I start a script with YES/NO textbox, the game crashes....

                          Someone knows how to fix that?

                          Edit:
                          Forget it!
                          The problem was in another routine that was using along with the transparency!
                          __________________



                          Pokémon
                          Essence of Light

                          Comming Soon...
                          Reply With Quote
                            #65    
                          Old February 5th, 2016 (2:23 PM). Edited February 5th, 2016 by Bonnox.
                          Bonnox Bonnox is offline
                          Time (wasting) Lord
                             
                            Join Date: Sep 2015
                            Location: Gallifrey, (IT)
                            Age: 22
                            Gender: Male
                            Posts: 44
                            Hi everybody!

                            I'm sorry for posting after this huge amount of time, but I think to have found a lighter way (it needs fewer bytes) for ruby.

                            these are the needed bytes:
                            4000040 00FF // defining windows - to edge: 03ED
                            4000042 FFFF
                            4000044 70C0 // to edge: 739D
                            4000046 00FF
                            4000048 3F3F
                            400004A 001F
                            4000050 00FE // start blending

                            202F0AC 6B5A // I change the text color to be more pleasant (just personal feeling)
                            202F0BC 0000

                            "to edge" means that you have to use that value if you don't want the effect to "go past" the textbox.

                            just a remainder: you have to set the transparent higlight (simply put "\c\h02\h00" at the beginning of an XSE text), and DESTROY with zeros 0x1BF bytes with an hex editor at 08EA0108, in order the textbox to be gone (actually, trasparent, but who cares) {XD} (at the time I came up with this I didn't know ASM yet, so couldn't directly stop the routine that prints the box)

                            with the halfword at 04000054 you can change the intensity of the effect ^^
                            by default, this produces a "darken" effect. if you want a "lighter" effect, just substitute this in above:
                            4000050 00BE

                            after closing the message, terminate the effects with:
                            4000050 1E40 (this value is used by gamefreak, therefore *should* be correct)

                            (and sorry for the too much brackets :v )
                            Reply With Quote
                            Reply
                            Quick Reply

                            Sponsored Links
                            Thread Tools

                            Posting Rules
                            You may not post new threads
                            You may not post replies
                            You may not post attachments
                            You may not edit your posts

                            BB code is On
                            Smilies are On
                            [IMG] code is On
                            HTML code is Off

                            Forum Jump


                            All times are GMT -8. The time now is 5:26 AM.