• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Dawn, Gloria, Juliana, or Summer - which Pokémon protagonist is your favorite? Let us know by voting in our poll!
  • Our friends from the Johto Times are hosting a favorite Pokémon poll - and we'd love for you to participate! Click here for information on how to vote for your favorites!
  • 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.

[FR] Expanding the Pokedex

Does this work with Leafgreen since it does with firered?

Please stop posting in every thread to ask if it works with leafgreen. Most of the time the answer is no, if you have a problem with your Fire Red rom then it means it's not clean or it's not the 1.0 version. Most (if it's not all) of the time the features added for fire red won't work with leafgreen because the offset are slightly different
 
Just after the first like 5 byte changes, when he says to test, my Pokedex does start up. The only thing is that it shows every Pokemon as being caught already. I'm near positive I made all of the byte changes right. I chose 0x720000 and 0x721000 as my CAUGHT and SEEN offsets. I tried putting them in with and without +1 with no change in the result. Yes, I flipped them to '00 00 72' and '00 10 72'.

Thanks with any help ahead of time.

Whoa! Are those RAM parts? I'm sure that part should be using RAM offsets not ROM offsets.
 
Please stop posting in every thread to ask if it works with leafgreen. Most of the time the answer is no, if you have a problem with your Fire Red rom then it means it's not clean or it's not the 1.0 version. Most (if it's not all) of the time the features added for fire red won't work with leafgreen because the offset are slightly different

I can go around asking if something works for one but not the other if i want, i want to know as much as i can and weigh my options although i thank you for your response because you may have helped with the firered. I will continue to ask what questions i would to be answered.


Nor is it Every thread. ._. i hardly post at all.
 
I can go around asking if something works for one but not the other if i want, i want to know as much as i can and weigh my options although i thank you for your response because you may have helped with the firered. I will continue to ask what questions i would to be answered.


Nor is it Every thread. ._. i hardly post at all.

Of course you can, I didn't meant to prevent you to do anything you want, I said "please stop" because my answer, as I said, was available for every future question concerning the compatibility.

Also before asking, use your "search" function, it'll bring you a ton of answers

Now enjoy the different hacks :)
 
Okay sorry to bring this back but I need help I understand everything in this tutorial except

Using this, pick two locations in the RAM freed by JPAN's hack to be where Seen and Caught flags will go. Note that later steps will be easier if you put them next to each other.

Where do I find two free ram locations by the Joan save block hack isnit any two free space offsets with fsf and also I don't understand how to do this as well


Change x104B10 to point to new SEEN flags.

Same with the caught flags if anyone can help that would be great
 
I expanded the number of pokémon, and they work, complete with their dex entries. However, when I catch a new pokémon for the first time, this glitched screen shows up and sometimes crashes the game in VBA and always in No$GBA. Anyone familiar with this problem? Also, they only seem to show up in the National Dex list, not in the habitats, or weight categories, although these have been programmed.

[PokeCommunity.com] [FR] Expanding the Pokedex
 
Okay epsilion I need your help I understand how to do everything except for
pick two locations in the RAM freed by JPAN's hack to be where Seen and Caught flags will go. Note that later steps will be easier if you put them next to each other

Is it like two new free space offsets?

And also how do I make these happen because I'm also confused here
Change x104B10 to point to new SEEN flags
Change x104B5C to point to new CAUGHT flags

Put a pointer to whichever set of flags comes first at x549D0.
Put 20 1C 00 00 at x549b0.
Put XX 22 at x549b6, where XX is the number of bytes taken by your dex flags.
Put 20 1C at x549bc.
Put YY 30 at x549be, where YY is the number of bytes between the sets of flags. YY is probably the same as XX, but it doesn't have to be.
Put XX 22 at x549c2, where XX is the number of bytes taken by your dex flags
 
I need help I understand everything in this tutorial except

Using this, pick two locations in the RAM freed by JPAN's hack to be where Seen and Caught flags will go. Note that later steps will be easier if you put them next to each other.

Where do I find two free ram locations by the Joan save block hack isnit any two free space offsets with fsf and also I don't understand how to do this as well


Change x104B10 to point to new SEEN flags.

Same with the caught flags if anyone can help that would be great
 
Updated to fix breeding, without this expanded evolved mons hatch as their current stage (e.g.: Lilligants produce eggs containing more Lilligant instead of Petilil)

To fix breeding, write the ID of your last slot with meaningful evolution data at x459EC (pick an odd number; it's okay to go higher as long as it's not past the number of mons you actually have)
Then, write half of one less than that at x459CC.
If that requires more than one byte, write a quarter of one less than that instead, and change the x40 at x459CE to an x80.
If you are also expanding the number of evolutions, change the x28s at x4598A and x4598E to the new size of the evolution struct.
 
At x1025ec, you'll find a byte. This byte times eight is the amount of memory allocated for the pokedex.
If you have less than 510 mons, replace the byte with 1/2 your dex length.
If you have less than 1020 mons, set it to 1/4 your dex length and put 40 01 at x1025EE.
If you have more than 1020 mons, you have issues.

If for some reason someone wanted more than 1020 for this, the following would work.

Code:
.text
.align 2
.thumb
.thumb_func
.global PokedexLimitFR
/*at 081025E8, place 00480047XXXXXXXX where XXXXXXXX is the location of this routine. */
main:

ldr     r0,[r5]
strb    r4,[r0]   
ldr  r0, .Limit
nop
ldr     r1, .Return_Offset
bx      r1

.align 2
.Return_Offset:
    .word 0x081025F1
.Limit:
    .word 0x00000C10
Quick and dirty but it gets the job done.
 
Last edited:
Pretty sure you can also just bit-shift by one more, I just stopped grabbing opcodes at 1020 because I'm a lazy tutorial writer and going past 999 dex entries demands extra accommodations in various parts of the interface anyway. Edited that bit in the OP to clarify and be less rude.
 
Pretty sure you can also just bit-shift by one more, I just stopped grabbing opcodes at 1020 because I'm a lazy tutorial writer and going past 999 dex entries demands extra accommodations in various parts of the interface anyway. Edited that bit in the OP to clarify and be less rude.
Yeah I know. I just wanted an easy way for PGE to just add in the value without needing to worry about shifting.
 
If you decide to delete the old data while repointing you may notice that the intro may break because it is pointing to the old image pointer locations. Simply repoint the following pointers to the pointers for whatever Pokemon image you want to use in the intro.

130FA0 [Pointer to sprite pointer] [Pointer to pal pointer]

Also I seem to have 130F4C marked in my notes but I never labeled it. I think this is maybe the cry that is played in the intro???
 
If for some reason someone wanted more than 1020 for this, the following would work.

Code:
.text
.align 2
.thumb
.thumb_func
.global PokedexLimitFR
/*at 081025E8, place 00480047XXXXXXXX where XXXXXXXX is the location of this routine. */
main:

ldr     r0,[r5]
strb    r4,[r0]   
ldr  r0, .Limit
nop
ldr     r1, .Return_Offset
bx      r1

.align 2
.Return_Offset:
    .word 0x081025F1
.Limit:
    .word 0x00000C10
Quick and dirty but it gets the job done.

This has no bugs right? Say for instance, someone wants to expand up to 2039 slots? Estimation for up to Gen. 9 including every form/es...
 
How exactly does that routine work and does it have any bugs that is associated with it because this is very interesting and I'm not surprised if there is a drawback to this
 
Good afternoon, I have asta 1089 slots, how can i do to be displayed on the pokedex ? Since it can only be asta 999
 
This has no bugs right? Say for instance, someone wants to expand up to 2039 slots? Estimation for up to Gen. 9 including every form/es...

How exactly does that routine work and does it have any bugs that is associated with it because this is very interesting and I'm not surprised if there is a drawback to this

Good afternoon, I have asta 1089 slots, how can i do to be displayed on the pokedex ? Since it can only be asta 999

This does nothing different than what is already stated in the tutorial. It is simply a lazier way to change the value. As DoesntKnowHowToPlay already stated, it is not possible to have more than 999 without other modifications.
 
Back
Top