View Single Post
  #827    
Old March 28th, 2016 (7:21 PM).
AkameTheBulbasaur's Avatar
AkameTheBulbasaur AkameTheBulbasaur is offline
Akame Marukawa of Iyotono
     
    Join Date: May 2013
    Location: A place :D
    Age: 21
    Gender: Male
    Nature: Gentle
    Posts: 351
    PokeDex Search Functions

    In Fire Red, there are four "Search Modes" for the PokeDex. Alphabetical Mode, Type Mode, Lightest Mode and Smallest Mode.

    The PokeDex determines the order of the Pokemon in these modes by looking at a table. There are four tables, one for each mode.

    So let's say you change the heights and weights for any number of Pokemon, or you change the types. Maybe you have new Pokemon and the Alphabetical Order table is now out of date.

    These tables can be edited and re pointed to accommodate new Pokemon. It may be a small thing, but the little things can go a long way into making a hack more professional.

    The Alphabetical Mode Table starts at 0x443FC0.
    The Lightest Mode Table starts at 0x4442F6.
    The Smallest Mode Table starts at 0x4445FA.
    The Type Mode Table starts at 0x4448FE.

    The pointer to the Alphabetical Mode Table is at 0x103694.
    The pointer to the Type Mode Table is at 0x103734.
    The pointer to the Lightest Mode Table is at 0x1037CC.
    The pointer to the Smallest Mode Table is at 0x103868.

    Some Notes:

    Each table consists of one entry per Pokemon, with two bytes per entry. These two bytes are the reverse index number of the Pokemon. For example, Bulbasaur's Index Number is 0001, which would be shown in the table as 0100.

    The Alphabetical table truly begins at 0x443FF2. There are some entries that begin at 0x443FC0 that do not appear in the actual game. They are after the "PokeDex index numbers" for Deoxys, which I will explain later. Not sure why they are there, but unless you expanded the number of Pokemon in the PokeDex I would leave them alone. (Although if you expanded the number of Pokemon in the PokeDex you would have to repoint anyway.)

    Also, the Type Mode table uses the "true index numbers", which are the ones given by programs such as Gen III Hacking Suite and are the ones used by nearly every other function of the game (Wild Battles, Trainer Parties, Give Pokemon Scripts, etc.)

    HOWEVER

    Every other table here uses the PokeDex numbers as the index numbers. For example, Abra is 63 in the PokeDex, and appears in the table as 3F 00.

    This is really only important for the Hoenn Pokemon, as their internal order and PokeDex order are drastically different. The Type Mode Table includes the 25 Unused Slots between Celebi and Treecko in the table (though they are not shown in game), but the other three do not.

    This is likely related to the entries in the Alphabetical Mode before the true table starts. The 25 entries before the table truly starts are after Deoxys (who is 0x182 in the PokeDex Order) and are not shown in the Vanilla game.

    Below is a list of the Hoenn Pokemon and their co responding PokeDex Index Numbers. You could go onto Bulbapedia and translate the PokeDex Number there into hex, but that's really tedious.

    Spoiler:
    Treecko - FC 00
    Grovyle - FD 00
    Sceptile - FE 00
    Torchic - FF 00
    Combusken - 00 01
    Blaziken - 01 01
    Mudkip - 02 01
    Marshtomp - 03 01
    Swampert - 04 01
    Poochyena - 05 01
    Mightyena - 06 01
    Zigzagoon - 07 01
    Linoone - 08 01
    Wurmple - 09 01
    Silcoon - 0A 01
    Beautifly - 0B 01
    Cascoon - 0C 01
    Dustox - 0D 01
    Lotad - 0E 01
    Lombre - 0F 01
    Ludicolo - 10 01
    Seedot - 11 01
    Nuzleaf - 12 01
    Shiftry - 13 01
    Taillow - 14 01
    Swellow - 15 01
    Wingull - 16 01
    Pelipper - 17 01
    Ralts - 18 01
    Kirlia - 19 01
    Gardevoir - 1A 01
    Surskit - 1B 01
    Masquerain - 1C 01
    Shroomish - 1D 01
    Breloom - 1E 01
    Slakoth - 1F 01
    Vigoroth - 20 01
    Slaking - 21 01
    Nincada - 22 01
    Ninjask - 23 01
    Shedinja - 24 01
    Whismur - 25 01
    Loudred - 26 01
    Exploud - 27 01
    Makuhita - 28 01
    Hariyama - 29 01
    Azurill - 2A 01
    Nosepass - 2B 01
    Skitty - 2C 01
    Delcatty - 2D 01
    Sableye - 2E 01
    Mawile - 2F 01
    Aron - 30 01
    Lairon - 31 01
    Aggron - 32 01
    Meditite - 33 01
    Medicham - 34 01
    Electrike - 35 01
    Manectric - 36 01
    Plusle - 37 01
    Minun - 38 01
    Volbeat - 39 01
    Illumise - 3A 01
    Roselia - 3B 01
    Gulpin - 3C 01
    Swalot - 3D 01
    Carvanha - 3E 01
    Sharpedo - 3F 01
    Wailmer - 40 01
    Wailord - 41 01
    Numel - 42 01
    Camerupt - 43 01
    Torkoal - 44 01
    Spoink - 45 01
    Grumpig - 46 01
    Spinda - 47 01
    Trapinch - 48 01
    Vibrava - 49 01
    Flygon - 4A 01
    Cacnea - 4B 01
    Cacturne - 4C 01
    Swablu - 4D 01
    Altaria - 4E 01
    Zangoose - 4F 01
    Seviper - 50 01
    Lunatone - 51 01
    Solrock - 52 01
    Barboach - 53 01
    Whiscash - 54 01
    Corphish - 55 01\
    Crawdaunt - 56 01
    Baltoy - 57 01
    Claydol - 58 01
    Lileep - 59 01
    Cradily - 5A 01
    Anorith - 5B 01
    Armaldo - 5C 01
    Feebas - 5D 01
    Milotic - 5E 01
    Castform - 5F 01
    Kecleon - 60 01
    Shuppet - 61 01
    Banette - 62 01
    Duskull - 63 01
    Dusclops - 64 01
    Tropius - 65 01
    Chimecho - 66 01
    Absol - 67 01
    Wynaut - 68 01
    Snorunt - 69 01
    Glalie- 6A 01
    Spheal - 6B 01
    Sealeo - 6C 01
    Walrein - 6D 01
    Clamperl - 6E 01
    Huntail - 6F 01
    Gorebyss - 70 01
    Relicanth - 71 01
    Luvdisc - 72 01
    Bagon - 73 01
    Shelgon - 74 01
    Salamence - 75 01
    Beldum - 76 01
    Metang - 77 01
    Metagross - 78 01
    Regirock - 79 01
    Regice - 7A 01
    Registeel - 7B 01
    Latias - 7C 01
    Latios - 7D 01
    Kyogre - 7E 01
    Groudon - 7F 01
    Rayquaza - 80 01
    Jirachi - 81 01
    Deoxys - 81 01


    The Lightest and Smallest Tables have a limiter of 386 (or 0x181), so if the tables are extended they will have to be changed. The Type Mode Table does not have a limiter and ends at FF followed by anything that's not 00 (as FF 00 is an index number for a Pokemon.) I haven't looked into the Alphabetical Table much, but it doesn't appear to have a limiter either. I don't know how it measures the size of the table but the unused entries at the beginning might have something to do with it.
    __________________
    "The human sacrificed himself, to save the Pokemon. I pitted them against each other, but not until they set aside their differences did I see the true power they all share deep inside. I see now that the circumstances of one's birth are irrelevant; it is what you do with the gift of life that determines who you are." -Mewtwo
    Reply With Quote