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

FireRed hack: FireRed 649 Patch

Hack save routine for extra saveable space? Would break compatibility with flashcarts


  • Total voters
    76
  • Poll closed .
Status
Not open for further replies.

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
Ah, must have missed it in my search, cheers for speedy reply though. Is that something you ever had the urge to change? Although I imagine that would require far more work than really necessary...

Actually, it's simply caused by crossovers of RAM and ROM locations. It's not possible to change large parts of my code because it's all intertwined, just like the original ROM's. I may also have said the thing about JPAN's incompatibility in another thread, but I definitely remember saying it.

Anyway, I take my hat off to you for this, it's very impressive. If you need any help with more menial tasks (although I understand you already have a moveset -sorter), I'd be happy to help :)

Not much left to do that comes down to being menial. Although, I'm sure that speedster would welcome some help if you were to offer it! Thing is, I never asked anyone to help me with this patch, so I've done most everything by myself. This is why it's taken so long.

Look at the credits, I'm responsible for everything in the patch, except that with I explicity credit to other people.
 

shinyabsol1

Pokemon DarkJasper!?
333
Posts
13
Years
  • Seen Nov 23, 2022
I found some bugs not listed in the OP:

1). When you encounter Giratina in the wild, the game won't let you run away or switch Pokemon. When trying to attack Giratina, the game immediately plays some status related text/animations (it seems to depend on what item you're holding. When I sent out an Arceus holding a Zap plate, it said "Arceus is fast asleep!", and showed the poison animation). After that, it says "Giratina used !" and freezes. Also, when the player sends out a Giratina, the game freezes.

2). When you encounter Shaymin in the wild, the game restarts. Nothing happens when the player sends out Shaymin, though.

3). Upon using transform on a wild Garchomp, my Arceus turned into a badly positioned Gible backsprite with a messed up palette.
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
I found some bugs not listed in the OP:

1). When you encounter Giratina in the wild, the game won't let you run away or switch Pokemon. When trying to attack Giratina, the game immediately plays some status related text/animations (it seems to depend on what item you're holding. When I sent out an Arceus holding a Zap plate, it said "Arceus is fast asleep!", and showed the poison animation). After that, it says "Giratina used !" and freezes. Also, when the player sends out a Giratina, the game freezes.

Wow, sounds like there's a lot of problems with Giratina. I'll investigate shortly.

2). When you encounter Shaymin in the wild, the game restarts. Nothing happens when the player sends out Shaymin, though.

Probably a bad pointer, I'll see if I can pinpoint it.

3). Upon using transform on a wild Garchomp, my Arceus turned into a badly positioned Gible backsprite with a messed up palette.

Weird.
 
22
Posts
12
Years
  • Seen Sep 11, 2016
thanx

PGE can't set the new Pokemon to appear in the wild. You have to manually edit the wild data with a hex editor.

Hi there. Nice to hear a word form you. But this has been my problem all the way from the beginning. I have been asking every one just how to use hex editor to change pokemon locations. At last I was given advice to go with pge. I am not a game maker or such. Just wanted to make a game for myself with all pokemons in it. I have added a new map called land of legends in my game where all the 5th gen pokemons would appear and made certain temples map,a shaymins way as was in diamond pearl. A cottage for Darkrai event. Have put in the sprite. Now I am struck on putting locations from last 2 months. Can't concentrate on nothing. Want to put a script on sprite in a map,a using Poketronic,but above chimeco not avaiable. So can u plz tell me least how to use hex. Just give me one example, say to add kyurem and I will do the rest. Plz tell me in detail plz. I know I have to use hex but how...thanx to all in advance.
 
4
Posts
12
Years
  • Seen Jul 23, 2015
Actually, it's simply caused by crossovers of RAM and ROM locations. It's not possible to change large parts of my code because it's all intertwined, just like the original ROM's. I may also have said the thing about JPAN's incompatibility in another thread, but I definitely remember saying it.
Ah okay, thanks for the clarification.
...So can u plz tell me least how to use hex. Just give me one example, say to add kyurem and I will do the rest. Plz tell me in detail plz. I know I have to use hex but how...thanx to all in advance.
I'm fairly new at this myself, but I'll see what I can do to help:
1) First, you must have the patch installed, Google "lunar ips" for that, fairly self-explanatory.
2) Once patched, open up the game in Advance Map (go for 1.92, as I don't think it's the same in 1.95) and find the map where you want to add the new Pokémon to.
3)Once there, click the "Wild Pokémon" tab.
4)In the upper right hand corner of this page should be a button saying "Expand", click this.
5)A dialogue will open, in this look across from where it says "Grass" to the 6 digit hex number (yes, letters and numbers are both part of the number) next to it, make a note of this (it's called an offset and we'll need it later).
6)Download a hex editing program, I recommend XVI32, but any will do.
7)Open your game in this, click on the "Address" button in the toolbar, then the "Go to" button from the drop down menu.
8)In this dialogue, enter the offset you wrote down earlier and click OK.
9)You've jumped to a new part of the game's hex code, and the numbers in the boxes on the screen will have changed, one of the boxes will be highlighted, this is the one you've asked the program to jump to.
10)If you now look just before this box, you'll see a string of numbers which will go in this fashion:

2 digit number for low level, 2 digit number for high level, 2 sets of 2 digit numbers for Pokémon number.

This is then repeated. Eg, you'd find in Route 1's data: 03,03,10,00 to signify wild level 3 Pidgys.
11) To insert a new one, let's say Kyurem, you must first find out his ID number in hex: to do this, we find his number (646), then convert it to a hex number (Google "646 in hex" and it does it for you), here we get the hex number 0286.
12) To insert this back into the game, we take 0286, split it in half (02 & 86) and reverse it (86 & 02) before putting it back together again (8602) and placing it into the fourth and fifth boxes of our data we looked at earlier in the hex program (10,00 in my Pidgy example earlier)
13) Save and voila! That should all work. If you don't follow this, I recommend you search the forums for a hex tutorial and come back and read it (unless I've got something wrong...). Happy hacking! :)
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
@Landroid

You've got that more or less right. There's only one caveat. Every Pokémon has an in-game index as well as a National Dex index. The National Dex index is what we recognise as it's species ID (EG. 25 for Pikachu, 1 for Bulbasaur etc).

The in game index is how the GAME itself refers to the Pokémon. The wild battle data uses the in game index as opposed to the National Dex index. This means that Turtwig - Bastiodon and most of the Hoenn Pokémon don't follow their national pokédex numbering.

Turtwig, for example, is #387. But its in game index is #252. Treecko is #252, but its in game index is #277. You need to make sure that you use the correct in game index, or you will get the wrong Pokémon.

Check out the stdpoke.rbh file I included to get the in game indices. :)
 
22
Posts
12
Years
  • Seen Sep 11, 2016
Ah okay, thanks for the clarification.

I'm fairly new at this myself, but I'll see what I can do to help:
1) First, you must have the patch installed, Google "lunar ips" for that, fairly self-explanatory.
2) Once patched, open up the game in Advance Map (go for 1.92, as I don't think it's the same in 1.95) and find the map where you want to add the new Pokémon to.
3)Once there, click the "Wild Pokémon" tab.
4)In the upper right hand corner of this page should be a button saying "Expand", click this.
5)A dialogue will open, in this look across from where it says "Grass" to the 6 digit hex number (yes, letters and numbers are both part of the number) next to it, make a note of this (it's called an offset and we'll need it later).
6)Download a hex editing program, I recommend XVI32, but any will do.
7)Open your game in this, click on the "Address" button in the toolbar, then the "Go to" button from the drop down menu.
8)In this dialogue, enter the offset you wrote down earlier and click OK.
9)You've jumped to a new part of the game's hex code, and the numbers in the boxes on the screen will have changed, one of the boxes will be highlighted, this is the one you've asked the program to jump to.
10)If you now look just before this box, you'll see a string of numbers which will go in this fashion:

2 digit number for low level, 2 digit number for high level, 2 sets of 2 digit numbers for Pokémon number.

This is then repeated. Eg, you'd find in Route 1's data: 03,03,10,00 to signify wild level 3 Pidgys.
11) To insert a new one, let's say Kyurem, you must first find out his ID number in hex: to do this, we find his number (646), then convert it to a hex number (Google "646 in hex" and it does it for you), here we get the hex number 0286.
12) To insert this back into the game, we take 0286, split it in half (02 & 86) and reverse it (86 & 02) before putting it back together again (8602) and placing it into the fourth and fifth boxes of our data we looked at earlier in the hex program (10,00 in my Pidgy example earlier)
13) Save and voila! That should all work. If you don't follow this, I recommend you search the forums for a hex tutorial and come back and read it (unless I've got something wrong...). Happy hacking! :)

Hi there. Firstly I want to thank you with all my heart for the help and a complete guide you gave me. I really loved and appreciate your help. From the last time I posted my post I was early waiting every second for someone to answer my qu. And on seeing this complete guide I was really fascinated. But seems my luck is not on my side. I am not able to eat, sleep or do anything,this thing is just not allowing me to do anything else. Tomorrow I have an test in college and still I am just figuring out the way to use this patch.pl now what is happening is this
1. I can see all 649 pokemons in unzlb with correct sprite and in my national dex in the game itself along with sprite and dex entry.
2. A-map is able to open the patched rom but doesn't show all 649 pokemons. It shows only till chimeco and 25 pokemons after celebi and before treecko.
3. yape is not able to open the patched rom...
4. Poketronic opens the rom but do not show the pokemons
5. Now I tried your way,and I have already tried it using vboys memory viewer function, but this time I did all as you told,found the offset in a-map,but that offset was not in the hex editor you recommende. In the 2 offsets I got trying two times,there were E4 and b8 in the end of offset but in hex editor the search went to a offset with the last two digits as AA,the next offset being followed with BB,then CC and so on.
6. For once I did managed to find a offset in a-map and also in the hex editor, but there were only FFFFF.... Before that. No pidgeys data.(I took pidgeys too as example.)
7. At last I got the offsets, got pidgeys data and change pidgeys offset with the one you gave for kyurem and next time the offset given by jambo51 for kyurem in the stdpoke file, and both time I got this-
When I entered the wild a missingno was there with sprite of missingno and name????????????? And at level 0. Knew only transform and struggle. That's it
8. Another thing, if I change pidgeys offset with any one of the 25 added pokemons in the game which are before treecko, from chimchar to shieldon, then they appear normally in wild, with correct sprite and data, etc....
Am I doing anything wrong.... Please now you are the only person I can rely upon for help,benefit do reply me. I will be waiting eagerly.
Also is there a way so that I can a-map so that it support all 649 pokemons... And is there a way I can add all 649 pokemons to show in game as jambo51 has added those 25 pokemons
Again thanks for your help and time, god bless you...
 
4
Posts
12
Years
  • Seen Jul 23, 2015
Thanks for clarifying Jambo, knew I'd get something wrong! :P

Not being able to see the added Pokémon in A-Map is normal, it is due to the way that A-Map itself is coded, nothing to do with Jambo or the patch. I believe Jambo has spoken to A-Map's creator about implementing compatibility, but I don't think that has come to anything yet.
As for YAPE, I also believe it doesn't play nicely with the patch, so I recommend PGE and use the Pokémon Editor included, which does work with it.
As for your problem, I've attached a picture tutorial that should show you visually what I was trying to explain before, if that doesn't work, then I'm probably not the best person to ask, as I'm quite new to this.
 
22
Posts
12
Years
  • Seen Sep 11, 2016
Thanks for clarifying Jambo, knew I'd get something wrong! :P

Not being able to see the added Pokémon in A-Map is normal, it is due to the way that A-Map itself is coded, nothing to do with Jambo or the patch. I believe Jambo has spoken to A-Map's creator about implementing compatibility, but I don't think that has come to anything yet.
As for YAPE, I also believe it doesn't play nicely with the patch, so I recommend PGE and use the Pokémon Editor included, which does work with it.
As for your problem, I've attached a picture tutorial that should show you visually what I was trying to explain before, if that doesn't work, then I'm probably not the best person to ask, as I'm quite new to this.

Ya, you are right.you are not the best person, you are even better than the best.its nothing to be a good hacker,whats important is to be a good person...like you.you know I have been asking,pleading for help from last several days, but no one not even the Mr. Hacker was there to help.although and you took out time, to explain me all this, that too so nicely. As I told you that I am crazy for pokemons and I was trying to make a game,to have all the pokemons. It was not to be released or such. You are the best tutor. I can't thank you enough.
Coming back to the main topic,you know I was becoming so restless and desperate and no one helped me I found a program for mobile phone called Zntxhan.is a hex editor. I found it even before you told me the hex editor method...and even then I was facing the same problem as with the method you told me... There were no sprite for 5th gen pokemons.changed but your guide told me that I was heading in right direction. So thank you again. So last night I finally gave up and went to sleep,and suddenly something crossed my mind. I opened up the rom in unzlb. And found that there were no sprite for several gen 5 pokemons.that was the reason I was getting missingno sprite for kyurem and others. So I again switched from patch3 live beta to patch 2. And now its fine.
Now just two things require- 1.how can I add moves and evolutions to the patched rom now.do I need hex again? Then how... 2.what I did earlier was that I changed caterpie with kyurems sprite.named it in yape.gave it moves and evolution etc.... This was before I got this patch from jambo. Then using a map I created a event in rom then used Poketronic to enter a wild pokemon battle and placed caterpie there. So that when in game I go to a certain location and interact with the ow sprite I put in using a map earlier, a level 50 kyurem attacked me... Now Poketronic don't support this patched rom how can I do this now so that when I interact to a sprite a legendary pokemon appear? I don't know how to write a script, but if I get one I can compile it somehow.
Again thanks for all your help and time,you can decide to ignore this request. No problem,you have already helped me a lot. I am troubling you just because you are the best tutor and person I have came across till date,and don't know who else to ask for help or where to ask for.... Thanks again man, god bless you,take care...
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
@tamsheel

If you're gonna write a post that's hard to read, and as a direct result of that, hard to understand, why should I go out of my way to help you? Especially when I'm a busy person what with University, work AND this hacking all coming into consideration. Normally, I'm a very patient guy, but it takes a lot of time and effort to read your posts, more than I can muster on the average day.

As to your complaints about the missing sprites, I'm fairly sure (correct me if I'm wrong) that I explicitly said in the OP that I'd removed all the sprites. I haven't inserted more yet because I'm waiting for Chaos Rush to make his good quality sprites.

As for not answering your requests on how to hex edit Pokémon data, I was trying to encourage you to go experiment and work it out for yourself. To become a good hacker, you need to be able to experiment and test things. I found that out the hard way - Other hackers won't necessarily happily give you the results of their hard earned hacking researches and developments. You have to learn to do stuff for yourself.
 
22
Posts
12
Years
  • Seen Sep 11, 2016
sorry

@tamsheel

If you're gonna write a post that's hard to read, and as a direct result of that, hard to understand, why should I go out of my way to help you? Especially when I'm a busy person what with University, work AND this hacking all coming into consideration. Normally, I'm a very patient guy, but it takes a lot of time and effort to read your posts, more than I can muster on the average day.

As to your complaints about the missing sprites, I'm fairly sure (correct me if I'm wrong) that I explicitly said in the OP that I'd removed all the sprites. I haven't inserted more yet because I'm waiting for Chaos Rush to make his good quality sprites.

As for not answering your requests on how to hex edit Pokémon data, I was trying to encourage you to go experiment and work it out for yourself. To become a good hacker, you need to be able to experiment and test things. I found that out the hard way - Other hackers won't necessarily happily give you the results of their hard earned hacking researches and developments. You have to learn to do stuff for yourself.

hi jambo. i am sorry for what i said earlier. you know i am too a office going guy
with a beautiful wife and a nice 7 months old son. and in the last few days i was so
much busy making this hack work that i was giving very little time to them. but yes i am
really thankfull to you as it was only due to your patch that i will be able,if ever, to get all
649 pokemons in my game and also to enter the two new forms of kyurem in it.
i was really filled up with negativity being not able to work out the hack. and that too when i didnt
knew what exactly is text speaking.
i really do know how much efforts it takes on your part to make this hack alone.so i am sorry to hurt you.
and i thought that the live beta will be having atleast the sprites completed as its better than patch 2,
so thats why i didnt checked it. mistake on my part.
now i am using your patch two, and just figuring the two possibilities as i wrotein my last post.
hope you forgive me. all the best for your future,take care...
 
2
Posts
12
Years
  • Seen Feb 21, 2013
It's been a while since any new word on how this patch is coming along. Just curious, and looking forward to it. (Not expecting it anytime soon, I'm just following along with the progression of it)
 
24
Posts
12
Years
  • Seen Apr 29, 2012
Jambo, I'm looking to do some abilities editing. Could you point me to where I can find the tables/whatever the hell goes on with abilities?
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
What do I use to patch this and after I patch it should there be 649 pokemon in there?

You use Lunar IPS (Google it). They won't appear in the wild, but the Pokémon (etc) are all in the ROM and you can create scripts to give the Pokémon to the player. There is no way to make the Pokémon appear in the wild except from hex editing sadly.

It's been a while since any new word on how this patch is coming along. Just curious, and looking forward to it. (Not expecting it anytime soon, I'm just following along with the progression of it)

Check out the Live Beta, it's a running patch which contains all of the new stuff that I'm adding, as I add it!

I somewhat doubt there will be an "official" alpha 4. The most likely thing to happen will be that I hit a stage where it becomes useable as a base for hacks, rather than just to be tested. When that happens, I'll update the OP.

Jambo, I'm looking to do some abilities editing. Could you point me to where I can find the tables/whatever the hell goes on with abilities?

There are no ability tables. It's only little checks in the relevant code locations, which makes adding/editing them a pain.


@tamsheel
Stop apologising to me. Everyone has bad days. :)
 
22
Posts
12
Years
  • Seen Sep 11, 2016
Hi to all. Thanks goodness there are some new posts here. I was wondering where all have gone. Been checking this page for last several days and now here are these 3 new posts and am really happy to see the one from you jambo. Thanks...
Meanwhile I learnt how to write script to give a pokemon,wild battle,make text appear before entering a legendary pokemon battle, adding new sprite in otherworld (little bit)
I did managed to hex edit and now new pokemons from white black do appear in the game properly. I am using patch 2 at the moment as I wanted all the pokemons to appear in the game. But now there's one problem...if I encounter a pokemon from black white in wild it will appear normally. I can fight it, it transforms. ok. The game runs fine. As long as I fight them, defeat them or run away its ok. But if I once catch my first pokemon,that then it goes well, but after catching the pokemon if I encounter the next pokemon in the wild the game crashes. Also if I try to use my pokedex it crashes. When I had not edited the locations for pokemons through hex till then the pokedex was fine. Am I doing something wrong? Also could you please add kyurem two new forms in the patch as well. They are so cool...
Thanks for your words, take acre. Looking forward for your replies.
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
Good to see that you're making progress on learning the various bits of hacking!

Also could you please add kyurem two new forms in the patch as well. They are so cool...

Kyurem's formes? Are there sprites and/or data available for it yet? If not, I can't add them. I CAN placehold for it though, and that's what I intend to do.

As long as I fight them, defeat them or run away its ok. But if I once catch my first pokemon,that then it goes well, but after catching the pokemon if I encounter the next pokemon in the wild the game crashes. Also if I try to use my pokedex it crashes.

You're not the first person to have reported such a bug, but I can't replicate it at all. I knew the Pokédex crashed on certain entries in Alpha 2, but that was because of spriting issues. What emulator are you using? Have you got the national dex (presumably you do)? Tell me as much as you can, and I'll see if I can replicate it, but these bugs simply do not happen for me.
 

Xenesis

Syogun Changer
55
Posts
17
Years
Extra Direct Music Tracks - OK, not strictly part of the extension. But nice to have anyway, no? Now have 12 direct tracks available instead of the standard measly 5.

I'm curious - how did you pull this off? The music engine is common across a lot of GBA games, so I'd love to know what you did.

Still, it's amazing to see some good old fashioned assembly work and elbow grease. This is an amazing project. :)
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
Actually, what I put is a bit misleading. What it actually gets you is 12 channels over 10 tracks, if that makes any sense.

ie, you could have 10 tracks playing direct at once, with 2 of those tracks playing a dual note, all at the same time.

The ROM actually supports that in its vanilla state, but has an arbitrary limit imposed on it by GF. In theory, the game could support more still, although I'm not sure of the exact numbers.

There is one caveat, Ruby can only support 7 tracks using this same extension. Although I haven't checked this personally, I was told by a Ruby hacker whom I have a lot of confidence in.

Emerald and Fire Red both support 12.

To actually achieve it, search for 00 C5 94 00 in your ROM and replace the C5 with CC. The string of characters should only appear once in the entire ROM.
 

miksy91

Dark Energy is back in action! ;)
1,480
Posts
15
Years
Although I'll never need this kind of patch myself (not hacking Firered), I think you should create an addiotional text document pointing all the locations (if possible) where the current coding of the game is modified (and what kind of things are written there).
I wouldn't trust a patch file myself that magically adds xx amount of pokemon to my hack and believe that everything would be fine after the patching.

You're doing amazing work so far though - can't deny that !
 
Status
Not open for further replies.
Back
Top