• 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

4
Posts
5
Years
  • I've followed the instruction, but when i run the make.py it always says this
     

    Attachments

    • eror.PNG
      eror.PNG
      9.8 KB · Views: 58
    265
    Posts
    11
    Years
  • @jastolze007 yes, because the author of the romhack replaced the old mons with the new mons. I am sure he updated the items or included new items this and that. who knows maybe he even replaced the old moves with the new moves? so overall you can't update it or rather I say that game doesn't need any update and perfectly fine on its own.


    @Necaca, I had say if you can't even make this engine work then don't even bother thinking of finding patch. That will be end up full of nothingness because you can't even edit stuff. Just make sure to read the instructions very throughly.
     
    Last edited:
    10
    Posts
    11
    Years
    • Seen Aug 6, 2021
    @Skeli
    Thank for your help so far. We are getting closer! Could you please help me with the problem cited at "2"?

    1. I have followed your advise and I think that I found the pointer to my overworld data. I can indeed find 1C F7 96 08 data in hex at this address. So this time I have used the pointer instead of the overworld data address, as you told me to do. The pointer address is "0x2CA83C". I have tried to put that in the src/config file as my "EXISTING_OW_TABLE_ADDRESS"

    //#define 0x2CA83C

    However, it didnt solved the problem, as my screen turned black in my character naming screen.


    2. Luckily you also gave me a second option. I used my overworld data address in the src/character_customization file like this:

    #ifdef EXISTING_OW_TABLE_ADDRESS
    #define gOverworldTableSwitcher ((struct EventObjectGraphicsInfo***) 0x0896F71C)

    This time my game didnt crash during the character naming screen. :) Unfortunately I couldnt see any overworld sprites appear on the map, including the players sprite. The game is playable though, outside of some crashing scripts in my progressed hack.

    Strangely enough the same happens when I apply the CFRU, following the README steps very carefully, to a vanilla fire red ROM. Something is really going wrong here. I obviously havent made any changes to the files, but after the CFRU update every overworld disappeared on the map.

    Do you have any idea to fix this problem?


    3. Please note that Python 3.8 (newest version) doesn't work when you try to apply the CFRU according to the README steps. This could also explain the feedback from some other users in this thread. I had to download version 3.7.3 of Python to make it work!

    After you try the python scripts//make.py script, nothing will happen with Python 3.8!

    Thank you
     
    Last edited:
    22
    Posts
    11
    Years
    • Seen Jun 14, 2020
    When this patch is applied, are there any tools that can handle modifying the pokemon data?
     

    ShyRayq

    Unprofessional Unprofessional
    1,856
    Posts
    16
    Years
    • Seen Apr 2, 2024
    When this patch is applied, are there any tools that can handle modifying the pokemon data?

    According to the first post, using G3T is recommended. You'll most likely have to change the ini to reflect the changes made by CFRU.
    However, it seems that it may be a bit easier to just change the original files prior to applying the upgrade to your rom.
     
    1
    Posts
    4
    Years
    • Seen Dec 5, 2019
    This engine is definitely amazing. However, I haven't been able to compile both DPE and CFRU successfully.

    So, how does one compile both of them and insert them into a clean rom? I'm kind of confused with the instructions in the documentation.

    Thanks in advance if my question gets answered!
     

    Chaotix

    Love to test
    59
    Posts
    17
    Years
    • Seen Jan 11, 2020
    So small issue I've run into while checking some things. Oricorio seems to crash the game when the dex entry for it attempts to load after capture; this affects all 4 formes. Dex entries for all 4 work fine if it is gifted to the player first. I haven't made any changes to the files other than some un-commenting to enable movesets and such, and I didn't see anything wrong anywhere so yeah.. not sure what might be the problem there. I'll try rebuilding when I get time and see if it changes.

    Edit: I have been informed that this is fixed.
     
    Last edited:

    Skeli

    Lord of the Rings
    300
    Posts
    10
    Years
  • I followed the instructions, but when I run 'python scripts/make.py', nothing happens. Not sure what I'm doing wrong here.
    Apparently some people are having issues with Python 3.8. It works fine for me, but try building with the last version of Python 3.7.

    But emerald doesn't have all the improvements of this project, will they implement the improvements for that version? Or is it only exclusive to fire red?
    Better to ask that question to someone who hacks Emerald.

    I've followed the instruction, but when i run the make.py it always says this
    Apparently some people are having issues with Python 3.8. It works fine for me, but try building with the last version of Python 3.7.

    @Skeli
    Thank for your help so far. We are getting closer! Could you please help me with the problem cited at "2"?

    1. I have followed your advise and I think that I found the pointer to my overworld data. I can indeed find 1C F7 96 08 data in hex at this address. So this time I have used the pointer instead of the overworld data address, as you told me to do. The pointer address is "0x2CA83C". I have tried to put that in the src/config file as my "EXISTING_OW_TABLE_ADDRESS"
    You're missing an 8 at the beginning of your pointer. Try #define EXISTING_OW_TABLE_ADDRESS 0x82CA83C
     

    Chaotix

    Love to test
    59
    Posts
    17
    Years
    • Seen Jan 11, 2020
    I ran into another one somehow. Using background byte 0x5 or 0x25 seemingly does nothing for triggering wild double battles. In fact using those bytes not even regular wild battles happen. Wild doubles can still be triggered manually with the flag through scripts in regular grass, however.
     
    Last edited:
    4
    Posts
    4
    Years
    • Seen Jan 15, 2020
    I am having trouble getting DPE to work on a clean rom. I tried using both python 3.7 and 3.8 but when I run the generated gba it freezes at a black screen as soon as the Oak intro starts (even after applying CFRU). Furthermore, I think the image processing loops may be hanging. When I check the generated assembly for the sprites it only goes up to 999 Jangmo0.
     

    ShyRayq

    Unprofessional Unprofessional
    1,856
    Posts
    16
    Years
    • Seen Apr 2, 2024
    I am having trouble getting DPE to work on a clean rom. I tried using both python 3.7 and 3.8 but when I run the generated gba it freezes at a black screen as soon as the Oak intro starts (even after applying CFRU). Furthermore, I think the image processing loops may be hanging. When I check the generated assembly for the sprites it only goes up to 999 Jangmo0.

    From my experience, it is may be the offset you put into make.py. I used 0x900000 and it crashed but when I changed it, the game could run. I think some of the data interferes with existing data which causes the game to crash.
    I recommend expanding the rom to 32MB and using offsets starting from 0x1000000.
    Not sure about your other question.


    And I have my own questions:

    1. If I update some of the .h files and want to add the changes to a rom that already has DPE and CFRU installed, would I just have to apply the changes to clean rom and then somehow transfer over the changes to my old rom? Or would it be okay to just use my old rom? Thanks.

    2. For the form changes add-on, you have to specify an area in Ram for the Kyurem form changes. How do I find out what RAM is free to use?
     
    4
    Posts
    4
    Years
    • Seen Jan 15, 2020
    I recommend expanding the rom to 32MB and using offsets starting from 0x1000000.
    Not sure about your other question.

    Thank you so much putting in an offset of the expanded space worked! As for my other question apparently the sprites past 999 are still found when I use G3T so I guess it's not a problem.
     
    10
    Posts
    11
    Years
    • Seen Aug 6, 2021
    @Skeli

    Thank for with this step in the right direction :) I was able to run the game by using this repointer address.

    Now the main problem remains. I don't see any Overworld Sprites loaded into the game while playing. I did the following in the make.py file:
    OFFSET_TO_PUT = 0xB00000

    I have tons of free space at this location until 0xCFFFFF. I saw that the CFRU doenst use that much data, so it should be fine. When running the game however I see that some of my own scripts are crashing the game. Which makes me wonder if I overwrote some data... somehow. I even tried to insert the CFRU after any data that I found in the ROM (after somewhere in the 0xE00000 range). But it still doesnt work for me.

    PS: Apparently there was something wrong with my vanilla Fire Red ROM. After downloading another one I was perfectly able to run the CFRU engine! :) Start is a very good start.
     
    Last edited:
    4
    Posts
    4
    Years
    • Seen Jan 15, 2020
    I just wanted to clarify something. CFRU and DPE do not modify any items, meaning that if I want to use mega evolution, zmoves, etc. I will have to manually create the corresponding items? Is there a faster way to import everything than just opening G3T and entering in the values one by one?
    Also, I need help setting up G3T (I used slightly modified init from the one posted earlier in this thread). The pokemon editor gives weird movesets and the trainer editor pokemon default moves are all messed up but in game the movesets are correct (the move editor works fine though). If I use DPE to expand the learnsets and apply CFRU then G3T says its reading from the right offset (i crosschecked with the offset.ini file) but displays only garbage movesets. If I use DPE and use CFRU to expand the learnsets then the movesets of default pokemon are unchanged while the learnsets of new pokemon are garbage. Even when I change the offset to the one in the offset.ini file the moveset is still garbage. Because it is working in game I suspect something is wrong with my BPRE.ini file for G3T but even when I try to edit the pointers I can't get it to work. Is it that the moveset expansion actually creates a new table and G3T is finding the old table?

    EDIT: Hopeless Trainer editor works well. But it's really annoying that I can't view pokemon properly in editors.
     
    Last edited:

    Toxic Potato

    Always Sleepy
    87
    Posts
    14
    Years
    • Seen May 7, 2020
    Some brilliant work here. The documentation regarding time-sensitive wild encounters does seem to be a little out of date (or inaccurate? - either way, I was running into compile errors when following the instructions there), but the examples provided in the source were incredibly helpful in figuring that out.

    However, I'm running into the same issue as another where the Wild Pokemon data is a completely garbled mess of characters in AdvanceMap 1.92. In 1.95 it's a similar story, only instead the entries are all completely empty. I followed the Recommended Insertion steps, including DPE, Sideways Stairs, Squeetz' music base, and the B/W menu, in case any of that might bust things a bit. I'll give it another go from scratch next time I can, might've flubbed a step somewhere, but I still figured it was worth mentioning here in any case.

    EDIT: I probably should've verified that it was actually working with the unmodified Fire Red ROM to begin with, seems like it's just an issue with AdvanceMap being run in a Japanese locale. I apologize for the unnecessary report, wild data displays fine with the modified ROM running AdvanceMap in an English locale, though the Pokemon entries are missing completely. Everything seems to be in order now.

    Thanks much to all whose contributions and efforts have went into this, it's really awesome to see.
     
    Last edited:

    Outwitter

    You reap what you plant...
    163
    Posts
    6
    Years
  • Hello!
    I would like to ask one simple yet basic question. Kindly excuse me if it has already been asked before or answered before. What I want to know is that whether CFRU is compatible is basic editors like G3T, G3HS, or PGE and other tools like Advance Map, Overworld Manager, NTME, NSE etc.? If it is, then I will accept it wholeheartedly and never look back!
     

    Chaotix

    Love to test
    59
    Posts
    17
    Years
    • Seen Jan 11, 2020
    Hello!
    I would like to ask one simple yet basic question. Kindly excuse me if it has already been asked before or answered before. What I want to know is that whether CFRU is compatible is basic editors like G3T, G3HS, or PGE and other tools like Advance Map, Overworld Manager, NTME, NSE etc.? If it is, then I will accept it wholeheartedly and never look back!

    Some things will not be able to be edited with tools after using DPE + CFRU. For example if you want to edit abilities or moves learned on level-up you have to modify the files in the projects themselves; in those examples Base_Stats.c is how you change abilties, and level_up_learnsets.c is how you change what moves are learned now.

    From my understanding of it, this is because tools are so old they weren't made to handle things like expanded learnsets, more characters for ability names, and even in some cases they can't read data past the 16mb mark in an expanded rom; all of these which cause them to view as garbage in editors like G3T and impossible to use for editing certain things. Personally, I like editing most things through the files in the projects instead of using tools so these changes are fine for me. There is still a lot I don't know, but I am working on learning.

    In addition, with expanded Pokemon, Advance Map normally can't view mons past the original 386. There are changes you can make in hex edit to allow A-map to read more Pokemon. Also A-Map 1.92 can't read data past the 16mb mark so expanded roms would show all blank for pokemon if you try to edit encounters on a route. I just repoint the expanded name table to a location under 0x08FFFFFF so A-Map can read them fine.
     
    10
    Posts
    10
    Years
    • Seen Jun 21, 2023
    I'm new at this, how I give the player the DexNav? Is it via script? If so, what are the commands?
     

    Chaotix

    Love to test
    59
    Posts
    17
    Years
    • Seen Jan 11, 2020
    I'm new at this, how I give the player the DexNav? Is it via script? If so, what are the commands?

    Look at the file config.h for CRFU, in there is a define for FLAG_SYS_DEXNAV. That is the flag you need to set with a setflag script to give Dexnav.
     
    4
    Posts
    4
    Years
    • Seen Jan 15, 2020
    Is it possible to edit type advantages through the engine? I see references to an attack bank and a def bank in the c code for damage calculation but can't seem to figure out where they are from. If not, is the type advantage chart repointed? I can't find it in the generated offsets file.
     
    Last edited:
    Back
    Top