• 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.

Code: Complete FireRed Upgrade

148
Posts
17
Years
  • Age 29
  • Seen Nov 21, 2023
If you have the DPE inserted in some rom (and you followed the recommended insertion instructions in the documentation), then it should work properly automatically in AdvanceMap for that rom.

You should be able to edit the BPRE.ini that comes with G3T. Change NumberOfMoves to 731, NumberOfAbilities to 238, NumberOfPokemon to 1101, NumberOfMoveTutors to 64, and NumberOfMaxEvolutions to 16 (assuming you changed EVOS_PER_MON to 16 after using the DPE).

Hmmm.. something must have went wrong then, the Pokemon shown in AM is just gibberish. I tried my very best to follow the instructions to a T, so I'm not sure where I went wrong. And for whatever reason, the movesets upon leveling in G3T are messed up to, and the new Pokemon in the wild just know struggle. Think there's a correlation there? You're welcome to message me on discord if you are interested in helping me one on one. I'm daviskd94 on there.
 
9
Posts
6
Years
  • Age 21
  • Seen Feb 18, 2022
THANX SKELI,
how can i setup special z crystals move type = 255 is not working.
am i right that all special z crystals have move type = 255?????
please help me....
 

Lance Koijer 2.0

Lance Koijer
105
Posts
6
Years
I was hoping to add new ability that works like Pixilate and Galvanize..

In this new type-boosting ability, it tends to boost Dragon-type Moves and my newly-added type.

However, I checked the src folder and the ability file, there's no section there that manages the Pixilate and Galvanize ability.
 
132
Posts
9
Years
  • Age 23
  • Seen Apr 21, 2024
I was hoping to add new ability that works like Pixilate and Galvanize..

In this new type-boosting ability, it tends to boost Dragon-type Moves and my newly-added type.

However, I checked the src folder and the ability file, there's no section there that manages the Pixilate and Galvanize ability.

The -ate abilities are handled in the src file damage_calc.c.

Is the Dynamic Pokemon Expansion actually necessary for this to work, or can it still be applied without it?

EDIT: Also, in the ability_name_table.string file, why are Water Compaction and Power of Alchemy truncated when they're both exactly 16 characters?
 
Last edited:
239
Posts
8
Years
  • Age 31
  • Seen Apr 15, 2024
THANX SKELI,
how can i setup special z crystals move type = 255 is not working.
am i right that all special z crystals have move type = 255?????
please help me....
The move type is not 0xFF, the item quality is. See the documentation for step-by-step instructions.

I was hoping to add new ability that works like Pixilate and Galvanize..

In this new type-boosting ability, it tends to boost Dragon-type Moves and my newly-added type.

However, I checked the src folder and the ability file, there's no section there that manages the Pixilate and Galvanize ability.
To go off of what Z-nogyroP said, search for ABILITY_PIXILATE or other to see how they are handled. you can add new case statements for your new -ate abilities. Don't forget to define their values in include/constants/abilities.h

The -ate abilities are handled in the src file damage_calc.c.

Is the Dynamic Pokemon Expansion actually necessary for this to work, or can it still be applied without it?

EDIT: Also, in the ability_name_table.string file, why are Water Compaction and Power of Alchemy truncated when they're both exactly 16 characters?

The CFRU can certainly be applied without the DPE. I believe the 16char limit includes the 0xFF terminator (thus ability names of 15 bytes). You could increase the ability character limit but you might run into text run-off issues.
 

Lance Koijer 2.0

Lance Koijer
105
Posts
6
Years
Sorry to ask many questions...
Uhmm if I apply this, expanded OW will be applied too, right?
I checked the document and it only discusses the EXISTING_OW_TABLE_ADDRESS which is in 0x81A2000. However, upon echecking that address, it does not contain the generated OW Table. I also checked some addresses that are related to OW and found nothing.
 
132
Posts
9
Years
  • Age 23
  • Seen Apr 21, 2024
Do Draining Kiss and Oblivion Wing absorb the correct percentage of HP? I've been searching around but I can't find anything that would indicate that they do.

Also, what would be a good tool for editing TM compatibilities without using the DPE? G3T, as far as I can tell, doesn't let you do that.
 

Skeli

Lord of the Rings
300
Posts
10
Years
Also, in the ability_name_table.string file, why are Water Compaction and Power of Alchemy truncated when they're both exactly 16 characters?
Going off of what Ghoulslash said, the names for those two abilities were intentionally shortened due to other graphical issues related to their name length. You can read the documentation on how to expand the text limit, but you have been warned.

Sorry to ask many questions...
Uhmm if I apply this, expanded OW will be applied too, right?
I checked the document and it only discusses the EXISTING_OW_TABLE_ADDRESS which is in 0x81A2000. However, upon echecking that address, it does not contain the generated OW Table. I also checked some addresses that are related to OW and found nothing.
By default that line is commented out and the engine does not expand the overworld tables to there. That is an exmaple for if you have already expanded the overworld tables yourself. The actual tables generated by the engine can be found in src/character_customization.c.

Do Draining Kiss and Oblivion Wing absorb the correct percentage of HP? I've been searching around but I can't find anything that would indicate that they do.

Also, what would be a good tool for editing TM compatibilities without using the DPE? G3T, as far as I can tell, doesn't let you do that.
Draining kiss didn't (it's fixed now), but Oblivion Wing did. Thank you for mentioning this!
Before I used the DPE, I found that D&D worked well for me. It also supports the hidden ability and expanded movesets implementations.

Been having a lot of fun playing around with this. Just wanted to report some bugs I have encountered while playing around with this. I applied this engine to a normal Firered ROM only using a music ROM base + Dynamic Pokemon Expansion.
Spoiler:
These bugs have now all been fixed. Thank you!
 

Lance Koijer 2.0

Lance Koijer
105
Posts
6
Years
Going off of what Ghoulslash said, the names for those two abilities were intentionally shortened due to other graphical issues related to their name length. You can read the documentation on how to expand the text limit, but you have been warned.


By default that line is commented out and the engine does not expand the overworld tables to there. That is an exmaple for if you have already expanded the overworld tables yourself. The actual tables generated by the engine can be found in src/character_customization.c.


Draining kiss didn't (it's fixed now), but Oblivion Wing did. Thank you for mentioning this!
Before I used the DPE, I found that D&D worked well for me. It also supports the hidden ability and expanded movesets implementations.


These bugs have now all been fixed. Thank you!

I found it already, thanks man!
Question is, should I add the new table after th original table..

Like:
Code:
(NPCPtr*) 0x839FDB0,
(NPCPtr*) 0x8900000, //new OW Table
(NPCPtr*) 0x8910000,
(NPCPtr*) 0x0,

EDIT: Got it correctly. I found the new OW Table in 0x9C97DD8 however, OWM still reads the original table which is at 0x805F2F4
 
Last edited:

Skeli

Lord of the Rings
300
Posts
10
Years
I found it already, thanks man!
Question is, should I add the new table after th original table..

Like:
Code:
(NPCPtr*) 0x839FDB0,
(NPCPtr*) 0x8900000, //new OW Table
(NPCPtr*) 0x8910000,
(NPCPtr*) 0x0,

EDIT: Got it correctly. I found the new OW Table in 0x9C97DD8 however, OWM still reads the original table which is at 0x805F2F4
If you're still using the original table (ie NPCs 0-151 can still be found in the table 0x839FDB0) then yes. Otherwise if you've repointed the original table to 0x8900000, remove the line (NPCPtr*) 0x839FDB0,.

0x805F2F4 is the location where the pointer to your first overworld table is stored. I'm not too sure on how OWM works, but I'm going to update the documentation soon with explanations on how to add new OW sprites and scripts using the CFRU, so tools like OWM and XSE will no longer be needed.
 
132
Posts
9
Years
  • Age 23
  • Seen Apr 21, 2024
This engine is really impressive and I'm definitely going to use it for something. Some minor things to fix for the purposes of polish:

Move Stat Errors
Spoiler:


Ability Description Errors
Spoiler:


Suggested Ability Description Replacements
Spoiler:


Move Description Changes
Spoiler:
 
1
Posts
4
Years
  • Age 28
  • Seen Nov 17, 2019
I need a little bit of help It will not let me edit the python file should i restart my computer?
 
10
Posts
11
Years
  • Seen Aug 6, 2021
@Skeli
"Is 0x08800FB8 your table of overworld tables? Or is it the pointer to overworld table 0?"

I think it is the hex address of the overworld table. In Overworld Editor - Rebirth Edition its the "Spritebank" address. In OWM this hex value can be found at the "Data Address". It should be the address where the overworld sprites are located, as the Overworld Editor - Rebirth Edition tool finds the overworld sprites at this address.

Maybe I don't know how to change this hex address into the 08 format. I assume that the hex address of the overworld table of my hack is located at: 0x96F71C, as stated above. It would be amazing if I could make your tool work.

Edit: the 'python scripts//make.py' script isn't working anymore for some reason. When I hit the enter button my cmd screen flashes and nothing happened. It was still working when I last tried it last month.
 
10
Posts
6
Years
  • Age 30
  • Seen Nov 4, 2022
How I Get Tables of New rom in ini?
only get a specific adress of image and atacks,
how get new pointers tables, for G3HS
 
10
Posts
6
Years
  • Age 30
  • Seen Nov 4, 2022
I have a error in get any item added by this upgrade
I test get all pokeballs, this is the script:
Spoiler:


Get all pokeball from vanilla normaly, but any other trasform "?????????????????" item
Hex number is not correct?
Get all is "Asm_defines.s"
 
Last edited by a moderator:

colonelsalt

Guaranteed to raise the smile
111
Posts
11
Years
Thanks so much for pulling this off - this is beyond marvellous, and makes me feel the ROM hacking community is still alive and thriving.
The main post mentions "improvements" to JPAN's engine - have graphical glitches related to OW surfing and dynamic backsprite palettes been fixed or adjusted at all?
 

Skeli

Lord of the Rings
300
Posts
10
Years
This engine is really impressive and I'm definitely going to use it for something. Some minor things to fix for the purposes of polish:
Thank you so much! I added in all your recommended changes. If you're interested in proofreading more, we recently added more attack and abilities descriptions to the CFRU for the new Sword and Shield mechanics.

I need a little bit of help It will not let me edit the python file should i restart my computer?
Try opening it in notepad. If you double click it, it won't do anything.

@Skeli
"Is 0x08800FB8 your table of overworld tables? Or is it the pointer to overworld table 0?"

I think it is the hex address of the overworld table. In Overworld Editor - Rebirth Edition its the "Spritebank" address. In OWM this hex value can be found at the "Data Address". It should be the address where the overworld sprites are located, as the Overworld Editor - Rebirth Edition tool finds the overworld sprites at this address.

Maybe I don't know how to change this hex address into the 08 format. I assume that the hex address of the overworld table of my hack is located at: 0x96F71C, as stated above. It would be amazing if I could make your tool work.
I took a look at the "Spritebank" address and that seems to be a pointer to the data for overworld sprite 0 (unless my version is outdated which is likely). When you go there in your rom, does it look like a table or overworld data? If it's overworld data, it'll start with FF FF.

Edit: the 'python scripts//make.py' script isn't working anymore for some reason. When I hit the enter button my cmd screen flashes and nothing happened. It was still working when I last tried it last month.
Try pulling the latest version and restarting your computer.

The main post mentions "improvements" to JPAN's engine - have graphical glitches related to OW surfing and dynamic backsprite palettes been fixed or adjusted at all?
Yes, they've all been fixed. Both the custom overworld sprite and backsprite system was implemented properly this time (they're different than JPANs). Functionality wise, the custom player overworld sprite is set up similar to how JPAN handled it, but the backsprite system is completely new.
 
10
Posts
11
Years
  • Seen Aug 6, 2021
@Skeli
I have checked the Spritebank address "96F71C" in my hex editor. It indeed starts with FF FF followed by a lot of data. I think this is the overworld data address.

Do you think I should put 0x0896F71C in the src/config file as following:

#define EXISTING_OW_TABLE_ADDRESS 0x0896F71C

Or do I need the address of the table instead of the overworld data?

------------------------------------

If there perhaps a plan B. A way to ignore the character customizations patch, and other related CFRU updates, so I don't have this situation to begin with?
 

ServantClass-Ruler

Apocryphal
3
Posts
7
Years
  • Age 21
  • Seen Mar 30, 2024
Out of curiousity, is the syntax and calls for the new mugshot system compatible with the pokeemerald disassembly, or is it too different? That aside, this engine looks absolutely amazing, and I can easily see myself breaking out some files from my old computer to retry ASM hacking again. Best of luck going forward to everyone!
 
Back
Top