• 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

3
Posts
8
Years
  • Age 31
  • Seen Nov 6, 2021
I keep receiving the following error:
Assembling ./assembly/triple_layer_blocks.s
Error! The assembler could not be located.
Are you sure you set up your path to devkitPro/devkitARM/bin correctly?

Attempting to compile in Terminal on Mac. Current PATH is as follows:

/Library/Frameworks/Python.framework/Versions/3.7/bin:/opt/devkitpro/pacman/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

I've searched all over online and found very little to assist in this issue. Any help would be appreciated
 

Skeli

Lord of the Rings
300
Posts
10
Years
Whoa! This one is a dream come true for many people who aren't good at scripting...

I have a few questions:
  • Is this engine compatible with expanded ROMs (i.e. 32MB)?
  • Is this engine compatible with this fix?
  • Can this engine expand the usable map headers/names to 255 and add fly points?
  • It is compatible with expanded ROMs.
  • There's no reason it shouldn't be.
  • If you've done that yourself it shouldn't conflict with it.

CAN ANYONE HELP ME?????
I tried too much but i failed to setup mega evolution, z-moves and ultra burst. i also read documentation but i not understand.
I use pokemon dynamic expansion,
is there any tutorial for setup mega evolution, z-moves and ultra burst..
What problems are you having?

First of all, I really want to thank you for your work. It sounds and looks amazing. So, I really want to set this up but I'm having a bit of a problem. I've read the CFRU documentation and managed to patch the game with the Dynamic Pokemon Expansion and also generated the test.gba with the CFRU patch. It boots up just fine, and I did follow the steps to expand the TMs modifying the src/config.h. I uncommented the necessary line and also changed the amount from 50 to 120 but when I load the rom in G3T, I'm not able to see any change at all. I do want apologize if it's because of something really simple, I'm very new at rom hacking. Dunno if it's something that I have to change in the G3T .ini file.

I guess my question really is, how can I make sure that the TMs/HMs are expanded? Do I have to edit other Items or free spaces in the G3T to make the TMs? Because I can see the TMs are in the "include/constants/items.h" file. I just don't know how to actually work with them. Also, if I do end up having to edit the other Items or ???? spaces in the G3T, how do I actually expand the amount of items? Because after I apply the CFRU patch, it shows the same amount of items in the G3T tool and no other new items or free space to edit. If someone could help me out a bit, I'd really appreciate it.
You won't see a change in G3T for items just by building the engine. The CFRU doesn't actually any new items in. There should be tutorials around Pokecommunity on how to do that yourself.

This is, once again, amazing and is considered already the best engine for Fire Red.
Some questions though:
1. Abilities and moves are expanded once the upgrade is installed. However, the items remain the same. If I am right, this does not expand the item. It has to be me that will expand it and should follow the correct Item List in Master file in order for me to get no error or else I will be modifying the list.
2. Does this allow regional pokedex? If so, how? Or what file I should customize? I tried browsing it and I only found Pokedex and species which I don't know if editing it would be a good idea.
1. Correct, it doesn't expand the items. You can either follow the master list or you can insert the items however you like and update the file, like you said.
2. There's nothing to modify the regional Pokedex yet. It may be added to the DPE in the future.

I had to build the project using the WSL bash console since for some weird reason it never compiled using cmd/powershell. Besides that the project is the best resource ever created for FireRed. I do apprecite the effort made by the developers. It is so sad it won't work with my hack. I guess is so advanced in development so it crashesh right after the titlescreen.

Nice job!
Have you inserted Ipatix's high quality sound mixer? I believe the save expansion may cause a conflict and crash the game after the titlescreen. What happens if you comment out the line in the config file that expands the saveblock (don't forget to clean first)?
 
81
Posts
8
Years
  • Age 26
  • Seen Oct 26, 2023
Thanks so much for doing this. It's super impressive, and I really appreciate that I can add it in to my existing hack.

Quick question - what file should I edit to change which hidden ability a Pokemon has?
 

Lance Koijer 2.0

Lance Koijer
105
Posts
6
Years
Hello! I tried inserting new type aside of Fairy in your engine.
I replaced the picture with the new picture consisting my desire type and updated the type_tables.s. I added everything needed however I got an error that the type I inserted is not defined yet.

How am I gonna define the type I just added?

EDIT: I tried editing the asm_defines.s to add the TYPE_MANA and I still got the same error.
 
Last edited:
56
Posts
5
Years
  • Age 28
  • Seen Nov 17, 2023
How customizable is this? I'd love to insert the battle engine, attacks, abilities, etc from this into my hack that is already very far along, but I'd like to keep my own custom D/N system, battle terrain system, etc. In other words, is the battle engine tied into too many of the other features to use just the battle engine itself?
 
Last edited:
7
Posts
5
Years
  • Age 24
  • Seen May 21, 2023
If someone were to make an easy to use tool to implement this engine while still giving the user the ability to customize what they want in or out, this would probably become the base for almost all fire red hacks in the future
 
10
Posts
11
Years
  • Seen Aug 6, 2021
The engine looks super amazing! Unfortunately, I havent had much success implementing it though.

1) On a vanilla firered ROM it looks like some scripts are crashing a game. For instance, after receiving a Pokemon in OAKS lab leaving the game crashed while showing this message: "This POK\eMON is really quite\nenergetic!".
And similarly while healing my Pokemon at a Pokemon Center after saying: "We've restored your POK\eMON to\lfull health."

2) I have tried to apply this engine to my own ROM hack aswell. I have already repointed the OW npc table (through Overworld Manager) to the following offset: 0x96F71C (Data Address in Overworld Manager)
I tried to edit this offset into the src/config file:

#define EXISTING_OW_TABLE_ADDRESS 0x96F71C

When I boot the game it crashes on the naming your character screen. The screen also got a little bit darker. The Overworld sprites are still showing in Overworld Manager or in other tools though. Did I forget a necessary step?
Is the character customization responsible for this? Can I disable this feature to prevent this scenario from happening?

3) When I dont change the OW npc table offset in the src/config, the game doesnt freeze. However, I cant see any Overworld sprites. I can still see every sprite in Overworld Manager or in other tools. What can I do to make the Overworld sprites appear again?
 
Last edited:
239
Posts
8
Years
  • Age 31
  • Seen Apr 15, 2024
Thanks so much for doing this. It's super impressive, and I really appreciate that I can add it in to my existing hack.

Quick question - what file should I edit to change which hidden ability a Pokemon has?

You won't need to edit any file, you can assign the ability ID with G3T (or other editor). It is the 26th byte in the base stats table. I've updated the documentation with a screenshot of what field to edit.

Hello! I tried inserting new type aside of Fairy in your engine.
I replaced the picture with the new picture consisting my desire type and updated the type_tables.s. I added everything needed however I got an error that the type I inserted is not defined yet.

How am I gonna define the type I just added?

EDIT: I tried editing the asm_defines.s to add the TYPE_MANA and I still got the same error.

have you tried editing the definition of the type to asm_defines.s?

If someone were to make an easy to use tool to implement this engine while still giving the user the ability to customize what they want in or out, this would probably become the base for almost all fire red hacks in the future

The engine is the tool. Learning how to compile the engine is pretty easy as far as hacking is concerned.

The engine looks super amazing! Unfortunately, I havent had much success implementing it though.

1) On a vanilla firered ROM it looks like some scripts are crashing a game. For instance, after receiving a Pokemon in OAKS lab leaving the game crashed while showing this message: "This POK\eMON is really quite\nenergetic!".
And similarly while healing my Pokemon at a Pokemon Center after saying: "We've restored your POK\eMON to\lfull health."

2) I have tried to apply this engine to my own ROM hack aswell. I have already repointed the OW npc table (through Overworld Manager) to the following offset: 0x96F71C (Data Address in Overworld Manager)
I tried to edit this offset into the src/config file:

#define EXISTING_OW_TABLE_ADDRESS 0x96F71C

When I boot the game it crashes on the naming your character screen. The screen also got a little bit darker. The Overworld sprites are still showing in Overworld Manager or in other tools though. Did I forget a necessary step?
Is the character customization responsible for this? Can I disable this feature to prevent this scenario from happening?

3) When I dont change the OW npc table offset in the src/config, the game doesnt freeze. However, I cant see any Overworld sprites. I can still see every sprite in Overworld Manager or in other tools. What can I do to make the Overworld sprites appear again?

You forgot the 0x08 prefix before your overworld table. It should be:
Code:
#define EXISTING_OW_TABLE_ADDRESS 0x0896F71C
Admittedly, the engine messes up compatability with overworld manager in certain cases. That's the problem with tools that automatically repoint data :/

How customizable is this? I'd love to insert the battle engine, attacks, abilities, etc from this into my hack that is already very far along, but I'd like to keep my own custom D/N system, battle terrain system, etc. In other words, is the battle engine tied into too many of the other features to use just the battle engine itself?

Rather than remove those features from the engine (they might be hard-coded, but Skeli would know better), you could set up the definitions to match the features you've already implemented. For example, adding your own battle terrain images and compiling them with the engine, or edit the terrain table with a specified offset of where your images are located in your rom.
 
Last edited:
9
Posts
6
Years
  • Age 21
  • Seen Feb 18, 2022
I successfully added mega evolution, primal reversion and ultra burst.
also I added z-moves but there was a problem, it works on the following type:-
00=Normal
01=Fighting
02=Flying
03=Poison
04=Ground
05=Rock
06=Bug
07=Ghost
08=Steel

but other types are not working ( fire , dragon, fairy, dark, water, grass etc.)
Ithink the problem is move type..........

my G3T \customization \ pokemon editor file is :-

00=Normal
01=Fighting
02=Flying
03=Poison
04=Ground
05=Rock
06=Bug
07=Ghost
08=Steel
09=???
0A=Fire
0B=Water
0C=Grass
0D=Electric
0E=Psychic
0F=Ice
10=Dragon
11=Dark
18=Fairy

IS THERE ANY PROBLEM IN THIS FILE??
 
10
Posts
6
Years
  • Age 30
  • Seen Nov 4, 2022
Hi people, I not a coder , but I try all many forms and not have a result.
If anyone can help to make a base from me I thanks in advance

FR vanilla + Complete FireRed Upgrade +
Black &White Pokémon Summary Screen +
Dynamic Pokémon Expansion +
Overworld Form Change +
Sideways Stairs + Nature Coloured Stats

and this is the config file I want.

Config.h
https:// gofile.io /?c= JApxBD

This is oly for a base with new specials , zmove, mega .
this resounce is amazing and I realy thanks in advance
 
10
Posts
11
Years
  • Seen Aug 6, 2021
@ghoulslash
Thank you for your feedback. I still couldnt fix it in whatever way. This is what I did:

1. Opened a vanilla Firedred ROM in OWM (Overworld Manager)

2. The tool repointed the data to the following addresses

Table Menu
Table Address: 0x5F2F4
Pointers Address: 0x800BAC
Data Address: 0x800FB8
Frames Pointers: 0x8033BC
Frames Address: 0x807BC0

3. I made many back-ups so I could try many addresses to make sure I get the right repointer

4. I tried changing the "#define EXISTING_OW_TABLE_ADDRESS" to "0x08800FB8" in the srv/config file . I also tried many others as well such as Table Address "0x085F2F4".

/*===== Pre-existing Offsets =====*/
//#define EXISTING_FOSSIL_IMAGE_TABLE_ADDRESS 0x81a4600 //Uncomment this if you've already inserted a fossil image table
#define EXISTING_OW_TABLE_ADDRESS 0x08800FB8 //Uncomment if you don't want new overworld NPC tables to be generated.

5. I prepared the game by using the "python scripts//make.py" script.

6. When openeing the file, the screen got dark while running the name player scene. The main character sprite als disappeared.


At this point I start to wonder, what is going wrong? Is the engine just not compatible with repointed overworld data? Or did i do something wrong?
 
Last edited:
10
Posts
6
Years
  • Age 30
  • Seen Nov 4, 2022
Now Im done, but have a bug - game freeze in battle
Is only - Vanilla FR > B/W Menu >Expanded Pokemon (Work fine)> FR upgrade , after this game freeze in animation attack
 
41
Posts
4
Years
Miniking 666, I think it's better to first expand the Pokémon and then use the fire red upgrade.
Try this and see if this freezing problem is solved.
 
Last edited:
10
Posts
6
Years
  • Age 30
  • Seen Nov 4, 2022
Re copile all again now attacks work fine,
in use TMHMexpansion begin a error on copiler
now error is not evolve pokemon
 
148
Posts
17
Years
  • Age 29
  • Seen Nov 21, 2023
I for the life of me cannot get this to compile. I've set up the path in my system variables as ;C:\devkitPro\devkitARM\bin, which I copied the address exactly from my bin folder, and when I try to run in CMD, I get
Assembling ./assembly\main.s
Error! The assembler could not be located.
Are you sure you set up your path to devkitPro/devkitARM/bin correctly?

I've been at this for hours and nothing I do works.
 

Mystery Man

Don't be like me!
207
Posts
12
Years
  • Age 28
  • Seen Aug 21, 2023
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:
 
Last edited:
148
Posts
17
Years
  • Age 29
  • Seen Nov 21, 2023
I managed to get it working. I honestly don't know what I was doing wrong, but I just re did it and it worked.

Anyways, I feel I should report that this engine is not compatible with Leon's Ultimate Rom Base, though considering how much that game changed, it should come as no surprise. So if I want to use this engine, I'll have to completely restart progress on my game. I'm still determining whether or not it's going to be worth it, since I've already put so much into it.

Edit: So I'm trying to get this and the Dynamic Pokemon Expansion going together, but the game doesn't start when I do so. As soon as I hit the A button it goes to a black screen and doesn't continue. Are there steps I'm missing?
 
Last edited:

Skeli

Lord of the Rings
300
Posts
10
Years
How customizable is this? I'd love to insert the battle engine, attacks, abilities, etc from this into my hack that is already very far along, but I'd like to keep my own custom D/N system, battle terrain system, etc. In other words, is the battle engine tied into too many of the other features to use just the battle engine itself?
Is there anything specific your D/N system has that the CFRU's doesn't?

Thanks so much for doing this. It's super impressive, and I really appreciate that I can add it in to my existing hack.

Quick question - what file should I edit to change which hidden ability a Pokemon has?
Adding on to what Ghouslash said, if you're using the Dynamic Pokemon Expansion, just change the field for .hiddenAbility in Base_Stats.c.

I successfully added mega evolution, primal reversion and ultra burst.
also I added z-moves but there was a problem, it works on the following type:-
Spoiler:


but other types are not working ( fire , dragon, fairy, dark, water, grass etc.)
Ithink the problem is move type..........

my G3T \customization \ pokemon editor file is :-

Spoiler:


IS THERE ANY PROBLEM IN THIS FILE??
Fairy should be 17, not 18. Are you sure you followed the steps to set up the Z-Moves and Z-Crystals correctly? If the types after ??? don't match then they won't work.

4. I tried changing the "#define EXISTING_OW_TABLE_ADDRESS" to "0x08800FB8" in the srv/config file . I also tried many others as well such as Table Address "0x085F2F4".

/*===== Pre-existing Offsets =====*/
//#define EXISTING_FOSSIL_IMAGE_TABLE_ADDRESS 0x81a4600 //Uncomment this if you've already inserted a fossil image table
#define EXISTING_OW_TABLE_ADDRESS 0x08800FB8 //Uncomment if you don't want new overworld NPC tables to be generated.

5. I prepared the game by using the "python scripts//make.py" script.

6. When openeing the file, the screen got dark while running the name player scene. The main character sprite als disappeared.

At this point I start to wonder, what is going wrong? Is the engine just not compatible with repointed overworld data? Or did i do something wrong?
Is 0x08800FB8 your table of overworld tables? Or is it the pointer to overworld table 0?

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:
Thank you for reporting these!

I managed to get it working. I honestly don't know what I was doing wrong, but I just re did it and it worked.

Anyways, I feel I should report that this engine is not compatible with Leon's Ultimate Rom Base, though considering how much that game changed, it should come as no surprise. So if I want to use this engine, I'll have to completely restart progress on my game. I'm still determining whether or not it's going to be worth it, since I've already put so much into it.

Edit: So I'm trying to get this and the Dynamic Pokemon Expansion going together, but the game doesn't start when I do so. As soon as I hit the A button it goes to a black screen and doesn't continue. Are there steps I'm missing?
Usually restarting the computer solves the problem you were having.
Did you insert the DPE before the CFRU?
 
Last edited:
148
Posts
17
Years
  • Age 29
  • Seen Nov 21, 2023
Usually restarting the computer solves the problem you were having.
Did you insert the DPE before the CFRU?

I managed to get it working after working with Ghouslash over discord, however for some reason it would completely disregard whatever offset I would try to insert the DPE at, and would just default to D00000, no matter what I did. Instead of trying to fix it, I just worked around it and now my rom has the patches I applied, and a working DPE and CRFU. However, I have a new set of questions.

1. How do I set up Advance Map to read in the Pokemon data? Right now it's all gibberish and I can't properly select Pokemon for the wild encounters.
2. How do I set up G3T for maximum compatibility with the engine? Right now it's only showing Pokemon up to Chimecho, no new items, and an error when I select a Pokemon that has a mega.
3. How should I properly use the Dynamic Palletes for the overworlds? I've always used OWM, but I've read on this thread that since it auto repoints, it doesn't play well with the engine. What editor should I use for the overworlds, and how do I give it a custom palette?
4. How do I use the flags and vars that the documentation talks about when making a script, like FLAG_INVERSE for example. Would I do it like "setflag FLAG_INVERSE" in my script? And would I be able to do the same thing with Pokemon/Items?

Thanks in advance, this engine is fantastic and I want to be able to use it as well as my imagination will take me!
 

Skeli

Lord of the Rings
300
Posts
10
Years
now error is not evolve pokemon
If you're using the DPE with the CFRU, make sure to update EVOS_PER_MON to 16 in the config file.

1. How do I set up Advance Map to read in the Pokemon data? Right now it's all gibberish and I can't properly select Pokemon for the wild encounters.
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.

2. How do I set up G3T for maximum compatibility with the engine? Right now it's only showing Pokemon up to Chimecho, no new items, and an error when I select a Pokemon that has a mega.
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).

3. How should I properly use the Dynamic Palettes for the overworlds? I've always used OWM, but I've read on this thread that since it auto repoints, it doesn't play well with the engine. What editor should I use for the overworlds, and how do I give it a custom palette?
The dynamic palettes are automatic. It simply means the palettes are loaded when an NPC is encountered as opposed to the standard 16. If you want to use custom palettes, you just need to repoint the overworld palette table and add new entries. I used to use NSE 2.0 for overworlds, but now I use the CFRU to insert them for me. It's much easier. There are a few mini tutorials I still want to write for the CFRU, and one of them is how to use it for overworld sprites.

4. How do I use the flags and vars that the documentation talks about when making a script, like FLAG_INVERSE for example. Would I do it like "setflag FLAG_INVERSE" in my script? And would I be able to do the same thing with Pokemon/Items?
Exactly. Just make sure you use a #define in your script first, or replace it with the flag number
 
Back
Top