• 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?".
  • Forum moderator applications are now open! Click here for details.
  • 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.

Development: Pokémon Fire Red Hacked Engine

JPAN

pokemon rom researcher
104
Posts
15
Years
  • Seen Jul 2, 2016
Greetings everyone. I have come before you today to present you the project I've been working on for the last month. I call it Pokemon Fire Red Hacked (Tentative Title).

This is a base for Fire Red US V1.0. It will not work with other Fire Red versions.

But what is this? Well, this is a small patch that rewrites a part of the main game engine, in order to increase the number of options you have as a ROM hacker. This include several features I've heard people complaining about and requesting, as well as some that just popped in my head.

This is a work in progress, and I aspire for it to become one day a compiled colection of all that only ASM can make possible without having to know ASM to pull it off. So, please, feel free to suggest new features and present your own if you want. You will be credited for it, of course.

















Features
  • Support for over sixty thousand different OWs, as well as access to fourty-six hundred different palettes
  • Hacks preformed in the Battle system allow you to choose options for your hack, including Status-ridden pokemon, Shinies and creation of swarm events
  • Access to GBA Hardware function through new Specials that allow you to create Timed events and Button dependent events
  • All processor math and logic functions available for your variables
  • Dynamic multichoice boxes that can be changed Runtime, making them limitless
  • A fully-fledged pokemon decryption system accessed through variables that allow you to read and edit almost all information encrypted and locked away inside your pokemon.
  • Edited some of the old Specials, allowing for replacing the Old man Pokemon and Ghost Marowak with new pokemon, as well as a new version of the Pokemon Size minigame (the Heracross and Magikarp ones)
  • Edited the Fossil Special (from pewter museum). Now it can hold 256 different 64 by 64 pixel uncompressed images
  • Edit what every Behaviour byte does when you press A in front of it(scripts), allowing for things like headbutt trees
  • Choose where you go when you die, even if it's not a pokecenter.
Also incuded in the pack is a Instruction booklet explaining the functions and some examples of those functions. Some gameplay mechanics are explained there that doesn't apply only to this hack.

This Patch should be aplied first, then any other Rom base that you want. It should have no problem working, but I didn't test them all (as long as they didnt write it over the old scripts, is should be fine). This patch is based on the "clean" patch I gave away some time now, so all scripts, people and Signposts are gone.

On a sidenote, all source code is provided in the attachment, with a compiled form also available. But all the code only work, as is, on Fire Red US v1.0. Most code, however is portable for any other Pokemon game, as long as you replace the pointers to in-game references to the ones of your version. The pokemon decrypt, timer and keypad functions are easily portable as long as you know the party location and variable 80xx family location.

First update:
I corrected all the reported bugs, and they seem to work right now. Also, the Swarm-Roam code and the Wild code are compatible with eachother, and both have been added new features.
Added Behaviour byte scripts. You can now run scripts such as the defaults for cabinets and bookshelves on all bytes. Not advised to overwrite the water Bytes, but if you really want to, you have that option.
Created a function that replaces the SethealingPlace determination of your retreat place when you whiteout.

Second Update:
Fixed some bugs in my code and in Nintendo's Safari code. Details in the version Changes.

Third update:
An early christmas present for you all, the newest version is out!
Major changes on this hack, as well as corrected bugs and somewhat extensively tested code led me to prompt this as the first full version update.
Full changes listed on the version change text.
Of course, bugs will still happen, so please report them here when you find them.

Fourth update:
After some snooping around, I found a severe problem with my hack implementation: It always required to be applied when starting a hack. Because that decreases the number of people that can apply this hack, I have made a tool in C / C++.net to apply it. This tool already includes the remaining hacks for this latest release, including the result of the Item research, button-triggered scripts, more safari balls and trainer-activated scripts that are not trainers. Now with the manual included.
When extracting the tool, extract the whole "Hack tool" folder. Any of those folders missing might corrupt your ROM and crash the tool.
Tool use:
(optional) to extend a ROM, check the "Expand ROM on opening" box
Click "Open ROM"
If it's not a Fire Red version, it should pop-up an error. If it's a FR(u), but you changed the header, same error will appear. Don't worry about it then.
Select the hacks you wish to install, by clicking on the corresponding checkboxes and buttons (advice: if you are installing the behaviour byte hack, click that one first, as that function cleans the old space, that is not detected by the Free space table, for safety reasons, but is added to the opened rom free space, and uses it for smaller hacks, eg. specials)
Click the apply button after selecting all you want from the above checkbox list
In some cases, it might ask you for variables, or tell you it created some tables. That information is available afterwards if you click the "Get Changed Data" button.
End all modifications by saving to a ROM, with a name of your choice.

This tool doesn't ovewrite hacks. as such, if you install a hack that is not a special, it will be placed at a new location and the old one will not be cleaned. Next version should have that fixed.

This tool is compiled in visual studio c++ 2005, and as such, may have dependencies with the .net framework. If it doesn't open, try installing .net framework 2.0.

I must say, even though I program in c for a long time, and c++ from recent years, the C++ .net library was a bit new to me, so the layout might be a bit wierd and seem a bit off. Tell me your opinion of it, as always, so I can improve it for next release. Also, report any bug here or by PM.
 

Attachments

  • Pokemon_Fire_Red_Hacked_v1.1.zip
    822.6 KB · Views: 2,783
Last edited by a moderator:

Gamer2020

Accept no Imitations!
1,062
Posts
15
Years
This is nice.
But it doesn't help those Hacking R/S/E.
But it seems you put in a lot of work so good job. ^^
 

Cello

Tonight!
1,498
Posts
14
Years
This is, no doubt, one of the most amazing things I could have ever thought I could wake up to see.

If I read it right you can't apply this to a hack already being worked on though, correct?
 

JPAN

pokemon rom researcher
104
Posts
15
Years
  • Seen Jul 2, 2016
If I read it right you can't apply this to a hack already being worked on though, correct?

If you're using the original scripts, or have any in the Fire Red script region (0x160000 to 0x1bb000), then no. But if you work on the 0x720000+ part of the rom (the common region for most people) then there should be no problem. Just remember to back up your hack before you try it.
 

mervyn797

What? I'm right here. >D
1,696
Posts
15
Years
  • Seen Nov 28, 2011
lol, i didnt understand half the features, but from what i understand, you have done a great job, looking forward to test it.
 
6,355
Posts
18
Years
  • Seen Apr 16, 2020
If you're using the original scripts, or have any in the Fire Red script region (0x160000 to 0x1bb000), then no. But if you work on the 0x720000+ part of the rom (the common region for most people) then there should be no problem. Just remember to back up your hack before you try it.

A patch of a normal Fire Red ROM would work better on progressed Fire Red hacks.

Anyway, great work, I'm interested in seeing what other hackers are going to do with all these special commands.
 

Full Metal

C(++) Developer.
810
Posts
16
Years
O.o
THIS IS SO FREAKING AMAZING!
i can't believe anyone else isn't psyched about this.
:D :D :D
THANKUTHANKUTHANKUTHANKU!!!
 

cooley

///Keepin' it simple
1,148
Posts
17
Years
This is the best for FireRed hacking that I've seen, so far.. What really made me bite my lip was the Overworld possibilities and palettes too. But that would mean HackMew takes more time to make the new Owerworld Editor. But I'd definitely hex new Owerworlds if I new the data and whatnot.

I have a question, Is music affected in any way by this patch? In terms of Adding/subtracting tracks?
 

JPAN

pokemon rom researcher
104
Posts
15
Years
  • Seen Jul 2, 2016
This is the best for FireRed hacking that I've seen, so far.. What really made me bite my lip was the Overworld possibilities and palettes too. But that would mean HackMew takes more time to make the new Owerworld Editor. But I'd definitely hex new Owerworlds if I new the data and whatnot.

I have a question, Is music affected in any way by this patch? In terms of Adding/subtracting tracks?

Inside the pack comes a instruction booklet that contains all information I had on Overworlds and people events, including some I found out while studying the OW decription code. So Hex editing shouldn't be such a problem.

Also, nothing was done about the music. Its the only are of the GBA programming I have still not understood. As such, no changes to the music was made.
 

0m3GA ARS3NAL

Im comin' home...
1,816
Posts
16
Years
Well well well, our buddy JPAN has surpassed Mastermind_X himself...
At least in my book.
Say, would you mind tutoring me in ASM?
I want to learn it, and you seem more than capable...
 

ZodiacDaGreat

Working on a Mobile System
429
Posts
17
Years
Hey, cool idea ^^
I guess I'm doing the same thing too XD but for Ruby. More on that until I'm back ;) I'd say mine's a bit different.
 

DawnRyder

I cannot believe I'm back -.-
79
Posts
14
Years
  • Seen Nov 12, 2011
OMG!!! This is awesome! Thank you JPAN!
I've been waiting for something like this to come out.
 

bigfatgranny

Pokemon Shadow's Haze.
47
Posts
15
Years
Incredible. The most impressive thing I've seen in the rom hacking community in along time. I just tried it out and It's loaded with things I've wanted to do but couldnt due to my lack of asm skills. The ability to change the hero sprite in game is one I've wanted to be able to do for a long time. Two thumbs way up JPAN.
 

0m3GA ARS3NAL

Im comin' home...
1,816
Posts
16
Years
For anyone wondering, you should NOT apply this to a Clean Fire Red Rom, but instead, use JPAN's Clearing Patch, that clears out all of the scripts, signposts, and sprites in every map. Otherwise, some bugs may occur. You can find it in the OLD rom hacking thread, for those who can't find it anymore, here is a link.

http://www.pokecommunity.com/showpost.php?p=5005730&postcount=252
(That is his post.)
 
Back
Top