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

[FR] Expanding the Pokedex

DoesntKnowHowToPlay

Tiny Umbrella with Lots and Lots of Good
265
Posts
12
Years
  • Seen Feb 24, 2024
It is now, but I'm actually terrible at maintaining tutorials apparently, so thanks Chaos Rush.
 
34
Posts
9
Years
  • Age 37
  • Seen Jul 1, 2022
I tried to do this on a Japanese FR 1.0 ROM but I get lost.
Can someone help me?
 
1,344
Posts
14
Years
  • Seen Dec 10, 2021
I tried to do this on a Japanese FR 1.0 ROM but I get lost.
Can someone help me?

Unfortunately you need an English FR ROM to do this (as it says in the first post), as presumably there would be a lot of differing offsets between the two versions. If you want to try it on an English ROM, however, an easier method is to just use G3HS and it'll do all the work for you, you just have to enter the number of new Pokemon you want. :)
 
5,256
Posts
16
Years
I think I may have found a bug with this. Trades that involve two expanded Pokémon will display the Pokémon you are receiving with the palette of the Pokémon you are sending. This doesn't occur if only one member of the trade is an expanded mon, though.

For example, if the trade is my Turtwig for their Chimecho, it works:
PU21qPG.png

And, if the trade is my Chimecheo for their Turtwig, it still works:
yPUbbfd.png

However, if it becomes my Turtwig for their Chimchar (or any expanded mon), this happens:
iibM0GH.png


You can, of course, replace Turtwig or Chimchar with any expanded mon or Chimecho with any regular mon and the same will happen. I assume this is just the case of an unedited limiter, but I've not really got any idea of how to find it.
 
2
Posts
11
Years
  • Seen Nov 9, 2014
Once you've decided, figure out how many bits it will take to encode the number of dex entries- the answer is (number of dex entries)/8, rounded up. Using this, pick two locations in the RAM freed by JPAN's hack to be where Seen and Caught flags will go.

Man, I didn't understand this part, can you explain me please?
 

Ayonn-

The Unbelivable
209
Posts
9
Years
Ow, I need help doing this, I don't have the level, can someone help me doing this in my rom please ??
 
Last edited:
22
Posts
14
Years
  • Seen Nov 23, 2023
I know this thread hasn't been bumped in like 2 weeks but this seemed like a good place to ask: has anyone made any headway in changing the order of the national dex? I know it's not hardcoded to internal ordering because Chimecho is after Deoxys internally, along with a lot of Hoenn mons that aren't where they should be national dex wise.
Editors have been made for the regional dex, and I would think that the national dex is programmed in a similar way, so why can't I find anything for reordering it?
 

GoGoJJTech

(☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
2,475
Posts
11
Years
I know this thread hasn't been bumped in like 2 weeks but this seemed like a good place to ask: has anyone made any headway in changing the order of the national dex? I know it's not hardcoded to internal ordering because Chimecho is after Deoxys internally, along with a lot of Hoenn mons that aren't where they should be national dex wise.
Editors have been made for the regional dex, and I would think that the national dex is programmed in a similar way, so why can't I find anything for reordering it?

There's a tool called "Pokedex Order Editor". It does exactly as you wish.
 
457
Posts
10
Years
  • Age 28
  • Seen Apr 9, 2024
So then... if I have expanded the number of pokemon... should i expand the habitats entries in pokedex in order to add expanded pokemon there?

Anyhow, i dunno how habitats list works. Lol
 

GoGoJJTech

(☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
2,475
Posts
11
Years
If you're talking about Sebbe's, it's regional only as far as I can tell.

Well idk who made the tool honestly, but if you use it in the PGE package (which is no longer public to Pokecommunity) it hooks in with the INI and you can use it for expanded and repointed tables, which is sorta what I had done in the past.
 

PurpleOrange

still don't know what I'm doing
367
Posts
10
Years
Something about this seems wrong. I don't see any second copies of the table in the disassembly, used or otherwise.

This is the routine that handles converting the internal ID into the cry ID, taken from knizz' disassembly and commented by me:

Code:
speciesid_conv:
    push {lr}
    lsl r0, r0, #0x10   @ typecasting
    lsr r0, r0, #0x10
    movs r1, r0
    cmp r0, #250        @ slots up to 250 have the same cry ID as the internal ID
    bls loc_8043332
    ldr r0, dword_8043324
    cmp r1, r0          @ is this slot 275 or below?
    bls loc_8043330     @ if so, branch
    ldr r0, off_8043328 @ otherwise, use the table
    ldr r2, dword_804332C
    add r1, r1, r2      @ subtract 276 from ID
    lsl r1, r1, #1      @ and multiply by two, since it's a table of 16-bit values
    add r1, r1, r0      @ then index into the table
    ldrh r0, [r1]       @ retrieve the value
    b loc_8043332       @ and leave
@ ---------------------------------------------------------------------------
dword_8043324:  .long 275
off_8043328:    .long 0x082539D4
dword_804332C:  .long -276
@ ---------------------------------------------------------------------------

loc_8043330:
    mov r0, #200        @ limbo slots use Unown's cry

loc_8043332:
    pop {r1}
    bx r1
@ End of function speciesid_conv

The table at x2539D4 is followed by the first experience curve table - there is no secondary cry table.

Editing this routine to remove the hardcoded cry for the limbo slots is easy: write 00 00 00 00 00 00 00 00 00 00 (that's ten bytes) to x4330C and 00 00 00 00 (four) to x43318, then repoint the table at x4539D4 and expand it - it's now a table with one word for every ID. (You can test to make sure that it worked without repointing the table - you'll know it worked if the title screen makes Blaziken's cry.)

how long is the table at x4539D4 that needs repointing, and do i need to change a pointer so that it goes to the new table?
 
136
Posts
10
Years
  • Age 35
  • Seen yesterday
how long is the table at x2539D4 that needs repointing, and do i need to change a pointer so that it goes to the new table?
Careful with that offset. :) It's 134 (0x86) words long, so 268 (0x10C) bytes. The pointer you need to change is at x43328, it's in the disassembly.
 

PurpleOrange

still don't know what I'm doing
367
Posts
10
Years
Careful with that offset. :) It's 134 (0x86) words long, so 268 (0x10C) bytes. The pointer you need to change is at x43328, it's in the disassembly.

so i did all of that (using the right offset this time) and it seems to have used all of gen iii's cries for gen 1, and mostly blank cries for anything else afterwards. do i need to put gen i and ii's cries before the repointed table, if so where do i get them from?
 
136
Posts
10
Years
  • Age 35
  • Seen yesterday
As I said, the cries for Gen I and II Pokémon are just their National Pokédex numbers in hex. I didn't fully work through how to expand the table other than saying "once you've done this it's one word per slot", so you're on your own.
 

PurpleOrange

still don't know what I'm doing
367
Posts
10
Years
As I said, the cries for Gen I and II Pokémon are just their National Pokédex numbers in hex. I didn't fully work through how to expand the table other than saying "once you've done this it's one word per slot", so you're on your own.

i got it fully working ^^ (as far as i know). the gen I and II pokemon are the national dex number in hex -1, followed by a 00, so i put the table for gen I & II in before the repointed table, but left 50 bytes between them, for the limbo slots. and everything seems to work. also the table repointed table should be 270 bytes (you left out chimecho :) )
 
Back
Top