• 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 places on the 'net to talk Pokémon and more! Community members will not see the bottom screen advertisements.
  • Want to share your adventures playing Pokémon?
    Check out our new Travel Journals forum for sharing playthroughs of ROM Hacks, Fan Games, and other Pokémon content!
  • IMPORTANT: Following a takedown request, the following hacks have been delisted from PokéCommunity:

    • Pokémon Glazed
    • Pokémon: Giratina Strikes Back
    • Pokémon Flora Sky
    • Pokémon Stranded
    The downloads and discussion threads for these hacks will no longer be accessible, and staff will be unable to return questions regarding accessing this content.

Research: FireRed Pokédex Hacking

73
Posts
14
Years
  • Seen Aug 31, 2014
Current Patch Progress:
Limiters (100%)
Names (100%)
Front Sprites (100%)
Back Sprites (80% - Missing Shiny Pallets for Unova Pokémon)
Pokémon Data (100%)
Pokédex Entries (100%)
Movesets (0%)
TM/HM Compatibilities (0%)
Evolution Data (100%)
Evolution Types Added (100%)
Icons (100%)
Cries (100%)
Footprints (0%)
Pokédex Habitat Data (100%)
New Base Exp System (100%)
Item Use Coordinates (0%)
Gen 4/5 Moves (0%)

This might seem like a dumb question, but will all these patches be available individually or will they all be in one? I ask because I'm highly interested in the Evolution parts.
 
73
Posts
14
Years
  • Seen Aug 31, 2014
^ I believe there's a thread about hacking evolutions in FR...which Jambo has posted in. :P

Oh, I saw that. The project I'm working on and my experience with hacking created a "Blue Screen of Death" in my brain when I read the wall of text. If it's not easily available for my to let Onix evolve when leveling up with Iron Defense, then it's not really important enough for my FireRed re-up for my friends.
 
42
Posts
13
Years
  • Seen Aug 13, 2021
Saw the latest video you posted to Youtube, and I must say, great job figuring out how to switch the form types. Switching the sprites and icons should be simple in comparison. Also I'm assuming you made the Gracidea a hold item just to test it right? Anyway, I'm putting the sprites together and was wondering if there is a specific format you wanted. As in, do you want all of them in sheets, separate, or the way Chaos had them? Plus there are a few oddities that I'm not sure about such as Spinda and Castform. Just let me know and I'll get back to work on them.
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
I would prefer to have Front Sprite with normal pallet and backsprite with shiny pallet, as 2 separate .png files for each species (or forme).

I didn't realise that Gracidea wasn't a hold item until after i'd made the video. Just for accuracy, what exactly is it? Is it a "use" item? IE, I select Use then select Shaymin? I don't know how to make such items yet, as this item wouldn't close the bag, then run a script like the items we have been able to make so far.

I DO know however, that Shaymin's forme also carries time elements, so you don't need to worry about telling me that!

For these formes to work, I need to find/create some sort of free space inside the Pokémon data, somewhere to store for each individual pokémon what forme it currently has. We can't use Castform's way of doing it, because Castform is strictly only in battle, while Deoxys' style simply reads the game's ROM header to determine what sprite it should load.

I've looked for a while with no success. The only pseudo-free space I could find were bits and bytes here and there and the contest data (which is technically free space on FR). Any thoughts?
 
Last edited:
1,323
Posts
16
Years
  • Seen Dec 9, 2023
I'm just curious but did you insert all the sprites at offsets right next to each other, or in random free space locations in the rom? Because if I ever use this, I'm probably going to re-insert all the sprites since I absolutely cannot stand shrunken sprites that haven't been cleaned up properly. Normally I would just go to the offset of the first sprite (such as Bulbasaur) and just replace all the bytes with a crapload of FF bytes, but if you've placed the sprites randomly throughout the rom that would be harder for me to do.

The main reason why I would do this is because of free space. Alternatively, it would be nice if you could release a patch with no sprites inserted.
 

Full Metal

C(++) Developer.
810
Posts
16
Years
I'm just curious but did you insert all the sprites at offsets right next to each other, or in random free space locations in the rom? Because if I ever use this, I'm probably going to re-insert all the sprites since I absolutely cannot stand shrunken sprites that haven't been cleaned up properly. Normally I would just go to the offset of the first sprite (such as Bulbasaur) and just replace all the bytes with a crapload of FF bytes, but if you've placed the sprites randomly throughout the rom that would be harder for me to do.

The main reason why I would do this is because of free space. Alternatively, it would be nice if you could release a patch with no sprites inserted.

I believe a simple python script would suffice to replace all the sprites with FF bytes, as well as dump a list of pointers to repoint [ for use with unlz.gba ]
 
42
Posts
13
Years
  • Seen Aug 13, 2021
The Gracidea is a Key Item that is used on Shaymin. And like you said, it reverts at night. One thing that is sort of minor, Shaymin-S also reverts when frozen. Taken from Serebii Pokedex entry on shaymin.
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
I would prefer to have Front Sprite with normal pallet and backsprite with shiny pallet, as 2 separate .png files for each species (or forme).
That method is faulty as some backsprites have details that aren't present in front sprites, which can lead to colors that are only shown in the backsprite. An example of this would be Budew. The sheets I'm arranging are to be used with Wichu's Sprite Editor, which is very easy to use, and has no faults. It even lets you import an entire folder of Pokemon sprites, as long as each file is named by index number.
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
Ah yes. I've used this sprite editor.

Well, if you're naming them be index, make sure you name them by in game index order rather than national dex order.
 

tinix

PearlShipper & C Programmer
86
Posts
14
Years
Hello,

I have been trying to extend pokedex to show those extra 25 slots (387-411) which I have partially managed to do.
Problem is that pokedex freezes when trying to view anything, exit in national mode.
I think I missed out some limiters. I used this list http://pastebin.com/eATb3Sek and tried to set everything below 0x19B to 0x19B (that were not commented it errors) but the freez still occurs. Which of those are neede to be set for pokedex to work?
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
There's a Malloc (Memory Allocation) in the lead up to the Pokédex routine. If you don't hack this to have the correct length of memory, the ROM will simply crash when it attempts to load the NATIONAL dex (The Kanto Dex is loaded separately, but uses the same Malloc as the National Dex).

The Pokédex's Malloc is specifically designed to support a maximum of 386 Pokémon, and you need to raise that limit to 411 to support the Unown remnants. (Among other complicated things too!).

The length of the malloc is determined at 0x1025EC, with a mov r0, #0xC1.

The safest way (and the way I did it personally) was to insert a small routine at this location which branches off to a custom routine.
This is the routine I would have used if I simply wanted the Unown Remnants to be included:

Code:
.text
.align 2
.thumb
.thumb_func
.global dexmemorylengthen
main:
 ldr r0, length
 bl there
 ldr r1, return
 bx r1
there: ldr r1, there2
 bx r1
.align
length: .word 0x00000CD8
return: .word 0x081025F5
there2: .word 0x08002B9D

To insert this routine, navigate to 0x1025EC, and change the code there to:

Code:
00 48 00 47 XX XX XX 08

Where the XXXXXX08 stands for your pointer to the routine plus 1 for thumb.

This should help, as everything else is more obvious, and this is the one thing which is truly quite well hidden.

EDIT: I should have said that the "length" is the number of Pokémon in your Pokédex multiplied by 8. So for an unexpanded Pokédex it would be:
(0x182 * 0x8) = 0xC10
For including the Unown remnants, it would be:
(0x19B * 0x8) = 0xCD8
For having 649 Pokémon, it would be:
(0x289 * 0x8) = 0x1448.
 
Last edited:

tinix

PearlShipper & C Programmer
86
Posts
14
Years
There's a Malloc (Memory Allocation) in the lead up to the Pokédex routine. If you don't hack this to have the correct length of memory, the ROM will simply crash when it attempts to load the NATIONAL dex (The Kanto Dex is loaded separately, but uses the same Malloc as the National Dex).

The Pokédex's Malloc is specifically designed to support a maximum of 386 Pokémon, and you need to raise that limit to 411 to support the Unown remnants. (Among other complicated things too!).

The length of the malloc is determined at 0x1025EC, with a mov r0, #0xC1.

The safest way (and the way I did it personally) was to insert a small routine at this location which branches off to a custom routine.
This is the routine I would have used if I simply wanted the Unown Remnants to be included:

Code:
.text
.align 2
.thumb
.thumb_func
.global dexmemorylengthen
main:
 ldr r0, length
 bl there
 ldr r1, return
 bx r1
there: ldr r1, there2
 bx r1
.align
length: .word 0x00000CD8
return: .word 0x081025F5
there2: .word 0x08002B9D

To insert this routine, navigate to 0x1025EC, and change the code there to:

Code:
00 48 00 47 XX XX XX 08

Where the XXXXXX08 stands for your pointer to the routine plus 1 for thumb.

This should help, as everything else is more obvious, and this is the one thing which is truly quite well hidden.

Thank you very much I will try it ASAP
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
I just wanted to compliment you on the awesome work you're doing Jambo. When this gets released, everyone will be using it, and you deserve a hell of a lot of credit for it.

I think I might retire from ROM hacking when this patch is finished, actually.

Putting in the concerted effort and time to make such a large patch has really taken it out of me. I've started to not enjoy it now.
 
106
Posts
15
Years
  • Seen May 29, 2019
I think I might retire from ROM hacking when this patch is finished, actually.

Putting in the concerted effort and time to make such a large patch has really taken it out of me. I've started to not enjoy it now.

Damn, it's a shame to hear that, especially from someone which so much talent. I can only suggest to take a break from this patch/ROM hacking in general until you feel ready to continue your projects. Sure, it means that everyone will have to wait longer for something this epic but you do it because you enjoy it and that should be your main priority.

I was recently in a similar situation (not with ROM hacking) where I wasn't enjoying what I knew I should enjoy so I gave it a rest for a bit and when I came back to it everything was fine again, maybe that'll help you, I don't know but the main thing is for you to ROM hack because you want to, not because other people want this patch.
 

metapod23

Hardened Trainer
673
Posts
15
Years
  • Seen Aug 18, 2016
I think I might retire from ROM hacking when this patch is finished, actually.

Putting in the concerted effort and time to make such a large patch has really taken it out of me. I've started to not enjoy it now.

I wouldn't (if I were you) just retire from the hacking scene altogether. Of course, it's always your choice, but I think everybody gets burned out, especially when things become tedious and time consuming.

You obviously need a break, though. You should spend a few months away from the forum and rom hacking in general at least. Maybe focus on other projects, and when those become tedious and time consuming, come back to this one.

The people (myself included) who are eager to get their hands on your patches will most likely still be here.

However, if you do choose to retire from hacking, just remember that we all appreciate the efforts you put into the time you did spend with it.

I just wanted to say that, because I've felt burned out by rom hacking before. The only things that help me force myself to keep up with the hack were my own willpower and knowing how many people appreciated/enjoyed what I was doing. So I just wanted to let you know that it's appreciated, whether you release this patch or not, or whether you never hack roms again. :)

Oh, and another thing that could help would be to take it slower than you feel you want to. Maybe only spend an hour or two a week on the patch. It will take a considerably much longer time to complete, but then you won't feel consumed by it.
 
42
Posts
13
Years
  • Seen Aug 13, 2021
Thought that I would drop in here with the sheets that I have for front sprites. I haven't decided what to do about Gen 1-3 back sprites, so I'll hold off on posting those for a while. Anyway...

Sprites
Spoiler:

Most of these are just the sprites ripped from official games. A few are from WesleyFG's sprite pack. The rest are from the formerly 493 GBA project that Chaos started or made by me.

EDIT: As per request, the sheets are down until I can go through them to see which are from DrFuji. Once I take those out I'll get them back up.
 
Last edited:

DrFuji

[I]Heiki Hecchara‌‌[/I]
1,691
Posts
14
Years
Thought that I would drop in here with the sheets that I have for front sprites. I haven't decided what to do about Gen 1-3 back sprites, so I'll hold off on posting those for a while. Anyway...

Sprites
Spoiler:

Most of these are just the sprites ripped from official games. Others are from some hacks here, like Lilac and Light Platinum. A few are from WesleyFG's sprite pack. The rest are from the formerly 493 GBA project that Chaos started or made by me.

I don't know whether you contacted Wesley to ask to use his sprites, but you certainly didn't speak to me about the usage of mine. Please edit these sheets so you have removed all of the re-sized sprites that you took from Pokemon Lilac. I did not give you my permission to use them.

Thank you.
 
Last edited:

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
Current Patch Progress:

Limiters (100%)
Names (100%)
Front Sprites (100%)
Back Sprites (80% - Missing Shiny Pallets for Unova Pokémon)
Pokémon Data (100%)
Pokédex Entries (100%)
Movesets (4%)
TM/HM Compatibilities (0%)
Evolution Data (100%)
Evolution Types Added (100%)
Icons (100%)
Cries (100%)
Footprints (0%)
Pokédex Habitat Data (100%)
New Base Exp System (100%)
Item Use Coordinates (0%)
Gen 4/5 Moves (50% - Data/Types etc all in, but they all currently crash the game, need to research the battle scripts)
Gen 4/5 Moves Animations (0%)
Formes (90% - All the basic stuff needed is in, but there's no way to actually trigger the formes yet, except for Arceus's formes. This includes type switching formes!)
Extra TMs (100% - Still breakable, but it's easy enough to change if you wished to do so)
Music Extension Hack (100% - Not necessarily a major part of the hack, but nice to have. Gives you access to 12 direct tracks instead of 5)
Item Extension Hack (100% - Gives you an extra 255 (300 extra slots, of which 45 are the new TMs) items to play around with, as well as the free slots in the existing table for a total of 675 items)
Abilities (40% - Ability names are in, as are the Pokémon they are attached to, but they don't do anything yet)

Have I missed anything? If I have, let me know!
 
Last edited:

Full Metal

C(++) Developer.
810
Posts
16
Years
Question to Jambo:
Would an sqlite database with pretty much every bit of every pokemon's data ( and other various things ) be of any use to you? I found one from veekun's place, if you'd like it.
 
Back
Top