If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Pokémon Stadium (International)/ROM map: Difference between revisions
Jump to navigation
Jump to search
m (Hawk moved page Pokémon Stadium/ROM map to Pokémon Stadium (International)/ROM map) |
Mantidactyle (talk | contribs) (Thanks Revo) |
||
Line 1: | Line 1: | ||
{{rommap|game=Pokémon Stadium}} | {{rommap|game=Pokémon Stadium}} | ||
== | ==Yay0_Decompress routine== | ||
* <tt>0xC3F0</tt> - Overwrites RAM area (<tt>0x801AE0F8 - 0x801AE220</tt>) with a specific value when pressing A or Start at the title screen, when selecting a game mode, when accessing any stadium, when accessing the mini-games, and when the Pokémon choice is displayed before a battle | * <tt>0xC3F0</tt> - Overwrites RAM area (<tt>0x801AE0F8 - 0x801AE220</tt>) with a specific value when pressing A or Start at the title screen, when selecting a game mode, when accessing any stadium, when accessing the mini-games, and when the Pokémon choice is displayed before a battle | ||
// Needs to be documented | // Needs to be documented |
Latest revision as of 05:05, 7 August 2024
The following article is a ROM map for Pokémon Stadium (International).
Yay0_Decompress routine
- 0xC3F0 - Overwrites RAM area (0x801AE0F8 - 0x801AE220) with a specific value when pressing A or Start at the title screen, when selecting a game mode, when accessing any stadium, when accessing the mini-games, and when the Pokémon choice is displayed before a battle
// Needs to be documented LW A3, $0008 (A0) LW T9, $000C (A0) LW T8, $0004 (A0) ADD A3, A3, A0 ADD T9, T9, A0 OR A2, R0, R0 // A2 == 0 ADDI A0, A0, $0010 ADD T8, T8, A1 // T8 + A1 (0xC410) BNEL A2, R0, $0000C428 // If A2 ≠ 0, branch to 0xC428 SLT T1, T0, R0 LW T0, $0000 (A0) ADDIU A2, R0, $0020 // A2 = 32 ADDI A0, A0, $0004 // A0 += 4 SLT T1, T0, R0 (0xC428) BEQL T1, R0, $0000C448 // If T1 == 0, branch to 0xC448 LHU T2, $0000 (A3) LB T2, $0000 (T9) ADDI T9, T9, $0001 // T9 ++ ADDI A1, A1, $0001 // A1 ++ BEQ R0, R0, $0000C478 // Branch to 0xC478 SB T2, $FFFF (A1) LHU T2, $0000 (A3) (0xC448) ADDI A3, A3, $0002 // A3 += 2 SRL T3, T2, $C // T3 == T2 >> 12 ANDI T2, T2, $0FFF // T2 & 0xFFF BEQ T3, R0, $0000C48C // If T3 == 0, branch to 0xC48C SUB T1, A1, T2 // T1 = A1 - T2 ADDI T3, T3, $0002 // T3 += 2 (0xC460) LB T2, $FFFF (T1) ADDI T3, T3, $FFFF // T3-- ADDI T1, T1, $0001 // T1 ++ ADDI A1, A1, $0001 // A1 ++ BNEZ T3, $0000C460 // If T3 ≠ 0, branch to 0xC460 SB T2, $FFFF (A1) // Store T2 in RAM area (0x801AE0F8 - 0x801AE220) (0xC478) SLL T0, T0, $1 BNE A1, T8, $0000C410 // If A1 ≠ T8, branch to 0xC410 ADDI A2, A2, $FFFF // A2-- JR RA NOP (0xC48C) LBU T3, $0000 (T9) ADDI T9, T9, $0001 BEQ R0, R0, $0000C460 // Branch to 0xC460 ADDI T3, T3, $0012
Initialize ? RAM area
- 0xD13C - Initialize RAM area (0x801AE100 - 0x801AE830) before the battle starts
// Needs to be documented BNEZ T0, $0000D1B8 LB V1, $0036 (SP) LB V1, $0036 (SP) // (sic) BNE V1, S2, $0000D188 ADDIU T2, V1, $FFFF BLTZ V1, $0000D210 SB T2, $0036 (SP) SLL T3, S0, $1 ADDU T4, S1, T3 SH R0, $0000 (T4) LB T7, $0036 (SP) ADDIU S0, S0, $0001 SLL T5, S0, $18 ADDIU T8, T7, $FFFF SB T8, $0036 (SP) BGEZ T7, $0000D158 SRA S0, T5, $18 BEQ R0, R0, $0000D214 SLTI AT, S0, $0040 (0xD188) SLTI AT, S0, $0040 BEQ AT, R0, $0000D21C SLL T9, S0, $1 ADDIU S0, S0, $0001 SLL T1, S0, $18 SRA S0, T1, $18 SLTI AT, S0, $0040 ADDU T0, S1, T9 BNEZ AT, $0000D190 SH R0, $0000 (T0) // 00's (T0) BEQ R0, R0, $0000D220 OR V0, R0, R0
PRN area init ?
8000C4A8: ADDIU SP, SP, 0xFFC8 ;SP -= 0x38 8000C4AC: SW S5, 0x0028 (SP) ;Store S5 to (SP+0x28) 8000C4B0: SW S4, 0x0024 (SP) ;Store S4 to (SP+0x24) 8000C4B4: SW S3, 0x0020 (SP) ;Store S3 to (SP+0x20) 8000C4B8: SW S1, 0x0018 (SP) ;Store S1 to (SP+0x18) 8000C4BC: OR S1, A2, R0 ;S1 = A2 8000C4C0: OR S3, A1, R0 ;S3 = A1 8000C4C4: ADDIU S4, SP, 0x0034 ;S4 = SP + 0x34 8000C4C8: ADDIU S5, SP, 0x0036 ;S5 = SP + 0x36 8000C4CC: SW RA, 0x002C (SP) ;Store RA to (SP+0x2C) 8000C4D0: SW S2, 0x001C (SP) ;Store S2 to (SP+0x1C) 8000C4D4: OR S2, A3, R0 ;S2 = A3 8000C4D8: SW S0, 0x0014 (SP) ;Store S0 to (SP+0x14) 8000C4DC: OR A2, S5, R0 ;A2 = S5 8000C4E0: JAL 0x8000C644 ;Jump to 0x8000C644 and link 8000C4E4: OR A1, S4, R0 ;A1 = S4 8000C4E8: BEQ V0, R0, 0x8000C4F8 ;if(V0==0), branch to 0x8000C4F8 8000C4EC: LH T7, 0x0034 (SP) ;T7 = (SP+0x34) 8000C4F0: BEQ R0, R0, 0x8000C620 ;Branch to 0x8000C620 8000C4F4: ADDIU V0, R0, 0x0001 ;V0 = 1 8000C4F8: LH T6, 0x0000 (S2) ;T6 = (S2) 8000C4FC: ADDIU S0, R0, 0x0001 ;S0 = 1 8000C500: SLTI AT, S0, 0x0040 8000C504: ADDU T8, T6, T7 ;T8 = T6 + T7 8000C508: SH T8, 0x0000 (S2) ;Store T8 to (S2) 8000C50C: LH T9, 0x0000 (S2) ;T9 = (S2) 8000C510: ADDIU S2, R0, 0x000F ;S2 = 0xF 8000C514: BEQ AT, R0, 0x8000C61C ;if(S0<0x40), branch to 0x8000C61C 8000C518: SH T9, 0x0000 (S1) ;Store T9 to (S1) 8000C51C: OR A0, S3, R0 ;A0 = S3 8000C520: OR A1, S4, R0 ;A1 = S4 8000C524: JAL 0x8000C644 ;Jump to 0x8000C644 and link 8000C528: OR A2, S5, R0 ;A2 = S5 8000C52C: BEQ V0, R0, 0x8000C53C ;if(V0==0), branch to 0x8000C53C 8000C530: LH T0, 0x0034 (SP) ;T0 = (SP+0x34) 8000C534: BEQ R0, R0, 0x8000C620 ;Branch to 0x8000C620 8000C538: ADDIU V0, R0, 0x0001 ;V0 = 1 8000C53C: BNEZ T0, 0x8000C5B8 ;if(T0!=0), branch to 0x8000C5B8 8000C540: LB V1, 0x0036 (SP) ;V1 = (SP+0x36) 8000C544: LB V1, 0x0036 (SP) ;V1 = (SP+0x36) 8000C548: BNE V1, S2, 0x8000C588 ;if(V1!=S2), branch to 0x8000C588 8000C54C: ADDIU T2, V1, 0xFFFF ;T2 = V1 - 1 8000C550: BLTZ V1, 0x8000C610 ;if(V1<0), branch to 0x8000C610 8000C554: SB T2, 0x0036 (SP) ;Store T2 to (SP+0x36) 8000C558: SLL T3, S0, 0x1 ;T3 = S0 << 1 8000C55C: ADDU T4, S1, T3 ;T4 = S1 + T3 8000C560: SH R0, 0x0000 (T4) ;Store 0x0000 to (T4) 8000C564: LB T7, 0x0036 (SP) ;T7 = (SP+0x36) 8000C568: ADDIU S0, S0, 0x0001 ;S0++ 8000C56C: SLL T5, S0, 0x18 ;T5 = S0 << 0x18 8000C570: ADDIU T8, T7, 0xFFFF ;T8 = T7 - 1 8000C574: SB T8, 0x0036 (SP) ;Store T7 to (SP+0x36) 8000C578: BGEZ T7, 0x8000C558 ;if(T7 >=0), loop to 0x8000C558 8000C57C: SRA S0, T5, 0x18 ;S0 = T5 >> 0x18 8000C580: BEQ R0, R0, 0x8000C614 ;Branch to 0x8000C614 8000C584: SLTI AT, S0, 0x0040 8000C588: SLTI AT, S0, 0x0040 8000C58C: BEQ AT, R0, 0x8000C61C ;if(S0>=0x40), branch to 0x8000C61C 8000C590: SLL T9, S0, 0x1 ;T9 = S0 << 1 ;PRN area blanking loop 8000C594: ADDIU S0, S0, 0x0001 ;S0++ ;PRN area blanking loop 8000C598: SLL T1, S0, 0x18 ;T1 = S0 << 0x18 ;PRN area blanking loop 8000C59C: SRA S0, T1, 0x18 ;S0 = T1 >> 0x18 ;PRN area blanking loop 8000C5A0: SLTI AT, S0, 0x0040 ;PRN area blanking loop 8000C5A4: ADDU T0, S1, T9 ;T0 = S1 + T9 ;PRN area blanking loop 8000C5A8: BNEZ AT, 0x8000C590 ;if(S0 < 0x40), loop to 0x8000C590 ;PRN area blanking loop 8000C5AC: SH R0, 0x0000 (T0) ;Store 0x0000 to (T0) ;PRN area blanking loop 8000C5B0: BEQ R0, R0, 0x8000C620 ;Branch to 0x8000C620 8000C5B4: OR V0, R0, R0 ;V0 = 0 8000C5B8: SLT V0, R0, V1 8000C5BC: ADDIU T4, V1, 0xFFFF 8000C5C0: BEQ V0, R0, 0x8000C5F4 ;if(V1<=0), branch to 0x8000C5F4 8000C5C4: SB T4, 0x0036 (SP) ;Store T4 to (SP+0x36) 8000C5C8: SLL T5, S0, 0x1 ;T5 = S0 << 1 8000C5CC: ADDU T6, S1, T5 ;T6 = S1 + T5 8000C5D0: SH R0, 0x0000 (T6) ;Store 0x0000 to (T6) 8000C5D4: LB T9, 0x0036 (SP) ;T9 = (SP+0x36) 8000C5D8: ADDIU S0, S0, 0x0001 ;S0++ 8000C5DC: SLL T7, S0, 0x18 ;T7 = S0 << 0x18 8000C5E0: SLT V0, R0, T9 8000C5E4: ADDIU T0, T9, 0xFFFF ;T0 = T9 - 1 8000C5E8: SB T0, 0x0036 (SP) ;Store T0 to (SP+0x36) 8000C5EC: BNEZ V0, 0x8000C5C8 ;if(T9 > 0), loop to 0x8000C5C8 8000C5F0: SRA S0, T7, 0x18 ;S0 = T7 >> 0x18 8000C5F4: LH T1, 0x0034 (SP) ;T1 = (SP+0x34) 8000C5F8: SLL T2, S0, 0x1 ;T2 = S0 << 1 8000C5FC: ADDIU S0, S0, 0x0001 ;S0++ 8000C600: SLL T4, S0, 0x18 ;T4 = S0 << 0x18 8000C604: ADDU T3, S1, T2 ;T3 = S1 + T2 8000C608: SRA S0, T4, 0x18 ;S0 = T4 >> 0x18 8000C60C: SH T1, 0x0000 (T3) ;Store T1 to (T3) 8000C610: SLTI AT, S0, 0x0040 8000C614: BNEL AT, R0, 0x8000C520 ;if(S0<0x40), loop to 0x8000C520 and link 8000C618: OR A0, S3, R0 ;A0 = S3 8000C61C: OR V0, R0, R0 ;V0 = 0 8000C620: LW RA, 0x002C (SP) ;RA = (SP+0x2C) 8000C624: LW S0, 0x0014 (SP) ;S0 = (SP+0x14) 8000C628: LW S1, 0x0018 (SP) ;S1 = (SP+0x18) 8000C62C: LW S2, 0x001C (SP) ;S2 = (SP+0x1C) 8000C630: LW S3, 0x0020 (SP) ;S3 = (SP+0x20) 8000C634: LW S4, 0x0024 (SP) ;S4 = (SP+0x24) 8000C638: LW S5, 0x0028 (SP) ;S5 = (SP+0x28) 8000C63C: JR RA 8000C640: ADDIU SP, SP, 0x0038 ;SP += 0x38
Battle - Initialize Pokémon color / texture / transparency
8001BC34: ADDIU SP, SP, 0xFFE0 8001BC38: SW RA, 0x001C (SP) 8001BC3C: SW S0, 0x0018 (SP) 8001BC40: SW A1, 0x0024 (SP) 8001BC44: OR S0, A0, R0 ;S0 = A0 8001BC48: SW A2, 0x0028 (SP) 8001BC4C: JAL 0x094 8001BC50: OR A1, A3, R0 ;A1 = A3 8001BC54: JAL 0xD98 8001BC58: ADDIU A0, S0, 0x0060 ;A0 = S0 + 0x60 8001BC5C: LH A0, 0x002A (SP) 8001BC60: LH T6, 0x0026 (SP) 8001BC64: LBU T0, 0x0002 (S0) 8001BC68: LBU T8, 0x0001 (S0) 8001BC6C: SH T6, 0x0018 (S0) 8001BC70: ANDI T2, T0, 0xFFFB 8001BC74: ORI T4, T2, 0x0020 8001BC78: SB T2, 0x0002 (S0) 8001BC7C: ORI T6, T4, 0x0040 8001BC80: ORI T9, T8, 0x0001 8001BC84: SB T4, 0x0002 (S0) 8001BC88: ANDI T8, T6, 0xFFFD 8001BC8C: SB T9, 0x0001 (S0) 8001BC90: SB T6, 0x0002 (S0) 8001BC94: ADDIU V0, R0, 0xFF00 ;V0 = 0xFFFFFF00 8001BC98: ADDIU V1, R0, 0xFFFF ;V1 = 0xFFFFFFFF 8001BC9C: ADDIU T7, R0, 0x00FF ;T7 = 0xFF 8001BCA0: SB T8, 0x0002 (S0) 8001BCA4: ANDI T9, T8, 0xFFF7 8001BCA8: SB T7, 0x001D (S0) 8001BCAC: SB R0, 0x001C (S0) ;Pokémon gold attribute set to 0 8001BCB0: SW V0, 0x00A0 (S0) ;Pokémon RGB coloration - copy 8001BCB4: SW V0, 0x003C (S0) ;Pokémon RGB coloration set to V0 8001BCB8: SH V1, 0x0040 (S0) 8001BCBC: SW R0, 0x0044 (S0) 8001BCC0: SH V1, 0x0054 (S0) 8001BCC4: SW R0, 0x0058 (S0) 8001BCC8: SB T9, 0x0002 (S0) 8001BCCC: BLEZ A0, 0x8001BCDC 8001BCD0: SH A0, 0x001A (S0) 8001BCD4: JAL 0x60C 8001BCD8: OR A0, S0, R0 8001BCDC: LW RA, 0x001C (SP) 8001BCE0: LW S0, 0x0018 (SP) 8001BCE4: ADDIU SP, SP, 0x0020 8001BCE8: JR RA 8001BCEC: NOP
Gym Leader Castle - Gym initialization
8002B6BC: LUI V1, 0x800B 8002B6C0: LUI A0, 0x800B 8002B6C4: ADDIU A0, A0, 0xE548 8002B6C8: ADDIU V1, V1, 0xE540 8002B6CC: ADDIU V0, R0, 0x00FF 8002B6D0: ADDIU V1, V1, 0x0004 8002B6D4: SB V0, 0x11E1 (V1) 8002B6D8: SB V0, 0x11E2 (V1) 8002B6DC: SB V0, 0x11E3 (V1) 8002B6E0: BNE V1, A0, 0x8002B6D0 8002B6E4: SB V0, 0x11E0 (V1) 8002B6E8: LUI V0, 0x800B 8002B6EC: ADDIU V0, V0, 0xE540 8002B6F0: ADDIU T6, R0, 0x0001 ;Start at Trainer 1 8002B6F4: SB T6, 0x0003 (V0) ;Store current Trainer in (V0+0x3) 8002B6F8: JR RA 8002B6FC: SB R0, 0x11F3 (V0)
Writes ID of new Pokémon after a switch or replacement
- 0x3F7E8-0x3F900
8003EBE8: LBU A3, 0x003D (SP) ;A3 = (0x800816FD) 8003EBEC: LW T3, 0x0020 (SP) ;T3 = (0x800816E0) 8003EBF0: LUI AT, 0x8010 8003EBF4: XORI T9, A3, 0x0001 8003EBF8: ADDU AT, AT, T9 ;AT = 0x80100000 + A3 ⊕ 1 8003EBFC: SB R0, 0xCCC8 (AT) ;Store 0 to (0x800FCCC8 + (A3 ⊕ 1)) 8003EC00: SW T9, 0x001C (SP) ;Store T9 to 0x800816DC 8003EC04: LW V1, 0x0000 (T3) ;V1 = (T3) 8003EC08: LW A2, 0x0024 (SP) ;A2 = (0x800816E4) 8003EC0C: SLL T5, A3, 0x5 ;T5 = A3 << 5 8003EC10: LHU T4, 0x000C (V1) ;T4 = Player's active Pokémon ID 8003EC14: LUI AT, 0x8010 8003EC18: LUI T6, 0x8010 8003EC1C: ADDU T5, T5, A3 ;T5 += A3 8003EC20: SLL T5, T5, 0x2 ;T5 << 2 8003EC24: ADDIU T6, T6, 0xCB48 ;T6 = 0x800FCB48 8003EC28: ADDU AT, AT, A2 ;AT = 0x80100000 + A2 8003EC2C: ADDU V0, T5, T6 ;V0 = 0x800FCB48 + T5 8003EC30: SW T4, 0xCB28 (AT) ;Store Player's active Pokémon to (AT-0x34D8) 8003EC34: LW T7, 0x0024 (V0) ;T7 = (V0+0x24) 8003EC38: ADDIU T8, T7, 0x0001 ;T8 = T7 + 1 8003EC3C: SW T8, 0x0024 (V0) ;Store T8 in (V0+0x24) 8003EC40: LHU T9, 0x000C (V1) ;T9 = Player's active Pokémon ID 8003EC44: ANDI T3, T8, 0x000F ;T3 = T8 & 0xF 8003EC48: SLL T4, T3, 0x1 ;T4 = T3 << 1 8003EC4C: ADDU T5, V0, T4 ;T5 = V0 + T4 8003EC50: SH T9, 0x0000 (T5) ;Store Player's active Pokémon ID in (T5) 8003EC54: LBU T1, 0x000B (V1) ;T1 = next CPU Pokémon ID 8003EC58: BLEZ T1, 0x8003F19C ;If(CPU Pokémon ID ≤ 0), branch to 0x8003F19C 8003EC5C: OR A1, T1, R0 ;A1 = next CPU Pokémon ID 8003EC60: SLTI AT, T1, 0x0098 8003EC64: BEQ AT, R0, 0x8003F19C ;If(CPU Pokémon ID > 151), branch to 0x8003F19C 8003EC68: LUI T6, 0x8008 8003EC6C: ADDIU T6, T6, 0x839C ;T6 = 0x8007839C 8003EC70: ADDU A2, A3, T6 ;A2 = 0x8007839C + A3 8003EC74: LBU T0, 0x0000 (A2) ;T0 = 8003EC78: OR V0, R0, R0 ;V0 = 0 8003EC7C: SLL T7, A3, 0x3 ;T7 = A3 << 3 8003EC80: BEQ T0, R0, 0x8003ECB0 ;If(T0 == 0), branch to 0x8003ECB0 8003EC84: OR A0, T0, R0 ;A0 = T0 8003EC88: LUI T8, 0x8010 8003EC8C: ADDIU T8, T8, 0xCB38 ;T8 = 0x800FCB38 8003EC90: ADDU V1, T7, T8 ;V1 = 0x800FCB38 + T7 8003EC94: LBU T2, 0x0000 (V1) ;T2 = Previous CPU Pokémon ID 8003EC98: ADDIU V0, V0, 0x0001 ;V0++ 8003EC9C: SLTU AT, V0, A0 8003ECA0: BEQ A1, T2, 0x8003EF80 ;If(CPU Pokémon ID == Previous CPU Pokémon ID), branch to 0x8003EF80 8003ECA4: NOP 8003ECA8: BNEZ AT, 0x8003EC94 ;If(V0 < A0), branch to 0x8003EC94 8003ECAC: ADDIU V1, V1, 0x0001 ;V1++ 8003ECB0: SLL T3, A3, 0x3 ;T3 = A3 << 3 8003ECB4: ADDU T4, T3, T0 ;T4 = T3 8003ECB8: LUI AT, 0x8010 8003ECBC: ADDU AT, AT, T4 ;AT += T4 8003ECC0: ADDIU T9, T0, 0x0001 ;T9 = T0 + 1 8003ECC4: SB T1, 0xCB38 (AT) ;Stores the next Pokémon ID to (0x800FCB38 + T4) 8003ECC8: ANDI T5, T9, 0x00FF ;T5 = T9 & 0xFF 8003ECCC: SLTI AT, T5, 0x0008 8003ECD0: BNEZ AT, 0x8003ECE0 ;If(T5 < 8), branch to 0x8003ECE0 8003ECD4: SB T9, 0x0000 (A2) ;Store T9 to (A2) 8003ECD8: ADDIU T6, R0, 0x0007 ;T6 = 7 8003ECDC: SB T6, 0x0000 (A2) ;Store T6 to (A2) 8003ECE0: LUI T7, 0x8008 8003ECE4: LW T7, 0x83CC (T7) ;T7 = (0x800783CC) 8003ECE8: LUI AT, 0x8010 8003ECEC: ADDU AT, AT, A3 8003ECF0: BEQ T7, R0, 0x8003EF64 ;If(T7 == 0), branch to 0x8003EF64 8003ECF4: SB R0, 0xCB30 (AT) ;Store 0 in (0x800FCB30 + A3) 8003ECF8: ADDIU A0, A1, 0x00CB ;A0 = CPU Pokémon ID + 0xCB 8003ECFC: JAL 0x80041C70 ;Jump to 0x80041C70 and link 8003ED00: SB A3, 0x003D (SP) ;Push A3 to the stack
0x8003ED04
8003ED04: LBU T8, 0x003C (SP) ;T8 = (SP + 0x3C) 8003ED08: LUI A0, 0x8007 8003ED0C: LBU A3, 0x003D (SP) ;A3 = (SP + 0x3D) 8003ED10: BEQ T8, R0, 0x8003ED24 ;If(T8 == 0), branch to 0x8003ED24 8003ED14: ADDIU A0, A0, 0x7FEC ;A0 = 0x80077FEC 8003ED18: JAL 0x800420C0 8003ED1C: SB A3, 0x003D (SP) ;Store A3 to (SP + 0x3D)
0x8003ED20
8003ED20: LBU A3, 0x003D (SP) ;A3 = (SP + 0x3D) 8003ED24: LW T2, 0x001C (SP) ;T2 = (SP + 0x1C) 8003ED28: LUI A0, 0x8010 8003ED2C: LW T4, 0x0020 (SP) 8003ED30: SLL T3, T2, 0x2 8003ED34: ADDU A0, A0, T3 8003ED38: LW A0, 0xCB18 (A0) 8003ED3C: BEQL A0, R0, 0x8003F1A0 8003ED40: LW RA, 0x0014 (SP) 8003ED44: LW T9, 0x0000 (T4) 8003ED48: LUI AT, 0x4F80 8003ED4C: ADDIU T7, R0, 0x0001 8003ED50: LBU T5, 0x0026 (T9) 8003ED54: MTC1 T5, F4 8003ED58: BGEZ T5, 0x8003ED6C 8003ED5C: CVT.S.W F0, F4 8003ED60: MTC1 AT, F6 8003ED64: NOP 8003ED68: ADD.S F0, F0, F6 8003ED6C: LBU T6, 0x0026 (A0) 8003ED70: ADD.S F16, F0, F0 8003ED74: LUI AT, 0x4F80 8003ED78: MTC1 T6, F8 8003ED7C: BGEZ T6, 0x8003ED90 8003ED80: CVT.S.W F2, F8 8003ED84: MTC1 AT, F10 8003ED88: NOP 8003ED8C: ADD.S F2, F2, F10 8003ED90: SUB.S F12, F2, F0 8003ED94: LUI AT, 0x8008 8003ED98: C.LT.S F16, F12 8003ED9C: NOP 8003EDA0: BC1F 0x8003EDC0 8003EDA4: NOP 8003EDA8: LUI AT, 0x8010 8003EDAC: SB T7, 0xCCB1 (AT) 8003EDB0: LUI AT, 0x8010 8003EDB4: ADDU AT, AT, A3 8003EDB8: BEQ R0, R0, 0x8003F19C 8003EDBC: SB R0, 0xCCBA (AT) 8003EDC0: LWC1 F14, 0xC800 (AT) 8003EDC4: LUI AT, 0x8010 8003EDC8: ADDIU T8, R0, 0x0001 8003EDCC: MUL.S F18, F0, F14 8003EDD0: C.LT.S F18, F12 8003EDD4: NOP 8003EDD8: BC1F 0x8003EDF4 8003EDDC: NOP 8003EDE0: SB T8, 0xCCB1 (AT) 8003EDE4: LUI AT, 0x8010 8003EDE8: ADDU AT, AT, A3 8003EDEC: BEQ R0, R0, 0x8003F19C 8003EDF0: SB R0, 0xCCBA (AT) 8003EDF4: MUL.S F4, F2, F14 8003EDF8: SUB.S F6, F0, F2 8003EDFC: LUI T3, 0x8010 8003EE00: ADDIU T3, T3, 0xCCD6 8003EE04: ADDIU T2, R0, 0x0001 8003EE08: LUI AT, 0x8010 8003EE0C: ADDU V0, A3, T3 8003EE10: C.LT.S F4, F6 8003EE14: NOP 8003EE18: BC1F 0x8003EEC0 8003EE1C: NOP 8003EE20: SB T2, 0xCCB1 (AT) 8003EE24: LBU T4, 0x0000 (V0) 8003EE28: LUI T9, 0x8010 8003EE2C: ADDU T9, T9, A3 8003EE30: BEQ T4, R0, 0x8003EE6C 8003EE34: LBU T7, 0x003C (SP) 8003EE38: LBU T9, 0xCCBA (T9) 8003EE3C: LBU T5, 0x003C (SP) 8003EE40: BEQ T9, R0, 0x8003EE6C 8003EE44: NOP 8003EE48: BNEZ T5, 0x8003EEAC 8003EE4C: LUI A0, 0x8008 8003EE50: ADDIU A0, A0, 0x8014 8003EE54: SW V0, 0x0020 (SP) 8003EE58: JAL 0x800420C0 8003EE5C: SB A3, 0x003D (SP)
0x80041C70
80041C70: LUI T6, 0x8008 80041C74: LW T6, 0x8388 (T6) ;T6 = (0x80078388) 80041C78: ADDIU SP, SP, 0xFFE8 ;SP -= 0x18 80041C7C: SW RA, 0x0014 (SP) 80041C80: BEQ T6, R0, 0x80041CDC ;If(T6 == 0), leave this function 80041C84: OR A1, A0, R0 ;A1 = [Pokémon ID + offset] 80041C88: LUI T7, 0x8008 80041C8C: LBU T7, 0x83FC (T7) ;T7 = (0x800783FC) 80041C90: BEQL T7, R0, 0x80041CE0 ;If(T7 == 0), branch to 0x80041CE0 and link 80041C94: LW RA, 0x0014 (SP) 80041C98: BEQ A0, R0, 0x80041CDC ;If(A0 == 0), leave this function 80041C9C: ADDIU A0, R0, 0x0001 ;A0 = 1 80041CA0: JAL 0x80056C10 80041CA4: SW A1, 0x0018 (SP) ;Store [Pokémon ID + offset] to (SP + 0x18) 80041CA8: LUI A2, 0x8008 80041CAC: ADDIU A2, A2, 0x83B8 ;A2 = 0x800783B8 80041CB0: LW V1, 0x0000 (A2) ;V1 = (A2) 80041CB4: LW A1, 0x0018 (SP) ;A1 = [Pokémon ID + offset] 80041CB8: LUI AT, 0x8008 80041CBC: ANDI T8, V1, 0x0003 ;T8 = V1 & 3 80041CC0: SLL T9, T8, 0x2 ;T9 = T8 << 2 80041CC4: ADDU AT, AT, T9 ;AT += T9 80041CC8: ADDIU T0, V1, 0x0001 ;T0 = V1 + 1 80041CCC: SW A1, 0x83A4 (AT) ;A1 = (0x800783A4 + T9) 80041CD0: SW T0, 0x0000 (A2) ;T0 = (AT) 80041CD4: JAL 0x80056C10 80041CD8: OR A0, V0, R0 80041CDC: LW RA, 0x0014 (SP) 80041CE0: ADDIU SP, SP, 0x0018 ;SP += 0x18 80041CE4: JR RA 80041CE8: NOP
0x800420C0
800420C0: ADDIU SP, SP, 0xFFE8 800420C4: SW RA, 0x0014 (SP) 800420C8: JAL 0x80041EF4 800420CC: NOP 800420D0: BEQ V0, R0, 0x800420E0 800420D4: OR A0, V0, R0 800420D8: JAL 0x80041C70 800420DC: NOP 800420E0: LW RA, 0x0014 (SP) 800420E4: ADDIU SP, SP, 0x0018 800420E8: JR RA 800420EC: NOP
0x800424B0 (Battle stats calculation ?)
800424B0: LBU T5, 0x0039 (SP) 800424B4: LBU T8, 0x003B (SP) 800424B8: LUI T7, 0x8008 800424BC: SLL T6, T5, 0x4 800424C0: ADDIU T7, T7, 0x82A4 800424C4: SUBU T6, T6, T5 800424C8: ADDU A1, T6, T7 800424CC: ADDU T9, A1, T8 800424D0: LBU A0, 0x0000 (T9) 800424D4: LUI AT, 0x3F80 800424D8: MTC1 AT, F14 800424DC: ADDIU A3, R0, 0x0001 800424E0: LW A2, 0x0018 (SP) 800424E4: LW T0, 0x0074 (SP) 800424E8: LW T1, 0x0024 (SP) 800424EC: BEQ A3, A0, 0x80042510 800424F0: LW T2, 0x0078 (SP) 800424F4: ADDIU AT, R0, 0x0002 800424F8: BEQ A0, AT, 0x8004251C 800424FC: ADDIU AT, R0, 0x0003 80042500: BEQL A0, AT, 0x80042530 80042504: LUI AT, 0x4000 80042508: BEQ R0, R0, 0x8004253C 8004250C: MOV.S F12, F14 80042510: MTC1 R0, F12 80042514: BEQ R0, R0, 0x80042540 80042518: ANDI T3, V0, 0x00FF 8004251C: LUI AT, 0x3F00 80042520: MTC1 AT, F12 80042524: BEQ R0, R0, 0x80042540 80042528: ANDI T3, V0, 0x00FF 8004252C: LUI AT, 0x4000 80042530: MTC1 AT, F12 80042534: BEQ R0, R0, 0x80042540 80042538: ANDI T3, V0, 0x00FF 8004253C: ANDI T3, V0, 0x00FF 80042540: LWC1 F6, 0x0060 (SP) 80042544: ADDU T4, A1, T3 80042548: LBU A0, 0x0000 (T4) 8004254C: MUL.S F10, F6, F12 80042550: ADDIU A1, R0, 0x0084 80042554: BEQ A3, A0, 0x80042578 80042558: XORI V1, T1, 0x0001 8004255C: ADDIU AT, R0, 0x0002 80042560: BEQ A0, AT, 0x80042584 80042564: ADDIU AT, R0, 0x0003 80042568: BEQL A0, AT, 0x80042598 8004256C: LUI AT, 0x4000 80042570: BEQ R0, R0, 0x800425A4 80042574: MOV.S F2, F14 80042578: MTC1 R0, F2 8004257C: BEQ R0, R0, 0x800425A8 80042580: LBU V0, 0x0002 (A2) 80042584: LUI AT, 0x3F00 80042588: MTC1 AT, F2 8004258C: BEQ R0, R0, 0x800425A8 80042590: LBU V0, 0x0002 (A2) 80042594: LUI AT, 0x4000 80042598: MTC1 AT, F2 8004259C: BEQ R0, R0, 0x800425A8 800425A0: LBU V0, 0x0002 (A2) 800425A4: LBU V0, 0x0002 (A2) 800425A8: LBU T5, 0x001C (T0) 800425AC: BEQL T5, V0, 0x800425C0 800425B0: LUI AT, 0x3FC0 800425B4: LBU T6, 0x001D (T0) 800425B8: BNE T6, V0, 0x800425CC 800425BC: LUI AT, 0x3FC0 800425C0: MTC1 AT, F0 800425C4: BEQ R0, R0, 0x800425D0 800425C8: NOP 800425CC: MOV.S F0, F14 800425D0: MULTU V1, A1 800425D4: LUI A0, 0x8010 800425D8: MUL.S F8, F10, F2 800425DC: ADDIU A0, A0, 0xCB48 800425E0: MUL.S F4, F8, F0 800425E4: MFLO T7 800425E8: ADDU V0, A0, T7 800425EC: LW T8, 0x0024 (V0) 800425F0: MTC1 R0, F8 800425F4: ANDI T9, T8, 0x000F 800425F8: SLL T3, T9, 0x1 800425FC: ADDU T4, V0, T3 80042600: LHU T5, 0x0000 (T4) 80042604: SWC1 F4, 0x005C (SP) 80042608: MTC1 T5, F6 8004260C: BGEZ T5, 0x80042624 80042610: CVT.S.W F16, F6 80042614: LUI AT, 0x4F80 80042618: MTC1 AT, F10 8004261C: NOP 80042620: ADD.S F16, F16, F10 80042624: C.EQ.S F16, F8 80042628: LUI AT, 0x3F80 8004262C: BC1FL 0x80042640 ;if(F16 != F8), branch likely to 0x42640 80042630: LHU T6, 0x0028 (T2) ;T6 = P2 HP 80042634: MTC1 AT, F16 80042638: NOP 8004263C: LHU T6, 0x0028 (T2) ;T6 = P2 HP 80042640: LUI A2, 0x8008 80042644: ADDIU A2, A2, 0x8390 ;A2 = 80078390 80042648: MTC1 T6, F4 8004264C: ADDU T7, A2, V1 80042650: BGEZ T6, 0x80042668 ;if(P2 HP ≥ 0), branch to 0x42668 80042654: CVT.S.W F6, F4 80042658: LUI AT, 0x4F80 8004265C: MTC1 AT, F10 80042660: NOP 80042664: ADD.S F6, F6, F10 80042668: LBU T8, 0x0000 (T7) 8004266C: MTC1 R0, F10 80042670: SWC1 F6, 0x0054 (SP) 80042674: BNE A3, T8, 0x80042684 80042678: LUI AT, 0x8008 8004267C: BEQ R0, R0, 0x80042688 80042680: LWC1 F18, 0xCB80 (AT) 80042684: MOV.S F18, F14 80042688: MULTU T1, A1 8004268C: LUI AT, 0x4F80 80042690: MFLO T9 80042694: ADDU V0, A0, T9 80042698: LW T3, 0x0024 (V0) 8004269C: ADDU T9, A2, T1 800426A0: ANDI T4, T3, 0x000F 800426A4: SLL T5, T4, 0x1 800426A8: ADDU T6, V0, T5 800426AC: LHU T7, 0x0000 (T6) 800426B0: MTC1 T7, F8 800426B4: BGEZ T7, 0x800426C8 800426B8: CVT.S.W F2, F8 800426BC: MTC1 AT, F4 800426C0: NOP 800426C4: ADD.S F2, F2, F4 800426C8: C.EQ.S F2, F10 800426CC: LUI AT, 0x3F80 800426D0: BC1FL 0x800426E4 800426D4: LHU T8, 0x0028 (T0) 800426D8: MTC1 AT, F2 800426DC: NOP 800426E0: LHU T8, 0x0028 (T0) 800426E4: LUI AT, 0x4F80 800426E8: MTC1 T8, F6 800426EC: BGEZ T8, 0x80042700 800426F0: CVT.S.W F8, F6 800426F4: MTC1 AT, F4 800426F8: NOP 800426FC: ADD.S F8, F8, F4 80042700: LBU T3, 0x0000 (T9) 80042704: LWC1 F10, 0x0054 (SP) 80042708: SWC1 F8, 0x0048 (SP) 8004270C: BNE A3, T3, 0x80042720 80042710: DIV.S F6, F10, F16 80042714: LUI AT, 0x8008 80042718: BEQ R0, R0, 0x80042724 8004271C: LWC1 F12, 0xCB84 (AT) 80042720: MOV.S F12, F14 80042724: LBU V0, 0x0015 (T2) 80042728: LUI AT, 0x8008 8004272C: ANDI T4, V0, 0x0020 80042730: BEQ T4, R0, 0x80042740 80042734: ANDI T5, V0, 0x0007 80042738: BEQ R0, R0, 0x80042754 8004273C: LWC1 F0, 0xCB88 (AT) 80042740: BEQ T5, R0, 0x80042750 80042744: LUI AT, 0x8008 80042748: BEQ R0, R0, 0x80042754 8004274C: LWC1 F0, 0xCB8C (AT) 80042750: MOV.S F0, F14 80042754: LUI AT, 0x8008 80042758: LWC1 F14, 0xCB90 (AT) 8004275C: LUI AT, 0x3F80 80042760: MTC1 AT, F8 80042764: MUL.S F4, F6, F14 80042768: LWC1 F6, 0x005C (SP) 8004276C: ADDIU V0, R0, 0x0001 80042770: ADD.S F10, F4, F8 80042774: MTC1 AT, F8 80042778: LUI AT, 0x4F00 8004277C: MUL.S F4, F10, F6 80042780: LWC1 F10, 0x0048 (SP) 80042784: DIV.S F6, F10, F2 80042788: MUL.S F10, F6, F14 8004278C: ADD.S F6, F8, F10 80042790: MUL.S F8, F4, F6 80042794: NOP 80042798: MUL.S F10, F8, F18 8004279C: NOP 800427A0: MUL.S F4, F10, F12 800427A4: NOP 800427A8: MUL.S F6, F4, F0 800427AC: CFC1 T6, F31 800427B0: CTC1 V0, F31 800427B4: NOP 800427B8: CVT.W.S F8, F6 800427BC: CFC1 V0, F31 800427C0: NOP 800427C4: ANDI V0, V0, 0x0078 800427C8: BEQ V0, R0, 0x80042814 800427CC: NOP 800427D0: MTC1 AT, F8 800427D4: ADDIU V0, R0, 0x0001 800427D8: SUB.S F8, F6, F8 800427DC: CTC1 V0, F31 800427E0: NOP 800427E4: CVT.W.S F8, F8 800427E8: CFC1 V0, F31 800427EC: NOP 800427F0: ANDI V0, V0, 0x0078 800427F4: BNEZ V0, 0x8004280C 800427F8: NOP 800427FC: MFC1 V0, F8 80042800: LUI AT, 0x8000 80042804: BEQ R0, R0, 0x80042824 80042808: OR V0, V0, AT 8004280C: BEQ R0, R0, 0x80042824 80042810: ADDIU V0, R0, 0xFFFF 80042814: MFC1 V0, F8 80042818: NOP 8004281C: BLTZ V0, 0x8004280C 80042820: NOP 80042824: ORI AT, R0, 0x8000 80042828: CTC1 T6, F31 8004282C: SLTU AT, V0, AT 80042830: BNEZ AT, 0x8004283C 80042834: OR V1, V0, R0 80042838: ADDIU V1, R0, 0x7FFF 8004283C: OR V0, V1, R0 80042840: LW RA, 0x0014 (SP) 80042844: ADDIU SP, SP, 0x0070 80042848: JR RA 8004284C: NOP
Pokémon Types & Moves handling #1
- 0x4308C - Loads P1's Pokémon Type
SWC1 F4, $0060 (SP) LBU A0, $001C (T2) // Loads P1's Pokémon type in register A0 SW T1, $0024 (SP) JAL $00042850
- 0x43450 - Checks if the Defending Pokémon has a valid Type
SW A0, $0000 (SP) ANDI A0, A0, $00FF SLTIU AT, A0, $001B // If P1's Pokémon Type is < 0x1B, sets AT to 1 BEQ AT, R0, $000434F0 // If P1's Pokémon Type is invalid, jump to 0x434F0 SLL T6, A0, $2 LUI AT, $8008 ADDU AT, AT, T6 // AT = 0x80080000 + (P1's Pokémon type << 2) LW T6, $CB94 (AT) // Load pointer to either JR RA for valid Types, or to 0x434F0 for invalid Types JR T6
Alternate PRNG
0x4D820
- Alternate PRNG. seed1 uses standard Ansi C PRNG instead of the slightly modified one (use 0x303B as an offset instead of 0x3039), and only rolls once instead of a number of time which depends on the Counter(COP0) register.
seed1 = seed1 × 0x41C64E6D + 0x3039; if(seed2 && 1 == 1) { seed2 = seed2 ⊕ 0x11020; } seed2 = seed2 >> 1; prn = seed2 ⊕ seed1;
8004CC34: LUI A0, 0x8008 8004CC38: ADDIU A0, A0, 0x8F9C ;A0 = 0x80078F9C 8004CC3C: LW T6, 0x0000 (A0) ;T6 = seed1 8004CC40: LUI AT, 0x41C6 8004CC44: ORI AT, AT, 0x4E6D ;AT = 0x41C64E6D 8004CC48: MULTU T6, AT 8004CC4C: LUI A1, 0x8008 8004CC50: ADDIU A1, A1, 0x8FA0 ;A1 = 0x80078FA0 8004CC54: LW V1, 0x0000 (A1) ;V1 = seed2 8004CC58: LUI AT, 0x0001 8004CC5C: ORI AT, AT, 0x1020 ;AT = 0x11020 8004CC60: ANDI T9, V1, 0x0001 ;T9 = seed2 & 1 8004CC64: XOR T0, V1, AT ;T0 = seed2 ^ 0x11020 8004CC68: MFLO T7 ;T7 = seed1 × 0x41C64E6D 8004CC6C: ADDIU T8, T7, 0x3039 ;T8 = T7 + 0x3039 8004CC70: BEQ T9, R0, 0x8004CC80 ;if(T9 == 0), branch to 0x8004CC80 8004CC74: SW T8, 0x0000 (A0) ;Store new seed1 in 0x80078F9C 8004CC78: SW T0, 0x0000 (A1) ;else store new seed2 in 0x80078FA0 8004CC7C: OR V1, T0, R0 ; V1 = seed2; 8004CC80: LW T2, 0x0000 (A0) ;T2 = seed1 8004CC84: SRL T1, V1, 0x1 ;T1 = seed2 >> 1 8004CC88: SW T1, 0x0000 (A1) 8004CC8C: JR RA 8004CC90: XOR V0, T2, T1 ;V0 = seed1 ^ seed2
Game and Battle Initialization
- 0x58BD0 - Initialize Battle-related values to 0 at game start-up, or before a battle starts
SLTI AT, A1, $000C BNEZ AT, $00058C4C SUBU V1, R0, A0 ANDI V1, V1, $0003 BEQ V1, R0, $00058BF0 SUBU A1, A1, V1 SWL R0, $0000 (A0) ADDU A0, A0, V1 (0x58BF0) ADDIU AT, R0, $FFE0 AND A3, A1, AT BEQ A3, R0, $00058C2C SUBU A1, A1, A3 ADDU A3, A3, A0 ADDIU A0, A0, $0020 SW R0, $FFE0 (A0) // 00's the selected RAM area (PRNG area, Move data area...) SW R0, $FFE4 (A0) SW R0, $FFE8 (A0) SW R0, $FFEC (A0) SW R0, $FFF0 (A0) SW R0, $FFF4 (A0) SW R0, $FFF8 (A0) BNE A0, A3, $00058C04 SW R0, $FFFC (A0) ADDIU AT, R0, $FFFC AND A3, A1, AT BEQ A3, R0, $00058C4C SUBU A1, A1, A3 ADDU A3, A3, A0 ADDIU A0, A0, $0004 BNE A0, A3, $00058C40 SW R0, $FFFC (A0) (0x58C4C) BLEZ A1, $00058C64 NOP ADDU A1, A1, A0 ADDIU A0, A0, $0001 BNE A0, A1, $00058C58 SB R0, $FFFF (A0) JR RA NOP
PRNG count
- 0x5C900 - Copies the COP0 Count register in V0, used for iterating the Pseudo-Random Number Generator
MFC0 V0, COUNT // V0 = Counter(COP0) JR RA NOP
Copy Move name
- 0x5E450 - Copy Move name
8005D850: ADDIU SP, SP, 0xFF28 8005D854: SW S7, 0x0034 (SP) 8005D858: SW S6, 0x0030 (SP) 8005D85C: SW S5, 0x002C (SP) 8005D860: SW S8, 0x0038 (SP) 8005D864: SW S4, 0x0028 (SP) 8005D868: SW S3, 0x0024 (SP) 8005D86C: SW A3, 0x00E4 (SP) 8005D870: LUI S5, 0x8008 8005D874: LUI S6, 0x8008 8005D878: LUI S7, 0x8008 8005D87C: OR A3, A2, R0 ;A3 = A2 8005D880: OR S3, A1, R0 ;S3 = A1 8005D884: OR S4, A0, R0 ;S4 = A0 8005D888: SW RA, 0x003C (SP) 8005D88C: SW S2, 0x0020 (SP) 8005D890: SW S1, 0x001C (SP) 8005D894: SW S0, 0x0018 (SP) 8005D898: SW A2, 0x00E0 (SP) 8005D89C: SW R0, 0x00CC (SP) 8005D8A0: ADDIU S7, S7, 0xA960 ;S7 = 0x8007A960 8005D8A4: ADDIU S6, S6, 0xE394 ;S6 = 0x8007E394 8005D8A8: ADDIU S5, S5, 0xA984 ;S5 = 0x8007A984 8005D8AC: ADDIU S8, R0, 0x000A ;S8 = 0xA 8005D8B0: LBU V0, 0x0000 (A3) ;V0 = (A3) 8005D8B4: OR S2, A3, R0 ;S2 = A3 8005D8B8: ADDIU V1, R0, 0x0025 ;V1 = 0x25 8005D8BC: BEQ V0, R0, 0x8005D8E4 ;if V0 = 0, branch to 0x8005D8E4 8005D8C0: OR S0, V0, R0 ;S0 = V0 8005D8C4: BEQL V1, V0, 0x8005D8E8 ;if V1 = V0, branch to 0x8005D8E8 8005D8C8: SUBU V0, S2, A3 ;V0 = S2 - A3 8005D8CC: LBU V0, 0x0001 (S2) ;V0 = character at (S2+0x1) 8005D8D0: ADDIU S2, S2, 0x0001 ;S2++ 8005D8D4: BEQ V0, R0, 0x8005D8E4 ;if V0 = 0, branch to 0x8005D8E4 8005D8D8: OR S0, V0, R0 ;S0 = V0 8005D8DC: BNEL V1,V0,0x8005D8D0 ;if(V1 ≠ V0), branch to 0x8005D8D0 and link 8005D8E0: LBU V0, 0x0001 (S2) ;V0 = character at (S2+0x1) 8005D8E4: SUBU V0, S2, A3 ;V0 = text.size 8005D8E8: BLEZ V0, 0x8005D920 ;if(text.size ≤ 0), branch to 0x8005D920 8005D8EC: OR A0, S3, R0 ;A0 = S3 8005D8F0: OR A1, A3, R0 ;A1 = text pointer 8005D8F4: OR S1, V0, R0 ;S1 = text.size 8005D8F8: JALR #1RA, S4 8005D8FC: OR A2, V0, R0 ;A2 = V0 8005D900: BEQ V0, R0, 0x8005D918 ;if(V0 == 0), branch to 0x8005D918 8005D904: OR S3, V0, R0 8005D908: LW T6, 0x00CC (SP) 8005D90C: ADDU T7, T6, S1 8005D910: BEQ R0, R0, 0x8005D920 ;Branch to 0x8005D920 8005D914: SW T7, 0x00CC (SP) 8005D918: BEQ R0, R0, 0x8005DE68 ;Branch to 0x8005DE68 8005D91C: LW V0, 0x00CC (SP) 8005D920: BNEZ S0, 0x8005D930 8005D924: ADDIU S2, S2, 0x0001 8005D928: BEQ R0, R0, 0x8005DE68 ;Branch to 0x8005DE68 8005D92C: LW V0, 0x00CC (SP) 8005D930: SW R0, 0x00D0 (SP) 8005D934: LBU A1, 0x0000 (S2) 8005D938: JAL 0x2A4 8005D93C: OR A0, S6, R0 8005D940: BEQ V0, R0, 0x8005D980 ;if(V0 == 0), branch to 0x8005D980 8005D944: OR S0, V0, R0 8005D948: SUBU T9, S0, S6 8005D94C: SLL T6, T9, 0x2 8005D950: LUI T7, 0x8008 8005D954: ADDU T7, T7, T6 8005D958: LW T7, 0xE39C (T7) 8005D95C: LW T8, 0x00D0 (SP) 8005D960: ADDIU S2, S2, 0x0001 8005D964: OR A0, S6, R0 8005D968: OR T9, T8, T7 8005D96C: SW T9, 0x00D0 (SP) 8005D970: JAL 0x2A4 8005D974: LBU A1, 0x0000 (S2) 8005D978: BNEZ V0, 0x8005D948 8005D97C: OR S0, V0, R0 8005D980: LBU T6, 0x0000 (S2) 8005D984: ADDIU V0, R0, 0x002A 8005D988: LW T8, 0x00E4 (SP) 8005D98C: BNE V0, T6, 0x8005D9D4 8005D990: LUI A0, 0x8008 8005D994: ADDIU T7, T8, 0x0003 8005D998: ADDIU AT, R0, 0xFFFC 8005D99C: AND T9, T7, AT 8005D9A0: ADDIU T6, T9, 0x0004 8005D9A4: SW T6, 0x00E4 (SP) 8005D9A8: LW T8, 0x0000 (T9) 8005D9AC: ADDIU S2, S2, 0x0001 8005D9B0: BGEZ T8, 0x8005D9CC 8005D9B4: SW T8, 0x00C8 (SP) 8005D9B8: LW T6, 0x00D0 (SP) 8005D9BC: SUBU T7, R0, T8 8005D9C0: SW T7, 0x00C8 (SP) 8005D9C4: ORI T9, T6, 0x0004 8005D9C8: SW T9, 0x00D0 (SP) 8005D9CC: BEQ R0, R0, 0x8005DA30 8005D9D0: LBU A1, 0x0000 (S2) 8005D9D4: SW R0, 0x00C8 (SP) 8005D9D8: LBU A1, 0x0000 (S2) 8005D9DC: SLTI AT, A1, 0x0030 8005D9E0: BNEZ AT, 0x8005DA30 8005D9E4: SLTI AT, A1, 0x003A 8005D9E8: ? (20) 8005D9EC: ADDIU AT, R0, 0x002E 8005D9F0: LW T8, 0x00C8 (SP) 8005D9F4: SLTI AT, T8, 0x03E7 8005D9F8: ? (20) 8005D9FC: LBU A1, 0x0001 (S2) 8005DA00: ? (Special 0x031E0019) 8005DA04: ? (Special 0x00007812) 8005DA08: ADDU T6, A1, T7 8005DA0C: ADDIU T9, T6, 0xFFD0 8005DA10: SW T9, 0x00C8 (SP) 8005DA14: LBU A1, 0x0001 (S2) 8005DA18: ADDIU S2, S2, 0x0001 8005DA1C: SLTI AT, A1, 0x0030 8005DA20: BNEZ AT, 0x8005DA30 8005DA24: SLTI AT, A1, 0x003A 8005DA28: ? (21) 8005DA2C: LW T8, 0x00C8 (SP) 8005DA30: ADDIU AT, R0, 0x002E 8005DA34: BEQ A1, AT, 0x8005DA48 8005DA38: ADDIU T8, R0, 0xFFFF 8005DA3C: SW T8, 0x00C4 (SP) 8005DA40: BEQ R0, R0, 0x8005DADC 8005DA44: LBU A1, 0x0000 (S2) 8005DA48: LBU T7, 0x0001 (S2) 8005DA4C: LW T6, 0x00E4 (SP) 8005DA50: ADDIU S2, S2, 0x0001 8005DA54: BNE V0, T7, 0x8005DA80 8005DA58: ADDIU T9, T6, 0x0003 8005DA5C: ADDIU AT, R0, 0xFFFC 8005DA60: AND T8, T9, AT 8005DA64: ADDIU T7, T8, 0x0004 8005DA68: SW T7, 0x00E4 (SP) 8005DA6C: LW T6, 0x0000 (T8) 8005DA70: ADDIU S2, S2, 0x0001 8005DA74: SW T6, 0x00C4 (SP) 8005DA78: BEQ R0, R0, 0x8005DADC 8005DA7C: LBU A1, 0x0000 (S2) 8005DA80: SW R0, 0x00C4 (SP) 8005DA84: LBU A1, 0x0000 (S2) 8005DA88: SLTI AT, A1, 0x0030 8005DA8C: BNEZ AT, 0x8005DADC 8005DA90: SLTI AT, A1, 0x003A 8005DA94: BEQ AT, R0, 0x8005DADC 8005DA98: NOP 8005DA9C: LW T9, 0x00C4 (SP) 8005DAA0: SLTI AT, T9, 0x03E7 8005DAA4: ? (20) 8005DAA8: LBU A1, 0x0001 (S2) 8005DAAC: ? (Special 0x033E0019) 8005DAB0: ? (Special 0x00007812) 8005DAB4: ADDU T8, A1, T7 8005DAB8: ADDIU T6, T8, 0xFFD0 8005DABC: SW T6, 0x00C4 (SP) 8005DAC0: LBU A1, 0x0001 (S2) 8005DAC4: ADDIU S2, S2, 0x0001 8005DAC8: SLTI AT, A1, 0x0030 8005DACC: BNEZ AT, 0x8005DADC 8005DAD0: SLTI AT, A1, 0x003A 8005DAD4: ? (21) 8005DAD8: LW T9, 0x00C4 (SP) 8005DADC: JAL 0x2A4 8005DAE0: ADDIU A0, A0, 0xE390
Copy Player's and CPU teams
800625D4: BEQ V0, R0, 0x80062638 800625D8: ADDIU AT, R0, 0x0001 ;AT = 1 800625DC: BEQ V0, AT, 0x8006261C 800625E0: ADDIU AT, R0, 0x0002 ;AT = 2 800625E4: BEQL V0, AT, 0x80062608 800625E8: LH V0, 0x0000 (A0) 800625EC: LB V0, 0x0000 (A0) 800625F0: ADDIU A0, A0, 0x0001 ;A0 += 1 800625F4: ADDIU A1, A1, 0x0001 ;A1 += 1 800625F8: ADDIU A2, A2, 0xFFFF ;A2 -= 1 800625FC: BEQ R0, R0, 0x80062638 80062600: SB V0, 0xFFFF (A1) 80062604: LH V0, 0x0000 (A0) 80062608: ADDIU A0, A0, 0x0002 ;A0 += 2 8006260C: ADDIU A1, A1, 0x0002 ;A1 += 2 80062610: ADDIU A2, A2, 0xFFFE ;A2 -= 2 80062614: BEQ R0, R0, 0x80062638 80062618: SH V0, 0xFFFE (A1) 8006261C: LB V0, 0x0000 (A0) 80062620: LH V1, 0x0001 (A0) 80062624: ADDIU A0, A0, 0x0003 ;A0 += 3 80062628: ADDIU A1, A1, 0x0003 ;A1 += 3 8006262C: ADDIU A2, A2, 0xFFFD ;A2 -= 3 80062630: SB V0, 0xFFFD (A1) 80062634: SH V1, 0xFFFE (A1) 80062638: SLTI AT, A2, 0x0020 8006263C: BNEL AT, R0, 0x80062698 ;if(A2 < 32), branch to 0x80062698 80062640: SLTI AT, A2, 0x0010 80062644: LW V0, 0x0000 (A0) ;Load Pokémon data 80062648: LW V1, 0x0004 (A0) 8006264C: LW T0, 0x0008 (A0) 80062650: LW T1, 0x000C (A0) 80062654: LW T2, 0x0010 (A0) 80062658: LW T3, 0x0014 (A0) 8006265C: LW T4, 0x0018 (A0) 80062660: LW T5, 0x001C (A0) 80062664: ADDIU A0, A0, 0x0020 ;A0 += 32 80062668: ADDIU A1, A1, 0x0020 ;A1 += 32 8006266C: ADDIU A2, A2, 0xFFE0 ;A2 -= 32 80062670: SW V0, 0xFFE0 (A1) ;Store Pokémon data 80062674: SW V1, 0xFFE4 (A1) 80062678: SW T0, 0xFFE8 (A1) 8006267C: SW T1, 0xFFEC (A1) 80062680: SW T2, 0xFFF0 (A1) 80062684: SW T3, 0xFFF4 (A1) 80062688: SW T4, 0xFFF8 (A1) 8006268C: BEQ R0, R0, 0x80062638 ;Loop to 0x80062638 80062690: SW T5, 0xFFFC (A1) 80062694: SLTI AT, A2, 0x0010 80062698: BNEL AT, R0, 0x800626D4 8006269C: SLTI AT, A2, 0x0004 800626A0: LW V0, 0x0000 (A0) 800626A4: LW V1, 0x0004 (A0) 800626A8: LW T0, 0x0008 (A0) 800626AC: LW T1, 0x000C (A0) 800626B0: ADDIU A0, A0, 0x0010 800626B4: ADDIU A1, A1, 0x0010 800626B8: ADDIU A2, A2, 0xFFF0 800626BC: SW V0, 0xFFF0 (A1) 800626C0: SW V1, 0xFFF4 (A1) 800626C4: SW T0, 0xFFF8 (A1) 800626C8: BEQ R0, R0, 0x80062694 800626CC: SW T1, 0xFFFC (A1) 800626D0: SLTI AT, A2, 0x0004 800626D4: BNEZ AT, 0x800625AC 800626D8: NOP 800626DC: LW V0, 0x0000 (A0) 800626E0: ADDIU A0, A0, 0x0004 800626E4: ADDIU A1, A1, 0x0004 800626E8: ADDIU A2, A2, 0xFFFC 800626EC: BEQ R0, R0, 0x800626D0 800626F0: SW V0, 0xFFFC (A1) 800626F4: SLTI AT, A2, 0x0010 800626F8: ADD A0, A0, A2 800626FC: BNEZ AT, 0x80062714 80062700: ADD A1, A1, A2 80062704: ANDI V0, A0, 0x0003 80062708: ANDI V1, A1, 0x0003 8006270C: BEQ V0, V1, 0x80062744 80062710: NOP 80062714: BEQ A2, R0, 0x800625CC 80062718: NOP 8006271C: ADDIU A0, A0, 0xFFFF 80062720: ADDIU A1, A1, 0xFFFF 80062724: SUBU V1, A0, A2 80062728: LB V0, 0x0000 (A0) 8006272C: ADDIU A0, A0, 0xFFFF 80062730: ADDIU A1, A1, 0xFFFF 80062734: BNE A0, V1, 0x80062728 80062738: SB V0, 0x0001 (A1) 8006273C: JR RA 80062740: OR V0, A3, R0
0x80062744
80062744: BEQ V0, R0, 0x800627A8 80062748: ADDIU AT, R0, 0x0003 ;AT = 3 8006274C: BEQ V0, AT, 0x8006278C 80062750: ADDIU AT, R0, 0x0002 80062754: BEQL V0, AT, 0x80062778 80062758: LH V0, 0xFFFE (A0) 8006275C: LB V0, 0xFFFF (A0) 80062760: ADDIU A0, A0, 0xFFFF 80062764: ADDIU A1, A1, 0xFFFF 80062768: ADDIU A2, A2, 0xFFFF 8006276C: BEQ R0, R0, 0x800627A8 80062770: SB V0, 0x0000 (A1) 80062774: LH V0, 0xFFFE (A0) 80062778: ADDIU A0, A0, 0xFFFE 8006277C: ADDIU A1, A1, 0xFFFE 80062780: ADDIU A2, A2, 0xFFFE 80062784: BEQ R0, R0, 0x800627A8 80062788: SH V0, 0x0000 (A1) 8006278C: LB V0, 0xFFFF (A0) 80062790: LH V1, 0xFFFD (A0) 80062794: ADDIU A0, A0, 0xFFFD 80062798: ADDIU A1, A1, 0xFFFD 8006279C: ADDIU A2, A2, 0xFFFD 800627A0: SB V0, 0x0002 (A1) 800627A4: SH V1, 0x0000 (A1) 800627A8: SLTI AT, A2, 0x0020 800627AC: BNEL AT, R0, 0x80062808 800627B0: SLTI AT, A2, 0x0010 800627B4: LW V0, 0xFFFC (A0) 800627B8: LW V1, 0xFFF8 (A0) 800627BC: LW T0, 0xFFF4 (A0) 800627C0: LW T1, 0xFFF0 (A0) 800627C4: LW T2, 0xFFEC (A0) 800627C8: LW T3, 0xFFE8 (A0) 800627CC: LW T4, 0xFFE4 (A0) 800627D0: LW T5, 0xFFE0 (A0) 800627D4: ADDIU A0, A0, 0xFFE0 800627D8: ADDIU A1, A1, 0xFFE0 800627DC: ADDIU A2, A2, 0xFFE0 800627E0: SW V0, 0x001C (A1) 800627E4: SW V1, 0x0018 (A1) 800627E8: SW T0, 0x0014 (A1) 800627EC: SW T1, 0x0010 (A1) 800627F0: SW T2, 0x000C (A1) 800627F4: SW T3, 0x0008 (A1) 800627F8: SW T4, 0x0004 (A1) 800627FC: BEQ R0, R0, 0x800627A8 80062800: SW T5, 0x0000 (A1) 80062804: SLTI AT, A2, 0x0010 80062808: BNEL AT, R0, 0x80062844 8006280C: SLTI AT, A2, 0x0004 80062810: LW V0, 0xFFFC (A0) 80062814: LW V1, 0xFFF8 (A0) 80062818: LW T0, 0xFFF4 (A0) 8006281C: LW T1, 0xFFF0 (A0) 80062820: ADDIU A0, A0, 0xFFF0 80062824: ADDIU A1, A1, 0xFFF0 80062828: ADDIU A2, A2, 0xFFF0 8006282C: SW V0, 0x000C (A1) 80062830: SW V1, 0x0008 (A1) 80062834: SW T0, 0x0004 (A1) 80062838: BEQ R0, R0, 0x80062804 8006283C: SW T1, 0x0000 (A1) 80062840: SLTI AT, A2, 0x0004 80062844: BNEZ AT, 0x80062714 80062848: NOP 8006284C: LW V0, 0xFFFC (A0) 80062850: ADDIU A0, A0, 0xFFFC 80062854: ADDIU A1, A1, 0xFFFC 80062858: ADDIU A2, A2, 0xFFFC 8006285C: BEQ R0, R0, 0x80062840 80062860: SW V0, 0x0000 (A1) 80062864: NOP 80062868: NOP 8006286C: NOP 80062870: ADDIU SP, SP, 0xFFD8 80062874: SW RA, 0x001C (SP) 80062878: SW A0, 0x0028 (SP) 8006287C: JAL 0x80062A90 80062880: SW S0, 0x0018 (SP) 80062884: LW T7, 0x0028 (SP) 80062888: LUI T6, 0x8008 8006288C: LW T6, 0x96B0 (T6) 80062890: ADDIU AT, R0, 0xFBFE 80062894: AND T8, T7, AT 80062898: NOR T9, T8, R0 8006289C: OR S0, V0, R0 800628A0: LUI AT, 0x8008 800628A4: AND T0, T6, T9 800628A8: SW T0, 0x96B0 (AT) 800628AC: JAL 0x80062B00 800628B0: OR A0, S0, R0 800628B4: LW RA, 0x001C (SP) 800628B8: LW S0, 0x0018 (SP) 800628BC: ADDIU SP, SP, 0x0028 800628C0: JR RA 800628C4: NOP
0x80062A90
80062A90: LUI T2, 0x8008 80062A94: ADDIU T2, T2, 0x96B0 ;T2 = 0x800796B0 80062A98: LW T3, 0x0000 (T2) ;T3 = (0x800796B0) 80062A9C: ANDI T3, T3, 0xFF00 80062AA0: MFC0 T0, Status 80062AA4: ADDIU AT, R0, 0xFFFE 80062AA8: AND T1, T0, AT 80062AAC: MTC0 T1, Status 80062AB0: ANDI V0, T0, 0x0001 80062AB4: LW T0, 0x0000 (T2) 80062AB8: ANDI T0, T0, 0xFF00 80062ABC: BEQ T0, T3, 0x80062AF8 80062AC0: LUI T2, 0x8008 80062AC4: ADDIU T2, T2, 0x9630 80062AC8: LW T1, 0x0118 (T2) 80062ACC: ANDI T2, T1, 0xFF00 80062AD0: AND T2, T2, T0 80062AD4: LUI AT, 0xFFFF 80062AD8: ORI AT, AT, 0x00FF 80062ADC: AND T1, T1, AT 80062AE0: OR T1, T1, T2 80062AE4: ADDIU AT, R0, 0xFFFE 80062AE8: AND T1, T1, AT 80062AEC: MTC0 T1, Status 80062AF0: NOP 80062AF4: NOP 80062AF8: JR RA 80062AFC: NOP
Pokémon Types & Moves handling #2
Pokémon Base data
- 0x71BA0 - Pokémon base data (23 bytes each)
id bs bs bs bs bs t1 t2 cr ex m1 m2 m3 m4 gr tm tm tm tm tm tm tm 00 id - Pokédex ID bs - Base Stats t1 - Type 1 t2 - Type 2 cr - Catch Rate ex - Base Experience m1 - Starting Move 1 m2 - Starting Move 2 m3 - Starting Move 3 m4 - Starting Move 4 gr - Growth Rate tm - TM flags
Moves color, Type icon, pointers
- 0x72F38 - 0x736F3 - List of type icon IDs and color pointers to display the moves on the Pokémon selection screen
aa bb 00 cc dd dd dd dd ee ee ee ee aa - Move ID bb - Type ID cc - ? dd - Pointer to ? ee - Pointer to ?
01 00 00 00 80 07 B6 20 80 07 1E 10 02 00 00 00 80 07 B6 28 80 07 1E 18 03 00 00 00 80 07 B6 30 80 07 1E 20 04 00 00 00 80 07 B6 38 80 07 1E 28 05 00 00 00 80 07 B6 40 80 07 1E 30 06 00 00 00 80 07 B6 48 80 07 1E 38 07 09 00 00 80 07 B6 50 80 07 1E 40 08 0E 00 00 80 07 B6 58 80 07 1E 48 09 0C 00 00 80 07 B6 60 80 07 1E 50 0A 00 00 05 80 07 B6 68 80 07 1E 58 0B 00 00 00 80 07 B6 70 80 07 1E 60 0C 00 00 00 80 07 B6 78 80 07 1E 68 0D 00 00 00 80 07 B6 80 80 07 1E 70 0E 00 00 00 80 07 B6 88 80 07 1E 78 0F 00 00 00 80 07 B6 90 80 07 1E 80 10 00 00 00 80 07 B6 98 80 07 1E 88 11 02 00 00 80 07 B6 A0 80 07 1E 90 12 00 00 00 80 07 B6 A8 80 07 1E 98 13 02 00 00 80 07 B6 B0 80 07 1E A0 14 00 00 00 80 07 B6 B8 80 07 1E A8 15 00 00 00 80 07 B6 C0 80 07 1E B0 16 0B 00 00 80 07 B6 C8 80 07 1E B8 17 00 00 00 80 07 B6 D0 80 07 1E C0 18 01 00 00 80 07 B6 D8 80 07 1E C8 19 00 00 06 80 07 B6 E0 80 07 1E D0 1A 01 00 00 80 07 B6 E8 80 07 1E D8 1B 01 00 00 80 07 B6 F0 80 07 1E E0 1C 00 00 00 80 07 B6 F8 80 07 1E E8 1D 00 00 00 80 07 B7 00 80 07 1E F0 1E 00 00 00 80 07 B7 08 80 07 1E F8 1F 00 00 00 80 07 B7 10 80 07 1F 00 20 00 00 00 80 07 B7 18 80 07 1F 08 21 00 00 00 80 07 B7 20 80 07 1F 10 22 00 00 07 80 07 B7 28 80 07 1F 18 23 00 00 00 80 07 B7 30 80 07 1F 20 24 00 00 00 80 07 B7 38 80 07 1F 28 25 00 00 00 80 07 B7 40 80 07 1F 30 26 00 00 00 80 07 B7 48 80 07 1F 38 27 00 00 00 80 07 B7 50 80 07 1F 40 28 03 00 00 80 07 B7 58 80 07 1F 48 29 07 00 00 80 07 B7 60 80 07 1F 50 2A 07 00 00 80 07 B7 68 80 07 1F 58 2B 00 00 00 80 07 B7 70 80 07 1F 60 2C 00 00 00 80 07 B7 78 80 07 1F 68 2D 00 00 00 80 07 B7 80 80 07 1F 70 2E 00 00 00 80 07 B7 88 80 07 1F 78 2F 00 00 00 80 07 B7 90 80 07 1F 80 30 00 00 00 80 07 B7 98 80 07 1F 88 31 00 00 00 80 07 B7 A0 80 07 1F 90 32 00 00 00 80 07 B7 A8 80 07 1F 98 33 03 00 00 80 07 B7 B0 80 07 1F A0 34 09 00 00 80 07 B7 B8 80 07 1F A8 35 09 00 04 80 07 B7 C0 80 07 1F B0 36 0E 00 00 80 07 B7 C8 80 07 1F B8 37 0A 00 00 80 07 B7 D0 80 07 1F C0 38 0A 00 0A 80 07 B7 D8 80 07 1F C8 39 0A 00 00 80 07 B7 E0 80 07 1F D0 3A 0E 00 00 80 07 B7 E8 80 07 1F D8 3B 0E 00 00 80 07 B7 F0 80 07 1F E0 3C 0D 00 00 80 07 B7 F8 80 07 1F E8 3D 0A 00 05 80 07 B8 00 80 07 1F F0 3E 0E 00 00 80 07 B8 08 80 07 1F F8 3F 00 00 00 80 07 B8 10 80 07 20 00 40 02 00 00 80 07 B8 18 80 07 20 08 41 02 00 00 80 07 B8 20 80 07 20 10 42 01 00 00 80 07 B8 28 80 07 20 18 43 01 00 00 80 07 B8 30 80 07 20 20 44 01 00 00 80 07 B8 38 80 07 20 28 45 01 00 00 80 07 B8 40 80 07 20 30 46 00 00 00 80 07 B8 48 80 07 20 38 47 0B 00 00 80 07 B8 50 80 07 20 40 48 0B 00 00 80 07 B8 58 80 07 20 48 49 0B 00 00 80 07 B8 60 80 07 20 50 4A 00 00 00 80 07 B8 68 80 07 20 58 4B 0B 00 00 80 07 B8 70 80 07 20 60 4C 0B 00 00 80 07 B8 78 80 07 20 68 4D 03 00 00 80 07 B8 80 80 07 20 70 4E 0B 00 00 80 07 B8 88 80 07 20 78 4F 0B 00 00 80 07 B8 90 80 07 20 80 50 0B 00 00 80 07 B8 98 80 07 20 88 51 07 00 00 80 07 B8 A0 80 07 20 90 52 0F 00 00 80 07 B8 A8 80 07 20 98 53 09 00 04 80 07 B8 B0 80 07 20 A0 54 0C 00 00 80 07 B8 B8 80 07 20 A8 55 0C 00 00 80 07 B8 C0 80 07 20 B0 56 0C 00 00 80 07 B8 C8 80 07 20 B8 57 0C 00 00 80 07 B8 D0 80 07 20 C0 58 05 00 00 80 07 B8 D8 80 07 20 C8 59 04 00 00 80 07 B8 E0 80 07 20 D0 5A 04 00 00 80 07 B8 E8 80 07 20 D8 5B 04 00 00 80 07 B8 F0 80 07 20 E0 5C 03 00 00 80 07 B8 F8 80 07 20 E8 5D 0D 00 00 80 07 B9 00 80 07 20 F0 5E 0D 00 00 80 07 B9 08 80 07 20 F8 5F 0D 00 00 80 07 B9 10 80 07 21 00 60 0D 00 00 80 07 B9 18 80 07 21 08 61 0D 00 00 80 07 B9 20 80 07 21 10 62 00 00 00 80 07 B9 28 80 07 21 18 63 00 00 00 80 07 B9 30 80 07 21 20 64 0D 00 00 80 07 B9 38 80 07 21 28 65 08 00 00 80 07 B9 40 80 07 21 30 66 00 00 00 80 07 B9 48 80 07 21 38 67 00 00 00 80 07 B9 50 80 07 21 40 68 00 00 00 80 07 B9 58 80 07 21 48 69 00 00 00 80 07 B9 60 80 07 21 50 6A 00 00 00 80 07 B9 68 80 07 21 58 6B 00 00 00 80 07 B9 70 80 07 21 60 6C 00 00 00 80 07 B9 78 80 07 21 68 6D 08 00 00 80 07 B9 80 80 07 21 70 6E 0A 00 00 80 07 B9 88 80 07 21 78 6F 00 00 00 80 07 B9 90 80 07 21 80 70 0D 00 00 80 07 B9 98 80 07 21 88 71 0D 00 00 80 07 B9 A0 80 07 21 90 72 0E 00 00 80 07 B9 A8 80 07 21 98 73 0D 00 00 80 07 B9 B0 80 07 21 A0 74 00 00 00 80 07 B9 B8 80 07 21 A8 75 00 00 00 80 07 B9 C0 80 07 21 B0 76 00 00 00 80 07 B9 C8 80 07 21 B8 77 02 00 00 80 07 B9 D0 80 07 21 C0 78 00 00 00 80 07 B9 D8 80 07 21 C8 79 00 00 00 80 07 B9 E0 80 07 21 D0 7A 08 00 00 80 07 B9 E8 80 07 21 D8 7B 03 00 00 80 07 B9 F0 80 07 21 E0 7C 03 00 00 80 07 B9 F8 80 07 21 E8 7D 04 00 00 80 07 BA 00 80 07 21 F0 7E 09 00 00 80 07 BA 08 80 07 21 F8 7F 0A 00 00 80 07 BA 10 80 07 22 00 80 0A 00 00 80 07 BA 18 80 07 22 08 81 00 00 00 80 07 BA 20 80 07 22 10 82 00 00 00 80 07 BA 28 80 07 22 18 83 00 00 00 80 07 BA 30 80 07 22 20 84 00 00 00 80 07 BA 38 80 07 22 28 85 0D 00 00 80 07 BA 40 80 07 22 30 86 0D 00 00 80 07 BA 48 80 07 22 38 87 00 00 00 80 07 BA 50 80 07 22 40 88 01 00 00 80 07 BA 58 80 07 22 48 89 00 00 00 80 07 BA 60 80 07 22 50 8A 0D 00 00 80 07 BA 68 80 07 22 58 8B 03 00 00 80 07 BA 70 80 07 22 60 8C 00 00 00 80 07 BA 78 80 07 22 68 8D 07 00 00 80 07 BA 80 80 07 22 70 8E 00 00 00 80 07 BA 88 80 07 22 78 8F 02 00 00 80 07 BA 90 80 07 22 80 90 00 00 00 80 07 BA 98 80 07 22 88 91 0A 00 00 80 07 BA A0 80 07 22 90 92 00 00 00 80 07 BA A8 80 07 22 98 93 0B 00 00 80 07 BA B0 80 07 22 A0 94 00 00 00 80 07 BA B8 80 07 22 A8 95 0D 00 00 80 07 BA C0 80 07 22 B0 96 00 00 00 80 07 BA C8 80 07 22 B8 97 03 00 00 80 07 BA D0 80 07 22 C0 98 0A 00 00 80 07 BA D8 80 07 22 C8 99 00 00 00 80 07 BA E0 80 07 22 D0 9A 00 00 00 80 07 BA E8 80 07 22 D8 9B 04 00 00 80 07 BA F0 80 07 22 E0 9C 0D 00 00 80 07 BA F8 80 07 22 E8 9D 05 00 00 80 07 BB 00 80 07 22 F0 9E 00 00 00 80 07 BB 08 80 07 22 F8 9F 00 00 00 80 07 BB 10 80 07 23 00 A0 00 00 00 80 07 BB 18 80 07 23 08 A1 00 00 00 80 07 BB 20 80 07 23 10 A2 00 00 00 80 07 BB 28 80 07 23 18 A3 00 00 00 80 07 BB 30 80 07 23 20 A4 00 00 00 80 07 BB 38 80 07 23 28 A5 00 00 00 80 07 BB 40 80 07 23 30
Moves data
- 0x73700 - 0x73ADD - Moves data
aa bb cc dd ee ff aa - Move ID bb - Move Effect cc - Move Power dd - Move Type ee - Move Accuracy ff - Move PP
01 00 28 00 FF 23 02 00 32 00 FF 19 03 1D 0F 00 D8 0A 04 1D 12 00 D8 0F 05 00 50 00 D8 14 06 10 28 00 FF 14 07 04 4B 14 FF 0F 08 05 4B 19 FF 0F 09 06 4B 17 FF 0F 0A 00 28 00 FF 23 0B 00 37 00 FF 1E 0C 26 01 00 4C 05 0D 27 50 00 BF 0A 0E 32 00 00 FF 1E 0F 00 32 00 F2 1E 10 00 28 00 FF 23 11 00 23 02 FF 23 12 1C 00 00 D8 14 13 2B 46 02 F2 0F 14 2A 0F 00 BF 14 15 00 50 00 BF 14 16 00 23 16 FF 0A 17 25 41 00 FF 14 18 2C 1E 01 FF 1E 19 00 78 00 BF 05 1A 2D 46 01 F2 19 1B 25 3C 01 D8 0F 1C 16 00 00 FF 0F 1D 25 46 00 FF 0F 1E 00 41 00 FF 19 1F 1D 0F 00 D8 14 20 26 01 00 4C 05 21 00 23 00 F2 23 22 24 55 00 FF 0F 23 2A 0F 00 D8 14 24 30 5A 00 D8 14 25 1B 5A 00 FF 14 26 30 64 00 FF 0F 27 13 00 00 FF 1E 28 02 0F 03 FF 23 29 4D 19 07 FF 14 2A 1D 0E 07 D8 14 2B 13 00 00 FF 1E 2C 1F 3C 00 FF 19 2D 12 00 00 FF 28 2E 1C 00 00 FF 14 2F 20 00 00 8C 0F 30 31 00 00 8C 14 31 29 01 00 E5 14 32 56 00 00 8C 14 33 45 28 03 FF 1E 34 04 28 14 FF 19 35 04 5F 14 FF 0F 36 2E 00 19 FF 1E 37 00 28 15 FF 19 38 00 78 15 CC 05 39 00 5F 15 FF 0F 3A 05 5F 19 FF 0A 3B 23 78 19 E5 05 3C 4C 41 18 FF 14 3D 46 41 15 FF 14 3E 44 41 19 FF 14 3F 50 96 00 E5 05 40 00 23 02 FF 23 41 00 50 02 FF 14 42 30 50 01 CC 19 43 25 32 01 E5 14 44 00 01 01 FF 14 45 29 01 01 FF 14 46 00 50 00 FF 0F 47 03 14 16 FF 14 48 03 28 16 FF 0A 49 54 00 16 E5 0A 4A 0D 00 00 FF 28 4B 00 37 16 F2 19 4C 27 78 16 FF 0A 4D 42 00 03 BF 23 4E 43 00 16 BF 1E 4F 20 00 16 BF 0F 50 1B 46 16 FF 14 51 14 00 07 F2 28 52 29 01 1A FF 0A 53 2A 0F 14 B2 0F 54 06 28 17 FF 1E 55 06 5F 17 FF 0F 56 43 00 17 FF 14 57 06 78 17 B2 0A 58 00 32 05 A5 0F 59 00 64 04 FF 0A 5A 26 01 04 4C 05 5B 27 64 04 FF 0A 5C 42 00 03 D8 0A 5D 4C 32 18 FF 19 5E 47 5A 18 FF 0A 5F 20 00 18 99 14 60 0A 00 18 FF 28 61 34 00 18 FF 1E 62 00 28 00 FF 1E 63 51 14 00 FF 14 64 1C 00 18 FF 14 65 29 00 08 FF 0F 66 52 00 00 FF 0A 67 3B 00 00 D8 28 68 0F 00 00 FF 0F 69 38 00 00 FF 14 6A 0B 00 00 FF 1E 6B 0F 00 00 FF 14 6C 16 00 00 FF 14 6D 31 00 08 FF 0A 6E 0B 00 15 FF 28 6F 0B 00 00 FF 28 70 33 00 18 FF 1E 71 40 00 18 FF 1E 72 19 00 19 FF 1E 73 41 00 18 FF 14 74 2F 00 00 FF 1E 75 1A 00 00 FF 0A 76 53 00 00 FF 0A 77 09 00 02 FF 14 78 07 82 00 FF 05 79 00 64 00 BF 0A 7A 24 14 08 FF 1E 7B 21 14 03 B2 14 7C 21 41 03 FF 14 7D 1F 41 04 D8 14 7E 22 78 14 D8 05 7F 00 50 15 FF 0F 80 2A 23 15 BF 0A 81 11 3C 00 FF 14 82 27 64 00 FF 0F 83 1D 14 00 FF 0F 84 46 0A 00 FF 23 85 35 00 18 FF 14 86 16 00 18 CC 0F 87 38 00 00 FF 0A 88 2D 55 01 E5 14 89 43 00 00 BF 1E 8A 08 64 18 FF 0F 8B 42 00 03 8C 28 8C 1D 0F 00 D8 14 8D 03 14 07 FF 0F 8E 20 00 00 BF 0A 8F 27 8C 02 E5 05 90 39 00 00 FF 0A 91 46 14 15 FF 1E 92 00 46 00 FF 0A 93 20 00 16 FF 0F 94 16 00 00 B2 14 95 29 01 18 CC 0F 96 55 00 00 FF 28 97 33 00 03 FF 28 98 00 5A 15 D8 0A 99 07 AA 00 FF 05 9A 1D 12 00 CC 0F 9B 2C 32 04 E5 0A 9C 38 00 18 FF 0A 9D 00 4B 05 E5 0A 9E 1F 50 00 E5 0F 9F 0A 00 00 FF 1E A0 18 00 00 FF 1E A1 00 50 00 FF 0A A2 28 01 00 E5 0A A3 00 46 00 FF 14 A4 4F 00 00 FF 0A A5 30 32 00 FF 0A
TM HM list
- 0x73E30 - TM / HM list
05 0D 0E 12 19 5C 20 22 24 26 3D 37 3A 3B 3F 06 42 44 45 63 48 4C 52 55 57 59 5A 5B 5E 64 66 68 73 75 76 78 79 7E 81 82 87 8A 8F 9C 56 95 99 9D A1 A4 0F 13 39 46 94
Pokémon models data offsets
- 0x767D0 - Pokémon models data offsets
00 00 00 00 00 00 0B 90 00 00 17 20 00 00 22 B0 00 00 2E 40 00 00 39 D0 00 00 45 60 00 00 50 F0 00 00 5C 80 00 00 68 10 00 00 73 A0 00 00 7F 30 00 00 8A C0 00 00 96 50 00 00 A1 E0 00 00 AD 70 00 00 B9 00 00 00 C4 90 00 00 D0 20 00 00 DB B0 00 00 E7 40 00 00 F2 D0 00 00 FE 60 00 01 09 F0 00 01 15 80 00 01 21 10 00 01 2C A0 00 01 38 30 00 01 43 C0 00 01 4F 50 00 01 5A E0 00 01 66 70 00 01 72 00 00 01 7D 90 00 01 89 20 00 01 94 B0 00 01 A0 40 00 01 AB D0 00 01 B7 60 00 01 C2 F0 00 01 CE 80 00 01 DA 10 00 01 E5 A0 00 01 F1 30 00 01 FC C0 00 02 08 50 00 02 13 E0 00 02 1F 70 00 02 2B 00 00 02 36 90 00 02 42 20 00 02 4D B0 00 02 59 40 00 02 64 D0 00 02 70 60 00 02 7B F0 00 02 87 80 00 02 93 10 00 02 9E A0 00 02 AA 30 00 02 B5 C0 00 02 C1 50 00 02 CC E0 00 02 D8 70 00 02 E4 00 00 02 EF 90 00 02 FB 20 00 03 06 B0 00 03 12 40 00 03 1D D0 00 03 29 60 00 03 34 F0 00 03 40 80 00 03 4C 10 00 03 57 A0 00 03 63 30 00 03 6E C0 00 03 7A 50 00 03 85 E0 00 03 91 70 00 03 9D 00 00 03 A8 90 00 03 B4 20 00 03 BF B0 00 03 CB 40 00 03 D6 D0 00 03 E2 60 00 03 ED F0 00 03 F9 80 00 04 05 10 00 04 10 A0 00 04 1C 30 00 04 27 C0 00 04 33 50 00 04 3E E0 00 04 4A 70 00 04 56 00 00 04 61 90 00 04 6D 20 00 04 78 B0 00 04 84 40 00 04 8F D0 00 04 9B 60 00 04 A6 F0 00 04 B2 80 00 04 BE 10 00 04 C9 A0 00 04 D5 30 00 04 E0 C0 00 04 EC 50 00 04 F7 E0 00 05 03 70 00 05 0F 00 00 05 1A 90 00 05 26 20 00 05 31 B0 00 05 3D 40 00 05 48 D0 00 05 54 60 00 05 5F F0 00 05 6B 80 00 05 77 10 00 05 82 A0 00 05 8E 30 00 05 99 C0 00 05 A5 50 00 05 B0 E0 00 05 BC 70 00 05 C8 00 00 05 D3 90 00 05 DF 20 00 05 EA B0 00 05 F6 40 00 06 01 D0 00 06 0D 60 00 06 18 F0 00 06 24 80 00 06 30 10 00 06 3B A0 00 06 47 30 00 06 52 C0 00 06 5E 50 00 06 69 E0 00 06 75 70 00 06 81 00 00 06 8C 90 00 06 98 20 00 06 A3 B0 00 06 AF 40 00 06 BA D0 00 06 C6 60 00 06 D1 F0 00 06 DD 80
Pokémon Types handling
- 0x7D790 - Pointers to either specific instructions + JR RA for valid Types, or to 0x434F0 for invalid Types
80 04 28 78 // Normal 80 04 28 A8 // Fighting 80 04 28 C0 // Flying 80 04 28 B0 // Poison 80 04 28 B8 // Ground 80 04 28 D8 // Rock 80 04 28 F0 // Bird (Invalid) 80 04 28 D0 // Bug 80 04 28 E0 // Ghost 80 04 28 F0 80 04 28 F0 80 04 28 F0 80 04 28 F0 80 04 28 F0 80 04 28 F0 80 04 28 F0 80 04 28 F0 80 04 28 F0 80 04 28 F0 80 04 28 F0 80 04 28 80 // Fire 80 04 28 88 // Water 80 04 28 98 // Grass 80 04 28 90 // Electric 80 04 28 C8 // Psychic 80 04 28 A0 // Ice 80 04 28 E8 // Dragon
GB Tower text
- 0x8D6C0
POKEMON RED POKEMON GREEN POKEMON BLUE POKEMON YELLOW
- 0x8E010
Menu Continue Game Quit Game Help & Config Exit this Menu and continue with the Game Boy POKéMON Quit Game Boy POKéMON and return to POKéMON STADIUM The START and SELECT settings may be changed Game saved? Is it OK to quit? Yes No Button: Double Speed Press once to double POKéMON's play speed Button: Double Speed Each time you press [C button], the POKéMON game's speed changes Config Button: Cancel Unable to SAVE Leaving your N64 turned ON, detach the GB Game Pak, clean the connector section and re-attach it The GB Game Pak or the data has been changed
Debug Text 1
- 0x8E320
%x %x %x Audio: Memory: Heap OverFlow : Not Allocate %d! %x %x %x Audio: Memory: Heap OverFlow : Not Allocate %d! Clear Workarea %x -%x size %x Heap %x %x %x
- 0xAA900
Loop Occer Sound 0x21 = Gain %x Sign %x Step %x Sound 0x22 = %d %d %d Sound 0x23 Vol %d (Reset Counter) Dmg Noise pitch : %x Vol %d AudioReset : Reload Noisetable Finish AudioStart : Noisetable %x AudioExit : Reload Noisetable DAC:Lost 1 Frame Address Error %x
Graphics 1
Kids Club
- 0x10E78F-0x116A0F - P1 / P2 / P3 / P4 / COM pictures
Kids Club data
- 0x1225E2 - Magikarp's Splash - points per hit
- 0x12ABCA - Clefairy Says - damage per hit
Graphics 2
Kids Club
- 0x13F66E-0x141E6D - Thundering Dynamo: green and blue lights
- 0x16BE6D - ? (the second one is probably water texture)
- 0x17526D - Ekans Hoop Hurl: Dugtrio panels
- 0x179AA7 - Five colored lights ?
- 0x18389F - Rocky texture ?
Fuchsia City Gym ?
- 0x18809F - A Weezing ?
- 0x18989F - Sludge background (probably for Fuchsia City Gym)
- 0x18A89F - Sky texture
- 0x18C09F - Rocky texture ?
- 0x18C89F - ?
- 0x18D89F - Three holes
Pokémon Lab
- 0x193EF7 - Professor Oak sprite, 18×18 tiles
- 0x1A5687 - Pokémon prize Poké Ball
- 0x1C07B1 - Pokémon Computer icons
- 0x1C7307 - L R buttons
- 0x1C9239 - N64 cartridge
- 0x1CA5B7 - GB cartridges
- 0x1CC339 - Poké Ball background
- 0x1E62F9 - L R buttons
- 0x1E72F9 - Poké Ball background
- 0x1E822F - B button (cancel)
- 0x1FD287 - A C Start buttons
- 0x1FF3ED - Types (moveset display)
- 0x20235F - Computer background #1 (57×32 tiles)
- 0x21CB41 - Computer background #2 (32×32 tiles)
- 0x2349C1 - ?
- 0x237B51 - Some icon ?
- 0x2383AB - Red text bubble
- 0x238FB7 - Gray background with hard to read gray text
Miscellaneous
- 0x2BA0A1 - Gold and silver Poké Ball background
- 0x2E315C - Retrieve Move type icon, color pointer, another pointer (no idea what it is at the moment), C buttons, Pokémon stats, Pokémon 3D model, then display the retrieved data
8015053C: ADDIU SP, SP, 0xFF58 80150540: SW RA, 0x0044 (SP) 80150544: SW S6, 0x0040 (SP) 80150548: SW S5, 0x003C (SP) 8015054C: SW S4, 0x0038 (SP) 80150550: SW S3, 0x0034 (SP) 80150554: SW S2, 0x0030 (SP) 80150558: SW S1, 0x002C (SP) 8015055C: SW S0, 0x0028 (SP) 80150560: SW A1, 0x00AC (SP) 80150564: LBU T6, 0x0000 (A0) 80150568: LW S6, 0x002C (A0) 8015056C: OR S0, A0, R0 80150570: LH S4, 0x0006 (A0) 80150574: LH S5, 0x0008 (A0) 80150578: BEQ T6, R0, 0x80150FA8 8015057C: ADDIU S6, S6, 0x0004 80150580: SLL A0, S4, 0x10 80150584: SLL A1, S5, 0x10 80150588: LH A2, 0x000A (S0) 8015058C: LH A3, 0x000C (S0) 80150590: SW S0, 0x00A8 (SP) 80150594: SRA A1, A1, 0x10 80150598: JAL 0x80144E28 8015059C: SRA A0, A0, 0x10 801505A0: LW T0, 0x00A8 (SP) 801505A4: ADDIU AT, R0, 0x0228 801505A8: LH T7, 0x000A (T0) 801505AC: BNEL T7, AT, 0x80150FAC 801505B0: LW RA, 0x0044 (SP) 801505B4: LH T8, 0x000C (T0) 801505B8: ADDIU AT, R0, 0x00CC 801505BC: BNEL T8, AT, 0x80150FAC 801505C0: LW RA, 0x0044 (SP) 801505C4: LW V0, 0x002C (T0) 801505C8: ADDIU AT, R0, 0x0004 801505CC: LBU T9, 0x0000 (V0) 801505D0: BNE T9, AT, 0x80150630 801505D4: ADDIU S2, S4, 0x0004 801505D8: ADDIU S0, S5, 0x0004 801505DC: SLL S0, S0, 0x10 801505E0: SLL S2, S2, 0x10 801505E4: SRA S2, S2, 0x10 801505E8: SRA S0, S0, 0x10 801505EC: SLL A1, S0, 0x10 801505F0: SLL A0, S2, 0x10 801505F4: ADDIU T2, R0, 0x00AA 801505F8: ADDIU T3, R0, 0x003C 801505FC: ADDIU T4, R0, 0x0096 80150600: ADDIU T5, R0, 0x00FF 80150604: SW T5, 0x001C (SP) 80150608: SW T4, 0x0018 (SP) 8015060C: SW T3, 0x0014 (SP) 80150610: SW T2, 0x0010 (SP) 80150614: SRA A0, A0, 0x10 80150618: SRA A1, A1, 0x10 8015061C: ADDIU A2, R0, 0x0190 80150620: JAL 0x80145090 80150624: ADDIU A3, R0, 0x001C 80150628: BEQ R0, R0, 0x80150754 8015062C: ADDIU S3, S5, 0x0020 80150630: LBU V1, 0x0001 (V0) 80150634: ADDIU S2, S4, 0x0004 80150638: SLL S2, S2, 0x10 8015063C: BEQ V1, R0, 0x80150658 80150640: SRA S2, S2, 0x10 80150644: ADDIU AT, R0, 0x0009 80150648: BEQ V1, AT, 0x801506A8 8015064C: ADDIU S2, S4, 0x0004 80150650: BEQ R0, R0, 0x80150700 80150654: ADDIU S2, S4, 0x0004 80150658: ADDIU S0, S5, 0x0004 8015065C: SLL S0, S0, 0x10 80150660: SRA S0, S0, 0x10 80150664: SLL A1, S0, 0x10 80150668: SLL A0, S2, 0x10 8015066C: ADDIU T6, R0, 0x00AA 80150670: ADDIU T7, R0, 0x003C 80150674: ADDIU T8, R0, 0x003C 80150678: ADDIU T9, R0, 0x00FF 8015067C: SW T9, 0x001C (SP) 80150680: SW T8, 0x0018 (SP) 80150684: SW T7, 0x0014 (SP) 80150688: SW T6, 0x0010 (SP) 8015068C: SRA A0, A0, 0x10 80150690: SRA A1, A1, 0x10 80150694: ADDIU A2, R0, 0x0190 80150698: JAL 0x80145090 8015069C: ADDIU A3, R0, 0x001C 801506A0: BEQ R0, R0, 0x80150754 801506A4: ADDIU S3, S5, 0x0020 801506A8: ADDIU S0, S5, 0x0004 801506AC: SLL S0, S0, 0x10 801506B0: SLL S2, S2, 0x10 801506B4: SRA S2, S2, 0x10 801506B8: SRA S0, S0, 0x10 801506BC: SLL A1, S0, 0x10 801506C0: SLL A0, S2, 0x10 801506C4: ADDIU T2, R0, 0x00AA 801506C8: ADDIU T3, R0, 0x003C 801506CC: ADDIU T4, R0, 0x0096 801506D0: ADDIU T5, R0, 0x00FF 801506D4: SW T5, 0x001C (SP) 801506D8: SW T4, 0x0018 (SP) 801506DC: SW T3, 0x0014 (SP) 801506E0: SW T2, 0x0010 (SP) 801506E4: SRA A0, A0, 0x10 801506E8: SRA A1, A1, 0x10 801506EC: ADDIU A2, R0, 0x0190 801506F0: JAL 0x80145090 801506F4: ADDIU A3, R0, 0x001C 801506F8: BEQ R0, R0, 0x80150754 801506FC: ADDIU S3, S5, 0x0020 80150700: ADDIU S0, S5, 0x0004 80150704: SLL S0, S0, 0x10 80150708: SLL S2, S2, 0x10 8015070C: SRA S2, S2, 0x10 80150710: SRA S0, S0, 0x10 80150714: SLL A1, S0, 0x10 80150718: SLL A0, S2, 0x10 8015071C: ADDIU T6, R0, 0x00B4 80150720: ADDIU T7, R0, 0x008C 80150724: ADDIU T8, R0, 0x0028 80150728: ADDIU T9, R0, 0x00FF 8015072C: SW T9, 0x001C (SP) 80150730: SW T8, 0x0018 (SP) 80150734: SW T7, 0x0014 (SP) 80150738: SW T6, 0x0010 (SP) 8015073C: SRA A0, A0, 0x10 80150740: SRA A1, A1, 0x10 80150744: ADDIU A2, R0, 0x0190 80150748: JAL 0x80145090 8015074C: ADDIU A3, R0, 0x001C 80150750: ADDIU S3, S5, 0x0020 80150754: SLL S3, S3, 0x10 80150758: SRA S3, S3, 0x10 8015075C: ADDIU A0, S4, 0x0068 80150760: SLL A0, A0, 0x10 80150764: SLL A1, S3, 0x10 80150768: ADDIU T2, R0, 0x00B4 8015076C: ADDIU T3, R0, 0x00AA 80150770: ADDIU T4, R0, 0x0064 80150774: ADDIU T5, R0, 0x00FF 80150778: SW T5, 0x001C (SP) 8015077C: SW T4, 0x0018 (SP) 80150780: SW T3, 0x0014 (SP) 80150784: SW T2, 0x0010 (SP) 80150788: SRA A1, A1, 0x10 8015078C: SRA A0, A0, 0x10 80150790: ADDIU A2, R0, 0x012C 80150794: JAL 0x80145090 80150798: ADDIU A3, R0, 0x0054 8015079C: ADDIU A0, S4, 0x0194 801507A0: SLL A0, A0, 0x10 801507A4: SLL A1, S0, 0x10 801507A8: ADDIU T6, R0, 0x0032 801507AC: ADDIU T7, R0, 0x0032 801507B0: ADDIU T8, R0, 0x0082 801507B4: ADDIU T9, R0, 0x00FF 801507B8: SW T9, 0x001C (SP) 801507BC: SW T8, 0x0018 (SP) 801507C0: SW T7, 0x0014 (SP) 801507C4: SW T6, 0x0010 (SP) 801507C8: SRA A1, A1, 0x10 801507CC: SRA A0, A0, 0x10 801507D0: ADDIU A2, R0, 0x0090 801507D4: JAL 0x80145090 801507D8: ADDIU A3, R0, 0x0078 801507DC: ADDIU A1, S5, 0x0074 801507E0: SLL A1, A1, 0x10 801507E4: SLL A0, S2, 0x10 801507E8: ADDIU T2, R0, 0x00A0 801507EC: ADDIU T3, R0, 0x0096 801507F0: ADDIU T4, R0, 0x0032 801507F4: ADDIU T5, R0, 0x00FF 801507F8: SW T5, 0x001C (SP) 801507FC: SW T4, 0x0018 (SP) 80150800: SW T3, 0x0014 (SP) 80150804: SW T2, 0x0010 (SP) 80150808: SRA A0, A0, 0x10 8015080C: SRA A1, A1, 0x10 80150810: ADDIU A2, R0, 0x0220 80150814: JAL 0x80145090 80150818: ADDIU A3, R0, 0x0054 8015081C: LUI T0, 0x800A 80150820: ADDIU T0, T0, 0x7420 80150824: LW V0, 0x0000 (T0) 80150828: LUI T1, 0x8007 8015082C: ADDIU T1, T1, 0xF518 80150830: ADDIU T6, V0, 0x0008 80150834: SW T6, 0x0000 (T0) 80150838: LUI T7, 0xDE00 8015083C: ADDIU S0, S4, 0x0108 80150840: SLL S0, S0, 0x10 80150844: SW T7, 0x0000 (V0) 80150848: SW T1, 0x0004 (V0) 8015084C: SRA S0, S0, 0x10 80150850: ADDIU A1, S5, 0x0077 80150854: LUI T8, 0x0201 80150858: ADDIU T8, T8, 0x4F00 8015085C: SLL A1, A1, 0x10 80150860: SLL A0, S0, 0x10 80150864: ADDIU T9, R0, 0x001C 80150868: SW T9, 0x0014 (SP) 8015086C: SRA A0, A0, 0x10 80150870: SRA A1, A1, 0x10 80150874: SW T8, 0x0010 (SP) 80150878: SW T1, 0x005C (SP) 8015087C: SW R0, 0x0018 (SP) 80150880: ADDIU A2, R0, 0x001C 80150884: JAL 0x8001C6AC 80150888: ADDIU A3, R0, 0x001A 8015088C: ADDIU S1, S5, 0x0090 80150890: SLL S1, S1, 0x10 80150894: SRA S1, S1, 0x10 80150898: ADDIU A0, S4, 0x00F0 8015089C: LUI T2, 0x0201 801508A0: ADDIU T2, T2, 0x54B0 801508A4: SLL A0, A0, 0x10 801508A8: SLL A1, S1, 0x10 801508AC: ADDIU T3, R0, 0x001C 801508B0: SW T3, 0x0014 (SP) 801508B4: SRA A1, A1, 0x10 801508B8: SRA A0, A0, 0x10 801508BC: SW T2, 0x0010 (SP) 801508C0: ADDIU A2, R0, 0x001C 801508C4: ADDIU A3, R0, 0x001A 801508C8: JAL 0x8001C6AC 801508CC: SW R0, 0x0018 (SP) 801508D0: ADDIU A0, S4, 0x011C 801508D4: LUI T4, 0x0201 801508D8: ADDIU T4, T4, 0x6010 801508DC: SLL A0, A0, 0x10 801508E0: SLL A1, S1, 0x10 801508E4: ADDIU T5, R0, 0x001C 801508E8: SW T5, 0x0014 (SP) 801508EC: SRA A1, A1, 0x10 801508F0: SRA A0, A0, 0x10 801508F4: SW T4, 0x0010 (SP) 801508F8: ADDIU A2, R0, 0x001C 801508FC: ADDIU A3, R0, 0x001A 80150900: JAL 0x8001C6AC 80150904: SW R0, 0x0018 (SP) 80150908: ADDIU A1, S5, 0x00A9 8015090C: LUI T6, 0x0201 80150910: ADDIU T6, T6, 0x5A60 80150914: SLL A1, A1, 0x10 80150918: SLL A0, S0, 0x10 8015091C: ADDIU T7, R0, 0x001C 80150920: SW T7, 0x0014 (SP) 80150924: SRA A0, A0, 0x10 80150928: SRA A1, A1, 0x10 8015092C: SW T6, 0x0010 (SP) 80150930: ADDIU A2, R0, 0x001C 80150934: ADDIU A3, R0, 0x001A 80150938: JAL 0x8001C6AC 8015093C: SW R0, 0x0018 (SP) 80150940: LW T8, 0x00A8 (SP) 80150944: ADDIU AT, R0, 0x0004 80150948: LW V0, 0x002C (T8) 8015094C: LBU T9, 0x0000 (V0) 80150950: BEQ T9, AT, 0x801509A0 80150954: NOP 80150958: LBU T2, 0x0001 (V0) 8015095C: ADDIU AT, R0, 0x000D 80150960: ADDIU A0, S4, 0x0014 80150964: BNE T2, AT, 0x801509A0 80150968: SLL A0, A0, 0x10 8015096C: ADDIU A1, S5, 0x0078 80150970: LUI T3, 0x0201 80150974: ADDIU T3, T3, 0x6D40 80150978: SLL A1, A1, 0x10 8015097C: ADDIU T4, R0, 0x0040 80150980: SW T4, 0x0014 (SP) 80150984: SRA A1, A1, 0x10 80150988: SW T3, 0x0010 (SP) 8015098C: SRA A0, A0, 0x10 80150990: ADDIU A2, R0, 0x0040 80150994: ADDIU A3, R0, 0x0014 80150998: JAL 0x8001C6AC 8015099C: SW R0, 0x0018 (SP) 801509A0: LUI A3, 0x800A 801509A4: ADDIU A3, A3, 0x7420 801509A8: LW V0, 0x0000 (A3) 801509AC: LUI T6, 0xFC50 801509B0: LUI T7, 0x3335 801509B4: ADDIU T5, V0, 0x0008 801509B8: SW T5, 0x0000 (A3) 801509BC: ADDIU T0, S5, 0x0026 801509C0: ORI T7, T7, 0xFEFF 801509C4: ORI T6, T6, 0x9AA1 801509C8: SLL S0, T0, 0x10 801509CC: SRA S0, S0, 0x10 801509D0: ADDIU A0, S4, 0x006A 801509D4: SW T6, 0x0000 (V0) 801509D8: SW T7, 0x0004 (V0) 801509DC: LBU A2, 0x0006 (S6) 801509E0: SLL A0, A0, 0x10 801509E4: SLL A1, S0, 0x10 801509E8: SRA A1, A1, 0x10 801509EC: SRA A0, A0, 0x10 801509F0: JAL 0x80150214 801509F4: SW T0, 0x0068 (SP) 801509F8: LBU V0, 0x0007 (S6) 801509FC: LBU T8, 0x0006 (S6) 80150A00: BEQ V0, T8, 0x80150A24 80150A04: ADDIU A0, S4, 0x00BA 80150A08: SLL A0, A0, 0x10 80150A0C: SLL A1, S0, 0x10 80150A10: SLL A2, V0, 0x10 80150A14: SRA A2, A2, 0x10 80150A18: SRA A1, A1, 0x10 80150A1C: JAL 0x80150214 80150A20: SRA A0, A0, 0x10 80150A24: LUI A3, 0x800A 80150A28: ADDIU A3, A3, 0x7420 80150A2C: LW V0, 0x0000 (A3) 80150A30: LUI T0, 0x8007 80150A34: ADDIU T0, T0, 0xF630 80150A38: ADDIU T9, V0, 0x0008 80150A3C: SW T9, 0x0000 (A3) 80150A40: LUI T2, 0xDE00 80150A44: SW T2, 0x0000 (V0) 80150A48: SW T0, 0x0004 (V0) 80150A4C: LW T3, 0x00A8 (SP) 80150A50: SLL A0, S2, 0x10 80150A54: SLL A1, S3, 0x10 80150A58: LW A2, 0x0020 (T3) 80150A5C: SW T0, 0x0058 (SP) 80150A60: SRA A1, A1, 0x10 80150A64: JAL 0x8015038C 80150A68: SRA A0, A0, 0x10 80150A6C: LW T4, 0x00A8 (SP) 80150A70: SLL A0, S4, 0x10 80150A74: SLL A1, S5, 0x10 80150A78: SRA A1, A1, 0x10 80150A7C: SRA A0, A0, 0x10 80150A80: LBU A2, 0x0001 (T4) 80150A84: JAL 0x8015007C 80150A88: LBU A3, 0x0002 (T4) 80150A8C: JAL 0x8001F3F4 80150A90: NOP 80150A94: ADDIU A0, R0, 0x0008 80150A98: JAL 0x8001EBE0 80150A9C: OR A1, R0, R0 80150AA0: ADDIU S0, S5, 0x0008 80150AA4: OR A1, S0, R0 80150AA8: ADDIU A0, S4, 0x000C 80150AAC: JAL 0x8001F1E8 80150AB0: ADDIU A2, S6, 0x0030 80150AB4: ADDIU A0, R0, 0x0008 80150AB8: JAL 0x8001EBE0 80150ABC: OR A1, R0, R0 80150AC0: JAL 0x80144DD0 80150AC4: ADDIU A0, R0, 0x0015 80150AC8: LBU T5, 0x0024 (S6) 80150ACC: LUI A2, 0x8015 80150AD0: ADDIU A2, A2, 0x6690 80150AD4: ADDIU A0, S4, 0x0084 80150AD8: OR A1, S0, R0 80150ADC: OR A3, V0, R0 80150AE0: JAL 0x8001F1E8 80150AE4: SW T5, 0x0010 (SP) 80150AE8: ADDIU A0, R0, 0x0004 80150AEC: JAL 0x8001EBE0 80150AF0: OR A1, R0, R0 80150AF4: JAL 0x80144DD0 80150AF8: ADDIU A0, R0, 0x0016 80150AFC: LBU T6, 0x0000 (S6) 80150B00: ADDIU S0, S5, 0x000C 80150B04: LUI A2, 0x8015 80150B08: ADDIU A2, A2, 0x6698 80150B0C: OR A1, S0, R0 80150B10: ADDIU A0, S4, 0x00E8 80150B14: OR A3, V0, R0 80150B18: JAL 0x8001F1E8 80150B1C: SW T6, 0x0010 (SP) 80150B20: ADDIU A0, R0, 0x0004 80150B24: JAL 0x8001EBE0 80150B28: OR A1, R0, R0 80150B2C: JAL 0x80144CF8 80150B30: LBU A0, 0x0000 (S6) 80150B34: ADDIU A0, S4, 0x013C 80150B38: OR A1, S0, R0 80150B3C: JAL 0x8001F1E8 80150B40: OR A2, V0, R0 80150B44: ADDIU A0, R0, 0x0008 80150B48: JAL 0x8001EBE0 80150B4C: OR A1, R0, R0 80150B50: JAL 0x80144DD0 80150B54: ADDIU A0, R0, 0x0008 80150B58: ADDIU S0, S5, 0x005A 80150B5C: LUI A2, 0x8015 80150B60: ADDIU A2, A2, 0x66A0 80150B64: OR A1, S0, R0 80150B68: ADDIU A0, S4, 0x0076 80150B6C: JAL 0x8001F1E8 80150B70: OR A3, V0, R0 80150B74: ADDIU A0, R0, 0x0008 80150B78: JAL 0x8001EBE0 80150B7C: OR A1, R0, R0 80150B80: LUI A2, 0x8015 80150B84: ADDIU A2, A2, 0x66A4 80150B88: ADDIU A0, S4, 0x00A4 80150B8C: OR A1, S0, R0 80150B90: JAL 0x8001F1E8 80150B94: LHU A3, 0x0026 (S6) 80150B98: ADDIU A0, R0, 0x0004 80150B9C: JAL 0x8001EBE0 80150BA0: OR A1, R0, R0 80150BA4: JAL 0x80144DA0 80150BA8: ADDIU A0, R0, 0x0005 80150BAC: ADDIU S0, S4, 0x0116 80150BB0: ADDIU S1, S5, 0x0025 80150BB4: OR A1, S1, R0 80150BB8: OR A0, S0, R0 80150BBC: JAL 0x8001F1E8 80150BC0: OR A2, V0, R0 80150BC4: JAL 0x80144DA0 80150BC8: ADDIU A0, R0, 0x0006 80150BCC: ADDIU S2, S5, 0x0038 80150BD0: OR A1, S2, R0 80150BD4: OR A0, S0, R0 80150BD8: JAL 0x8001F1E8 80150BDC: OR A2, V0, R0 80150BE0: JAL 0x80144DA0 80150BE4: ADDIU A0, R0, 0x0007 80150BE8: ADDIU S3, S5, 0x004B 80150BEC: OR A1, S3, R0 80150BF0: OR A0, S0, R0 80150BF4: JAL 0x8001F1E8 80150BF8: OR A2, V0, R0 80150BFC: JAL 0x80144DA0 80150C00: ADDIU A0, R0, 0x0008 80150C04: ADDIU A1, S5, 0x005E 80150C08: SW A1, 0x004C (SP) 80150C0C: OR A0, S0, R0 80150C10: JAL 0x8001F1E8 80150C14: OR A2, V0, R0 80150C18: ADDIU A0, R0, 0x0004 80150C1C: JAL 0x8001EBE0 80150C20: OR A1, R0, R0 80150C24: ADDIU S0, S4, 0x015E 80150C28: LUI A2, 0x8015 80150C2C: ADDIU A2, A2, 0x66A8 80150C30: OR A0, S0, R0 80150C34: OR A1, S1, R0 80150C38: JAL 0x8001F1E8 80150C3C: LHU A3, 0x0028 (S6) 80150C40: LUI A2, 0x8015 80150C44: ADDIU A2, A2, 0x66AC 80150C48: OR A0, S0, R0 80150C4C: OR A1, S2, R0 80150C50: JAL 0x8001F1E8 80150C54: LHU A3, 0x002A (S6) 80150C58: LUI A2, 0x8015 80150C5C: ADDIU A2, A2, 0x66B0 80150C60: OR A0, S0, R0 80150C64: OR A1, S3, R0 80150C68: JAL 0x8001F1E8 80150C6C: LHU A3, 0x002C (S6) 80150C70: LUI A2, 0x8015 80150C74: ADDIU A2, A2, 0x66B4 80150C78: OR A0, S0, R0 80150C7C: LW A1, 0x004C (SP) 80150C80: JAL 0x8001F1E8 80150C84: LHU A3, 0x002E (S6) 80150C88: ADDIU A0, R0, 0x0004 80150C8C: JAL 0x8001EBE0 80150C90: OR A1, R0, R0 80150C94: JAL 0x80144DA0 80150C98: ADDIU A0, R0, 0x0009 80150C9C: OR S0, V0, R0 80150CA0: ADDIU A0, R0, 0x0004 80150CA4: OR A1, R0, R0 80150CA8: JAL 0x8001F5B0 80150CAC: OR A2, V0, R0 80150CB0: BGEZ V0, 0x80150CC0 80150CB4: SRA T7, V0, 0x1 80150CB8: ADDIU AT, V0, 0x0001 80150CBC: SRA T7, AT, 0x1 80150CC0: SUBU A0, S4, T7 80150CC4: ADDIU A0, A0, 0x0090 80150CC8: LW A1, 0x0068 (SP) 80150CCC: JAL 0x8001F1E8 80150CD0: OR A2, S0, R0 80150CD4: JAL 0x800219FC 80150CD8: LBU A0, 0x0006 (S6) 80150CDC: JAL 0x80144D68 80150CE0: OR A0, V0, R0 80150CE4: OR S0, V0, R0 80150CE8: ADDIU A0, R0, 0x0004 80150CEC: OR A1, R0, R0 80150CF0: JAL 0x8001F5B0 80150CF4: OR A2, V0, R0 80150CF8: BGEZ V0, 0x80150D08 80150CFC: SRA T8, V0, 0x1 80150D00: ADDIU AT, V0, 0x0001 80150D04: SRA T8, AT, 0x1 80150D08: SUBU A0, S4, T8 80150D0C: ADDIU S1, S5, 0x003A 80150D10: OR A1, S1, R0 80150D14: ADDIU A0, A0, 0x0090 80150D18: JAL 0x8001F1E8 80150D1C: OR A2, S0, R0 80150D20: LBU T9, 0x0007 (S6) 80150D24: LBU T2, 0x0006 (S6) 80150D28: BEQL T9, T2, 0x80150DBC 80150D2C: ADDIU A0, R0, 0x0008 80150D30: JAL 0x80144DA0 80150D34: ADDIU A0, R0, 0x000A 80150D38: OR S0, V0, R0 80150D3C: ADDIU A0, R0, 0x0004 80150D40: OR A1, R0, R0 80150D44: JAL 0x8001F5B0 80150D48: OR A2, V0, R0 80150D4C: BGEZ V0, 0x80150D5C 80150D50: SRA T3, V0, 0x1 80150D54: ADDIU AT, V0, 0x0001 80150D58: SRA T3, AT, 0x1 80150D5C: SUBU A0, S4, T3 80150D60: ADDIU A0, A0, 0x00E0 80150D64: LW A1, 0x0068 (SP) 80150D68: JAL 0x8001F1E8 ;Jump to 0x8001F1E8 and link 80150D6C: OR A2, S0, R0 ;A2 = S0 80150D70: JAL 0x800219FC ;Jump to 0x800219FC and link 80150D74: LBU A0, 0x0007 (S6) ;A0 = (S6+0x7) 80150D78: JAL 0x80144D68 ;Jump to 0x80144D68 and link 80150D7C: OR A0, V0, R0 ;A0 = V0 80150D80: OR S0, V0, R0 ;S0 = V0 80150D84: ADDIU A0, R0, 0x0004 ;A0 = 4 80150D88: OR A1, R0, R0 ;A1 = 0 80150D8C: JAL 0x8001F5B0 ;Jump to 0x8001F5B0 and link 80150D90: OR A2, V0, R0 ;A2 = V0 80150D94: BGEZ V0, 0x80150DA4 ;if(V0 ≥ 0), branch to 0x80150DA4 80150D98: SRA T4, V0, 0x1 ;T4 = V0 >> 1 80150D9C: ADDIU AT, V0, 0x0001 ;AT = V0 + 1 80150DA0: SRA T4, AT, 0x1 ;T4 = AT >> 1 80150DA4: SUBU A0, S4, T4 ;A0 = S4 - T4 80150DA8: ADDIU A0, A0, 0x00E0 ;A0 += 0xE0 80150DAC: OR A1, S1, R0 ;A1 = S1 80150DB0: JAL 0x8001F1E8 ;Jump to 0x8001F1E8 and link 80150DB4: OR A2, S0, R0 ;A2 = S0 80150DB8: ADDIU A0, R0, 0x0008 ;A0 = 8 80150DBC: JAL 0x8001EBE0 ;Jump to 0x8001EBE0 and link 80150DC0: OR A1, R0, R0 ;A1 = 0 80150DC4: OR S0, R0, R0 ;S0 = 0 80150DC8: ADDU S1, S6, S0 ;S1 = S6 + S0 80150DCC: LBU A0, 0x0009 (S1) ;A0 = (S1+0x9) 80150DD0: LUI T6, 0x8007 80150DD4: BNEZ A0, 0x80150DE4 ;if(A0 ≠ 0), branch to 0x80150DE4 (display Type icon) 80150DD8: SLL T5, A0, 0x2 ;T5 = A0 << 2 80150DDC: BEQ R0, R0, 0x80150E88 ;Branch to 0x80150E88 80150DE0: OR S0, R0, R0 ;S0 = 0 80150DE4: SUBU T5, T5, A0 ;T5 -= A0 80150DE8: SLL T5, T5, 0x2 ;T5 << 2 80150DEC: ADDU T6, T6, T5 ;T6 += T5 80150DF0: LBU T6, 0x232D (T6) ;T6 = Type_icon_ID 80150DF4: LUI T9, 0x8015 80150DF8: ADDIU T9, T9, 0x6260 ;T9 = 0x80156260 80150DFC: SLL T7, T6, 0x4 ;T7 = Type_icon_ID << 4 80150E00: ADDIU T8, T7, 0x0006 ;T8 = (Type_icon_ID << 4) + 6 80150E04: JAL 0x80144D30 ;Jump to 0x80144D30 and link 80150E08: ADDU S2, T8, T9 ;S2 = 0x80156260 + (Type_icon_ID << 4) + 6 80150E0C: SLL S3, S0, 0x1 ;S3 = S0 << 1 80150E10: LUI A1, 0x8015 80150E14: ADDU A1, A1, S3 80150E18: SLL A0, S0, 0x10 80150E1C: SRA A0, A0, 0x10 80150E20: LH A1, 0x6360 (A1) 80150E24: JAL 0x801504E0 80150E28: OR A2, V0, R0 80150E2C: SH V0, 0x0082 (SP) 80150E30: LBU A2, 0x0002 (S2) 80150E34: LBU A1, 0x0001 (S2) 80150E38: LBU A0, 0x0000 (S2) 80150E3C: JAL 0x8001F324 80150E40: ADDIU A3, R0, 0x00FF 80150E44: JAL 0x80144D30 80150E48: LBU A0, 0x0009 (S1) 80150E4C: LUI T3, 0x8015 80150E50: ADDU T3, T3, S3 80150E54: LH T3, 0x6368 (T3) 80150E58: LH T2, 0x0082 (SP) 80150E5C: OR A2, V0, R0 80150E60: ADDU A1, T3, S5 80150E64: JAL 0x8001F1E8 80150E68: ADDU A0, S4, T2 80150E6C: ADDIU S0, S0, 0x0001 80150E70: SLL S0, S0, 0x10 80150E74: SRA S0, S0, 0x10 80150E78: SLTI AT, S0, 0x0004 80150E7C: BNEL AT, R0, 0x80150DCC 80150E80: ADDU S1, S6, S0 80150E84: OR S0, R0, R0 80150E88: JAL 0x8001F444 80150E8C: NOP 80150E90: LUI A1, 0x800A 80150E94: ADDIU A1, A1, 0x7420 80150E98: LW V0, 0x0000 (A1) 80150E9C: LUI T5, 0xDE00 80150EA0: ADDIU T4, V0, 0x0008 80150EA4: SW T4, 0x0000 (A1) 80150EA8: SW T5, 0x0000 (V0) 80150EAC: LW T6, 0x005C (SP) 80150EB0: SW T6, 0x0004 (V0) 80150EB4: ADDU S1, S6, S0 80150EB8: LBU A0, 0x0009 (S1) 80150EBC: LUI A1, 0x800A 80150EC0: ADDIU A1, A1, 0x7420 80150EC4: BEQL A0, R0, 0x80150F88 80150EC8: LW V0, 0x0000 (A1) 80150ECC: JAL 0x80144D30 80150ED0: NOP 80150ED4: SLL S3, S0, 0x1 80150ED8: LUI A1, 0x8015 80150EDC: ADDU A1, A1, S3 80150EE0: SLL A0, S0, 0x10 80150EE4: SRA A0, A0, 0x10 80150EE8: LH A1, 0x6360 (A1) 80150EEC: JAL 0x801504E0 80150EF0: OR A2, V0, R0 80150EF4: LBU T8, 0x0009 (S1) 80150EF8: LUI T2, 0x8007 80150EFC: LUI T7, 0x8015 80150F00: SLL T9, T8, 0x2 80150F04: SUBU T9, T9, T8 80150F08: SLL T9, T9, 0x2 80150F0C: ADDU T2, T2, T9 80150F10: LBU T2, 0x232D (T2) 80150F14: ADDU T7, T7, S3 80150F18: LH T7, 0x6368 (T7) 80150F1C: LUI T4, 0x8015 80150F20: SLL T3, T2, 0x4 80150F24: ADDU T4, T4, T3 80150F28: ADDU A0, S4, V0 80150F2C: LW T4, 0x626C (T4) 80150F30: ADDIU A0, A0, 0xFFE8 80150F34: ADDU A1, T7, S5 80150F38: SLL A1, A1, 0x10 80150F3C: SLL A0, A0, 0x10 80150F40: ADDIU T5, R0, 0x0014 80150F44: SW T5, 0x0014 (SP) 80150F48: SRA A0, A0, 0x10 80150F4C: SRA A1, A1, 0x10 80150F50: SW R0, 0x0018 (SP) 80150F54: ADDIU A2, R0, 0x0014 80150F58: ADDIU A3, R0, 0x0014 80150F5C: JAL 0x8001C6AC 80150F60: SW T4, 0x0010 (SP) 80150F64: ADDIU S0, S0, 0x0001 80150F68: SLL S0, S0, 0x10 80150F6C: SRA S0, S0, 0x10 80150F70: SLTI AT, S0, 0x0004 80150F74: BNEL AT, R0, 0x80150EB8 80150F78: ADDU S1, S6, S0 80150F7C: LUI A1, 0x800A 80150F80: ADDIU A1, A1, 0x7420 80150F84: LW V0, 0x0000 (A1) 80150F88: LUI T7, 0xDE00 80150F8C: ADDIU T6, V0, 0x0008 80150F90: SW T6, 0x0000 (A1) 80150F94: SW T7, 0x0000 (V0) 80150F98: LW T8, 0x0058 (SP) 80150F9C: SW T8, 0x0004 (V0) 80150FA0: LW T9, 0x00A8 (SP) 80150FA4: SW R0, 0x0020 (T9) 80150FA8: LW RA, 0x0044 (SP) 80150FAC: LW S0, 0x0028 (SP) 80150FB0: LW S1, 0x002C (SP) 80150FB4: LW S2, 0x0030 (SP) 80150FB8: LW S3, 0x0034 (SP) 80150FBC: LW S4, 0x0038 (SP) 80150FC0: LW S5, 0x003C (SP) 80150FC4: LW S6, 0x0040 (SP) 80150FC8: JR RA 80150FCC: ADDIU SP, SP, 0x00A8 80150FD0: JR RA 80150FD4: SW A0, 0x0000 (SP) 80150FD8: ADDIU SP, SP, 0xFFE0 80150FDC: SW RA, 0x001C (SP) 80150FE0: SW S0, 0x0018 (SP) 80150FE4: LBU T6, 0x0003 (A0) 80150FE8: LUI T8, 0x800A 80150FEC: ADDIU T8, T8, 0x7320 80150FF0: SLL T7, T6, 0x3 80150FF4: ADDU T7, T7, T6 80150FF8: SLL T7, T7, 0x2 80150FFC: ADDU V0, T7, T8 80151000: LHU V1, 0x0008 (V0) 80151004: OR S0, A0, R0 80151008: ANDI T9, V1, 0x8000 8015100C: BEQ T9, R0, 0x80151064 80151010: ANDI T3, V1, 0x4000 80151014: LBU T0, 0x0001 (A0) 80151018: BNEL T0, R0, 0x80151034 8015101C: LBU T1, 0x0002 (S0) 80151020: JAL 0x80048B90 80151024: ADDIU A0, R0, 0x0003 80151028: BEQ R0, R0, 0x80151058 8015102C: ADDIU T2, R0, 0x0003 80151030: LBU T1, 0x0002 (S0) 80151034: BNEZ T1, 0x8015104C 80151038: NOP 8015103C: JAL 0x80048B90 80151040: ADDIU A0, R0, 0x0022 80151044: BEQ R0, R0, 0x80151058 80151048: ADDIU T2, R0, 0x0003 8015104C: JAL 0x80048B90 80151050: ADDIU A0, R0, 0x0003 80151054: ADDIU T2, R0, 0x0003 80151058: SH R0, 0x0004 (S0) 8015105C: BEQ R0, R0, 0x801510B4 80151060: SB T2, 0x0000 (S0) 80151064: BEQ T3, R0, 0x8015108C 80151068: ANDI T6, V1, 0x0C00 8015106C: JAL 0x80048B90 80151070: ADDIU A0, R0, 0x0003 80151074: ADDIU T4, R0, 0x0001 80151078: ADDIU T5, R0, 0x0003 8015107C: SH R0, 0x0004 (S0) 80151080: SB T4, 0x0002 (S0) 80151084: BEQ R0, R0, 0x801510B4 80151088: SB T5, 0x0000 (S0) 8015108C: BEQL T6, R0, 0x801510B8 80151090: LH T0, 0x000E (S0) 80151094: LBU T7, 0x0001 (S0) 80151098: BEQL T7, R0, 0x801510B8 8015109C: LH T0, 0x000E (S0) 801510A0: JAL 0x80048B90 801510A4: ADDIU A0, R0, 0x0001 801510A8: LBU T8, 0x0002 (S0) 801510AC: XORI T9, T8, 0x0001 801510B0: SB T9, 0x0002 (S0) 801510B4: LH T0, 0x000E (S0) 801510B8: LH T1, 0x0014 (S0) 801510BC: ADDIU T2, R0, 0x0228 801510C0: ADDIU T3, R0, 0x00CC 801510C4: SH T2, 0x000A (S0) 801510C8: SH T3, 0x000C (S0) 801510CC: LW A0, 0x0028 (S0) 801510D0: SH T0, 0x0006 (S0) 801510D4: JAL 0x8001B9D4 801510D8: SH T1, 0x0008 (S0) 801510DC: SW V0, 0x0020 (S0) 801510E0: LW RA, 0x001C (SP) 801510E4: LW S0, 0x0018 (SP) 801510E8: ADDIU SP, SP, 0x0020 801510EC: JR RA 801510F0: NOP
Graphics 3
- 0x3736F5 - Negative Poké Ball
- 0x374665 - Star
AI stuff - 0x801245EC (Read 3 selected Pokémon before battle ?)
801245EC: ADDIU SP, SP, 0xFFA8 801245F0: LUI V1, 0x800B 801245F4: ADDIU V1, V1, 0xE540 801245F8: SW S0, 0x0024 (SP) 801245FC: LW S0, 0x11C4 (V1) 80124600: SW RA, 0x002C (SP) 80124604: SW S1, 0x0028 (SP) 80124608: LBU T6, 0x0000 (S0) 8012460C: LW A0, 0x119C (V1) 80124610: LW A1, 0x11A0 (V1) 80124614: ANDI T7, T6, 0x0002 80124618: BEQL T7, R0, 0x80124734 8012461C: LW RA, 0x002C (SP) 80124620: LB T8, 0x0000 (V1) 80124624: ADDIU T0, SP, 0x0048 80124628: OR A2, S0, R0 8012462C: BNEZ T8, 0x80124670 80124630: ADDIU T2, SP, 0x0048 80124634: LB V0, 0x0001 (V1) 80124638: ADDIU S1, R0, 0x0003 8012463C: OR A2, S0, R0 80124640: BNEZ V0, 0x80124654 80124644: NOP 80124648: LW T9, 0x0214 (S0) 8012464C: BEQ R0, R0, 0x80124654 80124650: LBU S1, 0x0002 (T9) 80124654: LBU A3, 0x11EC (V1) 80124658: SW T0, 0x0010 (SP) 8012465C: SW V0, 0x0014 (SP) 80124660: JAL 0x801A6500 80124664: SW S1, 0x0018 (SP) 80124668: BEQ R0, R0, 0x801246AC 8012466C: ADDIU A0, SP, 0x0048 80124670: LB V0, 0x0001 (V1) ;V0 = (0x800AE540) 80124674: ADDIU AT, R0, 0x0008 80124678: ADDIU S1, R0, 0x0003 8012467C: BNE V0, AT, 0x80124690 80124680: OR A1, R0, R0 80124684: LW T1, 0x0214 (S0) 80124688: BEQ R0, R0, 0x80124690 8012468C: LBU S1, 0x0002 (T1) 80124690: LW A3, 0x0018 (S0) ;A3 = CPU Pokémon ID 80124694: SW S1, 0x0018 (SP) 80124698: SW V0, 0x0014 (SP) 8012469C: SW T2, 0x0010 (SP) 801246A0: JAL 0x801A6500 801246A4: ANDI A3, A3, 0x00FF 801246A8: ADDIU A0, SP, 0x0048 801246AC: JAL 0x8012459C 801246B0: OR A1, S1, R0 801246B4: LW V0, 0x0214 (S0) 801246B8: SB S1, 0x0002 (S0) 801246BC: OR V1, R0, R0 801246C0: LBU T3, 0x0002 (V0) 801246C4: ADDIU A0, S0, 0x001C 801246C8: ADDIU A1, SP, 0x0048 801246CC: BLEZ T3, 0x80124730 801246D0: ADDIU A2, R0, 0x0054 801246D4: LBU T4, 0x0000 (A1) 801246D8: OR T9, A0, R0 801246DC: MULTU T4, A2 801246E0: MFLO T5 801246E4: ADDU T6, V0, T5 801246E8: ADDIU T0, T6, 0x0054 801246EC: LW T8, 0x0028 (T6) 801246F0: ADDIU T6, T6, 0x000C 801246F4: ADDIU T9, T9, 0x000C 801246F8: SW T8, 0xFFF4 (T9) 801246FC: LW T7, 0x0020 (T6) 80124700: SW T7, 0xFFF8 (T9) 80124704: LW T8, 0x0024 (T6) 80124708: BNE T6, T0, 0x801246EC 8012470C: SW T8, 0xFFFC (T9) 80124710: LW V0, 0x0214 (S0) 80124714: ADDIU V1, V1, 0x0001 80124718: ADDIU A0, A0, 0x0054 8012471C: LBU T1, 0x0002 (V0) 80124720: ADDIU A1, A1, 0x0001 80124724: SLT AT, V1, T1 80124728: BNEL AT, R0, 0x801246D8 8012472C: LBU T4, 0x0000 (A1) 80124730: LW RA, 0x002C (SP) 80124734: LW S0, 0x0024 (SP) 80124738: LW S1, 0x0028 (SP) 8012473C: JR RA 80124740: ADDIU SP, SP, 0x0058
Gym Leader Castle Prize Pokémon
8013B8A4 (to document)
8013B8A4: ADDIU SP, SP, 0xFFE0 8013B8A8: SW RA, 0x001C (SP) 8013B8AC: SW S1, 0x0018 (SP) 8013B8B0: JAL 0xD00 8013B8B4: SW S0, 0x0014 (SP) 8013B8B8: LUI S1, 0x8014 8013B8BC: ADDIU S1, S1, 0x7EDC 8013B8C0: LW T6, 0x0000 (S1) 8013B8C4: ANDI S0, V0, 0x00FF 8013B8C8: ADDIU A0, R0, 0x0002 8013B8CC: JAL 0xAFC 8013B8D0: SW R0, 0x02F0 (T6) 8013B8D4: JAL 0x16C 8013B8D8: NOP 8013B8DC: LW T7, 0x0000 (S1) 8013B8E0: ANDI V1, V0, 0x00FF 8013B8E4: BNEZ V1, 0x8013B8F8 8013B8E8: SW V1, 0x02E8 (T7) 8013B8EC: LW T8, 0x0000 (S1) 8013B8F0: BEQ R0, R0, 0x8013B904 8013B8F4: SW R0, 0x02D8 (T8) 8013B8F8: LW T0, 0x0000 (S1) 8013B8FC: ADDIU T9, R0, 0x0001 8013B900: SW T9, 0x02D8 (T0) 8013B904: SLT V0, R0, S0 8013B908: BEQ V0, R0, 0x8013B924 8013B90C: ADDIU S0, S0, 0xFFFF 8013B910: JAL 0x4F8 8013B914: NOP 8013B918: SLT V0, R0, S0 8013B91C: BNEZ V0, 0x8013B910 8013B920: ADDIU S0, S0, 0xFFFF 8013B924: LUI T1, 0x800B 8013B928: LB T1, 0xE540 (T1) 8013B92C: ADDIU AT, R0, 0x001A 8013B930: LUI V1, 0x8015 8013B934: BNE T1, AT, 0x8013B95C 8013B938: ADDIU V1, V1, 0x8CC8 8013B93C: ADDIU T2, R0, 0x0008 8013B940: LUI T4, 0x8014 8013B944: SW T2, 0x0000 (V1) 8013B948: ADDU T4, T4, T2 8013B94C: LBU T4, 0x6EC0 (T4) 8013B950: LW T5, 0x0000 (S1) 8013B954: BEQ R0, R0, 0x8013B9AC ;Exit the GivePokémon function 8013B958: SW T4, 0x02EC (T5) 8013B95C: JAL 0x4F8 8013B960: NOP
Determine which Pokémon to give
8013B964: LUI AT, 0x4100 8013B968: MTC1 AT, F4 ;F4 = 0x41000000 8013B96C: LUI V1, 0x8015 8013B970: ADDIU V1, V1, 0x8CC8 ;V1 = 0x80148CC8 8013B974: MUL.S F6, F0, F4 ;F6 = F0 × F4 8013B978: LUI T9, 0x8014 ;T9 = 0x80140000 8013B97C: TRUNC.W.S F8, F6 ;F8 = trunc(F6) 8013B980: MFC1 V0, F8 ;V0 = F8 8013B984: NOP 8013B988: SLTI AT, V0, 0x0008 8013B98C: BNEZ AT, 0x8013B99C ;if(PRN<8), branch to 0x8013B99C 8013B990: SW V0, 0x0000 (V1) ;Store PRN in (V1) 8013B994: ADDIU V0, R0, 0x0001 ;else V0 = 1 (so it defaults to Charmander as a fail-safe) 8013B998: SW V0, 0x0000 (V1) ;Store 1 in (V1) 8013B99C: ADDU T9, T9, V0 ;T9 += PRN 8013B9A0: LBU T9, 0x6EC0 (T9) ;pokemon_id = (0x80146EC0 + PRN) 8013B9A4: LW T0, 0x0000 (S1) 8013B9A8: SW T9, 0x02EC (T0) ;Prize Pokémon data 8013B9AC: LW RA, 0x001C (SP) 8013B9B0: LW S0, 0x0014 (SP) 8013B9B4: LW S1, 0x0018 (SP) 8013B9B8: JR RA 8013B9BC: ADDIU SP, SP, 0x0020
0x8013B9C0 (to document)
8013B9C0: ADDIU SP, SP, 0xFFE0 8013B9C4: SW RA, 0x001C (SP) 8013B9C8: LUI A0, 0x4D4F 8013B9CC: SW S0, 0x0018 (SP) 8013B9D0: JAL 0x784 8013B9D4: ORI A0, A0, 0x4E53 8013B9D8: LUI S0, 0x8014 8013B9DC: ADDIU S0, S0, 0x7EDC 8013B9E0: LW A0, 0x0000 (S0) 8013B9E4: JAL 0xB58 8013B9E8: ADDIU A0, A0, 0x0008 8013B9EC: JAL 0x87C 8013B9F0: NOP 8013B9F4: JAL 0xD18 8013B9F8: ADDIU A0, R0, 0x00D3 8013B9FC: LW T6, 0x0000 (S0) 8013BA00: ADDIU T7, R0, 0x00FF 8013BA04: OR A1, R0, R0 8013BA08: SW V0, 0x0000 (T6) 8013BA0C: LW T8, 0x0000 (S0) 8013BA10: ADDIU A2, R0, 0x00D3 8013BA14: SB T7, 0x00AE (T8) 8013BA18: LW V1, 0x0000 (S0) 8013BA1C: LW T9, 0x0000 (V1) 8013BA20: ADDIU A0, V1, 0x0008 8013BA24: LW T2, 0x0008 (T9) 8013BA28: JAL 0xC34 8013BA2C: LW A3, 0x0000 (T2) 8013BA30: LW A0, 0x0000 (S0) 8013BA34: OR A1, R0, R0 8013BA38: JAL 0xD04 8013BA3C: ADDIU A0, A0, 0x0008 8013BA40: LW A0, 0x0000 (S0) 8013BA44: JAL 0xB58 8013BA48: ADDIU A0, A0, 0x0170 8013BA4C: JAL 0x87C 8013BA50: NOP 8013BA54: LW T3, 0x0000 (S0) 8013BA58: JAL 0xD18 8013BA5C: LW A0, 0x02EC (T3) 8013BA60: LW T4, 0x0000 (S0) 8013BA64: OR A1, R0, R0 8013BA68: SW V0, 0x0004 (T4) 8013BA6C: LW T5, 0x0000 (S0) 8013BA70: SB R0, 0x0216 (T5) 8013BA74: LW V1, 0x0000 (S0) 8013BA78: LW T6, 0x0004 (V1) 8013BA7C: ADDIU A0, V1, 0x0170 8013BA80: LH A2, 0x02EE (V1) 8013BA84: LW T7, 0x0008 (T6) 8013BA88: JAL 0xC34 8013BA8C: LW A3, 0x0000 (T7) 8013BA90: LW A0, 0x0000 (S0) 8013BA94: OR A1, R0, R0 8013BA98: JAL 0xD04 8013BA9C: ADDIU A0, A0, 0x0170
Give Pokémon subroutine
8013E1BC: ADDIU SP, SP, 0xFFE0 8013E1C0: SW RA, 0x0014 (SP) 8013E1C4: JAL 0x764 8013E1C8: NOP 8013E1CC: OR A0, V0, R0 8013E1D0: JAL 0xD10 8013E1D4: OR A1, R0, R0 8013E1D8: LUI A1, 0x8014 8013E1DC: SW V0, 0x001C (SP) 8013E1E0: ADDIU A1, A1, 0x6F5C 8013E1E4: JAL 0xB70 8013E1E8: OR A0, V0, R0 8013E1EC: LUI AT, 0x8014 8013E1F0: SW V0, 0x7EC0 (AT) 8013E1F4: JAL 0xD60 8013E1F8: LW A0, 0x001C (SP) 8013E1FC: JAL 0xB20 8013E200: NOP 8013E204: ADDIU A0, R0, 0x0020 8013E208: JAL 0x5C4 8013E20C: OR A1, R0, R0 8013E210: LUI V1, 0x8014 8013E214: ADDIU V1, V1, 0x7EE0 8013E218: SW V0, 0x0000 (V1) 8013E21C: OR A0, V0, R0 8013E220: JAL 0xFD0 8013E224: ADDIU A1, R0, 0x0020 8013E228: ADDIU A0, R0, 0x030C 8013E22C: JAL 0x5C4 8013E230: OR A1, R0, R0 8013E234: LUI V1, 0x8014 8013E238: ADDIU V1, V1, 0x7EDC 8013E23C: SW V0, 0x0000 (V1) 8013E240: OR A0, V0, R0 8013E244: JAL 0xFD0 8013E248: ADDIU A1, R0, 0x030C 8013E24C: ADDIU A0, R0, 0x004C 8013E250: JAL 0x5C4 8013E254: OR A1, R0, R0 8013E258: LUI V1, 0x8014 8013E25C: ADDIU V1, V1, 0x7ED8 8013E260: SW V0, 0x0000 (V1) 8013E264: OR A0, V0, R0 8013E268: JAL 0x80057FD0 8013E26C: ADDIU A1, R0, 0x004C 8013E270: JAL 0x8013B8A4 ;Determine which Pokémon to give 8013E274: NOP 8013E278: JAL 0x8013B9C0 8013E27C: NOP 8013E280: JAL 0x8013BD78 8013E284: NOP 8013E288: JAL 0x8013BBF8 8013E28C: NOP 8013E290: JAL 0x8013BC08 8013E294: NOP 8013E298: JAL 0x8013BC9C 8013E29C: NOP 8013E2A0: LW RA, 0x0014 (SP) 8013E2A4: ADDIU SP, SP, 0x0020 8013E2A8: JR RA 8013E2AC: NOP
AI stuff - 0x80146EE4 (called at start of turn in battle, to complete and document)
80146EE4: LUI T6, 0x8007 80146EE8: LW T6, 0x8BA0 (T6) 80146EEC: ADDIU SP, SP, 0xFFE8 80146EF0: SW RA, 0x0014 (SP) 80146EF4: LHU V0, 0x0008 (T6) 80146EF8: LUI AT, 0x8014 80146EFC: ADDIU T9, R0, 0x0003 80146F00: ANDI T7, V0, 0x8000 80146F04: BEQ T7, R0, 0x80146F44 80146F08: ANDI T1, V0, 0x4000 80146F0C: LUI V0, 0x8014 80146F10: ADDIU V0, V0, 0x7998 80146F14: LH T8, 0x0008 (V0) ;T8 = AI Level 80146F18: ADDIU T0, R0, 0x0006 80146F1C: ADDIU A0, R0, 0x0002 80146F20: SH T8, 0x7854 (AT) 80146F24: SH T9, 0x0006 (V0) 80146F28: LUI AT, 0x8014 80146F2C: SH R0, 0x7990 (AT) 80146F30: LUI AT, 0x8014 80146F34: JAL 0xB90 80146F38: SH T0, 0x7986 (AT) 80146F3C: BEQ R0, R0, 0x80146FEC 80146F40: LW RA, 0x0014 (SP) 80146F44: BEQ T1, R0, 0x80146F78 80146F48: ANDI T4, V0, 0x0800 80146F4C: LUI V0, 0x8014 80146F50: ADDIU V0, V0, 0x7998 80146F54: ADDIU T2, R0, 0x0002 80146F58: SH T2, 0x0006 (V0) 80146F5C: ADDIU T3, R0, 0x0006 80146F60: LUI AT, 0x8014 80146F64: SH T3, 0x7986 (AT) 80146F68: JAL 0xB90 80146F6C: ADDIU A0, R0, 0x0003 80146F70: BEQ R0, R0, 0x80146FEC 80146F74: LW RA, 0x0014 (SP) 80146F78: ? (20) 80146F7C: ANDI T8, V0, 0x0400 80146F80: JAL 0xB90 80146F84: ADDIU A0, R0, 0x0001 80146F88: LUI V0, 0x8014 80146F8C: ADDIU V0, V0, 0x7998 80146F90: LH T5, 0x0008 (V0) 80146F94: ADDIU AT, R0, 0x0003 80146F98: ADDIU T6, T5, 0x0002 80146F9C: ? (Special 0x01C1001A) 80146FA0: ? (Special 0x00007810) 80146FA4: SH T7, 0x0008 (V0) ;Store selected AI Level to (0x801479A0) 80146FA8: BEQ R0, R0, 0x80146FEC 80146FAC: LW RA, 0x0014 (SP) 80146FB0: ANDI T8, V0, 0x0400 80146FB4: ? (20) 80146FB8: LW RA, 0x0014 (SP) 80146FBC: JAL 0xB90 80146FC0: ADDIU A0, R0, 0x0001 80146FC4: LUI V0, 0x8014 80146FC8: ADDIU V0, V0, 0x7998 80146FCC: LH T9, 0x0008 (V0) 80146FD0: ADDIU AT, R0, 0x0003 80146FD4: ADDIU T0, T9, 0x0001 80146FD8: ? (Special 0x0101001A) 80146FDC: ? (Special 0x00004810) 80146FE0: SH T1, 0x0008 (V0) 80146FE4: NOP 80146FE8: LW RA, 0x0014 (SP) 80146FEC: ADDIU SP, SP, 0x0018 80146FF0: JR RA 80146FF4: NOP
Prize Pokémon
- 0x16D550 - Prize Pokémon IDs
01 - Bulbasaur 04 - Charmander 07 - Squirtle 6A - Hitmonlee 6B - Hitmonchan 85 - Eevee 8A - Omanyte 8C - Kabuto 36 - Psyduck
AI stuff - 0x80199C80, calc some value deviated from CH Ratio formula (called at start of turn in battle, to document)
80199C80: LUI V0, 0x801B 80199C84: LBU V0, 0xDFC0 (V0) ;V0 = 0x801ADFC0 80199C88: SW A1, 0x0004 (SP) 80199C8C: ADDIU A1, R0, 0x0001 80199C90: SW A2, 0x0008 (SP) 80199C94: BNE A1, V0, 0x80199CC8 ;if(A1 != (0x801ADFC0), branch to 80199CC8 80199C98: ANDI A2, A2, 0x00FF ;A2 &= 0xFF 80199C9C: LBU T6, 0x000B (A0) ;T6 = Pokémon ID 80199CA0: LUI V1, 0x8007 80199CA4: SLL T7, T6, 0x2 80199CA8: SUBU T7, T7, T6 80199CAC: SLL T7, T7, 0x3 80199CB0: SUBU T7, T7, T6 80199CB4: ADDU V1, V1, T7 80199CB8: LBU V1, 0x0F8D (V1) ;Alt_CHrate = Base Speed 80199CBC: ADDIU V1, V1, 0x004C ;Alt_CHrate += 76 80199CC0: BEQ R0, R0, 0x80199CEC ;Branch to 80199CEC 80199CC4: SRA V1, V1, 0x2 ;Alt_CHrate >> 2 80199CC8: LBU T8, 0x000B (A0) ;T6 = Pokémon ID 80199CCC: LUI V1, 0x8007 80199CD0: SLL T9, T8, 0x2 80199CD4: SUBU T9, T9, T8 80199CD8: SLL T9, T9, 0x3 80199CDC: SUBU T9, T9, T8 80199CE0: ADDU V1, V1, T9 80199CE4: LBU V1, 0x0F8D (V1) ;Alt_CHrate = Base Speed 80199CE8: SRA V1, V1, 0x1 ;Alt_CHrate >> 1 80199CEC: BEQ A1, V0, 0x80199D14 ;if(A1 == (0x801ADFC0), branch to 80199D14 80199CF0: ADDIU AT, R0, 0x0002 ;AT = KARATE CHOP 80199CF4: LBU T0, 0x004D (A0) ;T0 = (A0+0x4D) 80199CF8: ANDI T1, T0, 0x0004 80199CFC: BEQ T1, R0, 0x80199D0C ;if(T0 & FOCUS_ENERGY == 0), branch to 80199D0C 80199D00: NOP 80199D04: BEQ R0, R0, 0x80199D34 ;Branch to 80199D34 80199D08: SRA V1, V1, 0x1 ;Alt_CHrate >> 1 80199D0C: BEQ R0, R0, 0x80199D34 ;Branch to 80199D34 80199D10: SLL V1, V1, 0x1 ;Alt_CHrate << 1 80199D14: LBU T2, 0x004D (A0) ;T2 = (A0+0x4D) 80199D18: ANDI T3, T2, 0x0004 80199D1C: BEQL T3, R0, 0x80199D34 ;if(T2 & 4 == 0), branch to 80199D34 80199D20: SLL V1, V1, 0x1 ;Alt_CHrate << 1 80199D24: ADDIU V1, V1, 0x0028 ;Alt_CHrate += 40 80199D28: BEQ R0, R0, 0x80199D34 ;Branch to 80199D34 80199D2C: SLL V1, V1, 0x2 ;Alt_CHrate << 2 80199D30: SLL V1, V1, 0x1 ;Alt_CHrate << 1 80199D34: BEQ A2, AT, 0x80199D5C 80199D38: ADDIU AT, R0, 0x004B ;AT = RAZOR_LEAF 80199D3C: BEQ A2, AT, 0x80199D5C ;if(move_id = RAZOR_LEAF), branch to 80199D5C 80199D40: ADDIU AT, R0, 0x0098 ;AT = CRABHAMMER 80199D44: BEQ A2, AT, 0x80199D5C ;if(move_id = CRABHAMMER), branch to 80199D5C 80199D48: ADDIU AT, R0, 0x00A3 ;AT = SLASH 80199D4C: BEQL A2, AT, 0x80199D60 ;if(move_id = SLASH), branch to 80199D60 80199D50: SLL V1, V1, 0x2 ;Alt_CHrate << 2 80199D54: BEQ R0, R0, 0x80199D70 ;Branch to 80199D70 80199D58: SRA V1, V1, 0x1 ;Alt_CHrate >> 1 80199D5C: SLL V1, V1, 0x2 ;Alt_CHrate << 2 80199D60: SLTI AT, V1, 0x0100 80199D64: BNEL AT, R0, 0x80199D74 ;if(CHrate < 0x100), branch to 80199D74 and link 80199D68: SLTI AT, V1, 0x0100 ;if(CHrate < 0x100), AT = 1 80199D6C: ADDIU V1, R0, 0x00FF ;CHrate = 255 80199D70: SLTI AT, V1, 0x0100 ;if(CHrate < 0x100), AT = 1 80199D74: BNEZ AT, 0x80199D80 ;if(CHrate < 0x100), branch to 80199D80 80199D78: NOP 80199D7C: ADDIU V1, R0, 0x00FF ;Alt_CHrate = 0xFF 80199D80: BGTZ V1, 0x80199D8C ;if(CHrate > 0), branch to 80199D8C 80199D84: NOP 80199D88: ADDIU V1, R0, 0x0001 ;CHrate = 1 80199D8C: JR RA 80199D90: ANDI V0, V1, 0x00FF ;V0 = CHrate & 0xFF
AI stuff - 0x8019A2C8, AI handicap ?
8019A2C8: ADDIU SP, SP, 0xFFE0 8019A2CC: SW RA, 0x001C (SP) 8019A2D0: SW S1, 0x0018 (SP) 8019A2D4: SW S0, 0x0014 (SP) 8019A2D8: SW A2, 0x0028 (SP) 8019A2DC: OR S0, A0, R0 8019A2E0: OR S1, A1, R0 8019A2E4: SW A3, 0x002C (SP) 8019A2E8: JAL 0xC80 8019A2EC: LBU A2, 0x002B (SP) ;Store A2 to (SP+0x2B) 8019A2F0: LUI T6, 0x801F ;AI handicap ? 8019A2F4: LW T6, 0x88C4 (T6) ;T6 = (0x801E88C4) 8019A2F8: ADDIU T9, R0, 0x00E6 ;T9 = 230 8019A2FC: ADDIU T1, R0, 0x0001 ;T1 = 1 8019A300: LBU T7, 0x0004 (T6) ;T7 = (T6+0x4) ;(0x801E9477), Hard: 0x3F, Normal: 0xB2, Easy: 0xFF, R1 Brock: 0x90 8019A304: OR A0, S0, R0 ;A0 = S0 8019A308: OR A1, S1, R0 ;A1 = S1 8019A30C: BGEZ T7, 0x8019A31C ;if(T7 >= 0), branch to 8019A31C 8019A310: SRA T8, T7, 0x1 ;T8 = T7 >> 1 8019A314: ADDIU AT, T7, 0x0001 ;AT = T7 + 1 8019A318: SRA T8, AT, 0x1 ;T8 = AT >> 1 8019A31C: SUBU T0, T9, T8 ;T0 = 230 - (T7>>1) 8019A320: SLT AT, V0, T0 8019A324: BNEZ AT, 0x8019A334 ;if(Alt_CHrate < T0), branch to 8019A334 8019A328: LUI AT, 0x801F 8019A32C: BEQ R0, R0, 0x8019A33C ;Branch to 8019A33C 8019A330: SB T1, 0x94A4 (AT) ;Store 1 to (0x801E94A4) 8019A334: LUI AT, 0x801F 8019A338: SB R0, 0x94A4 (AT) ;Store 0 to (0x801E94A4) 8019A33C: JAL 0xFF0 8019A340: LBU A2, 0x002B (SP) ;A2 = (SP+0x2B) 8019A344: OR A0, S0, R0 8019A348: JAL 0x1A0 8019A34C: OR A1, S1, R0 8019A350: LBU T2, 0x002F (SP) 8019A354: OR A0, S0, R0 8019A358: BEQ T2, R0, 0x8019A368 8019A35C: NOP 8019A360: JAL 0xEFC 8019A364: OR A1, S1, R0 8019A368: JAL 0xE98 8019A36C: NOP 8019A370: OR A0, S0, R0 8019A374: JAL 0xD94 8019A378: OR A1, S1, R0 8019A37C: LW RA, 0x001C (SP) 8019A380: LW S0, 0x0014 (SP) 8019A384: LW S1, 0x0018 (SP) 8019A388: JR RA 8019A38C: ADDIU SP, SP, 0x0020
AI stuff - 0x801A17A8 (start of turn in battle, to complete and document)
801A17A8: ADDIU SP, SP, 0xFF88 801A17AC: LUI V0, 0x801F 801A17B0: LW V0, 0x88C4 (V0) 801A17B4: SW RA, 0x003C (SP) 801A17B8: SW S8, 0x0038 (SP) 801A17BC: SW S7, 0x0034 (SP) 801A17C0: SW S6, 0x0030 (SP) 801A17C4: SW S5, 0x002C (SP) 801A17C8: SW S4, 0x0028 (SP) 801A17CC: SW S3, 0x0024 (SP) 801A17D0: SW S2, 0x0020 (SP) 801A17D4: SW S1, 0x001C (SP) 801A17D8: SW S0, 0x0018 (SP) 801A17DC: SW A0, 0x0078 (SP) 801A17E0: SW A1, 0x007C (SP) 801A17E4: SW A2, 0x0080 (SP) 801A17E8: LBU T6, 0x0006 (V0) 801A17EC: ANDI A2, A2, 0x00FF 801A17F0: OR S8, A3, R0 801A17F4: SB T6, 0x005B (SP) 801A17F8: LW T7, 0x0000 (V0) 801A17FC: LUI V0, 0x8000 801A1800: ORI S5, V0, 0x0002 801A1804: SLL T8, T7, 0xA 801A1808: BGEZ T8, 0x801A1834 801A180C: OR S2, S5, R0 801A1810: LBU T1, 0x0004 (A0) 801A1814: ADDIU AT, R0, 0x0001 801A1818: BEQ T1, AT, 0x801A1834 801A181C: NOP 801A1820: LBU T2, 0x0044 (A0) 801A1824: BLEZ T2, 0x801A1834 801A1828: NOP 801A182C: BEQ R0, R0, 0x801A1AD4 801A1830: OR V0, R0, R0 801A1834: LUI T3, 0x801F 801A1838: LBU T3, 0x9448 (T3) 801A183C: LUI AT, 0x801F 801A1840: OR S3, S5, R0 801A1844: SLL T4, T3, 0x2 801A1848: ADDU T4, T4, T3 801A184C: SLL T4, T4, 0x2 801A1850: ADDU AT, AT, T4 801A1854: OR S4, S5, R0 801A1858: SW R0, 0x006C (SP) 801A185C: SW R0, 0x0070 (SP) 801A1860: SB A2, 0x9422 (AT) 801A1864: OR S1, R0, R0 801A1868: BLEZ A2, 0x801A1954 801A186C: OR T0, A2, R0 801A1870: LW S6, 0x0078 (SP) 801A1874: ADDIU S7, R0, 0x002C 801A1878: ADDIU S6, S6, 0x0012 801A187C: ? (Special 0x02370019) 801A1880: LUI T7, 0x801F 801A1884: LBU T7, 0x9448 (T7) 801A1888: SLL T1, S1, 0x2 801A188C: LUI AT, 0x801F 801A1890: SLL T8, T7, 0x2 801A1894: ADDU T8, T8, T7 801A1898: SLL T8, T8, 0x2 801A189C: ADDU T9, T8, T1 801A18A0: ADDU AT, AT, T9 801A18A4: ? (Special 0x00006812) 801A18A8: ADDU S0, S8, T5 801A18AC: LW T6, 0x0028 (S0) 801A18B0: ADDU T2, S6, S1 801A18B4: SW T6, 0x9424 (AT) 801A18B8: LBU T3, 0x0032 (T2) 801A18BC: ? (22) 801A18C0: ADDIU S1, S1, 0x0001 801A18C4: LBU T4, 0x0057 (S6) 801A18C8: LBU T5, 0x0000 (S0) 801A18CC: OR A1, S5, R0 801A18D0: OR A3, S3, R0 801A18D4: ? (20) 801A18D8: ADDIU S1, S1, 0x0001 801A18DC: LW A0, 0x0028 (S0) 801A18E0: LH A2, 0x000A (S0) 801A18E4: JAL 0x714 801A18E8: SW T0, 0x0044 (SP)
AI stuff - 0x801A1BC0 (start of turn in battle, R1 PokéCup T1 to complete and document)
801A1BC0: ADDIU SP, SP, 0xFFD8 ;AI stuff, PokéCup? 801A1BC4: LUI T6, 0x801F 801A1BC8: LW T6, 0x88C4 (T6) 801A1BCC: SW RA, 0x0014 (SP) 801A1BD0: SW A0, 0x0028 (SP) 801A1BD4: SW A1, 0x002C (SP) 801A1BD8: LBU T7, 0x0004 (T6) ;(0x801E9477), Hard: 0x3F, Normal: 0xB2, Easy: 0xFF 801A1BDC: ADDIU T8, R0, 0x00FF 801A1BE0: ADDIU AT, R0, 0x0011 801A1BE4: SUBU V0, T8, T7 801A1BE8: ? (Special 0x0041001A) 801A1BEC: ? (Special 0x00001012) 801A1BF0: ANDI V1, V0, 0x00FF 801A1BF4: SLL T9, V1, 0xC 801A1BF8: ADDIU T0, T9, 0x0FFF 801A1BFC: ? (17) 801A1C00: LUI AT, 0x4F80 801A1C04: BGEZ T0, 0x801A1C18 801A1C08: ? (17) 801A1C0C: ? (17) 801A1C10: NOP 801A1C14: ? (17) 801A1C18: JAL 0xEB0 801A1C1C: SW V1, 0x001C (SP) 801A1C20: ? (17) 801A1C24: LW V1, 0x001C (SP) 801A1C28: LBU T4, 0x002B (SP) 801A1C2C: LBU T7, 0x002F (SP) 801A1C30: ? (17) 801A1C34: ADDU T5, T4, V1 801A1C38: SLL T6, T5, 0x1 801A1C3C: BGEZ T2, 0x801A1C4C 801A1C40: SRA T3, T2, 0x2 801A1C44: ADDIU AT, T2, 0x0003 801A1C48: SRA T3, AT, 0x2 801A1C4C: ADDU T8, T3, T6 801A1C50: ? (Special 0x030F0019) 801A1C54: ADDIU AT, R0, 0x0064 801A1C58: LW RA, 0x0014 (SP) 801A1C5C: ADDIU SP, SP, 0x0028 801A1C60: ? (Special 0x00001012) 801A1C64: NOP 801A1C68: NOP 801A1C6C: ? (Special 0x0041001A) 801A1C70: ? (Special 0x00001012) 801A1C74: ADDIU V0, V0, 0x0005 801A1C78: JR RA 801A1C7C: ANDI V0, V0, 0xFFFF
AI stuff - 0x801A4CF0 (start of turn in battle, to complete and document)
801A4CF0: SLL T6, V0, 0x2 801A4CF4: SUBU T6, T6, V0 801A4CF8: LW V1, 0x006C (SP) 801A4CFC: SLL T6, T6, 0x2 801A4D00: ADDU T6, T6, V0 801A4D04: SLL T6, T6, 0x2 801A4D08: LUI A1, 0x801F 801A4D0C: LW A1, 0x88C4 (A1) 801A4D10: LW T0, 0x0040 (SP) 801A4D14: ADDU V1, V1, T6 801A4D18: LBU V0, 0x004E (T0) 801A4D1C: LW A3, 0x0000 (A1) 801A4D20: LUI AT, 0x0040 801A4D24: ANDI T1, V0, 0x0001 801A4D28: BEQ T1, R0, 0x801A4D60 801A4D2C: AND A3, A3, AT 801A4D30: LBU T4, 0x0051 (T0) 801A4D34: LBU T5, 0x004D (T0) 801A4D38: SLL T2, T4, 0x2 801A4D3C: ADDU T2, T2, T4 801A4D40: SLL T2, T2, 0x2 801A4D44: SUBU T2, T2, T4 801A4D48: SLL T2, T2, 0x2 801A4D4C: ADDU T2, T2, T4 801A4D50: ANDI T3, T5, 0x0080 801A4D54: BEQ T3, R0, 0x801A4D60 801A4D58: ADDU V1, V1, T2 801A4D5C: SLL V1, V1, 0x1 801A4D60: LBU T3, 0x0060 (T0) 801A4D64: ADDIU A2, R0, 0x001A 801A4D68: LBU T7, 0x005C (T0) 801A4D6C: ? (Special 0x01660019) 801A4D70: LBU T9, 0x005D (T0) 801A4D74: SLL T8, T7, 0x2 801A4D78: SUBU V1, V1, T8 801A4D7C: LBU T8, 0x0061 (T0) 801A4D80: LBU T1, 0x005E (T0) 801A4D84: ADDIU V1, V1, 0x001C 801A4D88: SLL T6, T9, 0x2 801A4D8C: LBU T2, 0x005F (T0) 801A4D90: SUBU V1, V1, T6 801A4D94: ? (Special 0x00007812) 801A4D98: ADDIU V1, V1, 0x001C 801A4D9C: SLL T4, T1, 0x2 801A4DA0: ? (Special 0x03060019) 801A4DA4: SUBU V1, V1, T4 801A4DA8: ADDIU V1, V1, 0x001C 801A4DAC: SLL T5, T2, 0x2 801A4DB0: SUBU V1, V1, T5 801A4DB4: ADDIU V1, V1, 0x001C 801A4DB8: SUBU V1, V1, T7 801A4DBC: ADDIU V1, V1, 0x00B6 801A4DC0: ANDI T6, V0, 0x0004 801A4DC4: LBU A0, 0x004D (T0) 801A4DC8: ? (Special 0x0000C812) 801A4DCC: SUBU V1, V1, T9 801A4DD0: BEQ T6, R0, 0x801A4DDC 801A4DD4: ADDIU V1, V1, 0x00B6 801A4DD8: ADDIU V1, V1, 0xFFCC 801A4DDC: ANDI T1, V0, 0x0002 801A4DE0: BEQ T1, R0, 0x801A4DEC 801A4DE4: ANDI T4, A0, 0x0040 801A4DE8: ADDIU V1, V1, 0xFFCC 801A4DEC: BEQ T4, R0, 0x801A4DF8 801A4DF0: LW T2, 0x0060 (SP) 801A4DF4: ADDIU V1, V1, 0xFFB3 801A4DF8: BNEZ A3, 0x801A4E34 801A4DFC: LW T5, 0x0058 (SP) 801A4E00: SLT AT, T2, T5 801A4E04: BEQ AT, R0, 0x801A4E34 801A4E08: LW A0, 0x0070 (SP) 801A4E0C: LW A1, 0x0074 (SP) 801A4E10: LBU A2, 0x0069 (SP) 801A4E14: SW V1, 0x006C (SP) 801A4E18: JAL 0x214 801A4E1C: SW T0, 0x0040 (SP) 801A4E20: LW V1, 0x006C (SP) 801A4E24: LUI A1, 0x801F 801A4E28: LW A1, 0x88C4 (A1) 801A4E2C: LW T0, 0x0040 (SP) 801A4E30: SUBU V1, V1, V0 801A4E34: LBU T3, 0x0005 (A1) ;T3 = (A1+0x5) ;(0x801E9476), Hard: 0x7F, Normal: 0x65, Easy: 0xB2 801A4E38: LW T7, 0x0080 (SP) 801A4E3C: ADDU V1, V1, T3 801A4E40: ADDIU V1, V1, 0xFF81 ;V1 -= 0x7F 801A4E44: BEQ R0, R0, 0x801A4E70 801A4E48: LBU A0, 0x0000 (T7) 801A4E4C: LW A0, 0x0078 (SP) 801A4E50: JAL 0xF70 801A4E54: SW T0, 0x0040 (SP) 801A4E58: LW T8, 0x0080 (SP) 801A4E5C: LW T0, 0x0040 (SP) 801A4E60: ADDIU V1, R0, 0x003F 801A4E64: SB V0, 0x0000 (T8) 801A4E68: LW T9, 0x0080 (SP) 801A4E6C: LBU A0, 0x0000 (T9) 801A4E70: SLL T6, A0, 0x4 801A4E74: SUBU T6, T6, A0 801A4E78: LW A1, 0x0078 (SP) 801A4E7C: SLL T6, T6, 0x2 801A4E80: SUBU T6, T6, A0 801A4E84: SLL T6, T6, 0x1 801A4E88: ADDU T1, A1, T6 801A4E8C: LHU T4, 0x0032 (T1) 801A4E90: ? (20) 801A4E94: OR A0, A1, R0 801A4E98: ? (Regimm) 801A4E9C: OR A0, A1, R0 801A4EA0: LBU T2, 0x0006 (A1) 801A4EA4: SLT AT, A0, T2 801A4EA8: BNEZ AT, 0x801A4ECC 801A4EAC: OR A0, A1, R0 801A4EB0: SW V1, 0x006C (SP) 801A4EB4: JAL 0xF70 801A4EB8: SW T0, 0x0040 (SP)
Free Battle text
- 0x2D2000
%s1~100 %s50~55 %s25~30 %s15~20 %s1~100 %dP.COM.
Battle Program
Moves Legality Checker
- 0x2ECB38 - 0x2ECC10 - Compares the Moves known by the Pokémon with the Moves it learns
/* Starting Moves : 0x71BA0 */ OR V0, S4, R0 (0x2ECB3C) LBU V1, $000A (V0) // Load Starting Move in V1 ADDIU S0, S0, $0001 // Increase the Starting Move array key SLTI AT, S0, $0004 // Sets AT to 1 if 4 starting Moves have not been checked yet BEQ V1, R0, $002ECB64 // If there is no starting Move to check, branch to 0x2ECB64 NOP LBU T0, $001F (S2) // Load Move known by the Pokémon in T0 ADDU T1, S3, S1 BNE V1, T0, $002ECB64 // If Starting Move ID ≠ known Move ID, branch to 0x2ECB64 NOP SB R0, $0715 (T1) (0x2ECB64) BNEZ AT, $002ECB3C // If the 4 Starting Moves have not been checked, branch to 0x2ECB3C ADDIU V0, V0, $0001 // Increase the Starting Moves pointer /* Level-Up Moves : 0x77FB20 */ OR S0, R0, R0 LW V1, $0048 (SP) (0x2ECB74) LBU V0, $0000 (V1) ADDIU S0, S0, $0001 BEQL V0, R0, $002ECBB0 SLTI AT, S0, $000A LBU T2, $0026 (S5) SLT AT, T2, V0 BNEL AT, R0, $002ECBB0 SLTI AT, S0, $000A // Sets AT to 1 if 10 Level-Up Moves have not been checked yet LBU T3, $000A (V1) // Load Level-Up Move in T3 LBU T4, $001F (S2) // Load Move known by the Pokémon in T4 ADDU T5, S3, S1 BNEL T3, T4, $002ECBB0 // If Level-Up Move ID ≠ known Move ID, branch to 0x2ECBB0 SLTI AT, S0, $000A SB R0, $0715 (T5) // Set the Move validity byte to 0 SLTI AT, S0, $000A (0x2ECBB0) BNEZ AT, $002ECB74 // If the 10 Level-Up Moves have not been checked, branch to 0x2ECB74 ADDIU V1, V1, $0001 // Increase the Level-Up Moves pointer OR S0, R0, R0 LW V1, $004C (SP) LBU V0, $0000 (V1) ADDIU S0, S0, $0001 BEQL V0, R0, $002ECBFC SLTI AT, S0, $000A LBU T6, $0026 (S5) SLT AT, T6, V0 BNEL AT, R0, $002ECBFC SLTI AT, S0, $000A LBU T9, $001F (S2) ADDU T7, S3, S1 BNEL T8, T9, $002ECBFC SLTI AT, S0, $000A SB R0, $0715 (T7) SLTI AT, S0, $000A BNEZ AT, $002ECBC0 (0x2ECBFC) ADDIU V1, V1, $0001 OR S0, R0, R0 ANDI A0, S6, $FFFF OR A1, S7, R0 JAL $04302194
Move-specific code
- 0x2ED680 - Seismic Toss
ADDIU AT, R0, $0045 BNE V0, AT, $002ED6A0 // If Move ID ≠ Seismic Toss, branch to 0x2ED6A0 OR A0, S0, R0 ADDIU A1, R0, $0008 JAL $04308654 OR A2, R0, R0
- 0x2ED698 - Fail-safe
BEQ R0, R0, $002ED73C // Branch to 0x2ED73C LW T1, $0024 (SP)
- 0x2ED6A0 - Surf
ADDIU AT, R0, $0039 BNE V0, AT, $002ED6C0 // If Move ID ≠ Surf, branch to 0x2ED6C0 OR A0, S0, R0 ADDIU A1, R0, $000A JAL $04308654 OR A2, R0, R0
- 0x2ED6B8 - Fail-safe
BEQ R0, R0, $002ED73C // Branch to 0x2ED73C LW T1, $0024 (SP)
- 0x2EE2BC - Stomp, Body Slam, Seismic Toss
LW A0, $0000 (T5) LW T6, $0028 (SP) ADDIU AT, R0, $0017 LW T8, $001C (SP) LBU V1, $0044 (T6) ADDIU A1, R0, $000F OR A2, R0, R0 BEQ V1, AT, $002EE2F0 // If the Move is Stomp, Body Slam, or Seismic Toss, JAL 0x04308654 ADDIU AT, R0, $0022 BEQ V1, AT, $002EE2F0 ADDIU AT, R0, $0045 BNEL V1, AT, $002EE2FC // Else jump to 0x2EE2F8 LW RA, $0014 (SP)2EE43C JAL $04308654
- 0x2EE3B0 - String Shot
SW V1, $0020 (SP) LW V1, $0020 (SP) ADDIU AT, R0, $0051 LUI T3, $843C LBU T2, $0044 (V1) BNEL T2, AT, $002EE404 // If the Move is not String Shot, jump to 0x2EE400 LBU A1, $005A (V1) LBU T3, $4E45 (T3) LUI T4, $843C BEQ T3, R0, $002EE444 NOP LBU T4, $4E44 (T4) BEQ T4, R0, $002EE444 NOP LW A0, $0000 (S0) JAL $04301C54
- 0x2EE400 -
LBU A1, $005A (V1) // Loads P2 Move ID SW V1, $0020 (SP) JAL $04301C54
- 0x2EE40C - Bind, Wrap, Constrict
LW A0, $0000 (S0) LW V1, $0020 (SP) ADDIU AT, R0, $0014 ADDIU A1, R0, $0010 LBU V0, $0044 (V1) OR A2, R0, R0 BEQ V0, AT, $002EE43C // If the Move is Bind, Wrap, or Constrict, JAL 0x4308654 ADDIU AT, R0, $0023 BEQ V0, AT, $002EE43C ADDIU AT, R0, $0084 BNE V0, AT, $002EE444 // Else jump to 0x2EE444 NOP JAL $04308654
- 0x2F23A0 - Compare the Move ID send by function 0x302528 with the arrays at 0x370250
OR V0, A2, R0 // Copy number of iterations to check in V0 SW A0, $0000 (SP) // Store Pokémon's Move ID ANDI A0, A0, $00FF BEQ A2, R0, $002F23DC // If all the array's values have been compared with Pokémon's Move ID, jump to 0x2F23DC ADDIU A2, A2, $FFFF // Decreases A2 OR V1, A0, R0 // Copy Pokémon's Move ID in V1 (0x2F23B8) LBU T6, $0000 (A1) // Load next array's value to compare with Pokémon's Move ID in T6 OR V0, A2, R0 // Copy number of iterations to check in V0 ADDIU A1, A1, $0001 // Increase array's value pointer BNE V1, T6, $002F23D4 // If the array's value is not equal to Pokémon's Move ID, jump to 0x2F23D4 (next function) NOP JR RA // Else, jump to RA
- 0x2F23D0 - Checks if the Moves IDs array from the previous function has been fully checked
ADDIU V0, R0, $0001 (0x2F23D0) BNEZ A2, $002F23B8 // If there are still values to check in the array, jump to 0x2F23B8 ADDIU A2, A2, $FFFF OR V0, R0, R0 JR RA NOP
- 0x2F330C - Freeze Status (?)
ADDIU SP, SP, $FFD0 SW RA, $002C (SP) SW S3, $0024 (SP) SW S2, $0020 (SP) OR S2, A0, R0 SW S4, $0028 (SP) SW S1, $001C (SP) SW S0, $0018 (SP) JAL $04307EC4 OR S3, R0, R0
- 0x2FA084 - Ensures that Critical Hit Rate multiplier ≠ 8
LBU T8, $004C (V1) ANDI T9, T8, $FFF7 // P1 CH Rate multiplier & 0xFFF7 SB T9, $004C (V1) LW A1, $0034 (SP) LBU T0, $06D8 (A1) ADDIU A1, A1, $068C ANDI T1, T0, $FFF7 // P2 CH Rate multiplier & 0xFFF7 SB T1, $004C (A1) LBU T2, $004C (V1) ANDI T3, T2, $0012 // (0x80287B18) & 0x12 BNEZ T3, $002FA150
- 0x302528 - Compares P2 Move ID with the list at 0x37552C
ADDIU A2, R0, $0005 BEQ V0, R0, $00302540 LW T3, $0018 (SP) ADDIU T2, R0, $0002 BEQ R0, R0, $0030256C SW T2, $001C (SP) LUI A1, $8438 ADDIU A1, A1, $59A4 LBU A0, $0044 (T3) // Loads P2 Move ID JAL $04307AE0
- 0x302550 - Metronome, Mirror Move
ADDIU A2, R0, $002E BEQ V0, R0, $00302568 ADDIU T5, R0, $0004 BEQ R0, R0, $0030256C // Begin the function at LW T6, $0018 (SP) SW T4, $001C (SP) SW T5, $001C (SP) LW T6, $0018 (SP) // Pointer to P1 or P2 Pokémon Move ID ADDIU AT, R0, $0076 LUI T7, $8439 LBU V0, $0044 (T6) // Loads Move ID to V0 BEQ V0, AT, $0030258C // If the Move is Metronome, jump to 0x30258C (LW T7, $0240 (T7)) ADDIU AT, R0, $0077 BNE V0, AT, $00302690 // ElseIf the Move is not Mirror Move, jump to 0x302590 (LUI A0, $8439) LUI T4, $8439 LW T7, $0240 (T7) LUI A0, $8439 LHU T8, $002C (T7) SLL T9, T8, $2 ADDU A0, A0, T9 JAL $0430862C
?
- 0x30B97C -
LUI T6, $8439 LW T6, $0240 (T6) ADDIU SP, SP, $FFE8 SW RA, $0014 (SP) LHU V0, $002C (T6) LUI V1, $8439 SLL T7, V0, $2 ADDU V1, V1, T7 LW V1, $0010 (V1) LBU T8, $06D9 (V1) // Load ? to T8 ADDIU V1, V1, $068C ANDI T9, T8, $0080 BNEL T9, R0, $0030B9C8 // If ? ≥ 128, jump to 0x30B9C4 LBU T2, $005A (V1) // Loads 0x80287B24 to T2 LBU T0, $0015 (V1) // Loads 0x80287AE0 to T0 ANDI T1, T0, $0018 BEQL T1, R0, $0030B9EC // If (0x80287AE0) < 24, jump to 0x30B9E8 OR V0, R0, R0 (0x30B9C4) LBU T2, $005A (V1) ADDIU AT, R0, $00F0 ANDI T3, T2, $00F0 BNEL T3, AT, $0030B9EC OR V0, R0, R0 JAL $04320658 ADDIU A0, R0, $0023 BEQ R0, R0, $0030B9F0 LW RA, $0014 (SP) (0x30B9E8) OR V0, R0, R0 LW RA, $0014 (SP) (0x30B9F0) ADDIU SP, SP, $0018 JR RA
PRNG
- 0x359FA8 - Pseudo-Random Number Generator
iterations = ((Counter(COP0) & 0xFF0) >> 4) & 0xFF; seed1 = 0x4D2; // RAM(0x801AE19C) initial value seed2 = 0x1A85; // RAM(0x801AE1A0) initial value for (i = iterations; i > 0; i--) { seed1 = seed1 × 0x41C64E6D + 0x303B; if(seed2 && 1 == 1) { seed2 = seed2 ⊕ 0x11020; } seed2 = seed2 >> 1; } prn = (seed2 ⊕ seed1) & 0xFF;
ANDI A0, V0, $0FF0 // A0 = Counter(COP0) & 0xFF0 SRL A0, A0, $4 // A0 >> 4 ANDI T6, A0, $00FF // T6 = ((Counter(COP0) & 0xFF0) >> 4) & 0xFF BLEZ T6, $0035A01C // If negative number, jump to 0x35A01C (skips PRNG) ANDI V1, A0, $00FF // V1 = ((Counter(COP0) & 0xFF0) >> 4) & 0xFF LUI A3, $0001 LUI A2, $41C6 LUI A1, $8439 LUI A0, $8439 ADDIU A0, A0, $AE40 // A0 is a pointer to RAM (0x801AE1A0) ADDIU A1, A1, $AE3C // A1 is a pointer to RAM (0x801AE19C) ORI A2, A2, $4E6D // A2 = 0x41C64E6D ORI A3, A3, $1020 // A3 = 0x11020 (0x359FDC) LW T7, $0000 (A1) // T7 = (0x801AE19C) LW V0, $0000 (A0) // V0 = (0x801AE1A0) ADDIU V1, V1, $FFFF // Decrease V1 MULTU T7, A2 // T7 × 0x41C64E6D ANDI T0, V0, $0001 // Is V0 odd ? ANDI V1, V1, $00FF // V1 & 0xFF XOR T1, V0, A3 // T1 = (0x801AE1A0) ⊕ 0x11020 MFLO T8 // T8 = T7 × 0x41C64E6D ADDIU T9, T8, $303B // T9 = T8 + 0x303B BEQ T0, R0, $0035A010 // If V0 is even, jump to 0x35A010 SW T9, $0000 (A1) // Store seed × 0x41C64E6D + 0x303B to (0x801AE19C) SW T1, $0000 (A0) // Store (0x801AE1A0) ⊕ 0x11020 to (0x801AE1A0) OR V0, T1, R0 // V0 = (0x801AE1A0) ⊕ 0x11020 (0x35A010) SRL T2, V0, $1 // T2 == V0 >> 1 BGTZ V1, $00359FDC // As long as V1 > 0, loop to 0x359FDC SW T2, $0000 (A0) // Store V0 >> 1 to (0x801AE1A0) (0x35A01C) LUI A0, $8439 LUI A1, $8439 ADDIU A1, A1, $AE3C // A1 is a pointer to RAM (0x801AE19C) ADDIU A0, A0, $AE40 // A0 is a pointer to RAM (0x801AE1A0) LW T4, $0000 (A0) // Load Pseudo-Random Number 1 in T4 LW T3, $0000 (A1) // Load Pseudo-Random Number 2 in T3 LW RA, $0014 (SP) ADDIU SP, SP, $0018 XOR V1, T3, T4 // V1 = PRN1 ⊕ PRN2 JR RA ANDI V0, V1, $00FF // V0 = (PRN1 ⊕ PRN2) & 0xFF
Moves initialization
?
- 0x35A298 - ?
LUI A2, $8439 ADDIU A2, A2, $0010 SLL T6, A0, $2 SLL T8, A1, $2 ADDU T7, A2, T6 ADDU T9, A2, T8 LW V0, $0000 (T7) LW V1, $0000 (T9) ADDIU SP, SP, $FFE0 SW RA, $0014 (SP) ADDIU V0, V0, $068C ADDIU V1, V1, $068C SW V1, $0018 (SP) JAL $0436F838
Reset current Move data
- 0x35A2D0 - 00s Move Power / Effect / Type... in RAM area
SW V0, $001C (SP) LUI AT, $843C LW V0, $001C (SP) SB R0, $4DC2 (AT) LW V1, $0018 (AT) LUI AT, $843C SB R0, $4DB3 (AT) SB R0, $0044 (V0) SB R0, $0058 (V0) SB R0, $0058 (V1) SB R0, $004A (V0) SB R0, $004B (V0) SB R0, $004C (V0) SB R0, $004D (V0) SB R0, $004E (V0) SB R0, $0052 (V0) SB R0, $0057 (V0) SB R0, $0056 (V0) LBU T0, $004C (V1) LUI AT, $843C ADDIU T2, R0, $0001 ANDI T1, T0, $FFDF SB T1, $004C (V1) LW RA, $0014 (SP) SB T2, $4DA3 (AT) ADDIU SP, SP, $0020 JR RA NOP
Move program
Damage Variance
- 0x35A4D0 - Calls the Pseudo-Random Number Generator
LUI T6, $843C LHU T6, $4DC4 (T6) // Load Move Power to T6 ADDIU SP, SP, $FFE8 SW RA, $0014 (SP) SLTI AT, T6, $0002 BNEL AT, R0, $0035A530 // If Move Power ≤ 1, branch to 0x35A530 (Skip Damage Variance) LW RA, $0014 (SP) (0x35A4EC) JAL $0436F6D8 // Jump to PRNG Count NOP
- 0x35A4F4 - Damage × [217;255] ÷ 255
SLTI AT, V0, $00D9 BNEZ AT, $0035A4EC // If PRN < 217, branch to 0x35A4EC (new PRNG call) NOP LUI T7, $843C LHU T7, $4DC4 (T7) // T7 = MaxDamage ADDIU AT, R0, $00FF MULTU T7, V0 MFLO T8 // T8 = MaxDamage × [217;255] NOP NOP DIV T8, AT MFLO T9 // T9 = MaxDamage × [217;255] ÷ 255 LUI AT, $843C SH T9, $4DC4 (AT) // Store Adjusted Damage in (0x801E8126) LW RA, $0014 (SP) (0x35A530) ADDIU SP, SP, $0018 JR RA NOP
Moves Effects and High Critical Hit Rate
- 0x35A614 - Compare Move Effect ID with the array at 0x3756AC, or compare Move ID with the array at 0x37570C (High Critical Hit Rate Moves)
OR V0, A2, R0 // Copy number of iterations to check in V0 SW A0, $0000 (SP) ANDI A0, A0, $00FF BEQ A2, R0, $0035A650 // If all the array's values have been compared with Pokémon's Move ID, jump to 0x35A650 ADDIU A2, A2, $FFFF OR V1, A0, R0 // Copy Pokémon's Move Effect in V1 (0x35A62C) LBU T6, $0000 (A1) // Load next array's value to compare with Pokémon's Move Effect in T6 OR V0, A2, R0 // Copy number of iterations to check in V0 ADDIU A1, A1, $0001 // Increase array's value pointer BNE V1, T6, $0035A648 // If the array's value is not equal to Pokémon's Move Effect, jump to 0x35A648 (next function) NOP JR RA
- 0x35A644 - Checks if the array from the previous function has been fully parsed
ADDIU V0, R0, $0001 (0x35A648) BNEZ A2, $0035A62C // If there are still values to check in the array, jump to 0x35A62C ADDIU A2, A2, $FFFF (0x35A650) OR V0, R0, R0 JR RA
Attack / Defense / Critical Hit manipulation
- 0x35A9C0 - 0x35AB18 - Attack / Defense / Critical Hit manipulation for Damage Calculation
LBU T6, $0046 (V0) // Load Move Power to T6 LUI V1, $843C ADDIU V1, V1, $4DC6 // V1 = 0x801E8126 ANDI T7, T6, $FFFF // Copy Move Power to T7 BEQ T7, R0, $0035AB18 // If Move Power = 0, get out of this function SH T6, $0000 (V1) // Store Move Power at 0x801E8126 LBU T8, $0047 (V0) // Load Move Type to T8 LUI V1, $843C LUI A0, $843C SLTI AT, T8, $0014 // If Physical Move, set AT to 1 BEQ AT, R0, $0035AA58 // If Special Move, jump to 0x35AA58 (LUI V1, $843C) NOP LW V1, $523C (V1) LUI A2, $843C ADDIU A2, A2, $4DCA // A2 = 0x801E812A LHU T9, $002C (V1) // Load Defense stat to T9 LUI A3, $843C SH T9, $0000 (A2) LBU T0, $004E (V1) // Load "Is Reflect up ?" to T0 SLL T3, T9, $1 // T3 = Defense stat × 2 ANDI T1, T0, $0004 BEQ T1, R0, $0035AA20 // If Reflect is not up, jump to 0x35AA20 (LBU A0, $4DA5 (A0)) NOP SH T3, $0000 (A2) // Store Defense × 2 in 0x801E812A (0x35AA20) LBU A0, $4DA5 (A0) // Load Critical Hit to A0 BEQL A0, R0, $0035AA4C // If not a Critical Hit, jump to 0x35AA4C LHU T6, $002A (V0) LHU T4, $003A (V1) LUI A3, $843C ADDIU A3, A3, $4DC8 SH T4, $0000 (A2) LHU T5, $0038 (V0) BEQ R0, R0, $0035AAC0 // Jump to 0x35AAC0 (LHU A1, $0000 (A3)) SH T5, $0000 (A3) LHU T6, $002A (V0) (0x35AA4C) ADDIU A3, A3, $4DC8 BEQ R0, R0, $0035AAC0 // Jump to 0x35AAC0 (LHU A1, $0000 (A3)) SH T6, $0000 (A3) (0x35AA58) LUI V1, $843C LW V1, $523C (V1) LUI A2, $843C ADDIU A2, A2, $4DCA LHU T7, $0030 (V1) // Load Special stat to T7 LUI A0, $843C SH T7, $0000 (A2) LBU T8, $004E (V1) // Light Screen ANDI T9, T8, $0002 BEQ T9, R0, $0035AA88 SLL T1, T7, $1 // T1 = Special stat × 2 SH T1, $0000 (A2) // Store Special × 2 LBU A0, $4DA5 (A0) // Load Critical Hit to A0 BEQL A0, R0, $0035AAB4 // If not a Critical Hit, jump to 0x35AAB4 LHU T4, $0030 (V0) LHU T2, $003E (V1) LUI A3, $843C ADDIU A3, A3, $4DC8 SH T2, $0000 (A2) LHU T3, $003E (V0) BEQ R0, R0, $0035AAC0 // Jump to 0x35AAC0 (LHU A1, $0000 (A3)) SH T3, $0000 (A3) LHU T4, $0030 (V0) (0x35AAB4) LUI A3, $843C ADDIU A3, A3, $4DC8 SH T4, $0000 (A3) (0x35AAC0) LHU A1, $0000 (A3) // Load Attack stat to A1 ANDI T5, A1, $FF00 BEQL T5, R0, $0035AB00 // If Attack stat < 256, jump to 0x35AAFC (LBU T1, $0026 (V0)) LBU T1, $0026 (V0) // Load Level to T1 LHU V1, $0000 (A2) // Load Defense Stat to V1 SRL T7, A1, $2 // T7 = Attack stat >> 2 ANDI T9, T7, $FFFF ANDI T6, V1, $FF00 BEQ T6, R0, $0035AAFC // If Defense stat < 256, jump to 0x35AAFC (LBU T1, $0026 (V0)) SRL T8, V1, $2 // T8 = Defense stat >> 2 SH T7, $0000 (A3) // Store T7 to 0x801E8128 BNEZ T9, $0035AAFC // If T9 > 0, jump to 0x35AAFC SH T8, $0000 (A2) // Store T8 in 0x801E812A ADDIU T0, R0, $0001 SH T0, $0000 (A3) // Set 0x801E8128 to 1 (0x35AAFC) LBU T1, $0026 (V0) // Load Level to T1 LUI V1, $843C ADDIU V1, V1, $4DCC // V1 = 0x801E812C BEQ A0, R0, $0035AB18 // If not a Critical Hit, get out of the function SH T1, $0000 (V1) SLL T3, T1, $1 // T3 = Level × 2 SH T3, $0000 (V1) // Store Level × 2 in 0x801E812C JR RA
Explosion / Selfdestruct Defense halving
- 0x35AB20 - 0x35AB84 - Defense halved (Explosion, Selfdestruct)
LUI T6, $843C LW T6, $5238 (T6) ADDIU SP, SP, $FFE8 SW RA, $0014 (SP) LBU V0, $0045 (T6) // Load Move Effect ID ADDIU AT, R0, $0007 LUI A1, $843C BNE V0, AT, $0035AB60 // If Move Effect ≠ 0x7, jump to 0x35AB60 (Defense halved) ADDIU A1, A1, $4DCA LHU T7, $0000 (A1) // Load Defense ADDIU T0, R0, $0001 SRL T8, T7, $1 // T8 = Defense ÷ 2 ANDI T9, T8, $FFFF BNEZ T9, $0035AB60 // If remaining Defense > 0, jump to 0x35AB60 SH T8, $0000 (A1) SH T0, $0000 (A1) (0x35AB60) LUI A1, $843C ADDIU AT, R0, $001D BEQ V0, AT, $0035ABA8 // If Move Effect = 0x1D, jump to 0x35ABA8 (Attacks 2-5 Times) ADDIU A1, A1, $4DCA ADDIU AT, R0, $001E BEQ V0, AT, $0035ABA8 // If Move Effect = 0x1E, jump to 0x35ABA8 (Attacks 2-5 Times) (Unused, same as 0x1D) ADDIU AT, R0, $0026 BNE V0, AT, $0035AB94 // If Move Effect ≠ 0x26 (OHKO), jump to 0x35AB94 LUI T1, $843C JAL $0436FDBC
Damage Calculation
- 0x35AB94 - 0x35AC74 - Damage Calculation
LHU T1, $4DC6 (T1) // Load Move Power to T1 BNEZ T1, $0035ABA8 // If Move Power > 0, jump to 0x35ABA8 NOP BEQ R0, R0, $0035AC6C // Else jump to 0x35AC6C OR V0, R0, R0 (0x35ABA8) LUI T2, $843C LHU T2, $4DCC (T2) // Load Level to T2 (adjusted with Critical Hit) ADDIU AT, R0, $0005 LUI T6, $843C SLL T3, T2, $1 // T3 = Level × 2 DIV T3, AT MFLO T4 // T4 = Level × 2 ÷ 5 LHU T6, $4DC6 (T6) // Load Move Power to T6 ADDIU T5, T4, $0002 // T5 = (Level × 2 ÷ 5) + 2 LUI T8, $843C MULTU T5, T6 // Move Power × ((Level × 2 ÷ 5) + 2) LHU T8, $4DC8 (T8) // Load Attack in T8 LHU T0, $0000 (A1) // Load Defense in T0 LUI A0, $843C ADDIU A0, A0, $4DC4 LHU T3, $0000 (A0) // Load Previous Hit Damage to T3 ADDIU T5, R0, $03E4 // T5 = 996 ADDIU V0, R0, $0001 MFLO T7 // T7 = Move Power × ((Level × 2 ÷ 5) + 2) NOP NOP MULTU T7, T8 MFLO T9 // T9 = Move Power × Attack × ((Level × 2 ÷ 5) + 2) NOP DIV T9, T0 // Move Power × Attack × ((Level × 2 ÷ 5) + 2) ÷ Defense BNEZ T0, $0035AC1C // If Defense > 0, jump to 0x35AC1C NOP BREAK // Else OMG TRYING TO DIVIDE BY ZERO ABORT ABORT (0x35AC1C) ADDIU AT, R0, $FFFF BNE T0, AT, $0035AC34 // If Defense ≠ 0xFFFF, jump to 0x35AC34 LUI AT, $8000 BNE T9, AT, $0035AC34 // If current Damage > 0, jump to 0x35AC34 NOP BREAK // Else Breakpoint exception (Division by 0) MFLO T1 // T1 = Move Power × Attack × ((Level × 2 ÷ 5) + 2) ÷ Defense ADDIU AT, R0, $0032 NOP DIV T1, AT MFLO T2 // T2 = (Move Power × Attack × ((Level × 2 ÷ 5) + 2) ÷ Defense) ÷ 50 ADDU T4, T3, T2 ANDI V1, T4, $FFFF // V1 = ((Move Power × Attack × ((Level × 2 ÷ 5) + 2) ÷ Defense) ÷ 50) + Previous Hit Damage (Pin Missile...) SLTI AT, V1, $03E5 BNEZ AT, $0035AC64 // If current Damage < 997, jump to 0x35AC64 SH T4, $0000 (A0) SH T5, $0000 (A0) ANDI V1, T5, $FFFF // Else set V1 to 996 (0x35AC64) ADDIU T6, V1, $0002 // T6 = ((Move Power × Attack × ((Level × 2 ÷ 5) + 2) ÷ Defense) ÷ 50) + Previous Hit Damage + 2 SH T6, $0000 (A0) // Store Current Damage in 0x801E8126 LW RA, $0014 (SP) ADDIU SP, SP, $0018 JR RA
Move vs Substitute
- 0x35AC7C - Move vs Substitute
LUI V0, $843C LW V0, $523C (V0) ADDIU SP, SP, $FFE8 SW RA, $0014 (SP) LBU T6, $004D (V0) // Load Target's Substitute status to T6 LUI T8, $8439 ANDI T7, T6, $0010 BEQ T7, R0, $0035AF5C // If T6 & 0x10 == 0, branch to 0x35AF5C - Deal Damage to the Target's HP NOP LUI V0, $8439 LW V0, $0240 (V0) ADDIU AT, R0, $0014 LW T8, $0048 (V0) BNEL T8, AT, $0035AE08 LHU V1, $002C (V0) LHU T9, $002C (V0) LUI A0, $8439 SLL T0, T9, $2 ADDU A0, A0, T0 JAL $0430862C LW A0, $0010 (A0)
Deal Damage to the Target's HP
- 0x35AF5C - Deduce the Move Damage from the Target's HP
LW T8, $0288 (T8) // Load (0x801B35E8) to T8 LUI A2, $843C ADDIU A2, A2, $4DC4 BNEL T8, R0, $0035AF9C // If (0x801B35E8) ≠ 0, branch to 0x35AF9C LW RA, $0014 (SP) LHU V1, $000C (V0) // Load Target's Remaining HP to V1 LHU A0, $0000 (A2) // Load Move Damage to A2 OR A1, V1, R0 // A1 = Target's Remaining HP SLT AT, A0, V1 BEQ AT, R0, $0035AF90 // If Move Damage ≥ Target's Remaining HP, branch to 0x35AF90 SUBU T9, A1, A0 // T9 = Target's Remaining HP - Move Damage BEQ R0, R0, $0035AF98 // Branch to 0x35AF98 SH T9, $000C (V0) // Store T9 to Target's Remaining HP (0x35AF90) SH V1, $0000 (A2) // Store Target's Remaining HP to Move Damage SH R0, $000C (V0) // Store 0 to Target's Remaining HP (0x35AF98) LW RA, $0014 (SP) (0x35AF9C) ADDIU SP, SP, $0018 JR RA NOP
Move Success test
Accuracy and Evasion modifiers
- 0x35B050 - Accuracy and Evasion modifiers
LUI T6, $8439 LBU T6, $AC60 (T6) // Load Move User (Player 1 or Player 2) to T6 ADDIU AT, R0, $0001 LUI V0, $8439 BNE T6, AT, $0035B074 // If Move User ≠ Player 1, branch to 0x35B074 LUI A0, $843C LUI V0, $8439 BEQ R0, R0, $0035B078 // Branch to 0x35B078 ADDIU V0, V0, $ACD4 (0x35B074) ADDIU V0, V0, $ACB8 (0x35B078) LW A0, $5238 (A0) LUI T7, $843C LW T7, $523C (T7) LBU V1, $0060 (A0) // Load Accuracy Level to V1 LBU T0, $0048 (A0) // Load Move Accuracy to T0 LBU A1, $0061 (T7) // Load Target's Evasion Level to A1 SLL T9, V1, $1 // T9 = Accuracy Level << 1 ADDU A3, V0, T9 LBU T1, $FFFE (A3) // Load Accuracy numerator to T1 LBU T3, $FFFF (A3) // Load Accuracy denominator to T3 ADDIU T8, R0, $000E MULTU T0, T1 // Multiply Move Accuracy by Accuracy numerator SUBU A1, T8, A1 // A1 = 14 - Target's Evasion Level SLL T4, A1, $1 // T4 = Target's Evasion Level << 1 ADDU V1, V0, T4 MFLO T2 // T2 = Move Accuracy × Accuracy numerator NOP NOP DIV T2, T3 MFLO A2 // A2 = Move Accuracy × (Accuracy numerator ÷ Accuracy denominator) BNEZ T3, $0035B0D4 NOP BREAK // No division by 0 (0x35B0D4) ADDIU AT, R0, $FFFF BNE T3, AT, $0035B0EC LUI AT, $8000 BNE T2, AT, $0035B0EC NOP BREAK // No negative Accuracy (0x35B0EC) BNEL A2, R0, $0035B0FC // If Adjusted Accuracy ≠ 0, branch to 0x35B0FC LBU T5, $FFFE (V1) // Load Evasion numerator to T5 ADDIU A2, R0, $0001 // Else minimum Adjusted Accuracy is 1 LBU T5, $FFFE (V1) // Load Evasion numerator to T5 (0x35B0FC) LBU T7, $FFFF (V1) // Load Evasion denominator to T7 MULTU A2, T5 MFLO T6 // T6 = Adjusted Accuracy × Evasion numerator NOP NOP DIV T6, T7 MFLO A2 // A2 = Adjusted Accuracy × (Evasion numerator ÷ Evasion denominator) BNEZ T7, $0035B124 NOP BREAK // No division by 0 (0x35B124) ADDIU AT, R0, $FFFF BNE T7, AT, $0035B13C LUI AT, $8000 BNE T6, AT, $0035B13C NOP BREAK // No negative Accuracy (0x35B13C) BNEL A2, R0, $0035B14C // If Adjusted Accuracy ≠ 0, branch to 0x35B14C SLTI AT, A2, $0100 ADDIU A2, R0, $0001 // Else minimum Adjusted Accuracy is 1/255 SLTI AT, A2, $0100 (0x35B14C) BNEZ AT, $0035B158 // If Adjusted Accuracy < 0x100, branch to 0x35B158 NOP ADDIU A2, R0, $00FF // Else set the Adjusted Accuracy to 0xFF (0x35B158) JR RA SB A2, $0048 (A0) // Store Adjusted Accuracy in (0x80287B14)
Hyper Beam
- 0x35B18C - Hyper Beam
LUI V1, $843C LW V1, $5238 (V1) ADDIU SP, SP, $FFE8 SW RA, $0014 (SP) LBU A3, $0045 (V1) // Load Move Effect to A3 ADDIU AT, R0, $0050 LUI T1, $843C BNE A3, AT, $0035B1E8 // If Move Effect ≠ 0x50 (Hyper Beam), branch to 0x35B1E8 OR V0, A3, R0 // Copy Move Effect to V0 LBU A0, $004D (V1) LUI T7, $8439 ANDI T6, A0, $0020 BNEL T6, R0, $0035B1EC ADDIU V1, R0, $0008 LBU T7, $AC60 (T7) ADDIU AT, R0, $0001 ORI T8, A0, $0020 BNE T7, AT, $0035B1E8 LUI T9, $843C SB T8, $004D (V1) LW T9, $5238 (T9) LBU A3, $0045 (T9) OR V0, A3, R0
Dream Eater
- 0x35B1E8 - Dream Eater
ADDIU V1, R0, $0008 (0x35B1EC) BNE V1, V0, $0035B218 // If Move Effect ≠ 0x08 (Dream Eater), branch to 0x35B218 LUI T4, $843C LW T1, $523C (T1) LBU T2, $0015 (T1) // Load Target Status to T2 ANDI T3, T2, $0007 BNEZ T3, $0035B218 // If the target is Asleep, branch to 0x35B218 NOP JAL $043708A0 // Else skip the Damage Calculation NOP BEQ R0, R0, $0035B390 LW RA, $0014 (SP)
Swift, HP Drain, Substitute
- 0x35B218 - Swift, Absorb, Mega Drain, Leech Life, Dream Eater
LW T4, $523C (T4) ADDIU T0, R0, $0011 LBU T5, $004D (T4) // Load Target's Substitute to T5 ANDI T6, T5, $0010 BEQ T6, R0, $0035B280 // If the Target has no Substitute, branch to 0x35B280 NOP BEQ T0, V0, $0035B38C // If Move Effect == 0x11 (Swift), skip the Accuracy check ADDIU AT, R0, $0003 BEQ V0, AT, $0035B270 // If Move Effect == 0x03 (Absorb, Mega Drain, Leech Life), branch to 0x35B270 NOP BEQ V1, V0, $0035B270 // If Move Effect == 0x08 (Dream Eater), branch to 0x35B270 LUI T7, $8439 LBU T7, $AC60 (T7) ADDIU AT, R0, $0001 ANDI A0, A3, $00FF BNE T7, AT, $0035B280 LUI A1, $8439 ADDIU A1, A1, $ACB0 JAL $0436FD54 ADDIU A2, R0, $0005 BEQ V0, R0, $0035B280 NOP (0x35B270) JAL $043708A0 // Skip the Damage Calculation (HP Drain Moves can't damage a Substitute) NOP BEQ R0, R0, $0035B390 LW RA, $0014 (SP)
Swift, Fly / Dig status
- 0x35B280 - Skips the Damage calculation if (0x80288538) & 0x40 ≠ 0, sets AT to 1 if Move Effect < 0x12, and another Swift check
LUI A0, $843C LW A0, $523C (A0) LUI V1, $843C LW V1, $5238 (V1) LBU T8, $004C (A0) // Load (0x80288538) to T8 ADDIU T0, R0, $0011 LBU V0, $0045 (V1) // Load Move Effect to V0 ANDI T9, T8, $0040 BEQ T9, R0, $0035B2C0 // If T8 & 0x40 == 0 (Fly / Dig status), branch to 0x35B2C0 SLTI AT, V0, $0012 // Set AT to 1 if Move Effect < 0x12 BEQL T0, V0, $0035B390 // ElseIf Move Effect == Swift, skip the Accuracy check LW RA, $0014 (SP) JAL $043708A0 // Else skip the Damage Calculation NOP BEQ R0, R0, $0035B390 LW RA, $0014 (SP)
Stat reduction, Conversion, Haze, Light Screen, Reflect
- 0x35B2C0 - Handles other Moves Effects
BNEZ AT, $0035B2CC // If Move Effect < 0x12, branch to 0x35B2CC SLTI AT, V0, $001A // Set AT to 1 if Move Effect < 0x1A BNEZ AT, $0035B2E0 // If Effect == Lower stat down 1 level, or Effect == Conversion, or Effect == Haze, branch to 0x35B2E0 (0x35B2CC) SLTI AT, V0, $003A // Set AT to 1 if Move Effect < 0x3A BNEZ AT, $0035B300 // If Move Effect < 0x3A, branch to 0x35B300 SLTI AT, V0, $0042 // Set AT to 1 if Move Effect < 0x42 BEQL AT, R0, $0035B304 // If Effect ≠ Lower stat down 2 levels, and Effect ≠ Light Screen, and Effect ≠ Reflect, branch to 0x35B304 LBU T3, $004D (V1) // Load (0x80287B18) to T3 (0x35B2E0) LBU T1, $004D (A0) // Load (0x80288538) to T1 ANDI T2, T1, $0002 BEQL T2, R0, $0035B304 // If (0x80288538) & 2 == 0, branch to 0x35B304 LBU T3, $004D (V1) // Load (0x80287B18) to T3 JAL $043708A0 NOP BEQ R0, R0, $0035B390 LW RA, $0014 (SP)
Other Moves
- 0x35B300 - Other Moves handling
LBU T3, $004D (V1) // Load (0x80287B18) to T3 (0x35B304) LUI T5, $8439 ANDI T4, T3, $0001 BNEL T4, R0, $0035B390 // If (0x80287B18) & 1 ≠ 0 , skip the Accuracy check LW RA, $0014 (SP) LBU T5, $AC60 (T5) // Load (0x801ADFC0) to T5 ADDIU AT, R0, $0001 BNE T5, AT, $0035B32C // If (0x801ADFC0) ≠ 1, branch to 0x35B32C NOP BEQ T0, V0, $0035B334 // ElseIf Move Effect == Swift, branch to 0x35B334 NOP (0x35B32C) JAL $04370790 // Jump to 0x35B050 - Accuracy and Evasion modifiers NOP (0x35B334) JAL $0436F788 NOP
Move Accuracy check
- 0x35B33C - 0x35B394 - Move Accuracy check
LUI A0, $843C ADDIU A0, A0, $4DA2 ANDI V1, V0, $00FF ADDIU AT, R0, $00FF BNE V1, AT, $0035B36C // If (Pseudo-Random Number & 0xFF) ≠ 0xFF, jump to 0x35B36C SB V0, $0000 (A0) // Store 1-byte Pseudo-Random Number to (0x801E8102) JAL $0436F788 // Else branch to 0x35A4EC (new PRNG call, it avoids the 1/256 miss from RBY) NOP LUI A0, $843C ADDIU A0, A0, $4DA2 SB V0, $0000 (A0) ANDI V1, V0, $00FF (0x35B36C) LUI T6, $843C LW T6, $5238 (T6) LBU T7, $0048 (T6) // Load Adjusted Accuracy to T7 SLT AT, V1, T7 // Set AT to 1 if PRN < Adjusted Accuracy BNEL AT, R0, $0035B390 // If the Move hits, jump to 0x35B390 LW RA, $0014 (SP) JAL $043708A0 NOP (0x35B38C) LW RA, $0014 (SP) (0x35B390) ADDIU SP, SP, $0018 JR RA
Applies BURN to ATTACK stat
0x35B404
- Checks if the target is burned, then halves its ATK.
0x35B404: LBU T6, 0x06A1 (A0) ;T6 = status_flags 0x35B408: ADDIU V0, A0, 0x068C 0x35B40C: ANDI T7, T6, 0x0010 0x35B410: BEQ T7, R0, 0x35B434 ;if(status_flags & burn == 0), exit this function 0x35B414: NOP 0x35B418: LHU T8, 0x002A (V0) ;T8 = ATK 0x35B41C: ADDIU T1, R0, 0x0001 ;T1 = 1 0x35B420: SRL T9, T8, 0x1 ;T9 = ATK >> 1 0x35B424: ANDI T0, T9, 0xFFFF ;T0 = T9 & 0xFFFF 0x35B428: BNEZ T0, 0x35B434 ;if(new_ATK ≠ 0), branch to 0x35B434 0x35B42C: SH T9, 0x002A (V0) ;Store ATK >> 1 as the new ATK 0x35B430: SH T1, 0x002A (V0) ;Store 1 as the new ATK 0x35B434: JR RA 0x35B438: NOP
Move Data loading
- 0x35B740 - 0x35B800 - Loads the Move data from the array at 0x73700
LUI V1, $843C ADDIU V1, V1, $5238 LW V0, $0000 (V1) ADDIU A1, R0, $0006 // Length of a Move array LUI A0, $8007 LBU T6, $005A (V0) ADDIU A0, A0, $2B00 MULTU T6, A1 MFLO T7 ADDU T8, A0, T7 // Pointer to the Move ID LBU T9, $FFFA (T8) // Load Move ID SB T9, $0044 (V0) // Store Move ID in 0x80287B10 LW V0, $0000 (V1) LBU T0, $005A (V0) MULTU T0, A1 MFLO T1 ADDU T2, A0, T1 // Pointer to the Move Effect LBU T3, $FFFB (T2) // Load Move Effect SB T3, $0045 (V0) // Store Move Effect in 0x80287B11 LW V0, $0000 (V1) LBU T4, $005A (V0) MULTU T4, A1 MFLO T5 ADDU T6, A0, T5 // Pointer to the Move Power LBU T7, $FFFC (T6) // Load Move Power SB T7, $0046 (V0) // Store Move Power in 0x80287B12 LW V0, $0000 (V1) LBU T8, $005A (V0) MULTU T8, A1 MFLO T9 ADDU T0, A0, T9 // Pointer to the Move Type LBU T1, $FFFD (T0) // Load Move Type SB T1, $0047 (V0) // Store Move Type in 0x80287B13 LW V0, $0000 (V1) LBU T2, $005A (V0) MULTU T2, A1 MFLO T3 ADDU T4, A0, T3 // Pointer to the Move Accuracy LBU T5, $FFFE (T4) // Load Move Accuracy SB T5, $0048 (V0) // Store Move Accuracy in 0x80287B14 LW V0, $0000 (V1) LBU T6, $005A (V0) MULTU T6, A1 MFLO T7 ADDU T8, A0, T7 // Pointer to the Move PP LBU T9, $FFFF (T8) // Load Move PP JR RA SB T9, $0049 (V0) // Store Move PP in 0x80287B15
Critical Hit and OHKO message
- 0x35B940 - Critical Hit and OHKO message
LUI T6, $8439 LW T6, $0240 (T6) ADDIU SP, SP, $FFE0 SW RA, $0014 (SP) LHU V0, $002C (T6) // V0 = (0x80288DBC) (P2 ?) LUI T8, $8439 LUI V1, $843C SLTIU V0, V0, $0001 // If V0 < 1, set V0 to 1 SLL T7, V0, $2 // T7 = V0 << 2 ADDU T8, T8, T7 LW T8, $0010 (T8) LBU V1, $4DA5 (V1) // Load Critical Hit / OHKO flag to V1 ADDIU AT, R0, $0001 ADDIU T9, T8, $068C BEQ V1, AT, $0035B994 // If there's a Critical Hit, branch to 0x35B994 SW T9, $001C (SP) ADDIU AT, R0, $0002 BEQ V1, AT, $0035B9C4 // ElseIf the move is a OHKO, branch to 0x35B9C4 LUI A0, $8439 BEQ R0, R0, $0035B9F0 // Else branch to 0x35B9F0 LW T4, $001C (SP)
- 0x35B994 - Critical Hit message
LUI A0, $8439 LW A0, $01A0 (A0) ADDIU A1, R0, $001D JAL $043179F4 ADDIU A0, A0, $0148 LUI T1, $8439 LW T1, $0240 (T1) ADDIU T0, R0, $0002 LUI V1, $843C SB T0, $001A (T1) BEQ R0, R0, $0035B9EC // Branch to 0x35B9EC LBU V1, $4DA5 (V1)
- 0x35B9C4 - OHKO message
LW A0, $01A0 (A0) ADDIU A1, R0, $001E JAL $043179F4 ADDIU A0, A0, $0148 LUI T3, $8439 LW T3, $0240 (T3) ADDIU T2, R0, $0002 LUI V1, $843C SB T2, $001A (T3) LBU V1, $4DA5 (V1) (0x35B9EC) LW T4, $001C (SP) (0x35B9F0) LUI AT, $843C SB V1, $005B (T4) LW RA, $0014 (SP) SB R0, $4DA5 (AT) // Set Critical Hit and OHKO flag to 0 ADDIU SP, SP, $0020 JR RA NOP
OHKOs and Fixed Damage Moves
- 0x35BA0C - OHKO and Fixed Damage Moves
LUI V1, $843C LW V1, $5238 (V1) ADDIU SP, SP, $FFE0 SW RA, $001C (SP) SW S0, $0018 (SP) LBU V0, $0045 (V1) // Load Move Effect in V0 ADDIU AT, R0, $0026 BEQ V0, AT, $0035BA4C // If Move Effect == OHKO, branch to 0x35BA4C ADDIU AT, R0, $0028 BEQ V0, AT, $0035BA58 // ElseIf Move Effect == Super Fang, branch to 0x35BA58 LUI T6, $843C ADDIU AT, R0, $0029 BEQL V0, AT, $0035BA98 // ElseIf Move Effect == (Dragon Rage, Sonicboom, Psywave, Night Shade, Seismic Toss), branch to 0x35BA98 LBU V0, $0044 (V1) // Load Move Effect in V0 BEQ R0, R0, $0035BB18 // Else branch to 0x35BB18 - Copy Current Damage LBU T1, $0046 (V1) // Load Move Power to T1 (0x35BA4C) LUI V1, $843C BEQ R0, R0, $0035BB68 // Branch to 0x35BB68 LHU V1, $4DC4 (V1) (0x35BA58) LW T6, $523C (T6) LUI A0, $843C ADDIU A0, A0, $4DC4 LHU T7, $000C (T6) // Load Target's HP to T7 ADDIU T9, R0, $0001 BGEZ T7, $0035BA7C // If Target's HP ≥ 0, branch to 0x35BA7C SRA T8, T7, $1 // T8 = Target's HP >> 1 ADDIU AT, T7, $0001 SRA T8, AT, $1 (0x35BA7C) ANDI V1, T8, $FFFF BNEZ V1, $0035BB68 SH T8, $0000 (A0) SH T9, $0000 (A0) BEQ R0, R0, $0035BB68 // Branch to 0x35BB68 ANDI V1, T9, $FFFF LBU V0, $0044 (V1) (0x35BA98) ADDIU AT, R0, $0031 BEQ V0, AT, $0035BAC4 ADDIU AT, R0, $0045 BEQ V0, AT, $0035BABC ADDIU AT, R0, $0052 BEQ V0, AT, $0035BACC ADDIU AT, R0, $0065 BNEL V0, AT, $0035BAD8 LBU S0, $0026 (V1) (0x35BABC) BEQ R0, R0, $0035BB00 LBU S0, $0026 (V1) (0x35BAC4) BEQ R0, R0, $0035BB00 ADDIU S0, R0, $0014 (0x35BACC) BEQ R0, R0, $0035BB00 ADDIU S0, R0, $0028 LBU S0, $0026 (V1) (0x35BAD8) SRA T0, S0, $1 ADDU S0, T0, S0 JAL $0436F6D8 NOP
Copy Current Damage
- 0x35BB14 - Copy Current Damage to (0x801E8100)
LBU T1, $0046 (V1) // Load Move Power to T1 (0x35BB18) BEQL T1, R0, $0035BB7C // If Move Power == 0, branch to 0x35BB7C LW RA, $001C (SP) LBU T2, $004C (V1) // Load (0x80287B18) to T2 LUI A0, $843C LUI A1, $843C ANDI T3, T2, $0004 BEQ T3, R0, $0035BB58 // If (0x80287B18) & 4 == 0, branch to 0x35BB58 ADDIU A0, A0, $4DC4 LUI A0, $843C ADDIU A0, A0, $4DC4 ADDIU A1, A1, $4DA0 LHU T4, $0000 (A1) LHU V1, $0000 (A0) ADDU T5, T4, V1 BEQ R0, R0, $0035BB68 // Branch to 0x35BB68 SH T5, $0000 (A1) (0x35BB58) LHU V1, $0000 (A0) // Load Current Damage to A1 LUI A1, $843C ADDIU A1, A1, $4DA0 SH V1, $0000 (A1) // Store Current Damage to (0x801E8100) (0x35BB68) BEQL V1, R0, $0035BB7C // If Current Damage == 0, branch to 0x35BB7C LW RA, $001C (SP) JAL $043703BC NOP LW RA, $001C (SP) (0x35BB7C) LW S0, $0018 (SP) ADDIU SP, SP, $0020 JR RA NOP
Same Type Attack Bonus, Weakness, Resistance
- 0x35C234 - 0x35C3C4 - Loads Move ID, Move Type, Defending Pokémon Types, Weaknesses and Resistances
ADDIU SP, SP, $FFF8 LUI A2, $843C LW A2, $5238 (A2) SW S0, $0004 (SP) LUI T0, $843C LUI T6, $8439 LW T0, $523C (T0) LBU T6, $AC60 (T6) ;T6 = (T6+0xAC60) ADDIU AT, R0, $0001 ;AT = 1 ADDIU V0, R0, $0003 ;V0 = 3 (0x35C25C) LBU A1, $001C (A2) ;A1 = Attacking Pokémon Type 1 LBU A3, $001D (A2) ;A3 = Attacking Pokémon Type 2 LBU T1, $0047 (A2) ;T1 = Move Type LBU V1, $001C (T0) ;V1 = Defending Pokémon Type 1 BNE T6, AT, $0035C284 LBU A0, $001D (T0) ;A0 = Defending Pokémon Type 2 LBU T7, $0044 (A2) ;T7 = Move ID ADDIU AT, R0, $00A5 BEQL T7, AT, $0035C3F4 ;If Move is Struggle, jump to 0x35C3F4 LW S0, $0004 (SP) BEQ A1, T1, $0035C290 ;If Move Type = Attacking Pokémon Type 1, jump to 0x35C290 OR A2, T1, R0 ;Copy Move Type to A2 BNE A3, T1, $0035C2BC ;If Move Type ≠ Attacking Pokémon Type 2, jump to 0x35C2BC (0x35C290) LUI T1, $843C ADDIU T1, T1, $4DC4 LUI T2, $843C LHU A1, $0000 (T1) ;A1 = (T1) ADDIU T2, T2, $4DB3 LBU T6, $0000 (T2) ;T6 = ? SRA T8, A1, $1 ADDU T9, A1, T8 ORI T7, T6, $0080 SH T9, $0000 (T1) SB T7, $0000 (T2) (0x35C2BC) LUI A1, $8439 ADDIU A3, A1, $ACF0 ;A3 = 0x801AE050 LBU T8, $0000 (A3) ;T8 = Next value from Weaknesses and Resistances array LUI T1, $843C LUI T2, $843C ADDIU T3, R0, $00FF ADDIU T2, T2, $4DB3 BEQ T3, T8, $0035C3A8 ADDIU T1, T1, $4DC4 LUI T9, $8439 ADDIU T9, T9, $ACF0 ;T9 = 0x801AE050 LUI T5, $843C ADDIU T5, T5, $4DA4 LBU A1, $0000 (T9) ADDIU S0, R0, $0001 ADDIU T4, R0, $000A (0x35C2FC) BNEL A2, A1, $0035C39C ;If Move Type ≠ array value, jump to 0x35C39C LBU A1, $0003 (A3) ;Next value in array stored in A1 at the same time as jump to 0x35C39C LBU A1, $0001 (A3) ;Load next Weakness / Resistance BEQL V1, A1, $0035C31C ;If A1 = Defending Pokémon Type 1, jump to 0x35C31C LBU T0, $0002 (A3) BNEL A0, A1, $0035C39C ;If A1 ≠ Defending Pokémon Type 2, jump to 0x35C39C LBU A1, $0003 (A3) LBU T0, $0002 (A3) ;T0 = Multiplier (0x35C31C) LHU A1, $0000 (T1) BEQ T0, R0, $0035C348 ;If Multiplier == 0, branch to 0x35C348 NOP SLTI AT, T0, $000B BNEL AT, R0, $0035C344 ;If Multiplier ≥ 11, branch to 0x35C344 ADDIU V0, V0, $FFFF ;V0-- ADDIU V0, V0, $0001 ;V0++ BEQ R0, R0, $0035C348 ;Branch to 0x35C348 ANDI V0, V0, $00FF ;V0 &= 0xFF ADDIU V0, V0, $FFFF ;V0-- (0x35C344) ANDI V0, V0, $00FF ;V0 &= 0xFF (0x35C348) MULTU A1, T0 MFLO T6 ;T6 = A1 × Multiplier NOP NOP DIV T6, T4 MFLO T7 ;T7 = T6 ÷ T4 ANDI T8, T7, $FFFF ;T8 = T7 - 1 BNEZ T4, $0035C370 ;If T4 ≠ 0, branch to 0x35C370 NOP BREAK ;No division by zero (0x35C370) ADDIU AT, R0, $FFFF BNE T4, AT, $0035C388 LUI AT, $8000 BNE T6, AT, $0035C388 NOP BREAK SH T7, $0000 (T1) BNEL T8, R0, $0035C39C LBU A1, $0003 (A3) SB S0, $0000 (T5) LBU A1, $0003 (A3) (0x35C39C) ADDIU A3, A3, $0003 BNE T3, A1, $0035C2FC ;Going through the array... NOP ADDIU T9, V0, $FFFF SLTIU AT, T9, $0005 BEQ AT, R0, $0035C3F0 SLL T9, T9, $2 LUI AT, $8439 ADDU AT, AT, T9 LW T9, $DC50 (AT) JR T9
Counter
- 0x35C3F8 - Counter
ADDIU SP, SP, $0008 LUI T6, $843C LW T6, $5238 (T6) ADDIU SP, SP, $FFE8 SW RA, $0014 (SP) LBU T7, $005A (T6) // Load Move ID in T7 ADDIU V1, R0, $0044 LUI A0, $843C BEQ V1, T7, $0035C428 // If it is Counter, jump to 0x35C428 ADDIU A0, A0, $4DA4 BEQ R0, R0, $0035C4C8 // Else jump to 0x35C4C8 ADDIU V0, R0, $0001 // Set V0 to 1 (0x35C428) ADDIU T8, R0, $0001 SB T8, $0000 (A0) // Set Counter Flag to 1 LUI V0, $843C LW V0, $523C (V0) LBU T9, $005A (V0) // Load Move ID of the last move used in T9 BNEL V1, T9, $0035C450 // If the last move used is not Counter, jump to 0x35C450 LBU T0, $0046 (V0) BEQ R0, R0, $0035C4C8 // Else get out of this function OR V0, R0, R0 LBU T0, $0046 (V0) (0x35C450) BNEL T0, R0, $0035C464 LBU V1, $0047 (V0) BEQ R0, R0, $0035C4C8 OR V0, R0, R0 LBU V1, $0047 (V0) // Load type of the last move used (0x35C464) ADDIU AT, R0, $0001 BEQ V1, R0, $0035C478 // Is it Normal type ? NOP BNE V1, AT, $0035C4C8 // Is it Fighting type ? OR V0, R0, R0 (0x35C478) LUI V1, $843C ADDIU V1, V1, $4DC4 LHU V0, $0000 (V1) // Load damage done by the last move used ORI AT, R0, $8000 BNEZ V0, $0035C498 // If the last move dealt damage, jump to 0x35C498 SLT AT, V0, AT BEQ R0, R0, $0035C4C8 // Else get out of this function OR V0, R0, R0 (0x35C498) BNEZ AT, $0035C4AC SLL T2, V0, $1 // Multiply damage ×2 ORI T1, R0, $FFFF BEQ R0, R0, $0035C4B0 SH T1, $0000 (V1) SH T2, $0000 (V1) SB R0, $0000 (A0) LUI AT, $843C JAL $043708CC SB R0, $4DA5 (AT) BEQ R0, R0, $0035C4C8 OR V0, R0, R0 (0x35C4C8) LW RA, $0014 (SP) ADDIU SP, SP, $0018 JR RA
¡Un Golpe Crítico!
- 0x35C4D8 - Determines the Critical Hit Ratio.
No Focus Energy: (Base Speed + 76) >> 2 W/ Focus Energy: (Base Speed + 76) >> 2 << 2 + 160 >> 1
LUI A0, $8439 LBU A0, $AC60 (A0) ADDIU SP, SP, $FFE0 ADDIU A1, R0, $0001 LUI AT, $843C SW RA, $0014 (SP) BNE A1, A0, $0035C52C // If A0 ≠ 1, jump to 0x35C52C SB R0, $4DA5 (AT) LUI V0, $843C LW V0, $5238 (V0) LUI V1, $8007 LBU T6, $000B (V0) SLL T7, T6, $2 SUBU T7, T7, T6 SLL T7, T7, $3 SUBU T7, T7, T6 ADDU V1, V1, T7 LBU V1, $0F8D (V1) // Load Base Speed to V1 ADDIU V1, V1, $004C // CH Ratio = Base Speed + 76 BEQ R0, R0, $0035C558 // Jump to 0x35C558 SRA V1, V1, $2 // CH Ratio ÷ 4 (0x35C52C) LUI V0, $843C LW V0, $5238 (V0) LUI V1, $8007 LBU T8, $000B (V0) SLL T9, T8, $2 SUBU T9, T9, T8 SLL T9, T9, $3 SUBU T9, T9, T8 ADDU V1, V1, T9 LBU V1, $0F8D (V1) // Load CH Ratio to V1 SRA V1, V1, $1 // CH ratio ÷ 2 (0x35C558) LBU T0, $0046 (V0) BNEZ T0, $0035C56C NOP BEQ R0, R0, $0035C67C OR V0, R0, R0 (0x35C56C) BNE A1, A0, $0035C5C0 ADDIU A2, R0, $0004 LBU T1, $004D (V0) // Load CH Rate multiplier in T1 LUI A1, $8439 ADDIU A1, A1, $AE4C ANDI T2, T1, $0004 BEQ T2, R0, $0035C598 // If Focus Energy is not active, jump to 0x35C598 ADDIU A2, R0, $0004 // Size of the array (0x37570C) to be checked at 0x35A614 SLL V1, V1, $2 // Adjusted CH Ratio × 4 (shift left logical) BEQ R0, R0, $0035C59C // Jump to 0x35C59C ADDIU V1, V1, $00A0 // Adjusted CH Ratio + 160 (0x35C598) SLL V1, V1, $1 // CH Ratio ×2 (shift left logical) (0x35C59C) LBU A0, $0044 (V0) // Load Move ID in A0 JAL $0436FD54 // Jump to 0x35A614 (Checks if the Move has a High Critical Hit Rate)
Move Power
- 0x35C558 - Loads Move Power and ?
LBU T0, $0046 (V0) // Loads Move Power to T0 BNEZ T0, $0035C56C // If Move Power > 0, jump to 0x35C56C NOP BEQ R0, R0, $0035C67C // Else jump to 0x35C67C OR V0, R0, R0 (0x35C56C) BNE A1, A0, $0035C5C0 ADDIU A2, R0, $0004 LBU T1, $004D (V0) LUI A1, $8439 ADDIU A1, A1, $AE4C ANDI T2, T1, $0004 BEQ T2, R0, $0035C598 ADDIU A2, R0, $0004 SLL V1, V1, $2 BEQ R0, R0, $0035C59C ADDIU V1, V1, $00A0 SLL V1, V1, $1 LBU A0, $0044 (V0) // Loads Move ID to A0 JAL $0436FD54
High Critical Hit Moves
- 0x35C5A4 - High Critical Hit Moves
SW V1, $0018 (SP) BEQ V0, R0, $0035C5B8 // If the move is not a High Critical Rate Move, jump to 0x35C5B8 LW V1, $0018 (SP) // Load Adjusted CH Ratio in V1 BEQ R0, R0, $0035C624 // Jump to 0x35C624 SLL V1, V1, $2 // Adjusted CH Ratio × 4 (0x35C5B8) BEQ R0, R0, $0035C624 SRA V1, V1, $1 // Adjusted CH Ratio ÷ 2
- 0x35C5C0 - ?
LBU T3, $004D (V0) LUI A1, $8439 ADDIU A1, A1, $AE4C ANDI T4, T3, $0004 BEQL T4, R0, $0035C5E4 // Jump to 0x35C5E4 if T4 & T3 ≠ 4 SLL V1, V1, $1 // CH Ratio << 1 BEQ R0, R0, $0035C5F4 SRA V1, V1, $1 // CH Ratio >> 1 SLL V1, V1, $1 // CH Ratio << 1 SLTI AT, V1, $0100 BNEL AT, R0, $0035C5F8 LBU A0, $0044 (V0) ADDIU V1, R0, $00FF LBU A0, $0044 (V0) JAL $0436FD54
- 0x35C5FC - Caps CH Ratio at 255
SW V1, $0018 (SP) BEQ V0, R0, $0035C620 LW V1, $0018 (SP) SLL V1, V1, $2 SLTI AT, V1, $0100 BNEL AT, R0, $0035C628 SLTI AT, V1, $0100 BEQ R0, R0, $0035C624 ADDIU V1, R0, $00FF SRA V1, V1, $1 (0x35C624) SLTI AT, V1, $0100 BNEZ AT, $0035C634 // If Adjusted CH Ratio ÷ 2 < 256, jump to 0x35C634 NOP ADDIU V1, R0, $00FF // If Adjusted CH Ratio ÷ 2 ≥ 256, set it to 255 (0x35C634) BGTZ V1, $0035C640 // If Adjusted CH Ratio > 0, jump to 0x35C640 NOP ADDIU V1, R0, $0001 // Adjusted CH Ratio is at least 1/256 (0x35C640) JAL $0436F6D8
Critical Hit check
- 0x35C648 - Compares Pseudo-Random Number and Adjusted Critical Hit Ratio, sets CH flag if it is a Critical Hit
LW V1, $0018 (SP) // Load Adjusted Critical Hit Ratio LUI A0, $843C ANDI T5, V0, $00FF // Copies 1-byte PRN from previous PRNG call to T5 ADDIU A0, A0, $4DA2 SLT AT, T5, V1 BNEZ AT, $0035C66C // If PRN < Adjusted CH Ratio, jump to 0x35C66C SB V0, $0000 (A0) // Store 1-byte PRN to (0x801E8101) BEQ R0, R0, $0035C67C // Jump to 0x35C67C OR V0, R0, R0 // Set V0 to 0 (0x35C66C) ADDIU T6, R0, $0001 // Set T6 to 1 LUI AT, $843C SB T6, $4DA5 (AT) // Set CH flag at (0x801E8104) to 1 ADDIU V0, R0, $0001 // Set V0 to 1 (0x35C67C) LW RA, $0014 (SP) ADDIU SP, SP, $0020 JR RA // Onto damage calculation...
Confusion check
- 0x35CA94 - Makes a confused Pokémon attack itself if Pseudo-Random Number ≥ 0x80
LUI A0, $843C ANDI T7, V0, $00FF ADDIU A0, A0, $4DA2 SLTI AT, T7, $0080 BNEZ AT, $0035CB90 ;if(PRN < 0x80), get out SB V0, $0000 (A0) JAL $043180AC NOP
0x35CA54
LUI T9, $8439 LW T9, $0240 (T9) ADDIU T8, R0, $0014 LUI A0, $8439 SW T8, $0048 (T9) LW V1, $0000 (S0) ADDIU A1, R0, $000E LBU T2, $004C (V1) ANDI T3, T2, $0080 SB T3, $004C (V1) LW A0, $01A0 (A0) JAL $043179F4 ADDIU A0, A0, $0148 LUI V0, $843C LW V0, $523C (V0) LW T4, $0000 (S0) LUI AT, $843C LHU T5, $002C (V0) ADDIU T8, R0, $0028 SH T5, $0026 (SP) LHU T6, $002C (T4) SH T6, $002C (V0) LW V1, $0000 (S0) LBU T7, $0045 (V1) SB T7, $0025 (SP) SB R0, $0045 (V1) SB R0, $4DA5 (AT) LW T9, $0000 (S0) SB T8, $0046 (T9) LW T2, $0000 (S0) JAL $043700F0 SB R0, $0047 (T2) JAL $04370260 NOP LBU T3, $0025 (SP) LW T5, $0000 (S0) LUI T6, $843C LUI T7, $843C SB T3, $0045 (T5) LW T6, $523C (T6) LHU T4, $0026 (SP) LUI AT, $843C SH T4, $002C (T6) LW V1, $0000 (S0) LW T7, $523C (T7) SW V1, $002C (SP) SW T7, $0000 (S0) JAL $043703BC SW V1, $523C (AT) LW T8, $0000 (S0) LW V1, $002C (SP) LUI AT, $843C SW T8, $523C (AT) BEQ R0, R0, $0035CC94 SW V1, $0000 (S0) LW V1, $0000 (S0) LBU V0, $0057 (V1) BEQL V0, R0, $0035CC10 LBU T9, $0015 (V1) LBU T9, $005A (V1) BNEL T9, V0, $0035CC10 LBU T9, $0015 (V1) LBU T2, $004C (V1) LUI A1, $8007 ADDIU A0, R0, $001D ANDI T3, T2, $FFEF SB T3, $004C (V1) LW T5, $0000 (S0) LBU T4, $005A (T5) SLL T6, T4, $2 SUBU T6, T6, T4 SLL T6, T6, $2 ADDU A1, A1, T6 JAL $0002D5D4 LW A1, $2330 (A1)
Full Paralysis check
- 0x35CC24 - Prevents a Paralyzed Pokémon from attacking if Pseudo-Random Number < 0x3F
LUI A0, $843C ANDI T3, V0, $00FF ADDIU A0, A0, $4DA2 SLTI AT, T3, $003F ;63/256 BEQ AT, R0, $0035CCAC ;if(PRN ≥ 0x3F), get out of this function SB V0, $0000 (A0) LUI T5, $8439 LW T5, $0240 (T5) LUI A0, $8439 LHU T4, $002C (T5) SLL T6, T4, $2 ;T6 = Status flag × 4 ADDU A0, A0, T6 ;A0 = Pointer to Fully Paralyzed text JAL $0430862C ;Display Fully Paralyzed text
Two Turn Move
- 0x35CFE8 - Charging Move
LBU V0, $0045 (V1) // Loads P2's Move Effect ADDIU AT, R0, $0027 LUI T5, $8439 BEQ V0, AT, $0035D004 // If charging attack (e.g. Razor Wind, Fly), jump to 0x35D004 ADDIU AT, R0, $002B BNE V0, AT, $0035D034 // Else JAL 0x4317BDC NOP (0x35D004) LBU T5, $AC60 (T5) ADDIU AT, R0, $0001 BNE T5, AT, $0035D018 // If this is the charge turn, JAL 0x4376768 LUI AT, $843C SH R0, $4DC4 (AT) JAL $04376768 NOP LUI V1, $843C LW V1, $5238 (V1) LBU T6, $005A (V1) BEQ R0, R0, $0035D3F8 SB T6, $0058 (V1) (0x35D034) JAL $04317BDC NOP
- 0x35D134 - ?
LUI T3, $8439 LBU T3, $AC60 (T3) // Load (0x801ADFC0) to T3 ADDIU AT, R0, $0001 LUI V1, $843C BNE T3, AT, $0035D170 // If (0x801ADFC0) ≠ 1, branch to 0x35D170 (Skip this function) NOP LW V1, $5238 (V1) LUI T6, $8007 LBU T4, $005A (V1) // T4 = Move ID SLL T5, T4, $2 SUBU T5, T5, T4 SLL T5, T5, $1 ADDU T6, T6, T5 // T6 = 0x80070000 + Move ID × 6 LBU T6, $2AFE (T6) // T6 = Move Accuracy SB T6, $0048 (V1) // Store Move Accuracy to (0x80287B14) (0x35D170) JAL $043708CC // Jump to 0x35B18C NOP
Mirror Move, Metronome
- 0x35D178 - Mirror Move, Metronome
LUI T7, $843C LBU T7, $4DA4 (T7) LUI T8, $843C BEQ T7, R0, $0035D1A8 NOP LW T8, $5238 (T8) ADDIU AT, R0, $0007 LBU A0, $0045 (T8) BNE A0, AT, $0035D1B8 OR A1, A0, R0 BEQ R0, R0, $0035D1BC ADDIU AT, R0, $0009 (0x35D1A8) LUI T9, $843C LW T9, $5238 (T9) (0x35D1B0) LBU A0, $0045 (T9) // Load Move Effect in A0 OR A1, A0, R0 // A1 = A0 (0x35D1B8) ADDIU AT, R0, $0009 (0x35D1BC) BEQ A1, AT, $0035D1D8 // If Move Effect == Mirror Move, branch to 0x35D1D8 ADDIU A2, R0, $001B // A2 = 0x1B ADDIU AT, R0, $0053 BEQ A1, AT, $0035D1F8 // If Move Effect == Metronome, branch to 0x35D1F8 NOP BEQ R0, R0, $0035D20C // Else branch to 0x35D20C LUI A1, $8439 (0x35D1D8) JAL $043718E4 NOP
- 0x35D1E0 - ?
BEQ V0, R0, $0035D3F0 LUI AT, $843C LUI V1, $843C SB R0, $4DB5 (AT) (0x35D1F0) BEQ R0, R0, $0035CFE8 // Branch to 0x35CFE8 - Two Turn Move LW V1, $5238 (V1) (0x35D1F8) JAL $04371564 NOP LUI V1, $843C BEQ R0, R0, $0035CFE8 // Branch to 0x35CFE8 - Two Turn Move LW V1, $5238 (V1) (0x35D20C) JAL $0436FD54 // Jump to 0x35A614 - Status Effects and High Critical Hit Rate ADDIU A1, A1, $AE04
Extra Effects
No extra Effect against same Type
- 0x35E810 - Disables some extra Effects if the Defending Pokémon shares a type with the Move (e.g. Body Slam against Tauros)
LW RA, $0014 (SP) LUI V0, $843C LW V0, $5238 (V0) LBU T6, $001C (A1) // Load Pokémon Type #1 in A1 LBU V1, $0047 (V0) // Load Move Type in V1 BEQL T6, V1, $0035EA78 // If Pokémon Type #1 == Move Type, no extra effect LW RA, $0014 (SP) LBU T7, $001D (A1) // Load Pokémon Type #2 in A1 BEQL T7, V1, $0035EA78 // If Pokémon Type #2 == Move Type, no extra effect LW RA, $0014 (SP)
- 0x35E838 - ?
LBU T8, $0045 (V0) LUI T9, $8439 SLTI AT, T8, $0007 BNEZ AT, $0035E86C // If T8 < 0x07, branch to 0x35E86C NOP LBU T9, $AC60 (T9) ADDIU AT, R0, $0002 BEQ T9, AT, $0035E88C // If T9 == 0x02, branch to 0x35E88C NOP
Burn, Freeze, Paralysis extra Effect
Blizzard check
- 0x35E85C - Checks if the Move is Blizzard
LBU T2, $0044 (V0) // Load Move ID in T2 ADDIU AT, R0, $003B // Blizzard ID BNE T2, AT, $0035E88C // If Move ID ≠ 0x3B, branch to 0x35E88C NOP (0x35E86C) JAL $0436F6D8 NOP
Effect chances
- 0x35E874 - 26/256 chance
LUI A3, $843C SLTI AT, V0, $001A // Effect chance BNEZ AT, $0035E8A4 // If 1-byte PRN < 0x1A, branch to 0x35E8A4 ADDIU A3, A3, $523C BEQ R0, R0, $0035EA78 LW RA, $0014 (SP) (0x35E88C) JAL $0436F6D8 NOP
- 0x35E894 - 77/256 chance
LUI A3, $843C SLTI AT, V0, $004D // Effect chance BNEZ AT, $0035E8A4 // If 1-byte PRN < 0x4D, branch to 0x35E8A4 ADDIU A3, A3, $523C
BRN FRZ PAR Extra Effect check
- 0x35E8A4 - Branch to the appropriate extra Effect
LUI T3, $843C LW T3, $5238 (T3) ADDIU AT, R0, $0004 // 0x04 - Burn LBU V0, $0045 (T3) // Load Move Effect to V0 BEQ V0, AT, $0035E8F0 // If V0 == 0x04, branch to 0x35E8F0 ADDIU AT, R0, $0005 // 0x05 - Freeze BEQ V0, AT, $0035E96C // If V0 == 0x05, branch to 0x35E96C LUI T2, $8439 ADDIU AT, R0, $0006 // 0x06 - Paralysis BEQ V0, AT, $0035EA00 // If V0 == 0x06, branch to 0x35EA00 ADDIU AT, R0, $0022 // 0x22 - Burn (Fire Blast) BEQ V0, AT, $0035E8F0 // If V0 == 0x22, branch to 0x35E8F0 ADDIU AT, R0, $0023 // 0x23 - Freeze (Blizzard) BEQ V0, AT, $0035E96C // If V0 == 0x23, branch to 0x35E96C ADDIU AT, R0, $0024 // 0x24 - Paralysis (Body Slam) BEQL V0, AT, $0035EA04 // If V0 == 0x24, branch to 0x35EA04 LW T3, $0000 (A3) BEQ R0, R0, $0035EA78 // Else branch to 0x35EA78 LW RA, $0014 (SP)
Burn
- 0x35E8F0 - Burn extra Effect
LW T5, $0000 (A3) ADDIU T4, R0, $0010 LUI T6, $8439 SB T4, $0015 (T5) LW T6, $0240 (T6) LUI A0, $8439 LHU V0, $002C (T6) SLTIU V0, V0, $0001 SLL T7, V0, $2 ADDU A0, A0, T7 JAL $04370B44 LW A0, $0010 (A0)
0x35E920
LUI T8, $8439 LW T8, $0240 (T8) LUI A0, $8439 LHU V0, $002C (T8) SLTIU V0, V0, $0001 SLL T9, V0, $2 ADDU A0, A0, T9 JAL $0430862C LW A0, $0010 (A0)
0x35E944
ADDIU A0, R0, $0019 JAL $0002D5D4 OR A1, V0, R0
0x35E950
LUI A0, $8439 LW A0, $01A0 (A0) ADDIU A1, R0, $FF8A JAL $043179F4 ADDIU A0, A0, $0208
0x35E964
BEQ R0, R0, $0035EA78 LW RA, $0014 (SP)
Freeze
- 0x35E96C - Freeze extra Effect
LW T2, $0240 (T2) LUI A0, $8439 LHU V0, $002C (T2) ;load (0x80288DBE) to V0 SLTIU V0, V0, $0001 ;if (0x80288DBE) == 0, V0 = 1 SLL T3, V0, $2 ADDU A0, A0, T3 JAL $04308A4C ;jump to 0x2F330C LW A0, $0010 (A0) ;A0 = (0x801B3374)
0x35E98C
LUI A3, $843C BNEZ V0, $0035EA74 ADDIU A3, A3, $523C LW A1, $0000 (A3) ADDIU T6, R0, $0020 LUI T8, $8439 LBU T4, $004D (A1) LUI A0, $8439 ANDI T5, T4, $FFDF SB T5, $004D (A1) LW T7, $0000 (A3) SB T6, $0015 (T7) LW T8, $0240 (T8) LHU V0, $002C (T8) SLTIU V0, V0, $0001 SLL T9, V0, $2 ADDU A0, A0, T9 JAL $0430862C LW A0, $0010 (A0)
0x35E9D8
ADDIU A0, R0, $0019 JAL $0002D5D4 OR A1, V0, R0
Acid, Aurora Beam, Bubble, Bubblebeam, Psychic
Effect chance
- 0x35F190 - 85/256 chance
LUI A1, $843C SLTI AT, V0, $0055 ADDIU A1, A1, $523C LW A2, $0024 (SP) // Load Move Effect to A2 BEQ AT, R0, $0035F4C4 // If PRN ≥ 0x55, branch to 0x35F4C4 LW A3, $0020 (SP) // Else load the amount of Levels to decrease to A3 ADDIU A2, A2, $FFBC // A2 = Move Effect - 0x44 BEQ R0, R0, $0035F228 // Branch to 0x35F228 LW V0, $0000 (A1)
Lower stat n Levels
- 0x35F228 - Lower Target's stat n Levels
ADDU V1, V0, A2 // Pointer to the Target's stat Level LBU A0, $005C (V1) // A0 = Target's stat Level ADDIU T0, R0, $0001 SLTI AT, A2, $0004 // Set AT to 1 if Move Effect is between 0x44 and 0x47 BEQ T0, A0, $0035F4C4 // If Target's stat Level is at -6, skip this function SUBU T4, A0, A3 // T4 = Target's stat Level - n SB T4, $005C (V1) // Store Adjusted Target's stat Level in (0x80288548) LW T5, $0000 (A1) ADDIU T7, R0, $0001 // T7 = 1 ADDU V1, T5, A2 LBU T6, $005C (V1) // T6 = Adjusted Target's stat Level BGTZL T6, $0035F264 // If Adjusted Target's stat Level > 0, branch to 0x35F264 SW R0, $0028 (SP) SB T7, $005C (V1) // Else store 1 in (0x80288548) SW R0, $0028 (SP) (0x35F264) BEQ AT, R0, $0035F37C // If Effect is not between 0x44 and 0x47, branch to 0x35F37C SW R0, $002C (SP) // 00s (0x80081654) BEQL A2, R0, $0035F2A0 // If stat reduced is Attack, branch to 0x35F2A0 LW V0, $0000 (A1) BEQL A2, T0, $0035F2B8 // If stat reduced is Defense, branch to 0x35F2B8 LW V0, $0000 (A1) ADDIU AT, R0, $0002 BEQL A2, AT, $0035F2CC // If stat reduced is Speed, branch to 0x35F2CC LW V0, $0000 (A1) ADDIU AT, R0, $0003 BEQL A2, AT, $0035F2E4 // If stat reduced is Special, branch to 0x35F2E4 LW V0, $0000 (A1) BEQ R0, R0, $0035F2F0 // Else branch to 0x35F2F0 LW V1, $001C (SP) LW V0, $0000 (A1)
Pointers
- 0x35F2A0 - Pointers for Aurora Beam
SW T0, $002C (SP) ADDIU T8, V0, $0038 SW T8, $0018 (SP) BEQ R0, R0, $0035F2F0 // Branch to 0x35F2F0 ADDIU V1, V0, $002A LW V0, $0000 (A1)
- 0x35F2B8 - Pointers for Acid
ADDIU T9, V0, $003A SW T9, $0018 (SP) BEQ R0, R0, $0035F2F0 // Branch to 0x35F2F0 ADDIU V1, V0, $002C LW V0, $0000 (A1)
- 0x35F2CC - Pointers for Bubble and Bubblebeam
SW T0, $0028 (SP) ADDIU T1, V0, $003C SW T1, $0018 (SP) BEQ R0, R0, $0035F2F0 // Branch to 0x35F2F0 ADDIU V1, V0, $002E LW V0, $0000 (A1)
- 0x35F2E4 - Pointers for Psychic
ADDIU T2, V0, $003E SW T2, $0018 (SP) ADDIU V1, V0, $0030 (0x35F2F0) LHU T3, $0000 (V1) BEQ T0, T3, $0035F4C4 // If Target's stat == 1, skip this function NOP
Adjust Target's stat
- 0x35F2FC - Adjusts Target's stat to its stat Level
LW T4, $0000 (A1) LW T9, $0018 (SP) LUI T8, $8439 ADDU T5, T4, A2 LBU T6, $005C (T5) // T6 = Target's stat Level ADDIU T8, T8, $ACB8 LHU T1, $0000 (T9) // T1 = Target's stat SLL T7, T6, $1 ADDU V0, T7, T8 LBU T2, $FFFE (V0) // Load stat numerator to T2 LBU T4, $FFFF (V0) // Load stat denominator to T4 ADDIU T7, R0, $0001 MULTU T1, T2 MFLO T3 // T3 = Target's stat × stat numerator NOP NOP DIV T3, T4 MFLO T5 // T5 = Target's stat × (stat numerator ÷ stat denominator) ANDI T6, T5, $FFFF // Stat can't be higher than 65535 BNEZ T4, $0035F354 NOP BREAK // No division by zero (0x35F354) ADDIU AT, R0, $FFFF BNE T4, AT, $0035F36C LUI AT, $8000 BNE T3, AT, $0035F36C NOP BREAK // No negative stat (0x35F36C) SH T5, $0000 (V1) // Store Adjusted stat in RAM BNEL T6, R0, $0035F380 // If Adjusted stat ≠ 0, branch to 0x35F380 ADDIU AT, R0, $0002 SH T7, $0000 (V1) // Else store 1 as the Adjusted stat ADDIU AT, R0, $0002 (0x35F380) BNE A3, AT, $0035F3E4 // If Levels lowered ≠ 2, branch to 0x35F3E4 LUI T1, $8439 LUI T8, $8439 LW T8, $0240 (T8) LUI A0, $8439 LHU V0, $002C (T8) SW A2, $0024 (SP) SLTIU V0, V0, $0001 SLL T9, V0, $2 ADDU A0, A0, T9 JAL $0430862C LW A0, $0010 (A0)
? extra Effect
Effect chances #1
- 0x35F818 - 77/256 chance
SLTI AT, V0, $004D // Effect chance BNEZ AT, $0035F870 // If 1-byte PRN < 0x4D, branch to 0x35F870 NOP BEQ R0, R0, $0035F888 // Else branch to 0x35F888 LW RA, $0014 (SP)
Move Effect check (Flinch)
- 0x35F834 - Checks if the Move Effect is 0x1F (Flinch)
ADDIU AT, R0, $001F // Effect 0x1F - Flinch LBU T2, $0045 (T1) // Load Move Effect in T2 BNE T2, AT, $0035F860 // If Move Effect ≠ 0x1F, branch to 0x35F860 NOP JAL $0436F6D8 NOP
Effect chances #2
- 0x35F84C - 26/256 chance
SLTI AT, V0, $001A // Effect chance BNEZ AT, $0035F870 // If 1-byte PRN < 0x1A, branch to 0x35F870 NOP BEQ R0, R0, $0035F888 // Else branch to 0x35F888 LW RA, $0014 (SP) (0x35F860) JAL $0436F6D8 NOP
- 0x35F868 - Yet again 77/256 chance
SLTI AT, V0, $004D BEQ AT, R0, $0035F884 // If 1-byte PRN > 0x4D, branch to 0x35F884
? extra Effect
- 0x35F870 - ? extra Effect
LUI V0, $843C LW V0, $523C (V0) LBU T3, $004C (V0) ORI T4, T3, $0008 // T4 = T3 | 0x08 SB T4, $004C (V0) (0x35F884) LW RA, $0014 (SP) (0x35F888) ADDIU SP, SP, $0018 JR RA NOP
Extra Effect general handler
- 0x360FCC - Extra Effect general handler
To document
Battle Data arrays
Move IDs arrays
- 0x370250 - List of Moves IDs (used for pointers ?)
0E 4A 0x0E - Swords Dance 0x4A - Growth
- 0x370254 - List of Moves IDs (used for pointers ?)
60 69 75 78 85 0x60 - Meditate 0x69 - Recover 0x75 - Bide 0x78 - Selfdestruct 0x85 - Amnesia
- 0x37025C - List of Moves IDs (used for pointers ?)
61 64 66 68 8C 0x61 - Agility 0x64 - Teleport 0x66 - Mimic 0x68 - Double Team 0x8C - Barrage
- 0x370264 - List of Moves IDs (used for pointers ?)
01 0A 0B 11 13 14 15 1E 22 23 25 27 2B 2C 2D 2E 2F 40 44 46 47 51 59 5A 5B 5C 67 6A 6B 6E 6F 76 7A 80 84 8B 8D 91 94 96 97 9A 9C 9F A3 A4 0x01 - Pound 0x0A - Scratch 0x0B - Vicegrip 0x11 - Wing Attack 0x13 - Fly 0x14 - Bind 0x15 - Slam 0x1E - Horn Attack 0x22 - Body Slam 0x23 - Wrap 0x25 - Thrash 0x27 - Tail Whip 0x2B - Leer 0x2C - Bite 0x2D - Growl 0x2E - Roar 0x2F - Sing 0x40 - Peck 0x44 - Counter 0x46 - Strength 0x47 - Absorb 0x51 - String Shot 0x59 - Earthquake 0x5A - Fissure 0x5B - Dig 0x5C - Toxic 0x67 - Screech 0x6A - Harden 0x6B - Minimize 0x6E - Withdraw 0x6F - Defense Curl 0x76 - Metronome 0x7A - Lick 0x80 - Clamp 0x84 - Constrict 0x8B - Poison Gas 0x8D - Leech Life 0x91 - Bubble 0x94 - Flash 0x96 - Splash 0x97 - Acid Armor 0x9A - Fury Swipes 0x9C - Rest 0x9F - Sharpen 0xA3 - Slash 0xA4 - Substitute
- 0x37552C - List of Moves IDs (copy of 0x370250)
0E 4A 00 00 60 69 75 78 85 00 00 00 61 64 66 68 8C 00 00 00 01 0A 0B 11 13 14 15 1E 22 23 25 27 2B 2C 2D 2E 2F 40 44 46 47 51 59 5A 5B 5C 67 6A 6B 6E 6F 76 7A 80 84 8B 8D 91 94 96 97 9A 9C 9F A3 A4
Stats Modifiers arrays
- 0x375578 - Attack, Defense, Special, Speed modifiers
19 64 - 025/100 1C 64 - 028/100 21 64 - 033/100 28 64 - 040/100 32 64 - 050/100 42 64 - 066/100 01 01 - 100/100 0F 0A - 150/100 02 01 - 200/100 19 0A - 250/100 03 01 - 300/100 23 0A - 350/100 04 01 - 400/100
- 0x375594 - Accuracy and Evasion modifiers
01 03 - 1/3 24 64 - 036/100 2B 64 - 043/100 01 02 - 1/2 42 64 - 066/100 4B 64 - 075/100 01 01 - 1/1 85 64 - 133/100 A6 64 - 166/100 02 01 - 2/1 E9 64 - 233/100 85 32 - 266/100 03 01 - 3/1
Weaknesses and Resistances array
- 0x3755B0 - List of Weaknesses and Resistances
15 14 14 14 16 14 14 19 14 16 15 14 17 15 14 15 05 14 04 02 00 15 15 05 14 14 05 17 17 05 19 19 05 16 16 05 18 18 05 14 15 05 16 14 05 15 16 05 17 16 05 00 05 05 00 08 00 08 08 14 14 07 14 14 05 05 15 04 14 17 04 00 17 02 14 16 04 14 16 07 05 16 03 05 16 05 14 16 02 05 19 15 05 19 16 14 19 04 14 19 02 14 01 00 14 01 03 05 01 02 05 01 18 05 01 07 05 01 05 14 01 19 14 01 08 00 03 16 14 03 03 05 03 04 05 03 07 14 03 05 05 03 08 05 04 14 14 04 17 14 04 16 05 04 07 05 04 05 14 04 03 14 02 17 05 02 01 14 02 07 14 02 16 14 02 05 05 18 01 14 18 03 14 07 14 05 07 16 14 07 01 05 07 02 05 07 18 14 07 08 05 07 03 14 05 14 14 05 01 05 05 04 05 05 02 14 05 07 14 05 19 14 08 00 00 08 18 00 14 1A 05 15 1A 05 17 1A 05 16 1A 05 19 1A 14 1A 1A 14
Water Fire 20 Fire Grass 20 Fire Ice 20 Grass Water 20 Electric Water 20 Water Rock 20 Ground Flying 00 Water Water 05 Fire Fire 05 Electric Electric 05 Ice Ice 05 Grass Grass 05 Psychic Psychic 05 Fire Water 05 Grass Fire 05 Water Grass 05 Electric Grass 05 Normal Rock 05 Normal Ghost 00 Ghost Ghost 20 Fire Bug 20 Fire Rock 05 Water Ground 20 Electric Ground 00 Electric Flying 20 Grass Ground 20 Grass Bug 05 Grass Poison 05 Grass Rock 20 Grass Flying 05 Ice Water 05 Ice Grass 20 Ice Ground 20 Ice Flying 20 Fighting Normal 20 Fighting Poison 05 Fighting Flying 05 Fighting Psychic 05 Fighting Bug 05 Fighting Rock 20 Fighting Ice 20 Fighting Ghost 00 Poison Grass 20 Poison Poison 05 Poison Ground 05 Poison Bug 20 Poison Rock 05 Poison Ghost 05 Ground Fire 20 Ground Electric 20 Ground Grass 05 Ground Bug 05 Ground Rock 20 Ground Poison 20 Flying Electric 05 Flying Fighting 20 Flying Bug 20 Flying Grass 20 Flying Rock 05 Psychic Fighting 20 Psychic Poison 20 Bug Fire 05 Bug Grass 20 Bug Fighting 05 Bug Flying 05 Bug Psychic 20 Bug Ghost 05 Bug Poison 20 Rock Fire 20 Rock Fighting 05 Rock Ground 05 Rock Flying 20 Rock Bug 20 Rock Ice 20 Ghost Normal 00 Ghost Psychic 00 Fire Dragon 05 Water Dragon 05 Electric Dragon 05 Grass Dragon 05 Ice Dragon 20 Dragon Dragon 20
Move Effects arrays
- 0x3756AC - List of Moves Effects (used for ?)
18 19 1C 2E 2F 31 38 39 40 41 42 43 4F 52 54 55 1B 00 00 00 28 29 00 00 01 0A 0B 0C 0D 0E 0F 12 13 14 15 16 17 1A 20 32 33 34 35 36 37 3A 3B 3C 3D 3E 3F 00 03 07 08 10 1D 1E 2C 30 4D 51 00 00 03 07 08 10 11 1D 1E 27 28 29 2B 2C 2D 30
High Critical Rate Moves array
- 0x37570C - List of High Critical Rate Moves
02 4B 98 A3 02 - Karate Chop 4B - Razor Leaf 98 - Crabhammer A3 - Slash
TM HM array (legality checker)
- 0x375874 - List of TM / HM moves (used by legality checker)
05 0D 0E 12 19 5C 20 22 24 26 3D 37 3A 3B 3F 06 42 44 45 63 48 4C 52 55 57 59 5A 5B 5E 64 66 68 73 75 76 78 79 7E 81 82 87 8A 8F 9C 56 95 99 9D A1 A4 0F 13 39 46 94
Debug Text 2
- 0x377C90
calc_vector_ATtoDM() normal error!!! calc_vector_ATtoDM2() normal error!!!
- 0x3781E0
PROB %d POWER += POWER * %2.1f CRITICAL %d zokuseiFlag %d ******** CkeckCondition ********** MASK_SLEEP BIT_FREEZE BIT_SHIMETSUKE BIT_KIZETSU BIT_KATAMARU count4 %d BIT_KONRAN OWARI BIT_KONRAN BIT_KONRAN RND NowSkill %d kanashibariSkill %d BIT_PARALYSE BIT_GAMAN CLEAR BIT_GAMAN BIT_ABARERU BIT_SHIMETSUKE %d BIT_IKARI ******** Kougeki1 Sart ********** JumpAttack2 JumpAttack3 SpAttackTbl1 JumpAttack4 SpAttackTbl3 JumpAttack5 JumpAttack5 Avoid JumpAttack6 --->SHIMETUKE effectPass attack 9 Yubifuri SpAttackTbl4 Avoid MESSAGE SpAttackTbl5 IkariCheck RENZOKU Count %d %d SpAttackTbl SP %d index %d step %d index %d step %d index %d paramStep %d index %d step %d %%%%%%%%%%%%%%%%%%%%%%% INDEX %d WARIKOMI %d %%%%%%%%%%%%%%%%%%%%%%% FAIL index %d index %d FAIL FAIL2 FAIL3 offp->count1 %d ******** spAttackMain ******** !!!! SPATTACK Num %d!!!! ******** spAttackMainEnd ********
Moves Legality arrays
- 0x77FB20 - Red & Blue Level-Up and Event Moves
- 0x780E00 - 0x7820E0 - Yellow Level-Up and Event Moves
xx xx xx xx xx xx xx xx xx xx yy yy yy yy yy yy yy yy yy yy 00 00 00 00 00 00 00 00 00 00 00 00 xx - Levels yy - Moves IDs
AI data
- 0x7820E0 - AI data ; Italic is move randomness it seems from tests (not switches)
A3 C3 A3 CF A3 CD A4 C4 A4 E8 00 00 00 09 FF FF 7F 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 4A FF FF 3F 7F 00 B2 4D 00 80 80 80 80 62 00 00 00 00 00 01 48 FF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00
A3 C3 A3 CF A3 CD A4 D5 A4 C4 00 00 01 1E 12 C1 FF 7F 80 80 80 34 4E 80 80 80 00 80 00 00 00 00 01 1F 92 E0 B2 65 1A B2 73 19 80 1C 1C 1C 3F 34 00 00 00 00 01 1E B3 79 62 7F 33 B2 66 19 80 1C 1C 1C 3F 00 00 00 00 00
A3 C3 A3 CF A3 CD A4 E8 A4 EF 00 00 00 00 00 00 FF B2 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 00 00 00 00 FF B2 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 00 00 00 00 FF B2 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00
A3 C3 A3 CF A3 CD A4 E8 A4 D3 00 00 03 4C FF FF FF 7F 00 B2 4D 00 80 80 80 80 62 00 00 00 00 00 01 4C FF FF 80 7F 00 B2 4D 00 80 80 80 80 62 00 00 00 00 00 03 5C FF FF 00 7F 00 B2 4D 00 80 80 80 80 62 00 00 00 00 00
A5 A4 A5 B1 A5 A4 A5 B1 00 00 00 00 01 08 FF FF FF 7F 00 B2 4D B2 FF 01 01 01 80 00 00 00 00 00 01 08 FF FF FF 7F 00 B2 4D B2 FF 01 01 01 80 00 00 00 00 00 01 08 FF FF FF 7F 00 B2 4D B2 FF 01 01 01 80 00 00 00 00 00
A4 B7 A4 F3 A4 C1 A4 E7 A4 A6 00 00 01 08 FF FF 00 7F 00 B2 80 00 01 01 FF FF 80 00 00 00 00 00 01 08 FF FF 00 7F 00 B2 80 00 01 01 FF FF 80 00 00 00 00 00 01 08 FF FF 00 7F 00 B2 80 00 01 01 FF FF 80 00 00 00 00 00
A4 E8 A4 EF A4 E8 A4 EF 00 00 00 00 00 00 00 00 FF CC 80 6C 4D 4D 80 80 80 80 80 00 00 00 00 00 00 00 00 00 FF CC 80 6C 4D 4D 80 80 80 80 80 00 00 00 00 00 00 00 00 00 FF CC 80 6C 4D 4D 80 80 80 80 80 00 00 00 00 00
A4 B5 A4 A4 A4 AD A4 E7 A3 B5 00 00 01 0B FF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 0B FF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 0B FF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00
A4 B5 A4 A4 A4 AD A4 E7 A3 B6 00 00 01 0B BF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 0B BF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 0B BF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00
A4 B5 A4 A4 A4 AD A4 E7 A3 B7 00 00 01 0C FF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 0C FF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 0C FF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00
A5 A8 A4 EA A1 BC A5 C8 A3 B1 00 00 00 07 9F F9 00 7F 60 C0 60 00 80 80 A0 A0 C0 80 00 00 00 00 00 07 9F F9 00 7F 20 C0 60 00 80 80 80 80 C0 00 00 00 00 00 00 07 9F F9 00 7F 00 C0 60 00 80 A0 50 80 C0 00 00 00 00 00
R1 Gym Leader Castle: JR(m) A5 B9 A5 AD A5 F3 A3 B1 00 00 00 00 00 03 42 C0 FF 7F 00 A0 60 40 80 80 80 80 40 40 40 00 00 00 00 03 42 C0 FF 7F 00 A0 60 40 80 80 80 80 40 40 40 00 00 00 00 03 42 C0 FF 7F 00 A0 60 40 80 80 80 80 40 40 40 00 00 00 A4 AB A4 E9 A4 C6 A3 B1 00 00 00 00 00 2F 96 C0 FF 7F 00 C0 40 80 80 80 80 80 00 00 00 00 00 00 00 2F 96 C0 FF 7F 00 C0 40 80 80 80 80 80 00 00 00 00 00 00 00 2F 96 C0 FF 7F 00 C0 40 80 80 80 80 80 00 00 00 00 00 00
A4 B5 A4 A4 A4 AD A4 E7 A3 B8 00 00 01 8B 7F FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 8B 7F FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 8B 7F FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00
A4 B5 A4 A4 A4 AD A4 E7 A3 B9 00 00 01 0A 3F FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 0A 3F FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 0A 3F FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00
A5 A4 A5 B1 A5 A4 A5 B1 A3 B2 00 00 01 1B 37 FF FF 7F 00 B2 4D 4D FF 01 01 01 80 00 00 00 00 00 01 1B 37 FF FF 7F 00 B2 4D 4D FF 01 01 01 80 00 00 00 00 00 01 1B 37 FF FF 7F 00 B2 4D 4D FF 01 01 01 80 00 00 00 00 00
A4 B7 A4 F3 A4 C1 A4 E7 A3 B2 00 00 01 0F FF FF 00 7F 00 B2 80 00 01 01 FF FF 80 80 80 00 00 00 01 0F FF FF 00 7F 00 B2 80 00 01 01 FF FF 80 80 80 00 00 00 01 0F FF FF 00 7F 00 B2 80 00 01 01 FF FF 80 80 80 00 00 00
A5 B3 A5 F3 A5 DC 00 00 00 00 00 00 01 0D FF BF 00 7F 00 B2 4D 00 80 80 80 80 B2 00 00 00 00 00 01 0D FF FF 00 7F 00 B2 4D 00 80 80 80 80 B2 00 00 00 00 00 01 0D FF F7 00 7F 00 B2 00 00 B2 4D 80 80 B2 00 00 00 00 00
A5 E9 A5 A4 A5 D0 A5 EB 00 00 00 00 01 CE FF FF 64 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 CE FF FF 64 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 CE FF FF 64 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00
A5 AE A5 E3 A5 F3 A5 D6 A3 B1 00 00 00 03 96 F8 40 7F 00 B2 4D 80 A0 10 FF 10 00 00 C0 00 00 00 00 03 96 F8 40 7F 00 B2 4D 80 A0 10 FF 10 00 00 C0 00 00 00 00 03 96 F8 40 7F 00 B2 4D 80 A0 10 FF 10 00 00 C0 00 00 00
A5 AE A5 E3 A5 F3 A5 D6 A5 E9 00 00 00 0F B6 FC 00 7F 00 B2 80 00 80 80 80 80 80 00 FF 00 00 00 00 0F B6 FC 00 7F 00 B2 80 00 80 80 80 80 80 00 FF 00 00 00 00 0F B6 FC 00 7F 00 B2 80 00 80 80 80 80 80 00 FF 00 00 00
A4 E2 A4 A6 A4 B8 A4 E5 A4 A6 00 00 01 1A AF FF C0 7F 00 B2 40 B2 94 80 94 80 00 00 80 00 00 00 01 1A AF FF C0 7F 00 B2 40 B2 9E 6C 80 6C 80 00 00 00 00 00 01 1A AF FF C0 7F 00 B2 40 FF 94 80 94 80 00 00 80 00 00 00
A4 AD A4 C8 A4 A6 A4 B7 00 00 00 00 01 1F B7 FF B2 7F 00 B2 4D B2 80 80 80 80 6C 00 B2 00 00 00 01 1F B7 FF B2 7F 00 B2 4D B2 80 80 B2 80 6C 00 80 00 00 00 01 1F B7 FF B2 7F 00 B2 4D B2 80 80 B2 B2 6C 00 80 00 00 00
A5 B5 A5 A4 A5 AD A5 C3 A5 AF 00 00 00 1A FF F9 B2 7F 80 B2 40 80 80 80 A0 A0 C0 00 80 00 00 00 00 1A FF F9 B2 7F 60 B2 40 80 80 80 90 90 C0 00 80 00 00 00 00 1A FF F9 B2 7F 00 B2 40 80 80 80 80 80 C0 00 80 00 00 00
A4 AB A4 A4 A4 B8 A4 E5 A4 A6 00 00 01 1F FF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 1F FF FF 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 1F FF FF B2 7F 00 B2 4D 00 B2 4D B2 4D 80 00 00 00 00 00
A4 CF A4 B0 A4 EC A3 B1 00 00 00 00 00 03 42 F8 A0 7F 00 B2 40 00 80 10 FF 10 00 00 00 00 00 00 00 03 42 F8 A0 7F 00 B2 40 00 80 10 C0 10 00 00 00 00 00 00 00 03 42 F8 A0 7F 00 B2 40 00 80 10 60 10 00 00 00 00 00 00
A4 C8 A4 EA A4 C4 A4 AB A3 B1 00 00 00 0B 8E F8 40 7F 00 C0 50 00 80 80 90 90 00 90 00 00 00 00 00 0B 8E F8 40 7F 00 C0 50 00 80 80 90 90 00 90 00 00 00 00 00 0B 8E F8 40 7F 00 C0 50 00 80 80 90 90 00 90 00 00 00 00
A4 CF A4 B0 A4 EC A3 B2 00 00 00 00 00 03 86 38 00 7F 40 C0 60 00 80 80 80 80 00 00 00 00 00 00 00 03 86 38 00 7F 40 C0 60 00 60 80 60 80 00 00 00 00 00 00 00 03 86 38 00 7F 40 C0 60 00 50 A0 50 A0 00 00 00 00 00 00
A4 AD A4 C8 A4 A6 A4 B7 A3 B2 00 00 01 5F B7 FF B2 7F 00 B2 4D B2 6C 94 BE 41 C0 00 00 00 00 00 01 5F B7 FF B2 7F 00 B2 4D B2 6C 94 BE 41 C0 00 00 00 00 00 01 5F B7 FF B2 7F 00 B2 4D B2 6C 94 BE 41 C0 00 00 00 00 00
A5 B3 A5 F3 A5 D3 A1 AA A3 B1 00 00 01 4D AD FF A8 7F 00 B2 1E B2 80 80 A8 80 B2 00 00 00 00 00 01 4D AD FF A8 7F 00 B2 1E B2 80 80 A8 80 B2 00 00 00 00 00 01 4D AD FF A8 7F 00 B2 1E B2 80 80 A8 80 B2 00 00 00 00 00
A4 DC A4 A6 A4 BD A4 A6 A3 B1 00 00 01 1F A5 FF 94 7F 00 26 94 00 80 40 80 80 80 00 00 00 00 00 01 1F A5 FF 94 7F 00 26 94 00 60 60 A8 80 80 00 00 00 00 00 01 1F A5 FF 94 7F 00 26 94 00 60 60 A8 80 80 00 00 00 00 00
A5 B5 A5 A4 A5 B3 A3 B2 00 00 00 00 01 3E AF FF 30 7F 00 B2 14 00 80 80 80 C6 A8 00 00 00 00 00 01 3E AF FF 30 7F 00 B2 14 00 80 80 80 C6 A8 00 00 00 00 00 01 3E AF FF 30 7F 00 B2 14 00 80 80 80 C6 A8 00 00 00 00 00
A5 AE A5 E3 A5 F3 A5 D6 A3 B2 00 00 00 4B B6 F8 40 7F 00 B2 4D 80 A0 10 FF 10 00 00 C0 00 00 00 00 4B B6 F8 40 7F 00 B2 4D 80 A0 10 FF 10 00 00 C0 00 00 00 00 4B B6 F8 40 7F 00 B2 4D 80 A0 10 FF 10 00 00 C0 00 00 00
A5 B8 A5 D7 A5 B7 A1 BC 00 00 00 00 01 0F EE FC 80 7F 00 94 60 00 40 40 94 94 00 00 B2 00 00 00 01 0F EE FC 80 7F 00 94 60 00 40 40 94 94 00 00 C6 00 00 00 01 0F EE FC 80 7F 00 94 60 00 60 60 94 94 00 00 C6 00 00 00
A4 CF A4 B0 A4 EC A3 B3 00 00 00 00 00 2B B6 F8 40 7F 00 B2 40 00 80 80 7E 80 00 00 00 00 00 00 00 2B B6 F8 40 7F 00 B2 40 00 80 80 7E 90 00 00 00 00 00 00 00 2B B6 F8 40 7F 00 B2 40 00 80 80 60 60 00 00 00 00 00 00
A5 C0 A5 D6 A5 EB A3 B1 00 00 00 00 01 1D EF FF B2 7F 00 B2 4E 00 80 80 80 BC A8 00 80 00 00 00 01 1D EF FF 80 7F 00 B2 4E 00 80 80 80 A8 A8 00 80 00 00 00 01 1D EF FF 3A 7F 00 B2 4E 00 80 80 80 80 A8 00 80 00 00 00
A4 CF A4 B0 A4 EC A3 B4 00 00 00 00 00 43 AE F8 00 7F 00 B2 60 00 80 80 A0 A0 C0 00 00 00 00 00 00 43 AE F8 00 7F 00 B2 60 00 80 80 A0 A0 C0 00 00 00 00 00 00 43 AE F8 00 7F 00 B2 60 00 80 80 A0 A0 C0 00 00 00 00 00
A4 AB A4 E9 A4 C6 A3 B2 00 00 00 00 00 23 86 F8 A0 7F 00 C0 4D 00 A0 A0 60 60 00 00 00 00 00 00 00 23 86 F8 A0 7F 00 C0 4D 00 A0 A0 60 60 00 00 00 00 00 00 00 23 86 F8 A0 7F 00 C0 4D 00 A0 A0 60 60 00 00 00 00 00 00
A5 A8 A4 EA A1 BC A5 C8 A3 B2 00 00 00 CF FF FB 00 7F 00 B2 60 00 80 80 A0 A0 C0 00 00 00 00 00 00 CF FF FB 00 7F 00 B2 60 00 80 80 80 80 C0 00 00 00 00 00 00 CF FF FB 00 7F 00 B2 60 00 A0 80 50 60 C0 00 00 00 00 00
A4 A6 A4 E9 A5 DE A5 B9 A3 B1 00 00 01 1E EF FF A8 7F 00 94 44 00 5E 5E 80 C6 00 00 00 00 00 00 01 0D FF FF 44 7F 00 94 44 00 5E 5E 80 94 B2 00 00 00 00 00 01 0D FF FF 44 7F 00 94 44 00 C6 5E 80 80 80 00 00 00 00 00
A4 A6 A4 E9 A5 DE A5 B9 A3 B2 00 00 01 0D FF FF 80 7F 00 A8 44 00 46 46 46 C6 B4 00 00 00 00 00 01 0D FF FF 1C 7F 00 A8 44 00 46 46 46 C6 80 00 00 00 00 00 01 0D FF FF 00 7F 00 A8 44 00 B9 46 46 80 00 00 00 00 00 00
A4 AD A4 C8 A4 A6 A4 B7 A3 B3 00 00 01 1E A7 FF 80 7F 00 20 44 00 30 30 C6 80 6C 00 80 00 00 00 01 1E A7 FF 1C 7F 00 20 44 00 30 30 C6 80 6C 00 80 00 00 00 01 1E A7 FF 00 7F 00 20 44 00 30 30 C6 80 6C 00 80 00 00 00
A5 AC A1 BC A5 EB 00 00 00 00 00 00 01 0B 15 FF AA 7F 00 B2 4D 00 96 01 AA 55 00 00 00 00 00 00 01 0B 15 FF 1E 7F 00 B2 4D 00 01 96 01 C0 00 00 00 00 00 00 01 0B 15 FF 1E 7F 00 B2 4D 00 01 96 01 C0 00 00 00 00 00 00
A5 A8 A5 D3 A5 B9 A4 DE A4 EB 00 00 00 0B 43 F0 00 7F 55 A0 40 00 40 40 7D A0 80 00 00 00 00 00 00 0B 43 F0 00 7F 55 A0 40 00 40 40 7D A0 80 00 00 00 00 00 00 0B 43 F0 00 7F 55 A0 40 00 40 40 7D A0 80 00 00 00 00 00
A5 B7 A5 E7 A5 A6 A4 D8 A5 A4 00 00 01 0B 63 FC C0 7F 55 A0 40 14 BC 6C 80 4E 78 00 00 00 00 00 01 0B 63 FC C0 7F 55 A0 40 14 BC 6C 80 4E 78 00 00 00 00 00 01 0B 63 FC C0 7F 55 A0 40 14 BC 6C 80 4E 78 00 00 00 00 00
A5 C8 A5 E2 A5 E6 A5 AD 00 00 00 00 01 0B 42 30 A0 7F 68 C0 60 00 80 80 80 80 00 00 00 00 00 00 01 0B 42 30 A0 7F 68 C0 60 00 80 80 80 80 00 00 00 00 00 00 01 0B 42 30 A0 7F 68 C0 60 00 80 80 80 80 00 00 00 00 00 00
A4 CE A4 EA A4 B7 A4 B2 00 00 00 00 00 07 75 F8 00 7F 55 B2 60 00 80 80 80 80 64 00 00 00 00 00 00 07 75 F8 00 7F 55 B2 60 00 80 80 80 80 64 00 00 00 00 00 00 07 75 F8 00 7F 55 B2 60 00 80 80 80 80 64 00 00 00 00 00
A5 B5 A5 C8 A5 B7 00 00 00 00 00 00 01 4B E1 FC 00 7F 55 80 80 00 80 80 80 80 00 00 00 00 00 00 01 4B E1 FC 00 7F 55 80 80 00 80 80 80 80 00 00 00 00 00 00 01 4B E1 FC 00 7F 55 80 80 00 80 80 80 80 00 00 00 00 00 00
A5 D6 A5 EB A1 BC 00 00 00 00 00 00 00 0B 40 F8 50 7F 60 80 90 00 6C 6C 94 94 96 00 00 00 00 00 00 0B 40 F8 50 7F 60 80 90 00 6C 6C 94 94 96 00 00 00 00 00 00 0B 40 F8 50 7F 60 80 90 00 6C 6C 94 94 96 00 00 00 00 00
A4 B7 A4 F3 A4 B8 00 00 00 00 00 00 00 0B 42 30 E6 7F 90 B2 33 00 BE 32 82 32 00 00 00 00 00 00 00 0B 42 30 E6 7F 90 B2 33 00 BE 32 82 32 00 00 00 00 00 00 00 0B 42 30 E6 7F 90 B2 33 00 BE 32 82 32 00 00 00 00 00 00
A5 DF A5 E5 A1 BC A5 C4 A1 BC 00 00 03 4C FF FF 80 7F 00 B2 66 00 80 80 94 94 00 00 00 00 00 00 03 4C FF FF 80 7F 00 B2 66 00 FF 80 94 94 00 00 00 00 00 00 03 4C FF FF 80 7F 00 B2 66 00 82 80 94 91 00 00 00 00 00 00
A4 C7 A4 F3 A4 AD 00 00 00 00 00 00 01 1A A7 FD 00 7F 00 B2 60 00 60 60 80 60 80 00 00 00 00 00 01 1A A7 FD 00 7F 00 B2 60 00 60 60 FF 60 80 00 00 00 00 00 01 1A A7 FD 00 7F 00 B2 60 00 60 60 80 60 80 00 00 00 00 00
A5 A8 A4 EA A1 BC A5 C8 A3 B3 00 00 01 8E FF FF B2 7F 00 A9 4E 00 1C 1C 94 80 A8 00 00 00 00 00 01 8E FF FF B2 7F 00 A9 4E 00 1C 1C 94 80 A8 00 00 00 00 00 01 8E FF FF B2 7F 00 A9 4E 00 1C 1C 94 80 A8 00 00 00 00 00
A4 AD A4 C8 A4 A6 A4 B7 A3 B4 00 00 01 1E EF FF C6 7F 00 B2 44 00 01 01 80 80 FF 00 80 00 00 00 01 1E EF FF 1C 7F 00 B2 44 00 01 01 FF FF FF 00 80 00 00 00 01 1E EF FF 1C 7F 00 B2 44 00 80 01 37 37 FF 00 80 00 00 00
A4 C8 A4 EA A4 C4 A4 AB A3 B2 00 00 01 8F B7 F8 40 7F 00 B2 50 1A 80 80 90 90 00 90 00 00 00 00 01 8F B7 F8 40 7F 00 B2 50 1A 80 80 90 90 00 90 00 00 00 00 01 8F B7 F8 40 7F 00 B2 50 1A 80 80 90 90 00 90 00 00 00 00
A4 C8 A4 EA A4 C4 A4 AB A3 B3 00 00 00 8B 57 FB 00 7F 00 B2 50 00 80 80 90 90 00 90 00 00 00 00 00 8B 57 FB 00 7F 00 B2 50 00 80 80 90 90 00 90 00 00 00 00 00 8B 57 FB 00 7F 00 B2 50 00 80 80 90 90 00 90 00 00 00 00
A5 B9 A5 AD A5 F3 A3 B2 00 00 00 00 01 03 9A F8 C0 7F 20 C0 60 20 80 80 80 80 40 40 40 00 00 00 01 03 9A F8 C0 7F 20 C0 60 20 80 80 80 80 40 40 40 00 00 00 01 03 9A F8 C0 7F 20 C0 60 20 80 80 80 80 40 40 40 00 00 00
A5 A8 A4 EA A1 BC A5 C8 A3 B4 00 00 01 4B FF FB 00 7F 00 B2 60 00 80 80 A0 A0 C0 00 00 00 00 00 01 4B FF FB 00 7F 00 B2 60 00 80 80 90 90 C0 00 00 00 00 00 01 4B FF FB 00 7F 00 B2 60 00 A0 80 50 50 C0 00 00 00 00 00
A5 B8 A5 D7 A5 B7 A1 BC A3 B2 00 00 01 3E AF FC FF 7F 00 B2 62 00 01 01 01 01 01 00 FF 00 00 00 01 3E AF FC 80 7F 00 B2 62 00 01 01 01 01 01 00 FF 00 00 00 01 3E AF FC 1C 7F 00 B2 62 00 C6 01 01 01 01 00 FF 00 00 00
A4 CF A4 B0 A4 EC A3 B5 00 00 00 00 01 03 82 F8 A0 7F 60 B2 40 00 80 10 FF 10 00 00 00 00 00 00 01 03 82 F8 A0 7F 60 B2 40 00 80 10 C0 10 00 00 00 00 00 00 01 03 82 F8 A0 7F 60 B2 40 00 80 10 60 10 00 00 00 00 00 00
A5 AC A1 BC A5 EB A3 B2 00 00 00 00 00 2B 17 BB 3C 7F 00 B2 4D 00 5A 96 5A 98 00 00 00 00 00 00 00 2B 17 BB 3C 7F 00 B2 4D 00 5A 96 5A 98 00 00 00 00 00 00 00 2B 17 BB 3C 7F 00 B2 4D 00 5A 96 5A 98 00 00 00 00 00 00
A5 B8 A5 A7 A5 F3 A5 C8 A5 EB 00 00 01 5E FF FB A8 7F 6C B2 59 6C A8 30 80 30 A8 00 00 00 00 00 01 5E FF FB A8 7F 6C B2 59 6C A8 30 C6 30 A8 00 00 00 00 00 01 5E FF FB A8 7F 6C B2 59 6C A8 30 30 30 A8 00 00 00 00 00
A4 CF A4 B0 A4 EC A3 B6 00 00 00 00 00 0F FF F9 00 7F 00 C0 60 00 80 80 80 80 00 00 00 00 00 00 00 0F FF F9 00 7F 00 C0 60 00 80 90 80 90 00 00 00 00 00 00 00 0F FF F9 00 7F 00 C0 60 00 80 A0 50 A0 00 00 00 00 00 00
A4 B7 A4 F3 A4 B7 A3 B2 00 00 00 00 01 1E FF FF 80 7F 00 B2 62 00 80 80 80 80 C6 00 00 00 00 00 01 1E FF FF 80 7F 00 B2 62 00 80 80 80 80 C6 00 00 00 00 00 01 1E FF FF 80 7F 00 B2 62 00 80 80 80 80 C6 00 00 00 00 00
R1 Gym Leader Castle: Brock A5 BF A5 B1 A5 B7 00 00 00 00 00 00 01 8F FD 7B 90 7F 00 B2 4D 00 80 80 80 80 B2 00 00 00 00 00 01 8F FF FB 90 7F 00 B2 4D 00 80 80 80 80 B2 00 00 00 00 00 01 8F FF FB 90 7F 00 B2 4D 00 B2 80 80 80 B2 00 00 00 00 00
A5 DE A5 C1 A5 B9 00 00 00 00 00 00 01 8B FF FB 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 8B FF FB 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00 01 8B FF FB 00 7F 00 B2 4D 00 80 80 80 80 80 00 00 00 00 00
A5 AD A5 E7 A5 A6 00 00 00 00 00 00 01 8A 6F FB A0 7F 00 B2 4D 00 80 80 A0 90 40 00 00 00 00 00 01 8A 6F FB A0 7F 00 B2 4D 00 80 80 A0 90 40 00 00 00 00 00 01 8A 6F FB A0 7F 00 B2 4D 00 80 80 A0 90 40 00 00 00 00 00
A5 CA A5 C4 A5 E1 00 00 00 00 00 00 01 8B B7 FB 80 7F 00 B2 4D 00 80 80 80 80 00 00 00 00 00 00 01 8B B7 FB 80 7F 00 B2 4D 00 80 80 80 80 00 00 00 00 00 00 01 8B B7 FB 80 7F 00 B2 4D 00 80 80 80 80 00 00 00 00 00 00
A5 B5 A5 AB A5 AD 00 00 00 00 00 00 01 8B FF FF 40 7F 00 B2 60 00 80 80 80 80 00 00 00 00 00 00 01 8B FF FF 40 7F 00 B2 60 00 80 80 80 80 00 00 00 00 00 00 01 8B FF FF 40 7F 00 B2 60 00 80 80 80 80 00 00 00 00 00 00
A4 AD A4 C8 A4 A6 A4 B7 A3 B5 00 00 01 0B 9E B8 40 7F 00 B2 4D 80 30 10 FF 10 80 80 80 00 00 00 01 0B 9E B8 40 7F 00 B2 4D 80 30 10 FF 10 80 80 80 00 00 00 01 0B 9E B8 40 7F 00 B2 4D 80 30 10 FF 10 80 80 80 00 00 00
A4 C7 A4 F3 A4 AD A3 B2 00 00 00 00 01 0B BF F9 A0 7F 00 A0 4D 00 60 60 C0 A0 80 00 00 00 00 00 01 0B BF F9 A0 7F 00 A0 4D 00 60 60 C0 A0 80 00 00 00 00 00 01 0B BF F9 A0 7F 00 A0 4D 00 60 60 C0 A0 80 00 00 00 00 00
A4 AA A4 CD A4 A8 00 00 00 00 00 00 01 6B 9F F9 C0 7F 00 B1 4D 00 80 80 B1 B1 00 00 00 00 00 00 01 6B 9F F9 C0 7F 00 B1 4D 00 80 80 B1 B1 00 00 00 00 00 00 01 6B 9F F9 C0 7F 00 B1 4D 00 80 80 B1 B1 00 00 00 00 00 00
A5 B5 A5 A4 A5 B3 A3 B3 00 00 00 00 01 4F F7 FB A0 7F 00 B1 4D 00 80 80 A0 A0 00 00 00 00 00 00 01 4F F7 FB A0 7F 00 B1 4D 00 80 80 A0 A0 00 00 00 00 00 00 01 4F F7 FB A0 7F 00 B1 4D 00 80 80 A0 A0 00 00 00 00 00 00
A4 AD A4 C8 A4 A6 A4 B7 A3 B6 00 00 01 4B F7 FB 80 7F 00 B2 4D 00 30 10 FF 10 00 00 00 00 00 00 01 4B F7 FB 80 7F 00 B2 4D 00 30 10 FF 10 00 00 00 00 00 00 01 4B F7 FB 80 7F 00 B2 4D 00 30 10 FF 10 00 00 00 00 00 00
Game text
- 0x783A88-0x783E40 : Prof. Oak's Laboratory
- 0x783E7F-0x783FF7 : Pokémon PC
- 0x784114-0x784420 : Pokémon Box #1
- 0x78449C-0x7846A3 : Items Box
- 0x784784-0x7849AD : Pokémon Box #2
- 0x784B48-0x785055 : Pokémon List PC
- 0x7850C0-0x785196 : Pokémon Moves screen
- 0x7851CC-0x7852E2 : Pokémon PC Save screen
- 0x78533C-0x7853A0 : Pokédex menu
- 0x785580-0x785821 : Pokédex Areas
- 0x785AA4-0x789D06 : Pokédex descriptions
- 0x789FA8-0x78D84C : Moves descriptions
- 0x78DC3C-0x78EB75 : Items descriptions
- 0x78EBE7-0x78F4F4 : HMs/TMs descriptions
- 0x78F510-0x78F66F : Transfer Pak errors
- 0x78F7A0-0x78FD32 : Game menus
- 0x79170C-0x791996 : Surfing Pikachu
- 0x791B34-0x79245A : Mini-Games
- 0x792710-0x793462 : Battle + Pokémon Gift
- 0x7934C8-0x793660 : Hall of Fame
- 0x7937B8-0x7949D6 : Cups Rules
- 0x794A70-0x794CE7 : Pokémon Trade Service
- 0x794DA0-0x794EC1 : Trainer Names
- 0x794F80-0x7950A1 : Trainer Names
- 0x795310-0x7957F3 : Pokémon Names
- 0x795A98-0x7960A5 : Moves Names
- 0x7960F4-0x79615B : Types Names
- 0x79654C-0x796870 : Item Names
- 0x7968E2-0x7969EE : HM TM Names
- 0x796C50-0x7970EA : Species Names
- 0x79710F-0x797138 : Status Names
- 0x797184-0x797347 : Gallery #1
- 0x797470-0x797E58 : Gallery #2
- 0x798154-0x798CC6 : Credits
- 0x799077-0x79907E : FRAGMENT (Unused)
Experience
Growth Rate groups
- 0x7DE453-0x7DE464 - Experience formulas for each Growth Rate group.
%AAAABBBB %SCCCCCCC %DDDDDDDD %EEEEEEEE (A×Level³)÷B + Sign(C×Level²) + (D×Level) - E The last two groups are to be read xx 00 00 00
11 00 00 00 ;1,000,000 Exp - Medium Fast 34 0A 00 1E ; 849,970 Exp - Unused 1 34 14 00 46 ; 949,930 Exp - Unused 2 65 8F 64 8C ;1,059,860 Exp - Medium Slow 45 ; 800,000 Exp - Fast 54 ;1,250,000 Exp - Slow
Graphics 4
Pokémon miniatures
- 0x82098F-0x89758E - Pokémon miniatures, 5×5 tiles each, 3200 bytes each (151 Pokémon + Substitute)
CPU and Rental Pokémon pointers
0x898000-0x8983EF - CPU and Rental Pokémon pointers
00 00 00 00 00 00 00 00 00 03 1E B0 00 00 00 3E ;Pointer array length : 0x3E ;Length: 0x31EB0 00 00 03 F0 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Petit Cup - Round 1 ;Length: 0x1190 00 00 15 80 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Pika Cup - Round 1 ;Length: 0x1190 00 00 27 10 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Prime Cup/Poké Ball - Round 1 ;Length: 0x1190 00 00 38 A0 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Prime Cup/Great Ball - Round 1 ;Length: 0x1190 00 00 4A 30 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Prime Cup/Ultra Ball - Round 1 ;Length: 0x1190 00 00 5B C0 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Prime Cup/Master Ball - Round 1 ;Length: 0x1190 00 00 6D 50 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Poké Ball - Round 1 ;Length: 0x1190 00 00 7E E0 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Great Ball - Round 1 ;Length: 0x1190 00 00 6D 50 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Poké Ball - Round 1 ;Length: 0x1190 00 00 7E E0 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Great Ball - Round 1 ;Length: 0x1190 00 00 90 70 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Ultra Ball - Round 1 ;Length: 0x1190 00 00 A2 00 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Master Ball - Round 1 ;Length: 0x1190 00 00 B3 90 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #1 - Round 1 ;Length: 0x8D0 00 00 BC 60 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #2 - Round 1 ;Length: 0x8D0 00 00 C5 30 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #3 - Round 1 ;Length: 0x8D0 00 00 CE 00 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #4 - Round 1 ;Length: 0x8D0 00 00 D6 D0 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #5 - Round 1 ;Length: 0x8D0 00 00 DF A0 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #6 - Round 1 ;Length: 0x8D0 00 00 E8 70 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #7 - Round 1 ;Length: 0x8D0 00 00 F1 40 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #8 - Round 1 ;Length: 0x8D0 00 00 FA 10 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Elite 4 - Round 1 ;Length: 0x8D0 00 01 02 E0 00 00 0F 60 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Rival - Round 1 ;Length: 0xF60 00 01 12 40 00 00 02 40 00 00 00 00 00 00 00 00 ;cpu Mewtwo - Round 1 ;Length: 0x240 00 01 14 80 00 00 0E D0 00 00 00 00 00 00 00 00 ;rental Petit Cup ;Length: 0xED0 00 01 23 50 00 00 1D E0 00 00 00 00 00 00 00 00 ;rental Pika Cup ;Length: 0x1DE0 00 01 41 30 00 00 30 F0 00 00 00 00 00 00 00 00 ;rental Prime Cup / Mewtwo - Round 1 ;Length: 0x30F0 00 01 72 20 00 00 30 F0 00 00 00 00 00 00 00 00 ;rental Poké Cup ;Length: 0x30F0 00 01 72 20 00 00 30 F0 00 00 00 00 00 00 00 00 ;rental Poké Cup ;Length: 0x30F0 00 01 72 20 00 00 30 F0 00 00 00 00 00 00 00 00 ;rental Poké Cup ;Length: 0x30F0 00 01 A3 10 00 00 04 70 00 00 00 00 00 00 00 00 ;cpu Battle Now - Round 1 ;Length: 0x470 00 01 A7 80 00 00 30 F0 00 00 00 00 00 00 00 00 ;rental Gym Leader Castle ;Length: 0x30F0 00 01 D8 70 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Petit Cup - Round 2 ;Length: 0x1190 00 01 EA 00 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Pika Cup - Round 2 ;Length: 0x1190 00 01 FB 90 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Prime Cup/Poké Ball - Round 2 ;Length: 0x1190 00 02 0D 20 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Prime Cup/Great Ball - Round 2 ;Length: 0x1190 00 02 1E B0 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Prime Cup/Ultra Ball - Round 2 ;Length: 0x1190 00 02 30 40 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Prime Cup/Master Ball - Round 2 ;Length: 0x1190 00 02 41 D0 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Poké Ball - Round 2 ;Length: 0x1190 00 02 53 60 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Great Ball - Round 2 ;Length: 0x1190 00 02 41 D0 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Poké Ball - Round 2 ;Length: 0x1190 00 02 53 60 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Great Ball - Round 2 ;Length: 0x1190 00 02 64 F0 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Ultra Ball - Round 2 ;Length: 0x1190 00 02 76 80 00 00 11 90 00 00 00 00 00 00 00 00 ;cpu Poké Cup/Master Ball - Round 2 ;Length: 0x1190 00 02 88 10 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #1 - Round 2 ;Length: 0x8D0 00 02 90 E0 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #2 - Round 2 ;Length: 0x8D0 00 02 99 B0 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #3 - Round 2 ;Length: 0x8D0 00 02 A2 80 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #4 - Round 2 ;Length: 0x8D0 00 02 AB 50 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #5 - Round 2 ;Length: 0x8D0 00 02 B4 20 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #6 - Round 2 ;Length: 0x8D0 00 02 BC F0 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #7 - Round 2 ;Length: 0x8D0 00 02 C5 C0 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Gym #8 - Round 2 ;Length: 0x8D0 00 02 CE 90 00 00 08 D0 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Elite 4 - Round 2 ;Length: 0x8D0 00 02 D7 60 00 00 0F 60 00 00 00 00 00 00 00 00 ;cpu Gym Leader Castle Rival - Round 2 ;Length: 0xF60 00 02 E6 C0 00 00 02 40 00 00 00 00 00 00 00 00 ;cpu Mewtwo - Round 2 ;Length: 0x240 00 01 14 80 00 00 0E D0 00 00 00 00 00 00 00 00 ;rental Petit Cup ;Length: 0xED0 00 01 23 50 00 00 1D E0 00 00 00 00 00 00 00 00 ;rental Pika Cup ;Length: 0x1DE0 00 02 E9 00 00 00 31 40 00 00 00 00 00 00 00 00 ;rental Prime Cup / Mewtwo - Round 2 ;Length: 0x3140 00 01 72 20 00 00 30 F0 00 00 00 00 00 00 00 00 ;rental Poké Cup ;Length: 0x30F0 00 01 72 20 00 00 30 F0 00 00 00 00 00 00 00 00 ;rental Poké Cup ;Length: 0x30F0 00 01 72 20 00 00 30 F0 00 00 00 00 00 00 00 00 ;rental Poké Cup ;Length: 0x30F0 00 03 1A 40 00 00 04 70 00 00 00 00 00 00 00 00 ;cpu Battle Now - Round 2 ;Length: 0x470 00 01 A7 80 00 00 30 F0 00 00 00 00 00 00 00 00 ;rental Gym Leader Castle ;Length: 0x30F0
CPU Pokémon
CPU Trainer data 00 00 00 aa bb bb bb bb bb bb bb 00 00 00 00 00 bb bb bb bb bb bb bb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cc dd 00 ee aa - Number of CPU Trainers in Cup bb - CPU Trainer name cc - CPU Trainer sprite dd - ee - Number of Pokémon
Pokémon data aa 00 bb bb cc dd ee ee 00 ff ff ff ff 00 gg gg 00 hh hh hh ii ii ii ii ii ii ii ii ii ii jj jj kk kk kk kk cc 00 mm mm mm mm mm mm mm mm mm mm qq qq qq qq qq qq qq qq qq qq qq rr rr rr rr rr rr rr rr aa - Pokédex ID bb - Current HP cc - Level dd - Status ee - Types ff - Moves gg - Trainer ID hh - Experience ii - Stat Experience jj - IVs kk - PPs mm - Stats qq - Nickname rr - Trainer
- 0x8983F0 - Petit Cup - Round 1
- 0x899580 - Pika Cup - Round 1
- 0x89A710 - Prime Cup/Poké Ball - Round 1
- 0x89B8A0 - Prime Cup/Great Ball - Round 1
- 0x89CA30 - Prime Cup/Ultra Ball - Round 1
- 0x89DBC0 - Prime Cup/Master Ball - Round 1
- 0x89ED50 - Poké Cup/Poké Ball - Round 1
- 0x89FEE0 - Poké Cup/Great Ball - Round 1
- 0x8A1070 - Poké Cup/Ultra Ball - Round 1
- 0x8A2200 - Poké Cup/Master Ball - Round 1
- 0x8A3390 - Gym Leader Castle - Round 1
- 0x8A9240 - Mewtwo - Round 1
- 0x8B5870 - Petit Cup - Round 2
- 0x8B6A00 - Pika Cup - Round 2
- 0x8B7B90 - Prime Cup/Poké Ball - Round 2
- 0x8B8D20 - Prime Cup/Great Ball - Round 2
- 0x8B9EB0 - Prime Cup/Ultra Ball - Round 2
- 0x8BB040 - Prime Cup/Master Ball - Round 2
- 0x8BC1D0 - Poké Cup/Poké Ball - Round 2
- 0x8BD360 - Poké Cup/Great Ball - Round 2
- 0x8BE4F0 - Poké Cup/Ultra Ball - Round 2
- 0x8BF680 - Poké Cup/Master Ball - Round 2
- 0x8C0810 - Gym Leader Castle - Round 2
- 0x8C66C0 - Mewtwo - Round 2
Rental Pokémon
Rental data 00 00 00 aa aa - Number of rental Pokémon
Pokémon data aa 00 bb bb cc dd ee ee 00 ff ff ff ff 00 gg gg 00 hh hh hh ii ii ii ii ii ii ii ii ii ii jj jj kk kk kk kk cc 00 mm mm mm mm mm mm mm mm mm mm qq qq qq qq qq qq qq qq qq qq qq rr rr rr rr rr rr rr rr aa - Pokédex ID bb - Current HP cc - Level dd - Status ee - Types ff - Moves gg - Trainer ID hh - Experience ii - Stat Experience jj - IVs kk - PPs mm - Stats qq - Nickname rr - Trainer
- 0x8A9480 - Petit Cup
- 0x8AA350 - Pika Cup
- 0x8AC130 - Prime Cup / Mewtwo - Round 1
- 0x8AF220 - Poké Cup
- 0x8B2780 - Gym Leader Castle
- 0x8C6900 - Prime Cup / Mewtwo - Round 2
3D Models pointers
- 0x920000 - 3D Models pointers
00 00 00 EF 00 00 00 00 00 C9 B7 B0 00 00 00 D7 ;215 elements 00 00 0D 80 00 00 DE 90 00 00 00 00 00 00 00 00 ;Bulbasaur 00 00 EC 10 00 02 11 40 00 00 00 00 00 00 00 00 ;Ivysaur 00 02 FD 50 00 02 50 90 00 00 00 00 00 00 00 00 ;Venusaur 00 05 4D E0 00 01 8D 40 00 00 00 00 00 00 00 00 ;Charmander 00 06 DB 20 00 01 3F A0 00 00 00 00 00 00 00 00 ;Charmeleon 00 08 1A C0 00 01 CD 60 00 00 00 00 00 00 00 00 ;Charizard 00 09 E8 20 00 00 F5 30 00 00 00 00 00 00 00 00 ;Squirtle 00 0A DD 50 00 01 B6 A0 00 00 00 00 00 00 00 00 ;Wartortle 00 0C 93 F0 00 01 5A 60 00 00 00 00 00 00 00 00 ;Blastoise 00 0D EE 50 00 00 6B 60 00 00 00 00 00 00 00 00 ;Caterpie 00 0E 59 B0 00 00 53 30 00 00 00 00 00 00 00 00 ;... 00 0E AC E0 00 00 C9 60 00 00 00 00 00 00 00 00 00 0F 76 40 00 00 8C 60 00 00 00 00 00 00 00 00 00 10 02 A0 00 00 3E 60 00 00 00 00 00 00 00 00 00 10 41 00 00 01 05 30 00 00 00 00 00 00 00 00 00 11 46 30 00 01 FD C0 00 00 00 00 00 00 00 00 00 13 43 F0 00 02 70 C0 00 00 00 00 00 00 00 00 00 15 B4 B0 00 02 65 50 00 00 00 00 00 00 00 00 00 18 1A 00 00 01 AF 50 00 00 00 00 00 00 00 00 00 19 C9 50 00 00 F4 50 00 00 00 00 00 00 00 00 00 1A BD A0 00 01 ED A0 00 00 00 00 00 00 00 00 00 1C AB 40 00 02 47 10 00 00 00 00 00 00 00 00 00 1E F2 50 00 01 17 20 00 00 00 00 00 00 00 00 00 20 09 70 00 00 E1 C0 00 00 00 00 00 00 00 00 00 20 EB 30 00 01 96 80 00 00 00 00 00 00 00 00 00 22 81 B0 00 02 53 60 00 00 00 00 00 00 00 00 00 24 D5 10 00 01 00 E0 00 00 00 00 00 00 00 00 00 25 D5 F0 00 02 44 B0 00 00 00 00 00 00 00 00 00 28 1A A0 00 00 DB F0 00 00 00 00 00 00 00 00 00 28 F6 90 00 00 FA 30 00 00 00 00 00 00 00 00 00 29 F0 C0 00 01 78 B0 00 00 00 00 00 00 00 00 00 2B 69 70 00 00 D5 90 00 00 00 00 00 00 00 00 00 2C 3F 00 00 00 F7 80 00 00 00 00 00 00 00 00 00 2D 36 80 00 01 60 10 00 00 00 00 00 00 00 00 00 2E 96 90 00 01 10 F0 00 00 00 00 00 00 00 00 00 2F A7 80 00 00 F5 80 00 00 00 00 00 00 00 00 00 30 9D 00 00 01 81 50 00 00 00 00 00 00 00 00 00 32 1E 50 00 01 EF C0 00 00 00 00 00 00 00 00 00 34 0E 10 00 00 AA 70 00 00 00 00 00 00 00 00 00 34 B8 80 00 00 EA 40 00 00 00 00 00 00 00 00 00 35 A2 C0 00 00 B3 00 00 00 00 00 00 00 00 00 00 36 55 C0 00 00 FC A0 00 00 00 00 00 00 00 00 00 37 52 60 00 01 4E 40 00 00 00 00 00 00 00 00 00 38 A0 A0 00 01 99 70 00 00 00 00 00 00 00 00 00 3A 3A 10 00 00 AE D0 00 00 00 00 00 00 00 00 00 3A E8 E0 00 00 96 50 00 00 00 00 00 00 00 00 00 3B 7F 30 00 00 8F 10 00 00 00 00 00 00 00 00 00 3C 0E 40 00 01 68 A0 00 00 00 00 00 00 00 00 00 3D 76 E0 00 00 9E B0 00 00 00 00 00 00 00 00 00 3E 15 90 00 00 59 80 00 00 00 00 00 00 00 00 00 3E 6F 10 00 00 99 00 00 00 00 00 00 00 00 00 00 3F 08 10 00 01 09 C0 00 00 00 00 00 00 00 00 00 40 11 D0 00 01 8C E0 00 00 00 00 00 00 00 00 00 41 9E B0 00 01 05 40 00 00 00 00 00 00 00 00 00 42 A3 F0 00 01 47 60 00 00 00 00 00 00 00 00 00 43 EB 50 00 01 6F 00 00 00 00 00 00 00 00 00 00 45 5A 50 00 01 41 A0 00 00 00 00 00 00 00 00 00 46 9B F0 00 00 FA C0 00 00 00 00 00 00 00 00 00 47 96 B0 00 02 37 E0 00 00 00 00 00 00 00 00 00 49 CE 90 00 00 F7 D0 00 00 00 00 00 00 00 00 00 4A C6 60 00 00 F3 A0 00 00 00 00 00 00 00 00 00 4B BA 00 00 01 44 70 00 00 00 00 00 00 00 00 00 4C FE 70 00 00 E2 A0 00 00 00 00 00 00 00 00 00 4D E1 10 00 01 A2 50 00 00 00 00 00 00 00 00 00 4F 83 60 00 01 67 30 00 00 00 00 00 00 00 00 00 50 EA 90 00 01 6A F0 00 00 00 00 00 00 00 00 00 52 55 80 00 01 28 20 00 00 00 00 00 00 00 00 00 53 7D A0 00 02 12 10 00 00 00 00 00 00 00 00 00 55 8F B0 00 01 50 20 00 00 00 00 00 00 00 00 00 56 DF D0 00 01 0B 50 00 00 00 00 00 00 00 00 00 57 EB 20 00 01 1A 60 00 00 00 00 00 00 00 00 00 59 05 80 00 00 C0 40 00 00 00 00 00 00 00 00 00 59 C5 C0 00 01 2D A0 00 00 00 00 00 00 00 00 00 5A F3 60 00 00 C4 E0 00 00 00 00 00 00 00 00 00 5B B8 40 00 01 3B 60 00 00 00 00 00 00 00 00 00 5C F3 A0 00 01 2B 70 00 00 00 00 00 00 00 00 00 5E 1F 10 00 01 DC 80 00 00 00 00 00 00 00 00 00 5F FB 90 00 01 E1 60 00 00 00 00 00 00 00 00 00 61 DC F0 00 00 B6 60 00 00 00 00 00 00 00 00 00 62 93 50 00 01 09 F0 00 00 00 00 00 00 00 00 00 63 9D 40 00 00 4C 40 00 00 00 00 00 00 00 00 00 63 E9 80 00 00 DF 20 00 00 00 00 00 00 00 00 00 64 C8 A0 00 01 B0 C0 00 00 00 00 00 00 00 00 00 66 79 60 00 01 52 20 00 00 00 00 00 00 00 00 00 67 CB 80 00 02 25 F0 00 00 00 00 00 00 00 00 00 69 F1 70 00 00 9B 30 00 00 00 00 00 00 00 00 00 6A 8C A0 00 00 CC D0 00 00 00 00 00 00 00 00 00 6B 59 70 00 01 64 00 00 00 00 00 00 00 00 00 00 6C BD 70 00 01 6F 60 00 00 00 00 00 00 00 00 00 6E 2C D0 00 00 70 C0 00 00 00 00 00 00 00 00 00 6E 9D 90 00 00 87 90 00 00 00 00 00 00 00 00 00 6F 25 20 00 00 6E 20 00 00 00 00 00 00 00 00 00 6F 93 40 00 01 0E 50 00 00 00 00 00 00 00 00 00 70 A1 90 00 00 C1 60 00 00 00 00 00 00 00 00 00 71 62 F0 00 00 F0 10 00 00 00 00 00 00 00 00 00 72 53 00 00 01 1F 50 00 00 00 00 00 00 00 00 00 73 72 50 00 01 F9 10 00 00 00 00 00 00 00 00 00 75 6B 60 00 00 C2 00 00 00 00 00 00 00 00 00 00 76 2D 60 00 01 06 D0 00 00 00 00 00 00 00 00 00 77 34 30 00 00 5C 60 00 00 00 00 00 00 00 00 00 77 90 90 00 00 94 A0 00 00 00 00 00 00 00 00 00 78 25 30 00 00 D1 20 00 00 00 00 00 00 00 00 00 78 F6 50 00 02 76 E0 00 00 00 00 00 00 00 00 00 7B 6D 30 00 01 08 A0 00 00 00 00 00 00 00 00 00 7C 75 D0 00 00 F0 60 00 00 00 00 00 00 00 00 00 7D 66 30 00 01 42 40 00 00 00 00 00 00 00 00 00 7E A8 70 00 00 D8 40 00 00 00 00 00 00 00 00 00 7F 80 B0 00 01 A1 00 00 00 00 00 00 00 00 00 00 81 21 B0 00 00 A4 10 00 00 00 00 00 00 00 00 00 81 C5 C0 00 00 EC 00 00 00 00 00 00 00 00 00 00 82 B1 C0 00 01 29 60 00 00 00 00 00 00 00 00 00 83 DB 20 00 01 2F 00 00 00 00 00 00 00 00 00 00 85 0A 20 00 01 79 70 00 00 00 00 00 00 00 00 00 86 83 90 00 02 39 70 00 00 00 00 00 00 00 00 00 88 BD 00 00 02 50 B0 00 00 00 00 00 00 00 00 00 8B 0D B0 00 00 86 20 00 00 00 00 00 00 00 00 00 8B 93 D0 00 00 8B F0 00 00 00 00 00 00 00 00 00 8C 1F C0 00 00 E0 10 00 00 00 00 00 00 00 00 00 8C FF D0 00 00 D2 F0 00 00 00 00 00 00 00 00 00 8D D2 C0 00 00 91 40 00 00 00 00 00 00 00 00 00 8E 64 00 00 01 3A 30 00 00 00 00 00 00 00 00 00 8F 9E 30 00 01 BF A0 00 00 00 00 00 00 00 00 00 91 5D D0 00 00 F7 20 00 00 00 00 00 00 00 00 00 92 54 F0 00 01 CF 20 00 00 00 00 00 00 00 00 00 94 24 10 00 01 89 70 00 00 00 00 00 00 00 00 00 95 AD 80 00 02 44 60 00 00 00 00 00 00 00 00 00 97 F1 E0 00 01 49 20 00 00 00 00 00 00 00 00 00 99 3B 00 00 02 52 C0 00 00 00 00 00 00 00 00 00 9B 8D C0 00 01 00 40 00 00 00 00 00 00 00 00 00 9C 8E 00 00 01 62 80 00 00 00 00 00 00 00 00 00 9D F0 80 00 01 69 60 00 00 00 00 00 00 00 00 00 9F 59 E0 00 00 EC D0 00 00 00 00 00 00 00 00 00 A0 46 B0 00 01 97 C0 00 00 00 00 00 00 00 00 00 A1 DE 70 00 01 9D 50 00 00 00 00 00 00 00 00 00 A3 7B C0 00 01 BA 80 00 00 00 00 00 00 00 00 00 A5 36 40 00 01 C3 80 00 00 00 00 00 00 00 00 00 A6 F9 C0 00 00 3E F0 00 00 00 00 00 00 00 00 00 A7 38 B0 00 00 86 30 00 00 00 00 00 00 00 00 00 A7 BE E0 00 00 EA 40 00 00 00 00 00 00 00 00 00 A8 A9 20 00 00 78 A0 00 00 00 00 00 00 00 00 00 A9 21 C0 00 00 E5 30 00 00 00 00 00 00 00 00 ;... 00 AA 06 F0 00 01 A8 C0 00 00 00 00 00 00 00 00 ;Articuno 00 AB AF B0 00 01 79 B0 00 00 00 00 00 00 00 00 ;Zapdos 00 AD 29 60 00 01 BA D0 00 00 00 00 00 00 00 00 ;Moltres 00 AE E4 30 00 01 22 E0 00 00 00 00 00 00 00 00 ;Dratini 00 B0 07 10 00 01 EA B0 00 00 00 00 00 00 00 00 ;Dragonair 00 B1 F1 C0 00 00 AA 70 00 00 00 00 00 00 00 00 ;Dragonite 00 B2 9C 30 00 00 F1 C0 00 00 00 00 00 00 00 00 ;Mewtwo 00 B3 8D F0 00 01 61 D0 00 00 00 00 00 00 00 00 ;Mew 00 B4 EF C0 00 02 07 B0 00 00 00 00 00 00 00 00 ;Substitute 00 B6 F7 70 00 01 5A 50 00 00 00 00 00 00 00 00 ;Pikachu (Yellow) 00 B8 51 C0 00 00 51 80 00 00 00 00 00 00 00 00 00 B8 A3 40 00 01 EF 40 00 00 00 00 00 00 00 00 00 BA 92 80 00 00 1B 90 00 00 00 00 00 00 00 00 00 BA AE 10 00 00 32 30 00 00 00 00 00 00 00 00 00 BA E0 40 00 00 08 90 00 00 00 00 00 00 00 00 00 BA E8 D0 00 00 15 80 00 00 00 00 00 00 00 00 00 BA FE 50 00 00 33 40 00 00 00 00 00 00 00 00 00 BB 31 90 00 00 3E 60 00 00 00 00 00 00 00 00 00 BB 6F F0 00 00 A9 C0 00 00 00 00 00 00 00 00 00 BC 19 B0 00 00 74 10 00 00 00 00 00 00 00 00 00 BC 8D C0 00 00 12 A0 00 00 00 00 00 00 00 00 00 BC A0 60 00 00 0C F0 00 00 00 00 00 00 00 00 00 BC AD 50 00 00 28 50 00 00 00 00 00 00 00 00 00 BC D5 A0 00 00 36 F0 00 00 00 00 00 00 00 00 00 BD 0C 90 00 00 34 40 00 00 00 00 00 00 00 00 00 BD 40 D0 00 00 3A D0 00 00 00 00 00 00 00 00 00 BD 7B A0 00 00 4C 80 00 00 00 00 00 00 00 00 00 BD C8 20 00 00 4F 80 00 00 00 00 00 00 00 00 00 BE 17 A0 00 00 4C E0 00 00 00 00 00 00 00 00 00 BE 64 80 00 00 0C D0 00 00 00 00 00 00 00 00 00 BE 71 50 00 00 08 80 00 00 00 00 00 00 00 00 00 BE 79 D0 00 00 7D 80 00 00 00 00 00 00 00 00 00 BE F7 50 00 00 25 E0 00 00 00 00 00 00 00 00 00 BF 1D 30 00 00 80 50 00 00 00 00 00 00 00 00 00 BF 9D 80 00 00 04 F0 00 00 00 00 00 00 00 00 00 BF A2 70 00 00 73 70 00 00 00 00 00 00 00 00 00 C0 15 E0 00 00 73 20 00 00 00 00 00 00 00 00 00 C0 89 00 00 00 22 E0 00 00 00 00 00 00 00 00 00 C0 AB E0 00 00 0A A0 00 00 00 00 00 00 00 00 00 C0 B6 80 00 00 07 20 00 00 00 00 00 00 00 00 00 C0 BD A0 00 00 2F D0 00 00 00 00 00 00 00 00 00 C0 ED 70 00 00 0E C0 00 00 00 00 00 00 00 00 00 C0 FC 30 00 02 62 A0 00 00 00 00 00 00 00 00 00 C3 5E D0 00 00 08 80 00 00 00 00 00 00 00 00 00 C3 67 50 00 00 08 80 00 00 00 00 00 00 00 00 00 C3 6F D0 00 00 08 80 00 00 00 00 00 00 00 00 00 C3 78 50 00 00 08 80 00 00 00 00 00 00 00 00 00 C3 80 D0 00 00 08 80 00 00 00 00 00 00 00 00 00 C3 89 50 00 00 08 80 00 00 00 00 00 00 00 00 00 C3 91 D0 00 00 08 80 00 00 00 00 00 00 00 00 00 C3 9A 50 00 00 08 80 00 00 00 00 00 00 00 00 00 C3 A2 D0 00 00 08 80 00 00 00 00 00 00 00 00 00 C3 AB 50 00 00 08 80 00 00 00 00 00 00 00 00 00 C3 B3 D0 00 00 1F 80 00 00 00 00 00 00 00 00 00 C3 D3 50 00 00 EC 20 00 00 00 00 00 00 00 00 00 C4 BF 70 00 00 8B 80 00 00 00 00 00 00 00 00 00 C5 4A F0 00 00 3B E0 00 00 00 00 00 00 00 00 00 C5 86 D0 00 00 1B 70 00 00 00 00 00 00 00 00 00 C5 A2 40 00 00 13 C0 00 00 00 00 00 00 00 00 00 C5 B6 00 00 00 48 80 00 00 00 00 00 00 00 00 00 C5 FE 80 00 00 09 A0 00 00 00 00 00 00 00 00 00 C6 08 20 00 00 0A 20 00 00 00 00 00 00 00 00 00 C6 12 40 00 00 0A 30 00 00 00 00 00 00 00 00 00 C6 1C 70 00 00 09 A0 00 00 00 00 00 00 00 00 00 C6 26 10 00 00 2B A0 00 00 00 00 00 00 00 00 00 C6 51 B0 00 00 2B E0 00 00 00 00 00 00 00 00 00 C6 7D 90 00 00 2B E0 00 00 00 00 00 00 00 00 00 C6 A9 70 00 00 2C 10 00 00 00 00 00 00 00 00 00 C6 D5 80 00 00 04 60 00 00 00 00 00 00 00 00 00 C6 D9 E0 00 00 54 E0 00 00 00 00 00 00 00 00 00 C7 2E C0 00 00 41 80 00 00 00 00 00 00 00 00 00 C7 70 40 00 00 42 50 00 00 00 00 00 00 00 00 00 C7 B2 90 00 00 89 B0 00 00 00 00 00 00 00 00 00 C8 3C 40 00 01 7B 70 00 00 00 00 00 00 00 00
3D Models
- 0x920D80 - 0x14C927F (0x120298F ?) - Pokémon Models
- 0x14C9280 - 0x15A4000 - Mini-games / Trophies / Stages Models
Internal Data for Pokémon Stadium
| |
---|---|