• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Tool: Pokémon Gen III Rom Hacking Suite

karatekid552

What happens if I push it?....
1,771
Posts
11
Years
  • Interesting. I've applied a bunch of IPS patches before, and I did it the same way this time - changing the name of the ROM to match the name of the IPS file. I've picked up that there is also a program that can do patching, but I'd never found it necessary before. Is there any reason the matching names method wouldn't be compatible with this?

    EDIT: I did notice one other thing: When I go to 0xFFFFFE and make sure the two bytes there are FFFF, I find it reverts to NOT FFFF if I reopen the ROM with HxD after opening with G3HS. (Actually, reversion may be the wrong word, as the values change). But If I close HxD and reopen it without loading G3HS, it remains FFFF. Does that agree with the clean ROM idea?

    *Facepalm*

    1) VBA has a built in auto-patcher on the fly. This means that it patches the rom every time you load it into it. That is why you never had to patch it to play. For hacking, you really do need to use a tool to patch it. VBA's patches only apply to the copy of the rom it loads into the ram.

    2) Read my documentation on the ini. Please.
     
    107
    Posts
    11
    Years
    • Seen Jan 30, 2016
    *Facepalm*

    1) VBA has a built in auto-patcher on the fly. This means that it patches the rom every time you load it into it. That is why you never had to patch it to play. For hacking, you really do need to use a tool to patch it. VBA's patches only apply to the copy of the rom it loads into the ram.

    2) Read my documentation on the ini. Please.

    Thank you. I have read the documentation, but I don't understand the vast majority of it. I know it must get tiring to keep telling people this same thing though.
     
    146
    Posts
    11
    Years
    • CO
    • Seen Mar 16, 2023
    Well I must say Karatekid that I am just loving this evolution expander ^_^

    Using your "Evolution Stone/Item creation tutorial" I added obviously a new stone
    then with G3HS I expanded the evolution of a particular Pokémon ;) to 8 an then wrote some XSE scripts up real fast, tested it and BAM!!!! Worked like a charm ^_^

    So I have to say... You sir are a Beast!!!! >_<

    I will keep up with testing it and let you know if I come across any bugs.
    I did want to ask though if it will ever be plausible to one day and new evolution types like Gender or Moss Covered rock?

    Also the "Evolution stone tutorial" I think is great but the only part I was stuck on was not knowing if I had to install japans hacked engine >_<
    After reading through a couple times though I realized...

    Thanks again though
    The community appreciates You an other tool makers alike
    for such hard work and determination...
     

    karatekid552

    What happens if I push it?....
    1,771
    Posts
    11
    Years
  • Thank you. I have read the documentation, but I don't understand the vast majority of it. I know it must get tiring to keep telling people this same thing though.

    Let me simplify it a bit:

    The ini is special. What it does is essentially tag the rom with a number when you first load it. This is the number at 0xFFFFFE. This number is read each time you load your rom. If it is FFFF, G3HS will copy a section based upon the 4 byte code at 0xAC to a new section of ini and assign it a number. If it is a number, it will search the ini for that number and use that instead to load things. This means you can customize your ini per rom without losing functionality for another rom.
     
    107
    Posts
    11
    Years
    • Seen Jan 30, 2016
    Let me simplify it a bit:

    The ini is special. What it does is essentially tag the rom with a number when you first load it. This is the number at 0xFFFFFE. This number is read each time you load your rom. If it is FFFF, G3HS will copy a section based upon the 4 byte code at 0xAC to a new section of ini and assign it a number. If it is a number, it will search the ini for that number and use that instead to load things. This means you can customize your ini per rom without losing functionality for another rom.

    I think I almost get it now. If I'm correct, since the tagging happens the first time I load the ROM, if I did something wrong, the not-right tag created still applies and screws things up. Which is why in that first instruction of yours I quoted (directed to someone else) you said that it's fine to change MrDS back to BPRE after the ROM is loaded the first time.

    FYI, using Lunar IPS to properly apply the patch did something, though I'm still clearly missing a step. While types are still blank and most abilities are /x, it's now only most, not all. Mega Launcher, Tough Claws, and Strong Jaw show up on the list. I'm currently going through the documentation with much Googling, in case I can figure out what I'm still doing wrong. But I've got progress.
     
    146
    Posts
    11
    Years
    • CO
    • Seen Mar 16, 2023
    As stated above by MrDollSteak

    Quote in English
    "You need to change BPRE to SDRM and FFFFFE bytes to FF FF instead of 00 01, or what is there.
    Then you can open the G3HS."
     

    karatekid552

    What happens if I push it?....
    1,771
    Posts
    11
    Years
  • I think I almost get it now. If I'm correct, since the tagging happens the first time I load the ROM, if I did something wrong, the not-right tag created still applies and screws things up. Which is why in that first instruction of yours I quoted (directed to someone else) you said that it's fine to change MrDS back to BPRE after the ROM is loaded the first time.

    FYI, using Lunar IPS to properly apply the patch did something, though I'm still clearly missing a step. While types are still blank and most abilities are /x, it's now only most, not all. Mega Launcher, Tough Claws, and Strong Jaw show up on the list. I'm currently going through the documentation with much Googling, in case I can figure out what I'm still doing wrong. But I've got progress.

    If the rom is tagged wrong, then you reset the tag by changing 0xFFFFFE to FFFF. Then it will reload the ini and retag everything. That is how this works. Once everything is tagged properly, the MrDS has no need, so it you can change it back.

    Well I must say Karatekid that I am just loving this evolution expander ^_^

    Using your "Evolution Stone/Item creation tutorial" I added obviously a new stone
    then with G3HS I expanded the evolution of a particular Pokémon ;) to 8 an then wrote some XSE scripts up real fast, tested it and BAM!!!! Worked like a charm ^_^

    So I have to say... You sir are a Beast!!!! >_<

    I will keep up with testing it and let you know if I come across any bugs.
    I did want to ask though if it will ever be plausible to one day and new evolution types like Gender or Moss Covered rock?

    Also the "Evolution stone tutorial" I think is great but the only part I was stuck on was not knowing if I had to install japans hacked engine >_<
    After reading through a couple times though I realized...

    Thanks again though
    The community appreciates You an other tool makers alike
    for such hard work and determination...

    Those can already be done with ASM, you just need to code them.;) While doesnt and I (mostly doesnt) were researching evolution routines, we found a nice table of routines for each of the evolution types. Repoint and expand this table, then edit it and you should be good. If you look in the ini, you will see all of the offsets that need to be changed by the evolution expander. If you look at the offsets, you will notice that most are in the same general area. Take the lowest of these offsets then move forward about 50 bytes and the table will be somewhere around there. Best to look at it in a debugger like IDA.
     
    146
    Posts
    11
    Years
    • CO
    • Seen Mar 16, 2023
    If the rom is tagged wrong, then you reset the tag by changing 0xFFFFFE to FFFF. Then it will reload the ini and retag everything. That is how this works. Once everything is tagged properly, the MrDS has no need, so it you can change it back.



    Those can already be done with ASM, you just need to code them.;) While doesnt and I (mostly doesnt) were researching evolution routines, we found a nice table of routines for each of the evolution types. Repoint and expand this table, then edit it and you should be good. If you look in the ini, you will see all of the offsets that need to be changed by the evolution expander. If you look at the offsets, you will notice that most are in the same general area. Take the lowest of these offsets then move forward about 50 bytes and the table will be somewhere around there. Best to look at it in a debugger like IDA.

    I see... I was just reading a research thread about it...
    If only my skills where in asm >_<

    I honestly really do wish I knew how to repoint and expand a table much less do the editing to make it all work >_<

    Trust me if I could do all that I would have had that bank system out by now >_<
    by the way if you know anyone willing to help with that let me know please ^_^
     
    84
    Posts
    14
    Years
    • Seen Jun 6, 2014
    Nice tool. However, I just dumped a firered to my pc and got an error using this.

    The header information of file POKEMON_FIRE_BPRE01.gba
    -----------------------------------------
    Software Title: POKEMON FIRE
    Game Serial: AGB-BPRE-USA
    Maker Code: 01
    Publisher: Nintendo
    Version: 1.1
    Logo Code: OK
    Complement: 67h
    Save Type: FLASH1M_V103 (1024Kbit)
    File Size: 128 mbit (16777216 bytes)
    CRC32: 84EE4776
    -----------------------------------------

    The header information of file 1636 - Pokemon Fire Red (U)(Squirrels).gba
    -----------------------------------------
    Software Title: POKEMON FIRE
    Game Serial: AGB-BPRE-USA
    Maker Code: 01
    Publisher: Nintendo
    Version: 1.0
    Logo Code: OK
    Complement: 68h
    Save Type: FLASH1M_V103 (1024Kbit)
    File Size: 128 mbit (16777216 bytes)
    CRC32: DD88761C
    -----------------------------------------

    The first one is my own dump, using some gba backup tool, and the one many get online
    Ys9bmMd.png

    FnUZ1jn.png


    I'm guessing it could possibly be related to the method being used to rip, but I don't know
     

    karatekid552

    What happens if I push it?....
    1,771
    Posts
    11
    Years
  • Nice tool. However, I just dumped a firered to my pc and got an error using this.

    The header information of file POKEMON_FIRE_BPRE01.gba
    -----------------------------------------
    Software Title: POKEMON FIRE
    Game Serial: AGB-BPRE-USA
    Maker Code: 01
    Publisher: Nintendo
    Version: 1.1
    Logo Code: OK
    Complement: 67h
    Save Type: FLASH1M_V103 (1024Kbit)
    File Size: 128 mbit (16777216 bytes)
    CRC32: 84EE4776
    -----------------------------------------

    The header information of file 1636 - Pokemon Fire Red (U)(Squirrels).gba
    -----------------------------------------
    Software Title: POKEMON FIRE
    Game Serial: AGB-BPRE-USA
    Maker Code: 01
    Publisher: Nintendo
    Version: 1.0
    Logo Code: OK
    Complement: 68h
    Save Type: FLASH1M_V103 (1024Kbit)
    File Size: 128 mbit (16777216 bytes)
    CRC32: DD88761C
    -----------------------------------------

    The first one is my own dump, using some gba backup tool, and the one many get online
    Ys9bmMd.png

    FnUZ1jn.png


    I'm guessing it could possibly be related to the method being used to rip, but I don't know

    Mhmmm, I am not sure. Why not run your rom through a hex editor and see if there are any differences between it and a clean FR rom? The second rom you have looks like a dump that was marked by the dumper, which could lead to data being in a different place. (I have found the MUGGs rom to be awful for hacking because of this).
     

    destinedjagold

    You can contact me in PC's discord server...
    8,593
    Posts
    16
    Years
    • Seen Dec 23, 2023
    Question...
    14wexys.jpg

    Why?
    I have expanded my ROM's number of attacks, by the way. =/


    edit...
    Nevermind, I have fixed my problem now by editing the .ini file: editing the offset of the attack name table, the total number of attacks, type name offset, and total number of types.
     
    Last edited:

    karatekid552

    What happens if I push it?....
    1,771
    Posts
    11
    Years
  • So, because of all of the errors, I am planning on coding a recovery feature. What it will do, is attempt to reload as much data from the rom as possible via the pointers and ASM routines. This should allow most loading errors to be fixed as most are caused by ini confusion. After it loads the offsets from the pointers, it will reassign the rom a new tag number and then setup the ini based upon what it finds in the rom itself.
     
    84
    Posts
    14
    Years
    • Seen Jun 6, 2014
    Good to hear. I haven't used hex editor in a couple of years so I forgot exactly how to search for the changes you mentioned, but my emerald dump worked just fine. I attempted to search the pokebasestats offset from the ini and got this
    Spoiler:

    Is this the difference?
     

    karatekid552

    What happens if I push it?....
    1,771
    Posts
    11
    Years
  • Good to hear. I haven't used hex editor in a couple of years so I forgot exactly how to search for the changes you mentioned, but my emerald dump worked just fine. I attempted to search the pokebasestats offset from the ini and got this
    Spoiler:

    Is this the difference?

    Yes, as you can see, the code is not aligned the same. The two tables are the same, but in two different locations. Obviously, I can't load something if I don't know where it is.:P

    DAMN! I just realized why I am recieving so many error reports. People are using roms like yours that are out of alignment to begin with. I am pretty much the first person to include error reporting within the program itself, so I guess most people didn't see this as an issue before. Maybe I should provide links to good roms on errors.....
     
    84
    Posts
    14
    Years
    • Seen Jun 6, 2014
    Do you think the different offsets could be from the 1.1/1.0, just having different dumps or would that kinda go hand in hand?
     

    Akiak

    dreamin'
    86
    Posts
    10
    Years
    • Seen Apr 10, 2024
    Hey, just signed up to say that this tool is fantastic, thanks so much!! Although now I'm on Windows, it's great to know that i'll still be able to use these on mac :)

    It seems like the only tool i really need right now is some sort of Ability editor, which actually changes what abilities do in-battle. I can't seem to find anything of the sort anywhere, so I was wondering: would you guys consider making such a tool in the future?
     

    karatekid552

    What happens if I push it?....
    1,771
    Posts
    11
    Years
  • Hey, just signed up to say that this tool is fantastic, thanks so much!! Although now I'm on Windows, it's great to know that i'll still be able to use these on mac :)

    It seems like the only tool i really need right now is some sort of Ability editor, which actually changes what abilities do in-battle. I can't seem to find anything of the sort anywhere, so I was wondering: would you guys consider making such a tool in the future?

    A tool that writes custom ASM for you? Now that would be sick. Like really sick.
     

    Akiak

    dreamin'
    86
    Posts
    10
    Years
    • Seen Apr 10, 2024
    A tool that writes custom ASM for you? Now that would be sick. Like really sick.

    Haha, well I was thinking of something similar to the Attack editor in PGE. Although that basically only chooses from a set of ready-made effects ~_~

    What if I want Intimidate to lower defense instead of attack, for example? Or what if I want an ability that combines two abilities (like insomnia and water veil)? Would that still require ASM hacking?
     

    ShyRayq

    Unprofessional Unprofessional
    1,856
    Posts
    16
    Years
    • Seen Apr 2, 2024
    Haha, well I was thinking of something similar to the Attack editor in PGE. Although that basically only chooses from a set of ready-made effects ~_~

    What if I want Intimidate to lower defense instead of attack, for example? Or what if I want an ability that combines two abilities (like insomnia and water veil)? Would that still require ASM hacking?

    Abilities are purely ASM. Just strewn across the rom. So...yes, you would still need ASM. But if its something like "Lower Def", that would just be changing a single byte/s I believe. But combining? Nope, needs more ASM.
     
    Back
    Top