• 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

361
Posts
3
Years
    • He/Him
    • Seen Dec 24, 2023
    how do i apply this upgrade into a ordinary fire red ????
    i'm still new to this kind of stuff
     

    JFD

    2
    Posts
    3
    Years
    • Seen Mar 21, 2024
    Hey there,

    Like a few others in this thread, I'm struggling to apply this patch - no doubt, operating as a newborn as far as ROM hacking is concerned is causing a dissonance between the installation instructions and a certain expected knowledge.

    I am following the installation instructions featured in both the Documentation and the Readmes, but certain assumptions have had to be made because neither spell things out in a manner that befit my inexperience. So forgive my delineation as I'm just trying to provide as much info as possible.

    First, I am attempting to apply the DPE to a vanilla ROM. Here, the first assumption is that said vanilla ROM is a v1.0 FireRed ROM, Squirrels version (I also tried an indeterminate version before I knew that this Squirrels version was a thing and a thing that, from what I gather, refers to the original ROM-dumper). This outputs a test.gba file. I can't run this file - it causes the emulator (on VBA-M) to lockup on the opening cutscreen as it fades to black. I assumed (now I'm not so sure) that is related to not yet having applied the CFRU. All the same, the next assumption I make is that it is this test.gba file that corresponds to what the Documentation calls Rom 1.

    Meanwhile, I similarly follow the Readme instructions in the CFRU folder, and this outputs its own test.gba file. I assume that this is what the Documentation calls Rom 2. This ROM I can run and so the installation here does seem to have worked. Still, these assumptions here leave me quite dubious, however, as others in the thread have stated that we aren't meant to 'do anything' with the test.gba file - yet, I don't have enough knowledge to make any other assumptions about what the Documentation is telling me to do, so I move forward.

    I then follow the next few steps in the Documentation, that being related to copy and pasting the hex codes from Rom 2 to Rom 1. I do this via Ctrl-B instead of Ctrl-V, as one tutorial elsewhere strongly advised. From this, I gather that this is a step that needs to be repeated anytime I want to make changes to the CFRU. It's hard to tell if this goes without error, since at this point I am still having the same issue as mentioned above - the outputted test.gba (in the DPE master folder) locks up at the start screen.

    An incidental point of confusion is with the proceeding Necessary Modifications section, which suggests to me that these steps have to be followed before the Recommended Insertion Steps preceding it (since the documentation states they "must be made before setting up the engine!"- which again leaves me a bit dubious because of the order in which these instructions are relayed. However, since I have not made any modifications, I assume that it suffices to skip over those steps - a daring assumption considering all the problems I'm having I suppose.

    All-in-all, I've attempted to follow the instructions multiple times, and have tried scouring this thread (and google) for more details, or more newb-friendly instructions, or otherwise for resolutions to the specific issue/confusions I'm having (the locking up blackscreen) - but most that have this issue don't receive a reply, or fix the issue and don't explain how. So any clarification on what is likely obvious thing I'm misunderstanding or overlooking would be sincerely appreciated.

    Thanks for your time.

    EDIT: After posting this, I happened upon the suggestion on GitHub that I needed to change the offset in the make.py to something else. If others happen upon this edit, I'd like to confirm that this does fix the black screen lockup. I will make an additional edit with my results after trying to do everything from here.

    EDIT: I will also say that the Pokemon Unbound Discord is an additional place to get help with installation, for those like me that only happened upon it by Google-fu chance.
     
    Last edited:
    37
    Posts
    7
    Years
    • Seen Oct 4, 2021
    Do you think this would be useful for me making a "canon" Kanto hack? I'm mostly just tweaking FireRed to expand the story and have Leaf as another rival to Red, then I'm going to make games for Leaf and Blue. I'm going to only be hinting toward Hoenn because of the timeline, but I feel like some additional features wouldn't kill the idea.

    Honestly, I'd like to remove steel and dark types, but those weren't new in HGSS, so I guess them being new isn't a thing anymore. Does that explain why Red has an Espeon and not an Umbreon? Why the hell didn't they make a Steel type instead of Espeon?
     

    Lance Koijer 2.0

    Lance Koijer
    105
    Posts
    6
    Years
  • Do you think this would be useful for me making a "canon" Kanto hack? I'm mostly just tweaking FireRed to expand the story and have Leaf as another rival to Red, then I'm going to make games for Leaf and Blue. I'm going to only be hinting toward Hoenn because of the timeline, but I feel like some additional features wouldn't kill the idea.

    Honestly, I'd like to remove steel and dark types, but those weren't new in HGSS, so I guess them being new isn't a thing anymore. Does that explain why Red has an Espeon and not an Umbreon? Why the hell didn't they make a Steel type instead of Espeon?

    Hi! The engine is perfect and recommended for all hacks whatever story you want to insert to the game. About the last question, I don't feel like CFRU can answer that. But for me, Psychic is the rival type of the newly-introduced type in Generation 2 so it would be better to make it Psychic instead of Steel. But if you want to change it to steel rather than Psychic, CFRU can help you with that.
     
    2
    Posts
    6
    Years
    • Seen Apr 17, 2021
    Hello, first off, this is by far the best ressource for every ROM Hackers needs. I used to hack a German ROM in 2012/13 and paused up until recently. This time, I try to make everything way better. Starting with an english base ROM is a good step I'd think. 😄And wow am I astonished by what's possible! Thanks for your dedication Skeli & Co. <3

    To make it constructive, tho, I think CFRU and DPE are in need for a compatible repo that can be merged into the pokefirered disassembly without great struggle. But I remember reading about it in this Thread and I guess you're on it.

    (I edited out the question/suggestion because after several times reading it I finally understood)

    Edit: At Page 36 of the documentation, for EXPAND_MOVESETS the file src/Tables/learnsets.c gets mentioned. In fact, there is no learnsets.c at the CFRU, as it was renamed to src/Tables/level_up_learnsets.c . At least there I found the Movesets I needed to comment in.

    Thanks again for this great work, and please don't take me pointing things out as an offense. It isn't meant that way. (:
     
    Last edited:

    Nightrey

    Beginning Trainer
    20
    Posts
    11
    Years
    • Seen Jul 21, 2023
    How to play this? Sorry I'm new here and I have no idea how it works. I downloaded the github project and don't even know what to do.

    @Edit

    Oh got it. This is a project as a basis for a rom and not a full hack rom itself. Sad.
     
    Last edited:
    990
    Posts
    4
    Years
  • How to play this? Sorry I'm new here and I have no idea how it works. I downloaded the github project and don't even know what to do.

    @Edit

    Oh got it. This is a project as a basis for a rom and not a full hack rom itself. Sad.

    If you want to play a FireRed remake, try Mega Blue. But discussions of this do not belong in this thread, so ask any questions in the Mega Blue thread.
     

    Skeli

    Lord of the Rings
    300
    Posts
    10
    Years
  • Daycare is broken? the old man stepped forward, but he didn't give me any eggs.

    Give a Drink for TMs > Crash
    Q4XVrVR.png


    Game Corner NPCs
    The Day-Care man and Game Corner have been fixed, but certain multichoice menus (the documentation mentions this) will always remain broken and will require you to rescript them.

    Hi there, I'm planning on starting my first rom hack using this base, and I'm trying to make sense of the documentation but I need some clarification. if I'm correct, I should edit the maps, trainers, scripts, and other things with the Dynamic Pokemon expansion and other recomended mods, then apply the CFRU to that rom when I'm done then if i need to make any changes in maps, scripts, etc, I'll make them to the pre-CFRU rom then apply it to that, and keep going like that all throughout development?

    i understand that any changes i want to make to CFRU itself like movesets, TMS, and other data can be done right in the CFRU files before compiling, but how would i add those things to maps and scripts if i have to do those beforehand?
    You can recompile the CFRU as many times as you want, so long as its to the same ROM every time. The best way to test things in-game would be to run the make script every time you make a change to the base rom and want to test something (it takes at most a couple of seconds).

    Question: About the Overworld Expansion, is JPAN's hack/overworld expansion routine needed for it to work? I tried applying it to a clean ROM without jpan's implementation but the old overworld table is still used instead of the table I made at 0x8A00000.

    EDIT: I don't know where to post this one but I figured out something that might help you guys. I have noticed that when you use special 0xd1 (NPC following the player), you will encounter an issue where the NPC from other maps sharing the same person event as the one following the player, that NPC will load the script of your follower. For example:
    In Palette Town, if I made the Technology guy (which his person event number is 0x2) dude follow me, the "tree to cut" in Viridian City when I interact to it will instead load the "Technology is awesome script." That also applies in other maps such as the guy that asks in Pewter City if you have checked the Museum already and the rocket grunt that will give you TM dig in Cerulean City.
    So, to avoid this issue, I suggest you set the Person Event Number of your follower to something that you think npcs from other maps wouldn't share. Mine's 50 (0x32)
    The engine comes with the overworld expansion installed (see the documentation).
    Yes, that's what you need to do. Just set the person event to some obscenely high number (like 100).

    I just thought I'd bring up that terrain boosts in Gen 8 are 1.3x rather than 1.5x, I'd imagine an option to revert to this nerf (or vice versa) in config.h is under the works?

    Also, I'm not sure if the additions for moves like Expanding Force/Rising Voltage are in its beginning stages but in the src/damagecalc.c I think the power is being calculated incorrectly; currently it's (original BP) * 2 * 15/10 (i.e 1.5) when I do believe the multiplier is supposed to be (original BP *1.5* 1.5) Or 1.3 for the final 1.5, if the terrain nerf is to be added.

    edit: upon looking on bulbapedia, rising voltage appears to be original BP * 2 * terrain boost whereas expanding force is original BP * 1.5 * terrain boost
    This has been fixed.

    At Page 36 of the documentation, for EXPAND_MOVESETS the file src/Tables/learnsets.c gets mentioned. In fact, there is no learnsets.c at the CFRU, as it was renamed to src/Tables/level_up_learnsets.c . At least there I found the Movesets I needed to comment in.:
    The documentation is in need of some clean up which will likely get done in a couple of months. For now, most of what is in there is accurate.
     
    2
    Posts
    6
    Years
    • Seen Apr 17, 2021
    Hey Skeli, thanks for taking the time and answering our questions. (:

    The documentation is in need of some clean up which will likely get done in a couple of months. For now, most of what is in there is accurate.
    That sounds great! Thanks for having that point on your list. As we all know documentation is always the least favorite part.
    I'll make sure to collect some info if I step over passages that need a revision.

    I managed to get the CFRU including the DPE to work like a charm at the end. Now working with it is kind of a different approach, but I'm willing to get into it.

    For now, some questions come to my mind, that I didn't read in this thread so far. These questions are for everyone, any help is highly appreciated!

    • I've seen graphics of added Poké Balls included in the CFRU, with configurations like multipliers already given to them via src/catching.c . So, are they actually usable right after setting up the rom with CFRU, unlike other items? Which steps are needed to set them up?
    • Is this a valid workflow for adding items in general when using the CFRU? Google: "ITEM CREATION IN FIRERED: STEP BY STEP, FROM START TO FINISH" (not yet allowed to post links, I hope that changes soon)

    Wishing you all the best.
     
    23
    Posts
    7
    Years
  • Can i use this on mac? I looked at the instructions for Dynamic Pokémon Expansion, but it says that i need cmd.exe, which i don't have
     

    Henry Owen

    Hank Joey
    28
    Posts
    4
    Years
  • INCREDIBLE! But I'm having problems, I'm new to Hackroms and I didn't understand how to install it on ROM, so please can u help me?
     
    3
    Posts
    3
    Years
    • Seen Dec 8, 2020
    Hey, posting here on a complete whim since I am super frustrated and loosing my mind over this.

    I'm attempting to get this running, but for whatever reason I can't get devkitPro to install correctly. All that installs is the mysm2 folder and the uninstaller. I've tried every fix I could find, nothing works. I've posted on the forum, and none of the suggestions from the devs have worked. I even had a friend try to see if they could get it to work properly, and they're having the same error! Has anyone run into this issue, or has any idea on how to resolve it?

    This engine looks absolutely amazing and would help with my hack so much, but getting stuck on step 1 is driving me crazy.
     

    YoY-X

    bootycable
    126
    Posts
    6
    Years
  • Nice work! But I have a few requests for future updates.
    A, Adding more tools like a map and the item finder and making them assignable to the L button

    B, Making the battles more faster like speeding up animations like to make them more like in BW, and removing unnesscary pausing like when a textbox appears in battle or the time it takes from the battle starting to picking your moves.

    C, Improving player control. I always thought gen 3 had weird control and turning especially with the running shoes and it would be cool to see that fixed.
     
    23
    Posts
    9
    Years
    • Seen May 14, 2022
    Hello
    See, how can I expand the pokemon from 1102 to 2440 for example, I have tried everything and I am not successful.
     
    117
    Posts
    10
    Years
  • Amazing job making this upgrade. Any chance, if possible, you could add some more features from Emerald. Like animated Pokémon sprites, battle transition animation (team battle, Battle Frontier, etc), and more?
     

    Hanu P

    DRAGON GOD<3
    37
    Posts
    5
    Years
  • Last edited:
    3
    Posts
    3
    Years
    • Seen Aug 30, 2020
    DPE is cratering my ROM. I followed the instructions and cmd isn't bringing up any errors, but I get a white screen when I open the resulting "test.gba" up in an emulator. Advance Map 1.95 can open the ROM but I get an error message after opening it, many of the graphics are glitched (particularly the outdoor tilesets, most of the indoor ones seem unaffected), and I get error messages when I try to show overworld sprites or open certain maps. I've tried with a regular ROM and an expanded ROM, I tried changing the offset it's inserted at, no dice. What am I doing wrong?

    http--s://imgur.com/a/eIEfn0p (remove the dashes, I can't post links because I'm a new member)

    For the record, CFRU itself seems to be working fine. I tested it a bit on a vanilla ROM a bit and things like inverse battles and level scaling work as expected. It's DPE I'm having problems with. Applying DPE to a ROM just breaks it.

    EDIT: I still have no idea what I was doing wrong, but I'm using Leon's new base and I'm not having this problem anymore.
     
    Last edited:
    3
    Posts
    3
    Years
    • Seen Aug 30, 2020
    I don't know if this has been documented anywhere (it doesn't seem to in the PDF file that explains how to use CFRU), but when using the NPC follow feature, if the player goes to another map with a follower, then tries to get on or off the bike or surf in the presence of another NPC with the same person event no. (the byte listed below the "Delete Event" button in A-Map), the game will glitch, and if you talk to that NPC, it plays the script for the follower NPC. There's a simple solution to this though: just give any NPCs you intend to have follow the player a stupidly high number like 99 or something so these conflicts will never occur. (NOT 255, since that's the player's ID. Basically, just make it high enough so there's no chance their event no. will overlap with another event on any map). This should be documented for anyone else who runs into this glitch.

    Here's another issue, one which I don't know the solution for: if you use Fly with an NPC follower, the follower will be invisible when you arrive at your destination. The follower turns visible again when you go through a warp.
     
    Last edited:
    34
    Posts
    3
    Years
  • Hi!

    First, let me say that it is an amazing work. I've struggled a little to install it but when I finally was able to it definitely was worthy of my time. It is an almost perfect experience.

    Second, I would like help with some things, if I may dare to ask. Just keep in mind that I'm very, very green when it comes to hacking Pokemon ROMs, my whole experience with modding comes from Infinity Engine games (Baldur's Gate, Icewind Dale) and Aurora games (Neverwinter Nights).

    1) I've seem in the "Issues" thread of this project's Github page a closed thread where it is said that this engine provides the tools to make Pokemon follow you around. Can you please explain how I make it work (if you could explain like I was a baby who fell too many times from its crib, the better);

    2) Can you please teach me how to change a Pokemon's type? Specifically I want to make Psyduck and Golduck Water/Psychic and Gyarados Water/Dragon (as God intended). Other things may come to my mind, so learning, or getting a template that I could fill, would be fantastic. Solved!

    3) Can you pretty please teach me how to implement EV-IV checks (like in Pokemon Gaia where IV goes from E- to S or even in another project that displays the actual number for both values in a separate screen) and how to make a stat's color change based on the Nature that affects it? Solved!

    ---

    One more thing, I've changed Doubleslap by messing with the file src/Tables/Battle_Moves and doing the following:

    Code:
    	[MOVE_DOUBLESLAP] =
    	{
    		.effect = EFFECT_DOUBLE_HIT,
    		.power = 30,
    		.type = TYPE_NORMAL,
    		.accuracy = 100,
    		.pp = 30,
    		.secondaryEffectChance = 0,
    		.target = MOVE_TARGET_SELECTED,
    		.priority = 0,
    		.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
    		.z_move_power = 100,
    		.split = SPLIT_PHYSICAL,
    		.z_move_effect = 0
    	},

    After that I ran scripts//clean.py and scripts//make.py once again.

    The Power, PP and Accuracy were updated, however the move keeps hitting 2-5 times. What am I doing wrong? Also, how do I change the move's description ingame?


    Solved!

    ---

    Thanks in advance and sorry for this load of questions!
     
    Last edited:
    34
    Posts
    3
    Years
  • I'm using Leon's patched rom as based and followed his walkthrough, however now I can't install CFRU

    TagV7q0.png


    Any ideas?

    Thanks in advance.

    Edit:

    Just to let you know that TRAINER_SECRET_BASE *is* defined as I was able to check inside include/constants/trainers.h

    oA6cwge.png
     
    Last edited:
    Back
    Top