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!

Draconius GO
Reply
 
Thread Tools
  #751    
Old August 16th, 2015 (3:22 AM). Edited August 16th, 2015 by PurpleOrange.
PurpleOrange's Avatar
PurpleOrange PurpleOrange is offline
still don't know what I'm doing
     
    Join Date: Sep 2013
    Location: Littleroot Town (UK)
    Age: 20
    Gender: Male
    Posts: 358
    some useful RAM stuff

    emerald RAM offsets for map bank, map number, and x and y coordinates
    0x02025A0C stores the current player map bank
    0x02025A0D stores the current player map number
    0x02025A08 stores the player's x coordinate
    0x02025A0A stores the player's y coordinate

    roaming legendary RAM offsets for their current location
    RS: 0x02079303
    FRLG: 0x0203F3AE
    E: 0x0207BC86
    __________________

    Reply With Quote

    Relevant Advertising!

      #752    
    Old August 18th, 2015 (10:03 AM).
    Le pug's Avatar
    Le pug Le pug is offline
    Creator of Pokémon: Discovery / Fat Kid
    • Crystal Tier
     
    Join Date: Aug 2013
    Location: Le bed
    Age: 25
    Gender: Male
    Nature: Bold
    Posts: 784
    Quote:
    Originally Posted by PurpleOrange View Post
    some useful RAM stuff

    emerald RAM offsets for map bank, map number, and x and y coordinates
    0x02025A0C stores the current player map bank
    0x02025A0D stores the current player map number
    0x02025A08 stores the player's x coordinate
    0x02025A0A stores the player's y coordinate

    roaming legendary RAM offsets for their current location
    RS: 0x02079303
    FRLG: 0x0203F3AE
    E: 0x0207BC86
    good find on the legendary ram offsets but the previous map offsets have already been found and go hand in hand with the intro enhancement patch made by diegoisawesome found here: click
    __________________







    /// Pokémon: Discovery
    /// Pokémon: Fat Kid
    /// Tile Insertion Tutorial For AdvanceMap
    /// Pokémon Emerald Specials Resource Thread
    /// Pokémon Emerald Decapitalization Patch
    /// Emerald Titlescreen Cloud Removal Tutorial
    /// Tutorial For Fixing Any ROM-related Bug
    Reply With Quote
      #753    
    Old August 18th, 2015 (12:16 PM). Edited August 19th, 2015 by FamiliaWerneck.
    FamiliaWerneck's Avatar
    FamiliaWerneck FamiliaWerneck is offline
       
      Join Date: May 2015
      Location: São Paulo, Brasil
      Gender: Male
      Posts: 274
      I know it's nothing hard, nothing WOOOOW, but that's something and my first alone-research-area collaboration. This is for Fire Red:

      INFINITE SAFARI TIME


      Simply go to 0xA0F1A and replace the 01 38 there, for 00 38.

      The game will still give you 600 steps, but it won't decrease, so you will be there until you retire or run out of Safari Balls.
      When I figure out how to hide the step count in the start menu, I'll edit this post.
      __________________
      My Main Team:


      Reply With Quote
        #754    
      Old August 19th, 2015 (9:33 AM). Edited September 12th, 2017 by FamiliaWerneck.
      FamiliaWerneck's Avatar
      FamiliaWerneck FamiliaWerneck is offline
         
        Join Date: May 2015
        Location: São Paulo, Brasil
        Gender: Male
        Posts: 274
        Well, this is what I did, while learning how to do stuff like debugging and doing new mechanics changes in the game.
        Thanks to Touched-sensei, who helped me through the entire process. Thanks to daniilS and kleenexfeu, who also helped in the very end. This is for Fire Red:

        REUSABLE POKÉBALLS


        - First, go to 0xA1E30. Change 01 21 to 00 21 (with this, Pokéballs won't be deleted when you select them in your bag);
        - Now, find some free space and insert this routine there:
        Spoiler:
        Code:
        .text
        .align 2
        .thumb
        
        main:
        	bl deleteball
        	mov r9, r4
        	pop {r4-r7}
        	pop {r0}
        	bx r0
        
        deleteball:
        	ldr r0, var_800E
        	ldrh r0, [r0]
        	cmp r0, #0xC
        	bls pokeball
        
        notpokeball:
        	mov r1, #0
        	bl bagremoval	
        
        pokeball:
        	mov r1, #1
        
        bagremoval:
        	ldr r2, =(0x809A1D9)
        	bx r2
        	
        .align 2
        var_800E: .word 0x0203AD30

        Here's a compiled version:
        Spoiler:
        00 F0 04 F8 A1 46 F0 BC 01 BC 00 47 04 48 00 88 0C 28 02 D9 00 21 00 F0 01 F8 01 21 01 4A 10 47 30 AD 03 02 D9 A1 09 08

        This is the code that deletes the Pokéball;
        - Finally, go to 0x2D924 and paste write this "00 48 00 47 XX XX XX 08" there. It's a hook to the routine you just inserted. Change the XX XX XX for the pointer to the offset you placed the above routine. Remember to +1 the offset before changing it to a pointer.

        With this hack, you won't spend Pokéballs if you don't capture a wild Pokémon. I wanted to do it inspired in the anime.
        Again, simple, some people will think it's a broken functionality, but it will do well for that time when you encounter a shiny Pokémon with that one single Pokéball in your bag. =P
        Thanks again, everybody. Hope it's helpful.

        EDIT:
        Thanks to mbcn10ww, I fixed this hack.
        Unfortunately, I couldn't test it on the Safari area, as it's saying other saves are not compatible (but I don't know why, since I might have tried to use saves of games with other different hacks. It's been more than a semester I don't even see my games).
        Nevertheless, I tested it on regular places and areas, and it is still working. From the previous hack, I set a new condition before removing item from the bag.
        I call the removing routine anyway. The difference is that I pass on a 0 value as the number of items to be deleted if it's not a pokeball.
        The "cmp r0, #0xC" compares the last item used with the last pokeball index (Premier Ball). If it is lower or equal to that, it is a pokeball. Else, r1 receives 0 and no item should be deleted.
        Thanks for the heads up, mbcn10ww!
        If anyone can test the Safari part, jumping straight there, or anything, I would appreciate!
        __________________
        My Main Team:


        Reply With Quote
          #755    
        Old August 25th, 2015 (12:24 AM).
        chrunch chrunch is offline
        • Gold Tier
         
        Join Date: Oct 2009
        Gender: Male
        Posts: 1,349

        Player Names in Firered


        At 0x46308C, there is a table which lists all the generated player names for when you leave the name entry screen blank. There are 19 entries for each gender, and the table is simply made up of pointers to strings for each possible name.

        Spoiler:
        Code:
        Offset	Name	Gender
        46308C	RED	(Male)
        463090	FIRE	(Male)
        463094	ASH	(Male)
        463098	KENE	(Male)
        46309C	GEKI	(Male)
        4630A0	JAK	(Male)
        4630A4	JANNE	(Male)
        4630A8	JONN	(Male)
        4630AC	KAMON	(Male)
        4630B0	KARL	(Male)
        4630B4	TAYLOR	(Male)
        4630B8	OSCAR	(Male)
        4630BC	HIRO	(Male)
        4630C0	MAX	(Male)
        4630C4	JON	(Male)
        4630C8	RALPH	(Male)
        4630CC	KAY	(Male)
        4630D0	TOSH	(Male)
        4630D4	ROAK	(Male)
        4630D8	RED	(Female)
        4630DC	FIRE	(Female)
        4630E0	OMI	(Female)
        4630E4	JODI	(Female)
        4630E8	AMANDA	(Female)
        4630EC	HILLARY (Female)
        4630F0	MAKEY	(Female)
        4630F4	MICHI	(Female)
        4630F8	PAULA	(Female)
        4630FC	JUNE	(Female)
        463100	CASSIE	(Female)
        463104	REY	(Female)
        463108	SEDA	(Female)
        46310C	KIKO 	(Female)
        463110	MINA 	(Female)
        463114	NORIE 	(Female)
        463118	SAI 	(Female)
        46311C	MIMI 	(Female)
        463120	SUYI 	(Female)
        463124	GREEN 	(Rival)
        463128	GARY 	(Rival)
        46312C	KAZ 	(Rival)
        463130	TORU 	(Rival)


        The name strings are all located at 0x1C574F if you wish to edit them without repointing. Note that there is also a string for LEAF which is not used in Firered.
        __________________
        Reply With Quote
          #756    
        Old August 29th, 2015 (1:57 PM).
        DoesntKnowHowToPlay's Avatar
        DoesntKnowHowToPlay DoesntKnowHowToPlay is offline
        Tiny Umbrella with Lots and Lots of Good
           
          Join Date: Jan 2012
          Posts: 258
          The roamer in FR is released into the world by special 0x129, at x141D9C.

          Its species is chosen from the bytes at x141caa, x141cb4, or x141cb8 (xF3, xF4, xF5 respectively) based on your starter choice (var x4013).

          Its level is dependent on the bytes at x141cc8 and x141cdc. I advise changing both to the same value; if only the former is changed it gets generated as a level 50 mon with incorrect HP.

          The ability to track the roamer in the dex is specific to Raikou, Entei, and Suicune. There is a table at x4642F4 that maps values of var x4013 to dex entries that should instead check the roamer. To make the dex acknowledge one roamer and disregard starter choice, change the first value in the table to your roamer's ID, and put four 00s at x13cb80.
          __________________

          Yet Another Fire Red Hack

          Physical/Special Split
          Reply With Quote
            #757    
          Old September 1st, 2015 (11:47 AM). Edited September 12th, 2015 by Dionen.
          Dionen's Avatar
          Dionen Dionen is offline
          hmmmm
             
            Join Date: Jun 2011
            Location: Brazil
            Gender: Male
            Nature: Quirky
            Posts: 274
            Quote:
            Originally Posted by Jaizu View Post
            Hi! If you are using a 32x32px overworld for the PALYER(NDS style) you will notice that it will look weird when you choose your name.



            To fix it just go to the direction 083A3BC0 and put 18 instead 10
            It makes the PLAYER and Gary overworld look like a 32x32px.



            Thanks and merits to daniilS, he literally made everything!
            Doing this will also fix the player's male reflection!
            __________________
            Reply With Quote
              #758    
            Old September 1st, 2015 (10:39 PM).
            Artemis64 Artemis64 is offline
               
              Join Date: Mar 2014
              Location: Singapore
              Gender: Male
              Nature: Hasty
              Posts: 86
              Quote:
              Originally Posted by Touched View Post
              Cap individual EVs to 252 instead of 255 Like in Gen VI
              Set 080439FC and 08043A02 to 0xFC (FireRed)
              To do the same in Emerald, place 0xFC at 0x6DC48 and 0x6DC4E.
              To elaborate for the people who don't understand what this is about, it is setting the limiters for the maximum number of EVs a Pokémon can have per stat. Because only four EVs translate into a single stat point, having 255 EVs per stat is pointless, as the last three EVs do not make any difference.
              Reply With Quote
                #759    
              Old September 9th, 2015 (12:30 PM). Edited February 13th, 2016 by C me.
              C me's Avatar
              C me C me is offline
              Creator of Pokemon League Of Legends
                 
                Join Date: Jan 2014
                Age: 20
                Gender: Male
                Posts: 675
                Emerald move effects command table 0x31BD10.
                __________________
                Check out my hack: Pokemon League of Legends.
                Join the subreddit: https://www.reddit.com/r/PokemonLoL/
                If you would like to give me money for no reason you can do so here
                Reply With Quote
                  #760    
                Old September 9th, 2015 (12:58 PM). Edited December 7th, 2015 by kleenexfeu.
                kleenexfeu kleenexfeu is offline
                   
                  Join Date: Aug 2013
                  Gender: Male
                  Posts: 219
                  We (almost) all know how BSP is useful, though it can't decompile every battlescript in the game because all the commands haven't been implemented.

                  To change that, I documented on what kind of argument each commands take, I don't know yet what they all do, but we can at least decompile every script. There's still few command undocumented, I'll update the post as I find what argument they take, and what the other commands do.

                  UPDATE: Now we know the arguments taken by every single command. The only issue is that BSP doesn't prevent infinite loop.
                  Other than that, you can decompile every single Battlescript in the game.

                  The commands :
                  Spoiler:

                  #command cmd1B 0x1B 0x1 "Byte or Bank" 0x1
                  #command cmd23 0x23 0x1 "Byte or Bank" 0x1
                  #command gotoandsomething 0x24 0x1 "ROM Address" 0x4
                  #command cmd26 0x26 0x1 "Byte or Bank" 0x1
                  #command cmd32 0x32 0x4 "AddresW" 0x4 "AdresW" 0x4 "AddresW" 0x4 "Byte" 0x1
                  #command somethinghealcmd3B 0x3B 0x1 "Bank" 0x1
                  #command cmd40 0x40 0x1 "Address" 0x4
                  #command cmd44 0x44
                  #command cmd54 0x54 0x1 "Hword" 0x2
                  #command cmd55 0x55 0x1 "Word Value" 0x4
                  #command cmd56 0x56 0x1 "Byte or Bank" 0x1
                  #command cmd57 0x57
                  #command checkiflearnmoveinbattle 0x59 0x3 "AddresW" 0x4 "AddresW" 0x4 "Bank or byte" 0x1
                  #command cmd5A 0x5A 0x1 "Address" 0x4
                  #command cmd5B 0x5B 0x1 "Address" 0x4
                  #command cmd5E 0x5E 0x1 "Byte or Bank" 0x1
                  #command cmd5F 0x5F
                  #command cmd61 0x61 0x1 "Bank probably" 0x1
                  #command cmd62 0x62 0x1 "Bank probably" 0x1
                  #command cmd65 0x65 0x2 "Bank or byte or compare" 0x1 "Word Value" 0x4
                  #command cmd66 0x66 0x3 "Byte, bank or compare" 0x1 "Byte bank cmp" 0x1 "Word" 0x4
                  #command cmd67 0x67
                  #command cmd68 0x68
                  #command cmd69 0x69
                  #command removeitem 0x6A 0x1 "Bank" 0x1
                  #command cmd6B 0x6B
                  #command cmd6C 0x6C
                  #command cmd6D 0x6D
                  #command cmd6E 0x6E
                  #command cmd6F 0x6F 0x1 "Bank" 0x1
                  #command cmd70 0x70 0x1 "Bank" 0x1
                  #command cmd71 0x71
                  #command somethingwithhelditem 0x72 0x1 "ROM Address" 0x4
                  #command cmd74 0x74 0x1 "Bank" 0x1
                  #command cmd75 0x75
                  #command nop3 0x83
                  #command koplussomethings 0x93 0x1 "AddresW" 0x4
                  #command cmd98 0x98 0x1 "Byte" 0x1
                  #command cmdAB 0xAB
                  #command cmdBA 0xBA 0x1 "Address" 0x4
                  #command beatupcalculation 0xC4 0x2 "ROM Address" 0x4 "ROM Address" 0x4
                  #command cmdD4 0xD4 0x2 "Bank maybe" 0x1 "ROM Address" 0x4
                  #command cmdE1 0xE1 0x1 "ROM Address" 0x4
                  #command naturepowereffect 0xE1
                  #command actualcastformswitch 0xE6
                  #command castformswitch 0xE7
                  #command pursuitwhenswitched 0xEC 0x1 "ROM Address" 0x4
                  #command snatchmove 0xED
                  #command catchpoke 0xF0
                  #command capturesomethingF1 0xF1 0x1 "Address" 0x4
                  #command capturesomethingF2 0xF2
                  #command capturesomethingF3 0xF3 0x1 "Address" 0x4
                  #command removehp 0xF4
                  #command curestatutfirstword 0xF5
                  #command cmdF6 0xF6
                  #command activesidesomething 0xF7
                  #command cmdF8 0xF8 0x1 "Bank" 0x1 // Emerald only
                  #command callasm 0xF9 0x1 "Offset of routine" 0x4 // Custom command
                  #command setword 0xFA 0x2 "Offset of address" 0x4 "Word Value" 0x4 // Custom command

                  __________________
                  Links for my work:
                  Dynamic Emerald Attack ROMbase
                  Arceus and Giratina Forms

                  Touched's Emerald IDB + Battle stuff (probably outdated)
                  Touched's Emerald IDB 6.8 + Battle stuff (probably outdated)
                  Reply With Quote
                    #761    
                  Old September 11th, 2015 (8:53 AM).
                  FBI's Avatar
                  FBI FBI is offline
                  Free supporter
                  • Silver Tier
                   
                  Join Date: Jan 2013
                  Location: Unknown Island
                  Gender: Male
                  Posts: 1,814
                  Quote:
                  Originally Posted by FBI agent View Post
                  Hey guys, I just wanted to post a warning about a PKSV bug which occurs quite commonly when testing out routines with callasm (perhaps it happens in XSE too, I haven't tried).

                  Steps to produce bug:
                  Write a routine and insert it into ROM
                  Write Script with callasm which uses said routine, compile it
                  Close PKSV

                  - Normally around here, I give my routines a game test -

                  Open a new PKSV and decompile the script
                  Make modifications to the routine
                  Make modification to the script and compile

                  Result:
                  Modification to the routine are undone. To avoid the bug you need to always reinsert the routine after compiling a script which uses the routine.
                  Something more to add to this. PKSV can't compile money commands, except for showmoney. The coins seem to work, as well as decompiling scripts with these money commands work. However, DO NOT recompile scripts which have money commands. They will most likely break.

                  In my eyes, with this bug and the ASM bug, PKSV has stopped becoming a viable script editor. XSE is bad too, but PKSV is currently worse. I recommend Red Alien atm. Of course, if you use PKSV for non-ASM projects and for non-money scripts it's still usable.
                  __________________
                  ...
                  Reply With Quote
                    #762    
                  Old September 11th, 2015 (7:47 PM).
                  AkameTheBulbasaur's Avatar
                  AkameTheBulbasaur AkameTheBulbasaur is offline
                  Akame Marukawa of Iyotono
                     
                    Join Date: May 2013
                    Location: A place :D
                    Age: 20
                    Gender: Male
                    Nature: Gentle
                    Posts: 329
                    Quote:
                    Originally Posted by FBI agent View Post
                    Something more to add to this. PKSV can't compile money commands, except for showmoney. The coins seem to work, as well as decompiling scripts with these money commands work. However, DO NOT recompile scripts which have money commands. They will most likely break.
                    Adding on to the add-on, money commands CAN work, but you have to use the #raw format instead of the word format for them. I've gotten almost all of them to work using #raw 0x[number] except for "checkmoney" which I haven't gotten to work.
                    __________________
                    "The human sacrificed himself, to save the Pokemon. I pitted them against each other, but not until they set aside their differences did I see the true power they all share deep inside. I see now that the circumstances of one's birth are irrelevant; it is what you do with the gift of life that determines who you are." -Mewtwo
                    Reply With Quote
                      #763    
                    Old September 14th, 2015 (7:55 AM).
                    Crizzle's Avatar
                    Crizzle Crizzle is offline
                    Legend
                       
                      Join Date: Apr 2015
                      Location: USA
                      Age: 22
                      Gender: Male
                      Posts: 945
                      This post- http://www.pokecommunity.com/showpost.php?p=7209316&postcount=251
                      I know it works for FireRed, but can it be applied to Emerald as well?
                      __________________
                      Pokemon Savage Silver hopefully coming out before rom hacking dies! Check out the trailer!

                      Check out the great completed hacks that I made:

                      Credit to Corazon(or whatever he calls himself now) for banner.
                      Pokemon CAWPS
                      Pokemon Outlaw
                      Reply With Quote
                        #764    
                      Old September 21st, 2015 (8:30 AM). Edited September 21st, 2015 by FBI.
                      FBI's Avatar
                      FBI FBI is offline
                      Free supporter
                      • Silver Tier
                       
                      Join Date: Jan 2013
                      Location: Unknown Island
                      Gender: Male
                      Posts: 1,814
                      Quote:
                      Originally Posted by DoesntKnowHowToPlay View Post


                      XY added a feature that gives experience points when you catch pokemon. To duplicate this in FR, do the following:

                      Repoint the battle script at x1d9a42 to point to this:

                      2A 00 68 3D 02 02 05 00 50 9A 1D 08 60 0B 10 0B 01 F1 XX XX XX XX 2E E0 3F 02 02 00 2E 0C 3C 02 02 00 2E 0D 3C 02 02 00 23 00 10 0F 01 3A 2E 82 3E 02 02 00 F2 10 0D 01 3A 2E 82 3E 02 02 00 F3 80 9A 1D 08 F0 13 54 E6 3F 08 12 40 00 28 81 9A 1D 08

                      where XX XX XX XX is a pointer to:

                      2E E0 3F 02 02 00 2E 0C 3C 02 02 00 2E 0D 3C 02 02 00 23 00 10 0D 01 3A 2E 82 3E 02 02 00 F3 80 9A 1D 08 F0 13 54 E6 3F 08 12 40 00 28 81 9A 1D 08

                      To let the player's mons evolve from this experience, replace the bytes at x15A68 with A1 5A 01 08.

                      Edit: Changed the scripts, I assumed they cut off earlier than they actually did. Should work with full party+no nickname now.
                      Quote:
                      Originally Posted by lsmash View Post
                      I combined my work with the one from Doesnt. As a result, there are less bytes to write into freespace.
                      So, here's what to do to give exp points when you catch a pokemon:
                      1-The bytes to put into freespace: 2E E0 3F 02 02 00 2E 0C 3C 02 02 00 2E 0D 3C 02 02 00 23 00 F1 63 9A 1D 08 28 58 9A 1D 08

                      2-The bytes to replace at 1D9A53: 41 XX XX XX 08 (XX = pointer to the code above).

                      3-Just like Doesnt wrote earlier, replace the bytes at 15A68 with A1 5A 01 08.

                      It should work without problems, as I tested it before posting.

                      Thanks to Doesnt for telling me how to fix a music issue.
                      Hi, I think both of these solutions ONLY work if the Pokemon is not in the Pokedex already. Was that the intention? If not can someone confirm they've made it work for a Pokemon they've already caught and are in the dex?


                      EDIT:
                      Well, even if it is just me (which it isn't going to be looking at this code), it's pretty big of an issue in my eyes. I did a little bit of digging around, and figured out the source. I thought I'd post the fix here.

                      Replace the bytes at 0x2D990 with:
                      00 49 08 47 C7 D9 02 08
                      __________________
                      ...
                      Reply With Quote
                        #765    
                      Old September 21st, 2015 (11:53 AM).
                      AkameTheBulbasaur's Avatar
                      AkameTheBulbasaur AkameTheBulbasaur is offline
                      Akame Marukawa of Iyotono
                         
                        Join Date: May 2013
                        Location: A place :D
                        Age: 20
                        Gender: Male
                        Nature: Gentle
                        Posts: 329
                        Quote:
                        Originally Posted by FBI View Post
                        Hi, I think both of these solutions ONLY work if the Pokemon is not in the Pokedex already. Was that the intention? If not can someone confirm they've made it work for a Pokemon they've already caught and are in the dex?
                        It works just fine for me when I catch Pokemon I already caught before. I don't know if other people have had the same problem. I'd keep the fix up just in case other people had the same problem as you. Maybe I just got lucky.
                        __________________
                        "The human sacrificed himself, to save the Pokemon. I pitted them against each other, but not until they set aside their differences did I see the true power they all share deep inside. I see now that the circumstances of one's birth are irrelevant; it is what you do with the gift of life that determines who you are." -Mewtwo
                        Reply With Quote
                          #766    
                        Old September 21st, 2015 (2:43 PM). Edited September 21st, 2015 by FBI.
                        FBI's Avatar
                        FBI FBI is offline
                        Free supporter
                        • Silver Tier
                         
                        Join Date: Jan 2013
                        Location: Unknown Island
                        Gender: Male
                        Posts: 1,814
                        Quote:
                        Originally Posted by AkameTheBulbasaur View Post
                        It works just fine for me when I catch Pokemon I already caught before. I don't know if other people have had the same problem. I'd keep the fix up just in case other people had the same problem as you. Maybe I just got lucky.
                        I doubt it's luck. I'm using MrDS's ROM base and I'm not using the national dex. I don't think it has anything to do with my ASM edits or the DS ROM base. I'm thinking it might be a problem with the normal ROM base. If it's just me, then w/e :P

                        EDIT: Boys and girls. I did a +1 by accident and caused the bug. If you're having the same issue, don't +1 any of the offsets. This never happened btw <3
                        __________________
                        ...
                        Reply With Quote
                          #767    
                        Old September 25th, 2015 (1:14 AM).
                        tkim tkim is offline
                           
                          Join Date: May 2011
                          Posts: 180
                          Quote:
                          Originally Posted by Tlachtli View Post
                          I believe I've found an interesting bug with this. Under normal circumstances it works fine: you battle, catch, gain xp, display Pokedex entry:


                          However if you level up from that xp, it causes the Pokedex to go wonky:


                          EDIT: Found another small graphical bug, too. Learning a move on level-up after successfully catching a Pokemon will cause the wild Poke's sprite to re-appear after exiting the move learning screen. Unimportant in the long run, as the battle ends right after.
                          Does anybody know how to not make the captured wild Pokemon's sprite reappear after exiting the move-learning screen? Perhaps if one were to remove the wild pokemon's HUD from the battle screen after catching it? HUD of an enemy Pokemon gets removed when it is defeated..
                          Reply With Quote
                            #768    
                          Old September 30th, 2015 (6:29 PM). Edited October 1st, 2015 by Deokishisu.
                          Deokishisu's Avatar
                          Deokishisu Deokishisu is offline
                          Mr. Magius
                             
                            Join Date: Feb 2006
                            Location: If I'm online, it's a safe bet I'm at a computer.
                            Gender: Male
                            Nature: Relaxed
                            Posts: 887
                            This post is to make public some research I did trying to auto-decrypt the things that are encrypted with the security key and disable the DMA in Emerald based on the information in this post on doing the same to Firered. I believe I've also found where to disable the Pokemon Substructure Permutations as well, so that they will always be in the right order instead of shuffled around.

                            Before anything, I'd like to thank FBI, Touched, GoGo, and kleenexfeu for showing me how to find what I was looking for (FBI), actually finding the security key routine (GoGo), showing me how to verify what I did was working (Touched), and just talking me through some stuff and letting me bounce things off of them (basically everyone, but mostly kleenexfeu). Thanks guys! And of course, thanks to Sagiri for the original research.

                            To Automatically Decrypt Anything Encrypted with the Security Key in Emerald:
                            Head to 076CD6 in your hex editor. Change the 24 08 that is there to 00 24. Upon the next map refresh, everything encrypted by the security key will be decrypted and remain that way. Your money, for example, will now sit unencrypted at 02025E90.

                            To Disable the DMA in Emerald:
                            Head to 076BEE in your hex editor. Change the 04 40 that is there to 00 24. Upon the next map refresh, your DMA protected information will be moved to a static location and remain there permanently.

                            To Disable the Pokemon Substructure Permutations in Emerald:
                            Head to 076BEC in your hex editor. Change the 7C that is there to 00.

                            Incidentally, to disable the substructure permutations in Firered, head to 04C062 and change that 7C to 00 as well. Credits to Knizz's Firered.idb for that one, I'm posting it here because I haven't seen it anywhere other than the idb.

                            The New Static Locations in RAM:
                            All of these can be edited easily through the memory viewer now, none are encrypted or dynamically moved.
                            Spoiler:

                            You may also want to refer to this post on Bulbapedia.
                            Code:
                            [0x02024A54]    8b    Character name including terminator, padded to end with 0xFFs
                            [0x02024A5C]    1b    Gender (00/01 m/f)
                            [0x02024A5D]    1b    Unknown
                            [0x02024A5E]    2b    Trainer ID
                            [0x02024A60]    2b    Secret ID (halfword)
                            [0x02024A62]    2b    Playtime (hours)
                            [0x02024A64]    1b    Playtime (minutes)
                            [0x02024A65]    1b    Playtime (seconds)
                            [0x02024A66]    1b    Playtime (frames)
                            [0x02024A67]    1b    Unknown
                            [0x02024A68]    2b    Options
                            [0x02024B00]    4b    Security Key (Always 00 00 00 00 with the above changes)
                            
                            -------------------------------------------------------------------------
                            
                            [0x02025E90]    4b    Player's current money.
                            [0x02025E98]    200b  Player's PC Items (Structured as item index and quantity. As an example of what it should look like: 0D 01 03 02 0A 01 22 01 is 515 Devon Goods in slot one and 290 Contest Pass in slot two. This format goes on for the PC's 50 slots.)
                            [0x02025F60]    120b  Player's Item Pocket (Same structure as PC items. This format goes on for the Item Pocket's 30 slots.)
                            [0x02025FD8]    120b  Player's Key Items Pocket (Same structure as PC items, though you should leave the quantity at 1. This format goes on for the Key Items Pocket's 30 slots.)
                            [0x02026050]    64b   Player's Ball Pocket (Same structure as PC items. This format goes on for the Ball Pocket's 16 slots.)
                            [0x02026090]    256b  Player's TM/HM Pocket (Same structure as PC items. This format goes on for the TM/HM Pocket's 64 slots. An invalid TM/HM in this pocket, such as a Master Ball in the TM/HM Pocket, shows the move it teaches as a Normal-type move with --- Power and Accuracy and 0 PP. Trying to use it does nothing.)
                            [0x02026190]    184b  Player's Berry Pocket (Same structure as PC items. This format goes on for the Berry Pocket's 43 slots. Clicking "Show Tag" on an invalid berry, such as a Master Ball in the Berry Pocket, defaults to Cheri Berry's tag.)
                            Reply With Quote
                              #769    
                            Old October 4th, 2015 (9:31 PM). Edited October 4th, 2015 by Aruaruu.
                            Aruaruu Aruaruu is offline
                               
                              Join Date: Sep 2011
                              Gender: Male
                              Posts: 199
                              Been digging into the "easy-chat system" for Emerald and noting down what bytes make what word(s) and stuff like that. List is nowhere near done. Nor are they in any order.

                              They are mostly used in the Battle Frontier/Tents and Trainers Hill too so if you look up a trainers name from those places in a hex editor you could find the intro/win/lose quotes (12 bytes each, should be just after trainer name) and edit them if you really wanted to.
                              Not really useful but whatever.

                              Spoiler:
                              Code:
                              04 0C = ...
                              05 0A = YOUR
                              35 1A = LOOK
                              09 16 = SAYS
                              06 0A = YOU'RE
                              07 0A = YOU'VE
                              08 0A = MOTHER
                              09 0A = GRANDFATHER
                              0A 0A = UNCLE
                              0B 0A = FATHER
                              0C 0A = BOY
                              0D 0A = ADULT
                              0E 0A = BROTHER
                              0F 0A = SISTER
                              10 0A = GRANDMOTHER
                              11 0A = AUNT
                              12 0A = PARENT
                              13 0A = MAN
                              14 0A = ME
                              15 0A = GIRL
                              16 0A = BABE
                              17 0A = FAMILY
                              18 0A = HER
                              19 0A = HIM
                              1A 0A = HE
                              1B 0A = PLACE
                              1C 0A = DAUGHTER
                              1D 0A = HIS
                              30 1A = COMICS
                              2F 1A = FESTIVAL
                              08 02 = EGG
                              08 04 = COLOR
                              08 06 = IF
                              08 08 = HOW
                              00 02 = I CHOOSE
                              00 04 = DARK
                              00 06 = MATCH UP
                              00 08 = THANKS
                              01 08 = YES
                              02 08 = HERE GOES
                              03 08 = HERE I COME
                              04 08 = HERE IT IS
                              05 08 = YEAH
                              06 08 = WELCOME
                              07 08 = OI
                              08 08 = HOW DO
                              09 08 = CONGRATS
                              0A 08 = GIVE ME
                              0B 08 = SORRY
                              0C 08 = APOLOGIZE
                              0D 08 = FORGIVE
                              0E 08 = HEY, THERE
                              0F 08 = HELLO
                              10 08 = GOOD-BYE
                              11 08 = THANK YOU
                              12 08 = I'VE ARRIVED
                              13 08 = PARDON
                              14 08 = EXCUSE
                              15 08 = SEE YA
                              16 08 = EXCUSE ME
                              17 08 = WELL, THEN
                              18 08 = GO AHEAD
                              19 08 = APPRECIATE
                              1A 08 = HEY?
                              1B 08 = WHAT'S UP?
                              1C 08 = HUH?
                              1D 08 = NO
                              1E 08 = HI
                              1F 08 = YEAH, YEAH
                              20 08 = BYE-BYE
                              21 08 = MEET YOU
                              22 08 = HEY
                              23 08 = SMELL
                              24 08 = LISTENING
                              25 08 = HOO-HAH
                              26 08 = YAHOO
                              27 08 = YO
                              28 08 = COME OVER
                              29 08 = COUNT ON
                              29 0A = I AM
                              29 0C = AIYEEH
                              29 0E = ALSO
                              29 12 = DISASTER
                              29 14 = DIFFERENT
                              29 16 = EATS
                              29 18 = LIFE
                              29 1A = HEROINE
                              29 1C = THURSDAY
                              29 1E = RIGHT
                              2A 00 = GOLBAT
                              2A 01 = SEEDOT
                              2B 00 = ODDISH
                              2B 01 = NUZLEAF
                              2C 00 = GLOOM
                              2C 01 = SHIFTRY
                              2D 00 = VILEPLUME
                              2D 01 = NINCADA
                              2E 01 = NINJASK
                              2F 01 = SHEDINJA
                              30 01 = TAILLOW
                              31 01 = SWELLOW
                              31 04 = STATIC
                              32 01 = SHROOMISH
                              33 01 = BRELOOM
                              16 01 = GROVYLE
                              60 01 = GRUMPIG
                              90 01 = METAGROSS
                              99 01 = JIRACHI
                              9B 01 = CHIMECHO
                              03 02 = SAPPHIRE
                              02 02 = TRADE
                              01 02 = GOTCHA
                              09 02 = LINK
                              19 02 = SILVER
                              1A 02 = EMERALD
                              1C 00 = SANDSLASH
                              12 1A = COMPLETE
                              12 1C = ANOTHER
                              15 1C = WEDNESDAY
                              0F 1C = MONDAY
                              0E 1C = FRIDAY
                              05 1C = SOMETIME
                              07 0C = -
                              09 0C = UH-OH
                              19 0C = CRY
                              39 0C = LALALA
                              12 0C = WOW
                              13 0C = GIGGLE
                              01 0A = I
                              20 16 = KNOW
                              25 24 = THRASH
                              19 26 = MEGA KICK
                              00 27 = SWALLOW
                              66 26 = MIMIC
                              8C 26 = BARRAGE
                              42 24 = SUBMISSION
                              26 24 = DOUBLE-EDGE
                              27 24 = TAIL WHIP
                              00 28 = KTHX, BYE.
                              00 20 = WANDERING
                              2C 12 = EAT
                              0E 28 = LOSING
                              16 10 = WIN
                              18 26 = DOUBLE KICK
                              AF 24 = FLAIL
                              FB 26 = BEAT UP
                              01 27 = HEAT WAVE
                              07 26 = FIRE PUNCH
                              07 25 = FACADE
                              C8 24 = OUTRAGE
                              A4 26 = SUBSTITUTE
                              E7 24 = IRON TAIL
                              D5 26 = ATTRACT
                              B4 24 = SPITE
                              Reply With Quote
                                #770    
                              Old October 5th, 2015 (12:45 AM).
                              chrunch chrunch is offline
                              • Gold Tier
                               
                              Join Date: Oct 2009
                              Gender: Male
                              Posts: 1,349
                              If you've ever inserted a new map in Advance map, you might have noticed that you are unable to use fly on this map. The fix for this is simple: in the map header, swap to professional editing view using CTRL+H. Locate the byte in the image below, and if it is 00 change it to 01.



                              Note that the other bytes in your map header will likely be different to mine, this is the only one you have to be concerned about.
                              __________________
                              Reply With Quote
                                #771    
                              Old October 9th, 2015 (12:42 PM). Edited October 10th, 2015 by DoesntKnowHowToPlay.
                              DoesntKnowHowToPlay's Avatar
                              DoesntKnowHowToPlay DoesntKnowHowToPlay is offline
                              Tiny Umbrella with Lots and Lots of Good
                                 
                                Join Date: Jan 2012
                                Posts: 258
                                Quote:
                                Originally Posted by Deokishisu View Post
                                To Disable the Pokemon Substructure Permutations in Emerald:
                                Head to 076BEC in your hex editor. Change the 7C that is there to 00.

                                Incidentally, to disable the substructure permutations in Firered, head to 04C062 and change that 7C to 00 as well. Credits to Knizz's Firered.idb for that one, I'm posting it here because I haven't seen it anywhere other than the idb.]
                                I have no idea what this is supposed to do but it appears to be something related to DMA, not Pokemon substructures.

                                At any rate, this inspired me to work out how to get rid of the encryption surrounding them (all offsets for FR):

                                To unscramble the order, write 00 20 00 00 00 00 at x3F94C. This will always put them in order 0, (growth, attacks, EVs, misc.).

                                To remove the XOR encryption used for them, put 00 00 at x3F92A, x3F930, x3F906, x3F90C.

                                To remove the checksum reads, allowing for easy memory editor usage to tweak values, put 0B E0 at x3FDA8 and 0E E0 at x40530.

                                To remove the checksum writes, effectively adding two more bytes to the Pokemon structure to be used for whatever you feel like, put 00 00 at x40AE6.

                                For obvious reasons, this will ruin existing saves, but makes memory editing and Pokemon hacking simpler in addition to adding two more bytes to the Pokemon struct.
                                __________________

                                Yet Another Fire Red Hack

                                Physical/Special Split
                                Reply With Quote
                                  #772    
                                Old October 12th, 2015 (11:30 AM). Edited December 1st, 2015 by kleenexfeu.
                                kleenexfeu kleenexfeu is offline
                                   
                                  Join Date: Aug 2013
                                  Gender: Male
                                  Posts: 219
                                  Quote:
                                  Originally Posted by DoesntKnowHowToPlay View Post
                                  I have no idea what this is supposed to do but it appears to be something related to DMA, not Pokemon substructures.

                                  At any rate, this inspired me to work out how to get rid of the encryption surrounding them (all offsets for FR):

                                  To unscramble the order, write 00 20 00 00 00 00 at x3F94C. This will always put them in order 0, (growth, attacks, EVs, misc.).

                                  To remove the XOR encryption used for them, put 00 00 at x3F92A, x3F930, x3F906, x3F90C.

                                  To remove the checksum reads, allowing for easy memory editor usage to tweak values, put 0B E0 at x3FDA8 and 0E E0 at x40530.

                                  To remove the checksum writes, effectively adding two more bytes to the Pokemon structure to be used for whatever you feel like, put 00 00 at x40AE6.

                                  For obvious reasons, this will ruin existing saves, but makes memory editing and Pokemon hacking simpler in addition to adding two more bytes to the Pokemon struct.

                                  Theorically, this should do the same for Emerald :

                                  put 00 00 at 0x806A236, 0x806A23C, 0x806A25A and 0x806A260

                                  put 00 20 00 00 00 00 at 0806A27C

                                  0B E0 at 0x806A6D8, 0E E0 at 0x806ADFC

                                  and 00 00 at 0x806B3E4


                                  Thanks Doesnt

                                  EDIT : I can confirm it works, edit the data of the pokemon is easier than ever!
                                  __________________
                                  Links for my work:
                                  Dynamic Emerald Attack ROMbase
                                  Arceus and Giratina Forms

                                  Touched's Emerald IDB + Battle stuff (probably outdated)
                                  Touched's Emerald IDB 6.8 + Battle stuff (probably outdated)
                                  Reply With Quote
                                    #773    
                                  Old October 17th, 2015 (4:00 AM). Edited October 21st, 2015 by jirachiwishmaker.
                                  jirachiwishmaker's Avatar
                                  jirachiwishmaker jirachiwishmaker is online now
                                     
                                    Join Date: Jul 2007
                                    Location: Forina
                                    Gender: Male
                                    Nature: Lonely
                                    Posts: 75
                                    Quote:
                                    Originally Posted by Turtl3Skulll View Post
                                    Increasing Max Money Amount
                                    Spoiler:
                                    You can now hold up to 999 999 999 money! That's nearly 1000 times more money!
                                    This was never added to the manual, but JPAN talked about adding this in a future release, i dunno if it was added as of version 1.1, but here it is anyways:
                                    This replaces 7 bytes, and here's how to do it:

                                    Spoiler:
                                    In a Hexeditor goto:
                                    0809fdd4 replace |3f 42 0f 00| with |ff c9 9a 3b|------------------' (999999 for 999999999)
                                    In the following offsets replace that one byte from |06| to |09| ----'(6 digit display for 9 digit display)
                                    0808a006
                                    0809fe52
                                    0809fe62

                                    Done, you should be able to have that much money now.
                                    For Emerald to Increase Max Money Amount to match BW version:
                                    Spoiler:
                                    You can now hold up to 9999999 money!

                                    In a Hexeditor do the following changes:
                                    At 0xE5188 replace 3F 42 0F 00 with 7F 96 98 00 (999999 for 9999999).
                                    At 0xC36EE, 0xE0C50, 0xE0E48, 0xE5238, 0xE5248, 0x1AD6AA and 0x1AD884 replace 06 with 07 (6 digit display for 7 digit display).
                                    At 0xE1118, 0xE5204 and 0x1ABD06 replace 26 with 20 (fix the 7 digit display problem).


                                    Credits:
                                    JPAN for the original research
                                    Turtl3skulll for writing the Fire Red's dummies tutorial
                                    jiangzhengwenjzw for helping me to fix the 7 digit display problem
                                    Reply With Quote
                                      #774    
                                    Old October 17th, 2015 (4:50 AM).
                                    PurpleOrange's Avatar
                                    PurpleOrange PurpleOrange is offline
                                    still don't know what I'm doing
                                       
                                      Join Date: Sep 2013
                                      Location: Littleroot Town (UK)
                                      Age: 20
                                      Gender: Male
                                      Posts: 358
                                      Quote:
                                      Originally Posted by jirachiwishmaker View Post
                                      For Emerald to Increase Max Money Amount to match BW version:
                                      Spoiler:
                                      You can now hold up to 9999999 money!
                                      This replaces 7 bytes, and here's how to do it:

                                      In a Hexeditor goto:
                                      080E5188 replace 3F 42 0F 00 with 7F 96 98 00 (999999 for 9999999)
                                      In the following offsets replace that one byte from 06 to 07 (6 digit display for 7 digit display)
                                      080C36EE
                                      080E5238
                                      080E5248

                                      Done, you should be able to have that much money now.


                                      Credits:
                                      JPAN for the original research
                                      Turtl3skulll for writing the Fire Red's dummies tutorial first
                                      i tried this but the pokemart still displays 6 figures, this makes items not sell for the right price etc.
                                      __________________

                                      Reply With Quote
                                        #775    
                                      Old October 17th, 2015 (5:49 AM).
                                      jirachiwishmaker's Avatar
                                      jirachiwishmaker jirachiwishmaker is online now
                                         
                                        Join Date: Jul 2007
                                        Location: Forina
                                        Gender: Male
                                        Nature: Lonely
                                        Posts: 75
                                        Quote:
                                        Originally Posted by PurpleOrange View Post
                                        i tried this but the pokemart still displays 6 figures, this makes items not sell for the right price etc.
                                        No, this increasement of max money amount actually means that to increase the player's holding money amount. And the max of the price amount of the items is at only 65535.
                                        Reply With Quote
                                        Reply

                                        Quick Reply

                                        Join the conversation!

                                        Create an account to post a reply in this thread, participate in other discussions, and more!

                                        Create a PokéCommunity Account

                                        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:24 AM.