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

Quick Research & Development Thread

457
Posts
10
Years
  • Age 28
  • Seen Apr 9, 2024
When a new save is generated, the default wallpapers for the storage system will loop through the first four wallpapers for every box. This always annoyed me way back when I first played FRLG; it felt like they were just wasting the assets.

To make the boxes use wallpapers 1 through 14, change the byte at 0x8C836 to 0xD (you can make it higher but as there are only fourteen boxes, it won't really affect anything). As the wallpapers are assigned at the time of generating the save, this will only affect new saves.

Default Wallpapers (Emerald)

In Emerald, to make the boxes use wallpapers 1 through 14, change the byte at 0x080C77C6 to 0xF (you can make it higher but as there are only fourteen boxes, it won't really affect anything). As the wallpapers are assigned at the time of generating the save, this will only affect new saves.

To note though, especially for FireRed, it should be 0xF not 0xD. It is because not a complete bug but what happened to me is Forest, City, Forest, City, Crag, Volcano, Crag, Volcano, Beach, Seafloor, Beach, Seafloor, Polka Dot, PokeCenter (from Boxes 1-14 respectively)... Shortly, it skips the third and fourth, used the first and second wallpapers again. Divisible by "4" (digits 0x3, 0x7, 0xB, 0xF) results better, otherwise like I said before.
 
Last edited:

AkameTheBulbasaur

Akame Marukawa of Iyotono
409
Posts
10
Years
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:


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.
 

AkameTheBulbasaur

Akame Marukawa of Iyotono
409
Posts
10
Years
teachy1.png


Ah, the Teachy TV. This item is given to you by the Old Man in Viridian City to teach the player about Pokemon. I find it to be completely useless, but one can hack the text to make it more useful if they wish.

There is a table at 0x479308 that determines the text that is displayed on the Teachy TV menu and which video it plays when the option is picked.

There is another table right after it that the TV uses at first.

The length of this table is at 0x479374.

Format

Each entry is eight bytes long. The first four are a pointer to the string of the menu option, for example "How do I catch a Pokemon?"

The fifth byte is the video that it will play. The valid numbers for this byte are 00 to 05. This is the order of the videos associated with each number.

00 - How to battle
01 - Status conditions
02 - Type matchups
03 - Catching Pokemon
04 - TMs
05 - Registering Items

Offsets for Text

The intro to each video is at 0x41B83D.

Offsets for How to Battle
Spoiler:


Offsets for Status Conditions
Spoiler:


Offsets for Type Matchup
Spoiler:


Offsets for Catching Pokemon
Spoiler:


Offsets for TMs
Spoiler:


Offsets for Item Registration
Spoiler:
 
Last edited:
22
Posts
8
Years
Haven't seen these on here so I thought I'd post what I've found.
These are both for Emerald.
Change moves called in the Nature Power table:
nature power table: 31c414 - 31c427 2 bytes per move in this order: tall grass, long grass, sand, underwater, sea water, pond water, rock, cave, building + plain terrain
limiter: 14ef4a Replace B1 20 40 00 81 42 with 00 00 00 00 00 00
callterrainattack(battle script command): 054bec

Fix Shedinja's evolution for expanded evolution table:
@13e3f6 change 80 to c0
@13e3fa change 4450 to 0000
Explanation:
Spoiler:

This change works for 8 evolutions. If you have more then it likely uses a similar pattern (shift bytes by a higher number and alternate whether or not you add the pokemon's index).
 

LCCoolJ95

Limited Capacity
638
Posts
14
Years
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:


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.
Here are the Emerald equivalents:

The Alphabetical Mode Table starts at 0x55C6A4
The Lightest Mode Table starts at 0x55C9DA
The Smallest Mode Table starts at 0x55CCDE

The pointer to the Alphabetical Mode Table is at 0xBCB74
The pointers to the Lightest Mode Table are at 0xBCC00 AND 0xBCC9C
The pointers to the Smallest Mode Table are at 0xBCD28 AND 0xBCE24

I have been expanding Emerald for a while, and I can conclude that these tables MUST be expanded in order for an expanded Pokemon to be shown in the Pokedex. I didn't include the types because these isn't a function like that in Emerald. Plus, when looking for a certain type of Pokemon, any Pokemon can be found, regardless if expanded or not...
 
794
Posts
10
Years
Fun fact: STAB doesn't actually affect the move power. It affects the damage directly after the move power and attacker/defender stats, but before the type multipliers. Posting this, because everywhere on web you can read that stab multiplies the move base power by 1.5, it doesn't. At least, not in gen3. :P
 
117
Posts
10
Years
I know a few of you were looking for this, but track 83 (53 in hex) plays the low HP sound. Hacking this could mean that we could have BW's low HP song playing as a fanfare.

The low HP sound for Emerald is located at track 90 (not sure what hex). Hoping to put together the BW's critical damage as well. But would the battle theme pause when the low HP song starts and the battle music resume at the same track before the low HP song?
 

GoGoJJTech

(☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
2,475
Posts
11
Years
The low HP sound for Emerald is located at track 90 (not sure what hex). Hoping to put together the BW's critical damage as well. But would the battle theme pause when the low HP song starts and the battle music resume at the same track before the low HP song?

No.
 
5,256
Posts
16
Years
Supposedly someone else documented this, but I couldn't find it in the thread index so I'm posting it again.

FR's Vs. Seeker table is at x45318C. Each entry is 16 (0x10) bytes, as follows:

0x0: half-word, denotes the trainer's ID in the first fight with them
0x2: up to five half-words denoting rematch IDs. FFFF is used as filler if more is coming, 0000 to terminate early.
0xC: half-word, seems to always be 3.
0xE: half-word, ranges from x15 to x41. Never seemed to be read in my tests. Appears to scale with trainer's levels in the base game (and by extension position).

The table has xDD entries and no terminator; the (a?) limiter is at x10d09c.

Looks like there's another limiter at x10CEE4, which is a part of special 0x3A.
 
5,256
Posts
16
Years
I haven't seen this documented anywhere: special 0x96 will set the flag named in var 0x8004.

For example, the following code:

setvar 0x8004 0x29D
special 0x96

Is equivalent to:

setflag 0x29D
 

Gamer2020

Accept no Imitations!
1,062
Posts
15
Years
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.


Alphabet does seem to have a limiter?
Code:
ROM:08103682 loc_8103682:                            @ CODE XREF: sub_8103518+102j
ROM:08103682                                         @ sub_8103518+122j
ROM:08103682                 MOVS    R0, #1
ROM:08103684                 ADD     R8, R0
ROM:08103686                 MOVS    R0, #0x19A
ROM:0810368A                 CMP     R8, R0
ROM:0810368C                 BLE     loc_810360C
ROM:0810368E                 B       loc_8103906
ROM:0810368E @ ---------------------------------------------------------------------------
ROM:08103690 off_8103690:    .long pokedex_state_maybe @ DATA XREF: sub_8103518+F0r
ROM:08103694 off_8103694:    .long Pokedex_Alphabetical_Mode
ROM:08103694                                         @ DATA XREF: sub_8103518:loc_810360Cr
ROM:08103698 off_8103698:    .long pokemon_names     @ DATA XREF: sub_8103518+13Er
So does Type mode?
Code:
ROM:08103722 loc_8103722:                            @ CODE XREF: sub_8103518+1A2j
ROM:08103722                                         @ sub_8103518+1C2j
ROM:08103722                 MOVS    R0, #1
ROM:08103724                 ADD     R8, R0
ROM:08103726                 MOVS    R0, #0x19A
ROM:0810372A                 CMP     R8, R0
ROM:0810372C                 BLE     loc_81036A4
ROM:0810372E                 B       loc_8103906
ROM:0810372E @ ---------------------------------------------------------------------------
ROM:08103730 off_8103730:    .long pokedex_state_maybe @ DATA XREF: sub_8103518+188r
ROM:08103734 off_8103734:    .long Pokedex_Type_Mode @ DATA XREF: sub_8103518:loc_81036A4r
ROM:08103738 off_8103738:    .long pokemon_names     @ DATA XREF: sub_8103518+1DEr
I might as well post these as well.
Code:
ROM:08103856 loc_8103856:                            @ CODE XREF: sub_8103518+2D6j
ROM:08103856                                         @ sub_8103518+2F6j
ROM:08103856                 MOVS    R0, #1
ROM:08103858                 ADD     R8, R0
ROM:0810385A                 LDR     R0, =0x181
ROM:0810385C                 CMP     R8, R0
ROM:0810385E                 BLE     loc_81037E0
ROM:08103860                 B       loc_8103906
ROM:08103860 @ ---------------------------------------------------------------------------
ROM:08103862                 .align 4
ROM:08103864 off_8103864:    .long pokedex_state_maybe @ DATA XREF: sub_8103518+2C4r
ROM:08103868 off_8103868:    .long Pokedex_Smallest_Mode
ROM:08103868                                         @ DATA XREF: sub_8103518:loc_81037E0r
ROM:0810386C off_810386C:    .long pokemon_names     @ DATA XREF: sub_8103518+312r
ROM:08103870 dword_8103870:  .long 0x181             @ DATA XREF: sub_8103518+342r
Code:
ROM:081037BA loc_81037BA:                            @ CODE XREF: sub_8103518+23Aj
ROM:081037BA                                         @ sub_8103518+25Aj
ROM:081037BA                 MOVS    R0, #1
ROM:081037BC                 ADD     R8, R0
ROM:081037BE                 LDR     R0, =0x181
ROM:081037C0                 CMP     R8, R0
ROM:081037C2                 BLE     loc_8103744
ROM:081037C4                 B       loc_8103906
ROM:081037C4 @ ---------------------------------------------------------------------------
ROM:081037C6                 .align 4
ROM:081037C8 off_81037C8:    .long pokedex_state_maybe @ DATA XREF: sub_8103518+228r
ROM:081037CC off_81037CC:    .long Pokedex_Lightest_Mode
ROM:081037CC                                         @ DATA XREF: sub_8103518:loc_8103744r
ROM:081037D0 off_81037D0:    .long pokemon_names     @ DATA XREF: sub_8103518+276r
ROM:081037D4 dword_81037D4:  .long 0x181             @ DATA XREF: sub_8103518+2A6r
 
5,256
Posts
16
Years
Fix Shedinja's evolution for expanded evolution table:
@13e3f6 change 80 to c0
@13e3fa change 4450 to 0000
Explanation:
Spoiler:

This change works for 8 evolutions. If you have more then it likely uses a similar pattern (shift bytes by a higher number and alternate whether or not you add the pokemon's index).

Same principles apply for FireRed, but the offsets are as follows:

@ CE762 change 80 00 to C0 00 (00 01 if you expanded to 16 evolution methods, etc.)
@ CE766 change 44 50 to 00 00
 
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
Braille Encoding
I didn't see it documented in the index, and I'm not sure if this has been posted before. In the Gen 3 games braille text uses a special encoding, which I've listed below:
Code:
00= 
01=A
04=,
03=C
05=B
06=I
07=F
09=E
0B=D
0D=H
0E=J
0F=G
11=K
13=M
15=L
16=S
17=P
19=O
1B=N
1D=R
1E=T
1F=Q
2C=.
2E=W
31=U
33=X
35=V
39=Z
3B=Y

FF=\x

0xFF terminates a braille string, while 0x00 is a space character. I'm not sure what other values not listed will show (if anything).
 

Telinc1

Weirdo Extraordinaire
168
Posts
10
Years
Braille Encoding
I didn't see it documented in the index, and I'm not sure if this has been posted before. In the Gen 3 games braille text uses a special encoding, which I've listed below:
-snip-
0xFF terminates a braille string, while 0x00 is a space character. I'm not sure what other values not listed will show (if anything).
This is probably common knowledge, but having it here doesn't hurt. Braille strings don't support the \p, \n and \l control codes, so to display multiline braille strings, the braille2 command together with special 0x1B2 is used. braille2 calculates the length of a braille string and sets 0x8006 to it. special 0x1B2 displays an arrow (you know, the one which is always used in messages) at the coordinates specified by 0x8005 and 0x8006 (0x8005 is set 0x82 = 130 at the beginning of braille scripts). To see how GameFreak used these, open up script 0x163BAB from FireRed.
 

DoesntKnowHowToPlay

Tiny Umbrella with Lots and Lots of Good
265
Posts
12
Years
  • Seen Feb 24, 2024
To change the Zigzagoon you fight in Emerald immediately after picking your starter to a different mon, change the 0x90 at x32706 to half the index number of the mon you want. If you want a mon who index number isn't a multiple of two, simply put its (single-byte) index number there and replace the x49 at x32708 with an x00. To change the mon to a non-even index number that is greater than one byte, learn ASM and do your own stuff now that you have the relevant offset.

To change its level, change the x2 at x32714 to the desired value.
 
788
Posts
17
Years
  • Age 29
  • Seen yesterday
No Healing Eggs [FR]

When healing at a Pokemon Center, the healing machine will light up with the number of Pokemon in your party. Starting in DP, eggs don't count - if you have two Pokemon and an egg, in RSEFRLG, you get three lights, in DP, you get two.

To get this behavior in FR, all you need to do is:

Code:
0x08083B8E: 08 F0 D5 FA

Spoiler:


Pokeblock Research [EM]

This may already be known, but I looked and couldn't find it. If this is known already, I apologize.

In Emerald, the contents of the Pokeblock Case are stored starting at [0x03005D8C] + 0x848. It is encrypted using the Security Key. Information on the Security Key, and how to disable it for Emerald can be found here.

The Pokeblock Case has room for 40 Pokeblocks, each in the same 8-byte format:

Spoiler:

I believe unk_0x7 is either just padding or some sort of terminator. In my experimentation, it was always 0x03. The available colors are:

Spoiler:

How could you use this? Well, I guess you could use this to, say, make NPCs that give out Pokeblocks, but seeing as most hacks don't feature contests anyway, that seems unlikely.

It's actually more useful for Emerald hacks that don't use the Pokeblock Case at all. The space reserved for the Pokeblock Case is persistent; it will be saved and loaded. If you don't use the Pokeblock case, you have (8 bytes/pokeblock) * (40 pokeblocks) = 320 bytes to persistently store whatever you want.

Constant Base Power For Hidden Power [FR]

Starting with XY, Hidden Power's base power was fixed at 60. Prior to this, it varied between 30 and 70, based on the Pokemon's IVs. To force the game to read the base power from the move data table, null out the strh at 0x0802B722:

Code:
0x0802B722: C0 46

After you've done that, HP will use the base power in the table as its base power. Unfortunately, in a vanilla FR it is listed as 0x01, so it will be very weak until you change it. Open your ROM in an attack editor (for example, the one bundled with PGE) and change the base power to 60 (as in XY).

For a final tweak, you may want to edit Hidden Power's description to remove the part that says its power varies, since that's no longer true.

Unhidden Power [FR]

Calculates the type (not power) of Hidden Power, so it displays as its actual type instead of always as a Normal-type move.

Disable "The Pokemon Stopped Evolving." [FR]

FR has a feature that if you attempt to evolve a Pokemon into something not in the Kanto Dex (and you don't have the National Dex), it will mysteriously stop evolving. You could just give the player the National Dex at the beginning of the game, but if you don't want to do that, you can easily disable this.

Basically, this will turn some conditional jumps into unconditional jumps, and remove some checks. No free space required.

Code:
0x08043156: 02 E0
0x080CE90C: 1C E0
0x080CF566: 17 E0
0x08126C26: C0 46 C0 46 C0 46 C0 46
0x08126C4C: 08 E0

Disable Item Removal During Trade With Held Item Evolutions [FR]

Trade With Held Item evolutions, such as Onix into Steelix, remove the required held item. As part of the above, I realized you could easily disable this entirely (and, yes, it is compatible with the above) by nulling out a call to pokemon_setattr. The held item will still be required, it just won't be removed. Why you would want to do this I don't really know, but if you do, I'm putting it here.

Code:
0x0804316A: C0 46 C0 46

Disable Trade Restrictions [FR]

FR has three distinct types of trade restrictions:

  • You can't trade or be traded an egg (even an egg of a Kanto Pokemon)
  • You can't trade in a Pokemon not in the Kanto Dex (even from another FRLG)
  • You can't trade with RSE

Normally, the first two restrictions are lifted after getting the National Dex, while trading with RSE is unlocked by the Sevii Island stuff in the post-game.

This removes all three of those restrictions.

Code:
0x08009754: C0 46 01 20
0x0800975C: C0 46 01 20
0x0804FA4E: C0 46 01 20
 
Last edited:
129
Posts
8
Years
Do anyone now how to make the Pokemon not lose HP in overworld when it is poisoned? How to disable electricity type Pokemon be paralyzed? And how to change the weather ability such as snow warning, drought from infinty turns to 5 turns? (Emerald)
 

Le pug

Creator of Pokémon: Discovery / Fat Kid
870
Posts
10
Years
There is

Code:
.text
.align 2
.thumb_func

main:
	push {lr}
	ldr r0, player_data
	ldr r0, [r0]
	ldr r1, chosen_name
	bl strcpy
	pop {pc}

strcpy:
	ldr r2, =(0x08008BA0 + 1)
	bx r2

.align 2
player_data: .word 0x03005D90
chosen_name: .word 0xDEADBEEF

That's untested, but you can callasm that, set the pointer that says 0xDEADBEEF to the pointer to a name of your choice (in Emerald). It must be 7 characters long and end in FF.

anyone know the pointer to call that allows you to open up the name player feature? i dont want to name the player but if the intro is skipped, later on I want to have it to where the player sets his name
 

Epsilon

Shiny Scizor
249
Posts
17
Years
Alphabet does seem to have a limiter?
Code:
ROM:08103682 loc_8103682:                            @ CODE XREF: sub_8103518+102j
ROM:08103682                                         @ sub_8103518+122j
ROM:08103682                 MOVS    R0, #1
ROM:08103684                 ADD     R8, R0
ROM:08103686                 MOVS    R0, #0x19A
ROM:0810368A                 CMP     R8, R0
ROM:0810368C                 BLE     loc_810360C
ROM:0810368E                 B       loc_8103906
ROM:0810368E @ ---------------------------------------------------------------------------
ROM:08103690 off_8103690:    .long pokedex_state_maybe @ DATA XREF: sub_8103518+F0r
ROM:08103694 off_8103694:    .long Pokedex_Alphabetical_Mode
ROM:08103694                                         @ DATA XREF: sub_8103518:loc_810360Cr
ROM:08103698 off_8103698:    .long pokemon_names     @ DATA XREF: sub_8103518+13Er
So does Type mode?
Code:
ROM:08103722 loc_8103722:                            @ CODE XREF: sub_8103518+1A2j
ROM:08103722                                         @ sub_8103518+1C2j
ROM:08103722                 MOVS    R0, #1
ROM:08103724                 ADD     R8, R0
ROM:08103726                 MOVS    R0, #0x19A
ROM:0810372A                 CMP     R8, R0
ROM:0810372C                 BLE     loc_81036A4
ROM:0810372E                 B       loc_8103906
ROM:0810372E @ ---------------------------------------------------------------------------
ROM:08103730 off_8103730:    .long pokedex_state_maybe @ DATA XREF: sub_8103518+188r
ROM:08103734 off_8103734:    .long Pokedex_Type_Mode @ DATA XREF: sub_8103518:loc_81036A4r
ROM:08103738 off_8103738:    .long pokemon_names     @ DATA XREF: sub_8103518+1DEr
I might as well post these as well.
Code:
ROM:08103856 loc_8103856:                            @ CODE XREF: sub_8103518+2D6j
ROM:08103856                                         @ sub_8103518+2F6j
ROM:08103856                 MOVS    R0, #1
ROM:08103858                 ADD     R8, R0
ROM:0810385A                 LDR     R0, =0x181
ROM:0810385C                 CMP     R8, R0
ROM:0810385E                 BLE     loc_81037E0
ROM:08103860                 B       loc_8103906
ROM:08103860 @ ---------------------------------------------------------------------------
ROM:08103862                 .align 4
ROM:08103864 off_8103864:    .long pokedex_state_maybe @ DATA XREF: sub_8103518+2C4r
ROM:08103868 off_8103868:    .long Pokedex_Smallest_Mode
ROM:08103868                                         @ DATA XREF: sub_8103518:loc_81037E0r
ROM:0810386C off_810386C:    .long pokemon_names     @ DATA XREF: sub_8103518+312r
ROM:08103870 dword_8103870:  .long 0x181             @ DATA XREF: sub_8103518+342r
Code:
ROM:081037BA loc_81037BA:                            @ CODE XREF: sub_8103518+23Aj
ROM:081037BA                                         @ sub_8103518+25Aj
ROM:081037BA                 MOVS    R0, #1
ROM:081037BC                 ADD     R8, R0
ROM:081037BE                 LDR     R0, =0x181
ROM:081037C0                 CMP     R8, R0
ROM:081037C2                 BLE     loc_8103744
ROM:081037C4                 B       loc_8103906
ROM:081037C4 @ ---------------------------------------------------------------------------
ROM:081037C6                 .align 4
ROM:081037C8 off_81037C8:    .long pokedex_state_maybe @ DATA XREF: sub_8103518+228r
ROM:081037CC off_81037CC:    .long Pokedex_Lightest_Mode
ROM:081037CC                                         @ DATA XREF: sub_8103518:loc_8103744r
ROM:081037D0 off_81037D0:    .long pokemon_names     @ DATA XREF: sub_8103518+276r
ROM:081037D4 dword_81037D4:  .long 0x181             @ DATA XREF: sub_8103518+2A6r

So have you found the offsets of these limiters?
 
Back
Top