summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokedex.s5294
-rw-r--r--data/graphics/pokemon/footprint_table.inc415
-rw-r--r--data/pokedex.s538
-rw-r--r--data/pokedex_entries.inc4164
-rw-r--r--data/pokedex_orders.inc1191
-rw-r--r--include/graphics.h2412
-rw-r--r--include/menu.h2
-rw-r--r--include/pokedex.h144
-rw-r--r--include/pokemon.h3
-rw-r--r--include/songs.h42
-rw-r--r--include/text.h53
-rwxr-xr-xld_script.txt3
-rw-r--r--src/data/pokedex_entries_en.h9651
-rw-r--r--src/data/pokedex_orders.h1192
-rw-r--r--src/menu.c2
-rw-r--r--src/pokedex.c4176
-rw-r--r--src/pokemon_3.c2
-rw-r--r--src/starter_choose.c2
18 files changed, 16575 insertions, 12711 deletions
diff --git a/asm/pokedex.s b/asm/pokedex.s
deleted file mode 100644
index 6416bf938..000000000
--- a/asm/pokedex.s
+++ /dev/null
@@ -1,5294 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8090750
-sub_8090750: @ 8090750
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08090778 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r6, [r0, 0xA]
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x6
- bhi _0809079C
- lsls r0, 2
- ldr r1, _0809077C @ =_08090780
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08090778: .4byte gTasks
-_0809077C: .4byte _08090780
- .align 2, 0
-_08090780:
- .4byte _0809079C
- .4byte _080907E0
- .4byte _0809085C
- .4byte _080908A0
- .4byte _08090960
- .4byte _080909B8
- .4byte _080909F4
-_0809079C:
- ldr r0, _080907D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080907AA
- b _08090A26
-_080907AA:
- ldr r1, _080907D4 @ =gUnknown_03005CEC
- ldr r0, _080907D8 @ =gMain
- ldr r0, [r0, 0xC]
- str r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 1
- bl sub_8091060
- ldr r1, _080907DC @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- b _08090A26
- .align 2, 0
-_080907D0: .4byte gPaletteFade
-_080907D4: .4byte gUnknown_03005CEC
-_080907D8: .4byte gMain
-_080907DC: .4byte gTasks
-_080907E0:
- ldr r0, _08090840 @ =gPokedexMenu_Gfx
- ldr r1, _08090844 @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _08090848 @ =gUnknown_08E96BD4
- ldr r4, _0809084C @ =0x06007800
- adds r1, r4, 0
- bl LZ77UnCompVram
- movs r2, 0
- lsls r5, r7, 2
- mov r12, r5
- movs r0, 0x80
- lsls r0, 6
- adds r6, r0, 0
- ldr r3, _08090850 @ =0x0000027f
-_08090800:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r5, [r0]
- adds r1, r6, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _08090800
- ldr r0, _08090854 @ =gTasks
- mov r1, r12
- adds r4, r1, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0xA]
- movs r2, 0xFF
- lsls r2, 2
- movs r1, 0x2
- bl sub_8091738
- bl ResetPaletteFade
- ldr r0, _08090858 @ =gPokedexMenu_Pal + 0x2
- movs r1, 0x21
- movs r2, 0x9E
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08090A26
- .align 2, 0
-_08090840: .4byte gPokedexMenu_Gfx
-_08090844: .4byte 0x06004000
-_08090848: .4byte gUnknown_08E96BD4
-_0809084C: .4byte 0x06007800
-_08090850: .4byte 0x0000027f
-_08090854: .4byte gTasks
-_08090858: .4byte gPokedexMenu_Pal + 0x2
-_0809085C:
- ldr r4, _0809088C @ =gWindowConfig_81E7064
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r2, _08090890 @ =0x0600c000
- add r1, sp, 0x4
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08090894 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08090898 @ =0x81000100
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r1, _0809089C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _080909E0
- .align 2, 0
-_0809088C: .4byte gWindowConfig_81E7064
-_08090890: .4byte 0x0600c000
-_08090894: .4byte 0x040000d4
-_08090898: .4byte 0x81000100
-_0809089C: .4byte gTasks
-_080908A0:
- ldr r0, _080908C8 @ =gDexText_RegisterComplete
- movs r1, 0x2
- movs r2, 0
- movs r3, 0xD0
- bl sub_8072BD8
- bl IsNationalPokedexEnabled
- cmp r0, 0
- bne _080908CC
- adds r0, r6, 0
- bl NationalToHoennOrder
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- movs r2, 0x3
- bl sub_8091154
- b _080908D6
- .align 2, 0
-_080908C8: .4byte gDexText_RegisterComplete
-_080908CC:
- adds r0, r6, 0
- movs r1, 0xD
- movs r2, 0x3
- bl sub_8091154
-_080908D6:
- adds r0, r6, 0
- movs r1, 0x10
- movs r2, 0x3
- bl sub_80911C8
- ldr r0, _0809094C @ =gDexText_UnknownPoke
- movs r1, 0xB
- movs r2, 0x5
- bl MenuPrint
- ldr r0, _08090950 @ =gDexText_UnknownHeight
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
- ldr r0, _08090954 @ =gDexText_UnknownWeight
- movs r1, 0x10
- movs r2, 0x9
- bl MenuPrint
- lsls r4, r6, 3
- adds r4, r6
- lsls r4, 2
- ldr r6, _08090958 @ =gPokedexEntries
- adds r5, r4, r6
- adds r0, r5, 0
- movs r1, 0xB
- movs r2, 0x5
- bl sub_8091304
- ldrh r0, [r5, 0xC]
- movs r1, 0x10
- movs r2, 0x7
- bl sub_8091458
- ldrh r0, [r5, 0xE]
- movs r1, 0x10
- movs r2, 0x9
- bl sub_8091564
- adds r6, 0x10
- adds r4, r6
- ldr r0, [r4]
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- movs r1, 0xFF
- lsls r1, 2
- movs r0, 0xE
- bl sub_80917CC
- ldr r1, _0809095C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _080909E0
- .align 2, 0
-_0809094C: .4byte gDexText_UnknownPoke
-_08090950: .4byte gDexText_UnknownHeight
-_08090954: .4byte gDexText_UnknownWeight
-_08090958: .4byte gPokedexEntries
-_0809095C: .4byte gTasks
-_08090960:
- adds r0, r6, 0
- movs r1, 0x30
- movs r2, 0x38
- movs r3, 0
- bl sub_80918EC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080909AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080909B0 @ =gUnknown_03005CEC
- ldr r0, [r0]
- bl SetVBlankCallback
- ldr r1, _080909B4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0xE]
- b _080909E0
- .align 2, 0
-_080909AC: .4byte gSprites
-_080909B0: .4byte gUnknown_03005CEC
-_080909B4: .4byte gTasks
-_080909B8:
- ldr r0, _080909E8 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _080909EC @ =REG_BG3CNT
- ldr r2, _080909F0 @ =0x00000f07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r5, 0xE2
- lsls r5, 5
- adds r0, r5, 0
- strh r0, [r1]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
-_080909E0:
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _08090A26
- .align 2, 0
-_080909E8: .4byte REG_BLDCNT
-_080909EC: .4byte REG_BG3CNT
-_080909F0: .4byte 0x00000f07
-_080909F4:
- ldr r0, _08090A30 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08090A26
- adds r0, r6, 0
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl PlayCry1
- ldr r1, _08090A34 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0xC]
- strh r5, [r0, 0x10]
- ldr r1, _08090A38 @ =sub_8090A3C
- str r1, [r0]
-_08090A26:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08090A30: .4byte gPaletteFade
-_08090A34: .4byte gTasks
-_08090A38: .4byte sub_8090A3C
- thumb_func_end sub_8090750
-
- thumb_func_start sub_8090A3C
-sub_8090A3C: @ 8090A3C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08090A8C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08090AA4
- ldr r0, _08090A90 @ =0x0000fffc
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r3, _08090A94 @ =gSprites
- ldr r0, _08090A98 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r0, 0xE
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r2, _08090A9C @ =sub_8090C28
- str r2, [r0]
- ldr r0, _08090AA0 @ =sub_8090B8C
- str r0, [r1]
- b _08090B7A
- .align 2, 0
-_08090A8C: .4byte gMain
-_08090A90: .4byte 0x0000fffc
-_08090A94: .4byte gSprites
-_08090A98: .4byte gTasks
-_08090A9C: .4byte sub_8090C28
-_08090AA0: .4byte sub_8090B8C
-_08090AA4:
- movs r0, 0x1
- mov r8, r0
- ands r0, r1
- lsls r7, r6, 2
- cmp r0, 0
- beq _08090B44
- ldr r0, _08090B00 @ =gTasks
- adds r1, r7, r6
- lsls r1, 3
- adds r5, r1, r0
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08090B0C
- ldrh r4, [r5, 0xA]
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _08090B04 @ =gPokedexEntries
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, 0x14
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r1, _08090B08 @ =0x06007aca
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r1, 0x40
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- mov r0, r8
- strh r0, [r5, 0x10]
- movs r0, 0x15
- bl PlaySE
- b _08090B44
- .align 2, 0
-_08090B00: .4byte gTasks
-_08090B04: .4byte gPokedexEntries
-_08090B08: .4byte 0x06007aca
-_08090B0C:
- ldr r0, _08090B34 @ =0x0000fffc
- str r2, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _08090B38 @ =gSprites
- movs r0, 0xE
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08090B3C @ =sub_8090C28
- str r1, [r0]
- ldr r0, _08090B40 @ =sub_8090B8C
- str r0, [r5]
- b _08090B7A
- .align 2, 0
-_08090B34: .4byte 0x0000fffc
-_08090B38: .4byte gSprites
-_08090B3C: .4byte sub_8090C28
-_08090B40: .4byte sub_8090B8C
-_08090B44:
- ldr r1, _08090B68 @ =gTasks
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xC]
- adds r1, 0x1
- strh r1, [r0, 0xC]
- movs r0, 0x10
- ands r1, r0
- cmp r1, 0
- beq _08090B70
- ldr r0, _08090B6C @ =gPokedexMenu_Pal + 0x2
- movs r1, 0x51
- movs r2, 0xE
- bl LoadPalette
- b _08090B7A
- .align 2, 0
-_08090B68: .4byte gTasks
-_08090B6C: .4byte gPokedexMenu_Pal + 0x2
-_08090B70:
- ldr r0, _08090B88 @ =gPokedexMenu2_Pal + 0x2
- movs r1, 0x51
- movs r2, 0xE
- bl LoadPalette
-_08090B7A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08090B88: .4byte gPokedexMenu2_Pal + 0x2
- thumb_func_end sub_8090A3C
-
- thumb_func_start sub_8090B8C
-sub_8090B8C: @ 8090B8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08090C14 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08090C0C
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08090C18 @ =gUnknown_08D00524
- ldr r1, _08090C1C @ =0x0600c000
- movs r2, 0x80
- lsls r2, 4
- bl CpuSet
- bl sub_800D74C
- ldr r0, _08090C20 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0xA]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4, 0x22]
- lsls r1, 16
- ldrh r2, [r4, 0x20]
- orrs r1, r2
- ldrh r2, [r4, 0x26]
- lsls r2, 16
- ldrh r3, [r4, 0x24]
- orrs r2, r3
- ldr r5, _08090C24 @ =gSprites
- movs r3, 0xE
- ldrsh r4, [r4, r3]
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r3, r5
- ldrb r4, [r3, 0x5]
- lsrs r4, 4
- bl species_and_otid_get_pal
- lsls r4, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- orrs r4, r1
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r6, 0
- bl DestroyTask
-_08090C0C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08090C14: .4byte gPaletteFade
-_08090C18: .4byte gUnknown_08D00524
-_08090C1C: .4byte 0x0600c000
-_08090C20: .4byte gTasks
-_08090C24: .4byte gSprites
- thumb_func_end sub_8090B8C
-
- thumb_func_start sub_8090C28
-sub_8090C28: @ 8090C28
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- cmp r0, 0x77
- bgt _08090C3A
- adds r0, r2, 0x2
- strh r0, [r1, 0x20]
-_08090C3A:
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- cmp r0, 0x78
- ble _08090C48
- subs r0, r2, 0x2
- strh r0, [r1, 0x20]
-_08090C48:
- ldrh r2, [r1, 0x22]
- movs r3, 0x22
- ldrsh r0, [r1, r3]
- cmp r0, 0x4F
- bgt _08090C56
- adds r0, r2, 0x1
- strh r0, [r1, 0x22]
-_08090C56:
- ldrh r2, [r1, 0x22]
- movs r3, 0x22
- ldrsh r0, [r1, r3]
- cmp r0, 0x50
- ble _08090C64
- subs r0, r2, 0x1
- strh r0, [r1, 0x22]
-_08090C64:
- pop {r0}
- bx r0
- thumb_func_end sub_8090C28
-
- thumb_func_start sub_8090C68
-sub_8090C68: @ 8090C68
- push {r4,r5,lr}
- ldr r4, _08090CD0 @ =gUnknown_0202FFBC
- ldr r0, [r4]
- ldrb r1, [r0, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08090D2A
- ldr r5, _08090CD4 @ =gPokedexView
- ldr r0, [r5]
- ldr r1, _08090CD8 @ =0x0000064e
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08090CE4
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _08090CDC @ =gPokedexEntries
- ldr r0, [r4]
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, 0x14
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r0, [r5]
- ldr r1, _08090CD8 @ =0x0000064e
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, _08090CE0 @ =0x06007aca
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r1, 0x40
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x15
- bl PlaySE
- b _08090D2A
- .align 2, 0
-_08090CD0: .4byte gUnknown_0202FFBC
-_08090CD4: .4byte gPokedexView
-_08090CD8: .4byte 0x0000064e
-_08090CDC: .4byte gPokedexEntries
-_08090CE0: .4byte 0x06007aca
-_08090CE4:
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _08090D30 @ =gPokedexEntries
- ldr r0, [r4]
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, 0x10
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r0, [r5]
- ldr r1, _08090D34 @ =0x0000064e
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, _08090D38 @ =0x06007aca
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r1, 0x40
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- movs r0, 0x15
- bl PlaySE
-_08090D2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08090D30: .4byte gPokedexEntries
-_08090D34: .4byte 0x0000064e
-_08090D38: .4byte 0x06007aca
- thumb_func_end sub_8090C68
-
- thumb_func_start GetPokemonCategory
-GetPokemonCategory: @ 8090D3C
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08090D50 @ =gPokedexEntries
- adds r0, r1
- bx lr
- .align 2, 0
-_08090D50: .4byte gPokedexEntries
- thumb_func_end GetPokemonCategory
-
- thumb_func_start GetPokedexHeightWeight
-GetPokedexHeightWeight: @ 8090D54
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _08090D6A
- cmp r1, 0x1
- beq _08090D7C
- movs r0, 0x1
- b _08090D88
-_08090D6A:
- ldr r0, _08090D78 @ =gPokedexEntries
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0xC]
- b _08090D88
- .align 2, 0
-_08090D78: .4byte gPokedexEntries
-_08090D7C:
- ldr r0, _08090D8C @ =gPokedexEntries
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0xE]
-_08090D88:
- pop {r1}
- bx r1
- .align 2, 0
-_08090D8C: .4byte gPokedexEntries
- thumb_func_end GetPokedexHeightWeight
-
- thumb_func_start GetNationalPokedexFlag
-GetNationalPokedexFlag: @ 8090D90
- push {r4-r7,lr}
- lsls r0, 16
- lsls r1, 24
- lsrs r2, r1, 24
- adds r3, r2, 0
- ldr r1, _08090DC4 @ =0xffff0000
- adds r0, r1
- lsrs r1, r0, 16
- lsrs r0, 19
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x7
- ands r1, r0
- movs r0, 0x80
- lsls r0, 17
- lsls r0, r1
- lsrs r5, r0, 24
- movs r6, 0
- cmp r2, 0x1
- beq _08090E24
- cmp r2, 0x1
- bgt _08090DC8
- cmp r2, 0
- beq _08090DD4
- b _08090F0A
- .align 2, 0
-_08090DC4: .4byte 0xffff0000
-_08090DC8:
- cmp r3, 0x2
- beq _08090EBC
- cmp r3, 0x3
- bne _08090DD2
- b _08090EFC
-_08090DD2:
- b _08090F0A
-_08090DD4:
- ldr r1, _08090E14 @ =gSaveBlock2
- adds r0, r1, 0
- adds r0, 0x5C
- adds r0, r4, r0
- ldrb r2, [r0]
- ands r2, r5
- adds r7, r1, 0
- cmp r2, 0
- bne _08090DE8
- b _08090F0A
-_08090DE8:
- ldr r0, _08090E18 @ =gSaveBlock1
- ldr r3, _08090E1C @ =0x00000938
- adds r1, r0, r3
- adds r1, r4, r1
- ldrb r1, [r1]
- ands r1, r5
- adds r6, r0, 0
- cmp r2, r1
- bne _08090E08
- ldr r1, _08090E20 @ =0x00003a8c
- adds r0, r6, r1
- adds r0, r4, r0
- ldrb r0, [r0]
- ands r0, r5
- cmp r2, r0
- beq _08090E62
-_08090E08:
- adds r1, r7, 0
- adds r1, 0x5C
- adds r1, r4, r1
- mvns r3, r5
- b _08090E8E
- .align 2, 0
-_08090E14: .4byte gSaveBlock2
-_08090E18: .4byte gSaveBlock1
-_08090E1C: .4byte 0x00000938
-_08090E20: .4byte 0x00003a8c
-_08090E24:
- ldr r1, _08090E68 @ =gSaveBlock2
- adds r0, r1, 0
- adds r0, 0x28
- adds r0, r4, r0
- ldrb r2, [r0]
- ands r2, r5
- adds r7, r1, 0
- cmp r2, 0
- beq _08090F0A
- adds r0, r7, 0
- adds r0, 0x5C
- adds r0, r4, r0
- ldrb r0, [r0]
- ands r0, r5
- ldr r6, _08090E6C @ =gSaveBlock1
- cmp r2, r0
- bne _08090E78
- ldr r3, _08090E70 @ =0x00000938
- adds r0, r6, r3
- adds r0, r4, r0
- ldrb r0, [r0]
- ands r0, r5
- cmp r2, r0
- bne _08090E78
- ldr r1, _08090E74 @ =0x00003a8c
- adds r0, r6, r1
- adds r0, r4, r0
- ldrb r0, [r0]
- ands r0, r5
- cmp r2, r0
- bne _08090E78
-_08090E62:
- movs r6, 0x1
- b _08090F0A
- .align 2, 0
-_08090E68: .4byte gSaveBlock2
-_08090E6C: .4byte gSaveBlock1
-_08090E70: .4byte 0x00000938
-_08090E74: .4byte 0x00003a8c
-_08090E78:
- adds r1, r7, 0
- adds r1, 0x28
- adds r1, r4, r1
- mvns r3, r5
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- adds r1, r7, 0
- adds r1, 0x5C
- adds r1, r4, r1
-_08090E8E:
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldr r0, _08090EB4 @ =0x00000938
- adds r1, r6, r0
- adds r1, r4, r1
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08090EB8 @ =0x00003a8c
- adds r0, r6, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- movs r6, 0
- b _08090F0A
- .align 2, 0
-_08090EB4: .4byte 0x00000938
-_08090EB8: .4byte 0x00003a8c
-_08090EBC:
- ldr r1, _08090EEC @ =gSaveBlock2
- adds r1, 0x5C
- adds r1, r4, r1
- ldrb r2, [r1]
- adds r0, r5, 0
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08090EF0 @ =gSaveBlock1
- ldr r3, _08090EF4 @ =0x00000938
- adds r2, r1, r3
- adds r2, r4, r2
- ldrb r3, [r2]
- adds r0, r5, 0
- orrs r0, r3
- strb r0, [r2]
- ldr r0, _08090EF8 @ =0x00003a8c
- adds r1, r0
- adds r1, r4, r1
- ldrb r2, [r1]
- adds r0, r5, 0
- orrs r0, r2
- strb r0, [r1]
- b _08090F0A
- .align 2, 0
-_08090EEC: .4byte gSaveBlock2
-_08090EF0: .4byte gSaveBlock1
-_08090EF4: .4byte 0x00000938
-_08090EF8: .4byte 0x00003a8c
-_08090EFC:
- ldr r0, _08090F14 @ =gSaveBlock2
- adds r0, 0x28
- adds r0, r4, r0
- ldrb r2, [r0]
- adds r1, r5, 0
- orrs r1, r2
- strb r1, [r0]
-_08090F0A:
- adds r0, r6, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08090F14: .4byte gSaveBlock2
- thumb_func_end GetNationalPokedexFlag
-
- thumb_func_start GetNationalPokedexCount
-GetNationalPokedexCount: @ 8090F18
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r0, 0
- ldr r7, _08090F30 @ =0x00000181
-_08090F24:
- cmp r6, 0
- beq _08090F34
- cmp r6, 0x1
- beq _08090F3E
- adds r4, r0, 0x1
- b _08090F56
- .align 2, 0
-_08090F30: .4byte 0x00000181
-_08090F34:
- adds r4, r0, 0x1
- lsls r0, r4, 16
- lsrs r0, 16
- movs r1, 0
- b _08090F46
-_08090F3E:
- adds r4, r0, 0x1
- lsls r0, r4, 16
- lsrs r0, 16
- movs r1, 0x1
-_08090F46:
- bl GetNationalPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _08090F56
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08090F56:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, r7
- bls _08090F24
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetNationalPokedexCount
-
- thumb_func_start GetHoennPokedexCount
-GetHoennPokedexCount: @ 8090F68
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r0, 0
-_08090F72:
- cmp r6, 0
- beq _08090F7E
- cmp r6, 0x1
- beq _08090F90
- adds r4, r0, 0x1
- b _08090FB0
-_08090F7E:
- adds r4, r0, 0x1
- lsls r0, r4, 16
- lsrs r0, 16
- bl HoennToNationalOrder
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- b _08090FA0
-_08090F90:
- adds r4, r0, 0x1
- lsls r0, r4, 16
- lsrs r0, 16
- bl HoennToNationalOrder
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
-_08090FA0:
- bl GetNationalPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _08090FB0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08090FB0:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bls _08090F72
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetHoennPokedexCount
-
- thumb_func_start sub_8090FC0
-sub_8090FC0: @ 8090FC0
- push {r4,lr}
- movs r0, 0
-_08090FC4:
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl HoennToNationalOrder
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetNationalPokedexFlag
- lsls r0, 24
- cmp r0, 0
- bne _08090FE4
- movs r0, 0
- b _08090FEC
-_08090FE4:
- adds r0, r4, 0
- cmp r0, 0xC7
- bls _08090FC4
- movs r0, 0x1
-_08090FEC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090FC0
-
- thumb_func_start sub_8090FF4
-sub_8090FF4: @ 8090FF4
- push {r4,r5,lr}
- movs r0, 0
-_08090FF8:
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x1
- bl GetNationalPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _08091046
- adds r0, r4, 0
- cmp r0, 0x95
- bls _08090FF8
- movs r0, 0x98
-_08091014:
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x1
- bl GetNationalPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _08091046
- adds r0, r4, 0
- cmp r0, 0xF9
- bls _08091014
- movs r0, 0xFC
- ldr r5, _0809104C @ =0x0000017f
-_08091032:
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x1
- bl GetNationalPokedexFlag
- lsls r0, 24
- cmp r0, 0
- bne _08091050
-_08091046:
- movs r0, 0
- b _08091058
- .align 2, 0
-_0809104C: .4byte 0x0000017f
-_08091050:
- adds r0, r4, 0
- cmp r0, r5
- bls _08091032
- movs r0, 0x1
-_08091058:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090FF4
-
- thumb_func_start sub_8091060
-sub_8091060: @ 8091060
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- movs r0, 0x80
- lsls r0, 1
- ands r0, r4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _0809108E
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0809112C @ =0x0000feff
- ands r0, r1
- strh r0, [r2]
- ldr r0, _08091130 @ =REG_BG0CNT
- strh r3, [r0]
- adds r0, 0x8
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
-_0809108E:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _080910B4
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _08091134 @ =0x0000fdff
- ands r0, r1
- strh r0, [r2]
- ldr r0, _08091138 @ =REG_BG1CNT
- strh r3, [r0]
- adds r0, 0xA
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
-_080910B4:
- movs r0, 0x80
- lsls r0, 3
- ands r0, r4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _080910DA
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0809113C @ =0x0000fbff
- ands r0, r1
- strh r0, [r2]
- ldr r0, _08091140 @ =REG_BG2CNT
- strh r3, [r0]
- adds r0, 0xC
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
-_080910DA:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _08091100
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _08091144 @ =0x0000f7ff
- ands r0, r1
- strh r0, [r2]
- ldr r0, _08091148 @ =REG_BG3CNT
- strh r3, [r0]
- adds r0, 0xE
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
-_08091100:
- movs r0, 0x80
- lsls r0, 5
- ands r5, r0
- cmp r5, 0
- bne _08091124
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0809114C @ =0x0000efff
- ands r0, r1
- strh r0, [r2]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08091150 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
-_08091124:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809112C: .4byte 0x0000feff
-_08091130: .4byte REG_BG0CNT
-_08091134: .4byte 0x0000fdff
-_08091138: .4byte REG_BG1CNT
-_0809113C: .4byte 0x0000fbff
-_08091140: .4byte REG_BG2CNT
-_08091144: .4byte 0x0000f7ff
-_08091148: .4byte REG_BG3CNT
-_0809114C: .4byte 0x0000efff
-_08091150: .4byte gReservedSpritePaletteCount
- thumb_func_end sub_8091060
-
- thumb_func_start sub_8091154
-sub_8091154: @ 8091154
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r5, sp
- adds r0, r4, 0
- movs r1, 0x64
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r5]
- mov r5, sp
- adds r0, r4, 0
- movs r1, 0x64
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r5, 0x1]
- mov r5, sp
- adds r0, r4, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r5, 0x2]
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- mov r0, sp
- adds r1, r6, 0
- mov r2, r8
- bl MenuPrint
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8091154
-
- thumb_func_start sub_80911C8
-sub_80911C8: @ 80911C8
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
- movs r2, 0xFF
-_080911DC:
- mov r1, sp
- adds r0, r1, r4
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xA
- bls _080911DC
- adds r0, r3, 0
- bl NationalPokedexNumToSpecies
- adds r3, r0, 0
- cmp r3, 0
- beq _08091238
- movs r4, 0
- ldr r2, _08091234 @ =gSpeciesNames
- movs r0, 0xB
- adds r1, r3, 0
- muls r1, r0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0809124C
- adds r3, r2, 0
- adds r2, r1, 0
-_08091212:
- mov r0, sp
- adds r1, r0, r4
- adds r0, r4, r2
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, r2
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0809124C
- cmp r4, 0x9
- bls _08091212
- b _0809124C
- .align 2, 0
-_08091234: .4byte gSpeciesNames
-_08091238:
- movs r4, 0
- movs r1, 0xAE
-_0809123C:
- mov r2, sp
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _0809123C
-_0809124C:
- mov r0, sp
- adds r1, r6, 0
- adds r2, r5, 0
- bl MenuPrint
- adds r0, r4, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80911C8
-
- thumb_func_start sub_8091260
-sub_8091260: @ 8091260
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- adds r4, r3, 0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080912CC @ =gUnknown_083B5558
- mov r0, sp
- bl StringCopy
- adds r6, r0, 0
- mov r0, sp
- strb r4, [r0, 0x2]
- adds r0, r5, 0
- bl NationalPokedexNumToSpecies
- adds r5, r0, 0
- cmp r5, 0
- beq _080912D4
- movs r4, 0
- ldr r2, _080912D0 @ =gSpeciesNames
- movs r0, 0xB
- adds r1, r5, 0
- muls r1, r0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080912E6
- adds r3, r2, 0
- adds r2, r1, 0
-_080912AC:
- adds r1, r6, r4
- adds r0, r4, r2
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, r2
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080912E6
- cmp r4, 0x9
- bls _080912AC
- b _080912E6
- .align 2, 0
-_080912CC: .4byte gUnknown_083B5558
-_080912D0: .4byte gSpeciesNames
-_080912D4:
- movs r4, 0
- movs r1, 0xAE
-_080912D8:
- adds r0, r6, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080912D8
-_080912E6:
- adds r1, r6, r4
- movs r0, 0xFF
- strb r0, [r1]
- mov r0, sp
- mov r1, r8
- adds r2, r7, 0
- bl MenuPrint
- adds r0, r4, 0
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8091260
-
- thumb_func_start sub_8091304
-sub_8091304: @ 8091304
- push {r4-r7,lr}
- sub sp, 0x20
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- lsls r2, 24
- lsrs r7, r2, 24
- movs r4, 0
- ldrb r0, [r3]
- ldr r6, _08091340 @ =gDexText_UnknownPoke
- cmp r0, 0xFF
- beq _0809133A
-_0809131E:
- mov r0, sp
- adds r1, r0, r4
- adds r0, r3, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r3, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0809133A
- cmp r4, 0xA
- bls _0809131E
-_0809133A:
- movs r3, 0
- ldrb r0, [r6]
- b _0809134E
- .align 2, 0
-_08091340: .4byte gDexText_UnknownPoke
-_08091344:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r3, r6
- ldrb r0, [r0]
-_0809134E:
- cmp r0, 0xAC
- beq _08091344
- cmp r0, 0
- beq _08091344
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r3, r6
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08091388
- adds r5, r6, 0
-_08091366:
- adds r1, r4, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- adds r2, r0, r1
- adds r1, r3, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r1, r5
- ldrb r0, [r1]
- strb r0, [r2]
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08091366
-_08091388:
- mov r0, sp
- adds r1, r0, r4
- movs r0, 0xFF
- strb r0, [r1]
- mov r0, sp
- mov r1, r12
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_8072B80
- add sp, 0x20
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8091304
-
- thumb_func_start unref_sub_80913A4
-unref_sub_80913A4: @ 80913A4
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r5, 0
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r4, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080913CE
- mov r0, sp
- strb r5, [r0]
- b _080913D6
-_080913CE:
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1]
- movs r5, 0x1
-_080913D6:
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r4, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080913FC
- cmp r5, 0
- bne _080913FC
- mov r0, sp
- strb r5, [r0, 0x1]
- b _08091402
-_080913FC:
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1, 0x1]
-_08091402:
- mov r5, sp
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r4, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r5, 0x2]
- mov r1, sp
- movs r0, 0xAD
- strb r0, [r1, 0x3]
- mov r5, sp
- adds r0, r4, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r5, 0x4]
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- mov r0, sp
- adds r1, r7, 0
- adds r2, r6, 0
- bl MenuPrint
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80913A4
-
- thumb_func_start sub_8091458
-sub_8091458: @ 8091458
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r1, _080914D4 @ =0x00002710
- muls r0, r1
- movs r1, 0xFE
- bl __divsi3
- adds r7, r0, 0
- movs r1, 0xA
- bl __umodsi3
- cmp r0, 0x4
- bls _0809148A
- adds r7, 0xA
-_0809148A:
- adds r0, r7, 0
- movs r1, 0x78
- bl __udivsi3
- adds r6, r0, 0
- lsls r0, r6, 4
- subs r0, r6
- lsls r0, 3
- subs r0, r7, r0
- movs r1, 0xA
- bl __udivsi3
- adds r7, r0, 0
- mov r1, sp
- movs r0, 0xFC
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x13
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0xA
- bl __udivsi3
- adds r2, r0, 0
- cmp r2, 0
- bne _080914D8
- mov r1, sp
- adds r1, 0x2
- movs r0, 0x12
- strb r0, [r1]
- movs r5, 0x4
- adds r1, 0x1
- adds r0, r6, 0
- adds r0, 0xA1
- strb r0, [r1]
- b _080914F8
- .align 2, 0
-_080914D4: .4byte 0x00002710
-_080914D8:
- mov r1, sp
- adds r1, 0x2
- movs r0, 0xC
- strb r0, [r1]
- adds r1, 0x1
- adds r0, r2, 0
- adds r0, 0xA1
- strb r0, [r1]
- movs r5, 0x5
- add r4, sp, 0x4
- adds r0, r6, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4]
-_080914F8:
- adds r1, r5, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- add r1, sp
- movs r0, 0xB4
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- mov r0, sp
- adds r4, r0, r2
- adds r0, r7, 0
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, sp
- adds r4, r1, r6
- adds r0, r7, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- adds r2, r1, r5
- movs r1, 0xB2
- strb r1, [r2]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- mov r0, sp
- mov r1, r9
- mov r2, r8
- bl MenuPrint
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8091458
-
- thumb_func_start sub_8091564
-sub_8091564: @ 8091564
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- ldr r7, _080915BC @ =0x000186a0
- muls r0, r7
- ldr r1, _080915C0 @ =0x000011b8
- bl __divsi3
- adds r6, r0, 0
- movs r1, 0xA
- bl __umodsi3
- cmp r0, 0x4
- bls _08091598
- adds r6, 0xA
-_08091598:
- movs r5, 0
- mov r4, sp
- adds r0, r6, 0
- adds r1, r7, 0
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA1
- bne _080915C4
- mov r0, sp
- strb r5, [r0]
- movs r7, 0x2
- adds r0, 0x1
- strb r5, [r0]
- b _080915C8
- .align 2, 0
-_080915BC: .4byte 0x000186a0
-_080915C0: .4byte 0x000011b8
-_080915C4:
- movs r5, 0x1
- movs r7, 0x1
-_080915C8:
- ldr r1, _0809160C @ =0x000186a0
- adds r0, r6, 0
- bl __umodsi3
- adds r6, r0, 0
- mov r0, sp
- adds r4, r0, r7
- ldr r1, _08091610 @ =0x00002710
- adds r0, r6, 0
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA1
- bne _08091614
- cmp r5, 0
- bne _08091614
- adds r1, r7, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r2, r7, 0
- mov r3, sp
- adds r0, r3, r1
- strb r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r3, r2
- strb r5, [r0]
- b _0809161C
- .align 2, 0
-_0809160C: .4byte 0x000186a0
-_08091610: .4byte 0x00002710
-_08091614:
- movs r5, 0x1
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0809161C:
- ldr r1, _08091660 @ =0x00002710
- adds r0, r6, 0
- bl __umodsi3
- adds r6, r0, 0
- mov r0, sp
- adds r4, r0, r7
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r6, 0
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA1
- bne _08091664
- cmp r5, 0
- bne _08091664
- adds r1, r7, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r2, r7, 0
- mov r3, sp
- adds r0, r3, r1
- strb r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r3, r2
- strb r5, [r0]
- b _0809166A
- .align 2, 0
-_08091660: .4byte 0x00002710
-_08091664:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0809166A:
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r6, 0
- bl __umodsi3
- adds r6, r0, 0
- adds r1, r7, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r5, r7, 0
- mov r0, sp
- adds r4, r0, r1
- adds r0, r6, 0
- movs r1, 0x64
- bl __udivsi3
- adds r0, 0xA1
- movs r1, 0
- mov r9, r1
- strb r0, [r4]
- adds r0, r6, 0
- movs r1, 0x64
- bl __umodsi3
- adds r6, r0, 0
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r1, r7, 0
- mov r2, sp
- adds r0, r2, r5
- movs r3, 0xAD
- mov r8, r3
- mov r2, r8
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r5, r7, 0
- mov r3, sp
- adds r4, r3, r1
- adds r0, r6, 0
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r1, r7, 0
- mov r2, sp
- adds r0, r2, r5
- mov r3, r9
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r2, r7, 0
- add r1, sp
- movs r0, 0xE0
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r3, r7, 0
- mov r0, sp
- adds r1, r0, r2
- movs r0, 0xD6
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r2, r7, 0
- mov r0, sp
- adds r1, r0, r3
- movs r0, 0xE7
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r3, sp
- adds r1, r3, r2
- mov r2, r8
- strb r2, [r1]
- adds r1, r3, r0
- movs r0, 0xFF
- strb r0, [r1]
- mov r0, sp
- mov r1, r10
- ldr r2, [sp, 0x10]
- bl MenuPrint
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8091564
-
- thumb_func_start sub_8091738
-sub_8091738: @ 8091738
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x80
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _080917C8 @ =gMonFootprintTable
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r0, 14
- adds r0, r6
- ldr r0, [r0]
- mov r12, r0
- movs r7, 0
- movs r1, 0
- lsls r4, 14
- mov r8, r4
- lsls r5, 5
-_0809176A:
- mov r2, r12
- adds r0, r2, r1
- ldrb r3, [r0]
- movs r6, 0
- adds r4, r1, 0x1
-_08091774:
- lsls r1, r6, 1
- adds r2, r3, 0
- asrs r2, r1
- movs r0, 0x1
- ands r2, r0
- movs r0, 0x2
- lsls r0, r1
- ands r0, r3
- cmp r0, 0
- beq _0809178C
- movs r0, 0x10
- orrs r2, r0
-_0809178C:
- mov r1, sp
- adds r0, r1, r7
- strb r2, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08091774
- lsls r0, r4, 16
- lsrs r1, r0, 16
- cmp r1, 0x1F
- bls _0809176A
- movs r1, 0xC0
- lsls r1, 19
- adds r1, r5, r1
- add r1, r8
- mov r0, sp
- movs r2, 0x40
- bl CpuSet
- add sp, 0x80
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080917C8: .4byte gMonFootprintTable
- thumb_func_end sub_8091738
-
- thumb_func_start sub_80917CC
-sub_80917CC: @ 80917CC
- push {r4,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsrs r0, 5
- ldr r2, _08091808 @ =0x06000232
- adds r3, r0, r2
- movs r4, 0xF0
- lsls r4, 8
- adds r2, r1, r4
- strh r2, [r3]
- ldr r2, _0809180C @ =0x06000234
- adds r3, r0, r2
- adds r4, 0x1
- adds r2, r1, r4
- strh r2, [r3]
- ldr r2, _08091810 @ =0x06000272
- adds r3, r0, r2
- adds r4, 0x1
- adds r2, r1, r4
- strh r2, [r3]
- ldr r2, _08091814 @ =0x06000274
- adds r0, r2
- adds r4, 0x1
- adds r1, r4
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08091808: .4byte 0x06000232
-_0809180C: .4byte 0x06000234
-_08091810: .4byte 0x06000272
-_08091814: .4byte 0x06000274
- thumb_func_end sub_80917CC
-
- thumb_func_start sub_8091818
-sub_8091818: @ 8091818
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r1, 16
- lsrs r0, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- cmp r4, 0x1
- beq _08091844
- cmp r4, 0x1
- bgt _0809183A
- cmp r4, 0
- beq _0809184C
- b _0809186C
-_0809183A:
- cmp r5, 0x2
- beq _0809185E
- cmp r5, 0x3
- beq _08091852
- b _0809186C
-_08091844:
- cmp r0, r2
- bls _0809186C
- subs r0, 0x1
- b _08091864
-_0809184C:
- cmp r0, r3
- bcs _0809186C
- b _08091862
-_08091852:
- cmp r0, r2
- bls _0809185A
- subs r0, 0x1
- b _08091864
-_0809185A:
- adds r0, r3, 0
- b _0809186C
-_0809185E:
- cmp r0, r3
- bcs _0809186A
-_08091862:
- adds r0, 0x1
-_08091864:
- lsls r0, 16
- lsrs r0, 16
- b _0809186C
-_0809186A:
- adds r0, r2, 0
-_0809186C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8091818
-
- thumb_func_start nullsub_59
-nullsub_59: @ 8091874
- bx lr
- thumb_func_end nullsub_59
-
- thumb_func_start sub_8091878
-sub_8091878: @ 8091878
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _080918A0 @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _080918A4 @ =gUnknown_083B57A4
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _080918A8 @ =gUnknown_083B5794
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _080918AC @ =gSpriteAnimTable_81E7C64
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080918A0: .4byte gUnknown_02024E8C
-_080918A4: .4byte gUnknown_083B57A4
-_080918A8: .4byte gUnknown_083B5794
-_080918AC: .4byte gSpriteAnimTable_81E7C64
- thumb_func_end sub_8091878
-
- thumb_func_start sub_80918B0
-sub_80918B0: @ 80918B0
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _080918DC @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _080918E0 @ =gUnknown_083B57A4
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _080918E4 @ =gUnknown_083B5794
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _080918E8 @ =gUnknown_081EC2A4
- ldr r0, [r0]
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080918DC: .4byte gUnknown_02024E8C
-_080918E0: .4byte gUnknown_083B57A4
-_080918E4: .4byte gUnknown_083B5794
-_080918E8: .4byte gUnknown_081EC2A4
- thumb_func_end sub_80918B0
-
- thumb_func_start sub_80918EC
-sub_80918EC: @ 80918EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- adds r0, r7, 0
- bl NationalPokedexNumToSpecies
- adds r7, r0, 0
- cmp r7, SPECIES_UNOWN
- beq _0809199C
- movs r0, 0x9A
- lsls r0, 1
- cmp r7, r0
- beq _08091958
- lsls r6, r7, 3
- ldr r0, _0809194C @ =gMonFrontPicTable
- adds r0, r6, r0
- ldr r1, _08091950 @ =gMonFrontPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08091954 @ =gUnknown_083B5584
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- bl DecompressPicFromTable_2
- b _080919CE
- .align 2, 0
-_0809194C: .4byte gMonFrontPicTable
-_08091950: .4byte gMonFrontPicCoords
-_08091954: .4byte gUnknown_083B5584
-_08091958:
- lsls r6, r7, 3
- ldr r0, _0809198C @ =gMonFrontPicTable
- adds r0, r6
- ldr r2, _08091990 @ =gMonFrontPicCoords
- lsls r1, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08091994 @ =gUnknown_083B5584
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, _08091998 @ =gSaveBlock2
- ldr r4, [r4, 0x20]
- str r4, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl LoadSpecialPokePic
- b _080919CE
- .align 2, 0
-_0809198C: .4byte gMonFrontPicTable
-_08091990: .4byte gMonFrontPicCoords
-_08091994: .4byte gUnknown_083B5584
-_08091998: .4byte gSaveBlock2
-_0809199C:
- lsls r6, r7, 3
- ldr r0, _08091A30 @ =gMonFrontPicTable
- adds r0, r6
- ldr r2, _08091A34 @ =gMonFrontPicCoords
- lsls r1, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08091A38 @ =gUnknown_083B5584
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, _08091A3C @ =gSaveBlock2
- ldr r4, [r4, 0x1C]
- str r4, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl LoadSpecialPokePic
-_080919CE:
- ldr r0, _08091A40 @ =gMonPaletteTable
- adds r0, r6, r0
- ldr r0, [r0]
- mov r1, r8
- lsls r4, r1, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r3, r8
- lsls r1, r3, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8091878
- ldr r0, _08091A44 @ =gUnknown_02024E8C
- mov r5, r9
- lsls r1, r5, 16
- asrs r1, 16
- mov r3, r10
- lsls r2, r3, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08091A48 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- strb r1, [r2, 0x5]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08091A30: .4byte gMonFrontPicTable
-_08091A34: .4byte gMonFrontPicCoords
-_08091A38: .4byte gUnknown_083B5584
-_08091A3C: .4byte gSaveBlock2
-_08091A40: .4byte gMonPaletteTable
-_08091A44: .4byte gUnknown_02024E8C
-_08091A48: .4byte gSprites
- thumb_func_end sub_80918EC
-
- thumb_func_start sub_8091A4C
-sub_8091A4C: @ 8091A4C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- mov r9, r3
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r1, r9
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r0, r5, 3
- ldr r1, _08091AE4 @ =gTrainerFrontPicTable
- adds r0, r1
- ldr r1, _08091AE8 @ =gTrainerFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08091AEC @ =gUnknown_083B5584
- ldr r4, [r4]
- str r4, [sp]
- str r5, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r5, 0
- movs r1, 0
- bl sub_80918B0
- ldr r0, _08091AF0 @ =gUnknown_02024E8C
- lsls r6, 16
- asrs r6, 16
- mov r3, r8
- lsls r3, 16
- asrs r3, 16
- mov r8, r3
- adds r1, r6, 0
- mov r2, r8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08091AF4 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- mov r1, r9
- lsls r1, 4
- mov r9, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- mov r3, r9
- orrs r1, r3
- strb r1, [r2, 0x5]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08091AE4: .4byte gTrainerFrontPicTable
-_08091AE8: .4byte gTrainerFrontPicCoords
-_08091AEC: .4byte gUnknown_083B5584
-_08091AF0: .4byte gUnknown_02024E8C
-_08091AF4: .4byte gSprites
- thumb_func_end sub_8091A4C
-
- thumb_func_start sub_8091AF8
-sub_8091AF8: @ 8091AF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r4, [sp, 0x34]
- ldr r5, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x4]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x8]
- lsls r5, 24
- lsrs r5, 24
- mov r10, r5
- bl SortPokedex
- movs r5, 0
- movs r6, 0
- ldr r4, _08091D08 @ =0x00000181
- ldr r3, _08091D0C @ =gPokedexView
-_08091B32:
- ldr r2, [r3]
- lsls r0, r5, 2
- adds r1, r2, r0
- ldrb r0, [r1, 0x2]
- lsls r0, 31
- cmp r0, 0
- beq _08091B4E
- lsls r0, r6, 2
- adds r0, r2, r0
- ldr r1, [r1]
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08091B4E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r4
- bls _08091B32
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- adds r1, r6, 0
- strh r6, [r0]
- cmp r7, 0xFF
- beq _08091C04
- movs r5, 0
- lsls r0, r1, 16
- movs r6, 0
- cmp r0, 0
- beq _08091BFA
- lsls r7, 2
- ldr r0, _08091D14 @ =gUnknown_083B57BC
- adds r0, 0x3
- adds r0, r7, r0
- str r0, [sp, 0xC]
- ldr r0, _08091D14 @ =gUnknown_083B57BC
- adds r0, r7
- mov r9, r0
-_08091B82:
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- lsls r4, r5, 2
- adds r0, r4
- ldrh r0, [r0]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _08091D18 @ =gSpeciesNames
- movs r0, 0xB
- muls r0, r2
- adds r0, r1
- ldrb r2, [r0]
- adds r3, r2, 0
- mov r0, r9
- ldrb r0, [r0]
- cmp r2, r0
- bcc _08091BBA
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08091D14 @ =gUnknown_083B57BC
- adds r1, 0x1
- adds r1, r7, r1
- ldrb r1, [r1]
- adds r0, r1
- cmp r2, r0
- blt _08091BD2
-_08091BBA:
- ldr r0, _08091D14 @ =gUnknown_083B57BC
- adds r0, 0x2
- adds r0, r7, r0
- ldrb r2, [r0]
- cmp r3, r2
- bcc _08091BE6
- ldrb r1, [r0]
- ldr r2, [sp, 0xC]
- ldrb r0, [r2]
- adds r1, r0
- cmp r3, r1
- bge _08091BE6
-_08091BD2:
- ldr r2, _08091D0C @ =gPokedexView
- ldr r0, [r2]
- lsls r1, r6, 2
- adds r1, r0, r1
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08091BE6:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- bcc _08091B82
-_08091BFA:
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- strh r6, [r0]
-_08091C04:
- ldr r0, [sp, 0x4]
- cmp r0, 0xFF
- beq _08091C74
- movs r5, 0
- movs r6, 0
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r6, r0
- bcs _08091C6A
- adds r7, r1, 0
- ldr r0, _08091D1C @ =gBaseStats
- mov r8, r0
-_08091C22:
- ldr r0, [r7]
- lsls r4, r5, 2
- adds r0, r4
- ldrh r0, [r0]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x19]
- lsls r0, 25
- lsrs r0, 25
- ldr r1, [sp, 0x4]
- cmp r1, r0
- bne _08091C58
- ldr r0, [r7]
- lsls r1, r6, 2
- adds r1, r0, r1
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08091C58:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r7]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- bcc _08091C22
-_08091C6A:
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- strh r6, [r0]
-_08091C74:
- ldr r0, [sp, 0x8]
- cmp r0, 0xFF
- bne _08091C8A
- mov r1, r10
- cmp r1, 0xFF
- bne _08091C82
- b _08091DA6
-_08091C82:
- mov r2, r10
- str r2, [sp, 0x8]
- movs r0, 0xFF
- mov r10, r0
-_08091C8A:
- mov r1, r10
- cmp r1, 0xFF
- bne _08091D20
- movs r5, 0
- movs r6, 0
- ldr r2, _08091D0C @ =gPokedexView
- ldr r0, [r2]
- ldr r1, _08091D10 @ =0x0000060c
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- bcs _08091D9C
- adds r3, r2, 0
- mov r7, sp
- mov r8, r2
-_08091CA8:
- ldr r0, [r3]
- lsls r4, r5, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x2]
- lsls r0, 30
- cmp r0, 0
- bge _08091CF2
- ldrh r0, [r1]
- str r3, [sp, 0x10]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _08091D1C @ =gBaseStats
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x6]
- strb r1, [r7]
- ldrb r0, [r0, 0x7]
- strb r0, [r7, 0x1]
- ldr r3, [sp, 0x10]
- ldr r2, [sp, 0x8]
- cmp r1, r2
- beq _08091CE0
- cmp r0, r2
- bne _08091CF2
-_08091CE0:
- ldr r0, [r3]
- lsls r1, r6, 2
- adds r1, r0, r1
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08091CF2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- mov r1, r8
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- bcc _08091CA8
- b _08091D9C
- .align 2, 0
-_08091D08: .4byte 0x00000181
-_08091D0C: .4byte gPokedexView
-_08091D10: .4byte 0x0000060c
-_08091D14: .4byte gUnknown_083B57BC
-_08091D18: .4byte gSpeciesNames
-_08091D1C: .4byte gBaseStats
-_08091D20:
- movs r5, 0
- movs r6, 0
- ldr r1, _08091E0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091E10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r6, r0
- bcs _08091D9C
- mov r7, sp
-_08091D34:
- ldr r0, [r1]
- lsls r1, r5, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x2]
- lsls r0, 30
- adds r4, r1, 0
- cmp r0, 0
- bge _08091D88
- ldrh r0, [r2]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _08091E14 @ =gBaseStats
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x6]
- strb r1, [r7]
- ldrb r0, [r0, 0x7]
- strb r0, [r7, 0x1]
- ldr r2, [sp, 0x8]
- cmp r1, r2
- bne _08091D6A
- cmp r0, r10
- beq _08091D74
-_08091D6A:
- cmp r1, r10
- bne _08091D88
- ldr r1, [sp, 0x8]
- cmp r0, r1
- bne _08091D88
-_08091D74:
- ldr r2, _08091E0C @ =gPokedexView
- ldr r0, [r2]
- lsls r1, r6, 2
- adds r1, r0, r1
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08091D88:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _08091E0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091E10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- bcc _08091D34
-_08091D9C:
- ldr r1, _08091E0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091E10 @ =0x0000060c
- adds r0, r2
- strh r6, [r0]
-_08091DA6:
- ldr r1, _08091E0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091E10 @ =0x0000060c
- adds r1, r0, r2
- ldrh r0, [r1]
- cmp r0, 0
- beq _08091DFA
- adds r5, r0, 0
- ldr r0, _08091E18 @ =0x00000181
- cmp r5, r0
- bhi _08091DFA
- ldr r4, _08091E0C @ =gPokedexView
- movs r1, 0x2
- negs r1, r1
- mov r10, r1
- movs r2, 0x3
- negs r2, r2
- mov r9, r2
- mov r8, r0
- ldr r0, _08091E1C @ =0x0000ffff
- adds r7, r0, 0
-_08091DD0:
- ldr r1, [r4]
- lsls r3, r5, 2
- adds r1, r3
- ldrh r0, [r1]
- orrs r0, r7
- strh r0, [r1]
- ldrb r2, [r1, 0x2]
- mov r0, r10
- ands r0, r2
- strb r0, [r1, 0x2]
- ldr r1, [r4]
- adds r1, r3
- ldrb r2, [r1, 0x2]
- mov r0, r9
- ands r0, r2
- strb r0, [r1, 0x2]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bls _08091DD0
-_08091DFA:
- adds r0, r6, 0
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08091E0C: .4byte gPokedexView
-_08091E10: .4byte 0x0000060c
-_08091E14: .4byte gBaseStats
-_08091E18: .4byte 0x00000181
-_08091E1C: .4byte 0x0000ffff
- thumb_func_end sub_8091AF8
-
- thumb_func_start sub_8091E20
-sub_8091E20: @ 8091E20
- push {lr}
- sub sp, 0x8
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x9
- movs r2, 0x78
- movs r3, 0xD0
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_8091E20
-
- thumb_func_start sub_8091E3C
-sub_8091E3C: @ 8091E3C
- push {lr}
- ldr r0, _08091E50 @ =sub_8091E54
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08091E50: .4byte sub_8091E54
- thumb_func_end sub_8091E3C
-
- thumb_func_start sub_8091E54
-sub_8091E54: @ 8091E54
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08091E78 @ =gMain
- ldr r2, _08091E7C @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x4
- bhi _08091E98
- lsls r0, 2
- ldr r1, _08091E80 @ =_08091E84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08091E78: .4byte gMain
-_08091E7C: .4byte 0x0000043c
-_08091E80: .4byte _08091E84
- .align 2, 0
-_08091E84:
- .4byte _08091E98
- .4byte _08091F50
- .4byte _08091FC0
- .4byte _08091FE0
- .4byte _0809200C
-_08091E98:
- ldr r0, _08091F1C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08091EA6
- b _08092030
-_08091EA6:
- ldr r0, _08091F20 @ =gPokedexView
- ldr r0, [r0]
- ldr r1, _08091F24 @ =0x0000064a
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0
- bl sub_8091060
- ldr r0, _08091F28 @ =gPokedexMenuSearch_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08091F2C @ =gUnknown_08E96D2C
- ldr r1, _08091F30 @ =0x06007800
- bl LZ77UnCompVram
- ldr r0, _08091F34 @ =gPokedexMenuSearch_Pal + 0x2
- movs r1, 0x1
- movs r2, 0x7E
- bl LoadPalette
- bl IsNationalPokedexEnabled
- cmp r0, 0
- bne _08091F10
- movs r4, 0
- ldr r2, _08091F38 @ =0x06007a80
- mov r8, r2
- ldr r0, _08091F3C @ =0x06007b00
- mov r12, r0
- movs r5, 0x1
- ldr r7, _08091F40 @ =0x06007ac0
- ldr r6, _08091F44 @ =0x06007b40
-_08091EEC:
- lsls r1, r4, 1
- mov r0, r8
- adds r2, r1, r0
- mov r0, r12
- adds r3, r1, r0
- ldrh r0, [r3]
- strh r0, [r2]
- adds r2, r1, r7
- adds r1, r6
- ldrh r0, [r1]
- strh r0, [r2]
- strh r5, [r3]
- strh r5, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x10
- bls _08091EEC
-_08091F10:
- ldr r0, _08091F48 @ =gMain
- ldr r1, _08091F4C @ =0x0000043c
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _08092030
- .align 2, 0
-_08091F1C: .4byte gPaletteFade
-_08091F20: .4byte gPokedexView
-_08091F24: .4byte 0x0000064a
-_08091F28: .4byte gPokedexMenuSearch_Gfx
-_08091F2C: .4byte gUnknown_08E96D2C
-_08091F30: .4byte 0x06007800
-_08091F34: .4byte gPokedexMenuSearch_Pal + 0x2
-_08091F38: .4byte 0x06007a80
-_08091F3C: .4byte 0x06007b00
-_08091F40: .4byte 0x06007ac0
-_08091F44: .4byte 0x06007b40
-_08091F48: .4byte gMain
-_08091F4C: .4byte 0x0000043c
-_08091F50:
- ldr r4, _08091FA8 @ =gWindowConfig_81E7064
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08091FAC @ =gUnknown_083A05CC
- bl LoadCompressedObjectPic
- ldr r0, _08091FB0 @ =gUnknown_083A05DC
- bl LoadSpritePalettes
- adds r0, r5, 0
- bl sub_809308C
- movs r4, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r1, r0, 3
- ldr r3, _08091FB4 @ =gTasks + 0x8
- movs r2, 0
-_08091F7C:
- lsls r0, r4, 1
- adds r0, r1
- adds r0, r3
- strh r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08091F7C
- adds r0, r5, 0
- bl sub_8092EB0
- movs r0, 0
- bl sub_8092AB0
- adds r0, r5, 0
- bl sub_8092B68
- ldr r1, _08091FB8 @ =gMain
- ldr r2, _08091FBC @ =0x0000043c
- adds r1, r2
- b _08091FF6
- .align 2, 0
-_08091FA8: .4byte gWindowConfig_81E7064
-_08091FAC: .4byte gUnknown_083A05CC
-_08091FB0: .4byte gUnknown_083A05DC
-_08091FB4: .4byte gTasks + 0x8
-_08091FB8: .4byte gMain
-_08091FBC: .4byte 0x0000043c
-_08091FC0:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08091FD8 @ =gMain
- ldr r0, _08091FDC @ =0x0000043c
- adds r1, r0
- b _08091FF6
- .align 2, 0
-_08091FD8: .4byte gMain
-_08091FDC: .4byte 0x0000043c
-_08091FE0:
- ldr r1, _08092000 @ =REG_BG3CNT
- ldr r2, _08092004 @ =0x00000f03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xE2
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08092008 @ =0x0000043c
- adds r1, r3, r0
-_08091FF6:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08092030
- .align 2, 0
-_08092000: .4byte REG_BG3CNT
-_08092004: .4byte 0x00000f03
-_08092008: .4byte 0x0000043c
-_0809200C:
- ldr r0, _0809203C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _08092030
- ldr r1, _08092040 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08092044 @ =sub_809204C
- str r1, [r0]
- ldr r1, _08092048 @ =0x0000043c
- adds r0, r3, r1
- strb r2, [r0]
-_08092030:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809203C: .4byte gPaletteFade
-_08092040: .4byte gTasks
-_08092044: .4byte sub_809204C
-_08092048: .4byte 0x0000043c
- thumb_func_end sub_8091E54
-
- thumb_func_start sub_809204C
-sub_809204C: @ 809204C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08092074 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- bl sub_8092AB0
- adds r0, r5, 0
- bl sub_8092B68
- ldr r0, _08092078 @ =sub_809207C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08092074: .4byte gTasks
-_08092078: .4byte sub_809207C
- thumb_func_end sub_809204C
-
- thumb_func_start sub_809207C
-sub_809207C: @ 809207C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080920A4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080920B0
- movs r0, 0x3
- bl PlaySE
- ldr r0, _080920A8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080920AC @ =sub_80927B8
- str r0, [r1]
- b _0809216C
- .align 2, 0
-_080920A4: .4byte gMain
-_080920A8: .4byte gTasks
-_080920AC: .4byte sub_80927B8
-_080920B0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809210C
- ldr r1, _080920D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r4, [r5, r0]
- cmp r4, 0x1
- beq _080920E8
- cmp r4, 0x1
- bgt _080920D8
- cmp r4, 0
- beq _080920DE
- b _0809216C
- .align 2, 0
-_080920D4: .4byte gTasks
-_080920D8:
- cmp r4, 0x2
- beq _080920FC
- b _0809216C
-_080920DE:
- movs r0, 0x15
- bl PlaySE
- strh r4, [r5, 0xA]
- b _080920F2
-_080920E8:
- movs r0, 0x15
- bl PlaySE
- movs r0, 0x4
- strh r0, [r5, 0xA]
-_080920F2:
- ldr r0, _080920F8 @ =sub_809217C
- str r0, [r5]
- b _0809216C
- .align 2, 0
-_080920F8: .4byte sub_809217C
-_080920FC:
- movs r0, 0x3
- bl PlaySE
- ldr r0, _08092108 @ =sub_80927B8
- str r0, [r5]
- b _0809216C
- .align 2, 0
-_08092108: .4byte sub_80927B8
-_0809210C:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809213A
- ldr r0, _08092174 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _0809213A
- movs r0, 0x6D
- bl PlaySE
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092AB0
-_0809213A:
- ldr r0, _08092178 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809216C
- ldr r0, _08092174 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bgt _0809216C
- movs r0, 0x6D
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092AB0
-_0809216C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08092174: .4byte gTasks
-_08092178: .4byte gMain
- thumb_func_end sub_809207C
-
- thumb_func_start sub_809217C
-sub_809217C: @ 809217C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080921A8 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0xA]
- bl sub_8092AD4
- adds r0, r5, 0
- bl sub_8092B68
- ldr r0, _080921AC @ =sub_80921B0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080921A8: .4byte gTasks
-_080921AC: .4byte sub_80921B0
- thumb_func_end sub_809217C
-
- thumb_func_start sub_80921B0
-sub_80921B0: @ 80921B0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080921D8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080921E4
- bl IsNationalPokedexEnabled
- ldr r6, _080921DC @ =gUnknown_083B586C
- cmp r0, 0
- bne _080921F0
- ldr r6, _080921E0 @ =gUnknown_083B58A4
- b _080921F0
- .align 2, 0
-_080921D8: .4byte gTasks
-_080921DC: .4byte gUnknown_083B586C
-_080921E0: .4byte gUnknown_083B58A4
-_080921E4:
- bl IsNationalPokedexEnabled
- ldr r6, _0809221C @ =gUnknown_083B5850
- cmp r0, 0
- bne _080921F0
- ldr r6, _08092220 @ =gUnknown_083B5888
-_080921F0:
- ldr r0, _08092224 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _08092230
- movs r0, 0x17
- bl PlaySE
- adds r0, r5, 0
- bl sub_8092EB0
- ldr r0, _08092228 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809222C @ =sub_809204C
- str r0, [r1]
- b _080923EC
- .align 2, 0
-_0809221C: .4byte gUnknown_083B5850
-_08092220: .4byte gUnknown_083B5888
-_08092224: .4byte gMain
-_08092228: .4byte gTasks
-_0809222C: .4byte sub_809204C
-_08092230:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08092300
- ldr r0, _080922B4 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r6, r1, r0
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- cmp r0, 0x6
- bne _080922F0
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080922D4
- ldr r1, _080922B8 @ =gUnknown_0202FFBA
- movs r0, 0x40
- strb r0, [r1]
- ldr r7, _080922BC @ =gPokedexView
- ldr r1, [r7]
- ldr r0, _080922C0 @ =0x0000062a
- adds r2, r1, r0
- movs r0, 0x40
- strh r0, [r2]
- ldr r0, _080922C4 @ =gUnknown_0202FFB8
- strh r3, [r0]
- movs r2, 0xC2
- lsls r2, 3
- adds r1, r2
- strh r3, [r1]
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_8092E10
- ldr r4, _080922C8 @ =gSaveBlock2
- strb r0, [r4, 0x19]
- bl IsNationalPokedexEnabled
- cmp r0, 0
- bne _08092288
- movs r0, 0
- strb r0, [r4, 0x19]
-_08092288:
- ldr r0, [r7]
- ldrb r1, [r4, 0x19]
- ldr r2, _080922CC @ =0x00000614
- adds r0, r2
- strh r1, [r0]
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_8092E10
- strb r0, [r4, 0x18]
- ldr r0, [r7]
- ldrb r1, [r4, 0x18]
- movs r2, 0xC3
- lsls r2, 3
- adds r0, r2
- strh r1, [r0]
- movs r0, 0x3
- bl PlaySE
- ldr r0, _080922D0 @ =sub_80927B8
- str r0, [r6]
- b _080923EC
- .align 2, 0
-_080922B4: .4byte gTasks
-_080922B8: .4byte gUnknown_0202FFBA
-_080922BC: .4byte gPokedexView
-_080922C0: .4byte 0x0000062a
-_080922C4: .4byte gUnknown_0202FFB8
-_080922C8: .4byte gSaveBlock2
-_080922CC: .4byte 0x00000614
-_080922D0: .4byte sub_80927B8
-_080922D4:
- ldr r0, _080922E8 @ =gDexText_Searching
- bl sub_8091E20
- ldr r0, _080922EC @ =sub_80923FC
- str r0, [r6]
- movs r0, 0x70
- bl PlaySE
- b _080923EC
- .align 2, 0
-_080922E8: .4byte gDexText_Searching
-_080922EC: .4byte sub_80923FC
-_080922F0:
- movs r0, 0x15
- bl PlaySE
- ldr r0, _080922FC @ =sub_80925CC
- str r0, [r6]
- b _080923EC
- .align 2, 0
-_080922FC: .4byte sub_80925CC
-_08092300:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08092338
- ldr r1, _080923F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08092338
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- strh r1, [r4, 0xA]
- ldrb r0, [r4, 0x8]
- bl sub_8092AD4
-_08092338:
- ldr r0, _080923F8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08092374
- ldr r1, _080923F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x1]
- cmp r0, 0xFF
- beq _08092374
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x1]
- strh r1, [r4, 0xA]
- ldrb r0, [r4, 0x8]
- bl sub_8092AD4
-_08092374:
- ldr r0, _080923F8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080923B0
- ldr r1, _080923F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x2]
- cmp r0, 0xFF
- beq _080923B0
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x2]
- strh r1, [r4, 0xA]
- ldrb r0, [r4, 0x8]
- bl sub_8092AD4
-_080923B0:
- ldr r0, _080923F8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080923EC
- ldr r1, _080923F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- cmp r0, 0xFF
- beq _080923EC
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x3]
- strh r1, [r4, 0xA]
- ldrb r0, [r4, 0x8]
- bl sub_8092AD4
-_080923EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080923F4: .4byte gTasks
-_080923F8: .4byte gMain
- thumb_func_end sub_80921B0
-
- thumb_func_start sub_80923FC
-sub_80923FC: @ 80923FC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_8092E10
- mov r10, r0
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_8092E10
- mov r9, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- adds r0, r5, 0
- movs r1, 0
- bl sub_8092E10
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8092E10
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8092E10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8092E10
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r10
- mov r1, r9
- mov r2, r8
- adds r3, r6, 0
- bl sub_8091AF8
- ldr r1, _0809249C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080924A0 @ =sub_80924A4
- str r1, [r0]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809249C: .4byte gTasks
-_080924A0: .4byte sub_80924A4
- thumb_func_end sub_80923FC
-
- thumb_func_start sub_80924A4
-sub_80924A4: @ 80924A4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _080924F6
- ldr r0, _080924D0 @ =gPokedexView
- ldr r0, [r0]
- ldr r1, _080924D4 @ =0x0000060c
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _080924DC
- movs r0, 0x1F
- bl PlaySE
- ldr r0, _080924D8 @ =gDexText_SearchComplete
- bl sub_8091E20
- b _080924E8
- .align 2, 0
-_080924D0: .4byte gPokedexView
-_080924D4: .4byte 0x0000060c
-_080924D8: .4byte gDexText_SearchComplete
-_080924DC:
- movs r0, 0x20
- bl PlaySE
- ldr r0, _080924FC @ =gDexText_NoMatching
- bl sub_8091E20
-_080924E8:
- ldr r0, _08092500 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08092504 @ =sub_8092508
- str r0, [r1]
-_080924F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080924FC: .4byte gDexText_NoMatching
-_08092500: .4byte gTasks
-_08092504: .4byte sub_8092508
- thumb_func_end sub_80924A4
-
- thumb_func_start sub_8092508
-sub_8092508: @ 8092508
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r2, r4, 0
- ldr r0, _08092570 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080925A4
- ldr r5, _08092574 @ =gPokedexView
- ldr r1, [r5]
- ldr r3, _08092578 @ =0x0000060c
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _08092590
- ldr r0, _0809257C @ =0x0000064f
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_8092E10
- ldr r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08092580 @ =0x00000612
- adds r1, r2
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_8092E10
- ldr r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08092584 @ =0x00000616
- adds r1, r3
- strh r0, [r1]
- ldr r1, _08092588 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809258C @ =sub_80927B8
- str r1, [r0]
- movs r0, 0x3
- bl PlaySE
- b _080925A4
- .align 2, 0
-_08092570: .4byte gMain
-_08092574: .4byte gPokedexView
-_08092578: .4byte 0x0000060c
-_0809257C: .4byte 0x0000064f
-_08092580: .4byte 0x00000612
-_08092584: .4byte 0x00000616
-_08092588: .4byte gTasks
-_0809258C: .4byte sub_80927B8
-_08092590:
- ldr r0, _080925AC @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080925B0 @ =sub_809217C
- str r0, [r1]
- movs r0, 0x17
- bl PlaySE
-_080925A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080925AC: .4byte gTasks
-_080925B0: .4byte sub_809217C
- thumb_func_end sub_8092508
-
- thumb_func_start sub_80925B4
-sub_80925B4: @ 80925B4
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 15
- adds r1, 0x1
- lsls r1, 27
- lsrs r1, 24
- movs r0, 0x90
- bl sub_814AD7C
- pop {r0}
- bx r0
- thumb_func_end sub_80925B4
-
- thumb_func_start sub_80925CC
-sub_80925CC: @ 80925CC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_8092C8C
- ldr r2, _08092630 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r6, r1, r2
- ldrb r0, [r6, 0xA]
- adds r2, 0x8
- adds r1, r2
- ldr r2, _08092634 @ =gUnknown_083B5A7C
- lsls r0, 3
- adds r0, r2
- ldrb r5, [r0, 0x4]
- lsls r5, 1
- adds r5, r1, r5
- ldrb r0, [r0, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r5]
- strh r0, [r6, 0x24]
- ldrh r0, [r1]
- strh r0, [r6, 0x26]
- adds r0, r4, 0
- bl sub_8092D78
- ldr r1, _08092638 @ =0x0000ffff
- ldr r3, _0809263C @ =0x00002d9f
- movs r0, 0xB
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0xC
- bl CreateBlendedOutlineCursor
- ldrh r0, [r5]
- movs r1, 0x1
- bl sub_80925B4
- ldr r0, _08092640 @ =sub_8092644
- str r0, [r6]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08092630: .4byte gTasks
-_08092634: .4byte gUnknown_083B5A7C
-_08092638: .4byte 0x0000ffff
-_0809263C: .4byte 0x00002d9f
-_08092640: .4byte sub_8092644
- thumb_func_end sub_80925CC
-
- thumb_func_start sub_8092644
-sub_8092644: @ 8092644
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, _080926A8 @ =gTasks
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r6, r2, r3
- ldrb r1, [r6, 0xA]
- ldr r0, _080926AC @ =gUnknown_083B5A7C
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- mov r8, r0
- adds r3, 0x8
- adds r2, r3
- ldrb r0, [r1, 0x4]
- lsls r0, 1
- adds r4, r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 1
- adds r5, r2, r0
- ldrh r0, [r1, 0x6]
- subs r0, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080926B0 @ =gMain
- mov r12, r0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080926B4
- bl sub_814ADC8
- movs r0, 0x15
- bl PlaySE
- movs r0, 0x12
- movs r1, 0x1
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x1
- bl sub_8092C8C
- b _080926E0
- .align 2, 0
-_080926A8: .4byte gTasks
-_080926AC: .4byte gUnknown_083B5A7C
-_080926B0: .4byte gMain
-_080926B4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080926EC
- bl sub_814ADC8
- movs r0, 0x17
- bl PlaySE
- movs r0, 0x12
- movs r1, 0x1
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x1
- bl sub_8092C8C
- ldrh r0, [r6, 0x24]
- strh r0, [r4]
- ldrh r0, [r6, 0x26]
- strh r0, [r5]
-_080926E0:
- ldr r0, _080926E8 @ =sub_809217C
- str r0, [r6]
- b _080927AE
- .align 2, 0
-_080926E8: .4byte sub_809217C
-_080926EC:
- movs r3, 0
- mov r0, r12
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809274C
- ldrh r0, [r4]
- cmp r0, 0
- beq _08092716
- movs r1, 0
- bl sub_80925B4
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80925B4
- b _08092734
-_08092716:
- ldrh r0, [r5]
- cmp r0, 0
- beq _08092730
- subs r0, 0x1
- strh r0, [r5]
- adds r0, r7, 0
- bl sub_8092D78
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80925B4
- movs r3, 0x1
-_08092730:
- cmp r3, 0
- beq _080927AE
-_08092734:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- ldrh r1, [r5]
- adds r0, r1
- lsls r0, 3
- add r0, r8
- ldr r0, [r0]
- bl sub_8091E20
- b _080927AE
-_0809274C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080927AE
- ldrh r0, [r4]
- cmp r0, 0x4
- bhi _08092774
- cmp r0, r2
- bcs _08092774
- movs r1, 0
- bl sub_80925B4
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80925B4
- b _08092798
-_08092774:
- cmp r2, 0x5
- bls _08092794
- ldrh r1, [r5]
- subs r0, r2, 0x5
- cmp r1, r0
- bge _08092794
- adds r0, r1, 0x1
- strh r0, [r5]
- adds r0, r7, 0
- bl sub_8092D78
- movs r0, 0x5
- movs r1, 0x1
- bl sub_80925B4
- movs r3, 0x1
-_08092794:
- cmp r3, 0
- beq _080927AE
-_08092798:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- ldrh r1, [r5]
- adds r0, r1
- lsls r0, 3
- add r0, r8
- ldr r0, [r0]
- bl sub_8091E20
-_080927AE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8092644
-
- thumb_func_start sub_80927B8
-sub_80927B8: @ 80927B8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080927E8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080927EC @ =sub_80927F0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080927E8: .4byte gTasks
-_080927EC: .4byte sub_80927F0
- thumb_func_end sub_80927B8
-
- thumb_func_start sub_80927F0
-sub_80927F0: @ 80927F0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0809280C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08092808
- adds r0, r2, 0
- bl DestroyTask
-_08092808:
- pop {r0}
- bx r0
- .align 2, 0
-_0809280C: .4byte gPaletteFade
- thumb_func_end sub_80927F0
-
- thumb_func_start sub_8092810
-sub_8092810: @ 8092810
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- lsls r2, 24
- lsrs r1, r2, 24
- lsls r3, 24
- lsrs r5, r3, 8
- movs r3, 0
- cmp r5, 0
- beq _0809285A
- lsls r7, r1, 6
- ldr r6, _08092860 @ =0x00000fff
- lsls r4, r0, 12
-_08092830:
- mov r0, r12
- adds r1, r0, r3
- lsls r1, 1
- adds r1, r7, r1
- ldr r0, _08092864 @ =0x06007800
- adds r2, r1, r0
- ldrh r0, [r2]
- ands r0, r6
- orrs r0, r4
- strh r0, [r2]
- ldr r0, _08092868 @ =0x06007840
- adds r1, r0
- ldrh r0, [r1]
- ands r0, r6
- orrs r0, r4
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r0, r5
- bcc _08092830
-_0809285A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08092860: .4byte 0x00000fff
-_08092864: .4byte 0x06007800
-_08092868: .4byte 0x06007840
- thumb_func_end sub_8092810
-
- thumb_func_start sub_809286C
-sub_809286C: @ 809286C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x1
- ands r5, r0
- ands r2, r0
- lsls r2, 1
- orrs r5, r2
- cmp r4, 0xA
- bhi _08092958
- lsls r0, r4, 2
- ldr r1, _08092894 @ =_08092898
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08092894: .4byte _08092898
- .align 2, 0
-_08092898:
- .4byte _080928C4
- .4byte _080928C4
- .4byte _080928C4
- .4byte _080928D4
- .4byte _080928D4
- .4byte _080928EC
- .4byte _080928EC
- .4byte _080928D4
- .4byte _080928D4
- .4byte _08092914
- .4byte _08092904
-_080928C4:
- ldr r1, _080928D0 @ =gUnknown_083B57E4
- lsls r0, r4, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
- ldrb r2, [r0, 0x5]
- b _08092932
- .align 2, 0
-_080928D0: .4byte gUnknown_083B57E4
-_080928D4:
- ldr r2, _08092900 @ =gUnknown_083B57FC
- subs r1, r4, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- ldrb r2, [r0, 0x5]
- ldrb r3, [r0, 0x6]
- adds r0, r5, 0
- bl sub_8092810
-_080928EC:
- ldr r2, _08092900 @ =gUnknown_083B57FC
- subs r1, r4, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x7]
- ldrb r2, [r0, 0x8]
- ldrb r3, [r0, 0x9]
- b _08092934
- .align 2, 0
-_08092900: .4byte gUnknown_083B57FC
-_08092904:
- ldr r0, _08092910 @ =gUnknown_083B57FC
- ldrb r1, [r0, 0x1C]
- ldrb r2, [r0, 0x1D]
- ldrb r3, [r0, 0x1E]
- b _08092934
- .align 2, 0
-_08092910: .4byte gUnknown_083B57FC
-_08092914:
- bl IsNationalPokedexEnabled
- cmp r0, 0
- bne _08092940
- ldr r2, _0809293C @ =gUnknown_083B57FC
- subs r1, r4, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- ldrb r2, [r0, 0x5]
- subs r2, 0x2
- lsls r2, 24
- lsrs r2, 24
-_08092932:
- ldrb r3, [r0, 0x6]
-_08092934:
- adds r0, r5, 0
- bl sub_8092810
- b _08092958
- .align 2, 0
-_0809293C: .4byte gUnknown_083B57FC
-_08092940:
- ldr r2, _08092960 @ =gUnknown_083B57FC
- subs r1, r4, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- ldrb r2, [r0, 0x5]
- ldrb r3, [r0, 0x6]
- adds r0, r5, 0
- bl sub_8092810
-_08092958:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08092960: .4byte gUnknown_083B57FC
- thumb_func_end sub_809286C
-
- thumb_func_start sub_8092964
-sub_8092964: @ 8092964
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080929CE
- cmp r0, 0x1
- bgt _0809297A
- cmp r0, 0
- beq _08092980
- b _08092AAC
-_0809297A:
- cmp r1, 0x2
- beq _08092A3E
- b _08092AAC
-_08092980:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0xA
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x5
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x6
- movs r1, 0x1
- movs r2, 0
- b _08092A1A
-_080929CE:
- movs r0, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0xA
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x5
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x6
- movs r1, 0x1
- movs r2, 0x1
-_08092A1A:
- bl sub_809286C
- movs r0, 0x7
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x8
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x9
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- b _08092AAC
-_08092A3E:
- movs r0, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0xA
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x5
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x6
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x7
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x9
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
-_08092AAC:
- pop {r0}
- bx r0
- thumb_func_end sub_8092964
-
- thumb_func_start sub_8092AB0
-sub_8092AB0: @ 8092AB0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8092964
- ldr r0, _08092AD0 @ =gUnknown_083B57E4
- lsls r4, 3
- adds r4, r0
- ldr r0, [r4]
- bl sub_8091E20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08092AD0: .4byte gUnknown_083B57E4
- thumb_func_end sub_8092AB0
-
- thumb_func_start sub_8092AD4
-sub_8092AD4: @ 8092AD4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_8092964
- cmp r4, 0x6
- bhi _08092B4E
- lsls r0, r4, 2
- ldr r1, _08092AF0 @ =_08092AF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08092AF0: .4byte _08092AF4
- .align 2, 0
-_08092AF4:
- .4byte _08092B10
- .4byte _08092B14
- .4byte _08092B18
- .4byte _08092B26
- .4byte _08092B34
- .4byte _08092B38
- .4byte _08092B44
-_08092B10:
- movs r0, 0x3
- b _08092B3A
-_08092B14:
- movs r0, 0x4
- b _08092B3A
-_08092B18:
- movs r0, 0xA
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- movs r0, 0x5
- b _08092B3A
-_08092B26:
- movs r0, 0xA
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- movs r0, 0x6
- b _08092B3A
-_08092B34:
- movs r0, 0x7
- b _08092B3A
-_08092B38:
- movs r0, 0x8
-_08092B3A:
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- b _08092B4E
-_08092B44:
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- bl sub_809286C
-_08092B4E:
- ldr r0, _08092B64 @ =gUnknown_083B57FC
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_8091E20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08092B64: .4byte gUnknown_083B57FC
- thumb_func_end sub_8092AD4
-
- thumb_func_start sub_8092B68
-sub_8092B68: @ 8092B68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08092C68 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r2
- ldrh r0, [r6, 0x16]
- ldrh r1, [r6, 0x14]
- adds r0, r1
- lsls r0, 16
- ldr r7, _08092C6C @ =gStringVar1
- ldr r1, _08092C70 @ =gUnknown_083B5910
- lsrs r0, 13
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- ldr r0, _08092C74 @ =gUnknown_083B5AB2
- mov r8, r0
- movs r1, 0x2D
- movs r2, 0x10
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- ldrh r0, [r6, 0x1A]
- ldrh r1, [r6, 0x18]
- adds r0, r1
- lsls r0, 16
- ldr r1, _08092C78 @ =gUnknown_083B5968
- lsrs r0, 13
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- mov r0, r8
- movs r1, 0x2D
- movs r2, 0x20
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- ldrh r0, [r6, 0x1E]
- ldrh r1, [r6, 0x1C]
- adds r0, r1
- lsls r0, 16
- ldr r4, _08092C7C @ =gUnknown_083B59C8
- lsrs r0, 13
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- ldr r5, _08092C80 @ =gUnknown_083B5AAC
- adds r0, r5, 0
- movs r1, 0x2D
- movs r2, 0x30
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- ldrh r0, [r6, 0x22]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 13
- adds r0, r4
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- adds r0, r5, 0
- movs r1, 0x5D
- movs r2, 0x30
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- ldrh r0, [r6, 0x12]
- ldrh r1, [r6, 0x10]
- adds r0, r1
- lsls r0, 16
- ldr r1, _08092C84 @ =gUnknown_083B58D8
- lsrs r0, 13
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- mov r0, r8
- movs r1, 0x2D
- movs r2, 0x40
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- bl IsNationalPokedexEnabled
- cmp r0, 0
- beq _08092C5E
- ldrh r0, [r6, 0xE]
- ldrh r6, [r6, 0xC]
- adds r0, r6
- lsls r0, 16
- ldr r1, _08092C88 @ =gUnknown_083B58C0
- lsrs r0, 13
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- mov r0, r8
- movs r1, 0x2D
- movs r2, 0x50
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_08092C5E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08092C68: .4byte gTasks
-_08092C6C: .4byte gStringVar1
-_08092C70: .4byte gUnknown_083B5910
-_08092C74: .4byte gUnknown_083B5AB2
-_08092C78: .4byte gUnknown_083B5968
-_08092C7C: .4byte gUnknown_083B59C8
-_08092C80: .4byte gUnknown_083B5AAC
-_08092C84: .4byte gUnknown_083B58D8
-_08092C88: .4byte gUnknown_083B58C0
- thumb_func_end sub_8092B68
-
- thumb_func_start sub_8092C8C
-sub_8092C8C: @ 8092C8C
- push {r4-r6,lr}
- lsls r0, 24
- cmp r0, 0
- bne _08092D48
- ldr r1, _08092D1C @ =0x06007822
- ldr r2, _08092D20 @ =0x00000c0b
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x12
- ldr r3, _08092D24 @ =0x06007800
- ldr r4, _08092D28 @ =0x0000080d
- adds r2, r4, 0
-_08092CA4:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1C
- bls _08092CA4
- ldr r1, _08092D2C @ =0x0600783a
- ldr r2, _08092D30 @ =0x0000080b
- adds r0, r2, 0
- strh r0, [r1]
- movs r3, 0x1
- ldr r6, _08092D24 @ =0x06007800
- movs r5, 0x2
-_08092CC2:
- lsls r2, r3, 6
- ldr r4, _08092D1C @ =0x06007822
- adds r1, r2, r4
- ldr r4, _08092D34 @ =0x0000040a
- adds r0, r4, 0
- strh r0, [r1]
- movs r1, 0x12
- adds r4, r3, 0x1
- adds r3, r2, 0
-_08092CD4:
- lsls r0, r1, 1
- adds r0, r3, r0
- adds r0, r6
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1C
- bls _08092CD4
- ldr r1, _08092D2C @ =0x0600783a
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- lsls r0, r4, 16
- lsrs r3, r0, 16
- cmp r3, 0xC
- bls _08092CC2
- ldr r1, _08092D38 @ =0x06007b62
- ldr r2, _08092D3C @ =0x0000040b
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x12
- ldr r3, _08092D40 @ =0x06007b40
- movs r2, 0xD
-_08092D04:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1C
- bls _08092D04
- ldr r1, _08092D44 @ =0x06007b7a
- movs r0, 0xB
- strh r0, [r1]
- b _08092D6E
- .align 2, 0
-_08092D1C: .4byte 0x06007822
-_08092D20: .4byte 0x00000c0b
-_08092D24: .4byte 0x06007800
-_08092D28: .4byte 0x0000080d
-_08092D2C: .4byte 0x0600783a
-_08092D30: .4byte 0x0000080b
-_08092D34: .4byte 0x0000040a
-_08092D38: .4byte 0x06007b62
-_08092D3C: .4byte 0x0000040b
-_08092D40: .4byte 0x06007b40
-_08092D44: .4byte 0x06007b7a
-_08092D48:
- movs r3, 0
- ldr r6, _08092D74 @ =0x06007800
- movs r5, 0x4F
-_08092D4E:
- movs r1, 0x11
- adds r4, r3, 0x1
- lsls r2, r3, 6
-_08092D54:
- lsls r0, r1, 1
- adds r0, r2, r0
- adds r0, r6
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1D
- bls _08092D54
- lsls r0, r4, 16
- lsrs r3, r0, 16
- cmp r3, 0xD
- bls _08092D4E
-_08092D6E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08092D74: .4byte 0x06007800
- thumb_func_end sub_8092C8C
-
- thumb_func_start sub_8092D78
-sub_8092D78: @ 8092D78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08092DBC @ =gUnknown_083B5A7C
- ldr r3, _08092DC0 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r0, r2, r3
- movs r5, 0xA
- ldrsh r1, [r0, r5]
- lsls r1, 3
- adds r1, r4
- ldr r6, [r1]
- adds r3, 0x8
- adds r2, r3
- ldrb r0, [r1, 0x4]
- lsls r0, 1
- adds r0, r2
- mov r8, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 1
- adds r7, r2, r0
- movs r0, 0x12
- movs r1, 0x1
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r5, 0
- ldrh r4, [r7]
- b _08092DE8
- .align 2, 0
-_08092DBC: .4byte gUnknown_083B5A7C
-_08092DC0: .4byte gTasks
-_08092DC4:
- lsls r0, r4, 3
- adds r0, r6
- ldr r0, [r0, 0x4]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x12
- bl MenuPrint
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x5
- bhi _08092DF2
-_08092DE8:
- lsls r0, r4, 3
- adds r0, r6
- ldr r0, [r0, 0x4]
- cmp r0, 0
- bne _08092DC4
-_08092DF2:
- mov r1, r8
- ldrh r0, [r1]
- ldrh r1, [r7]
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldr r0, [r0]
- bl sub_8091E20
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8092D78
-
- thumb_func_start sub_8092E10
-sub_8092E10: @ 8092E10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08092E50 @ =gTasks + 0x8
- adds r1, r0
- ldr r2, _08092E54 @ =gUnknown_083B5A7C
- lsls r0, r3, 3
- adds r0, r2
- ldrb r2, [r0, 0x4]
- lsls r2, 1
- adds r2, r1, r2
- ldrb r0, [r0, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r3, 0x5
- bhi _08092E74
- lsls r0, r3, 2
- ldr r1, _08092E58 @ =_08092E5C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08092E50: .4byte gTasks + 0x8
-_08092E54: .4byte gUnknown_083B5A7C
-_08092E58: .4byte _08092E5C
- .align 2, 0
-_08092E5C:
- .4byte _08092E88
- .4byte _08092E92
- .4byte _08092EA2
- .4byte _08092EA2
- .4byte _08092E80
- .4byte _08092E78
-_08092E74:
- movs r0, 0
- b _08092EA8
-_08092E78:
- ldr r0, _08092E7C @ =gUnknown_083B5A60
- b _08092EA4
- .align 2, 0
-_08092E7C: .4byte gUnknown_083B5A60
-_08092E80:
- ldr r0, _08092E84 @ =gUnknown_083B5A62
- b _08092EA4
- .align 2, 0
-_08092E84: .4byte gUnknown_083B5A62
-_08092E88:
- cmp r2, 0
- beq _08092E96
- lsls r0, r2, 24
- lsrs r0, 24
- b _08092EA8
-_08092E92:
- cmp r2, 0
- bne _08092E9A
-_08092E96:
- movs r0, 0xFF
- b _08092EA8
-_08092E9A:
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _08092EA8
-_08092EA2:
- ldr r0, _08092EAC @ =gUnknown_083B5A68
-_08092EA4:
- adds r0, r2, r0
- ldrb r0, [r0]
-_08092EA8:
- pop {r1}
- bx r1
- .align 2, 0
-_08092EAC: .4byte gUnknown_083B5A68
- thumb_func_end sub_8092E10
-
- thumb_func_start sub_8092EB0
-sub_8092EB0: @ 8092EB0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08092ED0 @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08092ED4 @ =0x00000614
- adds r0, r2
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0
- beq _08092ECA
- cmp r0, 0x1
- beq _08092ED8
-_08092ECA:
- movs r3, 0
- b _08092EDA
- .align 2, 0
-_08092ED0: .4byte gPokedexView
-_08092ED4: .4byte 0x00000614
-_08092ED8:
- movs r3, 0x1
-_08092EDA:
- ldr r1, _08092F00 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0xC]
- ldr r0, [r5]
- movs r3, 0xC3
- lsls r3, 3
- adds r0, r3
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bhi _08092F20
- lsls r0, 2
- ldr r1, _08092F04 @ =_08092F08
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08092F00: .4byte gTasks
-_08092F04: .4byte _08092F08
- .align 2, 0
-_08092F08:
- .4byte _08092F20
- .4byte _08092F24
- .4byte _08092F28
- .4byte _08092F2C
- .4byte _08092F30
- .4byte _08092F34
-_08092F20:
- movs r3, 0
- b _08092F36
-_08092F24:
- movs r3, 0x1
- b _08092F36
-_08092F28:
- movs r3, 0x2
- b _08092F36
-_08092F2C:
- movs r3, 0x3
- b _08092F36
-_08092F30:
- movs r3, 0x4
- b _08092F36
-_08092F34:
- movs r3, 0x5
-_08092F36:
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r5
- strh r3, [r0, 0x10]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8092EB0
-
- thumb_func_start sub_8092F44
-sub_8092F44: @ 8092F44
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08092F7C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r0, r1, r3
- ldrb r2, [r0, 0xA]
- adds r3, 0x8
- adds r1, r3
- ldr r0, _08092F80 @ =gUnknown_083B5A7C
- lsls r2, 3
- adds r2, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r2, 0x6]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bls _08092F84
- ldrh r0, [r1]
- cmp r0, 0
- beq _08092F84
- movs r0, 0
- b _08092F86
- .align 2, 0
-_08092F7C: .4byte gTasks
-_08092F80: .4byte gUnknown_083B5A7C
-_08092F84:
- movs r0, 0x1
-_08092F86:
- pop {r1}
- bx r1
- thumb_func_end sub_8092F44
-
- thumb_func_start sub_8092F8C
-sub_8092F8C: @ 8092F8C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08092FC8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r0, r1, r3
- ldrb r2, [r0, 0xA]
- adds r3, 0x8
- adds r1, r3
- ldr r0, _08092FCC @ =gUnknown_083B5A7C
- lsls r2, 3
- adds r2, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r2, 0x6]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bls _08092FD0
- ldrh r1, [r1]
- subs r0, 0x5
- cmp r1, r0
- bge _08092FD0
- movs r0, 0
- b _08092FD2
- .align 2, 0
-_08092FC8: .4byte gTasks
-_08092FCC: .4byte gUnknown_083B5A7C
-_08092FD0:
- movs r0, 0x1
-_08092FD2:
- pop {r1}
- bx r1
- thumb_func_end sub_8092F8C
-
- thumb_func_start sub_8092FD8
-sub_8092FD8: @ 8092FD8
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _08093018 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0809301C @ =sub_8092644
- cmp r1, r0
- bne _08093078
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08093020
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092F8C
- lsls r0, 24
- cmp r0, 0
- beq _0809303C
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _08093048
- .align 2, 0
-_08093018: .4byte gTasks
-_0809301C: .4byte sub_8092644
-_08093020:
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092F44
- lsls r0, 24
- cmp r0, 0
- beq _0809303C
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _08093048
-_0809303C:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_08093048:
- strb r0, [r2]
- ldrh r2, [r4, 0x32]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 7
- adds r0, r2, r0
- lsls r0, 24
- ldr r1, _08093074 @ =gSineTable
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _08093066
- adds r0, 0x7F
-_08093066:
- asrs r0, 7
- strh r0, [r4, 0x26]
- adds r0, r2, 0
- adds r0, 0x8
- strh r0, [r4, 0x32]
- b _08093084
- .align 2, 0
-_08093074: .4byte gSineTable
-_08093078:
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08093084:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8092FD8
-
- thumb_func_start sub_809308C
-sub_809308C: @ 809308C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08093104 @ =gSpriteTemplate_83A053C
- adds r0, r6, 0
- movs r1, 0xB8
- movs r2, 0x4
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08093108 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r0, r1, r4
- movs r2, 0
- strh r5, [r0, 0x2E]
- strh r2, [r0, 0x30]
- movs r0, 0x1C
- adds r0, r4
- mov r9, r0
- add r1, r9
- ldr r0, _0809310C @ =sub_8092FD8
- mov r8, r0
- str r0, [r1]
- adds r0, r6, 0
- movs r1, 0xB8
- movs r2, 0x6C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r4
- strh r5, [r4, 0x2E]
- movs r0, 0x1
- strh r0, [r4, 0x30]
- adds r4, 0x3F
- ldrb r0, [r4]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r4]
- add r1, r9
- mov r0, r8
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08093104: .4byte gSpriteTemplate_83A053C
-_08093108: .4byte gSprites
-_0809310C: .4byte sub_8092FD8
- thumb_func_end sub_809308C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/graphics/pokemon/footprint_table.inc b/data/graphics/pokemon/footprint_table.inc
deleted file mode 100644
index 675a3bce4..000000000
--- a/data/graphics/pokemon/footprint_table.inc
+++ /dev/null
@@ -1,415 +0,0 @@
- .align 2
-gMonFootprintTable:: @ 83B4EE4
- .4byte gMonFootprint_Bulbasaur
- .4byte gMonFootprint_Bulbasaur
- .4byte gMonFootprint_Ivysaur
- .4byte gMonFootprint_Venusaur
- .4byte gMonFootprint_Charmander
- .4byte gMonFootprint_Charmeleon
- .4byte gMonFootprint_Charizard
- .4byte gMonFootprint_Squirtle
- .4byte gMonFootprint_Wartortle
- .4byte gMonFootprint_Blastoise
- .4byte gMonFootprint_Caterpie
- .4byte gMonFootprint_Metapod
- .4byte gMonFootprint_Butterfree
- .4byte gMonFootprint_Weedle
- .4byte gMonFootprint_Kakuna
- .4byte gMonFootprint_Beedrill
- .4byte gMonFootprint_Pidgey
- .4byte gMonFootprint_Pidgeotto
- .4byte gMonFootprint_Pidgeot
- .4byte gMonFootprint_Rattata
- .4byte gMonFootprint_Raticate
- .4byte gMonFootprint_Spearow
- .4byte gMonFootprint_Fearow
- .4byte gMonFootprint_Ekans
- .4byte gMonFootprint_Arbok
- .4byte gMonFootprint_Pikachu
- .4byte gMonFootprint_Raichu
- .4byte gMonFootprint_Sandshrew
- .4byte gMonFootprint_Sandslash
- .4byte gMonFootprint_NidoranF
- .4byte gMonFootprint_Nidorina
- .4byte gMonFootprint_Nidoqueen
- .4byte gMonFootprint_NidoranM
- .4byte gMonFootprint_Nidorino
- .4byte gMonFootprint_Nidoking
- .4byte gMonFootprint_Clefairy
- .4byte gMonFootprint_Clefable
- .4byte gMonFootprint_Vulpix
- .4byte gMonFootprint_Ninetales
- .4byte gMonFootprint_Jigglypuff
- .4byte gMonFootprint_Wigglytuff
- .4byte gMonFootprint_Zubat
- .4byte gMonFootprint_Golbat
- .4byte gMonFootprint_Oddish
- .4byte gMonFootprint_Gloom
- .4byte gMonFootprint_Vileplume
- .4byte gMonFootprint_Paras
- .4byte gMonFootprint_Parasect
- .4byte gMonFootprint_Venonat
- .4byte gMonFootprint_Venomoth
- .4byte gMonFootprint_Diglett
- .4byte gMonFootprint_Dugtrio
- .4byte gMonFootprint_Meowth
- .4byte gMonFootprint_Persian
- .4byte gMonFootprint_Psyduck
- .4byte gMonFootprint_Golduck
- .4byte gMonFootprint_Mankey
- .4byte gMonFootprint_Primeape
- .4byte gMonFootprint_Growlithe
- .4byte gMonFootprint_Arcanine
- .4byte gMonFootprint_Poliwag
- .4byte gMonFootprint_Poliwhirl
- .4byte gMonFootprint_Poliwrath
- .4byte gMonFootprint_Abra
- .4byte gMonFootprint_Kadabra
- .4byte gMonFootprint_Alakazam
- .4byte gMonFootprint_Machop
- .4byte gMonFootprint_Machoke
- .4byte gMonFootprint_Machamp
- .4byte gMonFootprint_Bellsprout
- .4byte gMonFootprint_Weepinbell
- .4byte gMonFootprint_Victreebel
- .4byte gMonFootprint_Tentacool
- .4byte gMonFootprint_Tentacruel
- .4byte gMonFootprint_Geodude
- .4byte gMonFootprint_Graveler
- .4byte gMonFootprint_Golem
- .4byte gMonFootprint_Ponyta
- .4byte gMonFootprint_Rapidash
- .4byte gMonFootprint_Slowpoke
- .4byte gMonFootprint_Slowbro
- .4byte gMonFootprint_Magnemite
- .4byte gMonFootprint_Magneton
- .4byte gMonFootprint_Farfetchd
- .4byte gMonFootprint_Doduo
- .4byte gMonFootprint_Dodrio
- .4byte gMonFootprint_Seel
- .4byte gMonFootprint_Dewgong
- .4byte gMonFootprint_Grimer
- .4byte gMonFootprint_Muk
- .4byte gMonFootprint_Shellder
- .4byte gMonFootprint_Cloyster
- .4byte gMonFootprint_Gastly
- .4byte gMonFootprint_Haunter
- .4byte gMonFootprint_Gengar
- .4byte gMonFootprint_Onix
- .4byte gMonFootprint_Drowzee
- .4byte gMonFootprint_Hypno
- .4byte gMonFootprint_Krabby
- .4byte gMonFootprint_Kingler
- .4byte gMonFootprint_Voltorb
- .4byte gMonFootprint_Electrode
- .4byte gMonFootprint_Exeggcute
- .4byte gMonFootprint_Exeggutor
- .4byte gMonFootprint_Cubone
- .4byte gMonFootprint_Marowak
- .4byte gMonFootprint_Hitmonlee
- .4byte gMonFootprint_Hitmonchan
- .4byte gMonFootprint_Lickitung
- .4byte gMonFootprint_Koffing
- .4byte gMonFootprint_Weezing
- .4byte gMonFootprint_Rhyhorn
- .4byte gMonFootprint_Rhydon
- .4byte gMonFootprint_Chansey
- .4byte gMonFootprint_Tangela
- .4byte gMonFootprint_Kangaskhan
- .4byte gMonFootprint_Horsea
- .4byte gMonFootprint_Seadra
- .4byte gMonFootprint_Goldeen
- .4byte gMonFootprint_Seaking
- .4byte gMonFootprint_Staryu
- .4byte gMonFootprint_Starmie
- .4byte gMonFootprint_Mrmime
- .4byte gMonFootprint_Scyther
- .4byte gMonFootprint_Jynx
- .4byte gMonFootprint_Electabuzz
- .4byte gMonFootprint_Magmar
- .4byte gMonFootprint_Pinsir
- .4byte gMonFootprint_Tauros
- .4byte gMonFootprint_Magikarp
- .4byte gMonFootprint_Gyarados
- .4byte gMonFootprint_Lapras
- .4byte gMonFootprint_Ditto
- .4byte gMonFootprint_Eevee
- .4byte gMonFootprint_Vaporeon
- .4byte gMonFootprint_Jolteon
- .4byte gMonFootprint_Flareon
- .4byte gMonFootprint_Porygon
- .4byte gMonFootprint_Omanyte
- .4byte gMonFootprint_Omastar
- .4byte gMonFootprint_Kabuto
- .4byte gMonFootprint_Kabutops
- .4byte gMonFootprint_Aerodactyl
- .4byte gMonFootprint_Snorlax
- .4byte gMonFootprint_Articuno
- .4byte gMonFootprint_Zapdos
- .4byte gMonFootprint_Moltres
- .4byte gMonFootprint_Dratini
- .4byte gMonFootprint_Dragonair
- .4byte gMonFootprint_Dragonite
- .4byte gMonFootprint_Mewtwo
- .4byte gMonFootprint_Mew
- .4byte gMonFootprint_Chikorita
- .4byte gMonFootprint_Bayleef
- .4byte gMonFootprint_Meganium
- .4byte gMonFootprint_Cyndaquil
- .4byte gMonFootprint_Quilava
- .4byte gMonFootprint_Typhlosion
- .4byte gMonFootprint_Totodile
- .4byte gMonFootprint_Croconaw
- .4byte gMonFootprint_Feraligatr
- .4byte gMonFootprint_Sentret
- .4byte gMonFootprint_Furret
- .4byte gMonFootprint_Hoothoot
- .4byte gMonFootprint_Noctowl
- .4byte gMonFootprint_Ledyba
- .4byte gMonFootprint_Ledian
- .4byte gMonFootprint_Spinarak
- .4byte gMonFootprint_Ariados
- .4byte gMonFootprint_Crobat
- .4byte gMonFootprint_Chinchou
- .4byte gMonFootprint_Lanturn
- .4byte gMonFootprint_Pichu
- .4byte gMonFootprint_Cleffa
- .4byte gMonFootprint_Igglybuff
- .4byte gMonFootprint_Togepi
- .4byte gMonFootprint_Togetic
- .4byte gMonFootprint_Natu
- .4byte gMonFootprint_Xatu
- .4byte gMonFootprint_Mareep
- .4byte gMonFootprint_Flaaffy
- .4byte gMonFootprint_Ampharos
- .4byte gMonFootprint_Bellossom
- .4byte gMonFootprint_Marill
- .4byte gMonFootprint_Azumarill
- .4byte gMonFootprint_Sudowoodo
- .4byte gMonFootprint_Politoed
- .4byte gMonFootprint_Hoppip
- .4byte gMonFootprint_Skiploom
- .4byte gMonFootprint_Jumpluff
- .4byte gMonFootprint_Aipom
- .4byte gMonFootprint_Sunkern
- .4byte gMonFootprint_Sunflora
- .4byte gMonFootprint_Yanma
- .4byte gMonFootprint_Wooper
- .4byte gMonFootprint_Quagsire
- .4byte gMonFootprint_Espeon
- .4byte gMonFootprint_Umbreon
- .4byte gMonFootprint_Murkrow
- .4byte gMonFootprint_Slowking
- .4byte gMonFootprint_Misdreavus
- .4byte gMonFootprint_Unown
- .4byte gMonFootprint_Wobbuffet
- .4byte gMonFootprint_Girafarig
- .4byte gMonFootprint_Pineco
- .4byte gMonFootprint_Forretress
- .4byte gMonFootprint_Dunsparce
- .4byte gMonFootprint_Gligar
- .4byte gMonFootprint_Steelix
- .4byte gMonFootprint_Snubbull
- .4byte gMonFootprint_Granbull
- .4byte gMonFootprint_Qwilfish
- .4byte gMonFootprint_Scizor
- .4byte gMonFootprint_Shuckle
- .4byte gMonFootprint_Heracross
- .4byte gMonFootprint_Sneasel
- .4byte gMonFootprint_Teddiursa
- .4byte gMonFootprint_Ursaring
- .4byte gMonFootprint_Slugma
- .4byte gMonFootprint_Magcargo
- .4byte gMonFootprint_Swinub
- .4byte gMonFootprint_Piloswine
- .4byte gMonFootprint_Corsola
- .4byte gMonFootprint_Remoraid
- .4byte gMonFootprint_Octillery
- .4byte gMonFootprint_Delibird
- .4byte gMonFootprint_Mantine
- .4byte gMonFootprint_Skarmory
- .4byte gMonFootprint_Houndour
- .4byte gMonFootprint_Houndoom
- .4byte gMonFootprint_Kingdra
- .4byte gMonFootprint_Phanpy
- .4byte gMonFootprint_Donphan
- .4byte gMonFootprint_Porygon2
- .4byte gMonFootprint_Stantler
- .4byte gMonFootprint_Smeargle
- .4byte gMonFootprint_Tyrogue
- .4byte gMonFootprint_Hitmontop
- .4byte gMonFootprint_Smoochum
- .4byte gMonFootprint_Elekid
- .4byte gMonFootprint_Magby
- .4byte gMonFootprint_Miltank
- .4byte gMonFootprint_Blissey
- .4byte gMonFootprint_Raikou
- .4byte gMonFootprint_Entei
- .4byte gMonFootprint_Suicune
- .4byte gMonFootprint_Larvitar
- .4byte gMonFootprint_Pupitar
- .4byte gMonFootprint_Tyranitar
- .4byte gMonFootprint_Lugia
- .4byte gMonFootprint_HoOh
- .4byte gMonFootprint_Celebi
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_QuestionMark
- .4byte gMonFootprint_Treecko
- .4byte gMonFootprint_Grovyle
- .4byte gMonFootprint_Sceptile
- .4byte gMonFootprint_Torchic
- .4byte gMonFootprint_Combusken
- .4byte gMonFootprint_Blaziken
- .4byte gMonFootprint_Mudkip
- .4byte gMonFootprint_Marshtomp
- .4byte gMonFootprint_Swampert
- .4byte gMonFootprint_Poochyena
- .4byte gMonFootprint_Mightyena
- .4byte gMonFootprint_Zigzagoon
- .4byte gMonFootprint_Linoone
- .4byte gMonFootprint_Wurmple
- .4byte gMonFootprint_Silcoon
- .4byte gMonFootprint_Beautifly
- .4byte gMonFootprint_Cascoon
- .4byte gMonFootprint_Dustox
- .4byte gMonFootprint_Lotad
- .4byte gMonFootprint_Lombre
- .4byte gMonFootprint_Ludicolo
- .4byte gMonFootprint_Seedot
- .4byte gMonFootprint_Nuzleaf
- .4byte gMonFootprint_Shiftry
- .4byte gMonFootprint_Nincada
- .4byte gMonFootprint_Ninjask
- .4byte gMonFootprint_Shedinja
- .4byte gMonFootprint_Taillow
- .4byte gMonFootprint_Swellow
- .4byte gMonFootprint_Shroomish
- .4byte gMonFootprint_Breloom
- .4byte gMonFootprint_Spinda
- .4byte gMonFootprint_Wingull
- .4byte gMonFootprint_Pelipper
- .4byte gMonFootprint_Surskit
- .4byte gMonFootprint_Masquerain
- .4byte gMonFootprint_Wailmer
- .4byte gMonFootprint_Wailord
- .4byte gMonFootprint_Skitty
- .4byte gMonFootprint_Delcatty
- .4byte gMonFootprint_Kecleon
- .4byte gMonFootprint_Baltoy
- .4byte gMonFootprint_Claydol
- .4byte gMonFootprint_Nosepass
- .4byte gMonFootprint_Torkoal
- .4byte gMonFootprint_Sableye
- .4byte gMonFootprint_Barboach
- .4byte gMonFootprint_Whiscash
- .4byte gMonFootprint_Luvdisc
- .4byte gMonFootprint_Corphish
- .4byte gMonFootprint_Crawdaunt
- .4byte gMonFootprint_Feebas
- .4byte gMonFootprint_Milotic
- .4byte gMonFootprint_Carvanha
- .4byte gMonFootprint_Sharpedo
- .4byte gMonFootprint_Trapinch
- .4byte gMonFootprint_Vibrava
- .4byte gMonFootprint_Flygon
- .4byte gMonFootprint_Makuhita
- .4byte gMonFootprint_Hariyama
- .4byte gMonFootprint_Electrike
- .4byte gMonFootprint_Manectric
- .4byte gMonFootprint_Numel
- .4byte gMonFootprint_Camerupt
- .4byte gMonFootprint_Spheal
- .4byte gMonFootprint_Sealeo
- .4byte gMonFootprint_Walrein
- .4byte gMonFootprint_Cacnea
- .4byte gMonFootprint_Cacturne
- .4byte gMonFootprint_Snorunt
- .4byte gMonFootprint_Glalie
- .4byte gMonFootprint_Lunatone
- .4byte gMonFootprint_Solrock
- .4byte gMonFootprint_Azurill
- .4byte gMonFootprint_Spoink
- .4byte gMonFootprint_Grumpig
- .4byte gMonFootprint_Plusle
- .4byte gMonFootprint_Minun
- .4byte gMonFootprint_Mawile
- .4byte gMonFootprint_Meditite
- .4byte gMonFootprint_Medicham
- .4byte gMonFootprint_Swablu
- .4byte gMonFootprint_Altaria
- .4byte gMonFootprint_Wynaut
- .4byte gMonFootprint_Duskull
- .4byte gMonFootprint_Dusclops
- .4byte gMonFootprint_Roselia
- .4byte gMonFootprint_Slakoth
- .4byte gMonFootprint_Vigoroth
- .4byte gMonFootprint_Slaking
- .4byte gMonFootprint_Gulpin
- .4byte gMonFootprint_Swalot
- .4byte gMonFootprint_Tropius
- .4byte gMonFootprint_Whismur
- .4byte gMonFootprint_Loudred
- .4byte gMonFootprint_Exploud
- .4byte gMonFootprint_Clamperl
- .4byte gMonFootprint_Huntail
- .4byte gMonFootprint_Gorebyss
- .4byte gMonFootprint_Absol
- .4byte gMonFootprint_Shuppet
- .4byte gMonFootprint_Banette
- .4byte gMonFootprint_Seviper
- .4byte gMonFootprint_Zangoose
- .4byte gMonFootprint_Relicanth
- .4byte gMonFootprint_Aron
- .4byte gMonFootprint_Lairon
- .4byte gMonFootprint_Aggron
- .4byte gMonFootprint_Castform
- .4byte gMonFootprint_Volbeat
- .4byte gMonFootprint_Illumise
- .4byte gMonFootprint_Lileep
- .4byte gMonFootprint_Cradily
- .4byte gMonFootprint_Anorith
- .4byte gMonFootprint_Armaldo
- .4byte gMonFootprint_Ralts
- .4byte gMonFootprint_Kirlia
- .4byte gMonFootprint_Gardevoir
- .4byte gMonFootprint_Bagon
- .4byte gMonFootprint_Shelgon
- .4byte gMonFootprint_Salamence
- .4byte gMonFootprint_Beldum
- .4byte gMonFootprint_Metang
- .4byte gMonFootprint_Metagross
- .4byte gMonFootprint_Regirock
- .4byte gMonFootprint_Regice
- .4byte gMonFootprint_Registeel
- .4byte gMonFootprint_Kyogre
- .4byte gMonFootprint_Groudon
- .4byte gMonFootprint_Rayquaza
- .4byte gMonFootprint_Latias
- .4byte gMonFootprint_Latios
- .4byte gMonFootprint_Jirachi
- .4byte gMonFootprint_Deoxys
- .4byte gMonFootprint_Chimecho
- .4byte gMonFootprint_Bulbasaur
diff --git a/data/pokedex.s b/data/pokedex.s
deleted file mode 100644
index a9ee7a9be..000000000
--- a/data/pokedex.s
+++ /dev/null
@@ -1,538 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_0839F67C:: @ 839F67C
- .incbin "graphics/pokedex/search.gbapal"
-
- .align 2
-gUnknown_0839F73C:: @ 839F73C
- .incbin "graphics/pokedex/national.gbapal"
-
- .space 0xA4
-
- .align 2
-gUnknown_0839F8A0:: @ 839F8A0
- .incbin "graphics/pokedex/pokedex_cry_layout.bin.lz"
-
- .align 2
-gUnknown_0839F988:: @ 839F988
- .incbin "graphics/pokedex/pokedex_size_layout.bin.lz"
-
-gUnknown_0839FA7C:: @ 839FA7C
- .incbin "graphics/pokedex/noball.4bpp.lz"
-
-@ 839FAC4
- .include "data/pokedex_orders.inc"
-
- .align 2
-gOamData_83A0404:: @ 83A0404
- .2byte 0x00A0
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gOamData_83A040C:: @ 83A040C
- .2byte 0x40A0
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_83A0414:: @ 83A0414
- .2byte 0x40A0
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_83A041C:: @ 83A041C
- .2byte 0x08A0
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gOamData_83A0424:: @ 83A0424
- .2byte 0x40A0
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_83A042C:: @ 83A042C
- .2byte 0x80A0
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83A0434:: @ 83A0434
- obj_image_anim_frame 3, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A043C:: @ 83A043C
- obj_image_anim_frame 1, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0444:: @ 83A0444
- obj_image_anim_frame 16, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A044C:: @ 83A044C
- obj_image_anim_frame 32, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0454:: @ 83A0454
- obj_image_anim_frame 64, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A045C:: @ 83A045C
- obj_image_anim_frame 96, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0464:: @ 83A0464
- obj_image_anim_frame 128, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A046C:: @ 83A046C
- obj_image_anim_frame 160, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0474:: @ 83A0474
- obj_image_anim_frame 192, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A047C:: @ 83A047C
- obj_image_anim_frame 224, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0484:: @ 83A0484
- obj_image_anim_frame 226, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A048C:: @ 83A048C
- obj_image_anim_frame 228, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0494:: @ 83A0494
- obj_image_anim_frame 230, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A049C:: @ 83A049C
- obj_image_anim_frame 232, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04A4:: @ 83A04A4
- obj_image_anim_frame 234, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04AC:: @ 83A04AC
- obj_image_anim_frame 236, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04B4:: @ 83A04B4
- obj_image_anim_frame 238, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04BC:: @ 83A04BC
- obj_image_anim_frame 240, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04C4:: @ 83A04C4
- obj_image_anim_frame 242, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04CC:: @ 83A04CC
- obj_image_anim_frame 4, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83A04D4:: @ 83A04D4
- .4byte gSpriteAnim_83A0434
-
- .align 2
-gSpriteAnimTable_83A04D8:: @ 83A04D8
- .4byte gSpriteAnim_83A043C
-
- .align 2
-gSpriteAnimTable_83A04DC:: @ 83A04DC
- .4byte gSpriteAnim_83A0444
-
- .align 2
-gSpriteAnimTable_83A04E0:: @ 83A04E0
- .4byte gSpriteAnim_83A044C
- .4byte gSpriteAnim_83A0454
- .4byte gSpriteAnim_83A045C
- .4byte gSpriteAnim_83A0464
-
- .align 2
-gSpriteAnimTable_83A04F0:: @ 83A04F0
- .4byte gSpriteAnim_83A046C
- .4byte gSpriteAnim_83A0474
-
- .align 2
-gSpriteAnimTable_83A04F8:: @ 83A04F8
- .4byte gSpriteAnim_83A047C
- .4byte gSpriteAnim_83A0484
- .4byte gSpriteAnim_83A048C
- .4byte gSpriteAnim_83A0494
- .4byte gSpriteAnim_83A049C
- .4byte gSpriteAnim_83A04A4
- .4byte gSpriteAnim_83A04AC
- .4byte gSpriteAnim_83A04B4
- .4byte gSpriteAnim_83A04BC
- .4byte gSpriteAnim_83A04C4
-
- .align 2
-gSpriteAnimTable_83A0520:: @ 83A0520
- .4byte gSpriteAnim_83A04CC
-
- .align 2
-gSpriteTemplate_83A0524:: @ 83A0524
- spr_template 4096, 4096, gOamData_83A0404, gSpriteAnimTable_83A04D4, NULL, gDummySpriteAffineAnimTable, sub_808EF38
-
- .align 2
-gSpriteTemplate_83A053C:: @ 83A053C
- spr_template 4096, 4096, gOamData_83A040C, gSpriteAnimTable_83A04D8, NULL, gDummySpriteAffineAnimTable, sub_808EF8C
-
- .align 2
-gSpriteTemplate_83A0554:: @ 83A0554
- spr_template 4096, 4096, gOamData_83A0414, gSpriteAnimTable_83A04E0, NULL, gDummySpriteAffineAnimTable, sub_808F08C
-
- .align 2
-gSpriteTemplate_83A056C:: @ 83A056C
- spr_template 4096, 4096, gOamData_83A041C, gSpriteAnimTable_83A04DC, NULL, gDummySpriteAffineAnimTable, sub_808F0B4
-
- .align 2
-gSpriteTemplate_83A0584:: @ 83A0584
- spr_template 4096, 4096, gOamData_83A0424, gSpriteAnimTable_83A04F0, NULL, gDummySpriteAffineAnimTable, sub_808ED94
-
- .align 2
-gSpriteTemplate_83A059C:: @ 83A059C
- spr_template 4096, 4096, gOamData_83A042C, gSpriteAnimTable_83A04F8, NULL, gDummySpriteAffineAnimTable, sub_808ED94
-
- .align 2
-gSpriteTemplate_83A05B4:: @ 83A05B4
- spr_template 4096, 4096, gOamData_83A042C, gSpriteAnimTable_83A0520, NULL, gDummySpriteAffineAnimTable, sub_808F168
-
- .align 2
-gUnknown_083A05CC:: @ 83A05CC
- obj_tiles gPokedexMenu2_Gfx, 0x1F00, 0x1000
- null_obj_tiles
-
- .align 2
-gUnknown_083A05DC:: @ 83A05DC
- obj_pal gPokedexMenu_Pal, 0x1000
- null_obj_pal
-
-gUnknown_083A05EC:: @ 83A05EC
- .byte 2, 4, 8, 16, 32
-
-gUnknown_083A05F1:: @ 83A05F1
- .byte 16, 8, 4, 2, 1
-
- .align 2
-gUnknown_083A05F8:: @ 83A05F8
- .string "$"
-
-@ 83A05F9
- .include "data/pokedex_entries.inc"
-
-gUnknown_083B4EC4:: @ 83B4EC4
- .space 32
-
-@ 83B4EE4
- .include "data/graphics/pokemon/footprint_table.inc"
-
-gUnknown_083B5558:: @ 83B5558
- .string "{CLEAR_TO 0}$"
-
- .incbin "graphics/unknown/unknown_3B555C.bin"
-
- .align 2
-gOamData_83B557C:: @ 83B557C
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gUnknown_083B5584:: @ 83B5584
- .4byte 0x02008000
- .4byte 0x0200c000
- .4byte 0x02010000
- .4byte 0x02014000
-
- .align 2
-gSpriteImageTable_83B5594:: @ 83B5594
- obj_frame_tiles 0x02008000, 0x800
- obj_frame_tiles 0x02008800, 0x800
- obj_frame_tiles 0x02009000, 0x800
- obj_frame_tiles 0x02009800, 0x800
- obj_frame_tiles 0x0200A000, 0x800
- obj_frame_tiles 0x0200A800, 0x800
- obj_frame_tiles 0x0200B000, 0x800
- obj_frame_tiles 0x0200B800, 0x800
- obj_frame_tiles 0x0200C000, 0x800
- obj_frame_tiles 0x0200C800, 0x800
- obj_frame_tiles 0x0200D000, 0x800
- obj_frame_tiles 0x0200D800, 0x800
- obj_frame_tiles 0x0200E000, 0x800
- obj_frame_tiles 0x0200E800, 0x800
- obj_frame_tiles 0x0200F000, 0x800
- obj_frame_tiles 0x0200F800, 0x800
-
- .align 2
-gSpriteImageTable_83B5614:: @ 83B5614
- obj_frame_tiles 0x0200C000, 0x800
- obj_frame_tiles 0x0200C800, 0x800
- obj_frame_tiles 0x0200D000, 0x800
- obj_frame_tiles 0x0200D800, 0x800
- obj_frame_tiles 0x0200E000, 0x800
- obj_frame_tiles 0x0200E800, 0x800
- obj_frame_tiles 0x0200F000, 0x800
- obj_frame_tiles 0x0200F800, 0x800
- obj_frame_tiles 0x02010000, 0x800
- obj_frame_tiles 0x02010800, 0x800
- obj_frame_tiles 0x02011000, 0x800
- obj_frame_tiles 0x02011800, 0x800
- obj_frame_tiles 0x02012000, 0x800
- obj_frame_tiles 0x02012800, 0x800
- obj_frame_tiles 0x02013000, 0x800
- obj_frame_tiles 0x02013800, 0x800
-
- .align 2
-gSpriteImageTable_83B5694:: @ 83B5694
- obj_frame_tiles 0x02010000, 0x800
- obj_frame_tiles 0x02010800, 0x800
- obj_frame_tiles 0x02011000, 0x800
- obj_frame_tiles 0x02011800, 0x800
- obj_frame_tiles 0x02012000, 0x800
- obj_frame_tiles 0x02012800, 0x800
- obj_frame_tiles 0x02013000, 0x800
- obj_frame_tiles 0x02013800, 0x800
- obj_frame_tiles 0x02014000, 0x800
- obj_frame_tiles 0x02014800, 0x800
- obj_frame_tiles 0x02015000, 0x800
- obj_frame_tiles 0x02015800, 0x800
- obj_frame_tiles 0x02016000, 0x800
- obj_frame_tiles 0x02016800, 0x800
- obj_frame_tiles 0x02017000, 0x800
- obj_frame_tiles 0x02017800, 0x800
-
- .align 2
-gSpriteImageTable_83B5714:: @ 83B5714
- obj_frame_tiles 0x02014000, 0x800
- obj_frame_tiles 0x02014800, 0x800
- obj_frame_tiles 0x02015000, 0x800
- obj_frame_tiles 0x02015800, 0x800
- obj_frame_tiles 0x02016000, 0x800
- obj_frame_tiles 0x02016800, 0x800
- obj_frame_tiles 0x02017000, 0x800
- obj_frame_tiles 0x02017800, 0x800
- obj_frame_tiles 0x02018000, 0x800
- obj_frame_tiles 0x02018800, 0x800
- obj_frame_tiles 0x02019000, 0x800
- obj_frame_tiles 0x02019800, 0x800
- obj_frame_tiles 0x0201A000, 0x800
- obj_frame_tiles 0x0201A800, 0x800
- obj_frame_tiles 0x0201B000, 0x800
- obj_frame_tiles 0x0201B800, 0x800
-
- .align 2
-gUnknown_083B5794:: @ 83B5794
- .4byte gSpriteImageTable_83B5594
- .4byte gSpriteImageTable_83B5614
- .4byte gSpriteImageTable_83B5694
- .4byte gSpriteImageTable_83B5714
-
- .align 2
-gUnknown_083B57A4:: @ 83B57A4
- spr_template 0xFFFF, 0, gOamData_83B557C, NULL, gSpriteImageTable_83B5594, gDummySpriteAffineAnimTable, nullsub_59
-
-gUnknown_083B57BC:: @ 83B57BC
- .byte 0, 0, 0, 0
- .byte 187, 3, 213, 3
- .byte 190, 3, 216, 3
- .byte 193, 3, 219, 3
- .byte 196, 3, 222, 3
- .byte 199, 3, 225, 3
- .byte 202, 3, 228, 3
- .byte 205, 3, 231, 3
- .byte 208, 3, 234, 3
- .byte 211, 2, 237, 2
-
- .align 2
-gUnknown_083B57E4:: @ 83B57E4
- .4byte DexText_SearchForPoke
- .2byte 0, 5
- .4byte DexText_SwitchDex
- .2byte 6, 5
- .4byte DexText_ReturnToDex
- .2byte 12, 5
-
- .align 2
-gUnknown_083B57FC:: @ 83B57FC
- .4byte DexText_ListByABC
- .byte 0, 2, 5, 5, 2, 12, 0, 0
- .4byte DexText_ListByColor
- .byte 0, 4, 5, 5, 4, 12, 0, 0
- .4byte DexText_ListByType
- .byte 0, 6, 5, 5, 6, 6, 0, 0
- .4byte DexText_ListByType
- .byte 0, 6, 5, 11, 6, 6, 0, 0
- .4byte DexText_SelectDexList
- .byte 0, 8, 5, 5, 8, 12, 0, 0
- .4byte DexText_SelectDexMode
- .byte 0, 10, 5, 5, 10, 12, 0, 0
- .4byte DexText_ExecuteSearchSwitch
- .byte 0, 12, 5, 0, 0, 0, 0, 0
-
-gUnknown_083B5850:: @ 83B5850
- .byte 0xFF, 0xFF, 0xFF, 1
- .byte 0xFF, 0xFF, 0, 2
- .byte 0xFF, 3, 1, 4
- .byte 2, 0xFF, 1, 4
- .byte 0xFF, 0xFF, 2, 5
- .byte 0xFF, 0xFF, 4, 6
- .byte 0xFF, 0xFF, 5, 0xFF
-
-gUnknown_083B586C:: @ 83B586C
- .byte 0xFF, 0xFF, 0xFF, 0xFF
- .byte 0xFF, 0xFF, 0xFF, 0xFF
- .byte 0xFF, 0xFF, 0xFF, 0xFF
- .byte 0xFF, 0xFF, 0xFF, 0xFF
- .byte 0xFF, 0xFF, 0xFF, 5
- .byte 0xFF, 0xFF, 4, 6
- .byte 0xFF, 0xFF, 5, 0xFF
-
-gUnknown_083B5888:: @ 83B5888
- .byte 0xFF, 0xFF, 0xFF, 1
- .byte 0xFF, 0xFF, 0, 2
- .byte 0xFF, 3, 1, 4
- .byte 2, 0xFF, 1, 4
- .byte 0xFF, 0xFF, 2, 6
- .byte 0xFF, 0xFF, 0xFF, 0xFF
- .byte 0xFF, 0xFF, 4, 0xFF
-
-gUnknown_083B58A4:: @ 83B58A4
- .byte 0xFF, 0xFF, 0xFF, 0xFF
- .byte 0xFF, 0xFF, 0xFF, 0xFF
- .byte 0xFF, 0xFF, 0xFF, 0xFF
- .byte 0xFF, 0xFF, 0xFF, 0xFF
- .byte 0xFF, 0xFF, 0xFF, 6
- .byte 0xFF, 0xFF, 0xFF, 0xFF
- .byte 0xFF, 0xFF, 4, 0xFF
-
- .align 2
-gUnknown_083B58C0:: @ 83B58C0
- .4byte DexText_HoennDex2, DexText_HoennDex
- .4byte DexText_NationalDex2, DexText_NationalDex
- .4byte 0x0, 0x0
-
- .align 2
-gUnknown_083B58D8:: @ 83B58D8
- .4byte DexText_ListByNumber, DexText_NumericalMode
- .4byte DexText_ListByABC2, DexText_ABCMode
- .4byte DexText_ListByHeavyToLightest, DexText_HeaviestMode
- .4byte DexText_ListByLightToHeaviest, DexText_LightestMode
- .4byte DexText_ListByTallToSmallest, DexText_TallestMode
- .4byte DexText_ListBySmallToTallest, DexText_SmallestMode
- .4byte 0x0, 0x0
-
- .align 2
-gUnknown_083B5910:: @ 83B5910
- .4byte DexText_Terminator5, DexText_DontSpecify
- .4byte DexText_Terminator5, DexText_ABC
- .4byte DexText_Terminator5, DexText_DEF
- .4byte DexText_Terminator5, DexText_GHI
- .4byte DexText_Terminator5, DexText_JKL
- .4byte DexText_Terminator5, DexText_MNO
- .4byte DexText_Terminator5, DexText_PQR
- .4byte DexText_Terminator5, DexText_STU
- .4byte DexText_Terminator5, DexText_VWX
- .4byte DexText_Terminator5, DexText_YZ
- .4byte 0x0, 0x0
-
- .align 2
-gUnknown_083B5968:: @ 83B5968
- .4byte DexText_Terminator5, DexText_DontSpecify
- .4byte DexText_Terminator5, DexText_Red
- .4byte DexText_Terminator5, DexText_Blue
- .4byte DexText_Terminator5, DexText_Yellow
- .4byte DexText_Terminator5, DexText_Green
- .4byte DexText_Terminator5, DexText_Black
- .4byte DexText_Terminator5, DexText_Brown
- .4byte DexText_Terminator5, DexText_Purple
- .4byte DexText_Terminator5, DexText_Gray
- .4byte DexText_Terminator5, DexText_White
- .4byte DexText_Terminator5, DexText_Pink
- .4byte 0x0, 0x0
-
- .align 2
-gUnknown_083B59C8:: @ 83B59C8
- .4byte DexText_Terminator5, DexText_None
- .4byte DexText_Terminator5, gTypeNames + TYPE_NORMAL * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_FIGHTING * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_FLYING * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_POISON * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_GROUND * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_ROCK * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_BUG * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_GHOST * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_STEEL * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_FIRE * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_WATER * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_GRASS * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_ELECTRIC * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_PSYCHIC * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_ICE * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_DRAGON * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_DARK * 7
- .4byte 0x0, 0x0
-
-gUnknown_083B5A60:: @ 83B5A60
- .byte 0, 1
-
-gUnknown_083B5A62:: @ 83B5A62
- .byte 0, 1, 2, 3, 4, 5
-
-gUnknown_083B5A68:: @ 83B5A68
- .byte -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17
-
- .align 2
-gUnknown_083B5A7C:: @ 83B5A7C
- .4byte gUnknown_083B5910
- .byte 6, 7, 10, 0
- .4byte gUnknown_083B5968
- .byte 8, 9, 11, 0
- .4byte gUnknown_083B59C8
- .byte 10, 11, 18, 0
- .4byte gUnknown_083B59C8
- .byte 12, 13, 18, 0
- .4byte gUnknown_083B58D8
- .byte 4, 5, 6, 0
- .4byte gUnknown_083B58C0
- .byte 2, 3, 2, 0
-
-gUnknown_083B5AAC:: @ 83B5AAC
- .string "{STR_VAR_1}{CLEAR_TO 43}$"
-
-gUnknown_083B5AB2:: @ 83B5AB2
- .string "{STR_VAR_1}{CLEAR_TO 96}$"
diff --git a/data/pokedex_entries.inc b/data/pokedex_entries.inc
deleted file mode 100644
index f1c206e3c..000000000
--- a/data/pokedex_entries.inc
+++ /dev/null
@@ -1,4164 +0,0 @@
-DexDescription_Dummy_1:
- .string "This is a newly discovered POKéMON.\nIt is currently under investigation.$"
-DexDescription_Dummy_2:
- .string "No detailed information is available\nat this time.$"
-
-DexDescription_Bulbasaur_1:
- .string "BULBASAUR can be seen napping in\nbright sunlight.\nThere is a seed on its back.$"
-DexDescription_Bulbasaur_2:
- .string "By soaking up the sun’s rays, the seed\ngrows progressively larger.$"
-
-DexDescription_Ivysaur_1:
- .string "There is a bud on this POKéMON’s back.\nTo support its weight, IVYSAUR’s legs\nand trunk grow thick and strong.$"
-DexDescription_Ivysaur_2:
- .string "If it starts spending more time lying\nin the sunlight, it’s a sign that the\nbud will bloom into a large flower soon.$"
-
-DexDescription_Venusaur_1:
- .string "There is a large flower on VENUSAUR’s\nback. The flower is said to take on vivid\ncolors if it gets plenty of nutrition$"
-DexDescription_Venusaur_2:
- .string "and sunlight. The flower’s aroma\nsoothes the emotions of people.$"
-
-DexDescription_Charmander_1:
- .string "The flame that burns at the tip of its\ntail is an indication of its emotions.\nThe flame wavers when CHARMANDER is$"
-DexDescription_Charmander_2:
- .string "enjoying itself. If the POKéMON becomes\nenraged, the flame burns fiercely.$"
-
-DexDescription_Charmeleon_1:
- .string "CHARMELEON mercilessly destroys its\nfoes using its sharp claws.\nIf it encounters a strong foe, it turns$"
-DexDescription_Charmeleon_2:
- .string "aggressive. In this excited state, the\nflame at the tip of its tail flares with a\nbluish white color.$"
-
-DexDescription_Charizard_1:
- .string "CHARIZARD flies around the sky in\nsearch of powerful opponents.\nIt breathes fire of such great heat$"
-DexDescription_Charizard_2:
- .string "that it melts anything. However, it\nnever turns its fiery breath on any\nopponent weaker than itself.$"
-
-DexDescription_Squirtle_1:
- .string "SQUIRTLE’s shell is not merely used\nfor protection.\nThe shell’s rounded shape and the$"
-DexDescription_Squirtle_2:
- .string "grooves on its surface help minimize\nresistance in water, enabling this\nPOKéMON to swim at high speeds.$"
-
-DexDescription_Wartortle_1:
- .string "Its tail is large and covered with a rich,\nthick fur. The tail becomes increasingly\ndeeper in color as WARTORTLE ages.$"
-DexDescription_Wartortle_2:
- .string "The scratches on its shell are evidence\nof this POKéMON’s toughness as a\nbattler.$"
-
-DexDescription_Blastoise_1:
- .string "BLASTOISE has water spouts that\nprotrude from its shell. The water\nspouts are very accurate.$"
-DexDescription_Blastoise_2:
- .string "They can shoot bullets of water with\nenough accuracy to strike empty cans\nfrom a distance of over 160 feet.$"
-
-DexDescription_Caterpie_1:
- .string "CATERPIE has a voracious appetite.\nIt can devour leaves bigger than its\nbody right before your eyes.$"
-DexDescription_Caterpie_2:
- .string "From its antenna, this POKéMON releases\na terrifically strong odor.$"
-
-DexDescription_Metapod_1:
- .string "The shell covering this POKéMON’s body\nis as hard as an iron slab.\nMETAPOD does not move very much.$"
-DexDescription_Metapod_2:
- .string "It stays still because it is preparing\nits soft innards for evolution inside\nthe hard shell.$"
-
-DexDescription_Butterfree_1:
- .string "BUTTERFREE has a superior ability to\nsearch for delicious honey from\nflowers.$"
-DexDescription_Butterfree_2:
- .string "It can even search out, extract, and\ncarry honey from flowers that are\nblooming over six miles from its nest.$"
-
-DexDescription_Weedle_1:
- .string "WEEDLE has an extremely acute sense\nof smell.\nIt is capable of distinguishing its$"
-DexDescription_Weedle_2:
- .string "favorite kinds of leaves from those it\ndislikes just by sniffing with its big\nred proboscis (nose).$"
-
-DexDescription_Kakuna_1:
- .string "KAKUNA remains virtually immobile as it\nclings to a tree. However, on the\ninside, it is extremely busy as it$"
-DexDescription_Kakuna_2:
- .string "prepares for its coming evolution.\nThis is evident from how hot the shell\nbecomes to the touch.$"
-
-DexDescription_Beedrill_1:
- .string "BEEDRILL is extremely territorial.\nNo one should ever approach its nest -\nthis is for their own safety.$"
-DexDescription_Beedrill_2:
- .string "If angered, they will attack in a furious\nswarm.$"
-
-DexDescription_Pidgey_1:
- .string "PIDGEY has an extremely sharp sense\nof direction.\nIt is capable of unerringly returning$"
-DexDescription_Pidgey_2:
- .string "home to its nest, however far it may be\nremoved from its familiar surroundings.$"
-
-DexDescription_Pidgeotto_1:
- .string "PIDGEOTTO claims a large area as its\nown territory. This POKéMON flies\naround, patrolling its living space.$"
-DexDescription_Pidgeotto_2:
- .string "If its territory is violated, it shows\nno mercy in thoroughly punishing the\nfoe with its sharp claws.$"
-
-DexDescription_Pidgeot_1:
- .string "This POKéMON has a dazzling plumage of\nbeautifully glossy feathers.\nMany TRAINERS are captivated by the$"
-DexDescription_Pidgeot_2:
- .string "striking beauty of the feathers on its\nhead, compelling them to choose PIDGEOT\nas their POKéMON.$"
-
-DexDescription_Rattata_1:
- .string "RATTATA is cautious in the extreme.\nEven while it is asleep, it constantly\nlistens by moving its ears around.$"
-DexDescription_Rattata_2:
- .string "It is not picky about where it lives -\nit will make its nest anywhere.$"
-
-DexDescription_Raticate_1:
- .string "RATICATE’s sturdy fangs grow steadily.\nTo keep them ground down, it gnaws\non rocks and logs.$"
-DexDescription_Raticate_2:
- .string "It may even chew on the walls of\nhouses.$"
-
-DexDescription_Spearow_1:
- .string "SPEAROW has a very loud cry that can\nbe heard over half a mile away.\nIf its high, keening cry is heard$"
-DexDescription_Spearow_2:
- .string "echoing all around, it is a sign that\nthey are warning each other of danger.$"
-
-DexDescription_Fearow_1:
- .string "FEAROW is recognized by its long neck\nand elongated beak.\nThey are conveniently shaped for$"
-DexDescription_Fearow_2:
- .string "catching prey in soil or water.\nIt deftly moves its long and skinny\nbeak to pluck prey.$"
-
-DexDescription_Ekans_1:
- .string "EKANS curls itself up in a spiral while\nit rests.\nAssuming this position allows it to$"
-DexDescription_Ekans_2:
- .string "quickly respond to a threat from any\ndirection with a glare from its upraised\nhead.$"
-
-DexDescription_Arbok_1:
- .string "This POKéMON is terrifically strong in\norder to constrict things with its body.\nIt can even flatten steel oil drums.$"
-DexDescription_Arbok_2:
- .string "Once ARBOK wraps its body around its\nfoe, escaping its crunching embrace is\nimpossible.$"
-
- .ifdef SAPPHIRE
-DexDescription_Pikachu_1:
- .string "This POKéMON has electricity-storing\npouches on its cheeks. These appear to\nbecome electrically charged during the$"
-DexDescription_Pikachu_2:
- .string "night while PIKACHU sleeps.\nIt occasionally discharges electricity\nwhen it is dozy after waking up.$"
- .else
-DexDescription_Pikachu_1:
- .string "Whenever PIKACHU comes across\nsomething new, it blasts it with a jolt\nof electricity.$"
-DexDescription_Pikachu_2:
- .string "If you come across a blackened berry,\nit’s evidence that this POKéMON\nmistook the intensity of its charge.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Raichu_1:
- .string "This POKéMON exudes a weak electrical\ncharge from all over its body that makes\nit take on a slight glow in darkness.$"
-DexDescription_Raichu_2:
- .string "RAICHU searches for electricity by\nplanting its tail in the ground.$"
- .else
-DexDescription_Raichu_1:
- .string "If the electrical sacks become\nexcessively charged, RAICHU plants its\ntail in the ground and discharges.$"
-DexDescription_Raichu_2:
- .string "Scorched patches of ground will be\nfound near this POKéMON’s nest.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Sandshrew_1:
- .string "SANDSHREW has a very dry hide that is\nextremely tough. The POKéMON can roll\ninto a ball that repels any attack.$"
-DexDescription_Sandshrew_2:
- .string "At night, it burrows into the desert\nsand to sleep.$"
- .else
-DexDescription_Sandshrew_1:
- .string "SANDSHREW’s body is configured to\nabsorb water without waste, enabling it\nto survive in an arid desert.$"
-DexDescription_Sandshrew_2:
- .string "This POKéMON curls up to protect itself\nfrom its enemies.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Sandslash_1:
- .string "SANDSLASH can roll up its body as if it\nwere a ball covered with large spikes.\nIn battle, this POKéMON will try to make$"
-DexDescription_Sandslash_2:
- .string "the foe flinch by jabbing it with its\nspines. It then leaps at the stunned\nfoe to tear wildly with its sharp claws.$"
- .else
-DexDescription_Sandslash_1:
- .string "SANDSLASH’s body is covered by tough\nspikes, which are hardened sections of\nits hide. Once a year, the old spikes fall$"
-DexDescription_Sandslash_2:
- .string "out, to be replaced with new spikes that\ngrow out from beneath the old ones.$"
- .endif
-
-DexDescription_NidoranF_1:
- .string "NIDORAN has barbs that secrete a\npowerful poison. They are thought to\nhave developed as protection for this$"
-DexDescription_NidoranF_2:
- .string "small-bodied POKéMON.\nWhen enraged, it releases a horrible\ntoxin from its horn.$"
-
-DexDescription_Nidorina_1:
- .string "When NIDORINA are with their friends or\nfamily, they keep their barbs tucked\naway to prevent hurting each other.$"
-DexDescription_Nidorina_2:
- .string "This POKéMON appears to become\nnervous if separated from the others.$"
-
-DexDescription_Nidoqueen_1:
- .string "NIDOQUEEN’s body is encased in\nextremely hard scales. It is adept at\nsending foes flying with harsh tackles.$"
-DexDescription_Nidoqueen_2:
- .string "This POKéMON is at its strongest when\nit is defending its young.$"
-
-DexDescription_NidoranM_1:
- .string "The male NIDORAN has developed\nmuscles for moving its ears. Thanks to\nthem, the ears can be freely moved in$"
-DexDescription_NidoranM_2:
- .string "any direction. Even the slightest sound\ndoes not escape this POKéMON’s notice.$"
-
-DexDescription_Nidorino_1:
- .string "NIDORINO has a horn that is harder than\na diamond. If it senses a hostile\npresence, all the barbs on its back$"
-DexDescription_Nidorino_2:
- .string "bristle up at once, and it challenges\nthe foe with all its might.$"
-
-DexDescription_Nidoking_1:
- .string "NIDOKING’s thick tail packs enormously\ndestructive power. With one swing, it\ncan topple a metal transmission tower.$"
-DexDescription_Nidoking_2:
- .string "Once this POKéMON goes on a rampage,\nthere is no stopping it.$"
-
-DexDescription_Clefairy_1:
- .string "On every night of a full moon, groups of\nthis POKéMON come out to play.\nWhen dawn arrives, the tired CLEFAIRY$"
-DexDescription_Clefairy_2:
- .string "return to their quiet mountain retreats\nand go to sleep nestled up against each\nother.$"
-
-DexDescription_Clefable_1:
- .string "CLEFABLE moves by skipping lightly as if\nit were flying using its wings. Its\nbouncy step lets it even walk on water.$"
-DexDescription_Clefable_2:
- .string "It is known to take strolls on lakes on\nquiet, moonlit nights.$"
-
- .ifdef SAPPHIRE
-DexDescription_Vulpix_1:
- .string "Inside VULPIX’s body burns a flame that\nnever goes out. During the daytime,\nwhen the temperatures rise, this$"
-DexDescription_Vulpix_2:
- .string "POKéMON releases flames from its mouth\nto prevent its body from growing too\nhot.$"
- .else
-DexDescription_Vulpix_1:
- .string "At the time of its birth, VULPIX has one\nwhite tail. The tail separates into six\nif this POKéMON receives plenty of love$"
-DexDescription_Vulpix_2:
- .string "from its TRAINER.\nThe six tails become magnificently\ncurled.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Ninetales_1:
- .string "Legend has it that NINETALES came into\nbeing when nine wizards possessing\nsacred powers merged into one.$"
-DexDescription_Ninetales_2:
- .string "This POKéMON is highly intelligent - it\ncan understand human speech.$"
- .else
-DexDescription_Ninetales_1:
- .string "NINETALES casts a sinister light from\nits bright red eyes to gain total\ncontrol over its foe’s mind.$"
-DexDescription_Ninetales_2:
- .string "This POKéMON is said to live for a\nthousand years.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Jigglypuff_1:
- .string "When this POKéMON sings, it never\npauses to breathe. If it is in a battle\nagainst an opponent that does not$"
-DexDescription_Jigglypuff_2:
- .string "easily fall asleep, JIGGLYPUFF cannot\nbreathe, endangering its life.$"
- .else
-DexDescription_Jigglypuff_1:
- .string "JIGGLYPUFF’s vocal chords can freely\nadjust the wavelength of its voice.\nThis POKéMON uses this ability to sing$"
-DexDescription_Jigglypuff_2:
- .string "at precisely the right wavelength to\nmake its foes most drowsy.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Wigglytuff_1:
- .string "WIGGLYTUFF’s body is very flexible.\nBy inhaling deeply, this POKéMON can\ninflate itself seemingly without end.$"
-DexDescription_Wigglytuff_2:
- .string "Once inflated, WIGGLYTUFF bounces\nalong lightly like a balloon.$"
- .else
-DexDescription_Wigglytuff_1:
- .string "WIGGLYTUFF has large, saucerlike eyes.\nThe surfaces of its eyes are always\ncovered with a thin layer of tears.$"
-DexDescription_Wigglytuff_2:
- .string "If any dust gets in this POKéMON’s\neyes, it is quickly washed away.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Zubat_1:
- .string "ZUBAT avoids sunlight because exposure\ncauses it to become unhealthy.\nDuring the daytime, it stays in caves or$"
-DexDescription_Zubat_2:
- .string "under the eaves of old houses, sleeping\nwhile hanging upside down.$"
- .else
-DexDescription_Zubat_1:
- .string "ZUBAT remains quietly unmoving in a\ndark spot during the bright daylight\nhours. It does so because prolonged$"
-DexDescription_Zubat_2:
- .string "exposure to the sun causes its body to\nbecome slightly burned.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Golbat_1:
- .string "GOLBAT bites down on prey with its four\nfangs and drinks the victim’s blood.\nIt becomes active on inky dark$"
-DexDescription_Golbat_2:
- .string "moonless nights, flying around to\nattack people and POKéMON.$"
- .else
-DexDescription_Golbat_1:
- .string "GOLBAT loves to drink the blood of\nliving things. It is particularly active\nin the pitch black of night.$"
-DexDescription_Golbat_2:
- .string "This POKéMON flits around in the night\nskies, seeking fresh blood.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Oddish_1:
- .string "ODDISH searches for fertile, nutrient-\nrich soil, then plants itself.\nDuring the daytime, while it is planted,$"
-DexDescription_Oddish_2:
- .string "this POKéMON’s feet are thought to\nchange shape and become similar to\nthe roots of trees.$"
- .else
-DexDescription_Oddish_1:
- .string "During the daytime, ODDISH buries\nitself in soil to absorb nutrients from \nthe ground using its entire body.$"
-DexDescription_Oddish_2:
- .string "The more fertile the soil, the glossier\nits leaves become.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Gloom_1:
- .string "From its mouth GLOOM drips honey that\nsmells absolutely horrible.\nApparently, it loves the horrid stench.$"
-DexDescription_Gloom_2:
- .string "It sniffs the noxious fumes and then \ndrools even more of its honey.$"
- .else
-DexDescription_Gloom_1:
- .string "GLOOM releases a foul fragrance from\nthe pistil of its flower. When faced\nwith danger, the stench worsens.$"
-DexDescription_Gloom_2:
- .string "If this POKéMON is feeling calm and\nsecure, it does not release its usual\nstinky aroma.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Vileplume_1:
- .string "VILEPLUME has the world’s largest\npetals. They are used to attract prey\nthat are then doused with toxic spores.$"
-DexDescription_Vileplume_2:
- .string "Once the prey are immobilized, this\nPOKéMON catches and devours them.$"
- .else
-DexDescription_Vileplume_1:
- .string "VILEPLUME’s toxic pollen triggers\natrocious allergy attacks. That’s why\nit is advisable never to approach any$"
-DexDescription_Vileplume_2:
- .string "attractive flowers in a jungle, however\npretty they may be.$"
- .endif
-
- .ifdef SAPPHIRE
-
- .if REVISION >= 1
-DexDescription_Paras_1:
- .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from this$"
-DexDescription_Paras_2:
- .string "BUG/GRASS POKéMON host. They are\nhighly valued as a medicine for\nextending life.$"
- .else
-DexDescription_Paras_1:
- .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from this$"
-DexDescription_Paras_2:
- .string "BUG POKéMON host. They are highly\nvalued as a medicine for extending life.$"
- .endif @ REVISION >= 1
-
- .else
-
- .if REVISION >= 1
-DexDescription_Paras_1:
- .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from this$"
-DexDescription_Paras_2:
- .string "BUG/GRASS POKéMON host. They are\nhighly valued as a medicine for\nextending life.$"
- .else
-DexDescription_Paras_1:
- .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from the BUG$"
-DexDescription_Paras_2:
- .string "POKéMON host. They are highly valued as\na medicine for extending life.$"
- .endif @ REVISION >= 1
-
- .endif @ SAPPHIRE
-
-DexDescription_Parasect_1:
- .string "PARASECT is known to infest large trees\nen masse and drain nutrients from the\nlower trunk and roots.$"
-DexDescription_Parasect_2:
- .string "When an infested tree dies, they move\nonto another tree all at once.$"
-
-DexDescription_Venonat_1:
- .string "VENONAT is said to have evolved with\na coat of thin, stiff hair that covers\nits entire body for protection.$"
-DexDescription_Venonat_2:
- .string "It possesses large eyes that never fail\nto spot even miniscule prey.$"
-
-DexDescription_Venomoth_1:
- .string "VENOMOTH is nocturnal - it is a POKéMON\nthat only becomes active at night.\nIts favorite prey are small insects$"
-DexDescription_Venomoth_2:
- .string "that gather around streetlights,\nattracted by the light in the darkness.$"
-
-DexDescription_Diglett_1:
- .string "DIGLETT are raised in most farms.\nThe reason is simple - wherever this\nPOKéMON burrows, the soil is left$"
-DexDescription_Diglett_2:
- .string "perfectly tilled for planting crops.\nThis soil is made ideal for growing\ndelicious vegetables.$"
-
-DexDescription_Dugtrio_1:
- .string "DUGTRIO are actually triplets that\nemerged from one body. As a result,\neach triplet thinks exactly like the$"
-DexDescription_Dugtrio_2:
- .string "other two triplets.\nThey work cooperatively to burrow\nendlessly.$"
-
-DexDescription_Meowth_1:
- .string "MEOWTH withdraws its sharp claws into\nits paws to slinkily sneak about without\nmaking any incriminating footsteps.$"
-DexDescription_Meowth_2:
- .string "For some reason, this POKéMON loves\nshiny coins that glitter with light.$"
-
-DexDescription_Persian_1:
- .string "PERSIAN has six bold whiskers that give\nit a look of toughness. The whiskers \nsense air movements to determine what$"
-DexDescription_Persian_2:
- .string "is in the POKéMON’s surrounding\nvicinity. It becomes docile if grabbed\nby the whiskers.$"
-
- .ifdef SAPPHIRE
-DexDescription_Psyduck_1:
- .string "If it uses its mysterious power,\nPSYDUCK can’t remember having done so.\nIt apparently can’t form a memory of$"
-DexDescription_Psyduck_2:
- .string "such an event because it goes into\nan altered state that is much like\ndeep sleep.$"
- .else
-DexDescription_Psyduck_1:
- .string "PSYDUCK uses a mysterious power.\nWhen it does so, this POKéMON \ngenerates brain waves that are$"
-DexDescription_Psyduck_2:
- .string "supposedly only seen in sleepers.\nThis discovery spurred controversy\namong scholars.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Golduck_1:
- .string "GOLDUCK is the fastest swimmer among\nall POKéMON. It swims effortlessly, even\nin a rough, stormy sea.$"
-DexDescription_Golduck_2:
- .string "It sometimes rescues people from\nwrecked ships floundering in high seas.$"
- .else
-DexDescription_Golduck_1:
- .string "The webbed flippers on its forelegs and\nhind legs and the streamlined body of\nGOLDUCK give it frightening speed.$"
-DexDescription_Golduck_2:
- .string "This POKéMON is definitely much faster\nthan even the most athletic swimmer.$"
- .endif
-
-DexDescription_Mankey_1:
- .string "When MANKEY starts shaking and its\nnasal breathing turns rough, it’s a sure\nsign that it is becoming angry.$"
-DexDescription_Mankey_2:
- .string "However, because it goes into a\ntowering rage almost instantly, it is\nimpossible for anyone to flee its wrath.$"
-
-DexDescription_Primeape_1:
- .string "When PRIMEAPE becomes furious, its\nblood circulation is boosted. In turn,\nits muscles are made even stronger.$"
-DexDescription_Primeape_2:
- .string "However, it also becomes much less\nintelligent at the same time.$"
-
-DexDescription_Growlithe_1:
- .string "GROWLITHE has a superb sense of smell.\nOnce it smells anything, this POKéMON\nwon’t forget the scent, no matter what.$"
-DexDescription_Growlithe_2:
- .string "It uses its advanced olfactory sense\nto determine the emotions of other\nliving things.$"
-
-DexDescription_Arcanine_1:
- .string "ARCANINE is known for its high speed.\nIt is said to be capable of running over\n6,200 miles in a single day and night.$"
-DexDescription_Arcanine_2:
- .string "The fire that blazes wildly within this\nPOKéMON’s body is its source of power.$"
-
-DexDescription_Poliwag_1:
- .string "POLIWAG has a very thin skin. It is\npossible to see the POKéMON’s spiral\ninnards right through the skin.$"
-DexDescription_Poliwag_2:
- .string "Despite its thinness, however, the skin\nis also very flexible. Even sharp fangs\nbounce right off it.$"
-
-DexDescription_Poliwhirl_1:
- .string "The surface of POLIWHIRL’s body is\nalways wet and slick with an oily fluid.\nBecause of this greasy covering, it can$"
-DexDescription_Poliwhirl_2:
- .string "easily slip and slide out of the clutches\nof any enemy in battle.$"
-
-DexDescription_Poliwrath_1:
- .string "POLIWRATH’s highly developed, brawny\nmuscles never grow fatigued, however\nmuch it exercises.$"
-DexDescription_Poliwrath_2:
- .string "It is so tirelessly strong, this POKéMON\ncan swim back and forth across the\nPacific Ocean without effort.$"
-
- .ifdef SAPPHIRE
-DexDescription_Abra_1:
- .string "ABRA needs to sleep for eighteen hours\na day. If it doesn’t, this POKéMON loses\nits ability to use telekinetic powers.$"
-DexDescription_Abra_2:
- .string "If it is attacked, ABRA escapes using\nTELEPORT while it is still sleeping.$"
- .else
-DexDescription_Abra_1:
- .string "ABRA sleeps for eighteen hours a day.\nHowever, it can sense the presence of\nfoes even while it is sleeping.$"
-DexDescription_Abra_2:
- .string "In such a situation, this POKéMON\nimmediately teleports to safety.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Kadabra_1:
- .string "KADABRA holds a silver spoon in its\nhand. The spoon is used to amplify the\nalpha waves in its brain.$"
-DexDescription_Kadabra_2:
- .string "Without the spoon, the POKéMON is said\nto be limited to half the usual amount\nof its telekinetic powers.$"
- .else
-DexDescription_Kadabra_1:
- .string "KADABRA emits a peculiar alpha wave\nif it develops a headache. Only those\npeople with a particularly strong$"
-DexDescription_Kadabra_2:
- .string "psyche can hope to become a TRAINER\nof this POKéMON.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Alakazam_1:
- .string "ALAKAZAM’s brain continually grows,\ninfinitely multiplying brain cells.\nThis amazing brain gives this POKéMON$"
-DexDescription_Alakazam_2:
- .string "an astoundingly high IQ of 5,000.\nIt has a thorough memory of everything\nthat has occurred in the world.$"
- .else
-DexDescription_Alakazam_1:
- .string "ALAKAZAM’s brain continually grows,\nmaking its head far too heavy to\nsupport with its neck.$"
-DexDescription_Alakazam_2:
- .string "This POKéMON holds its head up using\nits psychokinetic power instead.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Machop_1:
- .string "MACHOP exercises by hefting around\na GRAVELER as if it were a barbell.\nThere are some MACHOP that travel$"
-DexDescription_Machop_2:
- .string "the world in a quest to master all\nkinds of martial arts.$"
- .else
-DexDescription_Machop_1:
- .string "MACHOP’s muscles are special - they\nnever get sore no matter how much they\nare used in exercise.$"
-DexDescription_Machop_2:
- .string "This POKéMON has sufficient power to\nhurl a hundred adult humans.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Machoke_1:
- .string "MACHOKE undertakes bodybuilding every\nday even as it helps people with tough,\nphysically demanding labor.$"
-DexDescription_Machoke_2:
- .string "On its days off, this POKéMON heads to\nthe fields and mountains to exercise\nand train.$"
- .else
-DexDescription_Machoke_1:
- .string "MACHOKE’s thoroughly toned muscles\npossess the hardness of steel.\nThis POKéMON has so much strength,$"
-DexDescription_Machoke_2:
- .string "it can easily hold aloft a sumo wrestler\non just one finger.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Machamp_1:
- .string "MACHAMP is known as the POKéMON that\nhas mastered every kind of martial arts.\nIf it grabs hold of the foe with its four$"
-DexDescription_Machamp_2:
- .string "arms, the battle is all but over.\nThe hapless foe is thrown far over the\nhorizon.$"
- .else
-DexDescription_Machamp_1:
- .string "MACHAMP has the power to hurl anything\naside. However, trying to do any work\nrequiring care and dexterity causes$"
-DexDescription_Machamp_2:
- .string "its arms to get tangled.\nThis POKéMON tends to leap into action\nbefore it thinks.$"
- .endif
-
-DexDescription_Bellsprout_1:
- .string "BELLSPROUT’s thin and flexible body\nlets it bend and sway to avoid any\nattack, however strong it may be.$"
-DexDescription_Bellsprout_2:
- .string "From its mouth, this POKéMON spits a\ncorrosive fluid that melts even iron.$"
-
-DexDescription_Weepinbell_1:
- .string "WEEPINBELL has a large hook on its rear\nend. At night, the POKéMON hooks on to\na tree branch and goes to sleep.$"
-DexDescription_Weepinbell_2:
- .string "If it moves around in its sleep, it may\nwake up to find itself on the ground.$"
-
-DexDescription_Victreebel_1:
- .string "VICTREEBEL has a long vine that\nextends from its head. This vine is\nwaved and flicked about as if it were$"
-DexDescription_Victreebel_2:
- .string "an animal to attract prey. When an\nunsuspecting prey draws near, this\nPOKéMON swallows it whole.$"
-
- .ifdef SAPPHIRE
-DexDescription_Tentacool_1:
- .string "TENTACOOL absorbs sunlight and\nrefracts it using water inside its body\nto convert it into beam energy.$"
-DexDescription_Tentacool_2:
- .string "This POKéMON shoots beams from its\ncrystal-like eyes.$"
- .else
-DexDescription_Tentacool_1:
- .string "TENTACOOL’s body is largely composed\nof water. If it is removed from the\nsea, it dries up like parchment.$"
-DexDescription_Tentacool_2:
- .string "If this POKéMON happens to become\ndehydrated, put it back into the sea.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Tentacruel_1:
- .string "TENTACRUEL has tentacles that can be\nfreely elongated and shortened at will.\nIt ensnares prey with its tentacles and$"
-DexDescription_Tentacruel_2:
- .string "weakens the prey by dosing it with a\nharsh toxin. It can catch up to 80\nprey at the same time.$"
- .else
-DexDescription_Tentacruel_1:
- .string "TENTACRUEL has large red orbs on its\nhead. The orbs glow before lashing the\nvicinity with a harsh ultrasonic blast.$"
-DexDescription_Tentacruel_2:
- .string "This POKéMON’s outburst creates rough\nwaves around it.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Geodude_1:
- .string "When GEODUDE sleeps deeply, it buries\nitself halfway into the ground.\nIt will not awaken even if hikers step$"
-DexDescription_Geodude_2:
- .string "on it unwittingly.\nIn the morning, this POKéMON rolls\ndownhill in search of food.$"
- .else
-DexDescription_Geodude_1:
- .string "The longer a GEODUDE lives, the more\nits edges are chipped and worn away,\nmaking it more rounded in appearance.$"
-DexDescription_Geodude_2:
- .string "However, this POKéMON’s heart will\nremain hard, craggy, and rough always.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Graveler_1:
- .string "Rocks are GRAVELER’s favorite food.\nThis POKéMON will climb a mountain from\nthe base to the summit, crunchingly$"
-DexDescription_Graveler_2:
- .string "feasting on rocks all the while.\nUpon reaching the peak, it rolls back\ndown to the bottom.$"
- .else
-DexDescription_Graveler_1:
- .string "GRAVELER grows by feeding on rocks.\nApparently, it prefers to eat rocks\nthat are covered in moss.$"
-DexDescription_Graveler_2:
- .string "This POKéMON eats its way through\na ton of rocks on a daily basis.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Golem_1:
- .string "GOLEM is known for rolling down from\nmountains. To prevent them from rolling\ninto the homes of people downhill,$"
-DexDescription_Golem_2:
- .string "grooves have been dug into the sides of\nmountains to serve as guideways for\ndiverting this POKéMON’s course.$"
- .else
-DexDescription_Golem_1:
- .string "GOLEM live up on mountains.\nIf there is a large earthquake, these\nPOKéMON will come rolling down off$"
-DexDescription_Golem_2:
- .string "the mountains en masse to the\nfoothills below.$"
- .endif
-
-DexDescription_Ponyta_1:
- .string "PONYTA is very weak at birth.\nIt can barely stand up.\nThis POKéMON becomes stronger by$"
-DexDescription_Ponyta_2:
- .string "stumbling and falling to keep up with\nits parent.$"
-
-DexDescription_Rapidash_1:
- .string "RAPIDASH usually can be seen casually\ncantering in the fields and plains.\nHowever, when this POKéMON turns$"
-DexDescription_Rapidash_2:
- .string "serious, its fiery manes flare and blaze\nas it gallops its way up to 150 mph.$"
-
-DexDescription_Slowpoke_1:
- .string "SLOWPOKE uses its tail to catch prey by\ndipping it in water at the side of a\nriver.$"
-DexDescription_Slowpoke_2:
- .string "However, this POKéMON often forgets\nwhat it’s doing and often spends entire\ndays just loafing at water’s edge.$"
-
-DexDescription_Slowbro_1:
- .string "SLOWBRO’s tail has a SHELLDER firmly\nattached with a bite. As a result, the\ntail can’t be used for fishing anymore.$"
-DexDescription_Slowbro_2:
- .string "This causes SLOWBRO to grudgingly swim\nand catch prey instead.$"
-
- .ifdef SAPPHIRE
-DexDescription_Magnemite_1:
- .string "MAGNEMITE floats in the air by emitting\nelectromagnetic waves from the units\nat its sides. These waves block gravity.$"
-DexDescription_Magnemite_2:
- .string "This POKéMON becomes incapable of\nflight if its internal electrical supply\nis depleted.$"
- .else
-DexDescription_Magnemite_1:
- .string "MAGNEMITE attaches itself to power\nlines to feed on electricity.\nIf your house has a power outage,$"
-DexDescription_Magnemite_2:
- .string "check your circuit breakers. You may\nfind a large number of this POKéMON\nclinging to the breaker box.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Magneton_1:
- .string "MAGNETON emits a powerful magnetic\nforce that is fatal to electronics and\nprecision instruments. Because of$"
-DexDescription_Magneton_2:
- .string "this, it is said that some towns warn\npeople to keep this POKéMON inside\na POKé BALL.$"
- .else
-DexDescription_Magneton_1:
- .string "MAGNETON emits a powerful magnetic\nforce that is fatal to mechanical\ndevices. As a result, large cities sound$"
-DexDescription_Magneton_2:
- .string "sirens to warn citizens of large-scale\noutbreaks of this POKéMON.$"
- .endif
-
-DexDescription_Farfetchd_1:
- .string "FARFETCH’D is always seen with a stick\nfrom a plant of some sort. Apparently,\nthere are good sticks and bad sticks.$"
-DexDescription_Farfetchd_2:
- .string "This POKéMON has been known to fight\nwith others over sticks.$"
-
- .ifdef SAPPHIRE
-DexDescription_Doduo_1:
- .string "DODUO’s two heads contain completely\nidentical brains.\nA scientific study reported that on$"
-DexDescription_Doduo_2:
- .string "rare occasions, there will be examples\nof this POKéMON possessing different\nsets of brains.$"
- .else
-DexDescription_Doduo_1:
- .string "DODUO’s two heads never sleep at the\nsame time.\nIts two heads take turns sleeping,$"
-DexDescription_Doduo_2:
- .string "so one head can always keep watch for\nenemies while the other one sleeps.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Dodrio_1:
- .string "Apparently, the heads aren’t the only\nparts of the body that DODRIO has\nthree of.$"
-DexDescription_Dodrio_2:
- .string "It has three sets of hearts and lungs\nas well, so it is capable of running long\ndistances without rest.$"
- .else
-DexDescription_Dodrio_1:
- .string "Watch out if DODRIO’s three heads are\nlooking in three separate directions.\nIt’s a sure sign that it is on its guard.$"
-DexDescription_Dodrio_2:
- .string "Don’t go near this POKéMON if it’s being\nwary - it may decide to peck you.$"
- .endif
-
-DexDescription_Seel_1:
- .string "SEEL hunts for prey in the frigid sea\nunderneath sheets of ice.\nWhen it needs to breathe, it punches$"
-DexDescription_Seel_2:
- .string "a hole through the ice with the\nsharply protruding section of its head.$"
-
-DexDescription_Dewgong_1:
- .string "DEWGONG loves to snooze on bitterly\ncold ice.\nThe sight of this POKéMON sleeping on$"
-DexDescription_Dewgong_2:
- .string "a glacier was mistakenly thought to be\na mermaid by a mariner long ago.$"
-
- .ifdef SAPPHIRE
-DexDescription_Grimer_1:
- .string "GRIMER emerged from the sludge that\nsettled on a polluted seabed.\nThis POKéMON loves anything filthy.$"
-DexDescription_Grimer_2:
- .string "It constantly leaks a horribly germ-\ninfested fluid from all over its body.$"
- .else
-DexDescription_Grimer_1:
- .string "GRIMER’s sludgy and rubbery body can\nbe forced through any opening, however\nsmall it may be.$"
-DexDescription_Grimer_2:
- .string "This POKéMON enters sewer pipes to\ndrink filthy wastewater.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Muk_1:
- .string "This POKéMON’s favorite food is\nanything that is repugnantly filthy.\nIn dirty towns where people think$"
-DexDescription_Muk_2:
- .string "nothing of throwing away litter on the\nstreets, MUK are certain to gather.$"
- .else
-DexDescription_Muk_1:
- .string "From MUK’s body seeps a foul fluid that\ngives off a nose-bendingly horrible\nstench.$"
-DexDescription_Muk_2:
- .string "Just one drop of this POKéMON’s body\nfluid can turn a pool stagnant and\nrancid.$"
- .endif
-
-DexDescription_Shellder_1:
- .string "At night, this POKéMON uses its broad\ntongue to burrow a hole in the seafloor\nsand and then sleep in it.$"
-DexDescription_Shellder_2:
- .string "While it is sleeping, SHELLDER closes its\nshell, but leaves its tongue hanging\nout.$"
-
-DexDescription_Cloyster_1:
- .string "CLOYSTER is capable of swimming in the\nsea. It does so by swallowing water,\nthen jetting it out toward the rear.$"
-DexDescription_Cloyster_2:
- .string "This POKéMON shoots spikes from its\nshell using the same system.$"
-
-DexDescription_Gastly_1:
- .string "GASTLY is largely composed of gaseous\nmatter. When exposed to a strong wind,\nthe gaseous body quickly dwindles away.$"
-DexDescription_Gastly_2:
- .string "Groups of this POKéMON cluster under\nthe eaves of houses to escape the\nravages of wind.$"
-
-DexDescription_Haunter_1:
- .string "HAUNTER is a dangerous POKéMON.\nIf one beckons you while floating in\ndarkness, you must never approach it.$"
-DexDescription_Haunter_2:
- .string "This POKéMON will try to lick you with its\ntongue and steal your life away.$"
-
-DexDescription_Gengar_1:
- .string "Sometimes, on a dark night, your shadow\nthrown by a streetlight will suddenly\nand startlingly overtake you.$"
-DexDescription_Gengar_2:
- .string "It is actually a GENGAR running past\nyou, pretending to be your shadow.$"
-
-DexDescription_Onix_1:
- .string "ONIX has a magnet in its brain. It acts\nas a compass so that this POKéMON does\nnot lose direction while it is tunneling.$"
-DexDescription_Onix_2:
- .string "As it grows older, its body becomes\nincreasingly rounder and smoother.$"
-
-DexDescription_Drowzee_1:
- .string "If your nose becomes itchy while you\nare sleeping, it’s a sure sign that one\nof these POKéMON is standing above$"
-DexDescription_Drowzee_2:
- .string "your pillow and trying to eat your dream\nthrough your nostrils.$"
-
-DexDescription_Hypno_1:
- .string "HYPNO holds a pendulum in its hand.\nThe arcing movement and glitter of the\npendulum lull the foe into a deep state$"
-DexDescription_Hypno_2:
- .string "of hypnosis.\nWhile this POKéMON searches for prey,\nit polishes the pendulum.$"
-
-DexDescription_Krabby_1:
- .string "KRABBY live on beaches, burrowed inside\nholes dug into the sand.\nOn sandy beaches with little in the way$"
-DexDescription_Krabby_2:
- .string "of food, these POKéMON can be seen\nsquabbling with each other over\nterritory.$"
-
-DexDescription_Kingler_1:
- .string "KINGLER has an enormous, oversized\nclaw. It waves this huge claw in the\nair to communicate with others.$"
-DexDescription_Kingler_2:
- .string "However, because the claw is so heavy,\nthe POKéMON quickly tires.$"
-
- .ifdef SAPPHIRE
-DexDescription_Voltorb_1:
- .string "VOLTORB is extremely sensitive - it\nexplodes at the slightest of shocks.\nIt is rumored that it was first created$"
-DexDescription_Voltorb_2:
- .string "when a POKé BALL was exposed to a\npowerful pulse of energy.$"
- .else
-DexDescription_Voltorb_1:
- .string "VOLTORB was first sighted at a company\nthat manufactures POKé BALLS.\nThe link between that sighting and$"
-DexDescription_Voltorb_2:
- .string "the fact that this POKéMON looks very\nsimilar to a POKé BALL remains a\nmystery.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Electrode_1:
- .string "One of ELECTRODE’s characteristics is\nits attraction to electricity.\nIt is a problematical POKéMON that$"
-DexDescription_Electrode_2:
- .string "congregates mostly at electrical\npower plants to feed on electricity\nthat has just been generated.$"
- .else
-DexDescription_Electrode_1:
- .string "ELECTRODE eats electricity in the\natmosphere. On days when lightning\nstrikes, you can see this POKéMON$"
-DexDescription_Electrode_2:
- .string "exploding all over the place from\neating too much electricity.$"
- .endif
-
-DexDescription_Exeggcute_1:
- .string "This POKéMON consists of six eggs that\nform a closely knit cluster. The six eggs\nattract each other and spin around.$"
-DexDescription_Exeggcute_2:
- .string "When cracks increasingly appear on the\neggs, EXEGGCUTE is close to evolution.$"
-
-DexDescription_Exeggutor_1:
- .string "EXEGGUTOR originally came from the\ntropics. Its heads steadily grow larger\nfrom exposure to strong sunlight.$"
-DexDescription_Exeggutor_2:
- .string "It is said that when the heads fall off,\nthey group together to form EXEGGCUTE.$"
-
-DexDescription_Cubone_1:
- .string "CUBONE pines for the mother it will\nnever see again. Seeing a likeness of\nits mother in the full moon, it cries.$"
-DexDescription_Cubone_2:
- .string "The stains on the skull the POKéMON\nwears are made by the tears it sheds.$"
-
-DexDescription_Marowak_1:
- .string "MAROWAK is the evolved form of a CUBONE\nthat has overcome its sadness at the\nloss of its mother and grown tough.$"
-DexDescription_Marowak_2:
- .string "This POKéMON’s tempered and hardened\nspirit is not easily broken.$"
-
-DexDescription_Hitmonlee_1:
- .string "HITMONLEE’s legs freely contract and\nstretch. Using these springlike legs, it\nbowls over foes with devastating kicks.$"
-DexDescription_Hitmonlee_2:
- .string "After battle, it rubs down its legs and\nloosens the muscles to overcome\nfatigue.$"
-
-DexDescription_Hitmonchan_1:
- .string "HITMONCHAN is said to possess the\nspirit of a boxer who had been working\ntowards a world championship.$"
-DexDescription_Hitmonchan_2:
- .string "This POKéMON has an indomitable spirit\nand will never give up in the face of\nadversity.$"
-
-DexDescription_Lickitung_1:
- .string "Whenever LICKITUNG comes across\nsomething new, it will unfailingly give it\na lick. It does so because it memorizes$"
-DexDescription_Lickitung_2:
- .string "things by texture and by taste.\nIt is somewhat put off by sour things.$"
-
- .ifdef SAPPHIRE
-DexDescription_Koffing_1:
- .string "KOFFING embodies toxic substances.\nIt mixes the toxins with raw garbage to\nset off a chemical reaction that$"
-DexDescription_Koffing_2:
- .string "results in a terribly powerful poison\ngas. The higher the temperature, the\nmore gas is concocted by this POKéMON.$"
- .else
-DexDescription_Koffing_1:
- .string "If KOFFING becomes agitated, it raises\nthe toxicity of its internal gases and\njets them out from all over its body.$"
-DexDescription_Koffing_2:
- .string "This POKéMON may also overinflate its\nround body, then explode.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Weezing_1:
- .string "WEEZING alternately shrinks and\ninflates its twin bodies to mix together\ntoxic gases inside.$"
-DexDescription_Weezing_2:
- .string "The more the gases are mixed, the more\npowerful the toxins become. The\nPOKéMON also becomes more putrid.$"
- .else
-DexDescription_Weezing_1:
- .string "WEEZING loves the gases given off by\nrotted kitchen garbage. This POKéMON\nwill find a dirty, unkempt house and$"
-DexDescription_Weezing_2:
- .string "make it its home. At night, when the\npeople in the house are asleep, it will\ngo through the trash.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Rhyhorn_1:
- .string "RHYHORN’s brain is very small. It is so\ndense, while on a run it forgets why it\nstarted running in the first place.$"
-DexDescription_Rhyhorn_2:
- .string "It apparently remembers sometimes if it\ndemolishes something.$"
- .else
-DexDescription_Rhyhorn_1:
- .string "RHYHORN runs in a straight line,\nsmashing everything in its path.\nIt is not bothered even if it rushes$"
-DexDescription_Rhyhorn_2:
- .string "headlong into a block of steel.\nThis POKéMON may feel some pain from\nthe collision the next day, however.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Rhydon_1:
- .string "RHYDON has a horn that serves as a\ndrill. It is used for destroying rocks\nand boulders.$"
-DexDescription_Rhydon_2:
- .string "This POKéMON occasionally rams into\nstreams of magma, but the armor-like\nhide prevents it from feeling the heat.$"
- .else
-DexDescription_Rhydon_1:
- .string "RHYDON’s horn can crush even uncut\ndiamonds. One sweeping blow of its tail\ncan topple a building.$"
-DexDescription_Rhydon_2:
- .string "This POKéMON’s hide is extremely tough.\nEven direct cannon hits don’t leave\na scratch.$"
- .endif
-
-DexDescription_Chansey_1:
- .string "CHANSEY lays nutritionally excellent\neggs on an everyday basis.\nThe eggs are so delicious, they are$"
-DexDescription_Chansey_2:
- .string "easily and eagerly devoured by even\nthose people who have lost their\nappetite.$"
-
-DexDescription_Tangela_1:
- .string "TANGELA’s vines snap off easily if they\nare grabbed. This happens without pain,\nallowing it to make a quick getaway.$"
-DexDescription_Tangela_2:
- .string "The lost vines are replaced by newly\ngrown vines the very next day.$"
-
-DexDescription_Kangaskhan_1:
- .string "If you come across a young KANGASKHAN\nplaying by itself, you must never\ndisturb it or attempt to catch it.$"
-DexDescription_Kangaskhan_2:
- .string "The baby POKéMON’s parent is sure to\nbe in the area, and it will become\nviolently enraged at you.$"
-
- .ifdef SAPPHIRE
-DexDescription_Horsea_1:
- .string "If HORSEA senses danger, it will\nreflexively spray a dense black ink\nfrom its mouth and try to escape.$"
-DexDescription_Horsea_2:
- .string "This POKéMON swims by cleverly flapping\nthe fins on its back.$"
- .else
-DexDescription_Horsea_1:
- .string "HORSEA eats small insects and moss off\nof rocks. If the ocean current turns\nfast, this POKéMON anchors itself by$"
-DexDescription_Horsea_2:
- .string "wrapping its tail around rocks or coral\nto prevent being washed away.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Seadra_1:
- .string "SEADRA generates whirlpools by spinning\nits body. The whirlpools are strong\nenough to swallow even fishing boats.$"
-DexDescription_Seadra_2:
- .string "This POKéMON weakens prey with these\ncurrents, then swallows it whole.$"
- .else
-DexDescription_Seadra_1:
- .string "SEADRA sleeps after wriggling itself\nbetween the branches of coral.\nThose trying to harvest coral are$"
-DexDescription_Seadra_2:
- .string "occasionally stung by this POKéMON’s\npoison barbs if they fail to notice it.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Goldeen_1:
- .string "GOLDEEN loves swimming wild and free\nin rivers and ponds.\nIf one of these POKéMON is placed in an$"
-DexDescription_Goldeen_2:
- .string "aquarium, it will shatter even the\nthickest glass with one ram of its horn\nand make its escape.$"
- .else
-DexDescription_Goldeen_1:
- .string "GOLDEEN is a very beautiful POKéMON\nwith fins that billow elegantly in water.\nHowever, don’t let your guard down$"
-DexDescription_Goldeen_2:
- .string "around this POKéMON - it could ram you\npowerfully with its horn.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Seaking_1:
- .string "SEAKING is very protective of its eggs.\nThe male and female will take turns\npatrolling around their nest and eggs.$"
-DexDescription_Seaking_2:
- .string "The guarding of eggs by these POKéMON\ngoes on for over a month.$"
- .else
-DexDescription_Seaking_1:
- .string "In the autumn, SEAKING males can be\nseen performing courtship dances in\nriverbeds to woo females.$"
-DexDescription_Seaking_2:
- .string "During this season, this POKéMON’s body\ncoloration is at its most beautiful.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Staryu_1:
- .string "STARYU apparently communicates with\nthe stars in the night sky by flashing\nthe red core at the center of its body.$"
-DexDescription_Staryu_2:
- .string "If parts of its body are torn, this\nPOKéMON simply regenerates the\nmissing pieces and limbs.$"
- .else
-DexDescription_Staryu_1:
- .string "STARYU’s center section has an organ\ncalled the core that shines bright red.\nIf you go to a beach toward the$"
-DexDescription_Staryu_2:
- .string "end of summer, the glowing cores of\nthese POKéMON look like the stars\nin the sky.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Starmie_1:
- .string "STARMIE swims through water by\nspinning its star-shaped body as if it\nwere a propeller on a ship.$"
-DexDescription_Starmie_2:
- .string "The core at the center of this\nPOKéMON’s body glows in seven colors.$"
- .else
-DexDescription_Starmie_1:
- .string "STARMIE’s center section - the core -\nglows brightly in seven colors.\nBecause of its luminous nature, this$"
-DexDescription_Starmie_2:
- .string "POKéMON has been given the nickname\n“the gem of the sea.”$"
- .endif
-
-DexDescription_Mrmime_1:
- .string "MR. MIME is a master of pantomime.\nIts gestures and motions convince\nwatchers that something unseeable$"
-DexDescription_Mrmime_2:
- .string "actually exists. Once it is believed,\nit will exist as if it were a real thing.$"
-
-DexDescription_Scyther_1:
- .string "SCYTHER is blindingly fast. Its blazing\nspeed enhances the effectiveness of\nthe twin scythes on its forearms.$"
-DexDescription_Scyther_2:
- .string "This POKéMON’s scythes are so\neffective, they can slice through thick\nlogs in one wicked stroke.$"
-
-DexDescription_Jynx_1:
- .string "JYNX walks rhythmically, swaying and\nshaking its hips as if it were dancing.\nIts motions are so bouncingly alluring,$"
-DexDescription_Jynx_2:
- .string "people seeing it are compelled to shake\ntheir hips without giving any thought\nto what they are doing.$"
-
-DexDescription_Electabuzz_1:
- .string "When a storm arrives, gangs of this\nPOKéMON compete with each other to\nscale heights that are likely to be$"
-DexDescription_Electabuzz_2:
- .string "stricken by lightning bolts.\nSome towns use ELECTABUZZ in place of\nlightning rods.$"
-
-DexDescription_Magmar_1:
- .string "In battle, MAGMAR blows out intensely\nhot flames from all over its body to\nintimidate its opponent.$"
-DexDescription_Magmar_2:
- .string "This POKéMON’s fiery bursts create\nheat waves that ignite grass and trees\nin its surroundings.$"
-
- .ifdef SAPPHIRE
-DexDescription_Pinsir_1:
- .string "PINSIR has a pair of massive horns \nProtruding from the surface of these\nhorns are thorns.$"
-DexDescription_Pinsir_2:
- .string "These thorns are driven deeply into the\nfoe’s body when the pincer closes,\nmaking it tough for the foe to escape.$"
- .else
-DexDescription_Pinsir_1:
- .string "PINSIR is astoundingly strong. It can\ngrip a foe weighing twice its weight\nin its horns and easily lift it.$"
-DexDescription_Pinsir_2:
- .string "This POKéMON’s movements turn sluggish\nin cold places.$"
- .endif
-
-DexDescription_Tauros_1:
- .string "This POKéMON is not satisfied unless\nit is rampaging at all times.\nIf there is no opponent for TAUROS to$"
-DexDescription_Tauros_2:
- .string "battle, it will charge at thick trees and\nknock them down to calm itself.$"
-
- .ifdef SAPPHIRE
-DexDescription_Magikarp_1:
- .string "MAGIKARP is virtually useless in battle\nas it can only splash around.\nAs a result, it is considered to be weak.$"
-DexDescription_Magikarp_2:
- .string "However, it is actually a very hardy\nPOKéMON that can survive in any body of\nwater no matter how polluted it is.$"
- .else
-DexDescription_Magikarp_1:
- .string "MAGIKARP is a pathetic excuse for a\nPOKéMON that is only capable of\nflopping and splashing.$"
-DexDescription_Magikarp_2:
- .string "This behavior prompted scientists to\nundertake research into it.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Gyarados_1:
- .string "Once GYARADOS goes on a rampage, its\nferociously violent blood doesn’t calm\nuntil it has burned everything down.$"
-DexDescription_Gyarados_2:
- .string "There are records of this POKéMON’s\nrampages lasting a whole month.$"
- .else
-DexDescription_Gyarados_1:
- .string "When MAGIKARP evolves into GYARADOS,\nits brain cells undergo a structural\ntransformation. It is said that this$"
-DexDescription_Gyarados_2:
- .string "transformation is to blame for this\nPOKéMON’s wildly violent nature.$"
- .endif
-
-DexDescription_Lapras_1:
- .string "People have driven LAPRAS almost to the\npoint of extinction. In the evenings,\nthis POKéMON is said to sing plaintively$"
-DexDescription_Lapras_2:
- .string "as it seeks what few others of its kind\nstill remain.$"
-
-DexDescription_Ditto_1:
- .string "DITTO rearranges its cell structure to\ntransform itself into other shapes.\nHowever, if it tries to transform itself$"
-DexDescription_Ditto_2:
- .string "into something by relying on its memory,\nthis POKéMON manages to get details\nwrong.$"
-
-DexDescription_Eevee_1:
- .string "EEVEE has an unstable genetic makeup\nthat suddenly mutates due to the\nenvironment in which it lives.$"
-DexDescription_Eevee_2:
- .string "Radiation from various STONES causes\nthis POKéMON to evolve.$"
-
-DexDescription_Vaporeon_1:
- .string "VAPOREON underwent a spontaneous\nmutation and grew fins and gills that\nallow it to live underwater.$"
-DexDescription_Vaporeon_2:
- .string "This POKéMON has the ability to freely\ncontrol water.$"
-
-DexDescription_Jolteon_1:
- .string "JOLTEON’s cells generate a low level of\nelectricity. This power is amplified by\nthe static electricity of its fur,$"
-DexDescription_Jolteon_2:
- .string "enabling the POKéMON to drop\nthunderbolts. The bristling fur is made\nof electrically charged needles.$"
-
-DexDescription_Flareon_1:
- .string "FLAREON’s fluffy fur has a functional\npurpose - it releases heat into the air\nso that its body does not get$"
-DexDescription_Flareon_2:
- .string "excessively hot.\nThis POKéMON’s body temperature can\nrise to a maximum of 1,650 degrees F.$"
-
-DexDescription_Porygon_1:
- .string "PORYGON is capable of reverting itself\nentirely back to program data and\nentering cyberspace.$"
-DexDescription_Porygon_2:
- .string "This POKéMON is copy-protected so it\ncannot be duplicated by copying.$"
-
-DexDescription_Omanyte_1:
- .string "OMANYTE is one of the ancient and long-\nsince-extinct POKéMON that have been\nregenerated from fossils by people.$"
-DexDescription_Omanyte_2:
- .string "If attacked by an enemy, it withdraws\nitself inside its hard shell.$"
-
-DexDescription_Omastar_1:
- .string "OMASTAR uses its tentacles to capture\nits prey. It is believed to have become\nextinct because its shell grew too large$"
-DexDescription_Omastar_2:
- .string "and heavy, causing its movements to\nbecome too slow and ponderous.$"
-
-DexDescription_Kabuto_1:
- .string "KABUTO is a POKéMON that has been\nregenerated from a fossil. However, in\nextremely rare cases, living examples$"
-DexDescription_Kabuto_2:
- .string "have been discovered.\nThe POKéMON has not changed at all for\n300 million years.$"
-
-DexDescription_Kabutops_1:
- .string "KABUTOPS swam underwater to hunt for\nits prey in ancient times.\nThe POKéMON was apparently evolving$"
-DexDescription_Kabutops_2:
- .string "from being a water-dweller to living on\nland as evident from the beginnings of\nchange in its gills and legs.$"
-
-DexDescription_Aerodactyl_1:
- .string "AERODACTYL is a POKéMON from the age\nof dinosaurs. It was regenerated from\ngenetic material extracted from amber.$"
-DexDescription_Aerodactyl_2:
- .string "It is imagined to have been the king of\nthe skies in ancient times.$"
-
-DexDescription_Snorlax_1:
- .string "SNORLAX’s typical day consists of\nnothing more than eating and sleeping.\nIt is such a docile POKéMON that there$"
-DexDescription_Snorlax_2:
- .string "are children who use its expansive belly\nas a place to play.$"
-
-DexDescription_Articuno_1:
- .string "ARTICUNO is a legendary bird POKéMON\nthat can control ice.\nThe flapping of its wings chills the air.$"
-DexDescription_Articuno_2:
- .string "As a result, it is said that when this\nPOKéMON flies, snow will fall.$"
-
-DexDescription_Zapdos_1:
- .string "ZAPDOS is a legendary bird POKéMON that\nhas the ability to control electricity.\nIt usually lives in thunderclouds.$"
-DexDescription_Zapdos_2:
- .string "The POKéMON gains power if it is\nstricken by lightning bolts.$"
-
-DexDescription_Moltres_1:
- .string "MOLTRES is a legendary bird POKéMON\nthat has the ability to control fire.\nIf this POKéMON is injured, it is said to$"
-DexDescription_Moltres_2:
- .string "dip its body in the molten magma of a\nvolcano to burn and heal itself.$"
-
-DexDescription_Dratini_1:
- .string "DRATINI continually molts and sloughs\noff its old skin.\nIt does so because the life energy$"
-DexDescription_Dratini_2:
- .string "within its body steadily builds to reach\nuncontrollable levels.$"
-
-DexDescription_Dragonair_1:
- .string "DRAGONAIR stores an enormous amount\nof energy inside its body.\nIt is said to alter weather conditions$"
-DexDescription_Dragonair_2:
- .string "in its vicinity by discharging energy\nfrom the crystals on its neck and tail.$"
-
-DexDescription_Dragonite_1:
- .string "DRAGONITE is capable of circling the\nglobe in just sixteen hours.\nIt is a kindhearted POKéMON that leads$"
-DexDescription_Dragonite_2:
- .string "lost and foundering ships in a storm to\nthe safety of land.$"
-
-DexDescription_Mewtwo_1:
- .string "MEWTWO is a POKéMON that was created\nby genetic manipulation.\nHowever, even though the scientific$"
-DexDescription_Mewtwo_2:
- .string "power of humans created this POKéMON’s\nbody, they failed to endow MEWTWO with\na compassionate heart.$"
-
-DexDescription_Mew_1:
- .string "MEW is said to possess the genetic\ncomposition of all POKéMON.\nIt is capable of making itself invisible$"
-DexDescription_Mew_2:
- .string "at will, so it entirely avoids notice even\nif it approaches people.$"
-
-DexDescription_Chikorita_1:
- .string "In battle, CHIKORITA waves its leaf\naround to keep the foe at bay.\nHowever, a sweet fragrance also wafts$"
-DexDescription_Chikorita_2:
- .string "from the leaf, becalming the battling\nPOKéMON and creating a cozy, friendly\natmosphere all around.$"
-
-DexDescription_Bayleef_1:
- .string "BAYLEEF’s neck is ringed by curled-up\nleaves. Inside each tubular leaf is a\nsmall shoot of a tree.$"
-DexDescription_Bayleef_2:
- .string "The fragrance of this shoot makes\npeople peppy.$"
-
-DexDescription_Meganium_1:
- .string "The fragrance of MEGANIUM’s flower\nsoothes and calms emotions.\nIn battle, this POKéMON gives off more$"
-DexDescription_Meganium_2:
- .string "of its becalming scent to blunt the\nfoe’s fighting spirit.$"
-
-DexDescription_Cyndaquil_1:
- .string "CYNDAQUIL protects itself by flaring up\nthe flames on its back.\nThe flames are vigorous if the POKéMON$"
-DexDescription_Cyndaquil_2:
- .string "is angry. However, if it is tired, the\nflames splutter fitfully with incomplete\ncombustion.$"
-
-DexDescription_Quilava_1:
- .string "QUILAVA keeps its foes at bay with the\nintensity of its flames and gusts of\nsuperheated air.$"
-DexDescription_Quilava_2:
- .string "This POKéMON applies its outstanding\nnimbleness to dodge attacks even while\nscorching the foe with flames.$"
-
-DexDescription_Typhlosion_1:
- .string "TYPHLOSION obscures itself behind a\nshimmering heat haze that it creates\nusing its intensely hot flames.$"
-DexDescription_Typhlosion_2:
- .string "This POKéMON creates blazing explosive\nblasts that burn everything to cinders.$"
-
-DexDescription_Totodile_1:
- .string "Despite the smallness of its body,\nTOTODILE’s jaws are very powerful.\nWhile the POKéMON may think it is just$"
-DexDescription_Totodile_2:
- .string "playfully nipping, its bite has enough\npower to cause serious injury.$"
-
-DexDescription_Croconaw_1:
- .string "Once CROCONAW has clamped its jaws on\nits foe, it will absolutely not let go.\nBecause the tips of its fangs are$"
-DexDescription_Croconaw_2:
- .string "forked back like barbed fishhooks, they\nbecome impossible to remove when \nthey have sunk in.$"
-
-DexDescription_Feraligatr_1:
- .string "FERALIGATR intimidates its foes by\nopening its huge mouth.\nIn battle, it will kick the ground hard$"
-DexDescription_Feraligatr_2:
- .string "with its thick and powerful hind legs to\ncharge at the foe at an incredible\nspeed.$"
-
-DexDescription_Sentret_1:
- .string "When SENTRET sleeps, it does so while\nanother stands guard. The sentry wakes\nthe others at the first sign of danger.$"
-DexDescription_Sentret_2:
- .string "When this POKéMON becomes separated\nfrom its pack, it becomes incapable of\nsleep due to fear.$"
-
-DexDescription_Furret_1:
- .string "FURRET has a very slim build.\nWhen under attack, it can slickly squirm\nthrough narrow spaces and get away.$"
-DexDescription_Furret_2:
- .string "In spite of its short limbs, this\nPOKéMON is very nimble and fleet.$"
-
-DexDescription_Hoothoot_1:
- .string "HOOTHOOT has an internal organ that\nsenses and tracks the earth’s rotation.\nUsing this special organ, this POKéMON$"
-DexDescription_Hoothoot_2:
- .string "begins hooting at precisely the same\ntime every day.$"
-
-DexDescription_Noctowl_1:
- .string "NOCTOWL never fails at catching prey in\ndarkness. This POKéMON owes its\nsuccess to its superior vision that$"
-DexDescription_Noctowl_2:
- .string "allows it to see in minimal light, and to\nits soft, supple wings that make no\nsound in flight.$"
-
-DexDescription_Ledyba_1:
- .string "LEDYBA secretes an aromatic fluid from\nwhere its legs join its body. This fluid\nis used for communicating with others.$"
-DexDescription_Ledyba_2:
- .string "This POKéMON conveys its feelings to\nothers by altering the fluid’s scent.$"
-
-DexDescription_Ledian_1:
- .string "It is said that in lands with clean air,\nwhere the stars fill the sky, there live\nLEDIAN in countless numbers.$"
-DexDescription_Ledian_2:
- .string "There is a good reason for this - the\nPOKéMON uses the light of the stars\nas its energy.$"
-
-DexDescription_Spinarak_1:
- .string "The web spun by SPINARAK can be\nconsidered its second nervous system.\nIt is said that this POKéMON can$"
-DexDescription_Spinarak_2:
- .string "determine what kind of prey is touching\nits web just by the tiny vibrations it\nfeels through the web’s strands.$"
-
-DexDescription_Ariados_1:
- .string "ARIADOS’s feet are tipped with tiny\nhooked claws that enable it to scuttle\non ceilings and vertical walls.$"
-DexDescription_Ariados_2:
- .string "This POKéMON constricts the foe with\nthin and strong silk webbing.$"
-
- .ifdef SAPPHIRE
-DexDescription_Crobat_1:
- .string "CROBAT sneaks up on its intended prey\nusing wings that barely make a sound.\nThis POKéMON rests by hanging on a$"
-DexDescription_Crobat_2:
- .string "tree branch with its rear legs that\nserve as wings.$"
- .else
-DexDescription_Crobat_1:
- .string "If this POKéMON is flying by fluttering\nonly a pair of wings on either the\nforelegs or hind legs, it’s proof that$"
-DexDescription_Crobat_2:
- .string "CROBAT has been flying a long distance.\nIt switches the wings it uses if it is\ntired.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Chinchou_1:
- .string "CHINCHOU’s two antennas are filled with\ncells that generate strong electricity.\nThis POKéMON’s cells create so much$"
-DexDescription_Chinchou_2:
- .string "electrical power, it even makes itself\ntingle slightly.$"
- .else
-DexDescription_Chinchou_1:
- .string "CHINCHOU lets loose positive and\nnegative electrical charges from its\ntwo antennas to make its prey faint.$"
-DexDescription_Chinchou_2:
- .string "This POKéMON flashes its electric\nlights to exchange signals with others.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Lanturn_1:
- .string "LANTURN is known to emit light.\nIf you peer down into the dark sea from\na ship at night, you can sometimes see$"
-DexDescription_Lanturn_2:
- .string "this POKéMON’s light rising from the\ndepths where it swims. It gives the sea\nan appearance of a starlit night.$"
- .else
-DexDescription_Lanturn_1:
- .string "LANTURN is nicknamed “the deep-sea\nstar” for its illuminated antenna.\nThis POKéMON produces light by$"
-DexDescription_Lanturn_2:
- .string "causing a chemical reaction between\nbacteria and its bodily fluids inside\nthe antenna.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Pichu_1:
- .string "When PICHU plays with others, it may\nshort out electricity with another\nPICHU, creating a shower of sparks.$"
-DexDescription_Pichu_2:
- .string "In that event, this POKéMON will begin\ncrying, startled by the flash of sparks.$"
- .else
-DexDescription_Pichu_1:
- .string "PICHU charges itself with electricity\nmore easily on days with thunderclouds\nor when the air is very dry.$"
-DexDescription_Pichu_2:
- .string "You can hear the crackling of static\nelectricity coming off this POKéMON.$"
- .endif
-
-DexDescription_Cleffa_1:
- .string "On nights with many shooting stars,\nCLEFFA can be seen dancing in a ring.\nThey dance through the night and stop$"
-DexDescription_Cleffa_2:
- .string "only at the break of day, when these\nPOKéMON quench their thirst with the\nmorning dew.$"
-
- .ifdef SAPPHIRE
-DexDescription_Igglybuff_1:
- .string "IGGLYBUFF has a soft and plushy body\nthat feels very much like a marshmallow.\nFrom this body wafts a gently sweet$"
-DexDescription_Igglybuff_2:
- .string "fragrance that soothes and calms the\nemotions of its foes.$"
- .else
-DexDescription_Igglybuff_1:
- .string "IGGLYBUFF’s vocal chords are not\nsufficiently developed. It would hurt\nits throat if it were to sing too much.$"
-DexDescription_Igglybuff_2:
- .string "This POKéMON gargles with freshwater\nfrom a clean stream.$"
- .endif
-
-DexDescription_Togepi_1:
- .string "As its energy, TOGEPI uses the positive\nemotions of compassion and pleasure\nexuded by people and POKéMON.$"
-DexDescription_Togepi_2:
- .string "This POKéMON stores up feelings of\nhappiness inside its shell, then shares\nthem with others.$"
-
-DexDescription_Togetic_1:
- .string "TOGETIC is said to be a POKéMON that\nbrings good fortune. When the POKéMON\nspots someone who is pure of heart,$"
-DexDescription_Togetic_2:
- .string "it is said to appear and share its\nhappiness with that person.$"
-
- .ifdef SAPPHIRE
-DexDescription_Natu_1:
- .string "NATU has a highly developed jumping\nability. The POKéMON flaps and leaps\nonto tree branches that are taller than$"
-DexDescription_Natu_2:
- .string "grown-up people to pick at the tree’s\nnew shoots.$"
- .else
-DexDescription_Natu_1:
- .string "NATU cannot fly because its wings are\nnot yet fully grown. If your eyes meet\nwith this POKéMON’s eyes, it will stare$"
-DexDescription_Natu_2:
- .string "back intently at you. But if you move\neven slightly, it will hop away to safety.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Xatu_1:
- .string "XATU is known to stand motionless while\nstaring at the sun all day long.\nSome people revere it as a mystical$"
-DexDescription_Xatu_2:
- .string "POKéMON out of their belief that XATU\nis in possession of the power to see\ninto the future.$"
- .else
-DexDescription_Xatu_1:
- .string "XATU stands rooted and still in one\nspot all day long. People believe that\nthis POKéMON does so out of fear of$"
-DexDescription_Xatu_2:
- .string "the terrible things it has foreseen in\nthe future.$"
- .endif
-
-DexDescription_Mareep_1:
- .string "MAREEP’s fluffy coat of wool rubs\ntogether and builds a static charge.\nThe more static electricity is charged,$"
-DexDescription_Mareep_2:
- .string "the more brightly the lightbulb at the\ntip of its tail grows.$"
-
-DexDescription_Flaaffy_1:
- .string "FLAAFFY’s wool quality changes so that\nit can generate a high amount of static\nelectricity with a small amount of wool.$"
-DexDescription_Flaaffy_2:
- .string "The bare and slick parts of its hide are\nshielded against electricity.$"
-
-DexDescription_Ampharos_1:
- .string "AMPHAROS gives off so much light that\nit can be seen even from space.\nPeople in the old days used the light of$"
-DexDescription_Ampharos_2:
- .string "this POKéMON to send signals back and\nforth with others far away.$"
-
- .ifdef SAPPHIRE
-DexDescription_Bellossom_1:
- .string "A BELLOSSOM grows flowers more\nbeautifully if it has evolved from a\nsmelly GLOOM - the stinkier the better.$"
-DexDescription_Bellossom_2:
- .string "At night, this POKéMON closes its\npetals and goes to sleep.$"
- .else
-DexDescription_Bellossom_1:
- .string "When BELLOSSOM gets exposed to plenty\nof sunlight, the leaves ringing its body\nbegin to spin around.$"
-DexDescription_Bellossom_2:
- .string "This POKéMON’s dancing is renowned in\nthe southern lands.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Marill_1:
- .string "When fishing for food at the edge of a\nfast-running stream, MARILL wraps its\ntail around the trunk of a tree.$"
-DexDescription_Marill_2:
- .string "This POKéMON’s tail is flexible and\nconfigured to stretch.$"
- .else
-DexDescription_Marill_1:
- .string "MARILL’s oil-filled tail acts much like\na life preserver. If you see just its\ntail bobbing on the water’s surface,$"
-DexDescription_Marill_2:
- .string "it’s a sure indication that this POKéMON\nis diving beneath the water to feed on\naquatic plants.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Azumarill_1:
- .string "AZUMARILL can make balloons out of\nair. It makes these air balloons if it\nspots a drowning POKéMON.$"
-DexDescription_Azumarill_2:
- .string "The air balloons enable the POKéMON in\ntrouble to breathe.$"
- .else
-DexDescription_Azumarill_1:
- .string "AZUMARILL’s long ears are indispensable\nsensors. By focusing its hearing, this\nPOKéMON can identify what kinds of$"
-DexDescription_Azumarill_2:
- .string "prey are around, even in rough and\nfast-running rivers.$"
- .endif
-
-DexDescription_Sudowoodo_1:
- .string "SUDOWOODO camouflages itself as a tree\nto avoid being attacked by enemies.\nHowever, because the forelegs remain$"
-DexDescription_Sudowoodo_2:
- .string "green throughout the year, the POKéMON\nis easily identified as a fake during\nthe winter.$"
-
-DexDescription_Politoed_1:
- .string "The curled hair on POLITOED’s head is\nproof of its status as a king. It is said\nthat the longer and more curled the$"
-DexDescription_Politoed_2:
- .string "hair, the more respect this POKéMON\nearns from its peers.$"
-
-DexDescription_Hoppip_1:
- .string "This POKéMON drifts and floats with the\nwind. If it senses the approach of\nstrong winds, HOPPIP links its leaves$"
-DexDescription_Hoppip_2:
- .string "with other HOPPIP to prepare against\nbeing blown away.$"
-
-DexDescription_Skiploom_1:
- .string "SKIPLOOM’s flower blossoms when the\ntemperature rises above 64 degrees F.\nHow much the flower opens depends on$"
-DexDescription_Skiploom_2:
- .string "the temperature. For that reason, this\nPOKéMON is sometimes used as a\nthermometer.$"
-
-DexDescription_Jumpluff_1:
- .string "JUMPLUFF rides warm southern winds to\ncross the sea and fly to foreign lands.\nThe POKéMON descends to the ground$"
-DexDescription_Jumpluff_2:
- .string "when it encounters cold air while it is\nfloating.$"
-
-DexDescription_Aipom_1:
- .string "AIPOM’s tail ends in a hand-like\nappendage that can be cleverly\nmanipulated.$"
-DexDescription_Aipom_2:
- .string "However, because the POKéMON uses its\ntail so much, its real hands have become\nrather clumsy.$"
-
-DexDescription_Sunkern_1:
- .string "SUNKERN tries to move as little as it\npossibly can. It does so because it\ntries to conserve all the nutrients it$"
-DexDescription_Sunkern_2:
- .string "has stored in its body for its\nevolution. It will not eat a thing, \nsubsisting only on morning dew.$"
-
-DexDescription_Sunflora_1:
- .string "SUNFLORA converts solar energy into\nnutrition. It moves around actively in\nthe daytime when it is warm.$"
-DexDescription_Sunflora_2:
- .string "It stops moving as soon as the sun goes\ndown for the night.$"
-
-DexDescription_Yanma_1:
- .string "YANMA is capable of seeing 360 degrees\nwithout having to move its eyes.\nIt is a great flier that is adept at$"
-DexDescription_Yanma_2:
- .string "making sudden stops and turning midair.\nThis POKéMON uses its flying ability to\nquickly chase down targeted prey.$"
-
-DexDescription_Wooper_1:
- .string "WOOPER usually lives in water.\nHowever, it occasionally comes out onto\nland in search of food.$"
-DexDescription_Wooper_2:
- .string "On land, it coats its body with a gooey,\ntoxic film.$"
-
-DexDescription_Quagsire_1:
- .string "QUAGSIRE hunts for food by leaving\nits mouth wide open in water and waiting\nfor its prey to blunder in unaware.$"
-DexDescription_Quagsire_2:
- .string "Because the POKéMON does not move,\nit does not get very hungry.$"
-
-DexDescription_Espeon_1:
- .string "ESPEON is extremely loyal to any\nTRAINER it considers to be worthy.\nIt is said that this POKéMON developed$"
-DexDescription_Espeon_2:
- .string "its precognitive powers to protect its\nTRAINER from harm.$"
-
-DexDescription_Umbreon_1:
- .string "UMBREON evolved as a result of exposure\nto the moon’s waves.\nIt hides silently in darkness and waits$"
-DexDescription_Umbreon_2:
- .string "for its foes to make a move.\nThe rings on its body glow when it leaps\nto attack.$"
-
-DexDescription_Murkrow_1:
- .string "MURKROW was feared and loathed as the\nalleged bearer of ill fortune.\nThis POKéMON shows strong interest in$"
-DexDescription_Murkrow_2:
- .string "anything that sparkles or glitters.\nIt will even try to steal rings from\nwomen.$"
-
-DexDescription_Slowking_1:
- .string "SLOWKING undertakes research every\nday in an effort to solve the mysteries\nof the world.$"
-DexDescription_Slowking_2:
- .string "However, this POKéMON apparently\nforgets everything it has learned if\nthe SHELLDER on its head comes off.$"
-
-DexDescription_Misdreavus_1:
- .string "MISDREAVUS frightens people with a\ncreepy, sobbing cry. The POKéMON\napparently uses its red spheres to$"
-DexDescription_Misdreavus_2:
- .string "absorb the fearful feelings of foes and\nturn them into nutrition.$"
-
-DexDescription_Unown_1:
- .string "This POKéMON is shaped like ancient\nwriting. It is a mystery as to which\ncame first, the ancient writings or the$"
-DexDescription_Unown_2:
- .string "various UNOWN. Research into this\ntopic is ongoing but nothing is known.$"
-
- .ifdef SAPPHIRE
-DexDescription_Wobbuffet_1:
- .string "WOBBUFFET does nothing but endure\nattacks - it won’t attack on its own.\nHowever, it won’t endure an attack on$"
-DexDescription_Wobbuffet_2:
- .string "its tail. When that happens, the\nPOKéMON will try to take the foe with it\nusing DESTINY BOND.$"
- .else
-DexDescription_Wobbuffet_1:
- .string "If two or more WOBBUFFET meet, they will\nturn competitive and try to outdo each\nother’s endurance.$"
-DexDescription_Wobbuffet_2:
- .string "However, they may try to see which one\ncan endure the longest without food.\nTRAINERS need to beware of this habit.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Girafarig_1:
- .string "GIRAFARIG’s rear head contains a tiny\nbrain that is too small for thinking.\nHowever, the rear head doesn’t need to$"
-DexDescription_Girafarig_2:
- .string "sleep, so it can keep watch over its\nsurroundings 24 hours a day.$"
- .else
-DexDescription_Girafarig_1:
- .string "GIRAFARIG’s rear head also has a brain,\nbut it is small. The rear head attacks in\nresponse to smells and sounds.$"
-DexDescription_Girafarig_2:
- .string "Approaching this POKéMON from behind\ncan cause the rear head to suddenly\nlash out and bite.$"
- .endif
-
-DexDescription_Pineco_1:
- .string "PINECO hangs from a tree branch and\npatiently waits for prey to come along.\nIf the POKéMON is disturbed while$"
-DexDescription_Pineco_2:
- .string "eating by someone shaking its tree, it\ndrops down to the ground and explodes\nwith no warning.$"
-
-DexDescription_Forretress_1:
- .string "FORRETRESS conceals itself inside its\nhardened steel shell. The shell is opened\nwhen the POKéMON is catching prey,$"
-DexDescription_Forretress_2:
- .string "but it does so at such a quick pace\nthat the shell’s inside cannot be seen.$"
-
-DexDescription_Dunsparce_1:
- .string "DUNSPARCE has a drill for its tail.\nIt uses this tail to burrow into the\nground backwards.$"
-DexDescription_Dunsparce_2:
- .string "This POKéMON is known to make its nest\nin complex shapes deep under the\nground.$"
-
-DexDescription_Gligar_1:
- .string "GLIGAR glides through the air without\na sound as if it were sliding.\nThis POKéMON hangs on to the face of$"
-DexDescription_Gligar_2:
- .string "its foe using its clawed hind legs and\nthe large pincers on its forelegs, then\ninjects the prey with its poison barb.$"
-
-DexDescription_Steelix_1:
- .string "STEELIX lives even further underground\nthan ONIX. This POKéMON is known to dig\ntowards the earth’s core.$"
-DexDescription_Steelix_2:
- .string "There are records of this POKéMON\nreaching a depth of over six-tenths\nof a mile underground.$"
-
-DexDescription_Snubbull_1:
- .string "By baring its fangs and making a scary\nface, SNUBBULL sends smaller POKéMON\nscurrying away in terror.$"
-DexDescription_Snubbull_2:
- .string "However, this POKéMON seems a little\nsad at making its foes flee.$"
-
-DexDescription_Granbull_1:
- .string "GRANBULL has a particularly well-\ndeveloped lower jaw. The enormous fangs\nare heavy, causing the POKéMON to tip$"
-DexDescription_Granbull_2:
- .string "its head back for balance.\nUnless it is startled, it will not try to\nbite indiscriminately.$"
-
-DexDescription_Qwilfish_1:
- .string "QWILFISH sucks in water, inflating\nitself. This POKéMON uses the pressure\nof the water it swallowed to shoot$"
-DexDescription_Qwilfish_2:
- .string "toxic quills all at once from all over\nits body. It finds swimming somewhat\nchallenging.$"
-
-DexDescription_Scizor_1:
- .string "SCIZOR has a body with the hardness of\nsteel. It is not easily fazed by ordinary\nsorts of attacks.$"
-DexDescription_Scizor_2:
- .string "This POKéMON flaps its wings to\nregulate its body temperature.$"
-
-DexDescription_Shuckle_1:
- .string "SHUCKLE quietly hides itself under\nrocks, keeping its body concealed\ninside its hard shell while eating$"
-DexDescription_Shuckle_2:
- .string "berries it has stored away.\nThe berries mix with its body fluids to\nbecome a juice.$"
-
- .ifdef SAPPHIRE
-DexDescription_Heracross_1:
- .string "HERACROSS has sharp claws on its feet.\nThese are planted firmly into the\nground or the bark of a tree, giving the$"
-DexDescription_Heracross_2:
- .string "POKéMON a secure and solid footing\nto forcefully fling away foes with\nits proud horn.$"
- .else
-DexDescription_Heracross_1:
- .string "HERACROSS charges in a straight line at\nits foe, slips beneath the foe’s grasp,\nand then scoops up and hurls the$"
-DexDescription_Heracross_2:
- .string "opponent with its mighty horn.\nThis POKéMON even has enough power\nto topple a massive tree.$"
- .endif
-
-DexDescription_Sneasel_1:
- .string "SNEASEL scales trees by punching its\nhooked claws into the bark.\nThis POKéMON seeks out unguarded$"
-DexDescription_Sneasel_2:
- .string "nests and steals eggs for food while\nthe parents are away.$"
-
-DexDescription_Teddiursa_1:
- .string "This POKéMON likes to lick its palms that\nare sweetened by being soaked in honey.\nTEDDIURSA concocts its own honey by$"
-DexDescription_Teddiursa_2:
- .string "blending fruits and pollen collected by\nBEEDRILL.$"
-
-DexDescription_Ursaring_1:
- .string "In the forests inhabited by URSARING,\nit is said that there are many streams\nand towering trees where they$"
-DexDescription_Ursaring_2:
- .string "gather food. This POKéMON walks\nthrough its forest gathering food\nevery day.$"
-
- .ifdef SAPPHIRE
-DexDescription_Slugma_1:
- .string "SLUGMA does not have any blood in its\nbody. Instead, intensely hot magma\ncirculates throughout this POKéMON’s$"
-DexDescription_Slugma_2:
- .string "body, carrying essential nutrients and\noxygen to its organs.$"
- .else
-DexDescription_Slugma_1:
- .string "Molten magma courses throughout\nSLUGMA’s circulatory system.\nIf this POKéMON is chilled, the magma$"
-DexDescription_Slugma_2:
- .string "cools and hardens. Its body turns\nbrittle and chunks fall off, reducing\nits size.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Magcargo_1:
- .string "MAGCARGO’s body temperature is\napproximately 18,000 degrees F.\nWater is vaporized on contact.$"
-DexDescription_Magcargo_2:
- .string "If this POKéMON is caught in the rain,\nthe raindrops instantly turn into\nsteam, cloaking the area in a thick fog.$"
- .else
-DexDescription_Magcargo_1:
- .string "MAGCARGO’s shell is actually its skin\nthat hardened as a result of cooling.\nIts shell is very brittle and fragile -$"
-DexDescription_Magcargo_2:
- .string "just touching it causes it to crumble\napart. This POKéMON returns to its\noriginal size by dipping itself in magma.$"
- .endif
-
-DexDescription_Swinub_1:
- .string "SWINUB roots for food by rubbing its\nsnout against the ground. Its favorite\nfood is a mushroom that grows under$"
-DexDescription_Swinub_2:
- .string "the cover of dead grass.\nThis POKéMON occasionally roots out\nhot springs.$"
-
-DexDescription_Piloswine_1:
- .string "PILOSWINE is covered by a thick coat\nof long hair that enables it to endure\nthe freezing cold.$"
-DexDescription_Piloswine_2:
- .string "This POKéMON uses its tusks to dig up\nfood that has been buried under ice.$"
-
- .ifdef SAPPHIRE
-DexDescription_Corsola_1:
- .string "Clusters of CORSOLA congregate in warm\nseas where they serve as ideal hiding\nplaces for smaller POKéMON.$"
-DexDescription_Corsola_2:
- .string "When the water temperature falls, this\nPOKéMON migrates to the southern seas.$"
- .else
-DexDescription_Corsola_1:
- .string "CORSOLA’s branches glitter very\nbeautifully in seven colors when they\ncatch sunlight.$"
-DexDescription_Corsola_2:
- .string "If any branch breaks off, this POKéMON\ngrows it back in just one night.$"
- .endif
-
-DexDescription_Remoraid_1:
- .string "REMORAID sucks in water, then expels it\nat high velocity using its abdominal\nmuscles to shoot down flying prey.$"
-DexDescription_Remoraid_2:
- .string "When evolution draws near, this POKéMON\ntravels downstream from rivers.$"
-
-DexDescription_Octillery_1:
- .string "OCTILLERY grabs onto its foe using\nits tentacles. This POKéMON tries to\nimmobilize it before delivering the$"
-DexDescription_Octillery_2:
- .string "finishing blow.\nIf the foe turns out to be too strong,\nOCTILLERY spews ink to escape.$"
-
-DexDescription_Delibird_1:
- .string "DELIBIRD carries its food bundled up\nin its tail. There once was a famous\nexplorer who managed to reach the peak$"
-DexDescription_Delibird_2:
- .string "of Mt. Everest thanks to one of these\nPOKéMON sharing its food.$"
-
-DexDescription_Mantine_1:
- .string "On sunny days, schools of MANTINE can\nbe seen elegantly leaping over the\nsea’s waves.$"
-DexDescription_Mantine_2:
- .string "This POKéMON is not bothered by the\nREMORAID that hitches rides.$"
-
- .ifdef SAPPHIRE
-DexDescription_Skarmory_1:
- .string "SKARMORY’s steel wings become tattered\nand bashed in from repeated battles.\nOnce a year, the battered wings grow$"
-DexDescription_Skarmory_2:
- .string "back completely, restoring the cutting\nedges to their pristine state.$"
- .else
-DexDescription_Skarmory_1:
- .string "SKARMORY is entirely encased in hard,\nprotective armor. This POKéMON flies at\nclose to 190 mph.$"
-DexDescription_Skarmory_2:
- .string "It slashes foes with its wings that\npossess swordlike cutting edges.$"
- .endif
-
-DexDescription_Houndour_1:
- .string "HOUNDOUR hunt as a coordinated pack.\nThey communicate with each other using\na variety of cries to corner their prey.$"
-DexDescription_Houndour_2:
- .string "This POKéMON’s remarkable teamwork is\nunparalleled.$"
-
-DexDescription_Houndoom_1:
- .string "In a HOUNDOOM pack, the one with its\nhorns raked sharply towards the back\nserves a leadership role.$"
-DexDescription_Houndoom_2:
- .string "These POKéMON choose their leader by\nfighting amongst themselves.$"
-
- .ifdef SAPPHIRE
-DexDescription_Kingdra_1:
- .string "KINGDRA sleeps on the seafloor where\nit is otherwise devoid of life.\nWhen a storm arrives, the POKéMON is$"
-DexDescription_Kingdra_2:
- .string "said to awaken and wander about in\nsearch of prey.$"
- .else
-DexDescription_Kingdra_1:
- .string "KINGDRA lives at extreme ocean depths\nthat are otherwise uninhabited.\nIt has long been believed that the$"
-DexDescription_Kingdra_2:
- .string "yawning of this POKéMON creates\nspiraling ocean currents.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Phanpy_1:
- .string "PHANPY uses its long nose to shower\nitself. When others gather around, they\nthoroughly douse each other with water.$"
-DexDescription_Phanpy_2:
- .string "These POKéMON can be seen drying their\nsoaking-wet bodies at the edge of\nwater.$"
- .else
-DexDescription_Phanpy_1:
- .string "For its nest, PHANPY digs a vertical pit \nin the ground at the edge of a river.\nIt marks the area around its nest with$"
-DexDescription_Phanpy_2:
- .string "its trunk to let the others know that\nthe area has been claimed.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Donphan_1:
- .string "If DONPHAN were to tackle with its hard\nbody, even a house could be destroyed.\nUsing its massive strength, the$"
-DexDescription_Donphan_2:
- .string "POKéMON helps clear rock and mud slides\nthat block mountain trails.$"
- .else
-DexDescription_Donphan_1:
- .string "DONPHAN’s favorite attack is curling\nits body into a ball, then charging at\nits foe while rolling at high speed.$"
-DexDescription_Donphan_2:
- .string "Once it starts rolling, this POKéMON\ncan’t stop very easily.$"
- .endif
-
-DexDescription_Porygon2_1:
- .string "PORYGON2 was created by humans using\nthe power of science. The man-made\nPOKéMON has been endowed with$"
-DexDescription_Porygon2_2:
- .string "artificial intelligence that enables it\nto learn new gestures and emotions\non its own.$"
-
-DexDescription_Stantler_1:
- .string "STANTLER’s magnificent antlers were\ntraded at high prices as works of art.\nAs a result, this POKéMON was hunted$"
-DexDescription_Stantler_2:
- .string "close to extinction by those who were\nafter the priceless antlers.$"
-
-DexDescription_Smeargle_1:
- .string "SMEARGLE marks the boundaries of its\nterritory using a body fluid that leaks\nout from the tip of its tail.$"
-DexDescription_Smeargle_2:
- .string "Over 5,000 different marks left by this\nPOKéMON have been found.$"
-
-DexDescription_Tyrogue_1:
- .string "TYROGUE becomes stressed out if it\ndoes not get to train every day.\nWhen raising this POKéMON, the TRAINER$"
-DexDescription_Tyrogue_2:
- .string "must establish and uphold various\ntraining methods.$"
-
-DexDescription_Hitmontop_1:
- .string "HITMONTOP spins on its head at high\nspeed, all the while delivering kicks.\nThis technique is a remarkable mix of$"
-DexDescription_Hitmontop_2:
- .string "both offense and defense at the same\ntime. The POKéMON travels faster\nspinning than it does walking.$"
-
-DexDescription_Smoochum_1:
- .string "SMOOCHUM actively runs about, but\nalso falls quite often.\nWhenever the chance arrives, it will$"
-DexDescription_Smoochum_2:
- .string "look for its reflection to make sure its\nface hasn’t become dirty.$"
-
-DexDescription_Elekid_1:
- .string "ELEKID stores electricity in its body.\nIf it touches metal and accidentally\ndischarges all its built-up electricity,$"
-DexDescription_Elekid_2:
- .string "this POKéMON begins swinging its arms\nin circles to recharge itself.$"
-
-DexDescription_Magby_1:
- .string "MAGBY’s state of health is determined\nby observing the fire it breathes.\nIf the POKéMON is spouting yellow$"
-DexDescription_Magby_2:
- .string "flames from its mouth, it is in good\nhealth. When it is fatigued, black smoke\nwill be mixed in with the flames.$"
-
-DexDescription_Miltank_1:
- .string "MILTANK gives over five gallons of milk\non a daily basis. Its sweet milk is\nenjoyed by children and grown-ups alike.$"
-DexDescription_Miltank_2:
- .string "People who can’t drink milk turn it into\nyogurt and eat it instead.$"
-
-DexDescription_Blissey_1:
- .string "BLISSEY senses sadness with its fluffy\ncoat of fur. If it does so, this POKéMON\nwill rush over to the sad person,$"
-DexDescription_Blissey_2:
- .string "however far they may be, to share an\negg of happiness that brings a smile\nto any face.$"
-
-DexDescription_Raikou_1:
- .string "RAIKOU embodies the speed of lightning.\nThe roars of this POKéMON send shock\nwaves shuddering through the air and$"
-DexDescription_Raikou_2:
- .string "shake the ground as if lightning bolts\nhad come crashing down.$"
-
-DexDescription_Entei_1:
- .string "ENTEI embodies the passion of magma.\nThis POKéMON is thought to have been\nborn in the eruption of a volcano.$"
-DexDescription_Entei_2:
- .string "It sends up massive bursts of fire that\nutterly consume all that they touch.$"
-
-DexDescription_Suicune_1:
- .string "SUICUNE embodies the compassion of\na pure spring of water. It runs across\nthe land with gracefulness.$"
-DexDescription_Suicune_2:
- .string "This POKéMON has the power to purify\ndirty water.$"
-
-DexDescription_Larvitar_1:
- .string "LARVITAR is born deep under the ground.\nTo come up to the surface, this POKéMON\nmust eat its way through the soil above.$"
-DexDescription_Larvitar_2:
- .string "Until it does so, LARVITAR cannot see\nits parent’s face.$"
-
-DexDescription_Pupitar_1:
- .string "PUPITAR creates a gas inside its body\nthat it compresses and forcefully\nejects to propel itself like a jet.$"
-DexDescription_Pupitar_2:
- .string "The body is very durable - it avoids\ndamage even if it hits solid steel.$"
-
-DexDescription_Tyranitar_1:
- .string "TYRANITAR is so overwhelmingly\npowerful, it can bring down a whole\nmountain to make its nest.$"
-DexDescription_Tyranitar_2:
- .string "This POKéMON wanders about in\nmountains seeking new opponents to\nfight.$"
-
-DexDescription_Lugia_1:
- .string "LUGIA’s wings pack devastating power -\na light fluttering of its wings can blow\napart regular houses.$"
-DexDescription_Lugia_2:
- .string "As a result, this POKéMON chooses to\nlive out of sight deep under the sea.$"
-
-DexDescription_HoOh_1:
- .string "HO-OH’s feathers glow in seven colors\ndepending on the angle at which they\nare struck by light.$"
-DexDescription_HoOh_2:
- .string "These feathers are said to bring\nhappiness to the bearers. This POKéMON\nis said to live at the foot of a rainbow.$"
-
-DexDescription_Celebi_1:
- .string "This POKéMON came from the future by\ncrossing over time.\nIt is thought that so long as CELEBI$"
-DexDescription_Celebi_2:
- .string "appears, a bright and shining future\nawaits us.$"
-
- .ifdef SAPPHIRE
-DexDescription_Treecko_1:
- .string "TREECKO is cool, calm, and collected -\nit never panics under any situation.\nIf a bigger foe were to glare at this$"
-DexDescription_Treecko_2:
- .string "POKéMON, it would glare right back\nwithout conceding an inch of ground.$"
- .else
-DexDescription_Treecko_1:
- .string "TREECKO has small hooks on the bottom\nof its feet that enable it to scale\nvertical walls.$"
-DexDescription_Treecko_2:
- .string "This POKéMON attacks by slamming foes\nwith its thick tail.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Grovyle_1:
- .string "This POKéMON adeptly flies from branch\nto branch in trees.\nIn a forest, no POKéMON can ever hope$"
-DexDescription_Grovyle_2:
- .string "to catch a fleeing GROVYLE however\nfast they may be.$"
- .else
-DexDescription_Grovyle_1:
- .string "The leaves growing out of GROVYLE’s\nbody are convenient for camouflaging\nit from enemies in the forest.$"
-DexDescription_Grovyle_2:
- .string "This POKéMON is a master at climbing\ntrees in jungles.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Sceptile_1:
- .string "SCEPTILE has seeds growing on its back.\nThey are said to be bursting with\nnutrients that revitalize trees.$"
-DexDescription_Sceptile_2:
- .string "This POKéMON raises the trees in a\nforest with loving care.$"
- .else
-DexDescription_Sceptile_1:
- .string "The leaves growing on SCEPTILE’s body\nare very sharp edged. This POKéMON is\nvery agile - it leaps all over the$"
-DexDescription_Sceptile_2:
- .string "branches of trees and jumps on its foe\nfrom above or behind.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Torchic_1:
- .string "TORCHIC has a place inside its body\nwhere it keeps its flame. Give it a hug -\nit will be glowing with warmth.$"
-DexDescription_Torchic_2:
- .string "This POKéMON is covered all over by a\nfluffy coat of down.$"
- .else
-DexDescription_Torchic_1:
- .string "TORCHIC sticks with its TRAINER,\nfollowing behind with unsteady\nsteps.$"
-DexDescription_Torchic_2:
- .string "This POKéMON breathes fire of over\n1,800 degrees F, including fireballs\nthat leave the foe scorched black.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Combusken_1:
- .string "COMBUSKEN battles with the intensely\nhot flames it spews from its beak and\nwith outstandingly destructive kicks.$"
-DexDescription_Combusken_2:
- .string "This POKéMON’s cry is very loud and\ndistracting.$"
- .else
-DexDescription_Combusken_1:
- .string "COMBUSKEN toughens up its legs and\nthighs by running through fields and\nmountains.$"
-DexDescription_Combusken_2:
- .string "This POKéMON’s legs possess both speed\nand power, enabling it to dole out ten\nkicks in one second.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Blaziken_1:
- .string "BLAZIKEN has incredibly strong legs -\nit can easily clear a 30-story building\nin one leap.$"
-DexDescription_Blaziken_2:
- .string "This POKéMON’s blazing punches leave\nits foes scorched and blackened.$"
- .else
-DexDescription_Blaziken_1:
- .string "In battle, BLAZIKEN blows out intense\nflames from its wrists and attacks foes\ncourageously.$"
-DexDescription_Blaziken_2:
- .string "The stronger the foe, the more\nintensely this POKéMON’s wrists burn.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Mudkip_1:
- .string "In water, MUDKIP breathes using the\ngills on its cheeks.\nIf it is faced with a tight situation in$"
-DexDescription_Mudkip_2:
- .string "battle, this POKéMON will unleash its\namazing power - it can crush rocks\nbigger than itself.$"
- .else
-DexDescription_Mudkip_1:
- .string "The fin on MUDKIP’s head acts as highly\nsensitive radar. Using this fin to sense\nmovements of water and air, this$"
-DexDescription_Mudkip_2:
- .string "POKéMON can determine what is taking\nplace around it without using its eyes.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Marshtomp_1:
- .string "MARSHTOMP is much faster at traveling\nthrough mud than it is at swimming.\nThis POKéMON’s hindquarters exhibit$"
-DexDescription_Marshtomp_2:
- .string "obvious development, giving it the\nability to walk on just its hind legs.$"
- .else
-DexDescription_Marshtomp_1:
- .string "The surface of MARSHTOMP’s body is\nenveloped by a thin, sticky film that\nenables it to live on land.$"
-DexDescription_Marshtomp_2:
- .string "This POKéMON plays in mud on beaches\nwhen the ocean tide is low.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Swampert_1:
- .string "SWAMPERT predicts storms by sensing\nsubtle differences in the sounds of\nwaves and tidal winds with its fins.$"
-DexDescription_Swampert_2:
- .string "If a storm is approaching, it piles up\nboulders to protect itself.$"
- .else
-DexDescription_Swampert_1:
- .string "SWAMPERT is very strong. It has enough\npower to easily drag a boulder weighing\nmore than a ton.$"
-DexDescription_Swampert_2:
- .string "This POKéMON also has powerful vision\nthat lets it see even in murky water.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Poochyena_1:
- .string "POOCHYENA is an omnivore - it will eat\nanything. A distinguishing feature is\nhow large its fangs are compared to$"
-DexDescription_Poochyena_2:
- .string "its body. This POKéMON tries to\nintimidate its foes by making the hair\non its tail bristle out.$"
- .else
-DexDescription_Poochyena_1:
- .string "At first sight, POOCHYENA takes a bite\nat anything that moves.\nThis POKéMON chases after prey until$"
-DexDescription_Poochyena_2:
- .string "the victim becomes exhausted.\nHowever, it may turn tail if the prey\nstrikes back.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Mightyena_1:
- .string "MIGHTYENA travel and act as a pack\nin the wild. The memory of its life in the\nwild compels the POKéMON to obey only$"
-DexDescription_Mightyena_2:
- .string "those TRAINERS that it recognizes to\npossess superior skill.$"
- .else
-DexDescription_Mightyena_1:
- .string "MIGHTYENA gives obvious signals when\nit is preparing to attack. It starts to\ngrowl deeply and then flattens its body.$"
-DexDescription_Mightyena_2:
- .string "This POKéMON will bite savagely with its\nsharply pointed fangs.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Zigzagoon_1:
- .string "The hair on ZIGZAGOON’s back is \nbristly. It rubs the hard back hair\nagainst trees to leave its territorial$"
-DexDescription_Zigzagoon_2:
- .string "markings.\nThis POKéMON may play dead to fool foes\nin battle.$"
- .else
-DexDescription_Zigzagoon_1:
- .string "ZIGZAGOON restlessly wanders\neverywhere at all times. This POKéMON\ndoes so because it is very curious.$"
-DexDescription_Zigzagoon_2:
- .string "It becomes interested in anything\nthat it happens to see.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Linoone_1:
- .string "When hunting, LINOONE will make a\nbeeline straight for the prey at a full\nrun. While this POKéMON is capable of$"
-DexDescription_Linoone_2:
- .string "topping 60 mph, it has to come to a\nscreeching halt before it can turn.$"
- .else
-DexDescription_Linoone_1:
- .string "LINOONE always runs full speed and only\nin straight lines. If facing an obstacle,\nit makes a right-angle turn to evade it.$"
-DexDescription_Linoone_2:
- .string "This POKéMON is very challenged by\ngently curving roads.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Wurmple_1:
- .string "WURMPLE is targeted by SWELLOW as\nprey. This POKéMON will try to resist by\npointing the spikes on its rear at the$"
-DexDescription_Wurmple_2:
- .string "attacking predator.\nIt will weaken the foe by leaking poison\nfrom the spikes.$"
- .else
-DexDescription_Wurmple_1:
- .string "Using the spikes on its rear end, \nWURMPLE peels the bark off trees and\nfeeds on the sap that oozes out.$"
-DexDescription_Wurmple_2:
- .string "This POKéMON’s feet are tipped with\nsuction pads that allow it to cling to\nglass without slipping.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Silcoon_1:
- .string "SILCOON was thought to endure hunger\nand not consume anything before its\nevolution. However, it is now thought$"
-DexDescription_Silcoon_2:
- .string "that this POKéMON slakes its thirst by\ndrinking rainwater that collects on its\nsilk.$"
- .else
-DexDescription_Silcoon_1:
- .string "SILCOON tethers itself to a tree branch\nusing silk to keep from falling. There, \nthis POKéMON hangs quietly while it$"
-DexDescription_Silcoon_2:
- .string "awaits evolution.\nIt peers out of the silk cocoon through\na small hole.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Beautifly_1:
- .string "BEAUTIFLY has a long mouth like a coiled\nneedle, which is very convenient for\ncollecting pollen from flowers.$"
-DexDescription_Beautifly_2:
- .string "This POKéMON rides the spring winds as\nit flits around gathering pollen.$"
- .else
-DexDescription_Beautifly_1:
- .string "BEAUTIFLY’s favorite food is the sweet\npollen of flowers. If you want to see\nthis POKéMON, just leave a potted$"
-DexDescription_Beautifly_2:
- .string "flower by an open window. BEAUTIFLY\nis sure to come looking for pollen.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Cascoon_1:
- .string "If it is attacked, CASCOON remains\nmotionless however badly it may be\nhurt. It does so because if it were to$"
-DexDescription_Cascoon_2:
- .string "move, its body would be weak upon\nevolution. This POKéMON will also not\nforget the pain it endured.$"
- .else
-DexDescription_Cascoon_1:
- .string "CASCOON makes its protective cocoon\nby wrapping its body entirely with a\nfine silk from its mouth. Once the silk$"
-DexDescription_Cascoon_2:
- .string "goes around its body, it hardens.\nThis POKéMON prepares for its evolution\ninside the cocoon.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Dustox_1:
- .string "When DUSTOX flaps its wings, a fine\ndust is scattered all over. This dust is\nactually a powerful poison that will$"
-DexDescription_Dustox_2:
- .string "even make a pro wrestler sick.\nThis POKéMON searches for food using\nits antennae like radar.$"
- .else
-DexDescription_Dustox_1:
- .string "DUSTOX is instinctively drawn to light.\nSwarms of this POKéMON are attracted\nby the bright lights of cities, where$"
-DexDescription_Dustox_2:
- .string "they wreak havoc by stripping the\nleaves off roadside trees for food.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Lotad_1:
- .string "LOTAD is said to have dwelled on land\nbefore. However, this POKéMON is\nthought to have returned to water$"
-DexDescription_Lotad_2:
- .string "because the leaf on its head grew large\nand heavy. It now lives by floating\natop the water.$"
- .else
-DexDescription_Lotad_1:
- .string "LOTAD live in ponds and lakes, where\nthey float on the surface.\nIt grows weak if its broad leaf dies.$"
-DexDescription_Lotad_2:
- .string "On rare occasions, this POKéMON travels\non land in search of clean water.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Lombre_1:
- .string "LOMBRE’s entire body is covered by a\nslippery, slimy film. It feels horribly\nunpleasant to be touched by this$"
-DexDescription_Lombre_2:
- .string "POKéMON’s hands.\nLOMBRE is often mistaken for a human\nchild.$"
- .else
-DexDescription_Lombre_1:
- .string "LOMBRE is nocturnal - it will get active\nafter dusk. It is also a mischief-maker.\nWhen this POKéMON spots anglers,$"
-DexDescription_Lombre_2:
- .string "it tugs on their fishing lines from\nbeneath the surface and enjoys their\nconsternation.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Ludicolo_1:
- .string "Upon hearing an upbeat and cheerful\nrhythm, the cells in LUDICOLO’s body\nbecome very energetic and active.$"
-DexDescription_Ludicolo_2:
- .string "Even in battle, this POKéMON will\nexhibit an amazing amount of power.$"
- .else
-DexDescription_Ludicolo_1:
- .string "LUDICOLO begins dancing as soon as\nit hears cheerful, festive music.\nThis POKéMON is said to appear when it$"
-DexDescription_Ludicolo_2:
- .string "hears the singing of children on hiking\noutings.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Seedot_1:
- .string "SEEDOT looks exactly like an acorn\nwhen it is dangling from a tree branch.\nIt startles other POKéMON by suddenly$"
-DexDescription_Seedot_2:
- .string "moving.\nThis POKéMON polishes its body once a\nday using leaves.$"
- .else
-DexDescription_Seedot_1:
- .string "SEEDOT attaches itself to a tree\nbranch using the top of its head.\nIt sucks moisture from the tree while$"
-DexDescription_Seedot_2:
- .string "hanging off the branch.\nThe more water it drinks, the glossier\nthis POKéMON’s body becomes.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Nuzleaf_1:
- .string "This POKéMON pulls out the leaf on its\nhead and makes a flute with it.\nThe sound of NUZLEAF’s flute strikes$"
-DexDescription_Nuzleaf_2:
- .string "fear and uncertainty in the hearts of\npeople lost in a forest.$"
- .else
-DexDescription_Nuzleaf_1:
- .string "NUZLEAF live in densely overgrown\nforests. They occasionally venture out\nof the forest to startle people.$"
-DexDescription_Nuzleaf_2:
- .string "This POKéMON dislikes having its long\nnose pinched.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Shiftry_1:
- .string "SHIFTRY’s large fans generate awesome\ngusts of wind at a speed close to 100\nfeet per second. The whipped-up wind$"
-DexDescription_Shiftry_2:
- .string "blows anything away.\nThis POKéMON chooses to live quietly\ndeep in forests.$"
- .else
-DexDescription_Shiftry_1:
- .string "SHIFTRY is a mysterious POKéMON that\nis said to live atop towering trees \ndating back over a thousand years.$"
-DexDescription_Shiftry_2:
- .string "It creates terrific windstorms with\nthe fans it holds.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Taillow_1:
- .string "TAILLOW is young - it has only just\nleft its nest. As a result, it sometimes\nbecomes lonesome and cries at night.$"
-DexDescription_Taillow_2:
- .string "This POKéMON feeds on WURMPLE that\nlive in forests.$"
- .else
-DexDescription_Taillow_1:
- .string "TAILLOW courageously stands its\nground against foes, however strong\nthey may be.$"
-DexDescription_Taillow_2:
- .string "This gutsy POKéMON will remain defiant\neven after a loss. On the other hand,\nit cries loudly if it becomes hungry.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Swellow_1:
- .string "SWELLOW is very conscientious about\nthe upkeep of its glossy wings.\nOnce two SWELLOW are gathered, they$"
-DexDescription_Swellow_2:
- .string "diligently take care of cleaning each\nother’s wings.$"
- .else
-DexDescription_Swellow_1:
- .string "SWELLOW flies high above our heads,\nmaking graceful arcs in the sky.\nThis POKéMON dives at a steep angle as$"
-DexDescription_Swellow_2:
- .string "soon as it spots its prey. The hapless\nprey is tightly grasped by SWELLOW’s\nclawed feet, preventing escape.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Wingull_1:
- .string "WINGULL rides updrafts rising from the\nsea by extending its long and narrow\nwings to glide.$"
-DexDescription_Wingull_2:
- .string "This POKéMON’s long beak is useful for\ncatching prey.$"
- .else
-DexDescription_Wingull_1:
- .string "WINGULL has the habit of carrying prey\nand valuables in its beak and hiding\nthem in all sorts of locations.$"
-DexDescription_Wingull_2:
- .string "This POKéMON rides the winds and flies\nas if it were skating across the sky.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Pelipper_1:
- .string "PELIPPER searches for food while in\nflight by skimming the wave tops.\nThis POKéMON dips its large bill in the$"
-DexDescription_Pelipper_2:
- .string "sea to scoop up food, then swallows\neverything in one big gulp.$"
- .else
-DexDescription_Pelipper_1:
- .string "PELIPPER is a flying transporter that\ncarries small POKéMON and eggs inside\nits massive bill.$"
-DexDescription_Pelipper_2:
- .string "This POKéMON builds its nest on steep\ncliffs facing the sea.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Ralts_1:
- .string "RALTS has the ability to sense the\nemotions of people.\nIf its TRAINER is in a cheerful mood,$"
-DexDescription_Ralts_2:
- .string "this POKéMON grows cheerful and joyous\nin the same way.$"
- .else
-DexDescription_Ralts_1:
- .string "RALTS senses the emotions of\npeople using the horns on its head.\nThis POKéMON rarely appears before$"
-DexDescription_Ralts_2:
- .string "people. But when it does, it draws\ncloser if it senses that the person has\na positive disposition.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Kirlia_1:
- .string "KIRLIA uses the horns on its head\nto amplify its psychokinetic power.\nWhen the POKéMON uses its power,$"
-DexDescription_Kirlia_2:
- .string "the air around it becomes distorted,\ncreating mirages of nonexistent\nscenery.$"
- .else
-DexDescription_Kirlia_1:
- .string "It is said that a KIRLIA that is\nexposed to the positive emotions of\nits TRAINER grows beautiful.$"
-DexDescription_Kirlia_2:
- .string "This POKéMON controls psychokinetic\npowers with its highly developed brain.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Gardevoir_1:
- .string "GARDEVOIR has the psychokinetic\npower to distort the dimensions and\ncreate a small black hole.$"
-DexDescription_Gardevoir_2:
- .string "This POKéMON will try to protect its\nTRAINER even at the risk of its own\nlife.$"
- .else
-DexDescription_Gardevoir_1:
- .string "GARDEVOIR has the ability to read the\nfuture. If it senses impending danger\nto its TRAINER, this POKéMON is said to$"
-DexDescription_Gardevoir_2:
- .string "unleash its psychokinetic energy at\nfull power.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Surskit_1:
- .string "If SURSKIT senses danger, it secretes\na thick, sugary syrup from the tip of\nits head.$"
-DexDescription_Surskit_2:
- .string "There are some POKéMON that love\neating this syrup.$"
- .else
-DexDescription_Surskit_1:
- .string "From the tips of its feet, SURSKIT\nsecretes an oil that enables it to walk\non water as if it were skating.$"
-DexDescription_Surskit_2:
- .string "This POKéMON feeds on microscopic\norganisms in ponds and lakes.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Masquerain_1:
- .string "MASQUERAIN’s antennas have eyelike\npatterns that usually give it an angry\nlook. If the “eyes” are droopy and$"
-DexDescription_Masquerain_2:
- .string "appear sad, it is said to be a sign\nthat a heavy rainfall is on its way.$"
- .else
-DexDescription_Masquerain_1:
- .string "MASQUERAIN intimidates enemies with\nthe eyelike patterns on its antennas.\nThis POKéMON flaps its four wings to$"
-DexDescription_Masquerain_2:
- .string "freely fly in any direction - even\nsideways and backwards - as if it were\na helicopter.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Shroomish_1:
- .string "If SHROOMISH senses danger, it shakes\nits body and scatters spores from the\ntop of its head.$"
-DexDescription_Shroomish_2:
- .string "This POKéMON’s spores are so toxic,\nthey make trees and weeds wilt.$"
- .else
-DexDescription_Shroomish_1:
- .string "SHROOMISH live in damp soil in the dark\ndepths of forests. They are often\nfound keeping still under fallen leaves.$"
-DexDescription_Shroomish_2:
- .string "This POKéMON feeds on compost that\nis made up of fallen, rotted leaves.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Breloom_1:
- .string "The seeds ringing BRELOOM’s tail are\nmade of hardened toxic spores. It is\nhorrible to eat the seeds.$"
-DexDescription_Breloom_2:
- .string "Just taking a bite of this POKéMON’s\nseed will cause your stomach to rumble.$"
- .else
-DexDescription_Breloom_1:
- .string "BRELOOM closes in on its foe with light\nand sprightly footwork, then throws\npunches with its stretchy arms.$"
-DexDescription_Breloom_2:
- .string "This POKéMON’s fighting technique puts\nboxers to shame.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Slakoth_1:
- .string "SLAKOTH’s heart beats just once a\nminute. Whatever happens, it is\ncontent to loaf around motionless.$"
-DexDescription_Slakoth_2:
- .string "It is rare to see this POKéMON in\nmotion.$"
- .else
-DexDescription_Slakoth_1:
- .string "SLAKOTH lolls around for over twenty\nhours every day. Because it moves so\nlittle, it does not need much food.$"
-DexDescription_Slakoth_2:
- .string "This POKéMON’s sole daily meal consists\nof just three leaves.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Vigoroth_1:
- .string "VIGOROTH is simply incapable of\nremaining still. Even when it tries to\nsleep, the blood in its veins grows$"
-DexDescription_Vigoroth_2:
- .string "agitated, compelling this POKéMON to\nrun wild throughout the jungle before\nit can settle down.$"
- .else
-DexDescription_Vigoroth_1:
- .string "VIGOROTH is always itching and agitated\nto go on a wild rampage. It simply can’t\ntolerate sitting still for even a minute.$"
-DexDescription_Vigoroth_2:
- .string "This POKéMON’s stress level rises if it\ncan’t be moving constantly.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Slaking_1:
- .string "Wherever SLAKING live, rings of over\na yard in diameter appear in grassy\nfields. They are made by the POKéMON$"
-DexDescription_Slaking_2:
- .string "as it eats all the grass within reach\nwhile lying prone on the ground.$"
- .else
-DexDescription_Slaking_1:
- .string "SLAKING spends all day lying down and\nlolling about.\nIt eats grass growing within its reach.$"
-DexDescription_Slaking_2:
- .string "If it eats all the grass it can reach,\nthis POKéMON reluctantly moves to\nanother spot.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Nincada_1:
- .string "NINCADA lives underground. It uses its\nsharp claws to carve the roots of trees\nand absorb moisture and nutrients.$"
-DexDescription_Nincada_2:
- .string "This POKéMON can’t withstand bright\nsunlight so avoids it.$"
- .else
-DexDescription_Nincada_1:
- .string "NINCADA lives underground for many\nyears in complete darkness.\nThis POKéMON absorbs nutrients from$"
-DexDescription_Nincada_2:
- .string "the roots of trees. It stays motionless\nas it waits for evolution.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Ninjask_1:
- .string "If NINJASK is not trained properly,\nit will refuse to obey the TRAINER and\ncry loudly continuously.$"
-DexDescription_Ninjask_2:
- .string "Because of this quality, this POKéMON\nis said to be one that puts the\nTRAINER’s abilities to the test.$"
- .else
-DexDescription_Ninjask_1:
- .string "NINJASK moves around at such a high\nspeed that it cannot be seen, even\nwhile its crying can be clearly heard.$"
-DexDescription_Ninjask_2:
- .string "For that reason, this POKéMON was long\nbelieved to be invisible.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Shedinja_1:
- .string "SHEDINJA is a peculiar POKéMON.\nIt seems to appear unsought in a POKé\nBALL after a NINCADA evolves.$"
-DexDescription_Shedinja_2:
- .string "This bizarre POKéMON is entirely\nimmobile - it doesn’t even breathe.$"
- .else
-DexDescription_Shedinja_1:
- .string "SHEDINJA’s hard body doesn’t move -\nnot even a twitch. In fact, its body\nappears to be merely a hollow shell.$"
-DexDescription_Shedinja_2:
- .string "It is believed that this POKéMON will\nsteal the spirit of anyone peering into\nits hollow body from its back.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Whismur_1:
- .string "WHISMUR is very timid. If it starts to\ncry loudly, it becomes startled by its\nown crying and cries even harder.$"
-DexDescription_Whismur_2:
- .string "When it finally stops crying, the\nPOKéMON goes to sleep, all tired out.$"
- .else
-DexDescription_Whismur_1:
- .string "Normally, WHISMUR’s voice is very quiet -\nit is barely audible even if one is\npaying close attention.$"
-DexDescription_Whismur_2:
- .string "However, if this POKéMON senses danger,\nit starts crying at an earsplitting\nvolume.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Loudred_1:
- .string "LOUDRED shouts while stamping its feet.\nAfter it finishes shouting, this\nPOKéMON becomes incapable of hearing$"
-DexDescription_Loudred_2:
- .string "anything for a while. This is considered\nto be a weak point.$"
- .else
-DexDescription_Loudred_1:
- .string "LOUDRED’s bellowing can completely\ndecimate a wood-frame house. It uses\nits voice to punish its foes.$"
-DexDescription_Loudred_2:
- .string "This POKéMON’s round ears serve as\nloudspeakers.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Exploud_1:
- .string "EXPLOUD communicates its feelings to\nthe others by emitting whistle-like\nsounds from the tubes on its body.$"
-DexDescription_Exploud_2:
- .string "This POKéMON only raises its voice when\nit is in battle.$"
- .else
-DexDescription_Exploud_1:
- .string "EXPLOUD triggers earthquakes with the\ntremors it creates by bellowing. If this\nPOKéMON violently inhales from the$"
-DexDescription_Exploud_2:
- .string "ports on its body, it’s a sign that it is\npreparing to let loose a huge bellow.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Makuhita_1:
- .string "MAKUHITA has a tireless spirit -\nit will never give up hope. It eats a lot\nof food, gets plenty of sleep, and it$"
-DexDescription_Makuhita_2:
- .string "trains very rigorously. By living that\nway, this POKéMON packs its body with\nenergy.$"
- .else
-DexDescription_Makuhita_1:
- .string "MAKUHITA is tenacious - it will keep\ngetting up and attacking its foe\nhowever many times it is knocked down.$"
-DexDescription_Makuhita_2:
- .string "Every time it gets back up, this\nPOKéMON stores more energy in its body\nfor evolving.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Hariyama_1:
- .string "HARIYAMA’s thick body may appear fat,\nbut it is actually a hunk of solid muscle.\nIf this POKéMON bears down and$"
-DexDescription_Hariyama_2:
- .string "tightens all its muscles, its body\nbecomes as hard as a rock.$"
- .else
-DexDescription_Hariyama_1:
- .string "HARIYAMA practices its straight-arm\nslaps in any number of locations.\nOne hit of this POKéMON’s powerful,$"
-DexDescription_Hariyama_2:
- .string "openhanded, straight-arm punches\ncould snap a telephone pole in two.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Azurill_1:
- .string "AZURILL’s tail is large and bouncy.\nIt is packed full of the nutrients this\nPOKéMON needs to grow.$"
-DexDescription_Azurill_2:
- .string "AZURILL can be seen bouncing and\nplaying on its big, rubbery tail.$"
- .else
-DexDescription_Azurill_1:
- .string "AZURILL spins its tail as if it were a\nlasso, then hurls it far. The momentum\nof the throw sends its body flying, too.$"
-DexDescription_Azurill_2:
- .string "Using this unique action, one of these\nPOKéMON managed to hurl itself a record\n33 feet.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Nosepass_1:
- .string "NOSEPASS had been said to be completely\nunmoving, with its magnetic nose\npointed due north.$"
-DexDescription_Nosepass_2:
- .string "However, close observation has revealed\nthat the POKéMON actually moves by a\nlittle over 3/8 of an inch every year.$"
- .else
-DexDescription_Nosepass_1:
- .string "NOSEPASS’s magnetic nose is always\npointed to the north. If two of these\nPOKéMON meet, they cannot turn$"
-DexDescription_Nosepass_2:
- .string "their faces to each other when they\nare close because their magnetic noses\nrepel one another.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Skitty_1:
- .string "SKITTY is known to chase around\nplayfully after its own tail. In the wild,\nthis POKéMON lives in holes in the trees$"
-DexDescription_Skitty_2:
- .string "of forests. It is very popular as a pet\nbecause of its adorable looks.$"
- .else
-DexDescription_Skitty_1:
- .string "SKITTY has the habit of becoming\nfascinated by moving objects and\nchasing them around.$"
-DexDescription_Skitty_2:
- .string "This POKéMON is known to chase after\nits own tail and become dizzy.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Delcatty_1:
- .string "DELCATTY sleeps anywhere it wants\nwithout keeping a permanent nest.\nIf other POKéMON approach it as it$"
-DexDescription_Delcatty_2:
- .string "sleeps, this POKéMON will never fight -\nit will just move away somewhere else.$"
- .else
-DexDescription_Delcatty_1:
- .string "DELCATTY prefers to live an unfettered\nexistence in which it can do as it\npleases at its own pace.$"
-DexDescription_Delcatty_2:
- .string "Because this POKéMON eats and sleeps\nwhenever it decides, its daily routines\nare completely random.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Sableye_1:
- .string "SABLEYE digs the ground with sharpened\nclaws to find rocks that it eats.\nSubstances in the eaten rocks$"
-DexDescription_Sableye_2:
- .string "crystallize and rise up to the POKéMON’s\nbody surface.$"
- .else
-DexDescription_Sableye_1:
- .string "SABLEYE lead quiet lives deep inside\ncaverns. They are feared, however,\nbecause these POKéMON are thought to$"
-DexDescription_Sableye_2:
- .string "steal the spirits of people when their\neyes burn with a sinister glow in the\ndarkness.$"
- .endif
-
- .ifdef SAPPHIRE
-
-DexDescription_Mawile_1:
- .string "Don’t be taken in by this POKéMON’s\ncute face - it’s very dangerous. MAWILE\nfools the foe into letting down its$"
-DexDescription_Mawile_2:
- .string "guard, then chomps down with its\nmassive jaws. The steel jaws are really\nhorns that have been transformed.$"
-
- .else
-
- .if REVISION >= 1
-DexDescription_Mawile_1:
- .string "MAWILE’s huge jaws are actually steel\nhorns that have been transformed.\nIts docile-looking face serves to lull$"
-DexDescription_Mawile_2:
- .string "its foe into letting down its guard.\nWhen the foe least expects it, MAWILE\nchomps it with its gaping jaws.$"
- .else
-DexDescription_Mawile_1:
- .string "MAWHILE’s huge jaws are actually steel\nhorns that have been transformed.\nIts docile-looking face serves to lull$"
-DexDescription_Mawile_2:
- .string "its foe into letting down its guard.\nWhen the foe least expects it, MAWHILE\nchomps it with its gaping jaws.$"
- .endif @ REVISION >= 1
-
- .endif @ SAPPHIRE
-
- .ifdef SAPPHIRE
-DexDescription_Aron_1:
- .string "ARON has a body of steel.\nWith one all-out charge, this POKéMON\ncan demolish even a heavy dump truck.$"
-DexDescription_Aron_2:
- .string "The destroyed dump truck then becomes\na handy meal for the POKéMON.$"
- .else
-DexDescription_Aron_1:
- .string "This POKéMON has a body of steel.\nTo make its body, ARON feeds on\niron ore that it digs from mountains.$"
-DexDescription_Aron_2:
- .string "Occasionally, it causes major trouble by\neating bridges and rails.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Lairon_1:
- .string "LAIRON feeds on iron contained in\nrocks and water. It makes its nest on\nmountains where iron ore is buried.$"
-DexDescription_Lairon_2:
- .string "As a result, the POKéMON often clashes\nwith humans mining the iron ore.$"
- .else
-DexDescription_Lairon_1:
- .string "LAIRON tempers its steel body by\ndrinking highly nutritious mineral\nspringwater until it is bloated.$"
-DexDescription_Lairon_2:
- .string "This POKéMON makes its nest close to\nsprings of delicious water.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Aggron_1:
- .string "AGGRON is surprisingly protective\nof its environment. If its mountain\nis ravaged by a landslide or a fire, this$"
-DexDescription_Aggron_2:
- .string "POKéMON will haul topsoil to the area,\nplant trees, and beautifully restore its\nown territory.$"
- .else
-DexDescription_Aggron_1:
- .string "AGGRON claims an entire mountain as its\nown territory. It mercilessly beats up\nanything that violates its environment.$"
-DexDescription_Aggron_2:
- .string "This POKéMON vigilantly patrols its\nterritory at all times.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Meditite_1:
- .string "MEDITITE heightens its inner energy\nthrough meditation. It survives on\njust one berry a day.$"
-DexDescription_Meditite_2:
- .string "Minimal eating is another aspect of\nthis POKéMON’s training.$"
- .else
-DexDescription_Meditite_1:
- .string "MEDITITE undertakes rigorous mental\ntraining deep in the mountains.\nHowever, whenever it meditates, this$"
-DexDescription_Meditite_2:
- .string "POKéMON always loses its concentration\nand focus. As a result, its training\nnever ends.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Medicham_1:
- .string "Through the power of meditation,\nMEDICHAM developed its sixth sense.\nIt gained the ability to use$"
-DexDescription_Medicham_2:
- .string "psychokinetic powers. This POKéMON is\nknown to meditate for a whole month\nwithout eating.$"
- .else
-DexDescription_Medicham_1:
- .string "It is said that through meditation,\nMEDICHAM heightens energy inside\nits body and sharpens its sixth sense.$"
-DexDescription_Medicham_2:
- .string "This POKéMON hides its presence by\nmerging itself with fields and\nmountains.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Electrike_1:
- .string "ELECTRIKE runs faster than the human\neye can follow. The friction from\nrunning is converted into electricity,$"
-DexDescription_Electrike_2:
- .string "which is then stored in this POKéMON’s\nfur.$"
- .else
-DexDescription_Electrike_1:
- .string "ELECTRIKE stores electricity in its\nlong body hair. This POKéMON stimulates\nits leg muscles with electric charges.$"
-DexDescription_Electrike_2:
- .string "These jolts of power give its legs\nexplosive acceleration performance.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Manectric_1:
- .string "MANECTRIC discharges strong\nelectricity from its mane. The mane is\nused for collecting electricity in the$"
-DexDescription_Manectric_2:
- .string "atmosphere. This POKéMON creates\nthunderclouds above its head.$"
- .else
-DexDescription_Manectric_1:
- .string "MANECTRIC is constantly discharging\nelectricity from its mane. The sparks\nsometimes ignite forest fires.$"
-DexDescription_Manectric_2:
- .string "When it enters a battle, this POKéMON\ncreates thunderclouds.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Plusle_1:
- .string "When PLUSLE is cheering on its partner,\nit flashes with electric sparks from all\nover its body.$"
-DexDescription_Plusle_2:
- .string "If its partner loses, this POKéMON cries\nloudly.$"
- .else
-DexDescription_Plusle_1:
- .string "PLUSLE always acts as a cheerleader\nfor its partners. Whenever a teammate\nputs out a good effort in battle, this$"
-DexDescription_Plusle_2:
- .string "POKéMON shorts out its body to create\nthe crackling noises of sparks to show\nits joy.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Minun_1:
- .string "MINUN loves to cheer on its partner in\nbattle. It gives off sparks from its\nbody while it is doing so.$"
-DexDescription_Minun_2:
- .string "If its partner is in trouble, this\nPOKéMON gives off increasing amounts\nof sparks.$"
- .else
-DexDescription_Minun_1:
- .string "MINUN is more concerned about cheering\non its partners than its own safety.\nIt shorts out the electricity in its$"
-DexDescription_Minun_2:
- .string "body to create brilliant showers of\nsparks to cheer on its teammates.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Volbeat_1:
- .string "VOLBEAT’s tail glows like a lightbulb.\nWith other VOLBEAT, it uses its tail to\ndraw geometric shapes in the night sky.$"
-DexDescription_Volbeat_2:
- .string "This POKéMON loves the sweet aroma\ngiven off by ILLUMISE.$"
- .else
-DexDescription_Volbeat_1:
- .string "With the arrival of night, VOLBEAT emits\nlight from its tail. It communicates with\nothers by adjusting the intensity and$"
-DexDescription_Volbeat_2:
- .string "flashing of its light.\nThis POKéMON is attracted by the sweet\naroma of ILLUMISE.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Illumise_1:
- .string "ILLUMISE leads a flight of illuminated\nVOLBEAT to draw signs in the night sky.\nThis POKéMON is said to earn greater$"
-DexDescription_Illumise_2:
- .string "respect from its peers by composing\nmore complex designs in the sky.$"
- .else
-DexDescription_Illumise_1:
- .string "ILLUMISE attracts a swarm of VOLBEAT\nusing a sweet fragrance. Once the\nVOLBEAT have gathered, this POKéMON$"
-DexDescription_Illumise_2:
- .string "leads the lit-up swarm in drawing\ngeometric designs on the canvas of\nthe night sky.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Roselia_1:
- .string "On extremely rare occasions, a ROSELIA\nis said to appear with its flowers in\nunusual colors.$"
-DexDescription_Roselia_2:
- .string "The thorns on this POKéMON’s head\ncontain a vicious poison.$"
- .else
-DexDescription_Roselia_1:
- .string "ROSELIA shoots sharp thorns as\nprojectiles at any opponent that tries\nto steal the flowers on its arms.$"
-DexDescription_Roselia_2:
- .string "The aroma of this POKéMON brings\nserenity to living things.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Gulpin_1:
- .string "Most of GULPIN’s body is made up of its\nstomach - its heart and brain are very\nsmall in comparison.$"
-DexDescription_Gulpin_2:
- .string "This POKéMON’s stomach contains\nspecial enzymes that dissolve anything.$"
- .else
-DexDescription_Gulpin_1:
- .string "Virtually all of GULPIN’s body is its\nstomach. As a result, it can swallow\nsomething its own size.$"
-DexDescription_Gulpin_2:
- .string "This POKéMON’s stomach contains a\nspecial fluid that digests anything.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Swalot_1:
- .string "SWALOT has no teeth, so what it\neats, it swallows whole, no matter what.\nIts cavernous mouth yawns widely.$"
-DexDescription_Swalot_2:
- .string "An automobile tire could easily fit\ninside this POKéMON’s mouth.$"
- .else
-DexDescription_Swalot_1:
- .string "When SWALOT spots prey, it spurts out\na hideously toxic fluid from its pores\nand sprays the target.$"
-DexDescription_Swalot_2:
- .string "Once the prey has weakened, this\nPOKéMON gulps it down whole with its\ncavernous mouth.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Carvanha_1:
- .string "If anything invades CARVANHA’s\nterritory, it will swarm and tear at the\nintruder with its pointed fangs.$"
-DexDescription_Carvanha_2:
- .string "On its own, however, this POKéMON turns\nsuddenly timid.$"
- .else
-DexDescription_Carvanha_1:
- .string "CARVANHA’s strongly developed jaws\nand its sharply pointed fangs pack the\ndestructive power to rip out boat hulls.$"
-DexDescription_Carvanha_2:
- .string "Many boats have been attacked and\nsunk by this POKéMON.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Sharpedo_1:
- .string "SHARPEDO can swim at speeds of up to\n75 mph by jetting seawater out of its\nbackside.$"
-DexDescription_Sharpedo_2:
- .string "This POKéMON’s drawback is its inability\nto swim long distances.$"
- .else
-DexDescription_Sharpedo_1:
- .string "Nicknamed “the bully of the sea,”\nSHARPEDO is widely feared.\nIts cruel fangs grow back immediately$"
-DexDescription_Sharpedo_2:
- .string "if they snap off.\nJust one of these POKéMON can\nthoroughly tear apart a supertanker.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Wailmer_1:
- .string "WAILMER can store water inside its body\nto transform itself into a ball for\nbouncing around on the ground.$"
-DexDescription_Wailmer_2:
- .string "By filling itself up with more water, this\nPOKéMON can elevate the height of its\nbounces.$"
- .else
-DexDescription_Wailmer_1:
- .string "WAILMER’s nostrils are located above\nits eyes. This playful POKéMON loves\nto startle people by forcefully snorting$"
-DexDescription_Wailmer_2:
- .string "out seawater it stores inside its body\nout of its nostrils.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Wailord_1:
- .string "When chasing prey, WAILORD herds them\nby leaping out of the water and making\na humongous splash.$"
-DexDescription_Wailord_2:
- .string "It is breathtaking to see this POKéMON\nleaping out of the sea with others in\nits pod.$"
- .else
-DexDescription_Wailord_1:
- .string "WAILORD is the largest of all identified\nPOKéMON up to now.\nThis giant POKéMON swims languorously$"
-DexDescription_Wailord_2:
- .string "in the vast open sea, eating massive\namounts of food at once with its\nenormous mouth.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Numel_1:
- .string "NUMEL stores magma of almost 2,200\ndegrees F within its body. If it gets\nwet, the magma cools and hardens.$"
-DexDescription_Numel_2:
- .string "In that event, the POKéMON’s body\ngrows heavy and its movements become\nsluggish.$"
- .else
-DexDescription_Numel_1:
- .string "NUMEL is extremely dull witted - it\ndoesn’t notice being hit. However, it\ncan’t stand hunger for even a second.$"
-DexDescription_Numel_2:
- .string "This POKéMON’s body is a seething\ncauldron of boiling magma.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Camerupt_1:
- .string "The humps on CAMERUPT’s back are\nformed by a transformation of its\nbones. They sometimes blast out molten$"
-DexDescription_Camerupt_2:
- .string "magma. This POKéMON apparently erupts\noften when it is enraged.$"
- .else
-DexDescription_Camerupt_1:
- .string "CAMERUPT has a volcano inside its body.\nMagma of 18,000 degrees F courses\nthrough its body.$"
-DexDescription_Camerupt_2:
- .string "Occasionally, the humps on this\nPOKéMON’s back erupt, spewing the\nsuperheated magma.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Torkoal_1:
- .string "TORKOAL generates energy by burning\ncoal. It grows weaker as the fire\ndies down.$"
-DexDescription_Torkoal_2:
- .string "When it is preparing for battle, this\nPOKéMON burns more coal.$"
- .else
-DexDescription_Torkoal_1:
- .string "TORKOAL digs through mountains in\nsearch of coal. If it finds some, it fills\nhollow spaces on its shell with the coal$"
-DexDescription_Torkoal_2:
- .string "and burns it.\nIf it is attacked, this POKéMON spouts\nthick black smoke to beat a retreat.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Spoink_1:
- .string "SPOINK keeps a pearl on top of its head.\nThe pearl functions to amplify this\nPOKéMON’s psychokinetic powers.$"
-DexDescription_Spoink_2:
- .string "It is therefore on a constant search\nfor a bigger pearl.$"
- .else
-DexDescription_Spoink_1:
- .string "SPOINK bounces around on its tail.\nThe shock of its bouncing makes its\nheart pump. As a result, this POKéMON$"
-DexDescription_Spoink_2:
- .string "cannot afford to stop bouncing - if it\nstops, its heart will stop.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Grumpig_1:
- .string "GRUMPIG uses the black pearls on its\nbody to wield its fantastic powers.\nWhen it is doing so, it dances bizarrely.$"
-DexDescription_Grumpig_2:
- .string "This POKéMON’s black pearls are valuable\nas works of art.$"
- .else
-DexDescription_Grumpig_1:
- .string "GRUMPIG uses the black pearls on its\nbody to amplify its psychic power waves\nfor gaining total control over its foe.$"
-DexDescription_Grumpig_2:
- .string "When this POKéMON uses its special\npower, its snorting breath grows\nlabored.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Spinda_1:
- .string "No two SPINDA are said to have\nidentical spot patterns on their hides.\nThis POKéMON moves in a curious manner$"
-DexDescription_Spinda_2:
- .string "as if it is stumbling in dizziness.\nIts lurching movements can cause the\nopponent to become confused.$"
- .else
-DexDescription_Spinda_1:
- .string "All the SPINDA that exist in the\nworld are said to have utterly unique\nspot patterns.$"
-DexDescription_Spinda_2:
- .string "The shaky, tottering steps of this\nPOKéMON give it the appearance of\ndancing.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Trapinch_1:
- .string "TRAPINCH is a patient hunter. It digs\nan inescapable pit in a desert and waits\nfor its prey to come tumbling down.$"
-DexDescription_Trapinch_2:
- .string "This POKéMON can go a whole week\nwithout access to any water.$"
- .else
-DexDescription_Trapinch_1:
- .string "TRAPINCH’s nest is a sloped, bowl-like\npit dug in sand. This POKéMON patiently\nwaits for prey to tumble down the pit.$"
-DexDescription_Trapinch_2:
- .string "Its giant jaws have enough strength\nto crush even boulders.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Vibrava_1:
- .string "VIBRAVA’s wings have not yet\ncompleted the process of growing.\nRather than flying long distances,$"
-DexDescription_Vibrava_2:
- .string "they are more useful for generating\nultrasonic waves by vibrating.$"
- .else
-DexDescription_Vibrava_1:
- .string "To make prey faint, VIBRAVA generates\nultrasonic waves by vigorously making\nits two wings vibrate.$"
-DexDescription_Vibrava_2:
- .string "This POKéMON’s ultrasonic waves are so\npowerful, they can bring on headaches\nin people.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Flygon_1:
- .string "FLYGON whips up a sandstorm by\nflapping its wings. The wings create a\nseries of notes that sound like singing.$"
-DexDescription_Flygon_2:
- .string "Because the “singing” is the only thing\nthat can be heard in a sandstorm, this\nPOKéMON is said to be the desert spirit.$"
- .else
-DexDescription_Flygon_1:
- .string "FLYGON is nicknamed “the elemental \nspirit of the desert.” Because its\nflapping wings whip up a cloud of sand,$"
-DexDescription_Flygon_2:
- .string "this POKéMON is always enveloped in a\nsandstorm while flying.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Cacnea_1:
- .string "The more arid and harsh the\nenvironment, the more pretty and\nfragrant a flower CACNEA grows.$"
-DexDescription_Cacnea_2:
- .string "This POKéMON battles by wildly swinging\nits thorny arms.$"
- .else
-DexDescription_Cacnea_1:
- .string "CACNEA lives in arid locations such\nas deserts. It releases a strong aroma\nfrom its flower to attract prey.$"
-DexDescription_Cacnea_2:
- .string "When prey comes near, this POKéMON\nshoots sharp thorns from its body to\nbring the victim down.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Cacturne_1:
- .string "If a traveler is going through a desert\nin the thick of night, CACTURNE\nwill follow in a ragtag group.$"
-DexDescription_Cacturne_2:
- .string "The POKéMON are biding their time,\nwaiting for the traveler to tire and\nbecome incapable of moving.$"
- .else
-DexDescription_Cacturne_1:
- .string "During the daytime, CACTURNE remains\nunmoving so that it does not lose any\nmoisture to the harsh desert sun.$"
-DexDescription_Cacturne_2:
- .string "This POKéMON becomes active at night\nwhen the temperature drops.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Swablu_1:
- .string "SWABLU loves to make things clean.\nIf it spots something dirty, it will wipe\nand polish it with its cottony wings.$"
-DexDescription_Swablu_2:
- .string "If its wings become dirty, this POKéMON\nfinds a stream and showers itself.$"
- .else
-DexDescription_Swablu_1:
- .string "SWABLU has light and fluffy wings that\nare like cottony clouds. This POKéMON\nis not frightened of people.$"
-DexDescription_Swablu_2:
- .string "It lands on the heads of people and\nsits there like a cotton-fluff hat.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Altaria_1:
- .string "ALTARIA sings in a gorgeous soprano.\nIts wings are like cotton clouds.\nThis POKéMON catches updrafts with its$"
-DexDescription_Altaria_2:
- .string "buoyant wings and soars way up into\nthe wild blue yonder.$"
- .else
-DexDescription_Altaria_1:
- .string "ALTARIA dances and wheels through the\nsky among billowing, cotton-like clouds.\nBy singing melodies in its crystal-clear$"
-DexDescription_Altaria_2:
- .string "voice, this POKéMON makes its listeners\nexperience dreamy wonderment.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Zangoose_1:
- .string "ZANGOOSE usually stays on all fours,\nbut when angered, it gets up on its\nhind legs and extends its claws.$"
-DexDescription_Zangoose_2:
- .string "This POKéMON shares a bitter rivalry\nwith SEVIPER that dates back over\ngenerations.$"
- .else
-DexDescription_Zangoose_1:
- .string "Memories of battling its arch-rival\nSEVIPER are etched into every cell of\nZANGOOSE’s body.$"
-DexDescription_Zangoose_2:
- .string "This POKéMON adroitly dodges attacks\nwith incredible agility.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Seviper_1:
- .string "SEVIPER’s swordlike tail serves two\npurposes - it slashes foes and douses\nthem with secreted poison.$"
-DexDescription_Seviper_2:
- .string "This POKéMON will not give up its long-\nrunning blood feud with ZANGOOSE.$"
- .else
-DexDescription_Seviper_1:
- .string "SEVIPER shares a generations-long\nfeud with ZANGOOSE. The scars on its\nbody are evidence of vicious battles.$"
-DexDescription_Seviper_2:
- .string "This POKéMON attacks using its sword-\nedged tail.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Lunatone_1:
- .string "LUNATONE becomes active around the\ntime of the full moon. Instead of\nwalking, it moves by floating in midair.$"
-DexDescription_Lunatone_2:
- .string "The POKéMON’s intimidating red eyes\ncause all those who see it to become\ntransfixed with fear.$"
- .else
-DexDescription_Lunatone_1:
- .string "LUNATONE was discovered at a location\nwhere a meteorite fell. As a result, some\npeople theorize that this POKéMON$"
-DexDescription_Lunatone_2:
- .string "came from space. However, no one has\nbeen able to prove this theory so far.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Solrock_1:
- .string "Sunlight is the source of SOLROCK’s\npower. It is said to possess the ability\nto read the emotions of others.$"
-DexDescription_Solrock_2:
- .string "This POKéMON gives off intense heat\nwhile rotating its body.$"
- .else
-DexDescription_Solrock_1:
- .string "SOLROCK is a new species of POKéMON\nthat is said to have fallen from space.\nIt floats in air and moves silently.$"
-DexDescription_Solrock_2:
- .string "In battle, this POKéMON releases\nintensely bright light.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Barboach_1:
- .string "BARBOACH’s body is covered with a\nslimy film. If a foe grabs it, this\nPOKéMON just slips out of the enemy’s$"
-DexDescription_Barboach_2:
- .string "grip.\nThis POKéMON grows weak if the slimy\ncoating dries up.$"
- .else
-DexDescription_Barboach_1:
- .string "BARBOACH’s sensitive whiskers serve\nas a superb radar system.\nThis POKéMON hides in mud, leaving only$"
-DexDescription_Barboach_2:
- .string "its two whiskers exposed while it waits\nfor prey to come along.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Whiscash_1:
- .string "If WHISCASH goes on a wild rampage,\nit sets off a quake-like tremor with a\nradius of over three miles.$"
-DexDescription_Whiscash_2:
- .string "This POKéMON has the ability to predict\nreal earthquakes.$"
- .else
-DexDescription_Whiscash_1:
- .string "WHISCASH is extremely territorial.\nJust one of these POKéMON will claim a\nlarge pond as its exclusive territory.$"
-DexDescription_Whiscash_2:
- .string "If a foe approaches it, it thrashes\nabout and triggers a massive\nearthquake.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Corphish_1:
- .string "CORPHISH catches prey with its sharp\nclaws. It has no likes or dislikes when it\ncomes to food - it will eat anything.$"
-DexDescription_Corphish_2:
- .string "This POKéMON has no trouble living in\nfilthy water.$"
- .else
-DexDescription_Corphish_1:
- .string "CORPHISH were originally foreign\nPOKéMON that were imported as pets.\nThey eventually turned up in the wild.$"
-DexDescription_Corphish_2:
- .string "This POKéMON is very hardy and has\ngreatly increased its population.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Crawdaunt_1:
- .string "CRAWDAUNT molts (sheds) its shell\nregularly. Immediately after molting,\nits shell is soft and tender.$"
-DexDescription_Crawdaunt_2:
- .string "Until the shell hardens, this POKéMON\nhides in its streambed burrow to avoid\nattack from its foes.$"
- .else
-DexDescription_Crawdaunt_1:
- .string "CRAWDAUNT has an extremely violent\nnature that compels it to challenge\nother living things to battle.$"
-DexDescription_Crawdaunt_2:
- .string "Other life-forms refuse to live in\nponds inhabited by this POKéMON,\nmaking them desolate places.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Baltoy_1:
- .string "As soon as it spots others of its kind,\nBALTOY congregates with them and\nthen begins crying noisily in unison.$"
-DexDescription_Baltoy_2:
- .string "This POKéMON sleeps while cleverly\nbalancing itself on its one foot.$"
- .else
-DexDescription_Baltoy_1:
- .string "BALTOY moves while spinning around on\nits one foot. Primitive wall paintings\ndepicting this POKéMON living among$"
-DexDescription_Baltoy_2:
- .string "people were discovered in some ancient\nruins.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Claydol_1:
- .string "CLAYDOL is an enigma that appeared\nfrom a clay statue made by an ancient\ncivilization dating back 20,000 years.$"
-DexDescription_Claydol_2:
- .string "This POKéMON shoots beams from both\nits hands.$"
- .else
-DexDescription_Claydol_1:
- .string "CLAYDOL are said to be dolls of mud made\nby primitive humans and brought to life\nby exposure to a mysterious ray.$"
-DexDescription_Claydol_2:
- .string "This POKéMON moves about while\nlevitating.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Lileep_1:
- .string "LILEEP is an ancient POKéMON that was\nregenerated from a fossil. It remains\npermanently anchored to a rock.$"
-DexDescription_Lileep_2:
- .string "From its immobile perch, this POKéMON\nintently scans for prey with its two\neyes.$"
- .else
-DexDescription_Lileep_1:
- .string "LILEEP became extinct approximately\na hundred million years ago.\nThis ancient POKéMON attaches itself$"
-DexDescription_Lileep_2:
- .string "to a rock on the seafloor and catches\napproaching prey using tentacles \nshaped like flower petals.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Cradily_1:
- .string "CRADILY’s body serves as an anchor,\npreventing it from being washed away in\nrough seas.$"
-DexDescription_Cradily_2:
- .string "This POKéMON secretes a strong\ndigestive fluid from its tentacles.$"
- .else
-DexDescription_Cradily_1:
- .string "CRADILY roams around the ocean floor\nin search of food. This POKéMON freely\nextends its tree trunk-like neck and$"
-DexDescription_Cradily_2:
- .string "captures unwary prey using its eight\ntentacles.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Anorith_1:
- .string "ANORITH is said to be a type of \nPOKéMON predecessor, with eight wings\nat the sides of its body.$"
-DexDescription_Anorith_2:
- .string "This POKéMON swam in the primordial sea\nby undulating these eight wings.$"
- .else
-DexDescription_Anorith_1:
- .string "ANORITH was regenerated from a\nprehistoric fossil. This primitive\nPOKéMON once lived in warm seas.$"
-DexDescription_Anorith_2:
- .string "It grips its prey firmly between its\ntwo large claws.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Armaldo_1:
- .string "ARMALDO is a POKéMON species that\nbecame extinct in prehistoric times.\nThis POKéMON is said to have walked on$"
-DexDescription_Armaldo_2:
- .string "its hind legs, which would have been\nmore convenient for life on land.$"
- .else
-DexDescription_Armaldo_1:
- .string "ARMALDO’s tough armor makes all attacks\nbounce off. This POKéMON’s two\nenormous claws can be freely extended$"
-DexDescription_Armaldo_2:
- .string "or contracted. They have the power to\npunch right through a steel slab.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Feebas_1:
- .string "While FEEBAS’s body is in tatters,\nit has a hardy and tenacious life force\nthat enables it to live anywhere.$"
-DexDescription_Feebas_2:
- .string "However, this POKéMON is also slow and\ndimwitted, making it an easy catch.$"
- .else
-DexDescription_Feebas_1:
- .string "FEEBAS’s fins are ragged and\ntattered from the start of its life.\nBecause of its shoddy appearance, this$"
-DexDescription_Feebas_2:
- .string "POKéMON is largely ignored.\nIt is capable of living in both the sea\nand in rivers.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Milotic_1:
- .string "MILOTIC live at the bottom of large\nlakes. When this POKéMON’s body glows a\nvivid pink, it releases a pulsing wave of$"
-DexDescription_Milotic_2:
- .string "energy that brings soothing calm to\nrestless spirits.$"
- .else
-DexDescription_Milotic_1:
- .string "MILOTIC is said to be the most\nbeautiful of all the POKéMON.\nIt has the power to becalm such$"
-DexDescription_Milotic_2:
- .string "emotions as anger and hostility to quell\nbitter feuding.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Castform_1:
- .string "CASTFORM borrows the power of nature\nto transform itself into the guises of\nthe sun, rain clouds, and snow clouds.$"
-DexDescription_Castform_2:
- .string "This POKéMON’s feelings change with the\nweather.$"
- .else
-DexDescription_Castform_1:
- .string "CASTFORM’s appearance changes with\nthe weather.\nThis POKéMON gained the ability to use$"
-DexDescription_Castform_2:
- .string "the vast power of nature to protect\nits tiny body.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Kecleon_1:
- .string "KECLEON alters its body coloration to\nblend in with its surroundings, allowing\nit to sneak up on its prey unnoticed.$"
-DexDescription_Kecleon_2:
- .string "Then it lashes out with its long,\nstretchy tongue to instantly ensnare\nthe unsuspecting target.$"
- .else
-DexDescription_Kecleon_1:
- .string "KECLEON is capable of changing its body\ncolors at will to blend in with its\nsurroundings.$"
-DexDescription_Kecleon_2:
- .string "There is one exception - this POKéMON\ncan’t change the zigzag pattern on its\nbelly.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Shuppet_1:
- .string "SHUPPET grows by feeding on dark\nemotions, such as vengefulness and \nenvy, in the hearts of people.$"
-DexDescription_Shuppet_2:
- .string "It roams through cities in search of\ngrudges that taint people.$"
- .else
-DexDescription_Shuppet_1:
- .string "SHUPPET is attracted by feelings\nof jealousy and vindictiveness.\nIf someone develops strong feelings of$"
-DexDescription_Shuppet_2:
- .string "vengeance, this POKéMON will appear\nin a swarm and line up beneath the eaves\nof that person’s home.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Banette_1:
- .string "A cursed energy permeated the stuffing\nof a discarded and forgotten plush doll,\ngiving it new life as BANETTE.$"
-DexDescription_Banette_2:
- .string "The POKéMON’s energy would escape if it\nwere to ever open its mouth.$"
- .else
-DexDescription_Banette_1:
- .string "BANETTE generates energy for laying\nstrong curses by sticking pins into its\nown body.$"
-DexDescription_Banette_2:
- .string "This POKéMON was originally a pitiful\nplush doll that was thrown away.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Duskull_1:
- .string "DUSKULL wanders lost among the deep\ndarkness of midnight. There is an oft-\ntold admonishment given to misbehaving$"
-DexDescription_Duskull_2:
- .string "children that this POKéMON will spirit\naway bad children who earn scoldings\nfrom their mothers.$"
- .else
-DexDescription_Duskull_1:
- .string "DUSKULL can pass through any wall no\nmatter how thick it may be.\nOnce this POKéMON chooses a target,$"
-DexDescription_Duskull_2:
- .string "it will doggedly pursue the intended\nvictim until the break of dawn.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Dusclops_1:
- .string "DUSCLOPS absorbs anything, however\nlarge the object may be. This POKéMON\nhypnotizes its foe by waving its hands$"
-DexDescription_Dusclops_2:
- .string "in a macabre manner and by bringing its\nsingle eye to bear. The hypnotized foe\nis made to do DUSCLOPS’s bidding.$"
- .else
-DexDescription_Dusclops_1:
- .string "DUSCLOPS’s body is completely hollow -\nthere is nothing at all inside.\nIt is said that its body is like a black$"
-DexDescription_Dusclops_2:
- .string "hole. This POKéMON will absorb anything\ninto its body, but nothing will ever come\nback out.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Tropius_1:
- .string "Children of the southern tropics eat\nas snacks the fruit that grows in\nbunches around the neck of TROPIUS.$"
-DexDescription_Tropius_2:
- .string "This POKéMON flies by flapping the\nleaves on its back as if they were\nwings.$"
- .else
-DexDescription_Tropius_1:
- .string "The bunches of fruit around TROPIUS’s\nneck are very popular with children.\nThis POKéMON loves fruit, and eats it$"
-DexDescription_Tropius_2:
- .string "continuously. Apparently, its love for\nfruit resulted in its own outgrowth\nof fruit.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Chimecho_1:
- .string "In high winds, CHIMECHO cries as it\nhangs from a tree branch or the eaves\nof a building using a suction cup on its$"
-DexDescription_Chimecho_2:
- .string "head.\nThis POKéMON plucks berries with its\nlong tail and eats them.$"
- .else
-DexDescription_Chimecho_1:
- .string "CHIMECHO makes its cries echo\ninside its hollow body. When this\nPOKéMON becomes enraged, its cries$"
-DexDescription_Chimecho_2:
- .string "result in ultrasonic waves that have\nthe power to knock foes flying.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Absol_1:
- .string "ABSOL has the ability to foretell the\ncoming of natural disasters.\nIt lives in a harsh, rugged mountain$"
-DexDescription_Absol_2:
- .string "environment. This POKéMON very rarely\nventures down from the mountains.$"
- .else
-DexDescription_Absol_1:
- .string "Every time ABSOL appears before people,\nit is followed by a disaster such as an\nearthquake or a tidal wave.$"
-DexDescription_Absol_2:
- .string "As a result, it came to be known as the\ndisaster POKéMON.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Wynaut_1:
- .string "WYNAUT gather on moonlit nights to play\nby squeezing up against each other.\nBy being squeezed, this POKéMON gains$"
-DexDescription_Wynaut_2:
- .string "endurance and is trained to dole out\npowerful counterattacks.$"
- .else
-DexDescription_Wynaut_1:
- .string "WYNAUT can always be seen with a big,\nhappy smile on its face. Look at its tail\nto determine if it is angry.$"
-DexDescription_Wynaut_2:
- .string "When angered, this POKéMON will be\nslapping the ground with its tail.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Snorunt_1:
- .string "SNORUNT survives by eating only snow\nand ice.\nOld folklore claims that a house visited$"
-DexDescription_Snorunt_2:
- .string "by this POKéMON is sure to prosper for\nmany generations to come.$"
- .else
-DexDescription_Snorunt_1:
- .string "SNORUNT live in regions with heavy\nsnowfall. In seasons without snow, such\nas spring and summer, this POKéMON$"
-DexDescription_Snorunt_2:
- .string "steals away to live quietly among\nstalactites and stalagmites deep in\ncaverns.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Glalie_1:
- .string "GLALIE has the ability to freely\ncontrol ice. For example, it can\ninstantly freeze its foe solid.$"
-DexDescription_Glalie_2:
- .string "After immobilizing its foe in ice, this\nPOKéMON enjoys eating it in leisurely\nfashion.$"
- .else
-DexDescription_Glalie_1:
- .string "GLALIE has a body made of rock, which it\nhardens with an armor of ice.\nThis POKéMON has the ability to freeze$"
-DexDescription_Glalie_2:
- .string "moisture in the atmosphere into any\nshape it desires.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Spheal_1:
- .string "SPHEAL always travels by rolling\naround on its ball-like body. When the\nseason for ice floes arrives, this$"
-DexDescription_Spheal_2:
- .string "POKéMON can be seen rolling about on\nice and crossing the sea.$"
- .else
-DexDescription_Spheal_1:
- .string "SPHEAL is much faster rolling than \nwalking to get around. When groups of\nthis POKéMON eat, they all clap at once$"
-DexDescription_Spheal_2:
- .string "to show their pleasure. Because of this,\ntheir mealtimes are noisy.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Sealeo_1:
- .string "SEALEO often balances and rolls\nthings on the tip of its nose. While the\nPOKéMON is rolling something, it checks$"
-DexDescription_Sealeo_2:
- .string "the object’s aroma and texture to\ndetermine whether it likes the object\nor not.$"
- .else
-DexDescription_Sealeo_1:
- .string "SEALEO has the habit of always juggling\non the tip of its nose anything it sees\nfor the first time.$"
-DexDescription_Sealeo_2:
- .string "This POKéMON occasionally entertains\nitself by balancing and rolling a SPHEAL\non its nose.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Walrein_1:
- .string "WALREIN swims all over in frigid\nseawater while crushing icebergs with\nits grand, imposing tusks.$"
-DexDescription_Walrein_2:
- .string "Its thick layer of blubber makes enemy\nattacks bounce off harmlessly.$"
- .else
-DexDescription_Walrein_1:
- .string "WALREIN’s two massively developed\ntusks can totally shatter blocks of\nice weighing ten tons with one blow.$"
-DexDescription_Walrein_2:
- .string "This POKéMON’s thick coat of blubber\ninsulates it from subzero temperatures.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Clamperl_1:
- .string "CLAMPERL grows while being protected\nby its rock-hard shell. When its body\nbecomes too large to fit inside the$"
-DexDescription_Clamperl_2:
- .string "shell, it is sure evidence that this\nPOKéMON is getting close to evolution.$"
- .else
-DexDescription_Clamperl_1:
- .string "CLAMPERL’s sturdy shell is not only good\nfor protection - it is also used for\nclamping and catching prey.$"
-DexDescription_Clamperl_2:
- .string "A fully grown CLAMPERL’s shell will be\nscored with nicks and scratches all\nover.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Huntail_1:
- .string "HUNTAIL’s tail is shaped like a fish.\nIt uses the tail to attract prey, then\nswallows the prey whole with its large,$"
-DexDescription_Huntail_2:
- .string "gaping mouth.\nThis POKéMON swims by wiggling its\nslender body like a snake.$"
- .else
-DexDescription_Huntail_1:
- .string "HUNTAIL’s presence went unnoticed by\npeople for a long time because it lives\nat extreme depths in the sea.$"
-DexDescription_Huntail_2:
- .string "This POKéMON’s eyes can see clearly\neven in the murky dark depths of the\nocean.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Gorebyss_1:
- .string "Although GOREBYSS is the very picture\nof elegance and beauty while swimming,\nit is also cruel. When it spots prey, this$"
-DexDescription_Gorebyss_2:
- .string "POKéMON inserts its thin mouth into the\nprey’s body and drains the prey of its\nbody fluids.$"
- .else
-DexDescription_Gorebyss_1:
- .string "GOREBYSS lives in the southern seas\nat extreme depths. Its body is built to\nwithstand the enormous pressure of$"
-DexDescription_Gorebyss_2:
- .string "water at incredible depths. Because of\nthis, this POKéMON’s body is unharmed\nby ordinary attacks.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Relicanth_1:
- .string "RELICANTH is a rare species that was\ndiscovered in deep-sea explorations.\nThis POKéMON’s body withstands the$"
-DexDescription_Relicanth_2:
- .string "enormous water pressure of the ocean\ndepths. Its body is covered in tough\nscales that are like craggy rocks.$"
- .else
-DexDescription_Relicanth_1:
- .string "RELICANTH is a POKéMON species that\nexisted for a hundred million years\nwithout ever changing its form.$"
-DexDescription_Relicanth_2:
- .string "This ancient POKéMON feeds on\nmicroscopic organisms with its\ntoothless mouth.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Luvdisc_1:
- .string "LUVDISC’s heart-shaped body is a\nsymbol of love and romance.\nIt is said that any couple meeting this$"
-DexDescription_Luvdisc_2:
- .string "POKéMON is promised a loving\nrelationship that never ends.$"
- .else
-DexDescription_Luvdisc_1:
- .string "LUVDISC live in shallow seas in the\ntropics. This heart-shaped POKéMON\nearned its name by swimming after$"
-DexDescription_Luvdisc_2:
- .string "loving couples it spotted in the\nocean’s waves.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Bagon_1:
- .string "BAGON harbors a never-ending dream of\none day soaring high among the clouds.\nAs if trying to dispel its frustration$"
-DexDescription_Bagon_2:
- .string "over its inability to fly, this POKéMON\nslams its hard head against huge rocks\nand shatters them into pebbles.$"
- .else
-DexDescription_Bagon_1:
- .string "BAGON has a dream of one day soaring\nin the sky. In doomed efforts to fly,\nthis POKéMON hurls itself off cliffs.$"
-DexDescription_Bagon_2:
- .string "As a result of its dives, its head has \ngrown tough and as hard as tempered\nsteel.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Shelgon_1:
- .string "Covering SHELGON’s body are outgrowths\nmuch like bones. The shell is very hard\nand bounces off enemy attacks.$"
-DexDescription_Shelgon_2:
- .string "When awaiting evolution, this POKéMON\nhides away in a cavern.$"
- .else
-DexDescription_Shelgon_1:
- .string "Inside SHELGON’s armor-like shell, cells\nare in the midst of transformation\nto create an entirely new body.$"
-DexDescription_Shelgon_2:
- .string "This POKéMON’s shell is extremely heavy,\nmaking its movements sluggish.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Salamence_1:
- .string "By evolving into SALAMENCE, this\nPOKéMON finally realizes its long-held\ndream of growing wings.$"
-DexDescription_Salamence_2:
- .string "To express its joy, it flies and wheels\nall over the sky while spouting flames\nfrom its mouth.$"
- .else
-DexDescription_Salamence_1:
- .string "SALAMENCE came about as a result of a\nstrong, long-held dream of growing\nwings. It is said that this powerful$"
-DexDescription_Salamence_2:
- .string "desire triggered a sudden mutation in\nthis POKéMON’s cells, causing it to\nsprout its magnificent wings.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Beldum_1:
- .string "BELDUM keeps itself floating by\ngenerating a magnetic force that\nrepels earth’s natural magnetism.$"
-DexDescription_Beldum_2:
- .string "When it sleeps, this POKéMON anchors\nitself to a cliff using the hooks on\nits rear.$"
- .else
-DexDescription_Beldum_1:
- .string "Instead of blood, a powerful magnetic\nforce courses throughout BELDUM’s\nbody. This POKéMON communicates with$"
-DexDescription_Beldum_2:
- .string "others by sending controlled pulses of\nmagnetism.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Metang_1:
- .string "When two BELDUM fuse together, METANG\nis formed. The brains of the BELDUM are\njoined by a magnetic nervous system.$"
-DexDescription_Metang_2:
- .string "This POKéMON turns its arms to the rear\nfor traveling at high speed.$"
- .else
-DexDescription_Metang_1:
- .string "When two BELDUM fuse together, METANG\nis formed. The brains of the BELDUM are\njoined by a magnetic nervous system.$"
-DexDescription_Metang_2:
- .string "By linking its brains magnetically,\nthis POKéMON generates strong\npsychokinetic power.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Metagross_1:
- .string "METAGROSS is the result of two METANG\nachieving fusion. When hunting, this\nPOKéMON pins the prey to the ground$"
-DexDescription_Metagross_2:
- .string "under its massive body. It then eats\nthe helpless victim using the large \nmouth on its stomach.$"
- .else
-DexDescription_Metagross_1:
- .string "METAGROSS has four brains in total.\nCombined, the four brains can breeze\nthrough difficult calculations faster$"
-DexDescription_Metagross_2:
- .string "than a supercomputer.\nThis POKéMON can float in the air by\ntucking in its four legs.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Regirock_1:
- .string "REGIROCK’s body is composed entirely of\nrocks. Recently, a study made the\nstartling discovery that the rocks$"
-DexDescription_Regirock_2:
- .string "were all unearthed from different\nlocations.$"
- .else
-DexDescription_Regirock_1:
- .string "REGIROCK was sealed away by people\nlong ago. If this POKéMON’s body is\ndamaged in battle, it is said to seek$"
-DexDescription_Regirock_2:
- .string "out suitable rocks on its own to repair\nitself.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Regice_1:
- .string "REGICE cloaks itself with frigid air of\nnegative 328 degrees F.\nThings will freeze solid just by going$"
-DexDescription_Regice_2:
- .string "near this POKéMON.\nIts icy body is so cold, it will not melt\neven if it is immersed in magma.$"
- .else
-DexDescription_Regice_1:
- .string "REGICE’s body was made during an ice\nage. The deep-frozen body can’t be\nmelted, even by fire.$"
-DexDescription_Regice_2:
- .string "This POKéMON controls frigid air of\nminus 328 degrees F.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Registeel_1:
- .string "REGISTEEL was imprisoned by people\nin ancient times.\nThe metal composing its body is thought$"
-DexDescription_Registeel_2:
- .string "to be a curious substance that is not\nof this earth.$"
- .else
-DexDescription_Registeel_1:
- .string "REGISTEEL has a body that is harder\nthan any kind of metal.\nIts body is apparently hollow.$"
-DexDescription_Registeel_2:
- .string "No one has any idea what this POKéMON\neats.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Latias_1:
- .string "LATIAS is highly intelligent and capable\nof understanding human speech.\nIt is covered with a glass-like down.$"
-DexDescription_Latias_2:
- .string "The POKéMON enfolds its body with its\ndown and refracts light to alter its\nappearance.$"
- .else
-DexDescription_Latias_1:
- .string "LATIAS is highly sensitive to the\nemotions of people. If it senses any\nhostility, this POKéMON ruffles the$"
-DexDescription_Latias_2:
- .string "feathers all over its body and cries\nshrilly to intimidate the foe.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Latios_1:
- .string "LATIOS will only open its heart to a\nTRAINER with a compassionate spirit.\nThis POKéMON can fly faster than a jet$"
-DexDescription_Latios_2:
- .string "plane by folding its forelegs to minimize\nair resistance.$"
- .else
-DexDescription_Latios_1:
- .string "LATIOS has the ability to make its foe\nsee an image of what it has seen or\nimagines in its head.$"
-DexDescription_Latios_2:
- .string "This POKéMON is intelligent and\nunderstands human speech.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Kyogre_1:
- .string "KYOGRE is named in mythology as the\nPOKéMON that expanded the sea by\ncovering the land with torrential rains$"
-DexDescription_Kyogre_2:
- .string "and towering tidal waves.\nIt took to sleep after a cataclysmic\nbattle with GROUDON.$"
- .else
-DexDescription_Kyogre_1:
- .string "KYOGRE has the power to create massive\nrain clouds that cover the entire sky\nand bring about torrential downpours.$"
-DexDescription_Kyogre_2:
- .string "This POKéMON saved people who were\nsuffering from droughts.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Groudon_1:
- .string "GROUDON has the power to scatter rain\nclouds and make water evaporate with\nlight and heat.$"
-DexDescription_Groudon_2:
- .string "It came as a savior to people who had\nbeen suffering from terrible floods.$"
- .else
-DexDescription_Groudon_1:
- .string "GROUDON has long been described in \nmythology as the POKéMON that raised\nlands and expanded continents.$"
-DexDescription_Groudon_2:
- .string "This POKéMON took to sleep after a\ncataclysmic battle with KYOGRE.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Rayquaza_1:
- .string "RAYQUAZA is said to have lived for\nhundreds of millions of years in the\nearth’s ozone layer, above the clouds.$"
-DexDescription_Rayquaza_2:
- .string "Its existence had been completely\nunknown because it lived so high in\nthe sky.$"
- .else
-DexDescription_Rayquaza_1:
- .string "RAYQUAZA lived for hundreds of millions\nof years in the earth’s ozone layer, \nnever descending to the ground.$"
-DexDescription_Rayquaza_2:
- .string "This POKéMON appears to feed on water\nand particles in the atmosphere.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Jirachi_1:
- .string "JIRACHI will awaken from its sleep of\na thousand years if you sing to it in a\nvoice of purity.$"
-DexDescription_Jirachi_2:
- .string "It is said to make true any wish that\npeople desire.$"
- .else
-DexDescription_Jirachi_1:
- .string "A legend states that JIRACHI will make\ntrue any wish that is written on notes\nattached to its head when it awakens.$"
-DexDescription_Jirachi_2:
- .string "If this POKéMON senses danger, it will\nfight without awakening.$"
- .endif
-
- .ifdef SAPPHIRE
-DexDescription_Deoxys_1:
- .string "DEOXYS emerged from a virus that came\nfrom space. It is highly intelligent and\nwields psychokinetic powers.$"
-DexDescription_Deoxys_2:
- .string "This POKéMON shoots lasers from the\ncrystalline organ on its chest.$"
- .else
-DexDescription_Deoxys_1:
- .string "The DNA of a space virus underwent a\nsudden mutation upon exposure to a\nlaser beam and resulted in DEOXYS.$"
-DexDescription_Deoxys_2:
- .string "The crystalline organ on this POKéMON’s\nchest appears to be its brain.$"
- .endif
-
-@ Unfortunately, preproc doesn't allow us to use strings inside macros,
-@ so the category names have to be on separate lines.
-
- .align 2
-gPokedexEntries:: @ 83B1858
- .string "UNKNOWN$", 12
- pokedex_entry Dummy, 0, 0, 256, 0, 256, 0
- .string "SEED$", 12
- pokedex_entry Bulbasaur, 7, 69, 356, 17, 256, 0
- .string "SEED$", 12
- pokedex_entry Ivysaur, 10, 130, 335, 13, 256, 0
- .string "SEED$", 12
- pokedex_entry Venusaur, 20, 1000, 256, 0, 388, 6
- .string "LIZARD$", 12
- pokedex_entry Charmander, 6, 85, 444, 18, 256, 0
- .string "FLAME$", 12
- pokedex_entry Charmeleon, 11, 190, 302, 9, 256, 0
- .string "FLAME$", 12
- pokedex_entry Charizard, 17, 905, 256, 1, 302, 3
- .string "TINY TURTLE$", 12
- pokedex_entry Squirtle, 5, 90, 412, 18, 256, 0
- .string "TURTLE$", 12
- pokedex_entry Wartortle, 10, 225, 332, 10, 256, 0
- .string "SHELLFISH$", 12
- pokedex_entry Blastoise, 16, 855, 256, -1, 293, 2
- .string "WORM$", 12
- pokedex_entry Caterpie, 3, 29, 549, 22, 256, 0
- .string "COCOON$", 12
- pokedex_entry Metapod, 7, 99, 350, 18, 256, 0
- .string "BUTTERFLY$", 12
- pokedex_entry Butterfree, 11, 320, 312, 2, 256, 0
- .string "HAIRY BUG$", 12
- pokedex_entry Weedle, 3, 32, 455, 22, 256, 0
- .string "COCOON$", 12
- pokedex_entry Kakuna, 6, 100, 424, 17, 256, 0
- .string "POISON BEE$", 12
- pokedex_entry Beedrill, 10, 295, 366, 2, 256, 0
- .string "TINY BIRD$", 12
- pokedex_entry Pidgey, 3, 18, 508, -3, 256, 0
- .string "BIRD$", 12
- pokedex_entry Pidgeotto, 11, 300, 331, 10, 256, 0
- .string "BIRD$", 12
- pokedex_entry Pidgeot, 15, 395, 269, 0, 256, 0
- .string "MOUSE$", 12
- pokedex_entry Rattata, 3, 35, 481, 21, 256, 0
- .string "MOUSE$", 12
- pokedex_entry Raticate, 7, 185, 459, 18, 256, 0
- .string "TINY BIRD$", 12
- pokedex_entry Spearow, 3, 20, 571, 22, 256, 0
- .string "BEAK$", 12
- pokedex_entry Fearow, 12, 380, 278, 1, 256, 0
- .string "SNAKE$", 12
- pokedex_entry Ekans, 20, 69, 298, 12, 256, 0
- .string "COBRA$", 12
- pokedex_entry Arbok, 35, 650, 256, 0, 296, 2
- .string "MOUSE$", 12
- pokedex_entry Pikachu, 4, 60, 479, 19, 256, 0
- .string "MOUSE$", 12
- pokedex_entry Raichu, 8, 300, 426, 13, 256, 0
- .string "MOUSE$", 12
- pokedex_entry Sandshrew, 6, 120, 365, 18, 256, 0
- .string "MOUSE$", 12
- pokedex_entry Sandslash, 10, 295, 341, 11, 256, 0
- .string "POISON PIN$", 12
- pokedex_entry NidoranF, 4, 70, 488, 21, 256, 0
- .string "POISON PIN$", 12
- pokedex_entry Nidorina, 8, 200, 381, 15, 256, 0
- .string "DRILL$", 12
- pokedex_entry Nidoqueen, 13, 600, 293, 4, 256, 0
- .string "POISON PIN$", 12
- pokedex_entry NidoranM, 5, 90, 511, 20, 256, 0
- .string "POISON PIN$", 12
- pokedex_entry Nidorino, 9, 195, 408, 15, 256, 0
- .string "DRILL$", 12
- pokedex_entry Nidoking, 14, 620, 256, 0, 256, 0
- .string "FAIRY$", 12
- pokedex_entry Clefairy, 6, 75, 441, 20, 256, 0
- .string "FAIRY$", 12
- pokedex_entry Clefable, 13, 400, 256, 5, 256, 0
- .string "FOX$", 12
- pokedex_entry Vulpix, 6, 99, 542, 19, 256, 0
- .string "FOX$", 12
- pokedex_entry Ninetales, 11, 199, 339, 10, 256, 0
- .string "BALLOON$", 12
- pokedex_entry Jigglypuff, 5, 55, 433, 2, 256, 0
- .string "BALLOON$", 12
- pokedex_entry Wigglytuff, 10, 120, 328, 11, 256, 0
- .string "BAT$", 12
- pokedex_entry Zubat, 8, 75, 362, -5, 256, 0
- .string "BAT$", 12
- pokedex_entry Golbat, 16, 550, 256, 1, 256, 0
- .string "WEED$", 12
- pokedex_entry Oddish, 5, 54, 423, 19, 256, 0
- .string "WEED$", 12
- pokedex_entry Gloom, 8, 86, 329, 13, 256, 0
- .string "FLOWER$", 12
- pokedex_entry Vileplume, 12, 186, 256, 4, 256, 0
- .string "MUSHROOM$", 12
- pokedex_entry Paras, 3, 54, 593, 22, 256, 0
- .string "MUSHROOM$", 12
- pokedex_entry Parasect, 10, 295, 307, 8, 256, 0
- .string "INSECT$", 12
- pokedex_entry Venonat, 10, 300, 360, 0, 256, -1
- .string "POISON MOTH$", 12
- pokedex_entry Venomoth, 15, 125, 285, 2, 256, 1
- .string "MOLE$", 12
- pokedex_entry Diglett, 2, 8, 833, 25, 256, 0
- .string "MOLE$", 12
- pokedex_entry Dugtrio, 7, 333, 406, 18, 256, 0
- .string "SCRATCH CAT$", 12
- pokedex_entry Meowth, 4, 42, 480, 19, 256, 0
- .string "CLASSY CAT$", 12
- pokedex_entry Persian, 10, 320, 320, 10, 256, 0
- .string "DUCK$", 12
- pokedex_entry Psyduck, 8, 196, 369, 15, 256, 0
- .string "DUCK$", 12
- pokedex_entry Golduck, 17, 766, 256, 1, 273, 1
- .string "PIG MONKEY$", 12
- pokedex_entry Mankey, 5, 280, 404, 19, 256, 0
- .string "PIG MONKEY$", 12
- pokedex_entry Primeape, 10, 320, 326, 10, 256, 0
- .string "PUPPY$", 12
- pokedex_entry Growlithe, 7, 190, 346, 14, 256, 0
- .string "LEGENDARY$", 12
- pokedex_entry Arcanine, 19, 1550, 256, 1, 312, 4
- .string "TADPOLE$", 12
- pokedex_entry Poliwag, 6, 124, 369, 20, 256, 0
- .string "TADPOLE$", 12
- pokedex_entry Poliwhirl, 10, 200, 288, 11, 256, 0
- .string "TADPOLE$", 12
- pokedex_entry Poliwrath, 13, 540, 256, 6, 256, 0
- .string "PSI$", 12
- pokedex_entry Abra, 9, 195, 363, 14, 256, 0
- .string "PSI$", 12
- pokedex_entry Kadabra, 13, 565, 256, 3, 256, 0
- .string "PSI$", 12
- pokedex_entry Alakazam, 15, 480, 256, 3, 256, 0
- .string "SUPERPOWER$", 12
- pokedex_entry Machop, 8, 195, 342, 14, 256, 0
- .string "SUPERPOWER$", 12
- pokedex_entry Machoke, 15, 705, 323, 9, 257, 0
- .string "SUPERPOWER$", 12
- pokedex_entry Machamp, 16, 1300, 280, 1, 269, -1
- .string "FLOWER$", 12
- pokedex_entry Bellsprout, 7, 40, 354, 16, 256, 0
- .string "FLYCATCHER$", 12
- pokedex_entry Weepinbell, 10, 64, 256, 0, 256, 0
- .string "FLYCATCHER$", 12
- pokedex_entry Victreebel, 17, 155, 256, 1, 312, 3
- .string "JELLYFISH$", 12
- pokedex_entry Tentacool, 9, 455, 256, 0, 256, 0
- .string "JELLYFISH$", 12
- pokedex_entry Tentacruel, 16, 550, 256, 0, 312, 1
- .string "ROCK$", 12
- pokedex_entry Geodude, 4, 200, 347, 18, 256, 0
- .string "ROCK$", 12
- pokedex_entry Graveler, 10, 1050, 256, 2, 256, 0
- .string "MEGATON$", 12
- pokedex_entry Golem, 14, 3000, 256, 3, 296, 2
- .string "FIRE HORSE$", 12
- pokedex_entry Ponyta, 10, 300, 283, 8, 256, 0
- .string "FIRE HORSE$", 12
- pokedex_entry Rapidash, 17, 950, 256, 0, 289, 1
- .string "DOPEY$", 12
- pokedex_entry Slowpoke, 12, 360, 256, 10, 256, 0
- .string "HERMIT CRAB$", 12
- pokedex_entry Slowbro, 16, 785, 256, 6, 296, 2
- .string "MAGNET$", 12
- pokedex_entry Magnemite, 3, 60, 288, -9, 256, 0
- .string "MAGNET$", 12
- pokedex_entry Magneton, 10, 600, 292, 1, 256, 0
- .string "WILD DUCK$", 12
- pokedex_entry Farfetchd, 8, 150, 330, 2, 293, 2
- .string "TWIN BIRD$", 12
- pokedex_entry Doduo, 14, 392, 256, 3, 257, -1
- .string "TRIPLE BIRD$", 12
- pokedex_entry Dodrio, 18, 852, 256, 0, 268, 0
- .string "SEA LION$", 12
- pokedex_entry Seel, 11, 900, 297, 8, 256, 0
- .string "SEA LION$", 12
- pokedex_entry Dewgong, 17, 1200, 256, 0, 275, 0
- .string "SLUDGE$", 12
- pokedex_entry Grimer, 9, 300, 258, 10, 256, 0
- .string "SLUDGE$", 12
- pokedex_entry Muk, 12, 300, 256, 2, 256, 0
- .string "BIVALVE$", 12
- pokedex_entry Shellder, 3, 40, 675, 24, 256, 0
- .string "BIVALVE$", 12
- pokedex_entry Cloyster, 15, 1325, 256, 0, 269, 1
- .string "GAS$", 12
- pokedex_entry Gastly, 13, 1, 256, 0, 256, 0
- .string "GAS$", 12
- pokedex_entry Haunter, 16, 1, 256, 2, 293, 2
- .string "SHADOW$", 12
- pokedex_entry Gengar, 15, 405, 256, 2, 302, 2
- .string "ROCK SNAKE$", 12
- pokedex_entry Onix, 88, 2100, 256, 1, 515, 14
- .string "HYPNOSIS$", 12
- pokedex_entry Drowzee, 10, 324, 274, 6, 256, 0
- .string "HYPNOSIS$", 12
- pokedex_entry Hypno, 16, 756, 256, 3, 257, 0
- .string "RIVER CRAB$", 12
- pokedex_entry Krabby, 4, 65, 469, 20, 256, 0
- .string "PINCER$", 12
- pokedex_entry Kingler, 13, 600, 256, 2, 256, 0
- .string "BALL$", 12
- pokedex_entry Voltorb, 5, 104, 364, -8, 256, 0
- .string "BALL$", 12
- pokedex_entry Electrode, 12, 666, 256, 0, 256, 0
- .string "EGG$", 12
- pokedex_entry Exeggcute, 4, 25, 489, -4, 256, 0
- .string "COCONUT$", 12
- pokedex_entry Exeggutor, 20, 1200, 256, 0, 309, 5
- .string "LONELY$", 12
- pokedex_entry Cubone, 4, 65, 545, 21, 256, 0
- .string "BONE KEEPER$", 12
- pokedex_entry Marowak, 10, 450, 293, 12, 256, 0
- .string "KICKING$", 12
- pokedex_entry Hitmonlee, 15, 498, 256, 3, 259, 1
- .string "PUNCHING$", 12
- pokedex_entry Hitmonchan, 14, 502, 256, 2, 277, 2
- .string "LICKING$", 12
- pokedex_entry Lickitung, 12, 655, 256, 4, 256, 0
- .string "POISON GAS$", 12
- pokedex_entry Koffing, 6, 10, 369, -1, 256, 0
- .string "POISON GAS$", 12
- pokedex_entry Weezing, 12, 95, 305, 3, 256, 0
- .string "SPIKES$", 12
- pokedex_entry Rhyhorn, 10, 1150, 267, 6, 256, 0
- .string "DRILL$", 12
- pokedex_entry Rhydon, 19, 1200, 256, 1, 299, 2
- .string "EGG$", 12
- pokedex_entry Chansey, 11, 346, 257, 7, 256, 0
- .string "VINE$", 12
- pokedex_entry Tangela, 10, 350, 304, 1, 256, 0
- .string "PARENT$", 12
- pokedex_entry Kangaskhan, 22, 800, 256, 0, 387, 8
- .string "DRAGON$", 12
- pokedex_entry Horsea, 4, 80, 399, -1, 256, 0
- .string "DRAGON$", 12
- pokedex_entry Seadra, 12, 250, 299, 3, 256, 0
- .string "GOLDFISH$", 12
- pokedex_entry Goldeen, 6, 150, 379, 4, 256, 0
- .string "GOLDFISH$", 12
- pokedex_entry Seaking, 13, 390, 256, 3, 256, 0
- .string "STAR SHAPE$", 12
- pokedex_entry Staryu, 8, 345, 326, 1, 256, 0
- .string "MYSTERIOUS$", 12
- pokedex_entry Starmie, 11, 800, 301, 3, 256, 0
- .string "BARRIER$", 12
- pokedex_entry Mrmime, 13, 545, 258, 6, 256, 0
- .string "MANTIS$", 12
- pokedex_entry Scyther, 15, 560, 256, 1, 293, 2
- .string "HUMAN SHAPE$", 12
- pokedex_entry Jynx, 14, 406, 256, 3, 300, 1
- .string "ELECTRIC$", 12
- pokedex_entry Electabuzz, 11, 300, 351, 8, 256, 0
- .string "SPITFIRE$", 12
- pokedex_entry Magmar, 13, 445, 277, 5, 256, 0
- .string "STAG BEETLE$", 12
- pokedex_entry Pinsir, 15, 550, 256, 2, 257, 0
- .string "WILD BULL$", 12
- pokedex_entry Tauros, 14, 884, 256, 0, 256, 0
- .string "FISH$", 12
- pokedex_entry Magikarp, 9, 100, 310, 4, 256, 0
- .string "ATROCIOUS$", 12
- pokedex_entry Gyarados, 65, 2350, 256, 6, 481, 13
- .string "TRANSPORT$", 12
- pokedex_entry Lapras, 25, 2200, 257, 10, 423, 8
- .string "TRANSFORM$", 12
- pokedex_entry Ditto, 3, 40, 633, 23, 256, 0
- .string "EVOLUTION$", 12
- pokedex_entry Eevee, 3, 65, 476, 18, 256, 0
- .string "BUBBLE JET$", 12
- pokedex_entry Vaporeon, 10, 290, 316, 8, 256, 0
- .string "LIGHTNING$", 12
- pokedex_entry Jolteon, 8, 245, 283, 8, 256, 0
- .string "FLAME$", 12
- pokedex_entry Flareon, 9, 250, 306, 12, 256, 0
- .string "VIRTUAL$", 12
- pokedex_entry Porygon, 8, 365, 328, 15, 256, 0
- .string "SPIRAL$", 12
- pokedex_entry Omanyte, 4, 75, 521, 22, 256, 0
- .string "SPIRAL$", 12
- pokedex_entry Omastar, 10, 350, 307, 7, 256, 0
- .string "SHELLFISH$", 12
- pokedex_entry Kabuto, 5, 115, 454, 21, 256, 0
- .string "SHELLFISH$", 12
- pokedex_entry Kabutops, 13, 405, 271, 3, 256, 0
- .string "FOSSIL$", 12
- pokedex_entry Aerodactyl, 18, 590, 256, 0, 302, 4
- .string "SLEEPING$", 12
- pokedex_entry Snorlax, 21, 4600, 256, 4, 423, 11
- .string "FREEZE$", 12
- pokedex_entry Articuno, 17, 554, 256, 0, 309, 2
- .string "ELECTRIC$", 12
- pokedex_entry Zapdos, 16, 526, 256, 0, 318, 3
- .string "FLAME$", 12
- pokedex_entry Moltres, 20, 600, 270, 0, 387, 8
- .string "DRAGON$", 12
- pokedex_entry Dratini, 18, 33, 256, 8, 386, 6
- .string "DRAGON$", 12
- pokedex_entry Dragonair, 40, 165, 256, 0, 411, 5
- .string "DRAGON$", 12
- pokedex_entry Dragonite, 22, 2100, 256, 0, 309, 4
- .string "GENETIC$", 12
- pokedex_entry Mewtwo, 20, 1220, 256, 0, 309, 4
- .string "NEW SPECIES$", 12
- pokedex_entry Mew, 4, 40, 457, -2, 256, 0
- .string "LEAF$", 12
- pokedex_entry Chikorita, 9, 64, 512, 20, 256, 0
- .string "LEAF$", 12
- pokedex_entry Bayleef, 12, 158, 296, 4, 256, 0
- .string "HERB$", 12
- pokedex_entry Meganium, 18, 1005, 256, 0, 277, 1
- .string "FIRE MOUSE$", 12
- pokedex_entry Cyndaquil, 5, 79, 539, 21, 256, 0
- .string "VOLCANO$", 12
- pokedex_entry Quilava, 9, 190, 329, 11, 256, 0
- .string "VOLCANO$", 12
- pokedex_entry Typhlosion, 17, 795, 256, 0, 268, 1
- .string "BIG JAW$", 12
- pokedex_entry Totodile, 6, 95, 487, 20, 256, 0
- .string "BIG JAW$", 12
- pokedex_entry Croconaw, 11, 250, 378, 13, 256, 0
- .string "BIG JAW$", 12
- pokedex_entry Feraligatr, 23, 888, 256, 0, 342, 7
- .string "SCOUT$", 12
- pokedex_entry Sentret, 8, 60, 439, 12, 256, 0
- .string "LONG BODY$", 12
- pokedex_entry Furret, 18, 325, 346, 11, 256, 0
- .string "OWL$", 12
- pokedex_entry Hoothoot, 7, 212, 380, -2, 256, 0
- .string "OWL$", 12
- pokedex_entry Noctowl, 16, 408, 278, 3, 256, 0
- .string "FIVE STAR$", 12
- pokedex_entry Ledyba, 10, 108, 256, 4, 256, 0
- .string "FIVE STAR$", 12
- pokedex_entry Ledian, 14, 356, 256, 2, 256, 0
- .string "STRING SPIT$", 12
- pokedex_entry Spinarak, 5, 85, 414, 21, 256, 0
- .string "LONG LEG$", 12
- pokedex_entry Ariados, 11, 335, 316, 8, 256, 0
- .string "BAT$", 12
- pokedex_entry Crobat, 18, 750, 256, 0, 281, 1
- .string "ANGLER$", 12
- pokedex_entry Chinchou, 5, 120, 424, -2, 256, 0
- .string "LIGHT$", 12
- pokedex_entry Lanturn, 12, 225, 269, 6, 256, 0
- .string "TINY MOUSE$", 12
- pokedex_entry Pichu, 3, 20, 508, 20, 256, 0
- .string "STAR SHAPE$", 12
- pokedex_entry Cleffa, 3, 30, 462, 23, 256, 0
- .string "BALLOON$", 12
- pokedex_entry Igglybuff, 3, 10, 457, -1, 256, 0
- .string "SPIKE BALL$", 12
- pokedex_entry Togepi, 3, 15, 507, 23, 256, 0
- .string "HAPPINESS$", 12
- pokedex_entry Togetic, 6, 32, 424, 17, 256, 0
- .string "TINY BIRD$", 12
- pokedex_entry Natu, 2, 20, 610, 25, 256, 0
- .string "MYSTIC$", 12
- pokedex_entry Xatu, 15, 150, 256, 6, 318, 4
- .string "WOOL$", 12
- pokedex_entry Mareep, 6, 78, 379, 18, 256, 0
- .string "WOOL$", 12
- pokedex_entry Flaaffy, 8, 133, 372, 15, 256, 0
- .string "LIGHT$", 12
- pokedex_entry Ampharos, 14, 615, 256, 4, 256, 0
- .string "FLOWER$", 12
- pokedex_entry Bellossom, 4, 58, 472, 21, 256, 0
- .string "AQUA MOUSE$", 12
- pokedex_entry Marill, 4, 85, 476, 20, 256, 0
- .string "AQUA RABBIT$", 12
- pokedex_entry Azumarill, 8, 285, 448, 16, 256, 0
- .string "IMITATION$", 12
- pokedex_entry Sudowoodo, 12, 380, 305, 8, 256, 0
- .string "FROG$", 12
- pokedex_entry Politoed, 11, 339, 289, 6, 256, 0
- .string "COTTONWEED$", 12
- pokedex_entry Hoppip, 4, 5, 562, -7, 256, 0
- .string "COTTONWEED$", 12
- pokedex_entry Skiploom, 6, 10, 387, 0, 256, 0
- .string "COTTONWEED$", 12
- pokedex_entry Jumpluff, 8, 30, 418, -4, 256, 0
- .string "LONG TAIL$", 12
- pokedex_entry Aipom, 8, 115, 363, 6, 256, 0
- .string "SEED$", 12
- pokedex_entry Sunkern, 3, 18, 541, 0, 256, 0
- .string "SUN$", 12
- pokedex_entry Sunflora, 8, 85, 444, 15, 256, 0
- .string "CLEAR WING$", 12
- pokedex_entry Yanma, 12, 380, 274, -1, 256, 0
- .string "WATER FISH$", 12
- pokedex_entry Wooper, 4, 85, 479, 21, 256, 0
- .string "WATER FISH$", 12
- pokedex_entry Quagsire, 14, 750, 256, 4, 256, 0
- .string "SUN$", 12
- pokedex_entry Espeon, 9, 265, 363, 14, 256, 0
- .string "MOONLIGHT$", 12
- pokedex_entry Umbreon, 10, 270, 317, 11, 256, 0
- .string "DARKNESS$", 12
- pokedex_entry Murkrow, 5, 21, 401, -8, 256, 1
- .string "ROYAL$", 12
- pokedex_entry Slowking, 20, 795, 256, 0, 309, 5
- .string "SCREECH$", 12
- pokedex_entry Misdreavus, 7, 10, 407, -8, 256, 0
- .string "SYMBOL$", 12
- pokedex_entry Unown, 5, 50, 411, 2, 256, 0
- .string "PATIENT$", 12
- pokedex_entry Wobbuffet, 13, 285, 274, 4, 256, 0
- .string "LONG NECK$", 12
- pokedex_entry Girafarig, 15, 415, 281, 1, 256, 0
- .string "BAGWORM$", 12
- pokedex_entry Pineco, 6, 72, 445, 2, 256, 0
- .string "BAGWORM$", 12
- pokedex_entry Forretress, 12, 1258, 293, 5, 256, 0
- .string "LAND SNAKE$", 12
- pokedex_entry Dunsparce, 15, 140, 316, 17, 256, 0
- .string "FLYSCORPION$", 12
- pokedex_entry Gligar, 11, 648, 350, -1, 256, 0
- .string "IRON SNAKE$", 12
- pokedex_entry Steelix, 92, 4000, 256, 0, 516, 13
- .string "FAIRY$", 12
- pokedex_entry Snubbull, 6, 78, 465, 19, 256, 0
- .string "FAIRY$", 12
- pokedex_entry Granbull, 14, 487, 256, 4, 256, 0
- .string "BALLOON$", 12
- pokedex_entry Qwilfish, 5, 39, 430, 0, 256, 0
- .string "PINCER$", 12
- pokedex_entry Scizor, 18, 1180, 278, 1, 256, 0
- .string "MOLD$", 12
- pokedex_entry Shuckle, 6, 205, 485, 18, 256, 0
- .string "SINGLE HORN$", 12
- pokedex_entry Heracross, 15, 540, 256, 0, 256, 0
- .string "SHARP CLAW$", 12
- pokedex_entry Sneasel, 9, 280, 413, -3, 256, 0
- .string "LITTLE BEAR$", 12
- pokedex_entry Teddiursa, 6, 88, 455, 19, 256, 0
- .string "HIBERNATOR$", 12
- pokedex_entry Ursaring, 18, 1258, 256, 0, 256, 0
- .string "LAVA$", 12
- pokedex_entry Slugma, 7, 350, 329, 15, 256, 0
- .string "LAVA$", 12
- pokedex_entry Magcargo, 8, 550, 332, 15, 256, 0
- .string "PIG$", 12
- pokedex_entry Swinub, 4, 65, 324, 20, 256, 0
- .string "SWINE$", 12
- pokedex_entry Piloswine, 11, 558, 306, 10, 256, 0
- .string "CORAL$", 12
- pokedex_entry Corsola, 6, 50, 410, 15, 256, 0
- .string "JET$", 12
- pokedex_entry Remoraid, 6, 120, 316, 4, 256, 0
- .string "JET$", 12
- pokedex_entry Octillery, 9, 285, 296, 3, 256, 0
- .string "DELIVERY$", 12
- pokedex_entry Delibird, 9, 160, 293, 11, 256, 0
- .string "KITE$", 12
- pokedex_entry Mantine, 21, 2200, 256, 0, 342, 7
- .string "ARMOR BIRD$", 12
- pokedex_entry Skarmory, 17, 505, 256, 0, 271, 1
- .string "DARK$", 12
- pokedex_entry Houndour, 6, 108, 393, 16, 256, 0
- .string "DARK$", 12
- pokedex_entry Houndoom, 14, 350, 256, 4, 256, 0
- .string "DRAGON$", 12
- pokedex_entry Kingdra, 18, 1520, 256, 0, 287, 0
- .string "LONG NOSE$", 12
- pokedex_entry Phanpy, 5, 335, 465, 21, 256, 0
- .string "ARMOR$", 12
- pokedex_entry Donphan, 11, 1200, 313, 9, 256, 0
- .string "VIRTUAL$", 12
- pokedex_entry Porygon2, 6, 325, 320, 17, 256, 0
- .string "BIG HORN$", 12
- pokedex_entry Stantler, 14, 712, 256, 0, 256, 0
- .string "PAINTER$", 12
- pokedex_entry Smeargle, 12, 580, 287, 5, 256, 0
- .string "SCUFFLE$", 12
- pokedex_entry Tyrogue, 7, 210, 292, 9, 256, 0
- .string "HANDSTAND$", 12
- pokedex_entry Hitmontop, 14, 480, 256, 2, 257, 0
- .string "KISS$", 12
- pokedex_entry Smoochum, 4, 60, 440, 20, 256, 0
- .string "ELECTRIC$", 12
- pokedex_entry Elekid, 6, 235, 363, 14, 256, 0
- .string "LIVE COAL$", 12
- pokedex_entry Magby, 7, 214, 284, 13, 256, 0
- .string "MILK COW$", 12
- pokedex_entry Miltank, 12, 755, 280, 5, 256, 0
- .string "HAPPINESS$", 12
- pokedex_entry Blissey, 15, 468, 256, 4, 310, 3
- .string "THUNDER$", 12
- pokedex_entry Raikou, 19, 1780, 256, 0, 345, 7
- .string "VOLCANO$", 12
- pokedex_entry Entei, 21, 1980, 259, 0, 345, 7
- .string "AURORA$", 12
- pokedex_entry Suicune, 20, 1870, 269, 0, 345, 7
- .string "ROCK SKIN$", 12
- pokedex_entry Larvitar, 6, 720, 472, 18, 256, 0
- .string "HARD SHELL$", 12
- pokedex_entry Pupitar, 12, 1520, 292, 8, 256, 0
- .string "ARMOR$", 12
- pokedex_entry Tyranitar, 20, 2020, 256, 0, 345, 7
- .string "DIVING$", 12
- pokedex_entry Lugia, 52, 2160, 256, 0, 721, 19
- .string "RAINBOW$", 12
- pokedex_entry HoOh, 38, 1990, 256, 0, 610, 17
- .string "TIME TRAVEL$", 12
- pokedex_entry Celebi, 6, 50, 393, -10, 256, 0
- .string "WOOD GECKO$", 12
- pokedex_entry Treecko, 5, 50, 541, 19, 256, 0
- .string "WOOD GECKO$", 12
- pokedex_entry Grovyle, 9, 216, 360, 5, 256, 0
- .string "FOREST$", 12
- pokedex_entry Sceptile, 17, 522, 256, -1, 275, 2
- .string "CHICK$", 12
- pokedex_entry Torchic, 4, 25, 566, 19, 256, 0
- .string "YOUNG FOWL$", 12
- pokedex_entry Combusken, 9, 195, 343, 5, 256, 0
- .string "BLAZE$", 12
- pokedex_entry Blaziken, 19, 520, 256, 0, 301, 4
- .string "MUD FISH$", 12
- pokedex_entry Mudkip, 4, 76, 535, 20, 256, 0
- .string "MUD FISH$", 12
- pokedex_entry Marshtomp, 7, 280, 340, 7, 256, 0
- .string "MUD FISH$", 12
- pokedex_entry Swampert, 15, 819, 256, 0, 256, 0
- .string "BITE$", 12
- pokedex_entry Poochyena, 5, 136, 481, 19, 256, 0
- .string "BITE$", 12
- pokedex_entry Mightyena, 10, 370, 362, 9, 256, 0
- .string "TINYRACCOON$", 12
- pokedex_entry Zigzagoon, 4, 175, 560, 22, 256, 0
- .string "RUSHING$", 12
- pokedex_entry Linoone, 5, 325, 321, 7, 256, 0
- .string "WORM$", 12
- pokedex_entry Wurmple, 3, 36, 711, 24, 256, 0
- .string "COCOON$", 12
- pokedex_entry Silcoon, 6, 100, 431, 19, 256, 0
- .string "BUTTERFLY$", 12
- pokedex_entry Beautifly, 10, 284, 298, -1, 256, 0
- .string "COCOON$", 12
- pokedex_entry Cascoon, 7, 115, 391, 20, 256, 0
- .string "POISON MOTH$", 12
- pokedex_entry Dustox, 12, 316, 269, 1, 256, 0
- .string "WATER WEED$", 12
- pokedex_entry Lotad, 5, 26, 406, 19, 256, 0
- .string "JOLLY$", 12
- pokedex_entry Lombre, 12, 325, 277, 9, 256, 0
- .string "CAREFREE$", 12
- pokedex_entry Ludicolo, 15, 550, 256, 0, 268, -1
- .string "ACORN$", 12
- pokedex_entry Seedot, 5, 40, 472, 20, 256, 0
- .string "WILY$", 12
- pokedex_entry Nuzleaf, 10, 280, 299, 10, 256, 0
- .string "WICKED$", 12
- pokedex_entry Shiftry, 13, 596, 290, 4, 256, 0
- .string "TINYSWALLOW$", 12
- pokedex_entry Taillow, 3, 23, 465, 21, 256, 0
- .string "SWALLOW$", 12
- pokedex_entry Swellow, 7, 198, 428, 15, 256, 0
- .string "SEAGULL$", 12
- pokedex_entry Wingull, 6, 95, 295, -2, 256, 0
- .string "WATER BIRD$", 12
- pokedex_entry Pelipper, 12, 280, 288, 1, 256, 0
- .string "FEELING$", 12
- pokedex_entry Ralts, 4, 66, 457, -3, 256, 0
- .string "EMOTION$", 12
- pokedex_entry Kirlia, 8, 202, 354, 0, 256, 0
- .string "EMBRACE$", 12
- pokedex_entry Gardevoir, 16, 484, 256, 0, 256, 0
- .string "POND SKATER$", 12
- pokedex_entry Surskit, 5, 17, 375, 17, 256, 0
- .string "EYEBALL$", 12
- pokedex_entry Masquerain, 8, 36, 378, 8, 256, 0
- .string "MUSHROOM$", 12
- pokedex_entry Shroomish, 4, 45, 513, 22, 256, 0
- .string "MUSHROOM$", 12
- pokedex_entry Breloom, 12, 392, 324, 6, 256, 0
- .string "SLACKER$", 12
- pokedex_entry Slakoth, 8, 240, 291, 16, 256, 0
- .string "WILD MONKEY$", 12
- pokedex_entry Vigoroth, 14, 465, 301, 2, 256, 0
- .string "LAZY$", 12
- pokedex_entry Slaking, 20, 1305, 256, 2, 300, 1
- .string "TRAINEE$", 12
- pokedex_entry Nincada, 5, 55, 405, 21, 256, 0
- .string "NINJA$", 12
- pokedex_entry Ninjask, 8, 120, 383, -9, 256, 0
- .string "SHED$", 12
- pokedex_entry Shedinja, 8, 12, 372, -8, 256, 0
- .string "WHISPER$", 12
- pokedex_entry Whismur, 6, 163, 373, 17, 256, 0
- .string "BIG VOICE$", 12
- pokedex_entry Loudred, 10, 405, 356, 10, 256, 0
- .string "LOUD NOISE$", 12
- pokedex_entry Exploud, 15, 840, 284, 1, 256, 0
- .string "GUTS$", 12
- pokedex_entry Makuhita, 10, 864, 256, 10, 256, 0
- .string "ARM THRUST$", 12
- pokedex_entry Hariyama, 23, 2538, 256, 0, 343, 7
- .string "POLKA DOT$", 12
- pokedex_entry Azurill, 2, 20, 603, 23, 256, 0
- .string "COMPASS$", 12
- pokedex_entry Nosepass, 10, 970, 256, 9, 289, 3
- .string "KITTEN$", 12
- pokedex_entry Skitty, 6, 110, 492, 19, 256, 0
- .string "PRIM$", 12
- pokedex_entry Delcatty, 11, 326, 322, 10, 256, 0
- .string "DARKNESS$", 12
- pokedex_entry Sableye, 5, 110, 451, 17, 256, 0
- .string "DECEIVER$", 12
- pokedex_entry Mawile, 6, 115, 466, 17, 256, 0
- .string "IRON ARMOR$", 12
- pokedex_entry Aron, 4, 600, 419, 23, 256, 0
- .string "IRON ARMOR$", 12
- pokedex_entry Lairon, 9, 1200, 275, 12, 256, 0
- .string "IRON ARMOR$", 12
- pokedex_entry Aggron, 21, 3600, 256, -1, 350, 6
- .string "MEDITATE$", 12
- pokedex_entry Meditite, 6, 112, 465, 17, 256, 0
- .string "MEDITATE$", 12
- pokedex_entry Medicham, 13, 315, 298, 5, 256, 0
- .string "LIGHTNING$", 12
- pokedex_entry Electrike, 6, 152, 290, 15, 256, 0
- .string "DISCHARGE$", 12
- pokedex_entry Manectric, 15, 402, 256, 3, 257, 0
- .string "CHEERING$", 12
- pokedex_entry Plusle, 4, 42, 515, -9, 256, 0
- .string "CHEERING$", 12
- pokedex_entry Minun, 4, 42, 512, -7, 256, 0
- .string "FIREFLY$", 12
- pokedex_entry Volbeat, 7, 177, 442, 16, 256, 0
- .string "FIREFLY$", 12
- pokedex_entry Illumise, 6, 177, 572, 19, 256, 0
- .string "THORN$", 12
- pokedex_entry Roselia, 3, 20, 677, 20, 256, 0
- .string "STOMACH$", 12
- pokedex_entry Gulpin, 4, 103, 593, 23, 256, 0
- .string "POISON BAG$", 12
- pokedex_entry Swalot, 17, 800, 256, 6, 345, 3
- .string "SAVAGE$", 12
- pokedex_entry Carvanha, 8, 208, 362, 0, 256, 0
- .string "BRUTAL$", 12
- pokedex_entry Sharpedo, 18, 888, 256, 0, 317, 3
- .string "BALL WHALE$", 12
- pokedex_entry Wailmer, 20, 1300, 256, 2, 493, 0
- .string "FLOAT WHALE$", 12
- pokedex_entry Wailord, 145, 3980, 256, 0, 1352, 18
- .string "NUMB$", 12
- pokedex_entry Numel, 7, 240, 342, 17, 256, 0
- .string "ERUPTION$", 12
- pokedex_entry Camerupt, 19, 2200, 256, 7, 345, 6
- .string "COAL$", 12
- pokedex_entry Torkoal, 5, 804, 390, 9, 256, 0
- .string "BOUNCE$", 12
- pokedex_entry Spoink, 7, 306, 423, 17, 256, 0
- .string "MANIPULATE$", 12
- pokedex_entry Grumpig, 9, 715, 358, 10, 256, 0
- .string "SPOT PANDA$", 12
- pokedex_entry Spinda, 11, 50, 321, 4, 256, 0
- .string "ANT PIT$", 12
- pokedex_entry Trapinch, 7, 150, 298, 17, 256, 0
- .string "VIBRATION$", 12
- pokedex_entry Vibrava, 11, 153, 370, 11, 256, 0
- .string "MYSTIC$", 12
- pokedex_entry Flygon, 20, 820, 256, 0, 268, 1
- .string "CACTUS$", 12
- pokedex_entry Cacnea, 4, 513, 455, 20, 256, 0
- .string "SCARECROW$", 12
- pokedex_entry Cacturne, 13, 774, 327, 5, 256, 0
- .string "COTTON BIRD$", 12
- pokedex_entry Swablu, 4, 12, 422, -8, 256, 0
- .string "HUMMING$", 12
- pokedex_entry Altaria, 11, 206, 327, 0, 256, 0
- .string "CAT FERRET$", 12
- pokedex_entry Zangoose, 13, 403, 256, 3, 256, 0
- .string "FANG SNAKE$", 12
- pokedex_entry Seviper, 27, 525, 275, 7, 256, 0
- .string "METEORITE$", 12
- pokedex_entry Lunatone, 10, 1680, 300, 3, 256, 0
- .string "METEORITE$", 12
- pokedex_entry Solrock, 12, 1540, 328, 0, 256, 0
- .string "WHISKERS$", 12
- pokedex_entry Barboach, 4, 19, 581, -3, 256, 0
- .string "WHISKERS$", 12
- pokedex_entry Whiscash, 9, 236, 317, 1, 256, 0
- .string "RUFFIAN$", 12
- pokedex_entry Corphish, 6, 115, 484, 19, 256, 0
- .string "ROGUE$", 12
- pokedex_entry Crawdaunt, 11, 328, 365, 9, 256, 0
- .string "CLAY DOLL$", 12
- pokedex_entry Baltoy, 5, 215, 457, 21, 256, 0
- .string "CLAY DOLL$", 12
- pokedex_entry Claydol, 15, 1080, 256, 3, 280, 1
- .string "SEA LILY$", 12
- pokedex_entry Lileep, 10, 238, 305, 8, 256, 0
- .string "BARNACLE$", 12
- pokedex_entry Cradily, 15, 604, 267, 0, 256, 0
- .string "OLD SHRIMP$", 12
- pokedex_entry Anorith, 7, 125, 296, 4, 256, 0
- .string "PLATE$", 12
- pokedex_entry Armaldo, 15, 682, 312, 3, 271, 0
- .string "FISH$", 12
- pokedex_entry Feebas, 6, 74, 423, -4, 256, 0
- .string "TENDER$", 12
- pokedex_entry Milotic, 62, 1620, 256, 0, 360, 7
- .string "WEATHER$", 12
- pokedex_entry Castform, 3, 8, 435, -5, 256, 0
- .string "COLOR SWAP$", 12
- pokedex_entry Kecleon, 10, 220, 316, 10, 256, 0
- .string "PUPPET$", 12
- pokedex_entry Shuppet, 6, 23, 440, 20, 256, 0
- .string "MARIONETTE$", 12
- pokedex_entry Banette, 11, 125, 262, 9, 256, 0
- .string "REQUIEM$", 12
- pokedex_entry Duskull, 8, 150, 406, -4, 256, 0
- .string "BECKON$", 12
- pokedex_entry Dusclops, 16, 306, 256, 3, 299, 1
- .string "FRUIT$", 12
- pokedex_entry Tropius, 20, 1000, 256, 0, 344, 7
- .string "WIND CHIME$", 12
- pokedex_entry Chimecho, 6, 10, 505, 0, 256, 0
- .string "DISASTER$", 12
- pokedex_entry Absol, 12, 470, 301, 3, 256, 0
- .string "BRIGHT$", 12
- pokedex_entry Wynaut, 6, 140, 484, 19, 256, 0
- .string "SNOW HAT$", 12
- pokedex_entry Snorunt, 7, 168, 380, 15, 256, 0
- .string "FACE$", 12
- pokedex_entry Glalie, 15, 2565, 256, 3, 344, 0
- .string "CLAP$", 12
- pokedex_entry Spheal, 8, 395, 315, 16, 256, 0
- .string "BALL ROLL$", 12
- pokedex_entry Sealeo, 11, 876, 338, 13, 256, 0
- .string "ICE BREAK$", 12
- pokedex_entry Walrein, 14, 1506, 316, 4, 256, 0
- .string "BIVALVE$", 12
- pokedex_entry Clamperl, 4, 525, 691, 22, 256, 0
- .string "DEEP SEA$", 12
- pokedex_entry Huntail, 17, 270, 307, 1, 256, 0
- .string "SOUTH SEA$", 12
- pokedex_entry Gorebyss, 18, 226, 278, 5, 256, 0
- .string "LONGEVITY$", 12
- pokedex_entry Relicanth, 10, 234, 316, 7, 256, 0
- .string "RENDEZVOUS$", 12
- pokedex_entry Luvdisc, 6, 87, 371, 2, 256, 0
- .string "ROCK HEAD$", 12
- pokedex_entry Bagon, 6, 421, 448, 18, 256, 0
- .string "ENDURANCE$", 12
- pokedex_entry Shelgon, 11, 1105, 311, 12, 256, 0
- .string "DRAGON$", 12
- pokedex_entry Salamence, 15, 1026, 256, 0, 256, 0
- .string "IRON BALL$", 12
- pokedex_entry Beldum, 6, 952, 414, -1, 256, 0
- .string "IRON CLAW$", 12
- pokedex_entry Metang, 12, 2025, 256, 6, 256, 0
- .string "IRON LEG$", 12
- pokedex_entry Metagross, 16, 5500, 256, 4, 447, 9
- .string "ROCK PEAK$", 12
- pokedex_entry Regirock, 17, 2300, 256, 2, 309, 1
- .string "ICEBERG$", 12
- pokedex_entry Regice, 18, 1750, 256, 0, 301, 2
- .string "IRON$", 12
- pokedex_entry Registeel, 19, 2050, 256, 0, 359, 6
- .string "EON$", 12
- pokedex_entry Latias, 14, 400, 304, 3, 256, 0
- .string "EON$", 12
- pokedex_entry Latios, 20, 600, 256, 0, 294, 3
- .string "SEA BASIN$", 12
- pokedex_entry Kyogre, 45, 3520, 256, 0, 614, 13
- .string "CONTINENT$", 12
- pokedex_entry Groudon, 35, 9500, 256, 0, 515, 14
- .string "SKY HIGH$", 12
- pokedex_entry Rayquaza, 70, 2065, 256, 0, 448, 12
- .string "WISH$", 12
- pokedex_entry Jirachi, 3, 11, 608, -8, 256, 0
- .string "DNA$", 12
- pokedex_entry Deoxys, 17, 608, 256, 0, 290, 2
diff --git a/data/pokedex_orders.inc b/data/pokedex_orders.inc
deleted file mode 100644
index db1cf7e07..000000000
--- a/data/pokedex_orders.inc
+++ /dev/null
@@ -1,1191 +0,0 @@
- .align 1
-gPokedexOrder_Alphabetical:: @ 839FAC4
- .2byte 387
- .2byte 388
- .2byte 389
- .2byte 390
- .2byte 391
- .2byte 392
- .2byte 393
- .2byte 394
- .2byte 395
- .2byte 396
- .2byte 397
- .2byte 398
- .2byte 399
- .2byte 400
- .2byte 401
- .2byte 402
- .2byte 403
- .2byte 404
- .2byte 405
- .2byte 406
- .2byte 407
- .2byte 408
- .2byte 409
- .2byte 410
- .2byte 411
- .2byte 63 @ Abra
- .2byte 359 @ Absol
- .2byte 142 @ Aerodactyl
- .2byte 306 @ Aggron
- .2byte 190 @ Aipom
- .2byte 65 @ Alakazam
- .2byte 334 @ Altaria
- .2byte 181 @ Ampharos
- .2byte 347 @ Anorith
- .2byte 24 @ Arbok
- .2byte 59 @ Arcanine
- .2byte 168 @ Ariados
- .2byte 348 @ Armaldo
- .2byte 304 @ Aron
- .2byte 144 @ Articuno
- .2byte 184 @ Azumarill
- .2byte 298 @ Azurill
- .2byte 371 @ Bagon
- .2byte 343 @ Baltoy
- .2byte 354 @ Banette
- .2byte 339 @ Barboach
- .2byte 153 @ Bayleef
- .2byte 267 @ Beautifly
- .2byte 15 @ Beedrill
- .2byte 374 @ Beldum
- .2byte 182 @ Bellossom
- .2byte 69 @ Bellsprout
- .2byte 9 @ Blastoise
- .2byte 257 @ Blaziken
- .2byte 242 @ Blissey
- .2byte 286 @ Breloom
- .2byte 1 @ Bulbasaur
- .2byte 12 @ Butterfree
- .2byte 331 @ Cacnea
- .2byte 332 @ Cacturne
- .2byte 323 @ Camerupt
- .2byte 318 @ Carvanha
- .2byte 268 @ Cascoon
- .2byte 351 @ Castform
- .2byte 10 @ Caterpie
- .2byte 251 @ Celebi
- .2byte 113 @ Chansey
- .2byte 6 @ Charizard
- .2byte 4 @ Charmander
- .2byte 5 @ Charmeleon
- .2byte 152 @ Chikorita
- .2byte 358 @ Chimecho
- .2byte 170 @ Chinchou
- .2byte 366 @ Clamperl
- .2byte 344 @ Claydol
- .2byte 36 @ Clefable
- .2byte 35 @ Clefairy
- .2byte 173 @ Cleffa
- .2byte 91 @ Cloyster
- .2byte 256 @ Combusken
- .2byte 341 @ Corphish
- .2byte 222 @ Corsola
- .2byte 346 @ Cradily
- .2byte 342 @ Crawdaunt
- .2byte 169 @ Crobat
- .2byte 159 @ Croconaw
- .2byte 104 @ Cubone
- .2byte 155 @ Cyndaquil
- .2byte 301 @ Delcatty
- .2byte 225 @ Delibird
- .2byte 386 @ Deoxys
- .2byte 87 @ Dewgong
- .2byte 50 @ Diglett
- .2byte 132 @ Ditto
- .2byte 85 @ Dodrio
- .2byte 84 @ Doduo
- .2byte 232 @ Donphan
- .2byte 148 @ Dragonair
- .2byte 149 @ Dragonite
- .2byte 147 @ Dratini
- .2byte 96 @ Drowzee
- .2byte 51 @ Dugtrio
- .2byte 206 @ Dunsparce
- .2byte 356 @ Dusclops
- .2byte 355 @ Duskull
- .2byte 269 @ Dustox
- .2byte 133 @ Eevee
- .2byte 23 @ Ekans
- .2byte 125 @ Electabuzz
- .2byte 309 @ Electrike
- .2byte 101 @ Electrode
- .2byte 239 @ Elekid
- .2byte 244 @ Entei
- .2byte 196 @ Espeon
- .2byte 102 @ Exeggcute
- .2byte 103 @ Exeggutor
- .2byte 295 @ Exploud
- .2byte 83 @ Farfetch’d
- .2byte 22 @ Fearow
- .2byte 349 @ Feebas
- .2byte 160 @ Feraligatr
- .2byte 180 @ Flaaffy
- .2byte 136 @ Flareon
- .2byte 330 @ Flygon
- .2byte 205 @ Forretress
- .2byte 162 @ Furret
- .2byte 282 @ Gardevoir
- .2byte 92 @ Gastly
- .2byte 94 @ Gengar
- .2byte 74 @ Geodude
- .2byte 203 @ Girafarig
- .2byte 362 @ Glalie
- .2byte 207 @ Gligar
- .2byte 44 @ Gloom
- .2byte 42 @ Golbat
- .2byte 118 @ Goldeen
- .2byte 55 @ Golduck
- .2byte 76 @ Golem
- .2byte 368 @ Gorebyss
- .2byte 210 @ Granbull
- .2byte 75 @ Graveler
- .2byte 88 @ Grimer
- .2byte 383 @ Groudon
- .2byte 253 @ Grovyle
- .2byte 58 @ Growlithe
- .2byte 326 @ Grumpig
- .2byte 316 @ Gulpin
- .2byte 130 @ Gyarados
- .2byte 297 @ Hariyama
- .2byte 93 @ Haunter
- .2byte 214 @ Heracross
- .2byte 107 @ Hitmonchan
- .2byte 106 @ Hitmonlee
- .2byte 237 @ Hitmontop
- .2byte 250 @ Ho-Oh
- .2byte 163 @ Hoothoot
- .2byte 187 @ Hoppip
- .2byte 116 @ Horsea
- .2byte 229 @ Houndoom
- .2byte 228 @ Houndour
- .2byte 367 @ Huntail
- .2byte 97 @ Hypno
- .2byte 174 @ Igglybuff
- .2byte 314 @ Illumise
- .2byte 2 @ Ivysaur
- .2byte 39 @ Jigglypuff
- .2byte 385 @ Jirachi
- .2byte 135 @ Jolteon
- .2byte 189 @ Jumpluff
- .2byte 124 @ Jynx
- .2byte 140 @ Kabuto
- .2byte 141 @ Kabutops
- .2byte 64 @ Kadabra
- .2byte 14 @ Kakuna
- .2byte 115 @ Kangaskhan
- .2byte 352 @ Kecleon
- .2byte 230 @ Kingdra
- .2byte 99 @ Kingler
- .2byte 281 @ Kirlia
- .2byte 109 @ Koffing
- .2byte 98 @ Krabby
- .2byte 382 @ Kyogre
- .2byte 305 @ Lairon
- .2byte 171 @ Lanturn
- .2byte 131 @ Lapras
- .2byte 246 @ Larvitar
- .2byte 380 @ Latias
- .2byte 381 @ Latios
- .2byte 166 @ Ledian
- .2byte 165 @ Ledyba
- .2byte 108 @ Lickitung
- .2byte 345 @ Lileep
- .2byte 264 @ Linoone
- .2byte 271 @ Lombre
- .2byte 270 @ Lotad
- .2byte 294 @ Loudred
- .2byte 272 @ Ludicolo
- .2byte 249 @ Lugia
- .2byte 337 @ Lunatone
- .2byte 370 @ Luvdisc
- .2byte 68 @ Machamp
- .2byte 67 @ Machoke
- .2byte 66 @ Machop
- .2byte 240 @ Magby
- .2byte 219 @ Magcargo
- .2byte 129 @ Magikarp
- .2byte 126 @ Magmar
- .2byte 81 @ Magnemite
- .2byte 82 @ Magneton
- .2byte 296 @ Makuhita
- .2byte 310 @ Manectric
- .2byte 56 @ Mankey
- .2byte 226 @ Mantine
- .2byte 179 @ Mareep
- .2byte 183 @ Marill
- .2byte 105 @ Marowak
- .2byte 259 @ Marshtomp
- .2byte 284 @ Masquerain
- .2byte 303 @ Mawile
- .2byte 308 @ Medicham
- .2byte 307 @ Meditite
- .2byte 154 @ Meganium
- .2byte 52 @ Meowth
- .2byte 376 @ Metagross
- .2byte 375 @ Metang
- .2byte 11 @ Metapod
- .2byte 151 @ Mew
- .2byte 150 @ Mewtwo
- .2byte 262 @ Mightyena
- .2byte 350 @ Milotic
- .2byte 241 @ Miltank
- .2byte 312 @ Minun
- .2byte 200 @ Misdreavus
- .2byte 146 @ Moltres
- .2byte 122 @ Mr. mime
- .2byte 258 @ Mudkip
- .2byte 89 @ Muk
- .2byte 198 @ Murkrow
- .2byte 177 @ Natu
- .2byte 34 @ Nidoking
- .2byte 31 @ Nidoqueen
- .2byte 29 @ Nidoran♀
- .2byte 32 @ Nidoran♂
- .2byte 30 @ Nidorina
- .2byte 33 @ Nidorino
- .2byte 290 @ Nincada
- .2byte 38 @ Ninetales
- .2byte 291 @ Ninjask
- .2byte 164 @ Noctowl
- .2byte 299 @ Nosepass
- .2byte 322 @ Numel
- .2byte 274 @ Nuzleaf
- .2byte 224 @ Octillery
- .2byte 43 @ Oddish
- .2byte 138 @ Omanyte
- .2byte 139 @ Omastar
- .2byte 95 @ Onix
- .2byte 46 @ Paras
- .2byte 47 @ Parasect
- .2byte 279 @ Pelipper
- .2byte 53 @ Persian
- .2byte 231 @ Phanpy
- .2byte 172 @ Pichu
- .2byte 18 @ Pidgeot
- .2byte 17 @ Pidgeotto
- .2byte 16 @ Pidgey
- .2byte 25 @ Pikachu
- .2byte 221 @ Piloswine
- .2byte 204 @ Pineco
- .2byte 127 @ Pinsir
- .2byte 311 @ Plusle
- .2byte 186 @ Politoed
- .2byte 60 @ Poliwag
- .2byte 61 @ Poliwhirl
- .2byte 62 @ Poliwrath
- .2byte 77 @ Ponyta
- .2byte 261 @ Poochyena
- .2byte 137 @ Porygon
- .2byte 233 @ Porygon2
- .2byte 57 @ Primeape
- .2byte 54 @ Psyduck
- .2byte 247 @ Pupitar
- .2byte 195 @ Quagsire
- .2byte 156 @ Quilava
- .2byte 211 @ Qwilfish
- .2byte 26 @ Raichu
- .2byte 243 @ Raikou
- .2byte 280 @ Ralts
- .2byte 78 @ Rapidash
- .2byte 20 @ Raticate
- .2byte 19 @ Rattata
- .2byte 384 @ Rayquaza
- .2byte 378 @ Regice
- .2byte 377 @ Regirock
- .2byte 379 @ Registeel
- .2byte 369 @ Relicanth
- .2byte 223 @ Remoraid
- .2byte 112 @ Rhydon
- .2byte 111 @ Rhyhorn
- .2byte 315 @ Roselia
- .2byte 302 @ Sableye
- .2byte 373 @ Salamence
- .2byte 27 @ Sandshrew
- .2byte 28 @ Sandslash
- .2byte 254 @ Sceptile
- .2byte 212 @ Scizor
- .2byte 123 @ Scyther
- .2byte 117 @ Seadra
- .2byte 119 @ Seaking
- .2byte 364 @ Sealeo
- .2byte 273 @ Seedot
- .2byte 86 @ Seel
- .2byte 161 @ Sentret
- .2byte 336 @ Seviper
- .2byte 319 @ Sharpedo
- .2byte 292 @ Shedinja
- .2byte 372 @ Shelgon
- .2byte 90 @ Shellder
- .2byte 275 @ Shiftry
- .2byte 285 @ Shroomish
- .2byte 213 @ Shuckle
- .2byte 353 @ Shuppet
- .2byte 266 @ Silcoon
- .2byte 227 @ Skarmory
- .2byte 188 @ Skiploom
- .2byte 300 @ Skitty
- .2byte 289 @ Slaking
- .2byte 287 @ Slakoth
- .2byte 80 @ Slowbro
- .2byte 199 @ Slowking
- .2byte 79 @ Slowpoke
- .2byte 218 @ Slugma
- .2byte 235 @ Smeargle
- .2byte 238 @ Smoochum
- .2byte 215 @ Sneasel
- .2byte 143 @ Snorlax
- .2byte 361 @ Snorunt
- .2byte 209 @ Snubbull
- .2byte 338 @ Solrock
- .2byte 21 @ Spearow
- .2byte 363 @ Spheal
- .2byte 167 @ Spinarak
- .2byte 327 @ Spinda
- .2byte 325 @ Spoink
- .2byte 7 @ Squirtle
- .2byte 234 @ Stantler
- .2byte 121 @ Starmie
- .2byte 120 @ Staryu
- .2byte 208 @ Steelix
- .2byte 185 @ Sudowoodo
- .2byte 245 @ Suicune
- .2byte 192 @ Sunflora
- .2byte 191 @ Sunkern
- .2byte 283 @ Surskit
- .2byte 333 @ Swablu
- .2byte 317 @ Swalot
- .2byte 260 @ Swampert
- .2byte 277 @ Swellow
- .2byte 220 @ Swinub
- .2byte 276 @ Taillow
- .2byte 114 @ Tangela
- .2byte 128 @ Tauros
- .2byte 216 @ Teddiursa
- .2byte 72 @ Tentacool
- .2byte 73 @ Tentacruel
- .2byte 175 @ Togepi
- .2byte 176 @ Togetic
- .2byte 255 @ Torchic
- .2byte 324 @ Torkoal
- .2byte 158 @ Totodile
- .2byte 328 @ Trapinch
- .2byte 252 @ Treecko
- .2byte 357 @ Tropius
- .2byte 157 @ Typhlosion
- .2byte 248 @ Tyranitar
- .2byte 236 @ Tyrogue
- .2byte 197 @ Umbreon
- .2byte 201 @ Unown
- .2byte 217 @ Ursaring
- .2byte 134 @ Vaporeon
- .2byte 49 @ Venomoth
- .2byte 48 @ Venonat
- .2byte 3 @ Venusaur
- .2byte 329 @ Vibrava
- .2byte 71 @ Victreebel
- .2byte 288 @ Vigoroth
- .2byte 45 @ Vileplume
- .2byte 313 @ Volbeat
- .2byte 100 @ Voltorb
- .2byte 37 @ Vulpix
- .2byte 320 @ Wailmer
- .2byte 321 @ Wailord
- .2byte 365 @ Walrein
- .2byte 8 @ Wartortle
- .2byte 13 @ Weedle
- .2byte 70 @ Weepinbell
- .2byte 110 @ Weezing
- .2byte 340 @ Whiscash
- .2byte 293 @ Whismur
- .2byte 40 @ Wigglytuff
- .2byte 278 @ Wingull
- .2byte 202 @ Wobbuffet
- .2byte 194 @ Wooper
- .2byte 265 @ Wurmple
- .2byte 360 @ Wynaut
- .2byte 178 @ Xatu
- .2byte 193 @ Yanma
- .2byte 335 @ Zangoose
- .2byte 145 @ Zapdos
- .2byte 263 @ Zigzagoon
- .2byte 41 @ Zubat
-
- .align 1
-gPokedexOrder_Weight:: @ 839FDFA
- .2byte 92 @ Gastly
- .2byte 93 @ Haunter
- .2byte 187 @ Hoppip
- .2byte 50 @ Diglett
- .2byte 351 @ Castform
- .2byte 109 @ Koffing
- .2byte 174 @ Igglybuff
- .2byte 200 @ Misdreavus
- .2byte 358 @ Chimecho
- .2byte 188 @ Skiploom
- .2byte 385 @ Jirachi
- .2byte 333 @ Swablu
- .2byte 292 @ Shedinja
- .2byte 175 @ Togepi
- .2byte 283 @ Surskit
- .2byte 16 @ Pidgey
- .2byte 191 @ Sunkern
- .2byte 339 @ Barboach
- .2byte 172 @ Pichu
- .2byte 298 @ Azurill
- .2byte 315 @ Roselia
- .2byte 177 @ Natu
- .2byte 21 @ Spearow
- .2byte 198 @ Murkrow
- .2byte 353 @ Shuppet
- .2byte 276 @ Taillow
- .2byte 102 @ Exeggcute
- .2byte 255 @ Torchic
- .2byte 270 @ Lotad
- .2byte 10 @ Caterpie
- .2byte 189 @ Jumpluff
- .2byte 173 @ Cleffa
- .2byte 13 @ Weedle
- .2byte 176 @ Togetic
- .2byte 147 @ Dratini
- .2byte 19 @ Rattata
- .2byte 284 @ Masquerain
- .2byte 265 @ Wurmple
- .2byte 211 @ Qwilfish
- .2byte 151 @ Mew
- .2byte 90 @ Shellder
- .2byte 273 @ Seedot
- .2byte 132 @ Ditto
- .2byte 69 @ Bellsprout
- .2byte 311 @ Plusle
- .2byte 52 @ Meowth
- .2byte 312 @ Minun
- .2byte 285 @ Shroomish
- .2byte 251 @ Celebi
- .2byte 222 @ Corsola
- .2byte 252 @ Treecko
- .2byte 327 @ Spinda
- .2byte 201 @ Unown
- .2byte 46 @ Paras
- .2byte 43 @ Oddish
- .2byte 39 @ Jigglypuff
- .2byte 290 @ Nincada
- .2byte 182 @ Bellossom
- .2byte 81 @ Magnemite
- .2byte 25 @ Pikachu
- .2byte 238 @ Smoochum
- .2byte 161 @ Sentret
- .2byte 70 @ Weepinbell
- .2byte 152 @ Chikorita
- .2byte 220 @ Swinub
- .2byte 133 @ Eevee
- .2byte 98 @ Krabby
- .2byte 104 @ Cubone
- .2byte 280 @ Ralts
- .2byte 1 @ Bulbasaur
- .2byte 23 @ Ekans
- .2byte 29 @ Nidoran♀
- .2byte 204 @ Pineco
- .2byte 349 @ Feebas
- .2byte 138 @ Omanyte
- .2byte 41 @ Zubat
- .2byte 35 @ Clefairy
- .2byte 258 @ Mudkip
- .2byte 209 @ Snubbull
- .2byte 179 @ Mareep
- .2byte 155 @ Cyndaquil
- .2byte 116 @ Horsea
- .2byte 4 @ Charmander
- .2byte 192 @ Sunflora
- .2byte 183 @ Marill
- .2byte 194 @ Wooper
- .2byte 167 @ Spinarak
- .2byte 44 @ Gloom
- .2byte 370 @ Luvdisc
- .2byte 216 @ Teddiursa
- .2byte 32 @ Nidoran♂
- .2byte 7 @ Squirtle
- .2byte 278 @ Wingull
- .2byte 158 @ Totodile
- .2byte 110 @ Weezing
- .2byte 37 @ Vulpix
- .2byte 11 @ Metapod
- .2byte 266 @ Silcoon
- .2byte 129 @ Magikarp
- .2byte 14 @ Kakuna
- .2byte 316 @ Gulpin
- .2byte 100 @ Voltorb
- .2byte 165 @ Ledyba
- .2byte 228 @ Houndour
- .2byte 300 @ Skitty
- .2byte 302 @ Sableye
- .2byte 307 @ Meditite
- .2byte 341 @ Corphish
- .2byte 190 @ Aipom
- .2byte 268 @ Cascoon
- .2byte 303 @ Mawile
- .2byte 140 @ Kabuto
- .2byte 40 @ Wigglytuff
- .2byte 27 @ Sandshrew
- .2byte 223 @ Remoraid
- .2byte 291 @ Ninjask
- .2byte 170 @ Chinchou
- .2byte 60 @ Poliwag
- .2byte 347 @ Anorith
- .2byte 49 @ Venomoth
- .2byte 354 @ Banette
- .2byte 2 @ Ivysaur
- .2byte 180 @ Flaaffy
- .2byte 261 @ Poochyena
- .2byte 360 @ Wynaut
- .2byte 206 @ Dunsparce
- .2byte 178 @ Xatu
- .2byte 355 @ Duskull
- .2byte 83 @ Farfetch’d
- .2byte 328 @ Trapinch
- .2byte 118 @ Goldeen
- .2byte 309 @ Electrike
- .2byte 329 @ Vibrava
- .2byte 71 @ Victreebel
- .2byte 153 @ Bayleef
- .2byte 225 @ Delibird
- .2byte 293 @ Whismur
- .2byte 148 @ Dragonair
- .2byte 361 @ Snorunt
- .2byte 263 @ Zigzagoon
- .2byte 314 @ Illumise
- .2byte 313 @ Volbeat
- .2byte 20 @ Raticate
- .2byte 45 @ Vileplume
- .2byte 156 @ Quilava
- .2byte 5 @ Charmeleon
- .2byte 58 @ Growlithe
- .2byte 256 @ Combusken
- .2byte 66 @ Machop
- .2byte 63 @ Abra
- .2byte 33 @ Nidorino
- .2byte 54 @ Psyduck
- .2byte 277 @ Swellow
- .2byte 38 @ Ninetales
- .2byte 30 @ Nidorina
- .2byte 61 @ Poliwhirl
- .2byte 74 @ Geodude
- .2byte 281 @ Kirlia
- .2byte 213 @ Shuckle
- .2byte 334 @ Altaria
- .2byte 318 @ Carvanha
- .2byte 236 @ Tyrogue
- .2byte 163 @ Hoothoot
- .2byte 240 @ Magby
- .2byte 343 @ Baltoy
- .2byte 253 @ Grovyle
- .2byte 352 @ Kecleon
- .2byte 171 @ Lanturn
- .2byte 8 @ Wartortle
- .2byte 368 @ Gorebyss
- .2byte 369 @ Relicanth
- .2byte 239 @ Elekid
- .2byte 340 @ Whiscash
- .2byte 345 @ Lileep
- .2byte 322 @ Numel
- .2byte 287 @ Slakoth
- .2byte 135 @ Jolteon
- .2byte 159 @ Croconaw
- .2byte 136 @ Flareon
- .2byte 117 @ Seadra
- .2byte 196 @ Espeon
- .2byte 367 @ Huntail
- .2byte 197 @ Umbreon
- .2byte 259 @ Marshtomp
- .2byte 274 @ Nuzleaf
- .2byte 215 @ Sneasel
- .2byte 56 @ Mankey
- .2byte 279 @ Pelipper
- .2byte 267 @ Beautifly
- .2byte 224 @ Octillery
- .2byte 184 @ Azumarill
- .2byte 202 @ Wobbuffet
- .2byte 134 @ Vaporeon
- .2byte 28 @ Sandslash
- .2byte 47 @ Parasect
- .2byte 15 @ Beedrill
- .2byte 89 @ Muk
- .2byte 17 @ Pidgeotto
- .2byte 88 @ Grimer
- .2byte 26 @ Raichu
- .2byte 77 @ Ponyta
- .2byte 125 @ Electabuzz
- .2byte 48 @ Venonat
- .2byte 325 @ Spoink
- .2byte 356 @ Dusclops
- .2byte 308 @ Medicham
- .2byte 269 @ Dustox
- .2byte 53 @ Persian
- .2byte 12 @ Butterfree
- .2byte 57 @ Primeape
- .2byte 96 @ Drowzee
- .2byte 162 @ Furret
- .2byte 233 @ Porygon2
- .2byte 271 @ Lombre
- .2byte 264 @ Linoone
- .2byte 301 @ Delcatty
- .2byte 342 @ Crawdaunt
- .2byte 51 @ Dugtrio
- .2byte 168 @ Ariados
- .2byte 231 @ Phanpy
- .2byte 186 @ Politoed
- .2byte 120 @ Staryu
- .2byte 113 @ Chansey
- .2byte 139 @ Omastar
- .2byte 114 @ Tangela
- .2byte 218 @ Slugma
- .2byte 229 @ Houndoom
- .2byte 166 @ Ledian
- .2byte 79 @ Slowpoke
- .2byte 137 @ Porygon
- .2byte 262 @ Mightyena
- .2byte 193 @ Yanma
- .2byte 22 @ Fearow
- .2byte 185 @ Sudowoodo
- .2byte 119 @ Seaking
- .2byte 286 @ Breloom
- .2byte 84 @ Doduo
- .2byte 18 @ Pidgeot
- .2byte 363 @ Spheal
- .2byte 36 @ Clefable
- .2byte 380 @ Latias
- .2byte 310 @ Manectric
- .2byte 335 @ Zangoose
- .2byte 141 @ Kabutops
- .2byte 94 @ Gengar
- .2byte 294 @ Loudred
- .2byte 124 @ Jynx
- .2byte 164 @ Noctowl
- .2byte 203 @ Girafarig
- .2byte 371 @ Bagon
- .2byte 126 @ Magmar
- .2byte 105 @ Marowak
- .2byte 72 @ Tentacool
- .2byte 288 @ Vigoroth
- .2byte 242 @ Blissey
- .2byte 359 @ Absol
- .2byte 65 @ Alakazam
- .2byte 237 @ Hitmontop
- .2byte 282 @ Gardevoir
- .2byte 210 @ Granbull
- .2byte 106 @ Hitmonlee
- .2byte 107 @ Hitmonchan
- .2byte 227 @ Skarmory
- .2byte 331 @ Cacnea
- .2byte 257 @ Blaziken
- .2byte 254 @ Sceptile
- .2byte 336 @ Seviper
- .2byte 366 @ Clamperl
- .2byte 145 @ Zapdos
- .2byte 214 @ Heracross
- .2byte 62 @ Poliwrath
- .2byte 122 @ Mr. mime
- .2byte 127 @ Pinsir
- .2byte 272 @ Ludicolo
- .2byte 73 @ Tentacruel
- .2byte 42 @ Golbat
- .2byte 219 @ Magcargo
- .2byte 144 @ Articuno
- .2byte 221 @ Piloswine
- .2byte 123 @ Scyther
- .2byte 64 @ Kadabra
- .2byte 235 @ Smeargle
- .2byte 142 @ Aerodactyl
- .2byte 275 @ Shiftry
- .2byte 99 @ Kingler
- .2byte 31 @ Nidoqueen
- .2byte 82 @ Magneton
- .2byte 304 @ Aron
- .2byte 381 @ Latios
- .2byte 146 @ Moltres
- .2byte 346 @ Cradily
- .2byte 386 @ Deoxys
- .2byte 181 @ Ampharos
- .2byte 34 @ Nidoking
- .2byte 207 @ Gligar
- .2byte 24 @ Arbok
- .2byte 108 @ Lickitung
- .2byte 101 @ Electrode
- .2byte 348 @ Armaldo
- .2byte 67 @ Machoke
- .2byte 234 @ Stantler
- .2byte 326 @ Grumpig
- .2byte 246 @ Larvitar
- .2byte 169 @ Crobat
- .2byte 195 @ Quagsire
- .2byte 241 @ Miltank
- .2byte 97 @ Hypno
- .2byte 55 @ Golduck
- .2byte 332 @ Cacturne
- .2byte 80 @ Slowbro
- .2byte 157 @ Typhlosion
- .2byte 199 @ Slowking
- .2byte 115 @ Kangaskhan
- .2byte 121 @ Starmie
- .2byte 317 @ Swalot
- .2byte 324 @ Torkoal
- .2byte 260 @ Swampert
- .2byte 330 @ Flygon
- .2byte 295 @ Exploud
- .2byte 85 @ Dodrio
- .2byte 9 @ Blastoise
- .2byte 296 @ Makuhita
- .2byte 364 @ Sealeo
- .2byte 128 @ Tauros
- .2byte 319 @ Sharpedo
- .2byte 160 @ Feraligatr
- .2byte 86 @ Seel
- .2byte 6 @ Charizard
- .2byte 78 @ Rapidash
- .2byte 374 @ Beldum
- .2byte 299 @ Nosepass
- .2byte 3 @ Venusaur
- .2byte 357 @ Tropius
- .2byte 154 @ Meganium
- .2byte 373 @ Salamence
- .2byte 75 @ Graveler
- .2byte 344 @ Claydol
- .2byte 372 @ Shelgon
- .2byte 111 @ Rhyhorn
- .2byte 212 @ Scizor
- .2byte 87 @ Dewgong
- .2byte 112 @ Rhydon
- .2byte 232 @ Donphan
- .2byte 103 @ Exeggutor
- .2byte 305 @ Lairon
- .2byte 150 @ Mewtwo
- .2byte 217 @ Ursaring
- .2byte 205 @ Forretress
- .2byte 68 @ Machamp
- .2byte 320 @ Wailmer
- .2byte 289 @ Slaking
- .2byte 91 @ Cloyster
- .2byte 365 @ Walrein
- .2byte 247 @ Pupitar
- .2byte 230 @ Kingdra
- .2byte 338 @ Solrock
- .2byte 59 @ Arcanine
- .2byte 350 @ Milotic
- .2byte 337 @ Lunatone
- .2byte 378 @ Regice
- .2byte 243 @ Raikou
- .2byte 245 @ Suicune
- .2byte 244 @ Entei
- .2byte 250 @ Ho-Oh
- .2byte 248 @ Tyranitar
- .2byte 375 @ Metang
- .2byte 379 @ Registeel
- .2byte 384 @ Rayquaza
- .2byte 95 @ Onix
- .2byte 149 @ Dragonite
- .2byte 249 @ Lugia
- .2byte 131 @ Lapras
- .2byte 323 @ Camerupt
- .2byte 226 @ Mantine
- .2byte 377 @ Regirock
- .2byte 130 @ Gyarados
- .2byte 297 @ Hariyama
- .2byte 362 @ Glalie
- .2byte 76 @ Golem
- .2byte 382 @ Kyogre
- .2byte 306 @ Aggron
- .2byte 321 @ Wailord
- .2byte 208 @ Steelix
- .2byte 143 @ Snorlax
- .2byte 376 @ Metagross
- .2byte 383 @ Groudon
-
- .align 1
-gPokedexOrder_Height:: @ 83A00FE
- .2byte 50 @ Diglett
- .2byte 298 @ Azurill
- .2byte 177 @ Natu
- .2byte 13 @ Weedle
- .2byte 172 @ Pichu
- .2byte 173 @ Cleffa
- .2byte 175 @ Togepi
- .2byte 351 @ Castform
- .2byte 174 @ Igglybuff
- .2byte 10 @ Caterpie
- .2byte 276 @ Taillow
- .2byte 132 @ Ditto
- .2byte 133 @ Eevee
- .2byte 315 @ Roselia
- .2byte 21 @ Spearow
- .2byte 16 @ Pidgey
- .2byte 191 @ Sunkern
- .2byte 90 @ Shellder
- .2byte 19 @ Rattata
- .2byte 81 @ Magnemite
- .2byte 46 @ Paras
- .2byte 265 @ Wurmple
- .2byte 385 @ Jirachi
- .2byte 104 @ Cubone
- .2byte 258 @ Mudkip
- .2byte 194 @ Wooper
- .2byte 116 @ Horsea
- .2byte 52 @ Meowth
- .2byte 29 @ Nidoran♀
- .2byte 220 @ Swinub
- .2byte 151 @ Mew
- .2byte 333 @ Swablu
- .2byte 304 @ Aron
- .2byte 311 @ Plusle
- .2byte 312 @ Minun
- .2byte 102 @ Exeggcute
- .2byte 25 @ Pikachu
- .2byte 182 @ Bellossom
- .2byte 316 @ Gulpin
- .2byte 263 @ Zigzagoon
- .2byte 285 @ Shroomish
- .2byte 138 @ Omanyte
- .2byte 331 @ Cacnea
- .2byte 98 @ Krabby
- .2byte 280 @ Ralts
- .2byte 187 @ Hoppip
- .2byte 255 @ Torchic
- .2byte 366 @ Clamperl
- .2byte 74 @ Geodude
- .2byte 183 @ Marill
- .2byte 339 @ Barboach
- .2byte 238 @ Smoochum
- .2byte 100 @ Voltorb
- .2byte 290 @ Nincada
- .2byte 302 @ Sableye
- .2byte 198 @ Murkrow
- .2byte 211 @ Qwilfish
- .2byte 7 @ Squirtle
- .2byte 252 @ Treecko
- .2byte 343 @ Baltoy
- .2byte 43 @ Oddish
- .2byte 270 @ Lotad
- .2byte 39 @ Jigglypuff
- .2byte 283 @ Surskit
- .2byte 155 @ Cyndaquil
- .2byte 140 @ Kabuto
- .2byte 264 @ Linoone
- .2byte 324 @ Torkoal
- .2byte 32 @ Nidoran♂
- .2byte 167 @ Spinarak
- .2byte 56 @ Mankey
- .2byte 273 @ Seedot
- .2byte 261 @ Poochyena
- .2byte 231 @ Phanpy
- .2byte 201 @ Unown
- .2byte 170 @ Chinchou
- .2byte 233 @ Porygon2
- .2byte 60 @ Poliwag
- .2byte 371 @ Bagon
- .2byte 349 @ Feebas
- .2byte 353 @ Shuppet
- .2byte 158 @ Totodile
- .2byte 251 @ Celebi
- .2byte 360 @ Wynaut
- .2byte 27 @ Sandshrew
- .2byte 358 @ Chimecho
- .2byte 370 @ Luvdisc
- .2byte 228 @ Houndour
- .2byte 266 @ Silcoon
- .2byte 309 @ Electrike
- .2byte 4 @ Charmander
- .2byte 307 @ Meditite
- .2byte 278 @ Wingull
- .2byte 223 @ Remoraid
- .2byte 341 @ Corphish
- .2byte 222 @ Corsola
- .2byte 314 @ Illumise
- .2byte 209 @ Snubbull
- .2byte 37 @ Vulpix
- .2byte 246 @ Larvitar
- .2byte 374 @ Beldum
- .2byte 293 @ Whismur
- .2byte 204 @ Pineco
- .2byte 239 @ Elekid
- .2byte 35 @ Clefairy
- .2byte 213 @ Shuckle
- .2byte 216 @ Teddiursa
- .2byte 14 @ Kakuna
- .2byte 300 @ Skitty
- .2byte 176 @ Togetic
- .2byte 118 @ Goldeen
- .2byte 303 @ Mawile
- .2byte 179 @ Mareep
- .2byte 188 @ Skiploom
- .2byte 109 @ Koffing
- .2byte 51 @ Dugtrio
- .2byte 268 @ Cascoon
- .2byte 322 @ Numel
- .2byte 347 @ Anorith
- .2byte 313 @ Volbeat
- .2byte 163 @ Hoothoot
- .2byte 328 @ Trapinch
- .2byte 325 @ Spoink
- .2byte 11 @ Metapod
- .2byte 69 @ Bellsprout
- .2byte 361 @ Snorunt
- .2byte 20 @ Raticate
- .2byte 259 @ Marshtomp
- .2byte 277 @ Swellow
- .2byte 240 @ Magby
- .2byte 58 @ Growlithe
- .2byte 200 @ Misdreavus
- .2byte 1 @ Bulbasaur
- .2byte 236 @ Tyrogue
- .2byte 218 @ Slugma
- .2byte 287 @ Slakoth
- .2byte 281 @ Kirlia
- .2byte 190 @ Aipom
- .2byte 135 @ Jolteon
- .2byte 30 @ Nidorina
- .2byte 184 @ Azumarill
- .2byte 292 @ Shedinja
- .2byte 66 @ Machop
- .2byte 291 @ Ninjask
- .2byte 284 @ Masquerain
- .2byte 355 @ Duskull
- .2byte 192 @ Sunflora
- .2byte 189 @ Jumpluff
- .2byte 120 @ Staryu
- .2byte 180 @ Flaaffy
- .2byte 363 @ Spheal
- .2byte 54 @ Psyduck
- .2byte 219 @ Magcargo
- .2byte 83 @ Farfetch’d
- .2byte 41 @ Zubat
- .2byte 137 @ Porygon
- .2byte 161 @ Sentret
- .2byte 318 @ Carvanha
- .2byte 44 @ Gloom
- .2byte 26 @ Raichu
- .2byte 129 @ Magikarp
- .2byte 215 @ Sneasel
- .2byte 305 @ Lairon
- .2byte 256 @ Combusken
- .2byte 224 @ Octillery
- .2byte 33 @ Nidorino
- .2byte 136 @ Flareon
- .2byte 225 @ Delibird
- .2byte 72 @ Tentacool
- .2byte 63 @ Abra
- .2byte 253 @ Grovyle
- .2byte 340 @ Whiscash
- .2byte 156 @ Quilava
- .2byte 196 @ Espeon
- .2byte 88 @ Grimer
- .2byte 152 @ Chikorita
- .2byte 326 @ Grumpig
- .2byte 299 @ Nosepass
- .2byte 53 @ Persian
- .2byte 262 @ Mightyena
- .2byte 48 @ Venonat
- .2byte 82 @ Magneton
- .2byte 77 @ Ponyta
- .2byte 296 @ Makuhita
- .2byte 337 @ Lunatone
- .2byte 28 @ Sandslash
- .2byte 96 @ Drowzee
- .2byte 114 @ Tangela
- .2byte 57 @ Primeape
- .2byte 165 @ Ledyba
- .2byte 40 @ Wigglytuff
- .2byte 47 @ Parasect
- .2byte 139 @ Omastar
- .2byte 294 @ Loudred
- .2byte 8 @ Wartortle
- .2byte 75 @ Graveler
- .2byte 197 @ Umbreon
- .2byte 345 @ Lileep
- .2byte 61 @ Poliwhirl
- .2byte 134 @ Vaporeon
- .2byte 15 @ Beedrill
- .2byte 105 @ Marowak
- .2byte 70 @ Weepinbell
- .2byte 369 @ Relicanth
- .2byte 111 @ Rhyhorn
- .2byte 2 @ Ivysaur
- .2byte 352 @ Kecleon
- .2byte 274 @ Nuzleaf
- .2byte 267 @ Beautifly
- .2byte 17 @ Pidgeotto
- .2byte 168 @ Ariados
- .2byte 86 @ Seel
- .2byte 186 @ Politoed
- .2byte 159 @ Croconaw
- .2byte 113 @ Chansey
- .2byte 354 @ Banette
- .2byte 232 @ Donphan
- .2byte 121 @ Starmie
- .2byte 5 @ Charmeleon
- .2byte 221 @ Piloswine
- .2byte 12 @ Butterfree
- .2byte 329 @ Vibrava
- .2byte 125 @ Electabuzz
- .2byte 342 @ Crawdaunt
- .2byte 301 @ Delcatty
- .2byte 334 @ Altaria
- .2byte 372 @ Shelgon
- .2byte 38 @ Ninetales
- .2byte 207 @ Gligar
- .2byte 364 @ Sealeo
- .2byte 327 @ Spinda
- .2byte 247 @ Pupitar
- .2byte 79 @ Slowpoke
- .2byte 338 @ Solrock
- .2byte 241 @ Miltank
- .2byte 22 @ Fearow
- .2byte 45 @ Vileplume
- .2byte 89 @ Muk
- .2byte 205 @ Forretress
- .2byte 185 @ Sudowoodo
- .2byte 359 @ Absol
- .2byte 193 @ Yanma
- .2byte 269 @ Dustox
- .2byte 108 @ Lickitung
- .2byte 235 @ Smeargle
- .2byte 171 @ Lanturn
- .2byte 101 @ Electrode
- .2byte 271 @ Lombre
- .2byte 286 @ Breloom
- .2byte 153 @ Bayleef
- .2byte 117 @ Seadra
- .2byte 110 @ Weezing
- .2byte 279 @ Pelipper
- .2byte 375 @ Metang
- .2byte 31 @ Nidoqueen
- .2byte 332 @ Cacturne
- .2byte 275 @ Shiftry
- .2byte 308 @ Medicham
- .2byte 335 @ Zangoose
- .2byte 141 @ Kabutops
- .2byte 99 @ Kingler
- .2byte 64 @ Kadabra
- .2byte 119 @ Seaking
- .2byte 36 @ Clefable
- .2byte 126 @ Magmar
- .2byte 202 @ Wobbuffet
- .2byte 92 @ Gastly
- .2byte 122 @ Mr. mime
- .2byte 62 @ Poliwrath
- .2byte 128 @ Tauros
- .2byte 380 @ Latias
- .2byte 181 @ Ampharos
- .2byte 288 @ Vigoroth
- .2byte 166 @ Ledian
- .2byte 76 @ Golem
- .2byte 365 @ Walrein
- .2byte 84 @ Doduo
- .2byte 229 @ Houndoom
- .2byte 34 @ Nidoking
- .2byte 124 @ Jynx
- .2byte 107 @ Hitmonchan
- .2byte 234 @ Stantler
- .2byte 210 @ Granbull
- .2byte 237 @ Hitmontop
- .2byte 195 @ Quagsire
- .2byte 344 @ Claydol
- .2byte 260 @ Swampert
- .2byte 242 @ Blissey
- .2byte 272 @ Ludicolo
- .2byte 295 @ Exploud
- .2byte 206 @ Dunsparce
- .2byte 127 @ Pinsir
- .2byte 91 @ Cloyster
- .2byte 67 @ Machoke
- .2byte 203 @ Girafarig
- .2byte 18 @ Pidgeot
- .2byte 178 @ Xatu
- .2byte 346 @ Cradily
- .2byte 106 @ Hitmonlee
- .2byte 49 @ Venomoth
- .2byte 94 @ Gengar
- .2byte 214 @ Heracross
- .2byte 362 @ Glalie
- .2byte 123 @ Scyther
- .2byte 373 @ Salamence
- .2byte 310 @ Manectric
- .2byte 348 @ Armaldo
- .2byte 65 @ Alakazam
- .2byte 97 @ Hypno
- .2byte 164 @ Noctowl
- .2byte 73 @ Tentacruel
- .2byte 356 @ Dusclops
- .2byte 145 @ Zapdos
- .2byte 42 @ Golbat
- .2byte 376 @ Metagross
- .2byte 282 @ Gardevoir
- .2byte 9 @ Blastoise
- .2byte 80 @ Slowbro
- .2byte 93 @ Haunter
- .2byte 68 @ Machamp
- .2byte 377 @ Regirock
- .2byte 317 @ Swalot
- .2byte 254 @ Sceptile
- .2byte 227 @ Skarmory
- .2byte 55 @ Golduck
- .2byte 386 @ Deoxys
- .2byte 71 @ Victreebel
- .2byte 78 @ Rapidash
- .2byte 6 @ Charizard
- .2byte 367 @ Huntail
- .2byte 87 @ Dewgong
- .2byte 144 @ Articuno
- .2byte 157 @ Typhlosion
- .2byte 142 @ Aerodactyl
- .2byte 368 @ Gorebyss
- .2byte 217 @ Ursaring
- .2byte 154 @ Meganium
- .2byte 378 @ Regice
- .2byte 212 @ Scizor
- .2byte 230 @ Kingdra
- .2byte 147 @ Dratini
- .2byte 85 @ Dodrio
- .2byte 319 @ Sharpedo
- .2byte 169 @ Crobat
- .2byte 162 @ Furret
- .2byte 59 @ Arcanine
- .2byte 243 @ Raikou
- .2byte 257 @ Blaziken
- .2byte 323 @ Camerupt
- .2byte 112 @ Rhydon
- .2byte 379 @ Registeel
- .2byte 23 @ Ekans
- .2byte 330 @ Flygon
- .2byte 357 @ Tropius
- .2byte 381 @ Latios
- .2byte 245 @ Suicune
- .2byte 146 @ Moltres
- .2byte 3 @ Venusaur
- .2byte 103 @ Exeggutor
- .2byte 199 @ Slowking
- .2byte 248 @ Tyranitar
- .2byte 289 @ Slaking
- .2byte 320 @ Wailmer
- .2byte 150 @ Mewtwo
- .2byte 306 @ Aggron
- .2byte 143 @ Snorlax
- .2byte 226 @ Mantine
- .2byte 244 @ Entei
- .2byte 149 @ Dragonite
- .2byte 115 @ Kangaskhan
- .2byte 297 @ Hariyama
- .2byte 160 @ Feraligatr
- .2byte 131 @ Lapras
- .2byte 336 @ Seviper
- .2byte 24 @ Arbok
- .2byte 383 @ Groudon
- .2byte 250 @ Ho-Oh
- .2byte 148 @ Dragonair
- .2byte 382 @ Kyogre
- .2byte 249 @ Lugia
- .2byte 350 @ Milotic
- .2byte 130 @ Gyarados
- .2byte 384 @ Rayquaza
- .2byte 95 @ Onix
- .2byte 208 @ Steelix
- .2byte 321 @ Wailord
diff --git a/include/graphics.h b/include/graphics.h
new file mode 100644
index 000000000..096a1982c
--- /dev/null
+++ b/include/graphics.h
@@ -0,0 +1,2412 @@
+#ifndef GUARD_GRAPHICS_H
+#define GUARD_GRAPHICS_H
+
+// data/graphics.s
+extern const u8 gMonFootprint_QuestionMark[];
+
+// data/graphics/pokemon/graphics.inc
+extern const u8 gMonFrontPic_Bulbasaur[];
+extern const u8 gMonPalette_Bulbasaur[];
+extern const u8 gMonBackPic_Bulbasaur[];
+extern const u8 gMonShinyPalette_Bulbasaur[];
+extern const u8 gMonIcon_Bulbasaur[];
+extern const u8 gMonFootprint_Bulbasaur[];
+extern const u8 gMonFrontPic_Ivysaur[];
+extern const u8 gMonPalette_Ivysaur[];
+extern const u8 gMonBackPic_Ivysaur[];
+extern const u8 gMonShinyPalette_Ivysaur[];
+extern const u8 gMonIcon_Ivysaur[];
+extern const u8 gMonFootprint_Ivysaur[];
+extern const u8 gMonFrontPic_Venusaur[];
+extern const u8 gMonPalette_Venusaur[];
+extern const u8 gMonBackPic_Venusaur[];
+extern const u8 gMonShinyPalette_Venusaur[];
+extern const u8 gMonIcon_Venusaur[];
+extern const u8 gMonFootprint_Venusaur[];
+extern const u8 gMonFrontPic_Charmander[];
+extern const u8 gMonPalette_Charmander[];
+extern const u8 gMonBackPic_Charmander[];
+extern const u8 gMonShinyPalette_Charmander[];
+extern const u8 gMonIcon_Charmander[];
+extern const u8 gMonFootprint_Charmander[];
+extern const u8 gMonFrontPic_Charmeleon[];
+extern const u8 gMonPalette_Charmeleon[];
+extern const u8 gMonBackPic_Charmeleon[];
+extern const u8 gMonShinyPalette_Charmeleon[];
+extern const u8 gMonIcon_Charmeleon[];
+extern const u8 gMonFootprint_Charmeleon[];
+extern const u8 gMonFrontPic_Charizard[];
+extern const u8 gMonPalette_Charizard[];
+extern const u8 gMonBackPic_Charizard[];
+extern const u8 gMonShinyPalette_Charizard[];
+extern const u8 gMonIcon_Charizard[];
+extern const u8 gMonFootprint_Charizard[];
+extern const u8 gMonFrontPic_Squirtle[];
+extern const u8 gMonPalette_Squirtle[];
+extern const u8 gMonBackPic_Squirtle[];
+extern const u8 gMonShinyPalette_Squirtle[];
+extern const u8 gMonIcon_Squirtle[];
+extern const u8 gMonFootprint_Squirtle[];
+extern const u8 gMonFrontPic_Wartortle[];
+extern const u8 gMonPalette_Wartortle[];
+extern const u8 gMonBackPic_Wartortle[];
+extern const u8 gMonShinyPalette_Wartortle[];
+extern const u8 gMonIcon_Wartortle[];
+extern const u8 gMonFootprint_Wartortle[];
+extern const u8 gMonFrontPic_Blastoise[];
+extern const u8 gMonPalette_Blastoise[];
+extern const u8 gMonBackPic_Blastoise[];
+extern const u8 gMonShinyPalette_Blastoise[];
+extern const u8 gMonIcon_Blastoise[];
+extern const u8 gMonFootprint_Blastoise[];
+extern const u8 gMonFrontPic_Caterpie[];
+extern const u8 gMonPalette_Caterpie[];
+extern const u8 gMonBackPic_Caterpie[];
+extern const u8 gMonShinyPalette_Caterpie[];
+extern const u8 gMonIcon_Caterpie[];
+extern const u8 gMonFootprint_Caterpie[];
+extern const u8 gMonFrontPic_Metapod[];
+extern const u8 gMonPalette_Metapod[];
+extern const u8 gMonBackPic_Metapod[];
+extern const u8 gMonShinyPalette_Metapod[];
+extern const u8 gMonIcon_Metapod[];
+extern const u8 gMonFootprint_Metapod[];
+extern const u8 gMonFrontPic_Butterfree[];
+extern const u8 gMonPalette_Butterfree[];
+extern const u8 gMonBackPic_Butterfree[];
+extern const u8 gMonShinyPalette_Butterfree[];
+extern const u8 gMonIcon_Butterfree[];
+extern const u8 gMonFootprint_Butterfree[];
+extern const u8 gMonFrontPic_Weedle[];
+extern const u8 gMonPalette_Weedle[];
+extern const u8 gMonBackPic_Weedle[];
+extern const u8 gMonShinyPalette_Weedle[];
+extern const u8 gMonIcon_Weedle[];
+extern const u8 gMonFootprint_Weedle[];
+extern const u8 gMonFrontPic_Kakuna[];
+extern const u8 gMonPalette_Kakuna[];
+extern const u8 gMonBackPic_Kakuna[];
+extern const u8 gMonShinyPalette_Kakuna[];
+extern const u8 gMonIcon_Kakuna[];
+extern const u8 gMonFootprint_Kakuna[];
+extern const u8 gMonFrontPic_Beedrill[];
+extern const u8 gMonPalette_Beedrill[];
+extern const u8 gMonBackPic_Beedrill[];
+extern const u8 gMonShinyPalette_Beedrill[];
+extern const u8 gMonIcon_Beedrill[];
+extern const u8 gMonFootprint_Beedrill[];
+extern const u8 gMonFrontPic_Pidgey[];
+extern const u8 gMonPalette_Pidgey[];
+extern const u8 gMonBackPic_Pidgey[];
+extern const u8 gMonShinyPalette_Pidgey[];
+extern const u8 gMonIcon_Pidgey[];
+extern const u8 gMonFootprint_Pidgey[];
+extern const u8 gMonFrontPic_Pidgeotto[];
+extern const u8 gMonPalette_Pidgeotto[];
+extern const u8 gMonBackPic_Pidgeotto[];
+extern const u8 gMonShinyPalette_Pidgeotto[];
+extern const u8 gMonIcon_Pidgeotto[];
+extern const u8 gMonFootprint_Pidgeotto[];
+extern const u8 gMonFrontPic_Pidgeot[];
+extern const u8 gMonPalette_Pidgeot[];
+extern const u8 gMonBackPic_Pidgeot[];
+extern const u8 gMonShinyPalette_Pidgeot[];
+extern const u8 gMonIcon_Pidgeot[];
+extern const u8 gMonFootprint_Pidgeot[];
+extern const u8 gMonFrontPic_Rattata[];
+extern const u8 gMonPalette_Rattata[];
+extern const u8 gMonBackPic_Rattata[];
+extern const u8 gMonShinyPalette_Rattata[];
+extern const u8 gMonIcon_Rattata[];
+extern const u8 gMonFootprint_Rattata[];
+extern const u8 gMonFrontPic_Raticate[];
+extern const u8 gMonPalette_Raticate[];
+extern const u8 gMonBackPic_Raticate[];
+extern const u8 gMonShinyPalette_Raticate[];
+extern const u8 gMonIcon_Raticate[];
+extern const u8 gMonFootprint_Raticate[];
+extern const u8 gMonFrontPic_Spearow[];
+extern const u8 gMonPalette_Spearow[];
+extern const u8 gMonBackPic_Spearow[];
+extern const u8 gMonShinyPalette_Spearow[];
+extern const u8 gMonIcon_Spearow[];
+extern const u8 gMonFootprint_Spearow[];
+extern const u8 gMonFrontPic_Fearow[];
+extern const u8 gMonPalette_Fearow[];
+extern const u8 gMonBackPic_Fearow[];
+extern const u8 gMonShinyPalette_Fearow[];
+extern const u8 gMonIcon_Fearow[];
+extern const u8 gMonFootprint_Fearow[];
+extern const u8 gMonFrontPic_Ekans[];
+extern const u8 gMonPalette_Ekans[];
+extern const u8 gMonBackPic_Ekans[];
+extern const u8 gMonShinyPalette_Ekans[];
+extern const u8 gMonIcon_Ekans[];
+extern const u8 gMonFootprint_Ekans[];
+extern const u8 gMonFrontPic_Arbok[];
+extern const u8 gMonPalette_Arbok[];
+extern const u8 gMonBackPic_Arbok[];
+extern const u8 gMonShinyPalette_Arbok[];
+extern const u8 gMonIcon_Arbok[];
+extern const u8 gMonFootprint_Arbok[];
+extern const u8 gMonFrontPic_Pikachu[];
+extern const u8 gMonPalette_Pikachu[];
+extern const u8 gMonBackPic_Pikachu[];
+extern const u8 gMonShinyPalette_Pikachu[];
+extern const u8 gMonIcon_Pikachu[];
+extern const u8 gMonFootprint_Pikachu[];
+extern const u8 gMonFrontPic_Raichu[];
+extern const u8 gMonPalette_Raichu[];
+extern const u8 gMonBackPic_Raichu[];
+extern const u8 gMonShinyPalette_Raichu[];
+extern const u8 gMonIcon_Raichu[];
+extern const u8 gMonFootprint_Raichu[];
+extern const u8 gMonFrontPic_Sandshrew[];
+extern const u8 gMonPalette_Sandshrew[];
+extern const u8 gMonBackPic_Sandshrew[];
+extern const u8 gMonShinyPalette_Sandshrew[];
+extern const u8 gMonIcon_Sandshrew[];
+extern const u8 gMonFootprint_Sandshrew[];
+extern const u8 gMonFrontPic_Sandslash[];
+extern const u8 gMonPalette_Sandslash[];
+extern const u8 gMonBackPic_Sandslash[];
+extern const u8 gMonShinyPalette_Sandslash[];
+extern const u8 gMonIcon_Sandslash[];
+extern const u8 gMonFootprint_Sandslash[];
+extern const u8 gMonFrontPic_NidoranF[];
+extern const u8 gMonPalette_NidoranF[];
+extern const u8 gMonBackPic_NidoranF[];
+extern const u8 gMonShinyPalette_NidoranF[];
+extern const u8 gMonIcon_NidoranF[];
+extern const u8 gMonFootprint_NidoranF[];
+extern const u8 gMonFrontPic_Nidorina[];
+extern const u8 gMonPalette_Nidorina[];
+extern const u8 gMonBackPic_Nidorina[];
+extern const u8 gMonShinyPalette_Nidorina[];
+extern const u8 gMonIcon_Nidorina[];
+extern const u8 gMonFootprint_Nidorina[];
+extern const u8 gMonFrontPic_Nidoqueen[];
+extern const u8 gMonPalette_Nidoqueen[];
+extern const u8 gMonBackPic_Nidoqueen[];
+extern const u8 gMonShinyPalette_Nidoqueen[];
+extern const u8 gMonIcon_Nidoqueen[];
+extern const u8 gMonFootprint_Nidoqueen[];
+extern const u8 gMonFrontPic_NidoranM[];
+extern const u8 gMonPalette_NidoranM[];
+extern const u8 gMonBackPic_NidoranM[];
+extern const u8 gMonShinyPalette_NidoranM[];
+extern const u8 gMonIcon_NidoranM[];
+extern const u8 gMonFootprint_NidoranM[];
+extern const u8 gMonFrontPic_Nidorino[];
+extern const u8 gMonPalette_Nidorino[];
+extern const u8 gMonBackPic_Nidorino[];
+extern const u8 gMonShinyPalette_Nidorino[];
+extern const u8 gMonIcon_Nidorino[];
+extern const u8 gMonFootprint_Nidorino[];
+extern const u8 gMonFrontPic_Nidoking[];
+extern const u8 gMonPalette_Nidoking[];
+extern const u8 gMonBackPic_Nidoking[];
+extern const u8 gMonShinyPalette_Nidoking[];
+extern const u8 gMonIcon_Nidoking[];
+extern const u8 gMonFootprint_Nidoking[];
+extern const u8 gMonFrontPic_Clefairy[];
+extern const u8 gMonPalette_Clefairy[];
+extern const u8 gMonBackPic_Clefairy[];
+extern const u8 gMonShinyPalette_Clefairy[];
+extern const u8 gMonIcon_Clefairy[];
+extern const u8 gMonFootprint_Clefairy[];
+extern const u8 gMonFrontPic_Clefable[];
+extern const u8 gMonPalette_Clefable[];
+extern const u8 gMonBackPic_Clefable[];
+extern const u8 gMonShinyPalette_Clefable[];
+extern const u8 gMonIcon_Clefable[];
+extern const u8 gMonFootprint_Clefable[];
+extern const u8 gMonFrontPic_Vulpix[];
+extern const u8 gMonPalette_Vulpix[];
+extern const u8 gMonBackPic_Vulpix[];
+extern const u8 gMonShinyPalette_Vulpix[];
+extern const u8 gMonIcon_Vulpix[];
+extern const u8 gMonFootprint_Vulpix[];
+extern const u8 gMonFrontPic_Ninetales[];
+extern const u8 gMonPalette_Ninetales[];
+extern const u8 gMonBackPic_Ninetales[];
+extern const u8 gMonShinyPalette_Ninetales[];
+extern const u8 gMonIcon_Ninetales[];
+extern const u8 gMonFootprint_Ninetales[];
+extern const u8 gMonFrontPic_Jigglypuff[];
+extern const u8 gMonPalette_Jigglypuff[];
+extern const u8 gMonBackPic_Jigglypuff[];
+extern const u8 gMonShinyPalette_Jigglypuff[];
+extern const u8 gMonIcon_Jigglypuff[];
+extern const u8 gMonFootprint_Jigglypuff[];
+extern const u8 gMonFrontPic_Wigglytuff[];
+extern const u8 gMonPalette_Wigglytuff[];
+extern const u8 gMonBackPic_Wigglytuff[];
+extern const u8 gMonShinyPalette_Wigglytuff[];
+extern const u8 gMonIcon_Wigglytuff[];
+extern const u8 gMonFootprint_Wigglytuff[];
+extern const u8 gMonFrontPic_Zubat[];
+extern const u8 gMonPalette_Zubat[];
+extern const u8 gMonBackPic_Zubat[];
+extern const u8 gMonShinyPalette_Zubat[];
+extern const u8 gMonIcon_Zubat[];
+extern const u8 gMonFootprint_Zubat[];
+extern const u8 gMonFrontPic_Golbat[];
+extern const u8 gMonPalette_Golbat[];
+extern const u8 gMonBackPic_Golbat[];
+extern const u8 gMonShinyPalette_Golbat[];
+extern const u8 gMonIcon_Golbat[];
+extern const u8 gMonFootprint_Golbat[];
+extern const u8 gMonFrontPic_Oddish[];
+extern const u8 gMonPalette_Oddish[];
+extern const u8 gMonBackPic_Oddish[];
+extern const u8 gMonShinyPalette_Oddish[];
+extern const u8 gMonIcon_Oddish[];
+extern const u8 gMonFootprint_Oddish[];
+extern const u8 gMonFrontPic_Gloom[];
+extern const u8 gMonPalette_Gloom[];
+extern const u8 gMonBackPic_Gloom[];
+extern const u8 gMonShinyPalette_Gloom[];
+extern const u8 gMonIcon_Gloom[];
+extern const u8 gMonFootprint_Gloom[];
+extern const u8 gMonFrontPic_Vileplume[];
+extern const u8 gMonPalette_Vileplume[];
+extern const u8 gMonBackPic_Vileplume[];
+extern const u8 gMonShinyPalette_Vileplume[];
+extern const u8 gMonIcon_Vileplume[];
+extern const u8 gMonFootprint_Vileplume[];
+extern const u8 gMonFrontPic_Paras[];
+extern const u8 gMonPalette_Paras[];
+extern const u8 gMonBackPic_Paras[];
+extern const u8 gMonShinyPalette_Paras[];
+extern const u8 gMonIcon_Paras[];
+extern const u8 gMonFootprint_Paras[];
+extern const u8 gMonFrontPic_Parasect[];
+extern const u8 gMonPalette_Parasect[];
+extern const u8 gMonBackPic_Parasect[];
+extern const u8 gMonShinyPalette_Parasect[];
+extern const u8 gMonIcon_Parasect[];
+extern const u8 gMonFootprint_Parasect[];
+extern const u8 gMonFrontPic_Venonat[];
+extern const u8 gMonPalette_Venonat[];
+extern const u8 gMonBackPic_Venonat[];
+extern const u8 gMonShinyPalette_Venonat[];
+extern const u8 gMonIcon_Venonat[];
+extern const u8 gMonFootprint_Venonat[];
+extern const u8 gMonFrontPic_Venomoth[];
+extern const u8 gMonPalette_Venomoth[];
+extern const u8 gMonBackPic_Venomoth[];
+extern const u8 gMonShinyPalette_Venomoth[];
+extern const u8 gMonIcon_Venomoth[];
+extern const u8 gMonFootprint_Venomoth[];
+extern const u8 gMonFrontPic_Diglett[];
+extern const u8 gMonPalette_Diglett[];
+extern const u8 gMonBackPic_Diglett[];
+extern const u8 gMonShinyPalette_Diglett[];
+extern const u8 gMonIcon_Diglett[];
+extern const u8 gMonFootprint_Diglett[];
+extern const u8 gMonFrontPic_Dugtrio[];
+extern const u8 gMonPalette_Dugtrio[];
+extern const u8 gMonBackPic_Dugtrio[];
+extern const u8 gMonShinyPalette_Dugtrio[];
+extern const u8 gMonIcon_Dugtrio[];
+extern const u8 gMonFootprint_Dugtrio[];
+extern const u8 gMonFrontPic_Meowth[];
+extern const u8 gMonPalette_Meowth[];
+extern const u8 gMonBackPic_Meowth[];
+extern const u8 gMonShinyPalette_Meowth[];
+extern const u8 gMonIcon_Meowth[];
+extern const u8 gMonFootprint_Meowth[];
+extern const u8 gMonFrontPic_Persian[];
+extern const u8 gMonPalette_Persian[];
+extern const u8 gMonBackPic_Persian[];
+extern const u8 gMonShinyPalette_Persian[];
+extern const u8 gMonIcon_Persian[];
+extern const u8 gMonFootprint_Persian[];
+extern const u8 gMonFrontPic_Psyduck[];
+extern const u8 gMonPalette_Psyduck[];
+extern const u8 gMonBackPic_Psyduck[];
+extern const u8 gMonShinyPalette_Psyduck[];
+extern const u8 gMonIcon_Psyduck[];
+extern const u8 gMonFootprint_Psyduck[];
+extern const u8 gMonFrontPic_Golduck[];
+extern const u8 gMonPalette_Golduck[];
+extern const u8 gMonBackPic_Golduck[];
+extern const u8 gMonShinyPalette_Golduck[];
+extern const u8 gMonIcon_Golduck[];
+extern const u8 gMonFootprint_Golduck[];
+extern const u8 gMonFrontPic_Mankey[];
+extern const u8 gMonPalette_Mankey[];
+extern const u8 gMonBackPic_Mankey[];
+extern const u8 gMonShinyPalette_Mankey[];
+extern const u8 gMonIcon_Mankey[];
+extern const u8 gMonFootprint_Mankey[];
+extern const u8 gMonFrontPic_Primeape[];
+extern const u8 gMonPalette_Primeape[];
+extern const u8 gMonBackPic_Primeape[];
+extern const u8 gMonShinyPalette_Primeape[];
+extern const u8 gMonIcon_Primeape[];
+extern const u8 gMonFootprint_Primeape[];
+extern const u8 gMonFrontPic_Growlithe[];
+extern const u8 gMonPalette_Growlithe[];
+extern const u8 gMonBackPic_Growlithe[];
+extern const u8 gMonShinyPalette_Growlithe[];
+extern const u8 gMonIcon_Growlithe[];
+extern const u8 gMonFootprint_Growlithe[];
+extern const u8 gMonFrontPic_Arcanine[];
+extern const u8 gMonPalette_Arcanine[];
+extern const u8 gMonBackPic_Arcanine[];
+extern const u8 gMonShinyPalette_Arcanine[];
+extern const u8 gMonIcon_Arcanine[];
+extern const u8 gMonFootprint_Arcanine[];
+extern const u8 gMonFrontPic_Poliwag[];
+extern const u8 gMonPalette_Poliwag[];
+extern const u8 gMonBackPic_Poliwag[];
+extern const u8 gMonShinyPalette_Poliwag[];
+extern const u8 gMonIcon_Poliwag[];
+extern const u8 gMonFootprint_Poliwag[];
+extern const u8 gMonFrontPic_Poliwhirl[];
+extern const u8 gMonPalette_Poliwhirl[];
+extern const u8 gMonBackPic_Poliwhirl[];
+extern const u8 gMonShinyPalette_Poliwhirl[];
+extern const u8 gMonIcon_Poliwhirl[];
+extern const u8 gMonFootprint_Poliwhirl[];
+extern const u8 gMonFrontPic_Poliwrath[];
+extern const u8 gMonPalette_Poliwrath[];
+extern const u8 gMonBackPic_Poliwrath[];
+extern const u8 gMonShinyPalette_Poliwrath[];
+extern const u8 gMonIcon_Poliwrath[];
+extern const u8 gMonFootprint_Poliwrath[];
+extern const u8 gMonFrontPic_Abra[];
+extern const u8 gMonPalette_Abra[];
+extern const u8 gMonBackPic_Abra[];
+extern const u8 gMonShinyPalette_Abra[];
+extern const u8 gMonIcon_Abra[];
+extern const u8 gMonFootprint_Abra[];
+extern const u8 gMonFrontPic_Kadabra[];
+extern const u8 gMonPalette_Kadabra[];
+extern const u8 gMonBackPic_Kadabra[];
+extern const u8 gMonShinyPalette_Kadabra[];
+extern const u8 gMonIcon_Kadabra[];
+extern const u8 gMonFootprint_Kadabra[];
+extern const u8 gMonFrontPic_Alakazam[];
+extern const u8 gMonPalette_Alakazam[];
+extern const u8 gMonBackPic_Alakazam[];
+extern const u8 gMonShinyPalette_Alakazam[];
+extern const u8 gMonIcon_Alakazam[];
+extern const u8 gMonFootprint_Alakazam[];
+extern const u8 gMonFrontPic_Machop[];
+extern const u8 gMonPalette_Machop[];
+extern const u8 gMonBackPic_Machop[];
+extern const u8 gMonShinyPalette_Machop[];
+extern const u8 gMonIcon_Machop[];
+extern const u8 gMonFootprint_Machop[];
+extern const u8 gMonFrontPic_Machoke[];
+extern const u8 gMonPalette_Machoke[];
+extern const u8 gMonBackPic_Machoke[];
+extern const u8 gMonShinyPalette_Machoke[];
+extern const u8 gMonIcon_Machoke[];
+extern const u8 gMonFootprint_Machoke[];
+extern const u8 gMonFrontPic_Machamp[];
+extern const u8 gMonPalette_Machamp[];
+extern const u8 gMonBackPic_Machamp[];
+extern const u8 gMonShinyPalette_Machamp[];
+extern const u8 gMonIcon_Machamp[];
+extern const u8 gMonFootprint_Machamp[];
+extern const u8 gMonFrontPic_Bellsprout[];
+extern const u8 gMonPalette_Bellsprout[];
+extern const u8 gMonBackPic_Bellsprout[];
+extern const u8 gMonShinyPalette_Bellsprout[];
+extern const u8 gMonIcon_Bellsprout[];
+extern const u8 gMonFootprint_Bellsprout[];
+extern const u8 gMonFrontPic_Weepinbell[];
+extern const u8 gMonPalette_Weepinbell[];
+extern const u8 gMonBackPic_Weepinbell[];
+extern const u8 gMonShinyPalette_Weepinbell[];
+extern const u8 gMonIcon_Weepinbell[];
+extern const u8 gMonFootprint_Weepinbell[];
+extern const u8 gMonFrontPic_Victreebel[];
+extern const u8 gMonPalette_Victreebel[];
+extern const u8 gMonBackPic_Victreebel[];
+extern const u8 gMonShinyPalette_Victreebel[];
+extern const u8 gMonIcon_Victreebel[];
+extern const u8 gMonFootprint_Victreebel[];
+extern const u8 gMonFrontPic_Tentacool[];
+extern const u8 gMonPalette_Tentacool[];
+extern const u8 gMonBackPic_Tentacool[];
+extern const u8 gMonShinyPalette_Tentacool[];
+extern const u8 gMonIcon_Tentacool[];
+extern const u8 gMonFootprint_Tentacool[];
+extern const u8 gMonFrontPic_Tentacruel[];
+extern const u8 gMonPalette_Tentacruel[];
+extern const u8 gMonBackPic_Tentacruel[];
+extern const u8 gMonShinyPalette_Tentacruel[];
+extern const u8 gMonIcon_Tentacruel[];
+extern const u8 gMonFootprint_Tentacruel[];
+extern const u8 gMonFrontPic_Geodude[];
+extern const u8 gMonPalette_Geodude[];
+extern const u8 gMonBackPic_Geodude[];
+extern const u8 gMonShinyPalette_Geodude[];
+extern const u8 gMonIcon_Geodude[];
+extern const u8 gMonFootprint_Geodude[];
+extern const u8 gMonFrontPic_Graveler[];
+extern const u8 gMonPalette_Graveler[];
+extern const u8 gMonBackPic_Graveler[];
+extern const u8 gMonShinyPalette_Graveler[];
+extern const u8 gMonIcon_Graveler[];
+extern const u8 gMonFootprint_Graveler[];
+extern const u8 gMonFrontPic_Golem[];
+extern const u8 gMonPalette_Golem[];
+extern const u8 gMonBackPic_Golem[];
+extern const u8 gMonShinyPalette_Golem[];
+extern const u8 gMonIcon_Golem[];
+extern const u8 gMonFootprint_Golem[];
+extern const u8 gMonFrontPic_Ponyta[];
+extern const u8 gMonPalette_Ponyta[];
+extern const u8 gMonBackPic_Ponyta[];
+extern const u8 gMonShinyPalette_Ponyta[];
+extern const u8 gMonIcon_Ponyta[];
+extern const u8 gMonFootprint_Ponyta[];
+extern const u8 gMonFrontPic_Rapidash[];
+extern const u8 gMonPalette_Rapidash[];
+extern const u8 gMonBackPic_Rapidash[];
+extern const u8 gMonShinyPalette_Rapidash[];
+extern const u8 gMonIcon_Rapidash[];
+extern const u8 gMonFootprint_Rapidash[];
+extern const u8 gMonFrontPic_Slowpoke[];
+extern const u8 gMonPalette_Slowpoke[];
+extern const u8 gMonBackPic_Slowpoke[];
+extern const u8 gMonShinyPalette_Slowpoke[];
+extern const u8 gMonIcon_Slowpoke[];
+extern const u8 gMonFootprint_Slowpoke[];
+extern const u8 gMonFrontPic_Slowbro[];
+extern const u8 gMonPalette_Slowbro[];
+extern const u8 gMonBackPic_Slowbro[];
+extern const u8 gMonShinyPalette_Slowbro[];
+extern const u8 gMonIcon_Slowbro[];
+extern const u8 gMonFootprint_Slowbro[];
+extern const u8 gMonFrontPic_Magnemite[];
+extern const u8 gMonPalette_Magnemite[];
+extern const u8 gMonBackPic_Magnemite[];
+extern const u8 gMonShinyPalette_Magnemite[];
+extern const u8 gMonIcon_Magnemite[];
+extern const u8 gMonFootprint_Magnemite[];
+extern const u8 gMonFrontPic_Magneton[];
+extern const u8 gMonPalette_Magneton[];
+extern const u8 gMonBackPic_Magneton[];
+extern const u8 gMonShinyPalette_Magneton[];
+extern const u8 gMonIcon_Magneton[];
+extern const u8 gMonFootprint_Magneton[];
+extern const u8 gMonFrontPic_Farfetchd[];
+extern const u8 gMonPalette_Farfetchd[];
+extern const u8 gMonBackPic_Farfetchd[];
+extern const u8 gMonShinyPalette_Farfetchd[];
+extern const u8 gMonIcon_Farfetchd[];
+extern const u8 gMonFootprint_Farfetchd[];
+extern const u8 gMonFrontPic_Doduo[];
+extern const u8 gMonPalette_Doduo[];
+extern const u8 gMonBackPic_Doduo[];
+extern const u8 gMonShinyPalette_Doduo[];
+extern const u8 gMonIcon_Doduo[];
+extern const u8 gMonFootprint_Doduo[];
+extern const u8 gMonFrontPic_Dodrio[];
+extern const u8 gMonPalette_Dodrio[];
+extern const u8 gMonBackPic_Dodrio[];
+extern const u8 gMonShinyPalette_Dodrio[];
+extern const u8 gMonIcon_Dodrio[];
+extern const u8 gMonFootprint_Dodrio[];
+extern const u8 gMonFrontPic_Seel[];
+extern const u8 gMonPalette_Seel[];
+extern const u8 gMonBackPic_Seel[];
+extern const u8 gMonShinyPalette_Seel[];
+extern const u8 gMonIcon_Seel[];
+extern const u8 gMonFootprint_Seel[];
+extern const u8 gMonFrontPic_Dewgong[];
+extern const u8 gMonPalette_Dewgong[];
+extern const u8 gMonBackPic_Dewgong[];
+extern const u8 gMonShinyPalette_Dewgong[];
+extern const u8 gMonIcon_Dewgong[];
+extern const u8 gMonFootprint_Dewgong[];
+extern const u8 gMonFrontPic_Grimer[];
+extern const u8 gMonPalette_Grimer[];
+extern const u8 gMonBackPic_Grimer[];
+extern const u8 gMonShinyPalette_Grimer[];
+extern const u8 gMonIcon_Grimer[];
+extern const u8 gMonFootprint_Grimer[];
+extern const u8 gMonFrontPic_Muk[];
+extern const u8 gMonPalette_Muk[];
+extern const u8 gMonBackPic_Muk[];
+extern const u8 gMonShinyPalette_Muk[];
+extern const u8 gMonIcon_Muk[];
+extern const u8 gMonFootprint_Muk[];
+extern const u8 gMonFrontPic_Shellder[];
+extern const u8 gMonPalette_Shellder[];
+extern const u8 gMonBackPic_Shellder[];
+extern const u8 gMonShinyPalette_Shellder[];
+extern const u8 gMonIcon_Shellder[];
+extern const u8 gMonFootprint_Shellder[];
+extern const u8 gMonFrontPic_Cloyster[];
+extern const u8 gMonPalette_Cloyster[];
+extern const u8 gMonBackPic_Cloyster[];
+extern const u8 gMonShinyPalette_Cloyster[];
+extern const u8 gMonIcon_Cloyster[];
+extern const u8 gMonFootprint_Cloyster[];
+extern const u8 gMonFrontPic_Gastly[];
+extern const u8 gMonPalette_Gastly[];
+extern const u8 gMonBackPic_Gastly[];
+extern const u8 gMonShinyPalette_Gastly[];
+extern const u8 gMonIcon_Gastly[];
+extern const u8 gMonFootprint_Gastly[];
+extern const u8 gMonFrontPic_Haunter[];
+extern const u8 gMonPalette_Haunter[];
+extern const u8 gMonBackPic_Haunter[];
+extern const u8 gMonShinyPalette_Haunter[];
+extern const u8 gMonIcon_Haunter[];
+extern const u8 gMonFootprint_Haunter[];
+extern const u8 gMonFrontPic_Gengar[];
+extern const u8 gMonPalette_Gengar[];
+extern const u8 gMonBackPic_Gengar[];
+extern const u8 gMonShinyPalette_Gengar[];
+extern const u8 gMonIcon_Gengar[];
+extern const u8 gMonFootprint_Gengar[];
+extern const u8 gMonFrontPic_Onix[];
+extern const u8 gMonPalette_Onix[];
+extern const u8 gMonBackPic_Onix[];
+extern const u8 gMonShinyPalette_Onix[];
+extern const u8 gMonIcon_Onix[];
+extern const u8 gMonFootprint_Onix[];
+extern const u8 gMonFrontPic_Drowzee[];
+extern const u8 gMonPalette_Drowzee[];
+extern const u8 gMonBackPic_Drowzee[];
+extern const u8 gMonShinyPalette_Drowzee[];
+extern const u8 gMonIcon_Drowzee[];
+extern const u8 gMonFootprint_Drowzee[];
+extern const u8 gMonFrontPic_Hypno[];
+extern const u8 gMonPalette_Hypno[];
+extern const u8 gMonBackPic_Hypno[];
+extern const u8 gMonShinyPalette_Hypno[];
+extern const u8 gMonIcon_Hypno[];
+extern const u8 gMonFootprint_Hypno[];
+extern const u8 gMonFrontPic_Krabby[];
+extern const u8 gMonPalette_Krabby[];
+extern const u8 gMonBackPic_Krabby[];
+extern const u8 gMonShinyPalette_Krabby[];
+extern const u8 gMonIcon_Krabby[];
+extern const u8 gMonFootprint_Krabby[];
+extern const u8 gMonFrontPic_Kingler[];
+extern const u8 gMonPalette_Kingler[];
+extern const u8 gMonBackPic_Kingler[];
+extern const u8 gMonShinyPalette_Kingler[];
+extern const u8 gMonIcon_Kingler[];
+extern const u8 gMonFootprint_Kingler[];
+extern const u8 gMonFrontPic_Voltorb[];
+extern const u8 gMonPalette_Voltorb[];
+extern const u8 gMonBackPic_Voltorb[];
+extern const u8 gMonShinyPalette_Voltorb[];
+extern const u8 gMonIcon_Voltorb[];
+extern const u8 gMonFootprint_Voltorb[];
+extern const u8 gMonFrontPic_Electrode[];
+extern const u8 gMonPalette_Electrode[];
+extern const u8 gMonBackPic_Electrode[];
+extern const u8 gMonShinyPalette_Electrode[];
+extern const u8 gMonIcon_Electrode[];
+extern const u8 gMonFootprint_Electrode[];
+extern const u8 gMonFrontPic_Exeggcute[];
+extern const u8 gMonPalette_Exeggcute[];
+extern const u8 gMonBackPic_Exeggcute[];
+extern const u8 gMonShinyPalette_Exeggcute[];
+extern const u8 gMonIcon_Exeggcute[];
+extern const u8 gMonFootprint_Exeggcute[];
+extern const u8 gMonFrontPic_Exeggutor[];
+extern const u8 gMonPalette_Exeggutor[];
+extern const u8 gMonBackPic_Exeggutor[];
+extern const u8 gMonShinyPalette_Exeggutor[];
+extern const u8 gMonIcon_Exeggutor[];
+extern const u8 gMonFootprint_Exeggutor[];
+extern const u8 gMonFrontPic_Cubone[];
+extern const u8 gMonPalette_Cubone[];
+extern const u8 gMonBackPic_Cubone[];
+extern const u8 gMonShinyPalette_Cubone[];
+extern const u8 gMonIcon_Cubone[];
+extern const u8 gMonFootprint_Cubone[];
+extern const u8 gMonFrontPic_Marowak[];
+extern const u8 gMonPalette_Marowak[];
+extern const u8 gMonBackPic_Marowak[];
+extern const u8 gMonShinyPalette_Marowak[];
+extern const u8 gMonIcon_Marowak[];
+extern const u8 gMonFootprint_Marowak[];
+extern const u8 gMonFrontPic_Hitmonlee[];
+extern const u8 gMonPalette_Hitmonlee[];
+extern const u8 gMonBackPic_Hitmonlee[];
+extern const u8 gMonShinyPalette_Hitmonlee[];
+extern const u8 gMonIcon_Hitmonlee[];
+extern const u8 gMonFootprint_Hitmonlee[];
+extern const u8 gMonFrontPic_Hitmonchan[];
+extern const u8 gMonPalette_Hitmonchan[];
+extern const u8 gMonBackPic_Hitmonchan[];
+extern const u8 gMonShinyPalette_Hitmonchan[];
+extern const u8 gMonIcon_Hitmonchan[];
+extern const u8 gMonFootprint_Hitmonchan[];
+extern const u8 gMonFrontPic_Lickitung[];
+extern const u8 gMonPalette_Lickitung[];
+extern const u8 gMonBackPic_Lickitung[];
+extern const u8 gMonShinyPalette_Lickitung[];
+extern const u8 gMonIcon_Lickitung[];
+extern const u8 gMonFootprint_Lickitung[];
+extern const u8 gMonFrontPic_Koffing[];
+extern const u8 gMonPalette_Koffing[];
+extern const u8 gMonBackPic_Koffing[];
+extern const u8 gMonShinyPalette_Koffing[];
+extern const u8 gMonIcon_Koffing[];
+extern const u8 gMonFootprint_Koffing[];
+extern const u8 gMonFrontPic_Weezing[];
+extern const u8 gMonPalette_Weezing[];
+extern const u8 gMonBackPic_Weezing[];
+extern const u8 gMonShinyPalette_Weezing[];
+extern const u8 gMonIcon_Weezing[];
+extern const u8 gMonFootprint_Weezing[];
+extern const u8 gMonFrontPic_Rhyhorn[];
+extern const u8 gMonPalette_Rhyhorn[];
+extern const u8 gMonBackPic_Rhyhorn[];
+extern const u8 gMonShinyPalette_Rhyhorn[];
+extern const u8 gMonIcon_Rhyhorn[];
+extern const u8 gMonFootprint_Rhyhorn[];
+extern const u8 gMonFrontPic_Rhydon[];
+extern const u8 gMonPalette_Rhydon[];
+extern const u8 gMonBackPic_Rhydon[];
+extern const u8 gMonShinyPalette_Rhydon[];
+extern const u8 gMonIcon_Rhydon[];
+extern const u8 gMonFootprint_Rhydon[];
+extern const u8 gMonFrontPic_Chansey[];
+extern const u8 gMonPalette_Chansey[];
+extern const u8 gMonBackPic_Chansey[];
+extern const u8 gMonShinyPalette_Chansey[];
+extern const u8 gMonIcon_Chansey[];
+extern const u8 gMonFootprint_Chansey[];
+extern const u8 gMonFrontPic_Tangela[];
+extern const u8 gMonPalette_Tangela[];
+extern const u8 gMonBackPic_Tangela[];
+extern const u8 gMonShinyPalette_Tangela[];
+extern const u8 gMonIcon_Tangela[];
+extern const u8 gMonFootprint_Tangela[];
+extern const u8 gMonFrontPic_Kangaskhan[];
+extern const u8 gMonPalette_Kangaskhan[];
+extern const u8 gMonBackPic_Kangaskhan[];
+extern const u8 gMonShinyPalette_Kangaskhan[];
+extern const u8 gMonIcon_Kangaskhan[];
+extern const u8 gMonFootprint_Kangaskhan[];
+extern const u8 gMonFrontPic_Horsea[];
+extern const u8 gMonPalette_Horsea[];
+extern const u8 gMonBackPic_Horsea[];
+extern const u8 gMonShinyPalette_Horsea[];
+extern const u8 gMonIcon_Horsea[];
+extern const u8 gMonFootprint_Horsea[];
+extern const u8 gMonFrontPic_Seadra[];
+extern const u8 gMonPalette_Seadra[];
+extern const u8 gMonBackPic_Seadra[];
+extern const u8 gMonShinyPalette_Seadra[];
+extern const u8 gMonIcon_Seadra[];
+extern const u8 gMonFootprint_Seadra[];
+extern const u8 gMonFrontPic_Goldeen[];
+extern const u8 gMonPalette_Goldeen[];
+extern const u8 gMonBackPic_Goldeen[];
+extern const u8 gMonShinyPalette_Goldeen[];
+extern const u8 gMonIcon_Goldeen[];
+extern const u8 gMonFootprint_Goldeen[];
+extern const u8 gMonFrontPic_Seaking[];
+extern const u8 gMonPalette_Seaking[];
+extern const u8 gMonBackPic_Seaking[];
+extern const u8 gMonShinyPalette_Seaking[];
+extern const u8 gMonIcon_Seaking[];
+extern const u8 gMonFootprint_Seaking[];
+extern const u8 gMonFrontPic_Staryu[];
+extern const u8 gMonPalette_Staryu[];
+extern const u8 gMonBackPic_Staryu[];
+extern const u8 gMonShinyPalette_Staryu[];
+extern const u8 gMonIcon_Staryu[];
+extern const u8 gMonFootprint_Staryu[];
+extern const u8 gMonFrontPic_Starmie[];
+extern const u8 gMonPalette_Starmie[];
+extern const u8 gMonBackPic_Starmie[];
+extern const u8 gMonShinyPalette_Starmie[];
+extern const u8 gMonIcon_Starmie[];
+extern const u8 gMonFootprint_Starmie[];
+extern const u8 gMonFrontPic_Mrmime[];
+extern const u8 gMonPalette_Mrmime[];
+extern const u8 gMonBackPic_Mrmime[];
+extern const u8 gMonShinyPalette_Mrmime[];
+extern const u8 gMonIcon_Mrmime[];
+extern const u8 gMonFootprint_Mrmime[];
+extern const u8 gMonFrontPic_Scyther[];
+extern const u8 gMonPalette_Scyther[];
+extern const u8 gMonBackPic_Scyther[];
+extern const u8 gMonShinyPalette_Scyther[];
+extern const u8 gMonIcon_Scyther[];
+extern const u8 gMonFootprint_Scyther[];
+extern const u8 gMonFrontPic_Jynx[];
+extern const u8 gMonPalette_Jynx[];
+extern const u8 gMonBackPic_Jynx[];
+extern const u8 gMonShinyPalette_Jynx[];
+extern const u8 gMonIcon_Jynx[];
+extern const u8 gMonFootprint_Jynx[];
+extern const u8 gMonFrontPic_Electabuzz[];
+extern const u8 gMonPalette_Electabuzz[];
+extern const u8 gMonBackPic_Electabuzz[];
+extern const u8 gMonShinyPalette_Electabuzz[];
+extern const u8 gMonIcon_Electabuzz[];
+extern const u8 gMonFootprint_Electabuzz[];
+extern const u8 gMonFrontPic_Magmar[];
+extern const u8 gMonPalette_Magmar[];
+extern const u8 gMonBackPic_Magmar[];
+extern const u8 gMonShinyPalette_Magmar[];
+extern const u8 gMonIcon_Magmar[];
+extern const u8 gMonFootprint_Magmar[];
+extern const u8 gMonFrontPic_Pinsir[];
+extern const u8 gMonPalette_Pinsir[];
+extern const u8 gMonBackPic_Pinsir[];
+extern const u8 gMonShinyPalette_Pinsir[];
+extern const u8 gMonIcon_Pinsir[];
+extern const u8 gMonFootprint_Pinsir[];
+extern const u8 gMonFrontPic_Tauros[];
+extern const u8 gMonPalette_Tauros[];
+extern const u8 gMonBackPic_Tauros[];
+extern const u8 gMonShinyPalette_Tauros[];
+extern const u8 gMonIcon_Tauros[];
+extern const u8 gMonFootprint_Tauros[];
+extern const u8 gMonFrontPic_Magikarp[];
+extern const u8 gMonPalette_Magikarp[];
+extern const u8 gMonBackPic_Magikarp[];
+extern const u8 gMonShinyPalette_Magikarp[];
+extern const u8 gMonIcon_Magikarp[];
+extern const u8 gMonFootprint_Magikarp[];
+extern const u8 gMonFrontPic_Gyarados[];
+extern const u8 gMonPalette_Gyarados[];
+extern const u8 gMonBackPic_Gyarados[];
+extern const u8 gMonShinyPalette_Gyarados[];
+extern const u8 gMonIcon_Gyarados[];
+extern const u8 gMonFootprint_Gyarados[];
+extern const u8 gMonFrontPic_Lapras[];
+extern const u8 gMonPalette_Lapras[];
+extern const u8 gMonBackPic_Lapras[];
+extern const u8 gMonShinyPalette_Lapras[];
+extern const u8 gMonIcon_Lapras[];
+extern const u8 gMonFootprint_Lapras[];
+extern const u8 gMonFrontPic_Ditto[];
+extern const u8 gMonPalette_Ditto[];
+extern const u8 gMonBackPic_Ditto[];
+extern const u8 gMonShinyPalette_Ditto[];
+extern const u8 gMonIcon_Ditto[];
+extern const u8 gMonFootprint_Ditto[];
+extern const u8 gMonFrontPic_Eevee[];
+extern const u8 gMonPalette_Eevee[];
+extern const u8 gMonBackPic_Eevee[];
+extern const u8 gMonShinyPalette_Eevee[];
+extern const u8 gMonIcon_Eevee[];
+extern const u8 gMonFootprint_Eevee[];
+extern const u8 gMonFrontPic_Vaporeon[];
+extern const u8 gMonPalette_Vaporeon[];
+extern const u8 gMonBackPic_Vaporeon[];
+extern const u8 gMonShinyPalette_Vaporeon[];
+extern const u8 gMonIcon_Vaporeon[];
+extern const u8 gMonFootprint_Vaporeon[];
+extern const u8 gMonFrontPic_Jolteon[];
+extern const u8 gMonPalette_Jolteon[];
+extern const u8 gMonBackPic_Jolteon[];
+extern const u8 gMonShinyPalette_Jolteon[];
+extern const u8 gMonIcon_Jolteon[];
+extern const u8 gMonFootprint_Jolteon[];
+extern const u8 gMonFrontPic_Flareon[];
+extern const u8 gMonPalette_Flareon[];
+extern const u8 gMonBackPic_Flareon[];
+extern const u8 gMonShinyPalette_Flareon[];
+extern const u8 gMonIcon_Flareon[];
+extern const u8 gMonFootprint_Flareon[];
+extern const u8 gMonFrontPic_Porygon[];
+extern const u8 gMonPalette_Porygon[];
+extern const u8 gMonBackPic_Porygon[];
+extern const u8 gMonShinyPalette_Porygon[];
+extern const u8 gMonIcon_Porygon[];
+extern const u8 gMonFootprint_Porygon[];
+extern const u8 gMonFrontPic_Omanyte[];
+extern const u8 gMonPalette_Omanyte[];
+extern const u8 gMonBackPic_Omanyte[];
+extern const u8 gMonShinyPalette_Omanyte[];
+extern const u8 gMonIcon_Omanyte[];
+extern const u8 gMonFootprint_Omanyte[];
+extern const u8 gMonFrontPic_Omastar[];
+extern const u8 gMonPalette_Omastar[];
+extern const u8 gMonBackPic_Omastar[];
+extern const u8 gMonShinyPalette_Omastar[];
+extern const u8 gMonIcon_Omastar[];
+extern const u8 gMonFootprint_Omastar[];
+extern const u8 gMonFrontPic_Kabuto[];
+extern const u8 gMonPalette_Kabuto[];
+extern const u8 gMonBackPic_Kabuto[];
+extern const u8 gMonShinyPalette_Kabuto[];
+extern const u8 gMonIcon_Kabuto[];
+extern const u8 gMonFootprint_Kabuto[];
+extern const u8 gMonFrontPic_Kabutops[];
+extern const u8 gMonPalette_Kabutops[];
+extern const u8 gMonBackPic_Kabutops[];
+extern const u8 gMonShinyPalette_Kabutops[];
+extern const u8 gMonIcon_Kabutops[];
+extern const u8 gMonFootprint_Kabutops[];
+extern const u8 gMonFrontPic_Aerodactyl[];
+extern const u8 gMonPalette_Aerodactyl[];
+extern const u8 gMonBackPic_Aerodactyl[];
+extern const u8 gMonShinyPalette_Aerodactyl[];
+extern const u8 gMonIcon_Aerodactyl[];
+extern const u8 gMonFootprint_Aerodactyl[];
+extern const u8 gMonFrontPic_Snorlax[];
+extern const u8 gMonPalette_Snorlax[];
+extern const u8 gMonBackPic_Snorlax[];
+extern const u8 gMonShinyPalette_Snorlax[];
+extern const u8 gMonIcon_Snorlax[];
+extern const u8 gMonFootprint_Snorlax[];
+extern const u8 gMonFrontPic_Articuno[];
+extern const u8 gMonPalette_Articuno[];
+extern const u8 gMonBackPic_Articuno[];
+extern const u8 gMonShinyPalette_Articuno[];
+extern const u8 gMonIcon_Articuno[];
+extern const u8 gMonFootprint_Articuno[];
+extern const u8 gMonFrontPic_Zapdos[];
+extern const u8 gMonPalette_Zapdos[];
+extern const u8 gMonBackPic_Zapdos[];
+extern const u8 gMonShinyPalette_Zapdos[];
+extern const u8 gMonIcon_Zapdos[];
+extern const u8 gMonFootprint_Zapdos[];
+extern const u8 gMonFrontPic_Moltres[];
+extern const u8 gMonPalette_Moltres[];
+extern const u8 gMonBackPic_Moltres[];
+extern const u8 gMonShinyPalette_Moltres[];
+extern const u8 gMonIcon_Moltres[];
+extern const u8 gMonFootprint_Moltres[];
+extern const u8 gMonFrontPic_Dratini[];
+extern const u8 gMonPalette_Dratini[];
+extern const u8 gMonBackPic_Dratini[];
+extern const u8 gMonShinyPalette_Dratini[];
+extern const u8 gMonIcon_Dratini[];
+extern const u8 gMonFootprint_Dratini[];
+extern const u8 gMonFrontPic_Dragonair[];
+extern const u8 gMonPalette_Dragonair[];
+extern const u8 gMonBackPic_Dragonair[];
+extern const u8 gMonShinyPalette_Dragonair[];
+extern const u8 gMonIcon_Dragonair[];
+extern const u8 gMonFootprint_Dragonair[];
+extern const u8 gMonFrontPic_Dragonite[];
+extern const u8 gMonPalette_Dragonite[];
+extern const u8 gMonBackPic_Dragonite[];
+extern const u8 gMonShinyPalette_Dragonite[];
+extern const u8 gMonIcon_Dragonite[];
+extern const u8 gMonFootprint_Dragonite[];
+extern const u8 gMonFrontPic_Mewtwo[];
+extern const u8 gMonPalette_Mewtwo[];
+extern const u8 gMonBackPic_Mewtwo[];
+extern const u8 gMonShinyPalette_Mewtwo[];
+extern const u8 gMonIcon_Mewtwo[];
+extern const u8 gMonFootprint_Mewtwo[];
+extern const u8 gMonFrontPic_Mew[];
+extern const u8 gMonPalette_Mew[];
+extern const u8 gMonBackPic_Mew[];
+extern const u8 gMonShinyPalette_Mew[];
+extern const u8 gMonIcon_Mew[];
+extern const u8 gMonFootprint_Mew[];
+extern const u8 gMonFrontPic_Chikorita[];
+extern const u8 gMonPalette_Chikorita[];
+extern const u8 gMonBackPic_Chikorita[];
+extern const u8 gMonShinyPalette_Chikorita[];
+extern const u8 gMonIcon_Chikorita[];
+extern const u8 gMonFootprint_Chikorita[];
+extern const u8 gMonFrontPic_Bayleef[];
+extern const u8 gMonPalette_Bayleef[];
+extern const u8 gMonBackPic_Bayleef[];
+extern const u8 gMonShinyPalette_Bayleef[];
+extern const u8 gMonIcon_Bayleef[];
+extern const u8 gMonFootprint_Bayleef[];
+extern const u8 gMonFrontPic_Meganium[];
+extern const u8 gMonPalette_Meganium[];
+extern const u8 gMonBackPic_Meganium[];
+extern const u8 gMonShinyPalette_Meganium[];
+extern const u8 gMonIcon_Meganium[];
+extern const u8 gMonFootprint_Meganium[];
+extern const u8 gMonFrontPic_Cyndaquil[];
+extern const u8 gMonPalette_Cyndaquil[];
+extern const u8 gMonBackPic_Cyndaquil[];
+extern const u8 gMonShinyPalette_Cyndaquil[];
+extern const u8 gMonIcon_Cyndaquil[];
+extern const u8 gMonFootprint_Cyndaquil[];
+extern const u8 gMonFrontPic_Quilava[];
+extern const u8 gMonPalette_Quilava[];
+extern const u8 gMonBackPic_Quilava[];
+extern const u8 gMonShinyPalette_Quilava[];
+extern const u8 gMonIcon_Quilava[];
+extern const u8 gMonFootprint_Quilava[];
+extern const u8 gMonFrontPic_Typhlosion[];
+extern const u8 gMonPalette_Typhlosion[];
+extern const u8 gMonBackPic_Typhlosion[];
+extern const u8 gMonShinyPalette_Typhlosion[];
+extern const u8 gMonIcon_Typhlosion[];
+extern const u8 gMonFootprint_Typhlosion[];
+extern const u8 gMonFrontPic_Totodile[];
+extern const u8 gMonPalette_Totodile[];
+extern const u8 gMonBackPic_Totodile[];
+extern const u8 gMonShinyPalette_Totodile[];
+extern const u8 gMonIcon_Totodile[];
+extern const u8 gMonFootprint_Totodile[];
+extern const u8 gMonFrontPic_Croconaw[];
+extern const u8 gMonPalette_Croconaw[];
+extern const u8 gMonBackPic_Croconaw[];
+extern const u8 gMonShinyPalette_Croconaw[];
+extern const u8 gMonIcon_Croconaw[];
+extern const u8 gMonFootprint_Croconaw[];
+extern const u8 gMonFrontPic_Feraligatr[];
+extern const u8 gMonPalette_Feraligatr[];
+extern const u8 gMonBackPic_Feraligatr[];
+extern const u8 gMonShinyPalette_Feraligatr[];
+extern const u8 gMonIcon_Feraligatr[];
+extern const u8 gMonFootprint_Feraligatr[];
+extern const u8 gMonFrontPic_Sentret[];
+extern const u8 gMonPalette_Sentret[];
+extern const u8 gMonBackPic_Sentret[];
+extern const u8 gMonShinyPalette_Sentret[];
+extern const u8 gMonIcon_Sentret[];
+extern const u8 gMonFootprint_Sentret[];
+extern const u8 gMonFrontPic_Furret[];
+extern const u8 gMonPalette_Furret[];
+extern const u8 gMonBackPic_Furret[];
+extern const u8 gMonShinyPalette_Furret[];
+extern const u8 gMonIcon_Furret[];
+extern const u8 gMonFootprint_Furret[];
+extern const u8 gMonFrontPic_Hoothoot[];
+extern const u8 gMonPalette_Hoothoot[];
+extern const u8 gMonBackPic_Hoothoot[];
+extern const u8 gMonShinyPalette_Hoothoot[];
+extern const u8 gMonIcon_Hoothoot[];
+extern const u8 gMonFootprint_Hoothoot[];
+extern const u8 gMonFrontPic_Noctowl[];
+extern const u8 gMonPalette_Noctowl[];
+extern const u8 gMonBackPic_Noctowl[];
+extern const u8 gMonShinyPalette_Noctowl[];
+extern const u8 gMonIcon_Noctowl[];
+extern const u8 gMonFootprint_Noctowl[];
+extern const u8 gMonFrontPic_Ledyba[];
+extern const u8 gMonPalette_Ledyba[];
+extern const u8 gMonBackPic_Ledyba[];
+extern const u8 gMonShinyPalette_Ledyba[];
+extern const u8 gMonIcon_Ledyba[];
+extern const u8 gMonFootprint_Ledyba[];
+extern const u8 gMonFrontPic_Ledian[];
+extern const u8 gMonPalette_Ledian[];
+extern const u8 gMonBackPic_Ledian[];
+extern const u8 gMonShinyPalette_Ledian[];
+extern const u8 gMonIcon_Ledian[];
+extern const u8 gMonFootprint_Ledian[];
+extern const u8 gMonFrontPic_Spinarak[];
+extern const u8 gMonPalette_Spinarak[];
+extern const u8 gMonBackPic_Spinarak[];
+extern const u8 gMonShinyPalette_Spinarak[];
+extern const u8 gMonIcon_Spinarak[];
+extern const u8 gMonFootprint_Spinarak[];
+extern const u8 gMonFrontPic_Ariados[];
+extern const u8 gMonPalette_Ariados[];
+extern const u8 gMonBackPic_Ariados[];
+extern const u8 gMonShinyPalette_Ariados[];
+extern const u8 gMonIcon_Ariados[];
+extern const u8 gMonFootprint_Ariados[];
+extern const u8 gMonFrontPic_Crobat[];
+extern const u8 gMonPalette_Crobat[];
+extern const u8 gMonBackPic_Crobat[];
+extern const u8 gMonShinyPalette_Crobat[];
+extern const u8 gMonIcon_Crobat[];
+extern const u8 gMonFootprint_Crobat[];
+extern const u8 gMonFrontPic_Chinchou[];
+extern const u8 gMonPalette_Chinchou[];
+extern const u8 gMonBackPic_Chinchou[];
+extern const u8 gMonShinyPalette_Chinchou[];
+extern const u8 gMonIcon_Chinchou[];
+extern const u8 gMonFootprint_Chinchou[];
+extern const u8 gMonFrontPic_Lanturn[];
+extern const u8 gMonPalette_Lanturn[];
+extern const u8 gMonBackPic_Lanturn[];
+extern const u8 gMonShinyPalette_Lanturn[];
+extern const u8 gMonIcon_Lanturn[];
+extern const u8 gMonFootprint_Lanturn[];
+extern const u8 gMonFrontPic_Pichu[];
+extern const u8 gMonPalette_Pichu[];
+extern const u8 gMonBackPic_Pichu[];
+extern const u8 gMonShinyPalette_Pichu[];
+extern const u8 gMonIcon_Pichu[];
+extern const u8 gMonFootprint_Pichu[];
+extern const u8 gMonFrontPic_Cleffa[];
+extern const u8 gMonPalette_Cleffa[];
+extern const u8 gMonBackPic_Cleffa[];
+extern const u8 gMonShinyPalette_Cleffa[];
+extern const u8 gMonIcon_Cleffa[];
+extern const u8 gMonFootprint_Cleffa[];
+extern const u8 gMonFrontPic_Igglybuff[];
+extern const u8 gMonPalette_Igglybuff[];
+extern const u8 gMonBackPic_Igglybuff[];
+extern const u8 gMonShinyPalette_Igglybuff[];
+extern const u8 gMonIcon_Igglybuff[];
+extern const u8 gMonFootprint_Igglybuff[];
+extern const u8 gMonFrontPic_Togepi[];
+extern const u8 gMonPalette_Togepi[];
+extern const u8 gMonBackPic_Togepi[];
+extern const u8 gMonShinyPalette_Togepi[];
+extern const u8 gMonIcon_Togepi[];
+extern const u8 gMonFootprint_Togepi[];
+extern const u8 gMonFrontPic_Togetic[];
+extern const u8 gMonPalette_Togetic[];
+extern const u8 gMonBackPic_Togetic[];
+extern const u8 gMonShinyPalette_Togetic[];
+extern const u8 gMonIcon_Togetic[];
+extern const u8 gMonFootprint_Togetic[];
+extern const u8 gMonFrontPic_Natu[];
+extern const u8 gMonPalette_Natu[];
+extern const u8 gMonBackPic_Natu[];
+extern const u8 gMonShinyPalette_Natu[];
+extern const u8 gMonIcon_Natu[];
+extern const u8 gMonFootprint_Natu[];
+extern const u8 gMonFrontPic_Xatu[];
+extern const u8 gMonPalette_Xatu[];
+extern const u8 gMonBackPic_Xatu[];
+extern const u8 gMonShinyPalette_Xatu[];
+extern const u8 gMonIcon_Xatu[];
+extern const u8 gMonFootprint_Xatu[];
+extern const u8 gMonFrontPic_Mareep[];
+extern const u8 gMonPalette_Mareep[];
+extern const u8 gMonBackPic_Mareep[];
+extern const u8 gMonShinyPalette_Mareep[];
+extern const u8 gMonIcon_Mareep[];
+extern const u8 gMonFootprint_Mareep[];
+extern const u8 gMonFrontPic_Flaaffy[];
+extern const u8 gMonPalette_Flaaffy[];
+extern const u8 gMonBackPic_Flaaffy[];
+extern const u8 gMonShinyPalette_Flaaffy[];
+extern const u8 gMonIcon_Flaaffy[];
+extern const u8 gMonFootprint_Flaaffy[];
+extern const u8 gMonFrontPic_Ampharos[];
+extern const u8 gMonPalette_Ampharos[];
+extern const u8 gMonBackPic_Ampharos[];
+extern const u8 gMonShinyPalette_Ampharos[];
+extern const u8 gMonIcon_Ampharos[];
+extern const u8 gMonFootprint_Ampharos[];
+extern const u8 gMonFrontPic_Bellossom[];
+extern const u8 gMonPalette_Bellossom[];
+extern const u8 gMonBackPic_Bellossom[];
+extern const u8 gMonShinyPalette_Bellossom[];
+extern const u8 gMonIcon_Bellossom[];
+extern const u8 gMonFootprint_Bellossom[];
+extern const u8 gMonFrontPic_Marill[];
+extern const u8 gMonPalette_Marill[];
+extern const u8 gMonBackPic_Marill[];
+extern const u8 gMonShinyPalette_Marill[];
+extern const u8 gMonIcon_Marill[];
+extern const u8 gMonFootprint_Marill[];
+extern const u8 gMonFrontPic_Azumarill[];
+extern const u8 gMonPalette_Azumarill[];
+extern const u8 gMonBackPic_Azumarill[];
+extern const u8 gMonShinyPalette_Azumarill[];
+extern const u8 gMonIcon_Azumarill[];
+extern const u8 gMonFootprint_Azumarill[];
+extern const u8 gMonFrontPic_Sudowoodo[];
+extern const u8 gMonPalette_Sudowoodo[];
+extern const u8 gMonBackPic_Sudowoodo[];
+extern const u8 gMonShinyPalette_Sudowoodo[];
+extern const u8 gMonIcon_Sudowoodo[];
+extern const u8 gMonFootprint_Sudowoodo[];
+extern const u8 gMonFrontPic_Politoed[];
+extern const u8 gMonPalette_Politoed[];
+extern const u8 gMonBackPic_Politoed[];
+extern const u8 gMonShinyPalette_Politoed[];
+extern const u8 gMonIcon_Politoed[];
+extern const u8 gMonFootprint_Politoed[];
+extern const u8 gMonFrontPic_Hoppip[];
+extern const u8 gMonPalette_Hoppip[];
+extern const u8 gMonBackPic_Hoppip[];
+extern const u8 gMonShinyPalette_Hoppip[];
+extern const u8 gMonIcon_Hoppip[];
+extern const u8 gMonFootprint_Hoppip[];
+extern const u8 gMonFrontPic_Skiploom[];
+extern const u8 gMonPalette_Skiploom[];
+extern const u8 gMonBackPic_Skiploom[];
+extern const u8 gMonShinyPalette_Skiploom[];
+extern const u8 gMonIcon_Skiploom[];
+extern const u8 gMonFootprint_Skiploom[];
+extern const u8 gMonFrontPic_Jumpluff[];
+extern const u8 gMonPalette_Jumpluff[];
+extern const u8 gMonBackPic_Jumpluff[];
+extern const u8 gMonShinyPalette_Jumpluff[];
+extern const u8 gMonIcon_Jumpluff[];
+extern const u8 gMonFootprint_Jumpluff[];
+extern const u8 gMonFrontPic_Aipom[];
+extern const u8 gMonPalette_Aipom[];
+extern const u8 gMonBackPic_Aipom[];
+extern const u8 gMonShinyPalette_Aipom[];
+extern const u8 gMonIcon_Aipom[];
+extern const u8 gMonFootprint_Aipom[];
+extern const u8 gMonFrontPic_Sunkern[];
+extern const u8 gMonPalette_Sunkern[];
+extern const u8 gMonBackPic_Sunkern[];
+extern const u8 gMonShinyPalette_Sunkern[];
+extern const u8 gMonIcon_Sunkern[];
+extern const u8 gMonFootprint_Sunkern[];
+extern const u8 gMonFrontPic_Sunflora[];
+extern const u8 gMonPalette_Sunflora[];
+extern const u8 gMonBackPic_Sunflora[];
+extern const u8 gMonShinyPalette_Sunflora[];
+extern const u8 gMonIcon_Sunflora[];
+extern const u8 gMonFootprint_Sunflora[];
+extern const u8 gMonFrontPic_Yanma[];
+extern const u8 gMonPalette_Yanma[];
+extern const u8 gMonBackPic_Yanma[];
+extern const u8 gMonShinyPalette_Yanma[];
+extern const u8 gMonIcon_Yanma[];
+extern const u8 gMonFootprint_Yanma[];
+extern const u8 gMonFrontPic_Wooper[];
+extern const u8 gMonPalette_Wooper[];
+extern const u8 gMonBackPic_Wooper[];
+extern const u8 gMonShinyPalette_Wooper[];
+extern const u8 gMonIcon_Wooper[];
+extern const u8 gMonFootprint_Wooper[];
+extern const u8 gMonFrontPic_Quagsire[];
+extern const u8 gMonPalette_Quagsire[];
+extern const u8 gMonBackPic_Quagsire[];
+extern const u8 gMonShinyPalette_Quagsire[];
+extern const u8 gMonIcon_Quagsire[];
+extern const u8 gMonFootprint_Quagsire[];
+extern const u8 gMonFrontPic_Espeon[];
+extern const u8 gMonPalette_Espeon[];
+extern const u8 gMonBackPic_Espeon[];
+extern const u8 gMonShinyPalette_Espeon[];
+extern const u8 gMonIcon_Espeon[];
+extern const u8 gMonFootprint_Espeon[];
+extern const u8 gMonFrontPic_Umbreon[];
+extern const u8 gMonPalette_Umbreon[];
+extern const u8 gMonBackPic_Umbreon[];
+extern const u8 gMonShinyPalette_Umbreon[];
+extern const u8 gMonIcon_Umbreon[];
+extern const u8 gMonFootprint_Umbreon[];
+extern const u8 gMonFrontPic_Murkrow[];
+extern const u8 gMonPalette_Murkrow[];
+extern const u8 gMonBackPic_Murkrow[];
+extern const u8 gMonShinyPalette_Murkrow[];
+extern const u8 gMonIcon_Murkrow[];
+extern const u8 gMonFootprint_Murkrow[];
+extern const u8 gMonFrontPic_Slowking[];
+extern const u8 gMonPalette_Slowking[];
+extern const u8 gMonBackPic_Slowking[];
+extern const u8 gMonShinyPalette_Slowking[];
+extern const u8 gMonIcon_Slowking[];
+extern const u8 gMonFootprint_Slowking[];
+extern const u8 gMonFrontPic_Misdreavus[];
+extern const u8 gMonPalette_Misdreavus[];
+extern const u8 gMonBackPic_Misdreavus[];
+extern const u8 gMonShinyPalette_Misdreavus[];
+extern const u8 gMonIcon_Misdreavus[];
+extern const u8 gMonFootprint_Misdreavus[];
+extern const u8 gMonFrontPic_UnownA[];
+extern const u8 gMonPalette_Unown[];
+extern const u8 gMonBackPic_UnownA[];
+extern const u8 gMonShinyPalette_Unown[];
+extern const u8 gMonIcon_UnownA[];
+extern const u8 gMonFootprint_Unown[];
+extern const u8 gMonFrontPic_Wobbuffet[];
+extern const u8 gMonPalette_Wobbuffet[];
+extern const u8 gMonBackPic_Wobbuffet[];
+extern const u8 gMonShinyPalette_Wobbuffet[];
+extern const u8 gMonIcon_Wobbuffet[];
+extern const u8 gMonFootprint_Wobbuffet[];
+extern const u8 gMonFrontPic_Girafarig[];
+extern const u8 gMonPalette_Girafarig[];
+extern const u8 gMonBackPic_Girafarig[];
+extern const u8 gMonShinyPalette_Girafarig[];
+extern const u8 gMonIcon_Girafarig[];
+extern const u8 gMonFootprint_Girafarig[];
+extern const u8 gMonFrontPic_Pineco[];
+extern const u8 gMonPalette_Pineco[];
+extern const u8 gMonBackPic_Pineco[];
+extern const u8 gMonShinyPalette_Pineco[];
+extern const u8 gMonIcon_Pineco[];
+extern const u8 gMonFootprint_Pineco[];
+extern const u8 gMonFrontPic_Forretress[];
+extern const u8 gMonPalette_Forretress[];
+extern const u8 gMonBackPic_Forretress[];
+extern const u8 gMonShinyPalette_Forretress[];
+extern const u8 gMonIcon_Forretress[];
+extern const u8 gMonFootprint_Forretress[];
+extern const u8 gMonFrontPic_Dunsparce[];
+extern const u8 gMonPalette_Dunsparce[];
+extern const u8 gMonBackPic_Dunsparce[];
+extern const u8 gMonShinyPalette_Dunsparce[];
+extern const u8 gMonIcon_Dunsparce[];
+extern const u8 gMonFootprint_Dunsparce[];
+extern const u8 gMonFrontPic_Gligar[];
+extern const u8 gMonPalette_Gligar[];
+extern const u8 gMonBackPic_Gligar[];
+extern const u8 gMonShinyPalette_Gligar[];
+extern const u8 gMonIcon_Gligar[];
+extern const u8 gMonFootprint_Gligar[];
+extern const u8 gMonFrontPic_Steelix[];
+extern const u8 gMonPalette_Steelix[];
+extern const u8 gMonBackPic_Steelix[];
+extern const u8 gMonShinyPalette_Steelix[];
+extern const u8 gMonIcon_Steelix[];
+extern const u8 gMonFootprint_Steelix[];
+extern const u8 gMonFrontPic_Snubbull[];
+extern const u8 gMonPalette_Snubbull[];
+extern const u8 gMonBackPic_Snubbull[];
+extern const u8 gMonShinyPalette_Snubbull[];
+extern const u8 gMonIcon_Snubbull[];
+extern const u8 gMonFootprint_Snubbull[];
+extern const u8 gMonFrontPic_Granbull[];
+extern const u8 gMonPalette_Granbull[];
+extern const u8 gMonBackPic_Granbull[];
+extern const u8 gMonShinyPalette_Granbull[];
+extern const u8 gMonIcon_Granbull[];
+extern const u8 gMonFootprint_Granbull[];
+extern const u8 gMonFrontPic_Qwilfish[];
+extern const u8 gMonPalette_Qwilfish[];
+extern const u8 gMonBackPic_Qwilfish[];
+extern const u8 gMonShinyPalette_Qwilfish[];
+extern const u8 gMonIcon_Qwilfish[];
+extern const u8 gMonFootprint_Qwilfish[];
+extern const u8 gMonFrontPic_Scizor[];
+extern const u8 gMonPalette_Scizor[];
+extern const u8 gMonBackPic_Scizor[];
+extern const u8 gMonShinyPalette_Scizor[];
+extern const u8 gMonIcon_Scizor[];
+extern const u8 gMonFootprint_Scizor[];
+extern const u8 gMonFrontPic_Shuckle[];
+extern const u8 gMonPalette_Shuckle[];
+extern const u8 gMonBackPic_Shuckle[];
+extern const u8 gMonShinyPalette_Shuckle[];
+extern const u8 gMonIcon_Shuckle[];
+extern const u8 gMonFootprint_Shuckle[];
+extern const u8 gMonFrontPic_Heracross[];
+extern const u8 gMonPalette_Heracross[];
+extern const u8 gMonBackPic_Heracross[];
+extern const u8 gMonShinyPalette_Heracross[];
+extern const u8 gMonIcon_Heracross[];
+extern const u8 gMonFootprint_Heracross[];
+extern const u8 gMonFrontPic_Sneasel[];
+extern const u8 gMonPalette_Sneasel[];
+extern const u8 gMonBackPic_Sneasel[];
+extern const u8 gMonShinyPalette_Sneasel[];
+extern const u8 gMonIcon_Sneasel[];
+extern const u8 gMonFootprint_Sneasel[];
+extern const u8 gMonFrontPic_Teddiursa[];
+extern const u8 gMonPalette_Teddiursa[];
+extern const u8 gMonBackPic_Teddiursa[];
+extern const u8 gMonShinyPalette_Teddiursa[];
+extern const u8 gMonIcon_Teddiursa[];
+extern const u8 gMonFootprint_Teddiursa[];
+extern const u8 gMonFrontPic_Ursaring[];
+extern const u8 gMonPalette_Ursaring[];
+extern const u8 gMonBackPic_Ursaring[];
+extern const u8 gMonShinyPalette_Ursaring[];
+extern const u8 gMonIcon_Ursaring[];
+extern const u8 gMonFootprint_Ursaring[];
+extern const u8 gMonFrontPic_Slugma[];
+extern const u8 gMonPalette_Slugma[];
+extern const u8 gMonBackPic_Slugma[];
+extern const u8 gMonShinyPalette_Slugma[];
+extern const u8 gMonIcon_Slugma[];
+extern const u8 gMonFootprint_Slugma[];
+extern const u8 gMonFrontPic_Magcargo[];
+extern const u8 gMonPalette_Magcargo[];
+extern const u8 gMonBackPic_Magcargo[];
+extern const u8 gMonShinyPalette_Magcargo[];
+extern const u8 gMonIcon_Magcargo[];
+extern const u8 gMonFootprint_Magcargo[];
+extern const u8 gMonFrontPic_Swinub[];
+extern const u8 gMonPalette_Swinub[];
+extern const u8 gMonBackPic_Swinub[];
+extern const u8 gMonShinyPalette_Swinub[];
+extern const u8 gMonIcon_Swinub[];
+extern const u8 gMonFootprint_Swinub[];
+extern const u8 gMonFrontPic_Piloswine[];
+extern const u8 gMonPalette_Piloswine[];
+extern const u8 gMonBackPic_Piloswine[];
+extern const u8 gMonShinyPalette_Piloswine[];
+extern const u8 gMonIcon_Piloswine[];
+extern const u8 gMonFootprint_Piloswine[];
+extern const u8 gMonFrontPic_Corsola[];
+extern const u8 gMonPalette_Corsola[];
+extern const u8 gMonBackPic_Corsola[];
+extern const u8 gMonShinyPalette_Corsola[];
+extern const u8 gMonIcon_Corsola[];
+extern const u8 gMonFootprint_Corsola[];
+extern const u8 gMonFrontPic_Remoraid[];
+extern const u8 gMonPalette_Remoraid[];
+extern const u8 gMonBackPic_Remoraid[];
+extern const u8 gMonShinyPalette_Remoraid[];
+extern const u8 gMonIcon_Remoraid[];
+extern const u8 gMonFootprint_Remoraid[];
+extern const u8 gMonFrontPic_Octillery[];
+extern const u8 gMonPalette_Octillery[];
+extern const u8 gMonBackPic_Octillery[];
+extern const u8 gMonShinyPalette_Octillery[];
+extern const u8 gMonIcon_Octillery[];
+extern const u8 gMonFootprint_Octillery[];
+extern const u8 gMonFrontPic_Delibird[];
+extern const u8 gMonPalette_Delibird[];
+extern const u8 gMonBackPic_Delibird[];
+extern const u8 gMonShinyPalette_Delibird[];
+extern const u8 gMonIcon_Delibird[];
+extern const u8 gMonFootprint_Delibird[];
+extern const u8 gMonFrontPic_Mantine[];
+extern const u8 gMonPalette_Mantine[];
+extern const u8 gMonBackPic_Mantine[];
+extern const u8 gMonShinyPalette_Mantine[];
+extern const u8 gMonIcon_Mantine[];
+extern const u8 gMonFootprint_Mantine[];
+extern const u8 gMonFrontPic_Skarmory[];
+extern const u8 gMonPalette_Skarmory[];
+extern const u8 gMonBackPic_Skarmory[];
+extern const u8 gMonShinyPalette_Skarmory[];
+extern const u8 gMonIcon_Skarmory[];
+extern const u8 gMonFootprint_Skarmory[];
+extern const u8 gMonFrontPic_Houndour[];
+extern const u8 gMonPalette_Houndour[];
+extern const u8 gMonBackPic_Houndour[];
+extern const u8 gMonShinyPalette_Houndour[];
+extern const u8 gMonIcon_Houndour[];
+extern const u8 gMonFootprint_Houndour[];
+extern const u8 gMonFrontPic_Houndoom[];
+extern const u8 gMonPalette_Houndoom[];
+extern const u8 gMonBackPic_Houndoom[];
+extern const u8 gMonShinyPalette_Houndoom[];
+extern const u8 gMonIcon_Houndoom[];
+extern const u8 gMonFootprint_Houndoom[];
+extern const u8 gMonFrontPic_Kingdra[];
+extern const u8 gMonPalette_Kingdra[];
+extern const u8 gMonBackPic_Kingdra[];
+extern const u8 gMonShinyPalette_Kingdra[];
+extern const u8 gMonIcon_Kingdra[];
+extern const u8 gMonFootprint_Kingdra[];
+extern const u8 gMonFrontPic_Phanpy[];
+extern const u8 gMonPalette_Phanpy[];
+extern const u8 gMonBackPic_Phanpy[];
+extern const u8 gMonShinyPalette_Phanpy[];
+extern const u8 gMonIcon_Phanpy[];
+extern const u8 gMonFootprint_Phanpy[];
+extern const u8 gMonFrontPic_Donphan[];
+extern const u8 gMonPalette_Donphan[];
+extern const u8 gMonBackPic_Donphan[];
+extern const u8 gMonShinyPalette_Donphan[];
+extern const u8 gMonIcon_Donphan[];
+extern const u8 gMonFootprint_Donphan[];
+extern const u8 gMonFrontPic_Porygon2[];
+extern const u8 gMonPalette_Porygon2[];
+extern const u8 gMonBackPic_Porygon2[];
+extern const u8 gMonShinyPalette_Porygon2[];
+extern const u8 gMonIcon_Porygon2[];
+extern const u8 gMonFootprint_Porygon2[];
+extern const u8 gMonFrontPic_Stantler[];
+extern const u8 gMonPalette_Stantler[];
+extern const u8 gMonBackPic_Stantler[];
+extern const u8 gMonShinyPalette_Stantler[];
+extern const u8 gMonIcon_Stantler[];
+extern const u8 gMonFootprint_Stantler[];
+extern const u8 gMonFrontPic_Smeargle[];
+extern const u8 gMonPalette_Smeargle[];
+extern const u8 gMonBackPic_Smeargle[];
+extern const u8 gMonShinyPalette_Smeargle[];
+extern const u8 gMonIcon_Smeargle[];
+extern const u8 gMonFootprint_Smeargle[];
+extern const u8 gMonFrontPic_Tyrogue[];
+extern const u8 gMonPalette_Tyrogue[];
+extern const u8 gMonBackPic_Tyrogue[];
+extern const u8 gMonShinyPalette_Tyrogue[];
+extern const u8 gMonIcon_Tyrogue[];
+extern const u8 gMonFootprint_Tyrogue[];
+extern const u8 gMonFrontPic_Hitmontop[];
+extern const u8 gMonPalette_Hitmontop[];
+extern const u8 gMonBackPic_Hitmontop[];
+extern const u8 gMonShinyPalette_Hitmontop[];
+extern const u8 gMonIcon_Hitmontop[];
+extern const u8 gMonFootprint_Hitmontop[];
+extern const u8 gMonFrontPic_Smoochum[];
+extern const u8 gMonPalette_Smoochum[];
+extern const u8 gMonBackPic_Smoochum[];
+extern const u8 gMonShinyPalette_Smoochum[];
+extern const u8 gMonIcon_Smoochum[];
+extern const u8 gMonFootprint_Smoochum[];
+extern const u8 gMonFrontPic_Elekid[];
+extern const u8 gMonPalette_Elekid[];
+extern const u8 gMonBackPic_Elekid[];
+extern const u8 gMonShinyPalette_Elekid[];
+extern const u8 gMonIcon_Elekid[];
+extern const u8 gMonFootprint_Elekid[];
+extern const u8 gMonFrontPic_Magby[];
+extern const u8 gMonPalette_Magby[];
+extern const u8 gMonBackPic_Magby[];
+extern const u8 gMonShinyPalette_Magby[];
+extern const u8 gMonIcon_Magby[];
+extern const u8 gMonFootprint_Magby[];
+extern const u8 gMonFrontPic_Miltank[];
+extern const u8 gMonPalette_Miltank[];
+extern const u8 gMonBackPic_Miltank[];
+extern const u8 gMonShinyPalette_Miltank[];
+extern const u8 gMonIcon_Miltank[];
+extern const u8 gMonFootprint_Miltank[];
+extern const u8 gMonFrontPic_Blissey[];
+extern const u8 gMonPalette_Blissey[];
+extern const u8 gMonBackPic_Blissey[];
+extern const u8 gMonShinyPalette_Blissey[];
+extern const u8 gMonIcon_Blissey[];
+extern const u8 gMonFootprint_Blissey[];
+extern const u8 gMonFrontPic_Raikou[];
+extern const u8 gMonPalette_Raikou[];
+extern const u8 gMonBackPic_Raikou[];
+extern const u8 gMonShinyPalette_Raikou[];
+extern const u8 gMonIcon_Raikou[];
+extern const u8 gMonFootprint_Raikou[];
+extern const u8 gMonFrontPic_Entei[];
+extern const u8 gMonPalette_Entei[];
+extern const u8 gMonBackPic_Entei[];
+extern const u8 gMonShinyPalette_Entei[];
+extern const u8 gMonIcon_Entei[];
+extern const u8 gMonFootprint_Entei[];
+extern const u8 gMonFrontPic_Suicune[];
+extern const u8 gMonPalette_Suicune[];
+extern const u8 gMonBackPic_Suicune[];
+extern const u8 gMonShinyPalette_Suicune[];
+extern const u8 gMonIcon_Suicune[];
+extern const u8 gMonFootprint_Suicune[];
+extern const u8 gMonFrontPic_Larvitar[];
+extern const u8 gMonPalette_Larvitar[];
+extern const u8 gMonBackPic_Larvitar[];
+extern const u8 gMonShinyPalette_Larvitar[];
+extern const u8 gMonIcon_Larvitar[];
+extern const u8 gMonFootprint_Larvitar[];
+extern const u8 gMonFrontPic_Pupitar[];
+extern const u8 gMonPalette_Pupitar[];
+extern const u8 gMonBackPic_Pupitar[];
+extern const u8 gMonShinyPalette_Pupitar[];
+extern const u8 gMonIcon_Pupitar[];
+extern const u8 gMonFootprint_Pupitar[];
+extern const u8 gMonFrontPic_Tyranitar[];
+extern const u8 gMonPalette_Tyranitar[];
+extern const u8 gMonBackPic_Tyranitar[];
+extern const u8 gMonShinyPalette_Tyranitar[];
+extern const u8 gMonIcon_Tyranitar[];
+extern const u8 gMonFootprint_Tyranitar[];
+extern const u8 gMonFrontPic_Lugia[];
+extern const u8 gMonPalette_Lugia[];
+extern const u8 gMonBackPic_Lugia[];
+extern const u8 gMonShinyPalette_Lugia[];
+extern const u8 gMonIcon_Lugia[];
+extern const u8 gMonFootprint_Lugia[];
+extern const u8 gMonFrontPic_HoOh[];
+extern const u8 gMonPalette_HoOh[];
+extern const u8 gMonBackPic_HoOh[];
+extern const u8 gMonShinyPalette_HoOh[];
+extern const u8 gMonIcon_HoOh[];
+extern const u8 gMonFootprint_HoOh[];
+extern const u8 gMonFrontPic_Celebi[];
+extern const u8 gMonPalette_Celebi[];
+extern const u8 gMonBackPic_Celebi[];
+extern const u8 gMonShinyPalette_Celebi[];
+extern const u8 gMonIcon_Celebi[];
+extern const u8 gMonFootprint_Celebi[];
+extern const u8 gMonFrontPic_QuestionMark[];
+extern const u8 gMonPalette_QuestionMark[];
+extern const u8 gMonBackPic_QuestionMark[];
+extern const u8 gMonShinyPalette_QuestionMark[];
+extern const u8 gMonFrontPic_Treecko[];
+extern const u8 gMonPalette_Treecko[];
+extern const u8 gMonBackPic_Treecko[];
+extern const u8 gMonShinyPalette_Treecko[];
+extern const u8 gMonIcon_Treecko[];
+extern const u8 gMonFootprint_Treecko[];
+extern const u8 gMonFrontPic_Grovyle[];
+extern const u8 gMonPalette_Grovyle[];
+extern const u8 gMonBackPic_Grovyle[];
+extern const u8 gMonShinyPalette_Grovyle[];
+extern const u8 gMonIcon_Grovyle[];
+extern const u8 gMonFootprint_Grovyle[];
+extern const u8 gMonFrontPic_Sceptile[];
+extern const u8 gMonPalette_Sceptile[];
+extern const u8 gMonBackPic_Sceptile[];
+extern const u8 gMonShinyPalette_Sceptile[];
+extern const u8 gMonIcon_Sceptile[];
+extern const u8 gMonFootprint_Sceptile[];
+extern const u8 gMonFrontPic_Torchic[];
+extern const u8 gMonPalette_Torchic[];
+extern const u8 gMonBackPic_Torchic[];
+extern const u8 gMonShinyPalette_Torchic[];
+extern const u8 gMonIcon_Torchic[];
+extern const u8 gMonFootprint_Torchic[];
+extern const u8 gMonFrontPic_Combusken[];
+extern const u8 gMonPalette_Combusken[];
+extern const u8 gMonBackPic_Combusken[];
+extern const u8 gMonShinyPalette_Combusken[];
+extern const u8 gMonIcon_Combusken[];
+extern const u8 gMonFootprint_Combusken[];
+extern const u8 gMonFrontPic_Blaziken[];
+extern const u8 gMonPalette_Blaziken[];
+extern const u8 gMonBackPic_Blaziken[];
+extern const u8 gMonShinyPalette_Blaziken[];
+extern const u8 gMonIcon_Blaziken[];
+extern const u8 gMonFootprint_Blaziken[];
+extern const u8 gMonFrontPic_Mudkip[];
+extern const u8 gMonPalette_Mudkip[];
+extern const u8 gMonBackPic_Mudkip[];
+extern const u8 gMonShinyPalette_Mudkip[];
+extern const u8 gMonIcon_Mudkip[];
+extern const u8 gMonFootprint_Mudkip[];
+extern const u8 gMonFrontPic_Marshtomp[];
+extern const u8 gMonPalette_Marshtomp[];
+extern const u8 gMonBackPic_Marshtomp[];
+extern const u8 gMonShinyPalette_Marshtomp[];
+extern const u8 gMonIcon_Marshtomp[];
+extern const u8 gMonFootprint_Marshtomp[];
+extern const u8 gMonFrontPic_Swampert[];
+extern const u8 gMonPalette_Swampert[];
+extern const u8 gMonBackPic_Swampert[];
+extern const u8 gMonShinyPalette_Swampert[];
+extern const u8 gMonIcon_Swampert[];
+extern const u8 gMonFootprint_Swampert[];
+extern const u8 gMonFrontPic_Poochyena[];
+extern const u8 gMonPalette_Poochyena[];
+extern const u8 gMonBackPic_Poochyena[];
+extern const u8 gMonShinyPalette_Poochyena[];
+extern const u8 gMonIcon_Poochyena[];
+extern const u8 gMonFootprint_Poochyena[];
+extern const u8 gMonFrontPic_Mightyena[];
+extern const u8 gMonPalette_Mightyena[];
+extern const u8 gMonBackPic_Mightyena[];
+extern const u8 gMonShinyPalette_Mightyena[];
+extern const u8 gMonIcon_Mightyena[];
+extern const u8 gMonFootprint_Mightyena[];
+extern const u8 gMonFrontPic_Zigzagoon[];
+extern const u8 gMonPalette_Zigzagoon[];
+extern const u8 gMonBackPic_Zigzagoon[];
+extern const u8 gMonShinyPalette_Zigzagoon[];
+extern const u8 gMonIcon_Zigzagoon[];
+extern const u8 gMonFootprint_Zigzagoon[];
+extern const u8 gMonFrontPic_Linoone[];
+extern const u8 gMonPalette_Linoone[];
+extern const u8 gMonBackPic_Linoone[];
+extern const u8 gMonShinyPalette_Linoone[];
+extern const u8 gMonIcon_Linoone[];
+extern const u8 gMonFootprint_Linoone[];
+extern const u8 gMonFrontPic_Wurmple[];
+extern const u8 gMonPalette_Wurmple[];
+extern const u8 gMonBackPic_Wurmple[];
+extern const u8 gMonShinyPalette_Wurmple[];
+extern const u8 gMonIcon_Wurmple[];
+extern const u8 gMonFootprint_Wurmple[];
+extern const u8 gMonFrontPic_Silcoon[];
+extern const u8 gMonPalette_Silcoon[];
+extern const u8 gMonBackPic_Silcoon[];
+extern const u8 gMonShinyPalette_Silcoon[];
+extern const u8 gMonIcon_Silcoon[];
+extern const u8 gMonFootprint_Silcoon[];
+extern const u8 gMonFrontPic_Beautifly[];
+extern const u8 gMonPalette_Beautifly[];
+extern const u8 gMonBackPic_Beautifly[];
+extern const u8 gMonShinyPalette_Beautifly[];
+extern const u8 gMonIcon_Beautifly[];
+extern const u8 gMonFootprint_Beautifly[];
+extern const u8 gMonFrontPic_Cascoon[];
+extern const u8 gMonPalette_Cascoon[];
+extern const u8 gMonBackPic_Cascoon[];
+extern const u8 gMonShinyPalette_Cascoon[];
+extern const u8 gMonIcon_Cascoon[];
+extern const u8 gMonFootprint_Cascoon[];
+extern const u8 gMonFrontPic_Dustox[];
+extern const u8 gMonPalette_Dustox[];
+extern const u8 gMonBackPic_Dustox[];
+extern const u8 gMonShinyPalette_Dustox[];
+extern const u8 gMonIcon_Dustox[];
+extern const u8 gMonFootprint_Dustox[];
+extern const u8 gMonFrontPic_Lotad[];
+extern const u8 gMonPalette_Lotad[];
+extern const u8 gMonBackPic_Lotad[];
+extern const u8 gMonShinyPalette_Lotad[];
+extern const u8 gMonIcon_Lotad[];
+extern const u8 gMonFootprint_Lotad[];
+extern const u8 gMonFrontPic_Lombre[];
+extern const u8 gMonPalette_Lombre[];
+extern const u8 gMonBackPic_Lombre[];
+extern const u8 gMonShinyPalette_Lombre[];
+extern const u8 gMonIcon_Lombre[];
+extern const u8 gMonFootprint_Lombre[];
+extern const u8 gMonFrontPic_Ludicolo[];
+extern const u8 gMonPalette_Ludicolo[];
+extern const u8 gMonBackPic_Ludicolo[];
+extern const u8 gMonShinyPalette_Ludicolo[];
+extern const u8 gMonIcon_Ludicolo[];
+extern const u8 gMonFootprint_Ludicolo[];
+extern const u8 gMonFrontPic_Seedot[];
+extern const u8 gMonPalette_Seedot[];
+extern const u8 gMonBackPic_Seedot[];
+extern const u8 gMonShinyPalette_Seedot[];
+extern const u8 gMonIcon_Seedot[];
+extern const u8 gMonFootprint_Seedot[];
+extern const u8 gMonFrontPic_Nuzleaf[];
+extern const u8 gMonPalette_Nuzleaf[];
+extern const u8 gMonBackPic_Nuzleaf[];
+extern const u8 gMonShinyPalette_Nuzleaf[];
+extern const u8 gMonIcon_Nuzleaf[];
+extern const u8 gMonFootprint_Nuzleaf[];
+extern const u8 gMonFrontPic_Shiftry[];
+extern const u8 gMonPalette_Shiftry[];
+extern const u8 gMonBackPic_Shiftry[];
+extern const u8 gMonShinyPalette_Shiftry[];
+extern const u8 gMonIcon_Shiftry[];
+extern const u8 gMonFootprint_Shiftry[];
+extern const u8 gMonFrontPic_Nincada[];
+extern const u8 gMonPalette_Nincada[];
+extern const u8 gMonBackPic_Nincada[];
+extern const u8 gMonShinyPalette_Nincada[];
+extern const u8 gMonIcon_Nincada[];
+extern const u8 gMonFootprint_Nincada[];
+extern const u8 gMonFrontPic_Ninjask[];
+extern const u8 gMonPalette_Ninjask[];
+extern const u8 gMonBackPic_Ninjask[];
+extern const u8 gMonShinyPalette_Ninjask[];
+extern const u8 gMonIcon_Ninjask[];
+extern const u8 gMonFootprint_Ninjask[];
+extern const u8 gMonFrontPic_Shedinja[];
+extern const u8 gMonPalette_Shedinja[];
+extern const u8 gMonBackPic_Shedinja[];
+extern const u8 gMonShinyPalette_Shedinja[];
+extern const u8 gMonIcon_Shedinja[];
+extern const u8 gMonFootprint_Shedinja[];
+extern const u8 gMonFrontPic_Taillow[];
+extern const u8 gMonPalette_Taillow[];
+extern const u8 gMonBackPic_Taillow[];
+extern const u8 gMonShinyPalette_Taillow[];
+extern const u8 gMonIcon_Taillow[];
+extern const u8 gMonFootprint_Taillow[];
+extern const u8 gMonFrontPic_Swellow[];
+extern const u8 gMonPalette_Swellow[];
+extern const u8 gMonBackPic_Swellow[];
+extern const u8 gMonShinyPalette_Swellow[];
+extern const u8 gMonIcon_Swellow[];
+extern const u8 gMonFootprint_Swellow[];
+extern const u8 gMonFrontPic_Shroomish[];
+extern const u8 gMonPalette_Shroomish[];
+extern const u8 gMonBackPic_Shroomish[];
+extern const u8 gMonShinyPalette_Shroomish[];
+extern const u8 gMonIcon_Shroomish[];
+extern const u8 gMonFootprint_Shroomish[];
+extern const u8 gMonFrontPic_Breloom[];
+extern const u8 gMonPalette_Breloom[];
+extern const u8 gMonBackPic_Breloom[];
+extern const u8 gMonShinyPalette_Breloom[];
+extern const u8 gMonIcon_Breloom[];
+extern const u8 gMonFootprint_Breloom[];
+extern const u8 gMonFrontPic_Spinda[];
+extern const u8 gMonPalette_Spinda[];
+extern const u8 gMonBackPic_Spinda[];
+extern const u8 gMonShinyPalette_Spinda[];
+extern const u8 gMonIcon_Spinda[];
+extern const u8 gMonFootprint_Spinda[];
+extern const u8 gMonFrontPic_Wingull[];
+extern const u8 gMonPalette_Wingull[];
+extern const u8 gMonBackPic_Wingull[];
+extern const u8 gMonShinyPalette_Wingull[];
+extern const u8 gMonIcon_Wingull[];
+extern const u8 gMonFootprint_Wingull[];
+extern const u8 gMonFrontPic_Pelipper[];
+extern const u8 gMonPalette_Pelipper[];
+extern const u8 gMonBackPic_Pelipper[];
+extern const u8 gMonShinyPalette_Pelipper[];
+extern const u8 gMonIcon_Pelipper[];
+extern const u8 gMonFootprint_Pelipper[];
+extern const u8 gMonFrontPic_Surskit[];
+extern const u8 gMonPalette_Surskit[];
+extern const u8 gMonBackPic_Surskit[];
+extern const u8 gMonShinyPalette_Surskit[];
+extern const u8 gMonIcon_Surskit[];
+extern const u8 gMonFootprint_Surskit[];
+extern const u8 gMonFrontPic_Masquerain[];
+extern const u8 gMonPalette_Masquerain[];
+extern const u8 gMonBackPic_Masquerain[];
+extern const u8 gMonShinyPalette_Masquerain[];
+extern const u8 gMonIcon_Masquerain[];
+extern const u8 gMonFootprint_Masquerain[];
+extern const u8 gMonFrontPic_Wailmer[];
+extern const u8 gMonPalette_Wailmer[];
+extern const u8 gMonBackPic_Wailmer[];
+extern const u8 gMonShinyPalette_Wailmer[];
+extern const u8 gMonIcon_Wailmer[];
+extern const u8 gMonFootprint_Wailmer[];
+extern const u8 gMonFrontPic_Wailord[];
+extern const u8 gMonPalette_Wailord[];
+extern const u8 gMonBackPic_Wailord[];
+extern const u8 gMonShinyPalette_Wailord[];
+extern const u8 gMonIcon_Wailord[];
+extern const u8 gMonFootprint_Wailord[];
+extern const u8 gMonFrontPic_Skitty[];
+extern const u8 gMonPalette_Skitty[];
+extern const u8 gMonBackPic_Skitty[];
+extern const u8 gMonShinyPalette_Skitty[];
+extern const u8 gMonIcon_Skitty[];
+extern const u8 gMonFootprint_Skitty[];
+extern const u8 gMonFrontPic_Delcatty[];
+extern const u8 gMonPalette_Delcatty[];
+extern const u8 gMonBackPic_Delcatty[];
+extern const u8 gMonShinyPalette_Delcatty[];
+extern const u8 gMonIcon_Delcatty[];
+extern const u8 gMonFootprint_Delcatty[];
+extern const u8 gMonFrontPic_Kecleon[];
+extern const u8 gMonPalette_Kecleon[];
+extern const u8 gMonBackPic_Kecleon[];
+extern const u8 gMonShinyPalette_Kecleon[];
+extern const u8 gMonIcon_Kecleon[];
+extern const u8 gMonFootprint_Kecleon[];
+extern const u8 gMonFrontPic_Baltoy[];
+extern const u8 gMonPalette_Baltoy[];
+extern const u8 gMonBackPic_Baltoy[];
+extern const u8 gMonShinyPalette_Baltoy[];
+extern const u8 gMonIcon_Baltoy[];
+extern const u8 gMonFootprint_Baltoy[];
+extern const u8 gMonFrontPic_Claydol[];
+extern const u8 gMonPalette_Claydol[];
+extern const u8 gMonBackPic_Claydol[];
+extern const u8 gMonShinyPalette_Claydol[];
+extern const u8 gMonIcon_Claydol[];
+extern const u8 gMonFootprint_Claydol[];
+extern const u8 gMonFrontPic_Nosepass[];
+extern const u8 gMonPalette_Nosepass[];
+extern const u8 gMonBackPic_Nosepass[];
+extern const u8 gMonShinyPalette_Nosepass[];
+extern const u8 gMonIcon_Nosepass[];
+extern const u8 gMonFootprint_Nosepass[];
+extern const u8 gMonFrontPic_Torkoal[];
+extern const u8 gMonPalette_Torkoal[];
+extern const u8 gMonBackPic_Torkoal[];
+extern const u8 gMonShinyPalette_Torkoal[];
+extern const u8 gMonIcon_Torkoal[];
+extern const u8 gMonFootprint_Torkoal[];
+extern const u8 gMonFrontPic_Sableye[];
+extern const u8 gMonPalette_Sableye[];
+extern const u8 gMonBackPic_Sableye[];
+extern const u8 gMonShinyPalette_Sableye[];
+extern const u8 gMonIcon_Sableye[];
+extern const u8 gMonFootprint_Sableye[];
+extern const u8 gMonFrontPic_Barboach[];
+extern const u8 gMonPalette_Barboach[];
+extern const u8 gMonBackPic_Barboach[];
+extern const u8 gMonShinyPalette_Barboach[];
+extern const u8 gMonIcon_Barboach[];
+extern const u8 gMonFootprint_Barboach[];
+extern const u8 gMonFrontPic_Whiscash[];
+extern const u8 gMonPalette_Whiscash[];
+extern const u8 gMonBackPic_Whiscash[];
+extern const u8 gMonShinyPalette_Whiscash[];
+extern const u8 gMonIcon_Whiscash[];
+extern const u8 gMonFootprint_Whiscash[];
+extern const u8 gMonFrontPic_Luvdisc[];
+extern const u8 gMonPalette_Luvdisc[];
+extern const u8 gMonBackPic_Luvdisc[];
+extern const u8 gMonShinyPalette_Luvdisc[];
+extern const u8 gMonIcon_Luvdisc[];
+extern const u8 gMonFootprint_Luvdisc[];
+extern const u8 gMonFrontPic_Corphish[];
+extern const u8 gMonPalette_Corphish[];
+extern const u8 gMonBackPic_Corphish[];
+extern const u8 gMonShinyPalette_Corphish[];
+extern const u8 gMonIcon_Corphish[];
+extern const u8 gMonFootprint_Corphish[];
+extern const u8 gMonFrontPic_Crawdaunt[];
+extern const u8 gMonPalette_Crawdaunt[];
+extern const u8 gMonBackPic_Crawdaunt[];
+extern const u8 gMonShinyPalette_Crawdaunt[];
+extern const u8 gMonIcon_Crawdaunt[];
+extern const u8 gMonFootprint_Crawdaunt[];
+extern const u8 gMonFrontPic_Feebas[];
+extern const u8 gMonPalette_Feebas[];
+extern const u8 gMonBackPic_Feebas[];
+extern const u8 gMonShinyPalette_Feebas[];
+extern const u8 gMonIcon_Feebas[];
+extern const u8 gMonFootprint_Feebas[];
+extern const u8 gMonFrontPic_Milotic[];
+extern const u8 gMonPalette_Milotic[];
+extern const u8 gMonBackPic_Milotic[];
+extern const u8 gMonShinyPalette_Milotic[];
+extern const u8 gMonIcon_Milotic[];
+extern const u8 gMonFootprint_Milotic[];
+extern const u8 gMonFrontPic_Carvanha[];
+extern const u8 gMonPalette_Carvanha[];
+extern const u8 gMonBackPic_Carvanha[];
+extern const u8 gMonShinyPalette_Carvanha[];
+extern const u8 gMonIcon_Carvanha[];
+extern const u8 gMonFootprint_Carvanha[];
+extern const u8 gMonFrontPic_Sharpedo[];
+extern const u8 gMonPalette_Sharpedo[];
+extern const u8 gMonBackPic_Sharpedo[];
+extern const u8 gMonShinyPalette_Sharpedo[];
+extern const u8 gMonIcon_Sharpedo[];
+extern const u8 gMonFootprint_Sharpedo[];
+extern const u8 gMonFrontPic_Trapinch[];
+extern const u8 gMonPalette_Trapinch[];
+extern const u8 gMonBackPic_Trapinch[];
+extern const u8 gMonShinyPalette_Trapinch[];
+extern const u8 gMonIcon_Trapinch[];
+extern const u8 gMonFootprint_Trapinch[];
+extern const u8 gMonFrontPic_Vibrava[];
+extern const u8 gMonPalette_Vibrava[];
+extern const u8 gMonBackPic_Vibrava[];
+extern const u8 gMonShinyPalette_Vibrava[];
+extern const u8 gMonIcon_Vibrava[];
+extern const u8 gMonFootprint_Vibrava[];
+extern const u8 gMonFrontPic_Flygon[];
+extern const u8 gMonPalette_Flygon[];
+extern const u8 gMonBackPic_Flygon[];
+extern const u8 gMonShinyPalette_Flygon[];
+extern const u8 gMonIcon_Flygon[];
+extern const u8 gMonFootprint_Flygon[];
+extern const u8 gMonFrontPic_Makuhita[];
+extern const u8 gMonPalette_Makuhita[];
+extern const u8 gMonBackPic_Makuhita[];
+extern const u8 gMonShinyPalette_Makuhita[];
+extern const u8 gMonIcon_Makuhita[];
+extern const u8 gMonFootprint_Makuhita[];
+extern const u8 gMonFrontPic_Hariyama[];
+extern const u8 gMonPalette_Hariyama[];
+extern const u8 gMonBackPic_Hariyama[];
+extern const u8 gMonShinyPalette_Hariyama[];
+extern const u8 gMonIcon_Hariyama[];
+extern const u8 gMonFootprint_Hariyama[];
+extern const u8 gMonFrontPic_Electrike[];
+extern const u8 gMonPalette_Electrike[];
+extern const u8 gMonBackPic_Electrike[];
+extern const u8 gMonShinyPalette_Electrike[];
+extern const u8 gMonIcon_Electrike[];
+extern const u8 gMonFootprint_Electrike[];
+extern const u8 gMonFrontPic_Manectric[];
+extern const u8 gMonPalette_Manectric[];
+extern const u8 gMonBackPic_Manectric[];
+extern const u8 gMonShinyPalette_Manectric[];
+extern const u8 gMonIcon_Manectric[];
+extern const u8 gMonFootprint_Manectric[];
+extern const u8 gMonFrontPic_Numel[];
+extern const u8 gMonPalette_Numel[];
+extern const u8 gMonBackPic_Numel[];
+extern const u8 gMonShinyPalette_Numel[];
+extern const u8 gMonIcon_Numel[];
+extern const u8 gMonFootprint_Numel[];
+extern const u8 gMonFrontPic_Camerupt[];
+extern const u8 gMonPalette_Camerupt[];
+extern const u8 gMonBackPic_Camerupt[];
+extern const u8 gMonShinyPalette_Camerupt[];
+extern const u8 gMonIcon_Camerupt[];
+extern const u8 gMonFootprint_Camerupt[];
+extern const u8 gMonFrontPic_Spheal[];
+extern const u8 gMonPalette_Spheal[];
+extern const u8 gMonBackPic_Spheal[];
+extern const u8 gMonShinyPalette_Spheal[];
+extern const u8 gMonIcon_Spheal[];
+extern const u8 gMonFootprint_Spheal[];
+extern const u8 gMonFrontPic_Sealeo[];
+extern const u8 gMonPalette_Sealeo[];
+extern const u8 gMonBackPic_Sealeo[];
+extern const u8 gMonShinyPalette_Sealeo[];
+extern const u8 gMonIcon_Sealeo[];
+extern const u8 gMonFootprint_Sealeo[];
+extern const u8 gMonFrontPic_Walrein[];
+extern const u8 gMonPalette_Walrein[];
+extern const u8 gMonBackPic_Walrein[];
+extern const u8 gMonShinyPalette_Walrein[];
+extern const u8 gMonIcon_Walrein[];
+extern const u8 gMonFootprint_Walrein[];
+extern const u8 gMonFrontPic_Cacnea[];
+extern const u8 gMonPalette_Cacnea[];
+extern const u8 gMonBackPic_Cacnea[];
+extern const u8 gMonShinyPalette_Cacnea[];
+extern const u8 gMonIcon_Cacnea[];
+extern const u8 gMonFootprint_Cacnea[];
+extern const u8 gMonFrontPic_Cacturne[];
+extern const u8 gMonPalette_Cacturne[];
+extern const u8 gMonBackPic_Cacturne[];
+extern const u8 gMonShinyPalette_Cacturne[];
+extern const u8 gMonIcon_Cacturne[];
+extern const u8 gMonFootprint_Cacturne[];
+extern const u8 gMonFrontPic_Snorunt[];
+extern const u8 gMonPalette_Snorunt[];
+extern const u8 gMonBackPic_Snorunt[];
+extern const u8 gMonShinyPalette_Snorunt[];
+extern const u8 gMonIcon_Snorunt[];
+extern const u8 gMonFootprint_Snorunt[];
+extern const u8 gMonFrontPic_Glalie[];
+extern const u8 gMonPalette_Glalie[];
+extern const u8 gMonBackPic_Glalie[];
+extern const u8 gMonShinyPalette_Glalie[];
+extern const u8 gMonIcon_Glalie[];
+extern const u8 gMonFootprint_Glalie[];
+extern const u8 gMonFrontPic_Lunatone[];
+extern const u8 gMonPalette_Lunatone[];
+extern const u8 gMonBackPic_Lunatone[];
+extern const u8 gMonShinyPalette_Lunatone[];
+extern const u8 gMonIcon_Lunatone[];
+extern const u8 gMonFootprint_Lunatone[];
+extern const u8 gMonFrontPic_Solrock[];
+extern const u8 gMonPalette_Solrock[];
+extern const u8 gMonBackPic_Solrock[];
+extern const u8 gMonShinyPalette_Solrock[];
+extern const u8 gMonIcon_Solrock[];
+extern const u8 gMonFootprint_Solrock[];
+extern const u8 gMonFrontPic_Azurill[];
+extern const u8 gMonPalette_Azurill[];
+extern const u8 gMonBackPic_Azurill[];
+extern const u8 gMonShinyPalette_Azurill[];
+extern const u8 gMonIcon_Azurill[];
+extern const u8 gMonFootprint_Azurill[];
+extern const u8 gMonFrontPic_Spoink[];
+extern const u8 gMonPalette_Spoink[];
+extern const u8 gMonBackPic_Spoink[];
+extern const u8 gMonShinyPalette_Spoink[];
+extern const u8 gMonIcon_Spoink[];
+extern const u8 gMonFootprint_Spoink[];
+extern const u8 gMonFrontPic_Grumpig[];
+extern const u8 gMonPalette_Grumpig[];
+extern const u8 gMonBackPic_Grumpig[];
+extern const u8 gMonShinyPalette_Grumpig[];
+extern const u8 gMonIcon_Grumpig[];
+extern const u8 gMonFootprint_Grumpig[];
+extern const u8 gMonFrontPic_Plusle[];
+extern const u8 gMonPalette_Plusle[];
+extern const u8 gMonBackPic_Plusle[];
+extern const u8 gMonShinyPalette_Plusle[];
+extern const u8 gMonIcon_Plusle[];
+extern const u8 gMonFootprint_Plusle[];
+extern const u8 gMonFrontPic_Minun[];
+extern const u8 gMonPalette_Minun[];
+extern const u8 gMonBackPic_Minun[];
+extern const u8 gMonShinyPalette_Minun[];
+extern const u8 gMonIcon_Minun[];
+extern const u8 gMonFootprint_Minun[];
+extern const u8 gMonFrontPic_Mawile[];
+extern const u8 gMonPalette_Mawile[];
+extern const u8 gMonBackPic_Mawile[];
+extern const u8 gMonShinyPalette_Mawile[];
+extern const u8 gMonIcon_Mawile[];
+extern const u8 gMonFootprint_Mawile[];
+extern const u8 gMonFrontPic_Meditite[];
+extern const u8 gMonPalette_Meditite[];
+extern const u8 gMonBackPic_Meditite[];
+extern const u8 gMonShinyPalette_Meditite[];
+extern const u8 gMonIcon_Meditite[];
+extern const u8 gMonFootprint_Meditite[];
+extern const u8 gMonFrontPic_Medicham[];
+extern const u8 gMonPalette_Medicham[];
+extern const u8 gMonBackPic_Medicham[];
+extern const u8 gMonShinyPalette_Medicham[];
+extern const u8 gMonIcon_Medicham[];
+extern const u8 gMonFootprint_Medicham[];
+extern const u8 gMonFrontPic_Swablu[];
+extern const u8 gMonPalette_Swablu[];
+extern const u8 gMonBackPic_Swablu[];
+extern const u8 gMonShinyPalette_Swablu[];
+extern const u8 gMonIcon_Swablu[];
+extern const u8 gMonFootprint_Swablu[];
+extern const u8 gMonFrontPic_Altaria[];
+extern const u8 gMonPalette_Altaria[];
+extern const u8 gMonBackPic_Altaria[];
+extern const u8 gMonShinyPalette_Altaria[];
+extern const u8 gMonIcon_Altaria[];
+extern const u8 gMonFootprint_Altaria[];
+extern const u8 gMonFrontPic_Wynaut[];
+extern const u8 gMonPalette_Wynaut[];
+extern const u8 gMonBackPic_Wynaut[];
+extern const u8 gMonShinyPalette_Wynaut[];
+extern const u8 gMonIcon_Wynaut[];
+extern const u8 gMonFootprint_Wynaut[];
+extern const u8 gMonFrontPic_Duskull[];
+extern const u8 gMonPalette_Duskull[];
+extern const u8 gMonBackPic_Duskull[];
+extern const u8 gMonShinyPalette_Duskull[];
+extern const u8 gMonIcon_Duskull[];
+extern const u8 gMonFootprint_Duskull[];
+extern const u8 gMonFrontPic_Dusclops[];
+extern const u8 gMonPalette_Dusclops[];
+extern const u8 gMonBackPic_Dusclops[];
+extern const u8 gMonShinyPalette_Dusclops[];
+extern const u8 gMonIcon_Dusclops[];
+extern const u8 gMonFootprint_Dusclops[];
+extern const u8 gMonFrontPic_Roselia[];
+extern const u8 gMonPalette_Roselia[];
+extern const u8 gMonBackPic_Roselia[];
+extern const u8 gMonShinyPalette_Roselia[];
+extern const u8 gMonIcon_Roselia[];
+extern const u8 gMonFootprint_Roselia[];
+extern const u8 gMonFrontPic_Slakoth[];
+extern const u8 gMonPalette_Slakoth[];
+extern const u8 gMonBackPic_Slakoth[];
+extern const u8 gMonShinyPalette_Slakoth[];
+extern const u8 gMonIcon_Slakoth[];
+extern const u8 gMonFootprint_Slakoth[];
+extern const u8 gMonFrontPic_Vigoroth[];
+extern const u8 gMonPalette_Vigoroth[];
+extern const u8 gMonBackPic_Vigoroth[];
+extern const u8 gMonShinyPalette_Vigoroth[];
+extern const u8 gMonIcon_Vigoroth[];
+extern const u8 gMonFootprint_Vigoroth[];
+extern const u8 gMonFrontPic_Slaking[];
+extern const u8 gMonPalette_Slaking[];
+extern const u8 gMonBackPic_Slaking[];
+extern const u8 gMonShinyPalette_Slaking[];
+extern const u8 gMonIcon_Slaking[];
+extern const u8 gMonFootprint_Slaking[];
+extern const u8 gMonFrontPic_Gulpin[];
+extern const u8 gMonPalette_Gulpin[];
+extern const u8 gMonBackPic_Gulpin[];
+extern const u8 gMonShinyPalette_Gulpin[];
+extern const u8 gMonIcon_Gulpin[];
+extern const u8 gMonFootprint_Gulpin[];
+extern const u8 gMonFrontPic_Swalot[];
+extern const u8 gMonPalette_Swalot[];
+extern const u8 gMonBackPic_Swalot[];
+extern const u8 gMonShinyPalette_Swalot[];
+extern const u8 gMonIcon_Swalot[];
+extern const u8 gMonFootprint_Swalot[];
+extern const u8 gMonFrontPic_Tropius[];
+extern const u8 gMonPalette_Tropius[];
+extern const u8 gMonBackPic_Tropius[];
+extern const u8 gMonShinyPalette_Tropius[];
+extern const u8 gMonIcon_Tropius[];
+extern const u8 gMonFootprint_Tropius[];
+extern const u8 gMonFrontPic_Whismur[];
+extern const u8 gMonPalette_Whismur[];
+extern const u8 gMonBackPic_Whismur[];
+extern const u8 gMonShinyPalette_Whismur[];
+extern const u8 gMonIcon_Whismur[];
+extern const u8 gMonFootprint_Whismur[];
+extern const u8 gMonFrontPic_Loudred[];
+extern const u8 gMonPalette_Loudred[];
+extern const u8 gMonBackPic_Loudred[];
+extern const u8 gMonShinyPalette_Loudred[];
+extern const u8 gMonIcon_Loudred[];
+extern const u8 gMonFootprint_Loudred[];
+extern const u8 gMonFrontPic_Exploud[];
+extern const u8 gMonPalette_Exploud[];
+extern const u8 gMonBackPic_Exploud[];
+extern const u8 gMonShinyPalette_Exploud[];
+extern const u8 gMonIcon_Exploud[];
+extern const u8 gMonFootprint_Exploud[];
+extern const u8 gMonFrontPic_Clamperl[];
+extern const u8 gMonPalette_Clamperl[];
+extern const u8 gMonBackPic_Clamperl[];
+extern const u8 gMonShinyPalette_Clamperl[];
+extern const u8 gMonIcon_Clamperl[];
+extern const u8 gMonFootprint_Clamperl[];
+extern const u8 gMonFrontPic_Huntail[];
+extern const u8 gMonPalette_Huntail[];
+extern const u8 gMonBackPic_Huntail[];
+extern const u8 gMonShinyPalette_Huntail[];
+extern const u8 gMonIcon_Huntail[];
+extern const u8 gMonFootprint_Huntail[];
+extern const u8 gMonFrontPic_Gorebyss[];
+extern const u8 gMonPalette_Gorebyss[];
+extern const u8 gMonBackPic_Gorebyss[];
+extern const u8 gMonShinyPalette_Gorebyss[];
+extern const u8 gMonIcon_Gorebyss[];
+extern const u8 gMonFootprint_Gorebyss[];
+extern const u8 gMonFrontPic_Absol[];
+extern const u8 gMonPalette_Absol[];
+extern const u8 gMonBackPic_Absol[];
+extern const u8 gMonShinyPalette_Absol[];
+extern const u8 gMonIcon_Absol[];
+extern const u8 gMonFootprint_Absol[];
+extern const u8 gMonFrontPic_Shuppet[];
+extern const u8 gMonPalette_Shuppet[];
+extern const u8 gMonBackPic_Shuppet[];
+extern const u8 gMonShinyPalette_Shuppet[];
+extern const u8 gMonIcon_Shuppet[];
+extern const u8 gMonFootprint_Shuppet[];
+extern const u8 gMonFrontPic_Banette[];
+extern const u8 gMonPalette_Banette[];
+extern const u8 gMonBackPic_Banette[];
+extern const u8 gMonShinyPalette_Banette[];
+extern const u8 gMonIcon_Banette[];
+extern const u8 gMonFootprint_Banette[];
+extern const u8 gMonFrontPic_Seviper[];
+extern const u8 gMonPalette_Seviper[];
+extern const u8 gMonBackPic_Seviper[];
+extern const u8 gMonShinyPalette_Seviper[];
+extern const u8 gMonIcon_Seviper[];
+extern const u8 gMonFootprint_Seviper[];
+extern const u8 gMonFrontPic_Zangoose[];
+extern const u8 gMonPalette_Zangoose[];
+extern const u8 gMonBackPic_Zangoose[];
+extern const u8 gMonShinyPalette_Zangoose[];
+extern const u8 gMonIcon_Zangoose[];
+extern const u8 gMonFootprint_Zangoose[];
+extern const u8 gMonFrontPic_Relicanth[];
+extern const u8 gMonPalette_Relicanth[];
+extern const u8 gMonBackPic_Relicanth[];
+extern const u8 gMonShinyPalette_Relicanth[];
+extern const u8 gMonIcon_Relicanth[];
+extern const u8 gMonFootprint_Relicanth[];
+extern const u8 gMonFrontPic_Aron[];
+extern const u8 gMonPalette_Aron[];
+extern const u8 gMonBackPic_Aron[];
+extern const u8 gMonShinyPalette_Aron[];
+extern const u8 gMonIcon_Aron[];
+extern const u8 gMonFootprint_Aron[];
+extern const u8 gMonFrontPic_Lairon[];
+extern const u8 gMonPalette_Lairon[];
+extern const u8 gMonBackPic_Lairon[];
+extern const u8 gMonShinyPalette_Lairon[];
+extern const u8 gMonIcon_Lairon[];
+extern const u8 gMonFootprint_Lairon[];
+extern const u8 gMonFrontPic_Aggron[];
+extern const u8 gMonPalette_Aggron[];
+extern const u8 gMonBackPic_Aggron[];
+extern const u8 gMonShinyPalette_Aggron[];
+extern const u8 gMonIcon_Aggron[];
+extern const u8 gMonFootprint_Aggron[];
+extern const u8 gMonFrontPic_Castform[];
+extern const u8 gMonPalette_Castform[];
+extern const u8 gMonBackPic_Castform[];
+extern const u8 gMonShinyPalette_Castform[];
+extern const u8 gMonIcon_Castform[];
+extern const u8 gMonFootprint_Castform[];
+extern const u8 gMonFrontPic_Volbeat[];
+extern const u8 gMonPalette_Volbeat[];
+extern const u8 gMonBackPic_Volbeat[];
+extern const u8 gMonShinyPalette_Volbeat[];
+extern const u8 gMonIcon_Volbeat[];
+extern const u8 gMonFootprint_Volbeat[];
+extern const u8 gMonFrontPic_Illumise[];
+extern const u8 gMonPalette_Illumise[];
+extern const u8 gMonBackPic_Illumise[];
+extern const u8 gMonShinyPalette_Illumise[];
+extern const u8 gMonIcon_Illumise[];
+extern const u8 gMonFootprint_Illumise[];
+extern const u8 gMonFrontPic_Lileep[];
+extern const u8 gMonPalette_Lileep[];
+extern const u8 gMonBackPic_Lileep[];
+extern const u8 gMonShinyPalette_Lileep[];
+extern const u8 gMonIcon_Lileep[];
+extern const u8 gMonFootprint_Lileep[];
+extern const u8 gMonFrontPic_Cradily[];
+extern const u8 gMonPalette_Cradily[];
+extern const u8 gMonBackPic_Cradily[];
+extern const u8 gMonShinyPalette_Cradily[];
+extern const u8 gMonIcon_Cradily[];
+extern const u8 gMonFootprint_Cradily[];
+extern const u8 gMonFrontPic_Anorith[];
+extern const u8 gMonPalette_Anorith[];
+extern const u8 gMonBackPic_Anorith[];
+extern const u8 gMonShinyPalette_Anorith[];
+extern const u8 gMonIcon_Anorith[];
+extern const u8 gMonFootprint_Anorith[];
+extern const u8 gMonFrontPic_Armaldo[];
+extern const u8 gMonPalette_Armaldo[];
+extern const u8 gMonBackPic_Armaldo[];
+extern const u8 gMonShinyPalette_Armaldo[];
+extern const u8 gMonIcon_Armaldo[];
+extern const u8 gMonFootprint_Armaldo[];
+extern const u8 gMonFrontPic_Ralts[];
+extern const u8 gMonPalette_Ralts[];
+extern const u8 gMonBackPic_Ralts[];
+extern const u8 gMonShinyPalette_Ralts[];
+extern const u8 gMonIcon_Ralts[];
+extern const u8 gMonFootprint_Ralts[];
+extern const u8 gMonFrontPic_Kirlia[];
+extern const u8 gMonPalette_Kirlia[];
+extern const u8 gMonBackPic_Kirlia[];
+extern const u8 gMonShinyPalette_Kirlia[];
+extern const u8 gMonIcon_Kirlia[];
+extern const u8 gMonFootprint_Kirlia[];
+extern const u8 gMonFrontPic_Gardevoir[];
+extern const u8 gMonPalette_Gardevoir[];
+extern const u8 gMonBackPic_Gardevoir[];
+extern const u8 gMonShinyPalette_Gardevoir[];
+extern const u8 gMonIcon_Gardevoir[];
+extern const u8 gMonFootprint_Gardevoir[];
+extern const u8 gMonFrontPic_Bagon[];
+extern const u8 gMonPalette_Bagon[];
+extern const u8 gMonBackPic_Bagon[];
+extern const u8 gMonShinyPalette_Bagon[];
+extern const u8 gMonIcon_Bagon[];
+extern const u8 gMonFootprint_Bagon[];
+extern const u8 gMonFrontPic_Shelgon[];
+extern const u8 gMonPalette_Shelgon[];
+extern const u8 gMonBackPic_Shelgon[];
+extern const u8 gMonShinyPalette_Shelgon[];
+extern const u8 gMonIcon_Shelgon[];
+extern const u8 gMonFootprint_Shelgon[];
+extern const u8 gMonFrontPic_Salamence[];
+extern const u8 gMonPalette_Salamence[];
+extern const u8 gMonBackPic_Salamence[];
+extern const u8 gMonShinyPalette_Salamence[];
+extern const u8 gMonIcon_Salamence[];
+extern const u8 gMonFootprint_Salamence[];
+extern const u8 gMonFrontPic_Beldum[];
+extern const u8 gMonPalette_Beldum[];
+extern const u8 gMonBackPic_Beldum[];
+extern const u8 gMonShinyPalette_Beldum[];
+extern const u8 gMonIcon_Beldum[];
+extern const u8 gMonFootprint_Beldum[];
+extern const u8 gMonFrontPic_Metang[];
+extern const u8 gMonPalette_Metang[];
+extern const u8 gMonBackPic_Metang[];
+extern const u8 gMonShinyPalette_Metang[];
+extern const u8 gMonIcon_Metang[];
+extern const u8 gMonFootprint_Metang[];
+extern const u8 gMonFrontPic_Metagross[];
+extern const u8 gMonPalette_Metagross[];
+extern const u8 gMonBackPic_Metagross[];
+extern const u8 gMonShinyPalette_Metagross[];
+extern const u8 gMonIcon_Metagross[];
+extern const u8 gMonFootprint_Metagross[];
+extern const u8 gMonFrontPic_Regirock[];
+extern const u8 gMonPalette_Regirock[];
+extern const u8 gMonBackPic_Regirock[];
+extern const u8 gMonShinyPalette_Regirock[];
+extern const u8 gMonIcon_Regirock[];
+extern const u8 gMonFootprint_Regirock[];
+extern const u8 gMonFrontPic_Regice[];
+extern const u8 gMonPalette_Regice[];
+extern const u8 gMonBackPic_Regice[];
+extern const u8 gMonShinyPalette_Regice[];
+extern const u8 gMonIcon_Regice[];
+extern const u8 gMonFootprint_Regice[];
+extern const u8 gMonFrontPic_Registeel[];
+extern const u8 gMonPalette_Registeel[];
+extern const u8 gMonBackPic_Registeel[];
+extern const u8 gMonShinyPalette_Registeel[];
+extern const u8 gMonIcon_Registeel[];
+extern const u8 gMonFootprint_Registeel[];
+extern const u8 gMonFrontPic_Kyogre[];
+extern const u8 gMonPalette_Kyogre[];
+extern const u8 gMonBackPic_Kyogre[];
+extern const u8 gMonShinyPalette_Kyogre[];
+extern const u8 gMonIcon_Kyogre[];
+extern const u8 gMonFootprint_Kyogre[];
+extern const u8 gMonFrontPic_Groudon[];
+extern const u8 gMonPalette_Groudon[];
+extern const u8 gMonBackPic_Groudon[];
+extern const u8 gMonShinyPalette_Groudon[];
+extern const u8 gMonIcon_Groudon[];
+extern const u8 gMonFootprint_Groudon[];
+extern const u8 gMonFrontPic_Rayquaza[];
+extern const u8 gMonPalette_Rayquaza[];
+extern const u8 gMonBackPic_Rayquaza[];
+extern const u8 gMonShinyPalette_Rayquaza[];
+extern const u8 gMonIcon_Rayquaza[];
+extern const u8 gMonFootprint_Rayquaza[];
+extern const u8 gMonFrontPic_Latias[];
+extern const u8 gMonPalette_Latias[];
+extern const u8 gMonBackPic_Latias[];
+extern const u8 gMonShinyPalette_Latias[];
+extern const u8 gMonIcon_Latias[];
+extern const u8 gMonFootprint_Latias[];
+extern const u8 gMonFrontPic_Latios[];
+extern const u8 gMonPalette_Latios[];
+extern const u8 gMonBackPic_Latios[];
+extern const u8 gMonShinyPalette_Latios[];
+extern const u8 gMonIcon_Latios[];
+extern const u8 gMonFootprint_Latios[];
+extern const u8 gMonFrontPic_Jirachi[];
+extern const u8 gMonPalette_Jirachi[];
+extern const u8 gMonBackPic_Jirachi[];
+extern const u8 gMonShinyPalette_Jirachi[];
+extern const u8 gMonIcon_Jirachi[];
+extern const u8 gMonFootprint_Jirachi[];
+extern const u8 gMonFrontPic_Deoxys[];
+extern const u8 gMonPalette_Deoxys[];
+extern const u8 gMonBackPic_Deoxys[];
+extern const u8 gMonShinyPalette_Deoxys[];
+extern const u8 gMonIcon_Deoxys[];
+extern const u8 gMonFootprint_Deoxys[];
+extern const u8 gMonFrontPic_Chimecho[];
+extern const u8 gMonPalette_Chimecho[];
+extern const u8 gMonBackPic_Chimecho[];
+extern const u8 gMonShinyPalette_Chimecho[];
+extern const u8 gMonIcon_Chimecho[];
+extern const u8 gMonFootprint_Chimecho[];
+extern const u8 gMonPic_Egg[];
+extern const u8 gMonPalette_Egg[];
+extern const u8 gMonFrontPic_UnownB[];
+extern const u8 gMonBackPic_UnownB[];
+extern const u8 gMonIcon_UnownB[];
+extern const u8 gMonFrontPic_UnownC[];
+extern const u8 gMonBackPic_UnownC[];
+extern const u8 gMonIcon_UnownC[];
+extern const u8 gMonFrontPic_UnownD[];
+extern const u8 gMonBackPic_UnownD[];
+extern const u8 gMonIcon_UnownD[];
+extern const u8 gMonFrontPic_UnownE[];
+extern const u8 gMonBackPic_UnownE[];
+extern const u8 gMonIcon_UnownE[];
+extern const u8 gMonFrontPic_UnownF[];
+extern const u8 gMonBackPic_UnownF[];
+extern const u8 gMonIcon_UnownF[];
+extern const u8 gMonFrontPic_UnownG[];
+extern const u8 gMonBackPic_UnownG[];
+extern const u8 gMonIcon_UnownG[];
+extern const u8 gMonFrontPic_UnownH[];
+extern const u8 gMonBackPic_UnownH[];
+extern const u8 gMonIcon_UnownH[];
+extern const u8 gMonFrontPic_UnownI[];
+extern const u8 gMonBackPic_UnownI[];
+extern const u8 gMonIcon_UnownI[];
+extern const u8 gMonFrontPic_UnownJ[];
+extern const u8 gMonBackPic_UnownJ[];
+extern const u8 gMonIcon_UnownJ[];
+extern const u8 gMonFrontPic_UnownK[];
+extern const u8 gMonBackPic_UnownK[];
+extern const u8 gMonIcon_UnownK[];
+extern const u8 gMonFrontPic_UnownL[];
+extern const u8 gMonBackPic_UnownL[];
+extern const u8 gMonIcon_UnownL[];
+extern const u8 gMonFrontPic_UnownM[];
+extern const u8 gMonBackPic_UnownM[];
+extern const u8 gMonIcon_UnownM[];
+extern const u8 gMonFrontPic_UnownN[];
+extern const u8 gMonBackPic_UnownN[];
+extern const u8 gMonIcon_UnownN[];
+extern const u8 gMonFrontPic_UnownO[];
+extern const u8 gMonBackPic_UnownO[];
+extern const u8 gMonIcon_UnownO[];
+extern const u8 gMonFrontPic_UnownP[];
+extern const u8 gMonBackPic_UnownP[];
+extern const u8 gMonIcon_UnownP[];
+extern const u8 gMonFrontPic_UnownQ[];
+extern const u8 gMonBackPic_UnownQ[];
+extern const u8 gMonIcon_UnownQ[];
+extern const u8 gMonFrontPic_UnownR[];
+extern const u8 gMonBackPic_UnownR[];
+extern const u8 gMonIcon_UnownR[];
+extern const u8 gMonFrontPic_UnownS[];
+extern const u8 gMonBackPic_UnownS[];
+extern const u8 gMonIcon_UnownS[];
+extern const u8 gMonFrontPic_UnownT[];
+extern const u8 gMonBackPic_UnownT[];
+extern const u8 gMonIcon_UnownT[];
+extern const u8 gMonFrontPic_UnownU[];
+extern const u8 gMonBackPic_UnownU[];
+extern const u8 gMonIcon_UnownU[];
+extern const u8 gMonFrontPic_UnownV[];
+extern const u8 gMonBackPic_UnownV[];
+extern const u8 gMonIcon_UnownV[];
+extern const u8 gMonFrontPic_UnownW[];
+extern const u8 gMonBackPic_UnownW[];
+extern const u8 gMonIcon_UnownW[];
+extern const u8 gMonFrontPic_UnownX[];
+extern const u8 gMonBackPic_UnownX[];
+extern const u8 gMonIcon_UnownX[];
+extern const u8 gMonFrontPic_UnownY[];
+extern const u8 gMonBackPic_UnownY[];
+extern const u8 gMonIcon_UnownY[];
+extern const u8 gMonFrontPic_UnownZ[];
+extern const u8 gMonBackPic_UnownZ[];
+extern const u8 gMonIcon_UnownZ[];
+extern const u8 gMonFrontPic_UnownExclamationMark[];
+extern const u8 gMonBackPic_UnownExclamationMark[];
+extern const u8 gMonIcon_UnownExclamationMark[];
+extern const u8 gMonFrontPic_UnownQuestionMark[];
+extern const u8 gMonBackPic_UnownQuestionMark[];
+extern const u8 gMonIcon_UnownQuestionMark[];
+
+#endif // GUARD_GRAPHICS_H
diff --git a/include/menu.h b/include/menu.h
index 09aa6b750..c18f4cb9e 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -66,7 +66,7 @@ u8 sub_8072A18(const u8 *, u8, u16, u8, u32);
u8 unref_sub_8072A5C(u8 *, u8 *, u8, u16, u8, u32);
int sub_8072AB0(const u8 *, u8, u16, u8, u8, u32);
void MenuPrint_RightAligned(u8 *, u8, u8);
-void sub_8072B80(u8 *, u8, u8, u8 *);
+void sub_8072B80(const u8 *, u8, u8, const u8 *);
void sub_8072BD8(const u8 *, u8, u8, u16);
u8 *sub_8072C14(u8 *, s32, u8, u8);
u8 *sub_8072C44(u8 *, s32, u8, u8);
diff --git a/include/pokedex.h b/include/pokedex.h
index a243e6064..1bc63a4ff 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -3,156 +3,16 @@
#include "sprite.h"
-struct PokedexListItem
-{
- u16 dexNum;
- u16 seen:1;
- u16 owned:1;
-};
-
-struct PokedexView
-{
- struct PokedexListItem unk0[386];
- u16 unk608;
- u8 unk60A_1:1;
- u8 unk60A_2:1;
- u8 unk60B;
- u16 unk60C;
- u16 selectedPokemon;
- u16 unk610;
- u16 dexMode; //National or Hoenn
- u16 unk614;
- u16 dexOrder;
- u16 unk618;
- u16 unk61A;
- u16 unk61C;
- u16 unk61E[4];
- u16 unk626; //sprite id of selected Pokemon
- u16 unk628;
- u16 unk62A;
- u8 unk62C;
- u8 unk62D;
- u8 unk62E;
- u8 unk62F;
- s16 unk630;
- s16 unk632;
- u16 unk634;
- u16 unk636;
- u16 unk638;
- u16 unk63A[4];
- u8 filler642[8];
- u8 unk64A;
- u8 unk64B;
- u8 unk64C_1:1;
- u8 selectedScreen;
- u8 unk64E;
- u8 unk64F;
- u8 menuIsOpen; //menuIsOpen
- u8 unk651;
- u16 menuCursorPos; //Menu cursor position
- s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this)
- u8 unk656[8];
- u8 unk65E[8];
-};
-
void ResetPokedex(void);
void sub_808C0A0(void);
-void sub_808C0B8(void);
-void ClearPokedexView(struct PokedexView *pokedexView);
void CB2_InitPokedex(void);
-u8 unref_sub_808C540(void (*func)(u8));
-void MainCB(void);
-void Task_PokedexShowMainScreen(u8 taskId);
-void Task_PokedexMainScreen(u8 taskId);
-void sub_808C898(u8 taskId);
-void Task_PokedexMainScreenMenu(u8 taskId);
-void sub_808CA64(u8 taskId);
-void sub_808CAE4(u8 taskId);
-void sub_808CB8C(u8 taskId);
-void Task_ClosePokedex(u8 taskId);
-void sub_808CCC4(u8 taskId);
-void Task_PokedexResultsScreen(u8 taskId);
-void sub_808CEF8(u8 taskId);
-void Task_PokedexResultsScreenMenu(u8 taskId);
-void sub_808D118(u8 taskId);
-void sub_808D198(u8 taskId);
-void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId);
-void Task_PokedexResultsScreenExitPokedex(u8 taskId);
-bool8 sub_808D344(u8 a);
-void sub_808D640(void);
-void SortPokedex(u8 dexMode, u8 sortMode);
-void sub_808DBE8(u8 a, u16 b, u16 c);
-void sub_808DEB0(u16 a, u8 b, u8 c, u16 d);
-void sub_808DF88(u16 a, u8 b, u8 c, u16 d);
-u8 sub_808DFE4(u16 a, u8 b, u8 c);
-void sub_808E090(u8 a, u8 b, u16 c);
-void sub_808E0CC(u16 a, u16 b);
-bool8 sub_808E208(u8 a, u8 b, u8 c);
-void sub_808E398(u8 a, u16 b);
-u16 sub_808E48C(u16 a, u16 b);
-void sub_808E6BC(void);
-u8 sub_808E71C(void);
-u8 sub_808E82C(void);
-u16 sub_808E888(u16 a1);
-u32 sub_808E8C8(u16 a, u16 b, u16 c);
-void sub_808E978(u8 a);
-void nullsub_58(struct Sprite *sprite);
-void sub_808ED94(struct Sprite *sprite);
-void sub_808EDB8(struct Sprite *sprite);
-void sub_808EE28(struct Sprite *sprite);
-void sub_808EF38(struct Sprite *sprite);
-void sub_808EF8C(struct Sprite *sprite);
-void sub_808F08C(struct Sprite *sprite);
-void sub_808F0B4(struct Sprite *sprite);
-void sub_808F168(struct Sprite *sprite);
-u8 sub_808F210(struct PokedexListItem *item, u8 b);
-bool8 sub_808F250(u8 taskId);
-u8 sub_808F284(struct PokedexListItem *item, u8 b);
-void Task_InitPageScreenMultistep(u8 taskId);
-void Task_PageScreenProcessInput(u8 taskId);
-void sub_808F888(u8 taskId);
-void Task_ClosePageScreen(u8 taskId);
-void Task_InitAreaScreenMultistep(u8 taskId);
-void Task_AreaScreenProcessInput(u8 taskId);
-void sub_808FA00(u8 taskId);
-void Task_InitCryScreenMultistep(u8 taskId);
-void Task_CryScreenProcessInput(u8 taskId);
-void sub_808FFBC(u8 taskId);
-void sub_8090040(u8 a);
-void Task_InitSizeScreenMultistep(u8 taskId);
-void Task_SizeScreenProcessInput(u8 taskId);
-void sub_8090498(u8 taskId);
-void sub_80904FC(u16 a);
-void sub_8090540(u16 a);
-void sub_8090584(u8 a, u16 b);
-void sub_8090644(u8 a, u16 b);
u8 sub_809070C(u16 dexNum, u32 b, u32 c);
-
-// ASM
-void sub_8090750(u8);
-void sub_8090A3C(u8);
-
-void sub_8090C68(void);
-u8 *GetPokemonCategory(u16);
-
+const u8 *GetPokemonCategory(u16);
+u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
s8 GetNationalPokedexFlag(u16, u8);
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
bool8 sub_8090FC0(void);
u16 sub_8090FF4(void);
-void sub_8091060(u16);
-void sub_8091154(u16 order, int i, int i1);
-void sub_80911C8(u16 num, int i, int i1);
-void sub_8091260(u16 num, int i, int i1, int i2);
-void sub_8091304(u8 name[12], int i, int i1);
-
-void sub_8091458(u16 height, int i, int i1);
-void sub_8091564(u16 weight, int i, int i1);
-void sub_8091738(u16, u16, u16);
-void sub_80917CC(int i, int i1);
-u16 sub_8091818(u8, u16, u16, u16);
-
-u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); //Not sure of return type
-u8 sub_8091A4C(u8 gender, int i, int i1, int i2);
#endif // GUARD_POKEDEX_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 15a028d6e..a9c780dbb 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -357,7 +357,8 @@ struct BaseStats
/* 0x16 */ u8 ability1;
/* 0x17 */ u8 ability2;
/* 0x18 */ u8 safariZoneFleeRate;
- /* 0x19 */ u8 bodyColor;
+ /* 0x19 */ u8 bodyColor:7;
+ u8 unk19_7:1;
};
struct BattleMove
diff --git a/include/songs.h b/include/songs.h
index 51948fba8..72d28a355 100644
--- a/include/songs.h
+++ b/include/songs.h
@@ -20,22 +20,22 @@ enum
/*0x0E*/ SE_KOUKA_H,
/*0x0F*/ SE_BOWA2,
/*0x10*/ SE_POKE_DEAD,
- SE_NIGERU,
- SE_JIDO_DOA,
- SE_NAMINORI,
- SE_BAN,
- SE_PIN,
- SE_BOO,
- SE_BOWA,
- SE_JYUNI,
- SE_A,
- SE_I,
- SE_U,
- SE_E,
- SE_O,
- SE_N,
- SE_SEIKAI,
- SE_HAZURE,
+ /*0x11*/ SE_NIGERU,
+ /*0x12*/ SE_JIDO_DOA,
+ /*0x13*/ SE_NAMINORI,
+ /*0x14*/ SE_BAN,
+ /*0x15*/ SE_PIN,
+ /*0x16*/ SE_BOO,
+ /*0x17*/ SE_BOWA,
+ /*0x18*/ SE_JYUNI,
+ /*0x19*/ SE_A,
+ /*0x1A*/ SE_I,
+ /*0x1B*/ SE_U,
+ /*0x1C*/ SE_E,
+ /*0x1D*/ SE_O,
+ /*0x1E*/ SE_N,
+ /*0x1F*/ SE_SEIKAI,
+ /*0x20*/ SE_HAZURE,
SE_EXP,
SE_JITE_PYOKO,
SE_MU_PACHI,
@@ -112,11 +112,11 @@ enum
SE_JIHANKI,
SE_TAMA,
SE_Z_SCROLL,
- SE_Z_PAGE,
- SE_PN_ON,
- SE_PN_OFF,
- SE_Z_SEARCH,
- SE_TAMAGO,
+ /*0x6D*/ SE_Z_PAGE,
+ /*0x6E*/ SE_PN_ON,
+ /*0x6F*/ SE_PN_OFF,
+ /*0x70*/ SE_Z_SEARCH,
+ /*0x71*/ SE_TAMAGO,
/*0x72*/ SE_TB_START,
/*0x73*/ SE_TB_KON,
/*0x74*/ SE_TB_KARA,
diff --git a/include/text.h b/include/text.h
index ba4ccb4b2..6e32de6dd 100644
--- a/include/text.h
+++ b/include/text.h
@@ -2,6 +2,7 @@
#define GUARD_TEXT_H
#define CHAR_SPACE 0x00
+#define CHAR_0 0xA1
#define CHAR_QUESTION_MARK 0xAC
#define CHAR_PERIOD 0xAD
#define CHAR_HYPHEN 0xAE
@@ -10,6 +11,58 @@
#define CHAR_COMMA 0xB8
#define CHAR_CURRENCY 0xB7
#define CHAR_SLASH 0xBA
+#define CHAR_A 0xBB
+#define CHAR_B 0xBC
+#define CHAR_C 0xBD
+#define CHAR_D 0xBE
+#define CHAR_E 0xBF
+#define CHAR_F 0xC0
+#define CHAR_G 0xC1
+#define CHAR_H 0xC2
+#define CHAR_I 0xC3
+#define CHAR_J 0xC4
+#define CHAR_K 0xC5
+#define CHAR_L 0xC6
+#define CHAR_M 0xC7
+#define CHAR_N 0xC8
+#define CHAR_O 0xC9
+#define CHAR_P 0xCA
+#define CHAR_Q 0xCB
+#define CHAR_R 0xCC
+#define CHAR_S 0xCD
+#define CHAR_T 0xCE
+#define CHAR_U 0xCF
+#define CHAR_V 0xD0
+#define CHAR_W 0xD1
+#define CHAR_X 0xD2
+#define CHAR_Y 0xD3
+#define CHAR_Z 0xD4
+#define CHAR_a 0xD5
+#define CHAR_b 0xD6
+#define CHAR_c 0xD7
+#define CHAR_d 0xD8
+#define CHAR_e 0xD9
+#define CHAR_f 0xDA
+#define CHAR_g 0xDB
+#define CHAR_h 0xDC
+#define CHAR_i 0xDD
+#define CHAR_j 0xDE
+#define CHAR_k 0xDF
+#define CHAR_l 0xE0
+#define CHAR_m 0xE1
+#define CHAR_n 0xE2
+#define CHAR_o 0xE3
+#define CHAR_p 0xE4
+#define CHAR_q 0xE5
+#define CHAR_r 0xE6
+#define CHAR_s 0xE7
+#define CHAR_t 0xE8
+#define CHAR_u 0xE9
+#define CHAR_v 0xEA
+#define CHAR_w 0xEB
+#define CHAR_x 0xEC
+#define CHAR_y 0xED
+#define CHAR_z 0xEE
#define CHAR_COLON 0xF0
#define EXT_CTRL_CODE_BEGIN 0xFC // extended control code
#define PLACEHOLDER_BEGIN 0xFD // string placeholder
diff --git a/ld_script.txt b/ld_script.txt
index a8121a936..b20e05223 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -138,7 +138,6 @@ SECTIONS {
asm/pokemon_menu.o(.text);
src/option_menu.o(.text);
src/pokedex.o(.text);
- asm/pokedex.o(.text);
src/trainer_card.o(.text);
src/save_menu_util.o(.text);
src/battle_party_menu.o(.text);
@@ -388,7 +387,7 @@ SECTIONS {
src/field_effect.o(.rodata);
data/pokemon_menu.o(.rodata);
data/option_menu.o(.rodata);
- data/pokedex.o(.rodata);
+ src/pokedex.o(.rodata);
data/trainer_card.o(.rodata);
src/battle_party_menu.o(.rodata);
data/pokemon_storage_system.o(.rodata);
diff --git a/src/data/pokedex_entries_en.h b/src/data/pokedex_entries_en.h
new file mode 100644
index 000000000..86da3d67b
--- /dev/null
+++ b/src/data/pokedex_entries_en.h
@@ -0,0 +1,9651 @@
+static const u8 DexDescription_Dummy_1[] = _(
+ "This is a newly discovered POKéMON.\n"
+ "It is currently under investigation.");
+static const u8 DexDescription_Dummy_2[] = _(
+ "No detailed information is available\n"
+ "at this time.");
+
+static const u8 DexDescription_Bulbasaur_1[] = _(
+ "BULBASAUR can be seen napping in\n"
+ "bright sunlight.\n"
+ "There is a seed on its back.");
+static const u8 DexDescription_Bulbasaur_2[] = _(
+ "By soaking up the sun’s rays, the seed\n"
+ "grows progressively larger.");
+
+static const u8 DexDescription_Ivysaur_1[] = _(
+ "There is a bud on this POKéMON’s back.\n"
+ "To support its weight, IVYSAUR’s legs\n"
+ "and trunk grow thick and strong.");
+static const u8 DexDescription_Ivysaur_2[] = _(
+ "If it starts spending more time lying\n"
+ "in the sunlight, it’s a sign that the\n"
+ "bud will bloom into a large flower soon.");
+
+static const u8 DexDescription_Venusaur_1[] = _(
+ "There is a large flower on VENUSAUR’s\n"
+ "back. The flower is said to take on vivid\n"
+ "colors if it gets plenty of nutrition");
+static const u8 DexDescription_Venusaur_2[] = _(
+ "and sunlight. The flower’s aroma\n"
+ "soothes the emotions of people.");
+
+static const u8 DexDescription_Charmander_1[] = _(
+ "The flame that burns at the tip of its\n"
+ "tail is an indication of its emotions.\n"
+ "The flame wavers when CHARMANDER is");
+static const u8 DexDescription_Charmander_2[] = _(
+ "enjoying itself. If the POKéMON becomes\n"
+ "enraged, the flame burns fiercely.");
+
+static const u8 DexDescription_Charmeleon_1[] = _(
+ "CHARMELEON mercilessly destroys its\n"
+ "foes using its sharp claws.\n"
+ "If it encounters a strong foe, it turns");
+static const u8 DexDescription_Charmeleon_2[] = _(
+ "aggressive. In this excited state, the\n"
+ "flame at the tip of its tail flares with a\n"
+ "bluish white color.");
+
+static const u8 DexDescription_Charizard_1[] = _(
+ "CHARIZARD flies around the sky in\n"
+ "search of powerful opponents.\n"
+ "It breathes fire of such great heat");
+static const u8 DexDescription_Charizard_2[] = _(
+ "that it melts anything. However, it\n"
+ "never turns its fiery breath on any\n"
+ "opponent weaker than itself.");
+
+static const u8 DexDescription_Squirtle_1[] = _(
+ "SQUIRTLE’s shell is not merely used\n"
+ "for protection.\n"
+ "The shell’s rounded shape and the");
+static const u8 DexDescription_Squirtle_2[] = _(
+ "grooves on its surface help minimize\n"
+ "resistance in water, enabling this\n"
+ "POKéMON to swim at high speeds.");
+
+static const u8 DexDescription_Wartortle_1[] = _(
+ "Its tail is large and covered with a rich,\n"
+ "thick fur. The tail becomes increasingly\n"
+ "deeper in color as WARTORTLE ages.");
+static const u8 DexDescription_Wartortle_2[] = _(
+ "The scratches on its shell are evidence\n"
+ "of this POKéMON’s toughness as a\n"
+ "battler.");
+
+static const u8 DexDescription_Blastoise_1[] = _(
+ "BLASTOISE has water spouts that\n"
+ "protrude from its shell. The water\n"
+ "spouts are very accurate.");
+static const u8 DexDescription_Blastoise_2[] = _(
+ "They can shoot bullets of water with\n"
+ "enough accuracy to strike empty cans\n"
+ "from a distance of over 160 feet.");
+
+static const u8 DexDescription_Caterpie_1[] = _(
+ "CATERPIE has a voracious appetite.\n"
+ "It can devour leaves bigger than its\n"
+ "body right before your eyes.");
+static const u8 DexDescription_Caterpie_2[] = _(
+ "From its antenna, this POKéMON releases\n"
+ "a terrifically strong odor.");
+
+static const u8 DexDescription_Metapod_1[] = _(
+ "The shell covering this POKéMON’s body\n"
+ "is as hard as an iron slab.\n"
+ "METAPOD does not move very much.");
+static const u8 DexDescription_Metapod_2[] = _(
+ "It stays still because it is preparing\n"
+ "its soft innards for evolution inside\n"
+ "the hard shell.");
+
+static const u8 DexDescription_Butterfree_1[] = _(
+ "BUTTERFREE has a superior ability to\n"
+ "search for delicious honey from\n"
+ "flowers.");
+static const u8 DexDescription_Butterfree_2[] = _(
+ "It can even search out, extract, and\n"
+ "carry honey from flowers that are\n"
+ "blooming over six miles from its nest.");
+
+static const u8 DexDescription_Weedle_1[] = _(
+ "WEEDLE has an extremely acute sense\n"
+ "of smell.\n"
+ "It is capable of distinguishing its");
+static const u8 DexDescription_Weedle_2[] = _(
+ "favorite kinds of leaves from those it\n"
+ "dislikes just by sniffing with its big\n"
+ "red proboscis (nose).");
+
+static const u8 DexDescription_Kakuna_1[] = _(
+ "KAKUNA remains virtually immobile as it\n"
+ "clings to a tree. However, on the\n"
+ "inside, it is extremely busy as it");
+static const u8 DexDescription_Kakuna_2[] = _(
+ "prepares for its coming evolution.\n"
+ "This is evident from how hot the shell\n"
+ "becomes to the touch.");
+
+static const u8 DexDescription_Beedrill_1[] = _(
+ "BEEDRILL is extremely territorial.\n"
+ "No one should ever approach its nest -\n"
+ "this is for their own safety.");
+static const u8 DexDescription_Beedrill_2[] = _(
+ "If angered, they will attack in a furious\n"
+ "swarm.");
+
+static const u8 DexDescription_Pidgey_1[] = _(
+ "PIDGEY has an extremely sharp sense\n"
+ "of direction.\n"
+ "It is capable of unerringly returning");
+static const u8 DexDescription_Pidgey_2[] = _(
+ "home to its nest, however far it may be\n"
+ "removed from its familiar surroundings.");
+
+static const u8 DexDescription_Pidgeotto_1[] = _(
+ "PIDGEOTTO claims a large area as its\n"
+ "own territory. This POKéMON flies\n"
+ "around, patrolling its living space.");
+static const u8 DexDescription_Pidgeotto_2[] = _(
+ "If its territory is violated, it shows\n"
+ "no mercy in thoroughly punishing the\n"
+ "foe with its sharp claws.");
+
+static const u8 DexDescription_Pidgeot_1[] = _(
+ "This POKéMON has a dazzling plumage of\n"
+ "beautifully glossy feathers.\n"
+ "Many TRAINERS are captivated by the");
+static const u8 DexDescription_Pidgeot_2[] = _(
+ "striking beauty of the feathers on its\n"
+ "head, compelling them to choose PIDGEOT\n"
+ "as their POKéMON.");
+
+static const u8 DexDescription_Rattata_1[] = _(
+ "RATTATA is cautious in the extreme.\n"
+ "Even while it is asleep, it constantly\n"
+ "listens by moving its ears around.");
+static const u8 DexDescription_Rattata_2[] = _(
+ "It is not picky about where it lives -\n"
+ "it will make its nest anywhere.");
+
+static const u8 DexDescription_Raticate_1[] = _(
+ "RATICATE’s sturdy fangs grow steadily.\n"
+ "To keep them ground down, it gnaws\n"
+ "on rocks and logs.");
+static const u8 DexDescription_Raticate_2[] = _(
+ "It may even chew on the walls of\n"
+ "houses.");
+
+static const u8 DexDescription_Spearow_1[] = _(
+ "SPEAROW has a very loud cry that can\n"
+ "be heard over half a mile away.\n"
+ "If its high, keening cry is heard");
+static const u8 DexDescription_Spearow_2[] = _(
+ "echoing all around, it is a sign that\n"
+ "they are warning each other of danger.");
+
+static const u8 DexDescription_Fearow_1[] = _(
+ "FEAROW is recognized by its long neck\n"
+ "and elongated beak.\n"
+ "They are conveniently shaped for");
+static const u8 DexDescription_Fearow_2[] = _(
+ "catching prey in soil or water.\n"
+ "It deftly moves its long and skinny\n"
+ "beak to pluck prey.");
+
+static const u8 DexDescription_Ekans_1[] = _(
+ "EKANS curls itself up in a spiral while\n"
+ "it rests.\n"
+ "Assuming this position allows it to");
+static const u8 DexDescription_Ekans_2[] = _(
+ "quickly respond to a threat from any\n"
+ "direction with a glare from its upraised\n"
+ "head.");
+
+static const u8 DexDescription_Arbok_1[] = _(
+ "This POKéMON is terrifically strong in\n"
+ "order to constrict things with its body.\n"
+ "It can even flatten steel oil drums.");
+static const u8 DexDescription_Arbok_2[] = _(
+ "Once ARBOK wraps its body around its\n"
+ "foe, escaping its crunching embrace is\n"
+ "impossible.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Pikachu_1[] = _(
+ "This POKéMON has electricity-storing\n"
+ "pouches on its cheeks. These appear to\n"
+ "become electrically charged during the");
+static const u8 DexDescription_Pikachu_2[] = _(
+ "night while PIKACHU sleeps.\n"
+ "It occasionally discharges electricity\n"
+ "when it is dozy after waking up.");
+#else
+static const u8 DexDescription_Pikachu_1[] = _(
+ "Whenever PIKACHU comes across\n"
+ "something new, it blasts it with a jolt\n"
+ "of electricity.");
+static const u8 DexDescription_Pikachu_2[] = _(
+ "If you come across a blackened berry,\n"
+ "it’s evidence that this POKéMON\n"
+ "mistook the intensity of its charge.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Raichu_1[] = _(
+ "This POKéMON exudes a weak electrical\n"
+ "charge from all over its body that makes\n"
+ "it take on a slight glow in darkness.");
+static const u8 DexDescription_Raichu_2[] = _(
+ "RAICHU searches for electricity by\n"
+ "planting its tail in the ground.");
+#else
+static const u8 DexDescription_Raichu_1[] = _(
+ "If the electrical sacks become\n"
+ "excessively charged, RAICHU plants its\n"
+ "tail in the ground and discharges.");
+static const u8 DexDescription_Raichu_2[] = _(
+ "Scorched patches of ground will be\n"
+ "found near this POKéMON’s nest.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Sandshrew_1[] = _(
+ "SANDSHREW has a very dry hide that is\n"
+ "extremely tough. The POKéMON can roll\n"
+ "into a ball that repels any attack.");
+static const u8 DexDescription_Sandshrew_2[] = _(
+ "At night, it burrows into the desert\n"
+ "sand to sleep.");
+#else
+static const u8 DexDescription_Sandshrew_1[] = _(
+ "SANDSHREW’s body is configured to\n"
+ "absorb water without waste, enabling it\n"
+ "to survive in an arid desert.");
+static const u8 DexDescription_Sandshrew_2[] = _(
+ "This POKéMON curls up to protect itself\n"
+ "from its enemies.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Sandslash_1[] = _(
+ "SANDSLASH can roll up its body as if it\n"
+ "were a ball covered with large spikes.\n"
+ "In battle, this POKéMON will try to make");
+static const u8 DexDescription_Sandslash_2[] = _(
+ "the foe flinch by jabbing it with its\n"
+ "spines. It then leaps at the stunned\n"
+ "foe to tear wildly with its sharp claws.");
+#else
+static const u8 DexDescription_Sandslash_1[] = _(
+ "SANDSLASH’s body is covered by tough\n"
+ "spikes, which are hardened sections of\n"
+ "its hide. Once a year, the old spikes fall");
+static const u8 DexDescription_Sandslash_2[] = _(
+ "out, to be replaced with new spikes that\n"
+ "grow out from beneath the old ones.");
+#endif
+
+static const u8 DexDescription_NidoranF_1[] = _(
+ "NIDORAN has barbs that secrete a\n"
+ "powerful poison. They are thought to\n"
+ "have developed as protection for this");
+static const u8 DexDescription_NidoranF_2[] = _(
+ "small-bodied POKéMON.\n"
+ "When enraged, it releases a horrible\n"
+ "toxin from its horn.");
+
+static const u8 DexDescription_Nidorina_1[] = _(
+ "When NIDORINA are with their friends or\n"
+ "family, they keep their barbs tucked\n"
+ "away to prevent hurting each other.");
+static const u8 DexDescription_Nidorina_2[] = _(
+ "This POKéMON appears to become\n"
+ "nervous if separated from the others.");
+
+static const u8 DexDescription_Nidoqueen_1[] = _(
+ "NIDOQUEEN’s body is encased in\n"
+ "extremely hard scales. It is adept at\n"
+ "sending foes flying with harsh tackles.");
+static const u8 DexDescription_Nidoqueen_2[] = _(
+ "This POKéMON is at its strongest when\n"
+ "it is defending its young.");
+
+static const u8 DexDescription_NidoranM_1[] = _(
+ "The male NIDORAN has developed\n"
+ "muscles for moving its ears. Thanks to\n"
+ "them, the ears can be freely moved in");
+static const u8 DexDescription_NidoranM_2[] = _(
+ "any direction. Even the slightest sound\n"
+ "does not escape this POKéMON’s notice.");
+
+static const u8 DexDescription_Nidorino_1[] = _(
+ "NIDORINO has a horn that is harder than\n"
+ "a diamond. If it senses a hostile\n"
+ "presence, all the barbs on its back");
+static const u8 DexDescription_Nidorino_2[] = _(
+ "bristle up at once, and it challenges\n"
+ "the foe with all its might.");
+
+static const u8 DexDescription_Nidoking_1[] = _(
+ "NIDOKING’s thick tail packs enormously\n"
+ "destructive power. With one swing, it\n"
+ "can topple a metal transmission tower.");
+static const u8 DexDescription_Nidoking_2[] = _(
+ "Once this POKéMON goes on a rampage,\n"
+ "there is no stopping it.");
+
+static const u8 DexDescription_Clefairy_1[] = _(
+ "On every night of a full moon, groups of\n"
+ "this POKéMON come out to play.\n"
+ "When dawn arrives, the tired CLEFAIRY");
+static const u8 DexDescription_Clefairy_2[] = _(
+ "return to their quiet mountain retreats\n"
+ "and go to sleep nestled up against each\n"
+ "other.");
+
+static const u8 DexDescription_Clefable_1[] = _(
+ "CLEFABLE moves by skipping lightly as if\n"
+ "it were flying using its wings. Its\n"
+ "bouncy step lets it even walk on water.");
+static const u8 DexDescription_Clefable_2[] = _(
+ "It is known to take strolls on lakes on\n"
+ "quiet, moonlit nights.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Vulpix_1[] = _(
+ "Inside VULPIX’s body burns a flame that\n"
+ "never goes out. During the daytime,\n"
+ "when the temperatures rise, this");
+static const u8 DexDescription_Vulpix_2[] = _(
+ "POKéMON releases flames from its mouth\n"
+ "to prevent its body from growing too\n"
+ "hot.");
+#else
+static const u8 DexDescription_Vulpix_1[] = _(
+ "At the time of its birth, VULPIX has one\n"
+ "white tail. The tail separates into six\n"
+ "if this POKéMON receives plenty of love");
+static const u8 DexDescription_Vulpix_2[] = _(
+ "from its TRAINER.\n"
+ "The six tails become magnificently\n"
+ "curled.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Ninetales_1[] = _(
+ "Legend has it that NINETALES came into\n"
+ "being when nine wizards possessing\n"
+ "sacred powers merged into one.");
+static const u8 DexDescription_Ninetales_2[] = _(
+ "This POKéMON is highly intelligent - it\n"
+ "can understand human speech.");
+#else
+static const u8 DexDescription_Ninetales_1[] = _(
+ "NINETALES casts a sinister light from\n"
+ "its bright red eyes to gain total\n"
+ "control over its foe’s mind.");
+static const u8 DexDescription_Ninetales_2[] = _(
+ "This POKéMON is said to live for a\n"
+ "thousand years.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Jigglypuff_1[] = _(
+ "When this POKéMON sings, it never\n"
+ "pauses to breathe. If it is in a battle\n"
+ "against an opponent that does not");
+static const u8 DexDescription_Jigglypuff_2[] = _(
+ "easily fall asleep, JIGGLYPUFF cannot\n"
+ "breathe, endangering its life.");
+#else
+static const u8 DexDescription_Jigglypuff_1[] = _(
+ "JIGGLYPUFF’s vocal chords can freely\n"
+ "adjust the wavelength of its voice.\n"
+ "This POKéMON uses this ability to sing");
+static const u8 DexDescription_Jigglypuff_2[] = _(
+ "at precisely the right wavelength to\n"
+ "make its foes most drowsy.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Wigglytuff_1[] = _(
+ "WIGGLYTUFF’s body is very flexible.\n"
+ "By inhaling deeply, this POKéMON can\n"
+ "inflate itself seemingly without end.");
+static const u8 DexDescription_Wigglytuff_2[] = _(
+ "Once inflated, WIGGLYTUFF bounces\n"
+ "along lightly like a balloon.");
+#else
+static const u8 DexDescription_Wigglytuff_1[] = _(
+ "WIGGLYTUFF has large, saucerlike eyes.\n"
+ "The surfaces of its eyes are always\n"
+ "covered with a thin layer of tears.");
+static const u8 DexDescription_Wigglytuff_2[] = _(
+ "If any dust gets in this POKéMON’s\n"
+ "eyes, it is quickly washed away.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Zubat_1[] = _(
+ "ZUBAT avoids sunlight because exposure\n"
+ "causes it to become unhealthy.\n"
+ "During the daytime, it stays in caves or");
+static const u8 DexDescription_Zubat_2[] = _(
+ "under the eaves of old houses, sleeping\n"
+ "while hanging upside down.");
+#else
+static const u8 DexDescription_Zubat_1[] = _(
+ "ZUBAT remains quietly unmoving in a\n"
+ "dark spot during the bright daylight\n"
+ "hours. It does so because prolonged");
+static const u8 DexDescription_Zubat_2[] = _(
+ "exposure to the sun causes its body to\n"
+ "become slightly burned.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Golbat_1[] = _(
+ "GOLBAT bites down on prey with its four\n"
+ "fangs and drinks the victim’s blood.\n"
+ "It becomes active on inky dark");
+static const u8 DexDescription_Golbat_2[] = _(
+ "moonless nights, flying around to\n"
+ "attack people and POKéMON.");
+#else
+static const u8 DexDescription_Golbat_1[] = _(
+ "GOLBAT loves to drink the blood of\n"
+ "living things. It is particularly active\n"
+ "in the pitch black of night.");
+static const u8 DexDescription_Golbat_2[] = _(
+ "This POKéMON flits around in the night\n"
+ "skies, seeking fresh blood.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Oddish_1[] = _(
+ "ODDISH searches for fertile, nutrient-\n"
+ "rich soil, then plants itself.\n"
+ "During the daytime, while it is planted,");
+static const u8 DexDescription_Oddish_2[] = _(
+ "this POKéMON’s feet are thought to\n"
+ "change shape and become similar to\n"
+ "the roots of trees.");
+#else
+static const u8 DexDescription_Oddish_1[] = _(
+ "During the daytime, ODDISH buries\n"
+ "itself in soil to absorb nutrients from \n"
+ "the ground using its entire body.");
+static const u8 DexDescription_Oddish_2[] = _(
+ "The more fertile the soil, the glossier\n"
+ "its leaves become.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Gloom_1[] = _(
+ "From its mouth GLOOM drips honey that\n"
+ "smells absolutely horrible.\n"
+ "Apparently, it loves the horrid stench.");
+static const u8 DexDescription_Gloom_2[] = _(
+ "It sniffs the noxious fumes and then \n"
+ "drools even more of its honey.");
+#else
+static const u8 DexDescription_Gloom_1[] = _(
+ "GLOOM releases a foul fragrance from\n"
+ "the pistil of its flower. When faced\n"
+ "with danger, the stench worsens.");
+static const u8 DexDescription_Gloom_2[] = _(
+ "If this POKéMON is feeling calm and\n"
+ "secure, it does not release its usual\n"
+ "stinky aroma.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Vileplume_1[] = _(
+ "VILEPLUME has the world’s largest\n"
+ "petals. They are used to attract prey\n"
+ "that are then doused with toxic spores.");
+static const u8 DexDescription_Vileplume_2[] = _(
+ "Once the prey are immobilized, this\n"
+ "POKéMON catches and devours them.");
+#else
+static const u8 DexDescription_Vileplume_1[] = _(
+ "VILEPLUME’s toxic pollen triggers\n"
+ "atrocious allergy attacks. That’s why\n"
+ "it is advisable never to approach any");
+static const u8 DexDescription_Vileplume_2[] = _(
+ "attractive flowers in a jungle, however\n"
+ "pretty they may be.");
+#endif
+
+#ifdef SAPPHIRE
+#if REVISION >= 1
+static const u8 DexDescription_Paras_1[] = _(
+ "PARAS has parasitic mushrooms growing\n"
+ "on its back called tochukaso. They grow\n"
+ "large by drawing nutrients from this");
+static const u8 DexDescription_Paras_2[] = _(
+ "BUG/GRASS POKéMON host. They are\n" // Identify Paras as BUG/GRASS type rather than just BUG
+ "highly valued as a medicine for\n"
+ "extending life.");
+#else
+static const u8 DexDescription_Paras_1[] = _(
+ "PARAS has parasitic mushrooms growing\n"
+ "on its back called tochukaso. They grow\n"
+ "large by drawing nutrients from this");
+static const u8 DexDescription_Paras_2[] = _(
+ "BUG POKéMON host. They are highly\n"
+ "valued as a medicine for extending life.");
+#endif
+#else
+#if REVISION >= 1
+static const u8 DexDescription_Paras_1[] = _(
+ "PARAS has parasitic mushrooms growing\n"
+ "on its back called tochukaso. They grow\n"
+ "large by drawing nutrients from this");
+static const u8 DexDescription_Paras_2[] = _(
+ "BUG/GRASS POKéMON host. They are\n"
+ "highly valued as a medicine for\n"
+ "extending life.");
+#else
+static const u8 DexDescription_Paras_1[] = _(
+ "PARAS has parasitic mushrooms growing\n"
+ "on its back called tochukaso. They grow\n"
+ "large by drawing nutrients from the BUG");
+static const u8 DexDescription_Paras_2[] = _(
+ "POKéMON host. They are highly valued as\n"
+ "a medicine for extending life.");
+#endif
+#endif
+
+static const u8 DexDescription_Parasect_1[] = _(
+ "PARASECT is known to infest large trees\n"
+ "en masse and drain nutrients from the\n"
+ "lower trunk and roots.");
+static const u8 DexDescription_Parasect_2[] = _(
+ "When an infested tree dies, they move\n"
+ "onto another tree all at once.");
+
+static const u8 DexDescription_Venonat_1[] = _(
+ "VENONAT is said to have evolved with\n"
+ "a coat of thin, stiff hair that covers\n"
+ "its entire body for protection.");
+static const u8 DexDescription_Venonat_2[] = _(
+ "It possesses large eyes that never fail\n"
+ "to spot even miniscule prey.");
+
+static const u8 DexDescription_Venomoth_1[] = _(
+ "VENOMOTH is nocturnal - it is a POKéMON\n"
+ "that only becomes active at night.\n"
+ "Its favorite prey are small insects");
+static const u8 DexDescription_Venomoth_2[] = _(
+ "that gather around streetlights,\n"
+ "attracted by the light in the darkness.");
+
+static const u8 DexDescription_Diglett_1[] = _(
+ "DIGLETT are raised in most farms.\n"
+ "The reason is simple - wherever this\n"
+ "POKéMON burrows, the soil is left");
+static const u8 DexDescription_Diglett_2[] = _(
+ "perfectly tilled for planting crops.\n"
+ "This soil is made ideal for growing\n"
+ "delicious vegetables.");
+
+static const u8 DexDescription_Dugtrio_1[] = _(
+ "DUGTRIO are actually triplets that\n"
+ "emerged from one body. As a result,\n"
+ "each triplet thinks exactly like the");
+static const u8 DexDescription_Dugtrio_2[] = _(
+ "other two triplets.\n"
+ "They work cooperatively to burrow\n"
+ "endlessly.");
+
+static const u8 DexDescription_Meowth_1[] = _(
+ "MEOWTH withdraws its sharp claws into\n"
+ "its paws to slinkily sneak about without\n"
+ "making any incriminating footsteps.");
+static const u8 DexDescription_Meowth_2[] = _(
+ "For some reason, this POKéMON loves\n"
+ "shiny coins that glitter with light.");
+
+static const u8 DexDescription_Persian_1[] = _(
+ "PERSIAN has six bold whiskers that give\n"
+ "it a look of toughness. The whiskers \n"
+ "sense air movements to determine what");
+static const u8 DexDescription_Persian_2[] = _(
+ "is in the POKéMON’s surrounding\n"
+ "vicinity. It becomes docile if grabbed\n"
+ "by the whiskers.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Psyduck_1[] = _(
+ "If it uses its mysterious power,\n"
+ "PSYDUCK can’t remember having done so.\n"
+ "It apparently can’t form a memory of");
+static const u8 DexDescription_Psyduck_2[] = _(
+ "such an event because it goes into\n"
+ "an altered state that is much like\n"
+ "deep sleep.");
+#else
+static const u8 DexDescription_Psyduck_1[] = _(
+ "PSYDUCK uses a mysterious power.\n"
+ "When it does so, this POKéMON \n"
+ "generates brain waves that are");
+static const u8 DexDescription_Psyduck_2[] = _(
+ "supposedly only seen in sleepers.\n"
+ "This discovery spurred controversy\n"
+ "among scholars.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Golduck_1[] = _(
+ "GOLDUCK is the fastest swimmer among\n"
+ "all POKéMON. It swims effortlessly, even\n"
+ "in a rough, stormy sea.");
+static const u8 DexDescription_Golduck_2[] = _(
+ "It sometimes rescues people from\n"
+ "wrecked ships floundering in high seas.");
+#else
+static const u8 DexDescription_Golduck_1[] = _(
+ "The webbed flippers on its forelegs and\n"
+ "hind legs and the streamlined body of\n"
+ "GOLDUCK give it frightening speed.");
+static const u8 DexDescription_Golduck_2[] = _(
+ "This POKéMON is definitely much faster\n"
+ "than even the most athletic swimmer.");
+#endif
+
+static const u8 DexDescription_Mankey_1[] = _(
+ "When MANKEY starts shaking and its\n"
+ "nasal breathing turns rough, it’s a sure\n"
+ "sign that it is becoming angry.");
+static const u8 DexDescription_Mankey_2[] = _(
+ "However, because it goes into a\n"
+ "towering rage almost instantly, it is\n"
+ "impossible for anyone to flee its wrath.");
+
+static const u8 DexDescription_Primeape_1[] = _(
+ "When PRIMEAPE becomes furious, its\n"
+ "blood circulation is boosted. In turn,\n"
+ "its muscles are made even stronger.");
+static const u8 DexDescription_Primeape_2[] = _(
+ "However, it also becomes much less\n"
+ "intelligent at the same time.");
+
+static const u8 DexDescription_Growlithe_1[] = _(
+ "GROWLITHE has a superb sense of smell.\n"
+ "Once it smells anything, this POKéMON\n"
+ "won’t forget the scent, no matter what.");
+static const u8 DexDescription_Growlithe_2[] = _(
+ "It uses its advanced olfactory sense\n"
+ "to determine the emotions of other\n"
+ "living things.");
+
+static const u8 DexDescription_Arcanine_1[] = _(
+ "ARCANINE is known for its high speed.\n"
+ "It is said to be capable of running over\n"
+ "6,200 miles in a single day and night.");
+static const u8 DexDescription_Arcanine_2[] = _(
+ "The fire that blazes wildly within this\n"
+ "POKéMON’s body is its source of power.");
+
+static const u8 DexDescription_Poliwag_1[] = _(
+ "POLIWAG has a very thin skin. It is\n"
+ "possible to see the POKéMON’s spiral\n"
+ "innards right through the skin.");
+static const u8 DexDescription_Poliwag_2[] = _(
+ "Despite its thinness, however, the skin\n"
+ "is also very flexible. Even sharp fangs\n"
+ "bounce right off it.");
+
+static const u8 DexDescription_Poliwhirl_1[] = _(
+ "The surface of POLIWHIRL’s body is\n"
+ "always wet and slick with an oily fluid.\n"
+ "Because of this greasy covering, it can");
+static const u8 DexDescription_Poliwhirl_2[] = _(
+ "easily slip and slide out of the clutches\n"
+ "of any enemy in battle.");
+
+static const u8 DexDescription_Poliwrath_1[] = _(
+ "POLIWRATH’s highly developed, brawny\n"
+ "muscles never grow fatigued, however\n"
+ "much it exercises.");
+static const u8 DexDescription_Poliwrath_2[] = _(
+ "It is so tirelessly strong, this POKéMON\n"
+ "can swim back and forth across the\n"
+ "Pacific Ocean without effort.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Abra_1[] = _(
+ "ABRA needs to sleep for eighteen hours\n"
+ "a day. If it doesn’t, this POKéMON loses\n"
+ "its ability to use telekinetic powers.");
+static const u8 DexDescription_Abra_2[] = _(
+ "If it is attacked, ABRA escapes using\n"
+ "TELEPORT while it is still sleeping.");
+#else
+static const u8 DexDescription_Abra_1[] = _(
+ "ABRA sleeps for eighteen hours a day.\n"
+ "However, it can sense the presence of\n"
+ "foes even while it is sleeping.");
+static const u8 DexDescription_Abra_2[] = _(
+ "In such a situation, this POKéMON\n"
+ "immediately teleports to safety.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Kadabra_1[] = _(
+ "KADABRA holds a silver spoon in its\n"
+ "hand. The spoon is used to amplify the\n"
+ "alpha waves in its brain.");
+static const u8 DexDescription_Kadabra_2[] = _(
+ "Without the spoon, the POKéMON is said\n"
+ "to be limited to half the usual amount\n"
+ "of its telekinetic powers.");
+#else
+static const u8 DexDescription_Kadabra_1[] = _(
+ "KADABRA emits a peculiar alpha wave\n"
+ "if it develops a headache. Only those\n"
+ "people with a particularly strong");
+static const u8 DexDescription_Kadabra_2[] = _(
+ "psyche can hope to become a TRAINER\n"
+ "of this POKéMON.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Alakazam_1[] = _(
+ "ALAKAZAM’s brain continually grows,\n"
+ "infinitely multiplying brain cells.\n"
+ "This amazing brain gives this POKéMON");
+static const u8 DexDescription_Alakazam_2[] = _(
+ "an astoundingly high IQ of 5,000.\n"
+ "It has a thorough memory of everything\n"
+ "that has occurred in the world.");
+#else
+static const u8 DexDescription_Alakazam_1[] = _(
+ "ALAKAZAM’s brain continually grows,\n"
+ "making its head far too heavy to\n"
+ "support with its neck.");
+static const u8 DexDescription_Alakazam_2[] = _(
+ "This POKéMON holds its head up using\n"
+ "its psychokinetic power instead.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Machop_1[] = _(
+ "MACHOP exercises by hefting around\n"
+ "a GRAVELER as if it were a barbell.\n"
+ "There are some MACHOP that travel");
+static const u8 DexDescription_Machop_2[] = _(
+ "the world in a quest to master all\n"
+ "kinds of martial arts.");
+#else
+static const u8 DexDescription_Machop_1[] = _(
+ "MACHOP’s muscles are special - they\n"
+ "never get sore no matter how much they\n"
+ "are used in exercise.");
+static const u8 DexDescription_Machop_2[] = _(
+ "This POKéMON has sufficient power to\n"
+ "hurl a hundred adult humans.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Machoke_1[] = _(
+ "MACHOKE undertakes bodybuilding every\n"
+ "day even as it helps people with tough,\n"
+ "physically demanding labor.");
+static const u8 DexDescription_Machoke_2[] = _(
+ "On its days off, this POKéMON heads to\n"
+ "the fields and mountains to exercise\n"
+ "and train.");
+#else
+static const u8 DexDescription_Machoke_1[] = _(
+ "MACHOKE’s thoroughly toned muscles\n"
+ "possess the hardness of steel.\n"
+ "This POKéMON has so much strength,");
+static const u8 DexDescription_Machoke_2[] = _(
+ "it can easily hold aloft a sumo wrestler\n"
+ "on just one finger.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Machamp_1[] = _(
+ "MACHAMP is known as the POKéMON that\n"
+ "has mastered every kind of martial arts.\n"
+ "If it grabs hold of the foe with its four");
+static const u8 DexDescription_Machamp_2[] = _(
+ "arms, the battle is all but over.\n"
+ "The hapless foe is thrown far over the\n"
+ "horizon.");
+#else
+static const u8 DexDescription_Machamp_1[] = _(
+ "MACHAMP has the power to hurl anything\n"
+ "aside. However, trying to do any work\n"
+ "requiring care and dexterity causes");
+static const u8 DexDescription_Machamp_2[] = _(
+ "its arms to get tangled.\n"
+ "This POKéMON tends to leap into action\n"
+ "before it thinks.");
+#endif
+
+static const u8 DexDescription_Bellsprout_1[] = _(
+ "BELLSPROUT’s thin and flexible body\n"
+ "lets it bend and sway to avoid any\n"
+ "attack, however strong it may be.");
+static const u8 DexDescription_Bellsprout_2[] = _(
+ "From its mouth, this POKéMON spits a\n"
+ "corrosive fluid that melts even iron.");
+
+static const u8 DexDescription_Weepinbell_1[] = _(
+ "WEEPINBELL has a large hook on its rear\n"
+ "end. At night, the POKéMON hooks on to\n"
+ "a tree branch and goes to sleep.");
+static const u8 DexDescription_Weepinbell_2[] = _(
+ "If it moves around in its sleep, it may\n"
+ "wake up to find itself on the ground.");
+
+static const u8 DexDescription_Victreebel_1[] = _(
+ "VICTREEBEL has a long vine that\n"
+ "extends from its head. This vine is\n"
+ "waved and flicked about as if it were");
+static const u8 DexDescription_Victreebel_2[] = _(
+ "an animal to attract prey. When an\n"
+ "unsuspecting prey draws near, this\n"
+ "POKéMON swallows it whole.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Tentacool_1[] = _(
+ "TENTACOOL absorbs sunlight and\n"
+ "refracts it using water inside its body\n"
+ "to convert it into beam energy.");
+static const u8 DexDescription_Tentacool_2[] = _(
+ "This POKéMON shoots beams from its\n"
+ "crystal-like eyes.");
+#else
+static const u8 DexDescription_Tentacool_1[] = _(
+ "TENTACOOL’s body is largely composed\n"
+ "of water. If it is removed from the\n"
+ "sea, it dries up like parchment.");
+static const u8 DexDescription_Tentacool_2[] = _(
+ "If this POKéMON happens to become\n"
+ "dehydrated, put it back into the sea.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Tentacruel_1[] = _(
+ "TENTACRUEL has tentacles that can be\n"
+ "freely elongated and shortened at will.\n"
+ "It ensnares prey with its tentacles and");
+static const u8 DexDescription_Tentacruel_2[] = _(
+ "weakens the prey by dosing it with a\n"
+ "harsh toxin. It can catch up to 80\n"
+ "prey at the same time.");
+#else
+static const u8 DexDescription_Tentacruel_1[] = _(
+ "TENTACRUEL has large red orbs on its\n"
+ "head. The orbs glow before lashing the\n"
+ "vicinity with a harsh ultrasonic blast.");
+static const u8 DexDescription_Tentacruel_2[] = _(
+ "This POKéMON’s outburst creates rough\n"
+ "waves around it.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Geodude_1[] = _(
+ "When GEODUDE sleeps deeply, it buries\n"
+ "itself halfway into the ground.\n"
+ "It will not awaken even if hikers step");
+static const u8 DexDescription_Geodude_2[] = _(
+ "on it unwittingly.\n"
+ "In the morning, this POKéMON rolls\n"
+ "downhill in search of food.");
+#else
+static const u8 DexDescription_Geodude_1[] = _(
+ "The longer a GEODUDE lives, the more\n"
+ "its edges are chipped and worn away,\n"
+ "making it more rounded in appearance.");
+static const u8 DexDescription_Geodude_2[] = _(
+ "However, this POKéMON’s heart will\n"
+ "remain hard, craggy, and rough always.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Graveler_1[] = _(
+ "Rocks are GRAVELER’s favorite food.\n"
+ "This POKéMON will climb a mountain from\n"
+ "the base to the summit, crunchingly");
+static const u8 DexDescription_Graveler_2[] = _(
+ "feasting on rocks all the while.\n"
+ "Upon reaching the peak, it rolls back\n"
+ "down to the bottom.");
+#else
+static const u8 DexDescription_Graveler_1[] = _(
+ "GRAVELER grows by feeding on rocks.\n"
+ "Apparently, it prefers to eat rocks\n"
+ "that are covered in moss.");
+static const u8 DexDescription_Graveler_2[] = _(
+ "This POKéMON eats its way through\n"
+ "a ton of rocks on a daily basis.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Golem_1[] = _(
+ "GOLEM is known for rolling down from\n"
+ "mountains. To prevent them from rolling\n"
+ "into the homes of people downhill,");
+static const u8 DexDescription_Golem_2[] = _(
+ "grooves have been dug into the sides of\n"
+ "mountains to serve as guideways for\n"
+ "diverting this POKéMON’s course.");
+#else
+static const u8 DexDescription_Golem_1[] = _(
+ "GOLEM live up on mountains.\n"
+ "If there is a large earthquake, these\n"
+ "POKéMON will come rolling down off");
+static const u8 DexDescription_Golem_2[] = _(
+ "the mountains en masse to the\n"
+ "foothills below.");
+#endif
+
+static const u8 DexDescription_Ponyta_1[] = _(
+ "PONYTA is very weak at birth.\n"
+ "It can barely stand up.\n"
+ "This POKéMON becomes stronger by");
+static const u8 DexDescription_Ponyta_2[] = _(
+ "stumbling and falling to keep up with\n"
+ "its parent.");
+
+static const u8 DexDescription_Rapidash_1[] = _(
+ "RAPIDASH usually can be seen casually\n"
+ "cantering in the fields and plains.\n"
+ "However, when this POKéMON turns");
+static const u8 DexDescription_Rapidash_2[] = _(
+ "serious, its fiery manes flare and blaze\n"
+ "as it gallops its way up to 150 mph.");
+
+static const u8 DexDescription_Slowpoke_1[] = _(
+ "SLOWPOKE uses its tail to catch prey by\n"
+ "dipping it in water at the side of a\n"
+ "river.");
+static const u8 DexDescription_Slowpoke_2[] = _(
+ "However, this POKéMON often forgets\n"
+ "what it’s doing and often spends entire\n"
+ "days just loafing at water’s edge.");
+
+static const u8 DexDescription_Slowbro_1[] = _(
+ "SLOWBRO’s tail has a SHELLDER firmly\n"
+ "attached with a bite. As a result, the\n"
+ "tail can’t be used for fishing anymore.");
+static const u8 DexDescription_Slowbro_2[] = _(
+ "This causes SLOWBRO to grudgingly swim\n"
+ "and catch prey instead.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Magnemite_1[] = _(
+ "MAGNEMITE floats in the air by emitting\n"
+ "electromagnetic waves from the units\n"
+ "at its sides. These waves block gravity.");
+static const u8 DexDescription_Magnemite_2[] = _(
+ "This POKéMON becomes incapable of\n"
+ "flight if its internal electrical supply\n"
+ "is depleted.");
+#else
+static const u8 DexDescription_Magnemite_1[] = _(
+ "MAGNEMITE attaches itself to power\n"
+ "lines to feed on electricity.\n"
+ "If your house has a power outage,");
+static const u8 DexDescription_Magnemite_2[] = _(
+ "check your circuit breakers. You may\n"
+ "find a large number of this POKéMON\n"
+ "clinging to the breaker box.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Magneton_1[] = _(
+ "MAGNETON emits a powerful magnetic\n"
+ "force that is fatal to electronics and\n"
+ "precision instruments. Because of");
+static const u8 DexDescription_Magneton_2[] = _(
+ "this, it is said that some towns warn\n"
+ "people to keep this POKéMON inside\n"
+ "a POKé BALL.");
+#else
+static const u8 DexDescription_Magneton_1[] = _(
+ "MAGNETON emits a powerful magnetic\n"
+ "force that is fatal to mechanical\n"
+ "devices. As a result, large cities sound");
+static const u8 DexDescription_Magneton_2[] = _(
+ "sirens to warn citizens of large-scale\n"
+ "outbreaks of this POKéMON.");
+#endif
+
+static const u8 DexDescription_Farfetchd_1[] = _(
+ "FARFETCH’D is always seen with a stick\n"
+ "from a plant of some sort. Apparently,\n"
+ "there are good sticks and bad sticks.");
+static const u8 DexDescription_Farfetchd_2[] = _(
+ "This POKéMON has been known to fight\n"
+ "with others over sticks.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Doduo_1[] = _(
+ "DODUO’s two heads contain completely\n"
+ "identical brains.\n"
+ "A scientific study reported that on");
+static const u8 DexDescription_Doduo_2[] = _(
+ "rare occasions, there will be examples\n"
+ "of this POKéMON possessing different\n"
+ "sets of brains.");
+#else
+static const u8 DexDescription_Doduo_1[] = _(
+ "DODUO’s two heads never sleep at the\n"
+ "same time.\n"
+ "Its two heads take turns sleeping,");
+static const u8 DexDescription_Doduo_2[] = _(
+ "so one head can always keep watch for\n"
+ "enemies while the other one sleeps.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Dodrio_1[] = _(
+ "Apparently, the heads aren’t the only\n"
+ "parts of the body that DODRIO has\n"
+ "three of.");
+static const u8 DexDescription_Dodrio_2[] = _(
+ "It has three sets of hearts and lungs\n"
+ "as well, so it is capable of running long\n"
+ "distances without rest.");
+#else
+static const u8 DexDescription_Dodrio_1[] = _(
+ "Watch out if DODRIO’s three heads are\n"
+ "looking in three separate directions.\n"
+ "It’s a sure sign that it is on its guard.");
+static const u8 DexDescription_Dodrio_2[] = _(
+ "Don’t go near this POKéMON if it’s being\n"
+ "wary - it may decide to peck you.");
+#endif
+
+static const u8 DexDescription_Seel_1[] = _(
+ "SEEL hunts for prey in the frigid sea\n"
+ "underneath sheets of ice.\n"
+ "When it needs to breathe, it punches");
+static const u8 DexDescription_Seel_2[] = _(
+ "a hole through the ice with the\n"
+ "sharply protruding section of its head.");
+
+static const u8 DexDescription_Dewgong_1[] = _(
+ "DEWGONG loves to snooze on bitterly\n"
+ "cold ice.\n"
+ "The sight of this POKéMON sleeping on");
+static const u8 DexDescription_Dewgong_2[] = _(
+ "a glacier was mistakenly thought to be\n"
+ "a mermaid by a mariner long ago.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Grimer_1[] = _(
+ "GRIMER emerged from the sludge that\n"
+ "settled on a polluted seabed.\n"
+ "This POKéMON loves anything filthy.");
+static const u8 DexDescription_Grimer_2[] = _(
+ "It constantly leaks a horribly germ-\n"
+ "infested fluid from all over its body.");
+#else
+static const u8 DexDescription_Grimer_1[] = _(
+ "GRIMER’s sludgy and rubbery body can\n"
+ "be forced through any opening, however\n"
+ "small it may be.");
+static const u8 DexDescription_Grimer_2[] = _(
+ "This POKéMON enters sewer pipes to\n"
+ "drink filthy wastewater.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Muk_1[] = _(
+ "This POKéMON’s favorite food is\n"
+ "anything that is repugnantly filthy.\n"
+ "In dirty towns where people think");
+static const u8 DexDescription_Muk_2[] = _(
+ "nothing of throwing away litter on the\n"
+ "streets, MUK are certain to gather.");
+#else
+static const u8 DexDescription_Muk_1[] = _(
+ "From MUK’s body seeps a foul fluid that\n"
+ "gives off a nose-bendingly horrible\n"
+ "stench.");
+static const u8 DexDescription_Muk_2[] = _(
+ "Just one drop of this POKéMON’s body\n"
+ "fluid can turn a pool stagnant and\n"
+ "rancid.");
+#endif
+
+static const u8 DexDescription_Shellder_1[] = _(
+ "At night, this POKéMON uses its broad\n"
+ "tongue to burrow a hole in the seafloor\n"
+ "sand and then sleep in it.");
+static const u8 DexDescription_Shellder_2[] = _(
+ "While it is sleeping, SHELLDER closes its\n"
+ "shell, but leaves its tongue hanging\n"
+ "out.");
+
+static const u8 DexDescription_Cloyster_1[] = _(
+ "CLOYSTER is capable of swimming in the\n"
+ "sea. It does so by swallowing water,\n"
+ "then jetting it out toward the rear.");
+static const u8 DexDescription_Cloyster_2[] = _(
+ "This POKéMON shoots spikes from its\n"
+ "shell using the same system.");
+
+static const u8 DexDescription_Gastly_1[] = _(
+ "GASTLY is largely composed of gaseous\n"
+ "matter. When exposed to a strong wind,\n"
+ "the gaseous body quickly dwindles away.");
+static const u8 DexDescription_Gastly_2[] = _(
+ "Groups of this POKéMON cluster under\n"
+ "the eaves of houses to escape the\n"
+ "ravages of wind.");
+
+static const u8 DexDescription_Haunter_1[] = _(
+ "HAUNTER is a dangerous POKéMON.\n"
+ "If one beckons you while floating in\n"
+ "darkness, you must never approach it.");
+static const u8 DexDescription_Haunter_2[] = _(
+ "This POKéMON will try to lick you with its\n"
+ "tongue and steal your life away.");
+
+static const u8 DexDescription_Gengar_1[] = _(
+ "Sometimes, on a dark night, your shadow\n"
+ "thrown by a streetlight will suddenly\n"
+ "and startlingly overtake you.");
+static const u8 DexDescription_Gengar_2[] = _(
+ "It is actually a GENGAR running past\n"
+ "you, pretending to be your shadow.");
+
+static const u8 DexDescription_Onix_1[] = _(
+ "ONIX has a magnet in its brain. It acts\n"
+ "as a compass so that this POKéMON does\n"
+ "not lose direction while it is tunneling.");
+static const u8 DexDescription_Onix_2[] = _(
+ "As it grows older, its body becomes\n"
+ "increasingly rounder and smoother.");
+
+static const u8 DexDescription_Drowzee_1[] = _(
+ "If your nose becomes itchy while you\n"
+ "are sleeping, it’s a sure sign that one\n"
+ "of these POKéMON is standing above");
+static const u8 DexDescription_Drowzee_2[] = _(
+ "your pillow and trying to eat your dream\n"
+ "through your nostrils.");
+
+static const u8 DexDescription_Hypno_1[] = _(
+ "HYPNO holds a pendulum in its hand.\n"
+ "The arcing movement and glitter of the\n"
+ "pendulum lull the foe into a deep state");
+static const u8 DexDescription_Hypno_2[] = _(
+ "of hypnosis.\n"
+ "While this POKéMON searches for prey,\n"
+ "it polishes the pendulum.");
+
+static const u8 DexDescription_Krabby_1[] = _(
+ "KRABBY live on beaches, burrowed inside\n"
+ "holes dug into the sand.\n"
+ "On sandy beaches with little in the way");
+static const u8 DexDescription_Krabby_2[] = _(
+ "of food, these POKéMON can be seen\n"
+ "squabbling with each other over\n"
+ "territory.");
+
+static const u8 DexDescription_Kingler_1[] = _(
+ "KINGLER has an enormous, oversized\n"
+ "claw. It waves this huge claw in the\n"
+ "air to communicate with others.");
+static const u8 DexDescription_Kingler_2[] = _(
+ "However, because the claw is so heavy,\n"
+ "the POKéMON quickly tires.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Voltorb_1[] = _(
+ "VOLTORB is extremely sensitive - it\n"
+ "explodes at the slightest of shocks.\n"
+ "It is rumored that it was first created");
+static const u8 DexDescription_Voltorb_2[] = _(
+ "when a POKé BALL was exposed to a\n"
+ "powerful pulse of energy.");
+#else
+static const u8 DexDescription_Voltorb_1[] = _(
+ "VOLTORB was first sighted at a company\n"
+ "that manufactures POKé BALLS.\n"
+ "The link between that sighting and");
+static const u8 DexDescription_Voltorb_2[] = _(
+ "the fact that this POKéMON looks very\n"
+ "similar to a POKé BALL remains a\n"
+ "mystery.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Electrode_1[] = _(
+ "One of ELECTRODE’s characteristics is\n"
+ "its attraction to electricity.\n"
+ "It is a problematical POKéMON that");
+static const u8 DexDescription_Electrode_2[] = _(
+ "congregates mostly at electrical\n"
+ "power plants to feed on electricity\n"
+ "that has just been generated.");
+#else
+static const u8 DexDescription_Electrode_1[] = _(
+ "ELECTRODE eats electricity in the\n"
+ "atmosphere. On days when lightning\n"
+ "strikes, you can see this POKéMON");
+static const u8 DexDescription_Electrode_2[] = _(
+ "exploding all over the place from\n"
+ "eating too much electricity.");
+#endif
+
+static const u8 DexDescription_Exeggcute_1[] = _(
+ "This POKéMON consists of six eggs that\n"
+ "form a closely knit cluster. The six eggs\n"
+ "attract each other and spin around.");
+static const u8 DexDescription_Exeggcute_2[] = _(
+ "When cracks increasingly appear on the\n"
+ "eggs, EXEGGCUTE is close to evolution.");
+
+static const u8 DexDescription_Exeggutor_1[] = _(
+ "EXEGGUTOR originally came from the\n"
+ "tropics. Its heads steadily grow larger\n"
+ "from exposure to strong sunlight.");
+static const u8 DexDescription_Exeggutor_2[] = _(
+ "It is said that when the heads fall off,\n"
+ "they group together to form EXEGGCUTE.");
+
+static const u8 DexDescription_Cubone_1[] = _(
+ "CUBONE pines for the mother it will\n"
+ "never see again. Seeing a likeness of\n"
+ "its mother in the full moon, it cries.");
+static const u8 DexDescription_Cubone_2[] = _(
+ "The stains on the skull the POKéMON\n"
+ "wears are made by the tears it sheds.");
+
+static const u8 DexDescription_Marowak_1[] = _(
+ "MAROWAK is the evolved form of a CUBONE\n"
+ "that has overcome its sadness at the\n"
+ "loss of its mother and grown tough.");
+static const u8 DexDescription_Marowak_2[] = _(
+ "This POKéMON’s tempered and hardened\n"
+ "spirit is not easily broken.");
+
+static const u8 DexDescription_Hitmonlee_1[] = _(
+ "HITMONLEE’s legs freely contract and\n"
+ "stretch. Using these springlike legs, it\n"
+ "bowls over foes with devastating kicks.");
+static const u8 DexDescription_Hitmonlee_2[] = _(
+ "After battle, it rubs down its legs and\n"
+ "loosens the muscles to overcome\n"
+ "fatigue.");
+
+static const u8 DexDescription_Hitmonchan_1[] = _(
+ "HITMONCHAN is said to possess the\n"
+ "spirit of a boxer who had been working\n"
+ "towards a world championship.");
+static const u8 DexDescription_Hitmonchan_2[] = _(
+ "This POKéMON has an indomitable spirit\n"
+ "and will never give up in the face of\n"
+ "adversity.");
+
+static const u8 DexDescription_Lickitung_1[] = _(
+ "Whenever LICKITUNG comes across\n"
+ "something new, it will unfailingly give it\n"
+ "a lick. It does so because it memorizes");
+static const u8 DexDescription_Lickitung_2[] = _(
+ "things by texture and by taste.\n"
+ "It is somewhat put off by sour things.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Koffing_1[] = _(
+ "KOFFING embodies toxic substances.\n"
+ "It mixes the toxins with raw garbage to\n"
+ "set off a chemical reaction that");
+static const u8 DexDescription_Koffing_2[] = _(
+ "results in a terribly powerful poison\n"
+ "gas. The higher the temperature, the\n"
+ "more gas is concocted by this POKéMON.");
+#else
+static const u8 DexDescription_Koffing_1[] = _(
+ "If KOFFING becomes agitated, it raises\n"
+ "the toxicity of its internal gases and\n"
+ "jets them out from all over its body.");
+static const u8 DexDescription_Koffing_2[] = _(
+ "This POKéMON may also overinflate its\n"
+ "round body, then explode.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Weezing_1[] = _(
+ "WEEZING alternately shrinks and\n"
+ "inflates its twin bodies to mix together\n"
+ "toxic gases inside.");
+static const u8 DexDescription_Weezing_2[] = _(
+ "The more the gases are mixed, the more\n"
+ "powerful the toxins become. The\n"
+ "POKéMON also becomes more putrid.");
+#else
+static const u8 DexDescription_Weezing_1[] = _(
+ "WEEZING loves the gases given off by\n"
+ "rotted kitchen garbage. This POKéMON\n"
+ "will find a dirty, unkempt house and");
+static const u8 DexDescription_Weezing_2[] = _(
+ "make it its home. At night, when the\n"
+ "people in the house are asleep, it will\n"
+ "go through the trash.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Rhyhorn_1[] = _(
+ "RHYHORN’s brain is very small. It is so\n"
+ "dense, while on a run it forgets why it\n"
+ "started running in the first place.");
+static const u8 DexDescription_Rhyhorn_2[] = _(
+ "It apparently remembers sometimes if it\n"
+ "demolishes something.");
+#else
+static const u8 DexDescription_Rhyhorn_1[] = _(
+ "RHYHORN runs in a straight line,\n"
+ "smashing everything in its path.\n"
+ "It is not bothered even if it rushes");
+static const u8 DexDescription_Rhyhorn_2[] = _(
+ "headlong into a block of steel.\n"
+ "This POKéMON may feel some pain from\n"
+ "the collision the next day, however.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Rhydon_1[] = _(
+ "RHYDON has a horn that serves as a\n"
+ "drill. It is used for destroying rocks\n"
+ "and boulders.");
+static const u8 DexDescription_Rhydon_2[] = _(
+ "This POKéMON occasionally rams into\n"
+ "streams of magma, but the armor-like\n"
+ "hide prevents it from feeling the heat.");
+#else
+static const u8 DexDescription_Rhydon_1[] = _(
+ "RHYDON’s horn can crush even uncut\n"
+ "diamonds. One sweeping blow of its tail\n"
+ "can topple a building.");
+static const u8 DexDescription_Rhydon_2[] = _(
+ "This POKéMON’s hide is extremely tough.\n"
+ "Even direct cannon hits don’t leave\n"
+ "a scratch.");
+#endif
+
+static const u8 DexDescription_Chansey_1[] = _(
+ "CHANSEY lays nutritionally excellent\n"
+ "eggs on an everyday basis.\n"
+ "The eggs are so delicious, they are");
+static const u8 DexDescription_Chansey_2[] = _(
+ "easily and eagerly devoured by even\n"
+ "those people who have lost their\n"
+ "appetite.");
+
+static const u8 DexDescription_Tangela_1[] = _(
+ "TANGELA’s vines snap off easily if they\n"
+ "are grabbed. This happens without pain,\n"
+ "allowing it to make a quick getaway.");
+static const u8 DexDescription_Tangela_2[] = _(
+ "The lost vines are replaced by newly\n"
+ "grown vines the very next day.");
+
+static const u8 DexDescription_Kangaskhan_1[] = _(
+ "If you come across a young KANGASKHAN\n"
+ "playing by itself, you must never\n"
+ "disturb it or attempt to catch it.");
+static const u8 DexDescription_Kangaskhan_2[] = _(
+ "The baby POKéMON’s parent is sure to\n"
+ "be in the area, and it will become\n"
+ "violently enraged at you.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Horsea_1[] = _(
+ "If HORSEA senses danger, it will\n"
+ "reflexively spray a dense black ink\n"
+ "from its mouth and try to escape.");
+static const u8 DexDescription_Horsea_2[] = _(
+ "This POKéMON swims by cleverly flapping\n"
+ "the fins on its back.");
+#else
+static const u8 DexDescription_Horsea_1[] = _(
+ "HORSEA eats small insects and moss off\n"
+ "of rocks. If the ocean current turns\n"
+ "fast, this POKéMON anchors itself by");
+static const u8 DexDescription_Horsea_2[] = _(
+ "wrapping its tail around rocks or coral\n"
+ "to prevent being washed away.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Seadra_1[] = _(
+ "SEADRA generates whirlpools by spinning\n"
+ "its body. The whirlpools are strong\n"
+ "enough to swallow even fishing boats.");
+static const u8 DexDescription_Seadra_2[] = _(
+ "This POKéMON weakens prey with these\n"
+ "currents, then swallows it whole.");
+#else
+static const u8 DexDescription_Seadra_1[] = _(
+ "SEADRA sleeps after wriggling itself\n"
+ "between the branches of coral.\n"
+ "Those trying to harvest coral are");
+static const u8 DexDescription_Seadra_2[] = _(
+ "occasionally stung by this POKéMON’s\n"
+ "poison barbs if they fail to notice it.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Goldeen_1[] = _(
+ "GOLDEEN loves swimming wild and free\n"
+ "in rivers and ponds.\n"
+ "If one of these POKéMON is placed in an");
+static const u8 DexDescription_Goldeen_2[] = _(
+ "aquarium, it will shatter even the\n"
+ "thickest glass with one ram of its horn\n"
+ "and make its escape.");
+#else
+static const u8 DexDescription_Goldeen_1[] = _(
+ "GOLDEEN is a very beautiful POKéMON\n"
+ "with fins that billow elegantly in water.\n"
+ "However, don’t let your guard down");
+static const u8 DexDescription_Goldeen_2[] = _(
+ "around this POKéMON - it could ram you\n"
+ "powerfully with its horn.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Seaking_1[] = _(
+ "SEAKING is very protective of its eggs.\n"
+ "The male and female will take turns\n"
+ "patrolling around their nest and eggs.");
+static const u8 DexDescription_Seaking_2[] = _(
+ "The guarding of eggs by these POKéMON\n"
+ "goes on for over a month.");
+#else
+static const u8 DexDescription_Seaking_1[] = _(
+ "In the autumn, SEAKING males can be\n"
+ "seen performing courtship dances in\n"
+ "riverbeds to woo females.");
+static const u8 DexDescription_Seaking_2[] = _(
+ "During this season, this POKéMON’s body\n"
+ "coloration is at its most beautiful.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Staryu_1[] = _(
+ "STARYU apparently communicates with\n"
+ "the stars in the night sky by flashing\n"
+ "the red core at the center of its body.");
+static const u8 DexDescription_Staryu_2[] = _(
+ "If parts of its body are torn, this\n"
+ "POKéMON simply regenerates the\n"
+ "missing pieces and limbs.");
+#else
+static const u8 DexDescription_Staryu_1[] = _(
+ "STARYU’s center section has an organ\n"
+ "called the core that shines bright red.\n"
+ "If you go to a beach toward the");
+static const u8 DexDescription_Staryu_2[] = _(
+ "end of summer, the glowing cores of\n"
+ "these POKéMON look like the stars\n"
+ "in the sky.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Starmie_1[] = _(
+ "STARMIE swims through water by\n"
+ "spinning its star-shaped body as if it\n"
+ "were a propeller on a ship.");
+static const u8 DexDescription_Starmie_2[] = _(
+ "The core at the center of this\n"
+ "POKéMON’s body glows in seven colors.");
+#else
+static const u8 DexDescription_Starmie_1[] = _(
+ "STARMIE’s center section - the core -\n"
+ "glows brightly in seven colors.\n"
+ "Because of its luminous nature, this");
+static const u8 DexDescription_Starmie_2[] = _(
+ "POKéMON has been given the nickname\n"
+ "“the gem of the sea.”");
+#endif
+
+static const u8 DexDescription_Mrmime_1[] = _(
+ "MR. MIME is a master of pantomime.\n"
+ "Its gestures and motions convince\n"
+ "watchers that something unseeable");
+static const u8 DexDescription_Mrmime_2[] = _(
+ "actually exists. Once it is believed,\n"
+ "it will exist as if it were a real thing.");
+
+static const u8 DexDescription_Scyther_1[] = _(
+ "SCYTHER is blindingly fast. Its blazing\n"
+ "speed enhances the effectiveness of\n"
+ "the twin scythes on its forearms.");
+static const u8 DexDescription_Scyther_2[] = _(
+ "This POKéMON’s scythes are so\n"
+ "effective, they can slice through thick\n"
+ "logs in one wicked stroke.");
+
+static const u8 DexDescription_Jynx_1[] = _(
+ "JYNX walks rhythmically, swaying and\n"
+ "shaking its hips as if it were dancing.\n"
+ "Its motions are so bouncingly alluring,");
+static const u8 DexDescription_Jynx_2[] = _(
+ "people seeing it are compelled to shake\n"
+ "their hips without giving any thought\n"
+ "to what they are doing.");
+
+static const u8 DexDescription_Electabuzz_1[] = _(
+ "When a storm arrives, gangs of this\n"
+ "POKéMON compete with each other to\n"
+ "scale heights that are likely to be");
+static const u8 DexDescription_Electabuzz_2[] = _(
+ "stricken by lightning bolts.\n"
+ "Some towns use ELECTABUZZ in place of\n"
+ "lightning rods.");
+
+static const u8 DexDescription_Magmar_1[] = _(
+ "In battle, MAGMAR blows out intensely\n"
+ "hot flames from all over its body to\n"
+ "intimidate its opponent.");
+static const u8 DexDescription_Magmar_2[] = _(
+ "This POKéMON’s fiery bursts create\n"
+ "heat waves that ignite grass and trees\n"
+ "in its surroundings.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Pinsir_1[] = _(
+ "PINSIR has a pair of massive horns \n"
+ "Protruding from the surface of these\n"
+ "horns are thorns.");
+static const u8 DexDescription_Pinsir_2[] = _(
+ "These thorns are driven deeply into the\n"
+ "foe’s body when the pincer closes,\n"
+ "making it tough for the foe to escape.");
+#else
+static const u8 DexDescription_Pinsir_1[] = _(
+ "PINSIR is astoundingly strong. It can\n"
+ "grip a foe weighing twice its weight\n"
+ "in its horns and easily lift it.");
+static const u8 DexDescription_Pinsir_2[] = _(
+ "This POKéMON’s movements turn sluggish\n"
+ "in cold places.");
+#endif
+
+static const u8 DexDescription_Tauros_1[] = _(
+ "This POKéMON is not satisfied unless\n"
+ "it is rampaging at all times.\n"
+ "If there is no opponent for TAUROS to");
+static const u8 DexDescription_Tauros_2[] = _(
+ "battle, it will charge at thick trees and\n"
+ "knock them down to calm itself.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Magikarp_1[] = _(
+ "MAGIKARP is virtually useless in battle\n"
+ "as it can only splash around.\n"
+ "As a result, it is considered to be weak.");
+static const u8 DexDescription_Magikarp_2[] = _(
+ "However, it is actually a very hardy\n"
+ "POKéMON that can survive in any body of\n"
+ "water no matter how polluted it is.");
+#else
+static const u8 DexDescription_Magikarp_1[] = _(
+ "MAGIKARP is a pathetic excuse for a\n"
+ "POKéMON that is only capable of\n"
+ "flopping and splashing.");
+static const u8 DexDescription_Magikarp_2[] = _(
+ "This behavior prompted scientists to\n"
+ "undertake research into it.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Gyarados_1[] = _(
+ "Once GYARADOS goes on a rampage, its\n"
+ "ferociously violent blood doesn’t calm\n"
+ "until it has burned everything down.");
+static const u8 DexDescription_Gyarados_2[] = _(
+ "There are records of this POKéMON’s\n"
+ "rampages lasting a whole month.");
+#else
+static const u8 DexDescription_Gyarados_1[] = _(
+ "When MAGIKARP evolves into GYARADOS,\n"
+ "its brain cells undergo a structural\n"
+ "transformation. It is said that this");
+static const u8 DexDescription_Gyarados_2[] = _(
+ "transformation is to blame for this\n"
+ "POKéMON’s wildly violent nature.");
+#endif
+
+static const u8 DexDescription_Lapras_1[] = _(
+ "People have driven LAPRAS almost to the\n"
+ "point of extinction. In the evenings,\n"
+ "this POKéMON is said to sing plaintively");
+static const u8 DexDescription_Lapras_2[] = _(
+ "as it seeks what few others of its kind\n"
+ "still remain.");
+
+static const u8 DexDescription_Ditto_1[] = _(
+ "DITTO rearranges its cell structure to\n"
+ "transform itself into other shapes.\n"
+ "However, if it tries to transform itself");
+static const u8 DexDescription_Ditto_2[] = _(
+ "into something by relying on its memory,\n"
+ "this POKéMON manages to get details\n"
+ "wrong.");
+
+static const u8 DexDescription_Eevee_1[] = _(
+ "EEVEE has an unstable genetic makeup\n"
+ "that suddenly mutates due to the\n"
+ "environment in which it lives.");
+static const u8 DexDescription_Eevee_2[] = _(
+ "Radiation from various STONES causes\n"
+ "this POKéMON to evolve.");
+
+static const u8 DexDescription_Vaporeon_1[] = _(
+ "VAPOREON underwent a spontaneous\n"
+ "mutation and grew fins and gills that\n"
+ "allow it to live underwater.");
+static const u8 DexDescription_Vaporeon_2[] = _(
+ "This POKéMON has the ability to freely\n"
+ "control water.");
+
+static const u8 DexDescription_Jolteon_1[] = _(
+ "JOLTEON’s cells generate a low level of\n"
+ "electricity. This power is amplified by\n"
+ "the static electricity of its fur,");
+static const u8 DexDescription_Jolteon_2[] = _(
+ "enabling the POKéMON to drop\n"
+ "thunderbolts. The bristling fur is made\n"
+ "of electrically charged needles.");
+
+static const u8 DexDescription_Flareon_1[] = _(
+ "FLAREON’s fluffy fur has a functional\n"
+ "purpose - it releases heat into the air\n"
+ "so that its body does not get");
+static const u8 DexDescription_Flareon_2[] = _(
+ "excessively hot.\n"
+ "This POKéMON’s body temperature can\n"
+ "rise to a maximum of 1,650 degrees F.");
+
+static const u8 DexDescription_Porygon_1[] = _(
+ "PORYGON is capable of reverting itself\n"
+ "entirely back to program data and\n"
+ "entering cyberspace.");
+static const u8 DexDescription_Porygon_2[] = _(
+ "This POKéMON is copy-protected so it\n"
+ "cannot be duplicated by copying.");
+
+static const u8 DexDescription_Omanyte_1[] = _(
+ "OMANYTE is one of the ancient and long-\n"
+ "since-extinct POKéMON that have been\n"
+ "regenerated from fossils by people.");
+static const u8 DexDescription_Omanyte_2[] = _(
+ "If attacked by an enemy, it withdraws\n"
+ "itself inside its hard shell.");
+
+static const u8 DexDescription_Omastar_1[] = _(
+ "OMASTAR uses its tentacles to capture\n"
+ "its prey. It is believed to have become\n"
+ "extinct because its shell grew too large");
+static const u8 DexDescription_Omastar_2[] = _(
+ "and heavy, causing its movements to\n"
+ "become too slow and ponderous.");
+
+static const u8 DexDescription_Kabuto_1[] = _(
+ "KABUTO is a POKéMON that has been\n"
+ "regenerated from a fossil. However, in\n"
+ "extremely rare cases, living examples");
+static const u8 DexDescription_Kabuto_2[] = _(
+ "have been discovered.\n"
+ "The POKéMON has not changed at all for\n"
+ "300 million years.");
+
+static const u8 DexDescription_Kabutops_1[] = _(
+ "KABUTOPS swam underwater to hunt for\n"
+ "its prey in ancient times.\n"
+ "The POKéMON was apparently evolving");
+static const u8 DexDescription_Kabutops_2[] = _(
+ "from being a water-dweller to living on\n"
+ "land as evident from the beginnings of\n"
+ "change in its gills and legs.");
+
+static const u8 DexDescription_Aerodactyl_1[] = _(
+ "AERODACTYL is a POKéMON from the age\n"
+ "of dinosaurs. It was regenerated from\n"
+ "genetic material extracted from amber.");
+static const u8 DexDescription_Aerodactyl_2[] = _(
+ "It is imagined to have been the king of\n"
+ "the skies in ancient times.");
+
+static const u8 DexDescription_Snorlax_1[] = _(
+ "SNORLAX’s typical day consists of\n"
+ "nothing more than eating and sleeping.\n"
+ "It is such a docile POKéMON that there");
+static const u8 DexDescription_Snorlax_2[] = _(
+ "are children who use its expansive belly\n"
+ "as a place to play.");
+
+static const u8 DexDescription_Articuno_1[] = _(
+ "ARTICUNO is a legendary bird POKéMON\n"
+ "that can control ice.\n"
+ "The flapping of its wings chills the air.");
+static const u8 DexDescription_Articuno_2[] = _(
+ "As a result, it is said that when this\n"
+ "POKéMON flies, snow will fall.");
+
+static const u8 DexDescription_Zapdos_1[] = _(
+ "ZAPDOS is a legendary bird POKéMON that\n"
+ "has the ability to control electricity.\n"
+ "It usually lives in thunderclouds.");
+static const u8 DexDescription_Zapdos_2[] = _(
+ "The POKéMON gains power if it is\n"
+ "stricken by lightning bolts.");
+
+static const u8 DexDescription_Moltres_1[] = _(
+ "MOLTRES is a legendary bird POKéMON\n"
+ "that has the ability to control fire.\n"
+ "If this POKéMON is injured, it is said to");
+static const u8 DexDescription_Moltres_2[] = _(
+ "dip its body in the molten magma of a\n"
+ "volcano to burn and heal itself.");
+
+static const u8 DexDescription_Dratini_1[] = _(
+ "DRATINI continually molts and sloughs\n"
+ "off its old skin.\n"
+ "It does so because the life energy");
+static const u8 DexDescription_Dratini_2[] = _(
+ "within its body steadily builds to reach\n"
+ "uncontrollable levels.");
+
+static const u8 DexDescription_Dragonair_1[] = _(
+ "DRAGONAIR stores an enormous amount\n"
+ "of energy inside its body.\n"
+ "It is said to alter weather conditions");
+static const u8 DexDescription_Dragonair_2[] = _(
+ "in its vicinity by discharging energy\n"
+ "from the crystals on its neck and tail.");
+
+static const u8 DexDescription_Dragonite_1[] = _(
+ "DRAGONITE is capable of circling the\n"
+ "globe in just sixteen hours.\n"
+ "It is a kindhearted POKéMON that leads");
+static const u8 DexDescription_Dragonite_2[] = _(
+ "lost and foundering ships in a storm to\n"
+ "the safety of land.");
+
+static const u8 DexDescription_Mewtwo_1[] = _(
+ "MEWTWO is a POKéMON that was created\n"
+ "by genetic manipulation.\n"
+ "However, even though the scientific");
+static const u8 DexDescription_Mewtwo_2[] = _(
+ "power of humans created this POKéMON’s\n"
+ "body, they failed to endow MEWTWO with\n"
+ "a compassionate heart.");
+
+static const u8 DexDescription_Mew_1[] = _(
+ "MEW is said to possess the genetic\n"
+ "composition of all POKéMON.\n"
+ "It is capable of making itself invisible");
+static const u8 DexDescription_Mew_2[] = _(
+ "at will, so it entirely avoids notice even\n"
+ "if it approaches people.");
+
+static const u8 DexDescription_Chikorita_1[] = _(
+ "In battle, CHIKORITA waves its leaf\n"
+ "around to keep the foe at bay.\n"
+ "However, a sweet fragrance also wafts");
+static const u8 DexDescription_Chikorita_2[] = _(
+ "from the leaf, becalming the battling\n"
+ "POKéMON and creating a cozy, friendly\n"
+ "atmosphere all around.");
+
+static const u8 DexDescription_Bayleef_1[] = _(
+ "BAYLEEF’s neck is ringed by curled-up\n"
+ "leaves. Inside each tubular leaf is a\n"
+ "small shoot of a tree.");
+static const u8 DexDescription_Bayleef_2[] = _(
+ "The fragrance of this shoot makes\n"
+ "people peppy.");
+
+static const u8 DexDescription_Meganium_1[] = _(
+ "The fragrance of MEGANIUM’s flower\n"
+ "soothes and calms emotions.\n"
+ "In battle, this POKéMON gives off more");
+static const u8 DexDescription_Meganium_2[] = _(
+ "of its becalming scent to blunt the\n"
+ "foe’s fighting spirit.");
+
+static const u8 DexDescription_Cyndaquil_1[] = _(
+ "CYNDAQUIL protects itself by flaring up\n"
+ "the flames on its back.\n"
+ "The flames are vigorous if the POKéMON");
+static const u8 DexDescription_Cyndaquil_2[] = _(
+ "is angry. However, if it is tired, the\n"
+ "flames splutter fitfully with incomplete\n"
+ "combustion.");
+
+static const u8 DexDescription_Quilava_1[] = _(
+ "QUILAVA keeps its foes at bay with the\n"
+ "intensity of its flames and gusts of\n"
+ "superheated air.");
+static const u8 DexDescription_Quilava_2[] = _(
+ "This POKéMON applies its outstanding\n"
+ "nimbleness to dodge attacks even while\n"
+ "scorching the foe with flames.");
+
+static const u8 DexDescription_Typhlosion_1[] = _(
+ "TYPHLOSION obscures itself behind a\n"
+ "shimmering heat haze that it creates\n"
+ "using its intensely hot flames.");
+static const u8 DexDescription_Typhlosion_2[] = _(
+ "This POKéMON creates blazing explosive\n"
+ "blasts that burn everything to cinders.");
+
+static const u8 DexDescription_Totodile_1[] = _(
+ "Despite the smallness of its body,\n"
+ "TOTODILE’s jaws are very powerful.\n"
+ "While the POKéMON may think it is just");
+static const u8 DexDescription_Totodile_2[] = _(
+ "playfully nipping, its bite has enough\n"
+ "power to cause serious injury.");
+
+static const u8 DexDescription_Croconaw_1[] = _(
+ "Once CROCONAW has clamped its jaws on\n"
+ "its foe, it will absolutely not let go.\n"
+ "Because the tips of its fangs are");
+static const u8 DexDescription_Croconaw_2[] = _(
+ "forked back like barbed fishhooks, they\n"
+ "become impossible to remove when \n"
+ "they have sunk in.");
+
+static const u8 DexDescription_Feraligatr_1[] = _(
+ "FERALIGATR intimidates its foes by\n"
+ "opening its huge mouth.\n"
+ "In battle, it will kick the ground hard");
+static const u8 DexDescription_Feraligatr_2[] = _(
+ "with its thick and powerful hind legs to\n"
+ "charge at the foe at an incredible\n"
+ "speed.");
+
+static const u8 DexDescription_Sentret_1[] = _(
+ "When SENTRET sleeps, it does so while\n"
+ "another stands guard. The sentry wakes\n"
+ "the others at the first sign of danger.");
+static const u8 DexDescription_Sentret_2[] = _(
+ "When this POKéMON becomes separated\n"
+ "from its pack, it becomes incapable of\n"
+ "sleep due to fear.");
+
+static const u8 DexDescription_Furret_1[] = _(
+ "FURRET has a very slim build.\n"
+ "When under attack, it can slickly squirm\n"
+ "through narrow spaces and get away.");
+static const u8 DexDescription_Furret_2[] = _(
+ "In spite of its short limbs, this\n"
+ "POKéMON is very nimble and fleet.");
+
+static const u8 DexDescription_Hoothoot_1[] = _(
+ "HOOTHOOT has an internal organ that\n"
+ "senses and tracks the earth’s rotation.\n"
+ "Using this special organ, this POKéMON");
+static const u8 DexDescription_Hoothoot_2[] = _(
+ "begins hooting at precisely the same\n"
+ "time every day.");
+
+static const u8 DexDescription_Noctowl_1[] = _(
+ "NOCTOWL never fails at catching prey in\n"
+ "darkness. This POKéMON owes its\n"
+ "success to its superior vision that");
+static const u8 DexDescription_Noctowl_2[] = _(
+ "allows it to see in minimal light, and to\n"
+ "its soft, supple wings that make no\n"
+ "sound in flight.");
+
+static const u8 DexDescription_Ledyba_1[] = _(
+ "LEDYBA secretes an aromatic fluid from\n"
+ "where its legs join its body. This fluid\n"
+ "is used for communicating with others.");
+static const u8 DexDescription_Ledyba_2[] = _(
+ "This POKéMON conveys its feelings to\n"
+ "others by altering the fluid’s scent.");
+
+static const u8 DexDescription_Ledian_1[] = _(
+ "It is said that in lands with clean air,\n"
+ "where the stars fill the sky, there live\n"
+ "LEDIAN in countless numbers.");
+static const u8 DexDescription_Ledian_2[] = _(
+ "There is a good reason for this - the\n"
+ "POKéMON uses the light of the stars\n"
+ "as its energy.");
+
+static const u8 DexDescription_Spinarak_1[] = _(
+ "The web spun by SPINARAK can be\n"
+ "considered its second nervous system.\n"
+ "It is said that this POKéMON can");
+static const u8 DexDescription_Spinarak_2[] = _(
+ "determine what kind of prey is touching\n"
+ "its web just by the tiny vibrations it\n"
+ "feels through the web’s strands.");
+
+static const u8 DexDescription_Ariados_1[] = _(
+ "ARIADOS’s feet are tipped with tiny\n"
+ "hooked claws that enable it to scuttle\n"
+ "on ceilings and vertical walls.");
+static const u8 DexDescription_Ariados_2[] = _(
+ "This POKéMON constricts the foe with\n"
+ "thin and strong silk webbing.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Crobat_1[] = _(
+ "CROBAT sneaks up on its intended prey\n"
+ "using wings that barely make a sound.\n"
+ "This POKéMON rests by hanging on a");
+static const u8 DexDescription_Crobat_2[] = _(
+ "tree branch with its rear legs that\n"
+ "serve as wings.");
+#else
+static const u8 DexDescription_Crobat_1[] = _(
+ "If this POKéMON is flying by fluttering\n"
+ "only a pair of wings on either the\n"
+ "forelegs or hind legs, it’s proof that");
+static const u8 DexDescription_Crobat_2[] = _(
+ "CROBAT has been flying a long distance.\n"
+ "It switches the wings it uses if it is\n"
+ "tired.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Chinchou_1[] = _(
+ "CHINCHOU’s two antennas are filled with\n"
+ "cells that generate strong electricity.\n"
+ "This POKéMON’s cells create so much");
+static const u8 DexDescription_Chinchou_2[] = _(
+ "electrical power, it even makes itself\n"
+ "tingle slightly.");
+#else
+static const u8 DexDescription_Chinchou_1[] = _(
+ "CHINCHOU lets loose positive and\n"
+ "negative electrical charges from its\n"
+ "two antennas to make its prey faint.");
+static const u8 DexDescription_Chinchou_2[] = _(
+ "This POKéMON flashes its electric\n"
+ "lights to exchange signals with others.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Lanturn_1[] = _(
+ "LANTURN is known to emit light.\n"
+ "If you peer down into the dark sea from\n"
+ "a ship at night, you can sometimes see");
+static const u8 DexDescription_Lanturn_2[] = _(
+ "this POKéMON’s light rising from the\n"
+ "depths where it swims. It gives the sea\n"
+ "an appearance of a starlit night.");
+#else
+static const u8 DexDescription_Lanturn_1[] = _(
+ "LANTURN is nicknamed “the deep-sea\n"
+ "star” for its illuminated antenna.\n"
+ "This POKéMON produces light by");
+static const u8 DexDescription_Lanturn_2[] = _(
+ "causing a chemical reaction between\n"
+ "bacteria and its bodily fluids inside\n"
+ "the antenna.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Pichu_1[] = _(
+ "When PICHU plays with others, it may\n"
+ "short out electricity with another\n"
+ "PICHU, creating a shower of sparks.");
+static const u8 DexDescription_Pichu_2[] = _(
+ "In that event, this POKéMON will begin\n"
+ "crying, startled by the flash of sparks.");
+#else
+static const u8 DexDescription_Pichu_1[] = _(
+ "PICHU charges itself with electricity\n"
+ "more easily on days with thunderclouds\n"
+ "or when the air is very dry.");
+static const u8 DexDescription_Pichu_2[] = _(
+ "You can hear the crackling of static\n"
+ "electricity coming off this POKéMON.");
+#endif
+
+static const u8 DexDescription_Cleffa_1[] = _(
+ "On nights with many shooting stars,\n"
+ "CLEFFA can be seen dancing in a ring.\n"
+ "They dance through the night and stop");
+static const u8 DexDescription_Cleffa_2[] = _(
+ "only at the break of day, when these\n"
+ "POKéMON quench their thirst with the\n"
+ "morning dew.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Igglybuff_1[] = _(
+ "IGGLYBUFF has a soft and plushy body\n"
+ "that feels very much like a marshmallow.\n"
+ "From this body wafts a gently sweet");
+static const u8 DexDescription_Igglybuff_2[] = _(
+ "fragrance that soothes and calms the\n"
+ "emotions of its foes.");
+#else
+static const u8 DexDescription_Igglybuff_1[] = _(
+ "IGGLYBUFF’s vocal chords are not\n"
+ "sufficiently developed. It would hurt\n"
+ "its throat if it were to sing too much.");
+static const u8 DexDescription_Igglybuff_2[] = _(
+ "This POKéMON gargles with freshwater\n"
+ "from a clean stream.");
+#endif
+
+static const u8 DexDescription_Togepi_1[] = _(
+ "As its energy, TOGEPI uses the positive\n"
+ "emotions of compassion and pleasure\n"
+ "exuded by people and POKéMON.");
+static const u8 DexDescription_Togepi_2[] = _(
+ "This POKéMON stores up feelings of\n"
+ "happiness inside its shell, then shares\n"
+ "them with others.");
+
+static const u8 DexDescription_Togetic_1[] = _(
+ "TOGETIC is said to be a POKéMON that\n"
+ "brings good fortune. When the POKéMON\n"
+ "spots someone who is pure of heart,");
+static const u8 DexDescription_Togetic_2[] = _(
+ "it is said to appear and share its\n"
+ "happiness with that person.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Natu_1[] = _(
+ "NATU has a highly developed jumping\n"
+ "ability. The POKéMON flaps and leaps\n"
+ "onto tree branches that are taller than");
+static const u8 DexDescription_Natu_2[] = _(
+ "grown-up people to pick at the tree’s\n"
+ "new shoots.");
+#else
+static const u8 DexDescription_Natu_1[] = _(
+ "NATU cannot fly because its wings are\n"
+ "not yet fully grown. If your eyes meet\n"
+ "with this POKéMON’s eyes, it will stare");
+static const u8 DexDescription_Natu_2[] = _(
+ "back intently at you. But if you move\n"
+ "even slightly, it will hop away to safety.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Xatu_1[] = _(
+ "XATU is known to stand motionless while\n"
+ "staring at the sun all day long.\n"
+ "Some people revere it as a mystical");
+static const u8 DexDescription_Xatu_2[] = _(
+ "POKéMON out of their belief that XATU\n"
+ "is in possession of the power to see\n"
+ "into the future.");
+#else
+static const u8 DexDescription_Xatu_1[] = _(
+ "XATU stands rooted and still in one\n"
+ "spot all day long. People believe that\n"
+ "this POKéMON does so out of fear of");
+static const u8 DexDescription_Xatu_2[] = _(
+ "the terrible things it has foreseen in\n"
+ "the future.");
+#endif
+
+static const u8 DexDescription_Mareep_1[] = _(
+ "MAREEP’s fluffy coat of wool rubs\n"
+ "together and builds a static charge.\n"
+ "The more static electricity is charged,");
+static const u8 DexDescription_Mareep_2[] = _(
+ "the more brightly the lightbulb at the\n"
+ "tip of its tail grows.");
+
+static const u8 DexDescription_Flaaffy_1[] = _(
+ "FLAAFFY’s wool quality changes so that\n"
+ "it can generate a high amount of static\n"
+ "electricity with a small amount of wool.");
+static const u8 DexDescription_Flaaffy_2[] = _(
+ "The bare and slick parts of its hide are\n"
+ "shielded against electricity.");
+
+static const u8 DexDescription_Ampharos_1[] = _(
+ "AMPHAROS gives off so much light that\n"
+ "it can be seen even from space.\n"
+ "People in the old days used the light of");
+static const u8 DexDescription_Ampharos_2[] = _(
+ "this POKéMON to send signals back and\n"
+ "forth with others far away.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Bellossom_1[] = _(
+ "A BELLOSSOM grows flowers more\n"
+ "beautifully if it has evolved from a\n"
+ "smelly GLOOM - the stinkier the better.");
+static const u8 DexDescription_Bellossom_2[] = _(
+ "At night, this POKéMON closes its\n"
+ "petals and goes to sleep.");
+#else
+static const u8 DexDescription_Bellossom_1[] = _(
+ "When BELLOSSOM gets exposed to plenty\n"
+ "of sunlight, the leaves ringing its body\n"
+ "begin to spin around.");
+static const u8 DexDescription_Bellossom_2[] = _(
+ "This POKéMON’s dancing is renowned in\n"
+ "the southern lands.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Marill_1[] = _(
+ "When fishing for food at the edge of a\n"
+ "fast-running stream, MARILL wraps its\n"
+ "tail around the trunk of a tree.");
+static const u8 DexDescription_Marill_2[] = _(
+ "This POKéMON’s tail is flexible and\n"
+ "configured to stretch.");
+#else
+static const u8 DexDescription_Marill_1[] = _(
+ "MARILL’s oil-filled tail acts much like\n"
+ "a life preserver. If you see just its\n"
+ "tail bobbing on the water’s surface,");
+static const u8 DexDescription_Marill_2[] = _(
+ "it’s a sure indication that this POKéMON\n"
+ "is diving beneath the water to feed on\n"
+ "aquatic plants.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Azumarill_1[] = _(
+ "AZUMARILL can make balloons out of\n"
+ "air. It makes these air balloons if it\n"
+ "spots a drowning POKéMON.");
+static const u8 DexDescription_Azumarill_2[] = _(
+ "The air balloons enable the POKéMON in\n"
+ "trouble to breathe.");
+#else
+static const u8 DexDescription_Azumarill_1[] = _(
+ "AZUMARILL’s long ears are indispensable\n"
+ "sensors. By focusing its hearing, this\n"
+ "POKéMON can identify what kinds of");
+static const u8 DexDescription_Azumarill_2[] = _(
+ "prey are around, even in rough and\n"
+ "fast-running rivers.");
+#endif
+
+static const u8 DexDescription_Sudowoodo_1[] = _(
+ "SUDOWOODO camouflages itself as a tree\n"
+ "to avoid being attacked by enemies.\n"
+ "However, because the forelegs remain");
+static const u8 DexDescription_Sudowoodo_2[] = _(
+ "green throughout the year, the POKéMON\n"
+ "is easily identified as a fake during\n"
+ "the winter.");
+
+static const u8 DexDescription_Politoed_1[] = _(
+ "The curled hair on POLITOED’s head is\n"
+ "proof of its status as a king. It is said\n"
+ "that the longer and more curled the");
+static const u8 DexDescription_Politoed_2[] = _(
+ "hair, the more respect this POKéMON\n"
+ "earns from its peers.");
+
+static const u8 DexDescription_Hoppip_1[] = _(
+ "This POKéMON drifts and floats with the\n"
+ "wind. If it senses the approach of\n"
+ "strong winds, HOPPIP links its leaves");
+static const u8 DexDescription_Hoppip_2[] = _(
+ "with other HOPPIP to prepare against\n"
+ "being blown away.");
+
+static const u8 DexDescription_Skiploom_1[] = _(
+ "SKIPLOOM’s flower blossoms when the\n"
+ "temperature rises above 64 degrees F.\n"
+ "How much the flower opens depends on");
+static const u8 DexDescription_Skiploom_2[] = _(
+ "the temperature. For that reason, this\n"
+ "POKéMON is sometimes used as a\n"
+ "thermometer.");
+
+static const u8 DexDescription_Jumpluff_1[] = _(
+ "JUMPLUFF rides warm southern winds to\n"
+ "cross the sea and fly to foreign lands.\n"
+ "The POKéMON descends to the ground");
+static const u8 DexDescription_Jumpluff_2[] = _(
+ "when it encounters cold air while it is\n"
+ "floating.");
+
+static const u8 DexDescription_Aipom_1[] = _(
+ "AIPOM’s tail ends in a hand-like\n"
+ "appendage that can be cleverly\n"
+ "manipulated.");
+static const u8 DexDescription_Aipom_2[] = _(
+ "However, because the POKéMON uses its\n"
+ "tail so much, its real hands have become\n"
+ "rather clumsy.");
+
+static const u8 DexDescription_Sunkern_1[] = _(
+ "SUNKERN tries to move as little as it\n"
+ "possibly can. It does so because it\n"
+ "tries to conserve all the nutrients it");
+static const u8 DexDescription_Sunkern_2[] = _(
+ "has stored in its body for its\n"
+ "evolution. It will not eat a thing, \n"
+ "subsisting only on morning dew.");
+
+static const u8 DexDescription_Sunflora_1[] = _(
+ "SUNFLORA converts solar energy into\n"
+ "nutrition. It moves around actively in\n"
+ "the daytime when it is warm.");
+static const u8 DexDescription_Sunflora_2[] = _(
+ "It stops moving as soon as the sun goes\n"
+ "down for the night.");
+
+static const u8 DexDescription_Yanma_1[] = _(
+ "YANMA is capable of seeing 360 degrees\n"
+ "without having to move its eyes.\n"
+ "It is a great flier that is adept at");
+static const u8 DexDescription_Yanma_2[] = _(
+ "making sudden stops and turning midair.\n"
+ "This POKéMON uses its flying ability to\n"
+ "quickly chase down targeted prey.");
+
+static const u8 DexDescription_Wooper_1[] = _(
+ "WOOPER usually lives in water.\n"
+ "However, it occasionally comes out onto\n"
+ "land in search of food.");
+static const u8 DexDescription_Wooper_2[] = _(
+ "On land, it coats its body with a gooey,\n"
+ "toxic film.");
+
+static const u8 DexDescription_Quagsire_1[] = _(
+ "QUAGSIRE hunts for food by leaving\n"
+ "its mouth wide open in water and waiting\n"
+ "for its prey to blunder in unaware.");
+static const u8 DexDescription_Quagsire_2[] = _(
+ "Because the POKéMON does not move,\n"
+ "it does not get very hungry.");
+
+static const u8 DexDescription_Espeon_1[] = _(
+ "ESPEON is extremely loyal to any\n"
+ "TRAINER it considers to be worthy.\n"
+ "It is said that this POKéMON developed");
+static const u8 DexDescription_Espeon_2[] = _(
+ "its precognitive powers to protect its\n"
+ "TRAINER from harm.");
+
+static const u8 DexDescription_Umbreon_1[] = _(
+ "UMBREON evolved as a result of exposure\n"
+ "to the moon’s waves.\n"
+ "It hides silently in darkness and waits");
+static const u8 DexDescription_Umbreon_2[] = _(
+ "for its foes to make a move.\n"
+ "The rings on its body glow when it leaps\n"
+ "to attack.");
+
+static const u8 DexDescription_Murkrow_1[] = _(
+ "MURKROW was feared and loathed as the\n"
+ "alleged bearer of ill fortune.\n"
+ "This POKéMON shows strong interest in");
+static const u8 DexDescription_Murkrow_2[] = _(
+ "anything that sparkles or glitters.\n"
+ "It will even try to steal rings from\n"
+ "women.");
+
+static const u8 DexDescription_Slowking_1[] = _(
+ "SLOWKING undertakes research every\n"
+ "day in an effort to solve the mysteries\n"
+ "of the world.");
+static const u8 DexDescription_Slowking_2[] = _(
+ "However, this POKéMON apparently\n"
+ "forgets everything it has learned if\n"
+ "the SHELLDER on its head comes off.");
+
+static const u8 DexDescription_Misdreavus_1[] = _(
+ "MISDREAVUS frightens people with a\n"
+ "creepy, sobbing cry. The POKéMON\n"
+ "apparently uses its red spheres to");
+static const u8 DexDescription_Misdreavus_2[] = _(
+ "absorb the fearful feelings of foes and\n"
+ "turn them into nutrition.");
+
+static const u8 DexDescription_Unown_1[] = _(
+ "This POKéMON is shaped like ancient\n"
+ "writing. It is a mystery as to which\n"
+ "came first, the ancient writings or the");
+static const u8 DexDescription_Unown_2[] = _(
+ "various UNOWN. Research into this\n"
+ "topic is ongoing but nothing is known.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Wobbuffet_1[] = _(
+ "WOBBUFFET does nothing but endure\n"
+ "attacks - it won’t attack on its own.\n"
+ "However, it won’t endure an attack on");
+static const u8 DexDescription_Wobbuffet_2[] = _(
+ "its tail. When that happens, the\n"
+ "POKéMON will try to take the foe with it\n"
+ "using DESTINY BOND.");
+#else
+static const u8 DexDescription_Wobbuffet_1[] = _(
+ "If two or more WOBBUFFET meet, they will\n"
+ "turn competitive and try to outdo each\n"
+ "other’s endurance.");
+static const u8 DexDescription_Wobbuffet_2[] = _(
+ "However, they may try to see which one\n"
+ "can endure the longest without food.\n"
+ "TRAINERS need to beware of this habit.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Girafarig_1[] = _(
+ "GIRAFARIG’s rear head contains a tiny\n"
+ "brain that is too small for thinking.\n"
+ "However, the rear head doesn’t need to");
+static const u8 DexDescription_Girafarig_2[] = _(
+ "sleep, so it can keep watch over its\n"
+ "surroundings 24 hours a day.");
+#else
+static const u8 DexDescription_Girafarig_1[] = _(
+ "GIRAFARIG’s rear head also has a brain,\n"
+ "but it is small. The rear head attacks in\n"
+ "response to smells and sounds.");
+static const u8 DexDescription_Girafarig_2[] = _(
+ "Approaching this POKéMON from behind\n"
+ "can cause the rear head to suddenly\n"
+ "lash out and bite.");
+#endif
+
+static const u8 DexDescription_Pineco_1[] = _(
+ "PINECO hangs from a tree branch and\n"
+ "patiently waits for prey to come along.\n"
+ "If the POKéMON is disturbed while");
+static const u8 DexDescription_Pineco_2[] = _(
+ "eating by someone shaking its tree, it\n"
+ "drops down to the ground and explodes\n"
+ "with no warning.");
+
+static const u8 DexDescription_Forretress_1[] = _(
+ "FORRETRESS conceals itself inside its\n"
+ "hardened steel shell. The shell is opened\n"
+ "when the POKéMON is catching prey,");
+static const u8 DexDescription_Forretress_2[] = _(
+ "but it does so at such a quick pace\n"
+ "that the shell’s inside cannot be seen.");
+
+static const u8 DexDescription_Dunsparce_1[] = _(
+ "DUNSPARCE has a drill for its tail.\n"
+ "It uses this tail to burrow into the\n"
+ "ground backwards.");
+static const u8 DexDescription_Dunsparce_2[] = _(
+ "This POKéMON is known to make its nest\n"
+ "in complex shapes deep under the\n"
+ "ground.");
+
+static const u8 DexDescription_Gligar_1[] = _(
+ "GLIGAR glides through the air without\n"
+ "a sound as if it were sliding.\n"
+ "This POKéMON hangs on to the face of");
+static const u8 DexDescription_Gligar_2[] = _(
+ "its foe using its clawed hind legs and\n"
+ "the large pincers on its forelegs, then\n"
+ "injects the prey with its poison barb.");
+
+static const u8 DexDescription_Steelix_1[] = _(
+ "STEELIX lives even further underground\n"
+ "than ONIX. This POKéMON is known to dig\n"
+ "towards the earth’s core.");
+static const u8 DexDescription_Steelix_2[] = _(
+ "There are records of this POKéMON\n"
+ "reaching a depth of over six-tenths\n"
+ "of a mile underground.");
+
+static const u8 DexDescription_Snubbull_1[] = _(
+ "By baring its fangs and making a scary\n"
+ "face, SNUBBULL sends smaller POKéMON\n"
+ "scurrying away in terror.");
+static const u8 DexDescription_Snubbull_2[] = _(
+ "However, this POKéMON seems a little\n"
+ "sad at making its foes flee.");
+
+static const u8 DexDescription_Granbull_1[] = _(
+ "GRANBULL has a particularly well-\n"
+ "developed lower jaw. The enormous fangs\n"
+ "are heavy, causing the POKéMON to tip");
+static const u8 DexDescription_Granbull_2[] = _(
+ "its head back for balance.\n"
+ "Unless it is startled, it will not try to\n"
+ "bite indiscriminately.");
+
+static const u8 DexDescription_Qwilfish_1[] = _(
+ "QWILFISH sucks in water, inflating\n"
+ "itself. This POKéMON uses the pressure\n"
+ "of the water it swallowed to shoot");
+static const u8 DexDescription_Qwilfish_2[] = _(
+ "toxic quills all at once from all over\n"
+ "its body. It finds swimming somewhat\n"
+ "challenging.");
+
+static const u8 DexDescription_Scizor_1[] = _(
+ "SCIZOR has a body with the hardness of\n"
+ "steel. It is not easily fazed by ordinary\n"
+ "sorts of attacks.");
+static const u8 DexDescription_Scizor_2[] = _(
+ "This POKéMON flaps its wings to\n"
+ "regulate its body temperature.");
+
+static const u8 DexDescription_Shuckle_1[] = _(
+ "SHUCKLE quietly hides itself under\n"
+ "rocks, keeping its body concealed\n"
+ "inside its hard shell while eating");
+static const u8 DexDescription_Shuckle_2[] = _(
+ "berries it has stored away.\n"
+ "The berries mix with its body fluids to\n"
+ "become a juice.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Heracross_1[] = _(
+ "HERACROSS has sharp claws on its feet.\n"
+ "These are planted firmly into the\n"
+ "ground or the bark of a tree, giving the");
+static const u8 DexDescription_Heracross_2[] = _(
+ "POKéMON a secure and solid footing\n"
+ "to forcefully fling away foes with\n"
+ "its proud horn.");
+#else
+static const u8 DexDescription_Heracross_1[] = _(
+ "HERACROSS charges in a straight line at\n"
+ "its foe, slips beneath the foe’s grasp,\n"
+ "and then scoops up and hurls the");
+static const u8 DexDescription_Heracross_2[] = _(
+ "opponent with its mighty horn.\n"
+ "This POKéMON even has enough power\n"
+ "to topple a massive tree.");
+#endif
+
+static const u8 DexDescription_Sneasel_1[] = _(
+ "SNEASEL scales trees by punching its\n"
+ "hooked claws into the bark.\n"
+ "This POKéMON seeks out unguarded");
+static const u8 DexDescription_Sneasel_2[] = _(
+ "nests and steals eggs for food while\n"
+ "the parents are away.");
+
+static const u8 DexDescription_Teddiursa_1[] = _(
+ "This POKéMON likes to lick its palms that\n"
+ "are sweetened by being soaked in honey.\n"
+ "TEDDIURSA concocts its own honey by");
+static const u8 DexDescription_Teddiursa_2[] = _(
+ "blending fruits and pollen collected by\n"
+ "BEEDRILL.");
+
+static const u8 DexDescription_Ursaring_1[] = _(
+ "In the forests inhabited by URSARING,\n"
+ "it is said that there are many streams\n"
+ "and towering trees where they");
+static const u8 DexDescription_Ursaring_2[] = _(
+ "gather food. This POKéMON walks\n"
+ "through its forest gathering food\n"
+ "every day.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Slugma_1[] = _(
+ "SLUGMA does not have any blood in its\n"
+ "body. Instead, intensely hot magma\n"
+ "circulates throughout this POKéMON’s");
+static const u8 DexDescription_Slugma_2[] = _(
+ "body, carrying essential nutrients and\n"
+ "oxygen to its organs.");
+#else
+static const u8 DexDescription_Slugma_1[] = _(
+ "Molten magma courses throughout\n"
+ "SLUGMA’s circulatory system.\n"
+ "If this POKéMON is chilled, the magma");
+static const u8 DexDescription_Slugma_2[] = _(
+ "cools and hardens. Its body turns\n"
+ "brittle and chunks fall off, reducing\n"
+ "its size.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Magcargo_1[] = _(
+ "MAGCARGO’s body temperature is\n"
+ "approximately 18,000 degrees F.\n"
+ "Water is vaporized on contact.");
+static const u8 DexDescription_Magcargo_2[] = _(
+ "If this POKéMON is caught in the rain,\n"
+ "the raindrops instantly turn into\n"
+ "steam, cloaking the area in a thick fog.");
+#else
+static const u8 DexDescription_Magcargo_1[] = _(
+ "MAGCARGO’s shell is actually its skin\n"
+ "that hardened as a result of cooling.\n"
+ "Its shell is very brittle and fragile -");
+static const u8 DexDescription_Magcargo_2[] = _(
+ "just touching it causes it to crumble\n"
+ "apart. This POKéMON returns to its\n"
+ "original size by dipping itself in magma.");
+#endif
+
+static const u8 DexDescription_Swinub_1[] = _(
+ "SWINUB roots for food by rubbing its\n"
+ "snout against the ground. Its favorite\n"
+ "food is a mushroom that grows under");
+static const u8 DexDescription_Swinub_2[] = _(
+ "the cover of dead grass.\n"
+ "This POKéMON occasionally roots out\n"
+ "hot springs.");
+
+static const u8 DexDescription_Piloswine_1[] = _(
+ "PILOSWINE is covered by a thick coat\n"
+ "of long hair that enables it to endure\n"
+ "the freezing cold.");
+static const u8 DexDescription_Piloswine_2[] = _(
+ "This POKéMON uses its tusks to dig up\n"
+ "food that has been buried under ice.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Corsola_1[] = _(
+ "Clusters of CORSOLA congregate in warm\n"
+ "seas where they serve as ideal hiding\n"
+ "places for smaller POKéMON.");
+static const u8 DexDescription_Corsola_2[] = _(
+ "When the water temperature falls, this\n"
+ "POKéMON migrates to the southern seas.");
+#else
+static const u8 DexDescription_Corsola_1[] = _(
+ "CORSOLA’s branches glitter very\n"
+ "beautifully in seven colors when they\n"
+ "catch sunlight.");
+static const u8 DexDescription_Corsola_2[] = _(
+ "If any branch breaks off, this POKéMON\n"
+ "grows it back in just one night.");
+#endif
+
+static const u8 DexDescription_Remoraid_1[] = _(
+ "REMORAID sucks in water, then expels it\n"
+ "at high velocity using its abdominal\n"
+ "muscles to shoot down flying prey.");
+static const u8 DexDescription_Remoraid_2[] = _(
+ "When evolution draws near, this POKéMON\n"
+ "travels downstream from rivers.");
+
+static const u8 DexDescription_Octillery_1[] = _(
+ "OCTILLERY grabs onto its foe using\n"
+ "its tentacles. This POKéMON tries to\n"
+ "immobilize it before delivering the");
+static const u8 DexDescription_Octillery_2[] = _(
+ "finishing blow.\n"
+ "If the foe turns out to be too strong,\n"
+ "OCTILLERY spews ink to escape.");
+
+static const u8 DexDescription_Delibird_1[] = _(
+ "DELIBIRD carries its food bundled up\n"
+ "in its tail. There once was a famous\n"
+ "explorer who managed to reach the peak");
+static const u8 DexDescription_Delibird_2[] = _(
+ "of Mt. Everest thanks to one of these\n"
+ "POKéMON sharing its food.");
+
+static const u8 DexDescription_Mantine_1[] = _(
+ "On sunny days, schools of MANTINE can\n"
+ "be seen elegantly leaping over the\n"
+ "sea’s waves.");
+static const u8 DexDescription_Mantine_2[] = _(
+ "This POKéMON is not bothered by the\n"
+ "REMORAID that hitches rides.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Skarmory_1[] = _(
+ "SKARMORY’s steel wings become tattered\n"
+ "and bashed in from repeated battles.\n"
+ "Once a year, the battered wings grow");
+static const u8 DexDescription_Skarmory_2[] = _(
+ "back completely, restoring the cutting\n"
+ "edges to their pristine state.");
+#else
+static const u8 DexDescription_Skarmory_1[] = _(
+ "SKARMORY is entirely encased in hard,\n"
+ "protective armor. This POKéMON flies at\n"
+ "close to 190 mph.");
+static const u8 DexDescription_Skarmory_2[] = _(
+ "It slashes foes with its wings that\n"
+ "possess swordlike cutting edges.");
+#endif
+
+static const u8 DexDescription_Houndour_1[] = _(
+ "HOUNDOUR hunt as a coordinated pack.\n"
+ "They communicate with each other using\n"
+ "a variety of cries to corner their prey.");
+static const u8 DexDescription_Houndour_2[] = _(
+ "This POKéMON’s remarkable teamwork is\n"
+ "unparalleled.");
+
+static const u8 DexDescription_Houndoom_1[] = _(
+ "In a HOUNDOOM pack, the one with its\n"
+ "horns raked sharply towards the back\n"
+ "serves a leadership role.");
+static const u8 DexDescription_Houndoom_2[] = _(
+ "These POKéMON choose their leader by\n"
+ "fighting amongst themselves.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Kingdra_1[] = _(
+ "KINGDRA sleeps on the seafloor where\n"
+ "it is otherwise devoid of life.\n"
+ "When a storm arrives, the POKéMON is");
+static const u8 DexDescription_Kingdra_2[] = _(
+ "said to awaken and wander about in\n"
+ "search of prey.");
+#else
+static const u8 DexDescription_Kingdra_1[] = _(
+ "KINGDRA lives at extreme ocean depths\n"
+ "that are otherwise uninhabited.\n"
+ "It has long been believed that the");
+static const u8 DexDescription_Kingdra_2[] = _(
+ "yawning of this POKéMON creates\n"
+ "spiraling ocean currents.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Phanpy_1[] = _(
+ "PHANPY uses its long nose to shower\n"
+ "itself. When others gather around, they\n"
+ "thoroughly douse each other with water.");
+static const u8 DexDescription_Phanpy_2[] = _(
+ "These POKéMON can be seen drying their\n"
+ "soaking-wet bodies at the edge of\n"
+ "water.");
+#else
+static const u8 DexDescription_Phanpy_1[] = _(
+ "For its nest, PHANPY digs a vertical pit \n"
+ "in the ground at the edge of a river.\n"
+ "It marks the area around its nest with");
+static const u8 DexDescription_Phanpy_2[] = _(
+ "its trunk to let the others know that\n"
+ "the area has been claimed.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Donphan_1[] = _(
+ "If DONPHAN were to tackle with its hard\n"
+ "body, even a house could be destroyed.\n"
+ "Using its massive strength, the");
+static const u8 DexDescription_Donphan_2[] = _(
+ "POKéMON helps clear rock and mud slides\n"
+ "that block mountain trails.");
+#else
+static const u8 DexDescription_Donphan_1[] = _(
+ "DONPHAN’s favorite attack is curling\n"
+ "its body into a ball, then charging at\n"
+ "its foe while rolling at high speed.");
+static const u8 DexDescription_Donphan_2[] = _(
+ "Once it starts rolling, this POKéMON\n"
+ "can’t stop very easily.");
+#endif
+
+static const u8 DexDescription_Porygon2_1[] = _(
+ "PORYGON2 was created by humans using\n"
+ "the power of science. The man-made\n"
+ "POKéMON has been endowed with");
+static const u8 DexDescription_Porygon2_2[] = _(
+ "artificial intelligence that enables it\n"
+ "to learn new gestures and emotions\n"
+ "on its own.");
+
+static const u8 DexDescription_Stantler_1[] = _(
+ "STANTLER’s magnificent antlers were\n"
+ "traded at high prices as works of art.\n"
+ "As a result, this POKéMON was hunted");
+static const u8 DexDescription_Stantler_2[] = _(
+ "close to extinction by those who were\n"
+ "after the priceless antlers.");
+
+static const u8 DexDescription_Smeargle_1[] = _(
+ "SMEARGLE marks the boundaries of its\n"
+ "territory using a body fluid that leaks\n"
+ "out from the tip of its tail.");
+static const u8 DexDescription_Smeargle_2[] = _(
+ "Over 5,000 different marks left by this\n"
+ "POKéMON have been found.");
+
+static const u8 DexDescription_Tyrogue_1[] = _(
+ "TYROGUE becomes stressed out if it\n"
+ "does not get to train every day.\n"
+ "When raising this POKéMON, the TRAINER");
+static const u8 DexDescription_Tyrogue_2[] = _(
+ "must establish and uphold various\n"
+ "training methods.");
+
+static const u8 DexDescription_Hitmontop_1[] = _(
+ "HITMONTOP spins on its head at high\n"
+ "speed, all the while delivering kicks.\n"
+ "This technique is a remarkable mix of");
+static const u8 DexDescription_Hitmontop_2[] = _(
+ "both offense and defense at the same\n"
+ "time. The POKéMON travels faster\n"
+ "spinning than it does walking.");
+
+static const u8 DexDescription_Smoochum_1[] = _(
+ "SMOOCHUM actively runs about, but\n"
+ "also falls quite often.\n"
+ "Whenever the chance arrives, it will");
+static const u8 DexDescription_Smoochum_2[] = _(
+ "look for its reflection to make sure its\n"
+ "face hasn’t become dirty.");
+
+static const u8 DexDescription_Elekid_1[] = _(
+ "ELEKID stores electricity in its body.\n"
+ "If it touches metal and accidentally\n"
+ "discharges all its built-up electricity,");
+static const u8 DexDescription_Elekid_2[] = _(
+ "this POKéMON begins swinging its arms\n"
+ "in circles to recharge itself.");
+
+static const u8 DexDescription_Magby_1[] = _(
+ "MAGBY’s state of health is determined\n"
+ "by observing the fire it breathes.\n"
+ "If the POKéMON is spouting yellow");
+static const u8 DexDescription_Magby_2[] = _(
+ "flames from its mouth, it is in good\n"
+ "health. When it is fatigued, black smoke\n"
+ "will be mixed in with the flames.");
+
+static const u8 DexDescription_Miltank_1[] = _(
+ "MILTANK gives over five gallons of milk\n"
+ "on a daily basis. Its sweet milk is\n"
+ "enjoyed by children and grown-ups alike.");
+static const u8 DexDescription_Miltank_2[] = _(
+ "People who can’t drink milk turn it into\n"
+ "yogurt and eat it instead.");
+
+static const u8 DexDescription_Blissey_1[] = _(
+ "BLISSEY senses sadness with its fluffy\n"
+ "coat of fur. If it does so, this POKéMON\n"
+ "will rush over to the sad person,");
+static const u8 DexDescription_Blissey_2[] = _(
+ "however far they may be, to share an\n"
+ "egg of happiness that brings a smile\n"
+ "to any face.");
+
+static const u8 DexDescription_Raikou_1[] = _(
+ "RAIKOU embodies the speed of lightning.\n"
+ "The roars of this POKéMON send shock\n"
+ "waves shuddering through the air and");
+static const u8 DexDescription_Raikou_2[] = _(
+ "shake the ground as if lightning bolts\n"
+ "had come crashing down.");
+
+static const u8 DexDescription_Entei_1[] = _(
+ "ENTEI embodies the passion of magma.\n"
+ "This POKéMON is thought to have been\n"
+ "born in the eruption of a volcano.");
+static const u8 DexDescription_Entei_2[] = _(
+ "It sends up massive bursts of fire that\n"
+ "utterly consume all that they touch.");
+
+static const u8 DexDescription_Suicune_1[] = _(
+ "SUICUNE embodies the compassion of\n"
+ "a pure spring of water. It runs across\n"
+ "the land with gracefulness.");
+static const u8 DexDescription_Suicune_2[] = _(
+ "This POKéMON has the power to purify\n"
+ "dirty water.");
+
+static const u8 DexDescription_Larvitar_1[] = _(
+ "LARVITAR is born deep under the ground.\n"
+ "To come up to the surface, this POKéMON\n"
+ "must eat its way through the soil above.");
+static const u8 DexDescription_Larvitar_2[] = _(
+ "Until it does so, LARVITAR cannot see\n"
+ "its parent’s face.");
+
+static const u8 DexDescription_Pupitar_1[] = _(
+ "PUPITAR creates a gas inside its body\n"
+ "that it compresses and forcefully\n"
+ "ejects to propel itself like a jet.");
+static const u8 DexDescription_Pupitar_2[] = _(
+ "The body is very durable - it avoids\n"
+ "damage even if it hits solid steel.");
+
+static const u8 DexDescription_Tyranitar_1[] = _(
+ "TYRANITAR is so overwhelmingly\n"
+ "powerful, it can bring down a whole\n"
+ "mountain to make its nest.");
+static const u8 DexDescription_Tyranitar_2[] = _(
+ "This POKéMON wanders about in\n"
+ "mountains seeking new opponents to\n"
+ "fight.");
+
+static const u8 DexDescription_Lugia_1[] = _(
+ "LUGIA’s wings pack devastating power -\n"
+ "a light fluttering of its wings can blow\n"
+ "apart regular houses.");
+static const u8 DexDescription_Lugia_2[] = _(
+ "As a result, this POKéMON chooses to\n"
+ "live out of sight deep under the sea.");
+
+static const u8 DexDescription_HoOh_1[] = _(
+ "HO-OH’s feathers glow in seven colors\n"
+ "depending on the angle at which they\n"
+ "are struck by light.");
+static const u8 DexDescription_HoOh_2[] = _(
+ "These feathers are said to bring\n"
+ "happiness to the bearers. This POKéMON\n"
+ "is said to live at the foot of a rainbow.");
+
+static const u8 DexDescription_Celebi_1[] = _(
+ "This POKéMON came from the future by\n"
+ "crossing over time.\n"
+ "It is thought that so long as CELEBI");
+static const u8 DexDescription_Celebi_2[] = _(
+ "appears, a bright and shining future\n"
+ "awaits us.");
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Treecko_1[] = _(
+ "TREECKO is cool, calm, and collected -\n"
+ "it never panics under any situation.\n"
+ "If a bigger foe were to glare at this");
+static const u8 DexDescription_Treecko_2[] = _(
+ "POKéMON, it would glare right back\n"
+ "without conceding an inch of ground.");
+#else
+static const u8 DexDescription_Treecko_1[] = _(
+ "TREECKO has small hooks on the bottom\n"
+ "of its feet that enable it to scale\n"
+ "vertical walls.");
+static const u8 DexDescription_Treecko_2[] = _(
+ "This POKéMON attacks by slamming foes\n"
+ "with its thick tail.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Grovyle_1[] = _(
+ "This POKéMON adeptly flies from branch\n"
+ "to branch in trees.\n"
+ "In a forest, no POKéMON can ever hope");
+static const u8 DexDescription_Grovyle_2[] = _(
+ "to catch a fleeing GROVYLE however\n"
+ "fast they may be.");
+#else
+static const u8 DexDescription_Grovyle_1[] = _(
+ "The leaves growing out of GROVYLE’s\n"
+ "body are convenient for camouflaging\n"
+ "it from enemies in the forest.");
+static const u8 DexDescription_Grovyle_2[] = _(
+ "This POKéMON is a master at climbing\n"
+ "trees in jungles.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Sceptile_1[] = _(
+ "SCEPTILE has seeds growing on its back.\n"
+ "They are said to be bursting with\n"
+ "nutrients that revitalize trees.");
+static const u8 DexDescription_Sceptile_2[] = _(
+ "This POKéMON raises the trees in a\n"
+ "forest with loving care.");
+#else
+static const u8 DexDescription_Sceptile_1[] = _(
+ "The leaves growing on SCEPTILE’s body\n"
+ "are very sharp edged. This POKéMON is\n"
+ "very agile - it leaps all over the");
+static const u8 DexDescription_Sceptile_2[] = _(
+ "branches of trees and jumps on its foe\n"
+ "from above or behind.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Torchic_1[] = _(
+ "TORCHIC has a place inside its body\n"
+ "where it keeps its flame. Give it a hug -\n"
+ "it will be glowing with warmth.");
+static const u8 DexDescription_Torchic_2[] = _(
+ "This POKéMON is covered all over by a\n"
+ "fluffy coat of down.");
+#else
+static const u8 DexDescription_Torchic_1[] = _(
+ "TORCHIC sticks with its TRAINER,\n"
+ "following behind with unsteady\n"
+ "steps.");
+static const u8 DexDescription_Torchic_2[] = _(
+ "This POKéMON breathes fire of over\n"
+ "1,800 degrees F, including fireballs\n"
+ "that leave the foe scorched black.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Combusken_1[] = _(
+ "COMBUSKEN battles with the intensely\n"
+ "hot flames it spews from its beak and\n"
+ "with outstandingly destructive kicks.");
+static const u8 DexDescription_Combusken_2[] = _(
+ "This POKéMON’s cry is very loud and\n"
+ "distracting.");
+#else
+static const u8 DexDescription_Combusken_1[] = _(
+ "COMBUSKEN toughens up its legs and\n"
+ "thighs by running through fields and\n"
+ "mountains.");
+static const u8 DexDescription_Combusken_2[] = _(
+ "This POKéMON’s legs possess both speed\n"
+ "and power, enabling it to dole out ten\n"
+ "kicks in one second.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Blaziken_1[] = _(
+ "BLAZIKEN has incredibly strong legs -\n"
+ "it can easily clear a 30-story building\n"
+ "in one leap.");
+static const u8 DexDescription_Blaziken_2[] = _(
+ "This POKéMON’s blazing punches leave\n"
+ "its foes scorched and blackened.");
+#else
+static const u8 DexDescription_Blaziken_1[] = _(
+ "In battle, BLAZIKEN blows out intense\n"
+ "flames from its wrists and attacks foes\n"
+ "courageously.");
+static const u8 DexDescription_Blaziken_2[] = _(
+ "The stronger the foe, the more\n"
+ "intensely this POKéMON’s wrists burn.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Mudkip_1[] = _(
+ "In water, MUDKIP breathes using the\n"
+ "gills on its cheeks.\n"
+ "If it is faced with a tight situation in");
+static const u8 DexDescription_Mudkip_2[] = _(
+ "battle, this POKéMON will unleash its\n"
+ "amazing power - it can crush rocks\n"
+ "bigger than itself.");
+#else
+static const u8 DexDescription_Mudkip_1[] = _(
+ "The fin on MUDKIP’s head acts as highly\n"
+ "sensitive radar. Using this fin to sense\n"
+ "movements of water and air, this");
+static const u8 DexDescription_Mudkip_2[] = _(
+ "POKéMON can determine what is taking\n"
+ "place around it without using its eyes.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Marshtomp_1[] = _(
+ "MARSHTOMP is much faster at traveling\n"
+ "through mud than it is at swimming.\n"
+ "This POKéMON’s hindquarters exhibit");
+static const u8 DexDescription_Marshtomp_2[] = _(
+ "obvious development, giving it the\n"
+ "ability to walk on just its hind legs.");
+#else
+static const u8 DexDescription_Marshtomp_1[] = _(
+ "The surface of MARSHTOMP’s body is\n"
+ "enveloped by a thin, sticky film that\n"
+ "enables it to live on land.");
+static const u8 DexDescription_Marshtomp_2[] = _(
+ "This POKéMON plays in mud on beaches\n"
+ "when the ocean tide is low.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Swampert_1[] = _(
+ "SWAMPERT predicts storms by sensing\n"
+ "subtle differences in the sounds of\n"
+ "waves and tidal winds with its fins.");
+static const u8 DexDescription_Swampert_2[] = _(
+ "If a storm is approaching, it piles up\n"
+ "boulders to protect itself.");
+#else
+static const u8 DexDescription_Swampert_1[] = _(
+ "SWAMPERT is very strong. It has enough\n"
+ "power to easily drag a boulder weighing\n"
+ "more than a ton.");
+static const u8 DexDescription_Swampert_2[] = _(
+ "This POKéMON also has powerful vision\n"
+ "that lets it see even in murky water.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Poochyena_1[] = _(
+ "POOCHYENA is an omnivore - it will eat\n"
+ "anything. A distinguishing feature is\n"
+ "how large its fangs are compared to");
+static const u8 DexDescription_Poochyena_2[] = _(
+ "its body. This POKéMON tries to\n"
+ "intimidate its foes by making the hair\n"
+ "on its tail bristle out.");
+#else
+static const u8 DexDescription_Poochyena_1[] = _(
+ "At first sight, POOCHYENA takes a bite\n"
+ "at anything that moves.\n"
+ "This POKéMON chases after prey until");
+static const u8 DexDescription_Poochyena_2[] = _(
+ "the victim becomes exhausted.\n"
+ "However, it may turn tail if the prey\n"
+ "strikes back.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Mightyena_1[] = _(
+ "MIGHTYENA travel and act as a pack\n"
+ "in the wild. The memory of its life in the\n"
+ "wild compels the POKéMON to obey only");
+static const u8 DexDescription_Mightyena_2[] = _(
+ "those TRAINERS that it recognizes to\n"
+ "possess superior skill.");
+#else
+static const u8 DexDescription_Mightyena_1[] = _(
+ "MIGHTYENA gives obvious signals when\n"
+ "it is preparing to attack. It starts to\n"
+ "growl deeply and then flattens its body.");
+static const u8 DexDescription_Mightyena_2[] = _(
+ "This POKéMON will bite savagely with its\n"
+ "sharply pointed fangs.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Zigzagoon_1[] = _(
+ "The hair on ZIGZAGOON’s back is \n"
+ "bristly. It rubs the hard back hair\n"
+ "against trees to leave its territorial");
+static const u8 DexDescription_Zigzagoon_2[] = _(
+ "markings.\n"
+ "This POKéMON may play dead to fool foes\n"
+ "in battle.");
+#else
+static const u8 DexDescription_Zigzagoon_1[] = _(
+ "ZIGZAGOON restlessly wanders\n"
+ "everywhere at all times. This POKéMON\n"
+ "does so because it is very curious.");
+static const u8 DexDescription_Zigzagoon_2[] = _(
+ "It becomes interested in anything\n"
+ "that it happens to see.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Linoone_1[] = _(
+ "When hunting, LINOONE will make a\n"
+ "beeline straight for the prey at a full\n"
+ "run. While this POKéMON is capable of");
+static const u8 DexDescription_Linoone_2[] = _(
+ "topping 60 mph, it has to come to a\n"
+ "screeching halt before it can turn.");
+#else
+static const u8 DexDescription_Linoone_1[] = _(
+ "LINOONE always runs full speed and only\n"
+ "in straight lines. If facing an obstacle,\n"
+ "it makes a right-angle turn to evade it.");
+static const u8 DexDescription_Linoone_2[] = _(
+ "This POKéMON is very challenged by\n"
+ "gently curving roads.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Wurmple_1[] = _(
+ "WURMPLE is targeted by SWELLOW as\n"
+ "prey. This POKéMON will try to resist by\n"
+ "pointing the spikes on its rear at the");
+static const u8 DexDescription_Wurmple_2[] = _(
+ "attacking predator.\n"
+ "It will weaken the foe by leaking poison\n"
+ "from the spikes.");
+#else
+static const u8 DexDescription_Wurmple_1[] = _(
+ "Using the spikes on its rear end, \n"
+ "WURMPLE peels the bark off trees and\n"
+ "feeds on the sap that oozes out.");
+static const u8 DexDescription_Wurmple_2[] = _(
+ "This POKéMON’s feet are tipped with\n"
+ "suction pads that allow it to cling to\n"
+ "glass without slipping.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Silcoon_1[] = _(
+ "SILCOON was thought to endure hunger\n"
+ "and not consume anything before its\n"
+ "evolution. However, it is now thought");
+static const u8 DexDescription_Silcoon_2[] = _(
+ "that this POKéMON slakes its thirst by\n"
+ "drinking rainwater that collects on its\n"
+ "silk.");
+#else
+static const u8 DexDescription_Silcoon_1[] = _(
+ "SILCOON tethers itself to a tree branch\n"
+ "using silk to keep from falling. There, \n"
+ "this POKéMON hangs quietly while it");
+static const u8 DexDescription_Silcoon_2[] = _(
+ "awaits evolution.\n"
+ "It peers out of the silk cocoon through\n"
+ "a small hole.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Beautifly_1[] = _(
+ "BEAUTIFLY has a long mouth like a coiled\n"
+ "needle, which is very convenient for\n"
+ "collecting pollen from flowers.");
+static const u8 DexDescription_Beautifly_2[] = _(
+ "This POKéMON rides the spring winds as\n"
+ "it flits around gathering pollen.");
+#else
+static const u8 DexDescription_Beautifly_1[] = _(
+ "BEAUTIFLY’s favorite food is the sweet\n"
+ "pollen of flowers. If you want to see\n"
+ "this POKéMON, just leave a potted");
+static const u8 DexDescription_Beautifly_2[] = _(
+ "flower by an open window. BEAUTIFLY\n"
+ "is sure to come looking for pollen.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Cascoon_1[] = _(
+ "If it is attacked, CASCOON remains\n"
+ "motionless however badly it may be\n"
+ "hurt. It does so because if it were to");
+static const u8 DexDescription_Cascoon_2[] = _(
+ "move, its body would be weak upon\n"
+ "evolution. This POKéMON will also not\n"
+ "forget the pain it endured.");
+#else
+static const u8 DexDescription_Cascoon_1[] = _(
+ "CASCOON makes its protective cocoon\n"
+ "by wrapping its body entirely with a\n"
+ "fine silk from its mouth. Once the silk");
+static const u8 DexDescription_Cascoon_2[] = _(
+ "goes around its body, it hardens.\n"
+ "This POKéMON prepares for its evolution\n"
+ "inside the cocoon.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Dustox_1[] = _(
+ "When DUSTOX flaps its wings, a fine\n"
+ "dust is scattered all over. This dust is\n"
+ "actually a powerful poison that will");
+static const u8 DexDescription_Dustox_2[] = _(
+ "even make a pro wrestler sick.\n"
+ "This POKéMON searches for food using\n"
+ "its antennae like radar.");
+#else
+static const u8 DexDescription_Dustox_1[] = _(
+ "DUSTOX is instinctively drawn to light.\n"
+ "Swarms of this POKéMON are attracted\n"
+ "by the bright lights of cities, where");
+static const u8 DexDescription_Dustox_2[] = _(
+ "they wreak havoc by stripping the\n"
+ "leaves off roadside trees for food.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Lotad_1[] = _(
+ "LOTAD is said to have dwelled on land\n"
+ "before. However, this POKéMON is\n"
+ "thought to have returned to water");
+static const u8 DexDescription_Lotad_2[] = _(
+ "because the leaf on its head grew large\n"
+ "and heavy. It now lives by floating\n"
+ "atop the water.");
+#else
+static const u8 DexDescription_Lotad_1[] = _(
+ "LOTAD live in ponds and lakes, where\n"
+ "they float on the surface.\n"
+ "It grows weak if its broad leaf dies.");
+static const u8 DexDescription_Lotad_2[] = _(
+ "On rare occasions, this POKéMON travels\n"
+ "on land in search of clean water.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Lombre_1[] = _(
+ "LOMBRE’s entire body is covered by a\n"
+ "slippery, slimy film. It feels horribly\n"
+ "unpleasant to be touched by this");
+static const u8 DexDescription_Lombre_2[] = _(
+ "POKéMON’s hands.\n"
+ "LOMBRE is often mistaken for a human\n"
+ "child.");
+#else
+static const u8 DexDescription_Lombre_1[] = _(
+ "LOMBRE is nocturnal - it will get active\n"
+ "after dusk. It is also a mischief-maker.\n"
+ "When this POKéMON spots anglers,");
+static const u8 DexDescription_Lombre_2[] = _(
+ "it tugs on their fishing lines from\n"
+ "beneath the surface and enjoys their\n"
+ "consternation.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Ludicolo_1[] = _(
+ "Upon hearing an upbeat and cheerful\n"
+ "rhythm, the cells in LUDICOLO’s body\n"
+ "become very energetic and active.");
+static const u8 DexDescription_Ludicolo_2[] = _(
+ "Even in battle, this POKéMON will\n"
+ "exhibit an amazing amount of power.");
+#else
+static const u8 DexDescription_Ludicolo_1[] = _(
+ "LUDICOLO begins dancing as soon as\n"
+ "it hears cheerful, festive music.\n"
+ "This POKéMON is said to appear when it");
+static const u8 DexDescription_Ludicolo_2[] = _(
+ "hears the singing of children on hiking\n"
+ "outings.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Seedot_1[] = _(
+ "SEEDOT looks exactly like an acorn\n"
+ "when it is dangling from a tree branch.\n"
+ "It startles other POKéMON by suddenly");
+static const u8 DexDescription_Seedot_2[] = _(
+ "moving.\n"
+ "This POKéMON polishes its body once a\n"
+ "day using leaves.");
+#else
+static const u8 DexDescription_Seedot_1[] = _(
+ "SEEDOT attaches itself to a tree\n"
+ "branch using the top of its head.\n"
+ "It sucks moisture from the tree while");
+static const u8 DexDescription_Seedot_2[] = _(
+ "hanging off the branch.\n"
+ "The more water it drinks, the glossier\n"
+ "this POKéMON’s body becomes.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Nuzleaf_1[] = _(
+ "This POKéMON pulls out the leaf on its\n"
+ "head and makes a flute with it.\n"
+ "The sound of NUZLEAF’s flute strikes");
+static const u8 DexDescription_Nuzleaf_2[] = _(
+ "fear and uncertainty in the hearts of\n"
+ "people lost in a forest.");
+#else
+static const u8 DexDescription_Nuzleaf_1[] = _(
+ "NUZLEAF live in densely overgrown\n"
+ "forests. They occasionally venture out\n"
+ "of the forest to startle people.");
+static const u8 DexDescription_Nuzleaf_2[] = _(
+ "This POKéMON dislikes having its long\n"
+ "nose pinched.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Shiftry_1[] = _(
+ "SHIFTRY’s large fans generate awesome\n"
+ "gusts of wind at a speed close to 100\n"
+ "feet per second. The whipped-up wind");
+static const u8 DexDescription_Shiftry_2[] = _(
+ "blows anything away.\n"
+ "This POKéMON chooses to live quietly\n"
+ "deep in forests.");
+#else
+static const u8 DexDescription_Shiftry_1[] = _(
+ "SHIFTRY is a mysterious POKéMON that\n"
+ "is said to live atop towering trees \n"
+ "dating back over a thousand years.");
+static const u8 DexDescription_Shiftry_2[] = _(
+ "It creates terrific windstorms with\n"
+ "the fans it holds.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Taillow_1[] = _(
+ "TAILLOW is young - it has only just\n"
+ "left its nest. As a result, it sometimes\n"
+ "becomes lonesome and cries at night.");
+static const u8 DexDescription_Taillow_2[] = _(
+ "This POKéMON feeds on WURMPLE that\n"
+ "live in forests.");
+#else
+static const u8 DexDescription_Taillow_1[] = _(
+ "TAILLOW courageously stands its\n"
+ "ground against foes, however strong\n"
+ "they may be.");
+static const u8 DexDescription_Taillow_2[] = _(
+ "This gutsy POKéMON will remain defiant\n"
+ "even after a loss. On the other hand,\n"
+ "it cries loudly if it becomes hungry.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Swellow_1[] = _(
+ "SWELLOW is very conscientious about\n"
+ "the upkeep of its glossy wings.\n"
+ "Once two SWELLOW are gathered, they");
+static const u8 DexDescription_Swellow_2[] = _(
+ "diligently take care of cleaning each\n"
+ "other’s wings.");
+#else
+static const u8 DexDescription_Swellow_1[] = _(
+ "SWELLOW flies high above our heads,\n"
+ "making graceful arcs in the sky.\n"
+ "This POKéMON dives at a steep angle as");
+static const u8 DexDescription_Swellow_2[] = _(
+ "soon as it spots its prey. The hapless\n"
+ "prey is tightly grasped by SWELLOW’s\n"
+ "clawed feet, preventing escape.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Wingull_1[] = _(
+ "WINGULL rides updrafts rising from the\n"
+ "sea by extending its long and narrow\n"
+ "wings to glide.");
+static const u8 DexDescription_Wingull_2[] = _(
+ "This POKéMON’s long beak is useful for\n"
+ "catching prey.");
+#else
+static const u8 DexDescription_Wingull_1[] = _(
+ "WINGULL has the habit of carrying prey\n"
+ "and valuables in its beak and hiding\n"
+ "them in all sorts of locations.");
+static const u8 DexDescription_Wingull_2[] = _(
+ "This POKéMON rides the winds and flies\n"
+ "as if it were skating across the sky.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Pelipper_1[] = _(
+ "PELIPPER searches for food while in\n"
+ "flight by skimming the wave tops.\n"
+ "This POKéMON dips its large bill in the");
+static const u8 DexDescription_Pelipper_2[] = _(
+ "sea to scoop up food, then swallows\n"
+ "everything in one big gulp.");
+#else
+static const u8 DexDescription_Pelipper_1[] = _(
+ "PELIPPER is a flying transporter that\n"
+ "carries small POKéMON and eggs inside\n"
+ "its massive bill.");
+static const u8 DexDescription_Pelipper_2[] = _(
+ "This POKéMON builds its nest on steep\n"
+ "cliffs facing the sea.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Ralts_1[] = _(
+ "RALTS has the ability to sense the\n"
+ "emotions of people.\n"
+ "If its TRAINER is in a cheerful mood,");
+static const u8 DexDescription_Ralts_2[] = _(
+ "this POKéMON grows cheerful and joyous\n"
+ "in the same way.");
+#else
+static const u8 DexDescription_Ralts_1[] = _(
+ "RALTS senses the emotions of\n"
+ "people using the horns on its head.\n"
+ "This POKéMON rarely appears before");
+static const u8 DexDescription_Ralts_2[] = _(
+ "people. But when it does, it draws\n"
+ "closer if it senses that the person has\n"
+ "a positive disposition.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Kirlia_1[] = _(
+ "KIRLIA uses the horns on its head\n"
+ "to amplify its psychokinetic power.\n"
+ "When the POKéMON uses its power,");
+static const u8 DexDescription_Kirlia_2[] = _(
+ "the air around it becomes distorted,\n"
+ "creating mirages of nonexistent\n"
+ "scenery.");
+#else
+static const u8 DexDescription_Kirlia_1[] = _(
+ "It is said that a KIRLIA that is\n"
+ "exposed to the positive emotions of\n"
+ "its TRAINER grows beautiful.");
+static const u8 DexDescription_Kirlia_2[] = _(
+ "This POKéMON controls psychokinetic\n"
+ "powers with its highly developed brain.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Gardevoir_1[] = _(
+ "GARDEVOIR has the psychokinetic\n"
+ "power to distort the dimensions and\n"
+ "create a small black hole.");
+static const u8 DexDescription_Gardevoir_2[] = _(
+ "This POKéMON will try to protect its\n"
+ "TRAINER even at the risk of its own\n"
+ "life.");
+#else
+static const u8 DexDescription_Gardevoir_1[] = _(
+ "GARDEVOIR has the ability to read the\n"
+ "future. If it senses impending danger\n"
+ "to its TRAINER, this POKéMON is said to");
+static const u8 DexDescription_Gardevoir_2[] = _(
+ "unleash its psychokinetic energy at\n"
+ "full power.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Surskit_1[] = _(
+ "If SURSKIT senses danger, it secretes\n"
+ "a thick, sugary syrup from the tip of\n"
+ "its head.");
+static const u8 DexDescription_Surskit_2[] = _(
+ "There are some POKéMON that love\n"
+ "eating this syrup.");
+#else
+static const u8 DexDescription_Surskit_1[] = _(
+ "From the tips of its feet, SURSKIT\n"
+ "secretes an oil that enables it to walk\n"
+ "on water as if it were skating.");
+static const u8 DexDescription_Surskit_2[] = _(
+ "This POKéMON feeds on microscopic\n"
+ "organisms in ponds and lakes.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Masquerain_1[] = _(
+ "MASQUERAIN’s antennas have eyelike\n"
+ "patterns that usually give it an angry\n"
+ "look. If the “eyes” are droopy and");
+static const u8 DexDescription_Masquerain_2[] = _(
+ "appear sad, it is said to be a sign\n"
+ "that a heavy rainfall is on its way.");
+#else
+static const u8 DexDescription_Masquerain_1[] = _(
+ "MASQUERAIN intimidates enemies with\n"
+ "the eyelike patterns on its antennas.\n"
+ "This POKéMON flaps its four wings to");
+static const u8 DexDescription_Masquerain_2[] = _(
+ "freely fly in any direction - even\n"
+ "sideways and backwards - as if it were\n"
+ "a helicopter.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Shroomish_1[] = _(
+ "If SHROOMISH senses danger, it shakes\n"
+ "its body and scatters spores from the\n"
+ "top of its head.");
+static const u8 DexDescription_Shroomish_2[] = _(
+ "This POKéMON’s spores are so toxic,\n"
+ "they make trees and weeds wilt.");
+#else
+static const u8 DexDescription_Shroomish_1[] = _(
+ "SHROOMISH live in damp soil in the dark\n"
+ "depths of forests. They are often\n"
+ "found keeping still under fallen leaves.");
+static const u8 DexDescription_Shroomish_2[] = _(
+ "This POKéMON feeds on compost that\n"
+ "is made up of fallen, rotted leaves.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Breloom_1[] = _(
+ "The seeds ringing BRELOOM’s tail are\n"
+ "made of hardened toxic spores. It is\n"
+ "horrible to eat the seeds.");
+static const u8 DexDescription_Breloom_2[] = _(
+ "Just taking a bite of this POKéMON’s\n"
+ "seed will cause your stomach to rumble.");
+#else
+static const u8 DexDescription_Breloom_1[] = _(
+ "BRELOOM closes in on its foe with light\n"
+ "and sprightly footwork, then throws\n"
+ "punches with its stretchy arms.");
+static const u8 DexDescription_Breloom_2[] = _(
+ "This POKéMON’s fighting technique puts\n"
+ "boxers to shame.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Slakoth_1[] = _(
+ "SLAKOTH’s heart beats just once a\n"
+ "minute. Whatever happens, it is\n"
+ "content to loaf around motionless.");
+static const u8 DexDescription_Slakoth_2[] = _(
+ "It is rare to see this POKéMON in\n"
+ "motion.");
+#else
+static const u8 DexDescription_Slakoth_1[] = _(
+ "SLAKOTH lolls around for over twenty\n"
+ "hours every day. Because it moves so\n"
+ "little, it does not need much food.");
+static const u8 DexDescription_Slakoth_2[] = _(
+ "This POKéMON’s sole daily meal consists\n"
+ "of just three leaves.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Vigoroth_1[] = _(
+ "VIGOROTH is simply incapable of\n"
+ "remaining still. Even when it tries to\n"
+ "sleep, the blood in its veins grows");
+static const u8 DexDescription_Vigoroth_2[] = _(
+ "agitated, compelling this POKéMON to\n"
+ "run wild throughout the jungle before\n"
+ "it can settle down.");
+#else
+static const u8 DexDescription_Vigoroth_1[] = _(
+ "VIGOROTH is always itching and agitated\n"
+ "to go on a wild rampage. It simply can’t\n"
+ "tolerate sitting still for even a minute.");
+static const u8 DexDescription_Vigoroth_2[] = _(
+ "This POKéMON’s stress level rises if it\n"
+ "can’t be moving constantly.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Slaking_1[] = _(
+ "Wherever SLAKING live, rings of over\n"
+ "a yard in diameter appear in grassy\n"
+ "fields. They are made by the POKéMON");
+static const u8 DexDescription_Slaking_2[] = _(
+ "as it eats all the grass within reach\n"
+ "while lying prone on the ground.");
+#else
+static const u8 DexDescription_Slaking_1[] = _(
+ "SLAKING spends all day lying down and\n"
+ "lolling about.\n"
+ "It eats grass growing within its reach.");
+static const u8 DexDescription_Slaking_2[] = _(
+ "If it eats all the grass it can reach,\n"
+ "this POKéMON reluctantly moves to\n"
+ "another spot.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Nincada_1[] = _(
+ "NINCADA lives underground. It uses its\n"
+ "sharp claws to carve the roots of trees\n"
+ "and absorb moisture and nutrients.");
+static const u8 DexDescription_Nincada_2[] = _(
+ "This POKéMON can’t withstand bright\n"
+ "sunlight so avoids it.");
+#else
+static const u8 DexDescription_Nincada_1[] = _(
+ "NINCADA lives underground for many\n"
+ "years in complete darkness.\n"
+ "This POKéMON absorbs nutrients from");
+static const u8 DexDescription_Nincada_2[] = _(
+ "the roots of trees. It stays motionless\n"
+ "as it waits for evolution.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Ninjask_1[] = _(
+ "If NINJASK is not trained properly,\n"
+ "it will refuse to obey the TRAINER and\n"
+ "cry loudly continuously.");
+static const u8 DexDescription_Ninjask_2[] = _(
+ "Because of this quality, this POKéMON\n"
+ "is said to be one that puts the\n"
+ "TRAINER’s abilities to the test.");
+#else
+static const u8 DexDescription_Ninjask_1[] = _(
+ "NINJASK moves around at such a high\n"
+ "speed that it cannot be seen, even\n"
+ "while its crying can be clearly heard.");
+static const u8 DexDescription_Ninjask_2[] = _(
+ "For that reason, this POKéMON was long\n"
+ "believed to be invisible.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Shedinja_1[] = _(
+ "SHEDINJA is a peculiar POKéMON.\n"
+ "It seems to appear unsought in a POKé\n"
+ "BALL after a NINCADA evolves.");
+static const u8 DexDescription_Shedinja_2[] = _(
+ "This bizarre POKéMON is entirely\n"
+ "immobile - it doesn’t even breathe.");
+#else
+static const u8 DexDescription_Shedinja_1[] = _(
+ "SHEDINJA’s hard body doesn’t move -\n"
+ "not even a twitch. In fact, its body\n"
+ "appears to be merely a hollow shell.");
+static const u8 DexDescription_Shedinja_2[] = _(
+ "It is believed that this POKéMON will\n"
+ "steal the spirit of anyone peering into\n"
+ "its hollow body from its back.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Whismur_1[] = _(
+ "WHISMUR is very timid. If it starts to\n"
+ "cry loudly, it becomes startled by its\n"
+ "own crying and cries even harder.");
+static const u8 DexDescription_Whismur_2[] = _(
+ "When it finally stops crying, the\n"
+ "POKéMON goes to sleep, all tired out.");
+#else
+static const u8 DexDescription_Whismur_1[] = _(
+ "Normally, WHISMUR’s voice is very quiet -\n"
+ "it is barely audible even if one is\n"
+ "paying close attention.");
+static const u8 DexDescription_Whismur_2[] = _(
+ "However, if this POKéMON senses danger,\n"
+ "it starts crying at an earsplitting\n"
+ "volume.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Loudred_1[] = _(
+ "LOUDRED shouts while stamping its feet.\n"
+ "After it finishes shouting, this\n"
+ "POKéMON becomes incapable of hearing");
+static const u8 DexDescription_Loudred_2[] = _(
+ "anything for a while. This is considered\n"
+ "to be a weak point.");
+#else
+static const u8 DexDescription_Loudred_1[] = _(
+ "LOUDRED’s bellowing can completely\n"
+ "decimate a wood-frame house. It uses\n"
+ "its voice to punish its foes.");
+static const u8 DexDescription_Loudred_2[] = _(
+ "This POKéMON’s round ears serve as\n"
+ "loudspeakers.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Exploud_1[] = _(
+ "EXPLOUD communicates its feelings to\n"
+ "the others by emitting whistle-like\n"
+ "sounds from the tubes on its body.");
+static const u8 DexDescription_Exploud_2[] = _(
+ "This POKéMON only raises its voice when\n"
+ "it is in battle.");
+#else
+static const u8 DexDescription_Exploud_1[] = _(
+ "EXPLOUD triggers earthquakes with the\n"
+ "tremors it creates by bellowing. If this\n"
+ "POKéMON violently inhales from the");
+static const u8 DexDescription_Exploud_2[] = _(
+ "ports on its body, it’s a sign that it is\n"
+ "preparing to let loose a huge bellow.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Makuhita_1[] = _(
+ "MAKUHITA has a tireless spirit -\n"
+ "it will never give up hope. It eats a lot\n"
+ "of food, gets plenty of sleep, and it");
+static const u8 DexDescription_Makuhita_2[] = _(
+ "trains very rigorously. By living that\n"
+ "way, this POKéMON packs its body with\n"
+ "energy.");
+#else
+static const u8 DexDescription_Makuhita_1[] = _(
+ "MAKUHITA is tenacious - it will keep\n"
+ "getting up and attacking its foe\n"
+ "however many times it is knocked down.");
+static const u8 DexDescription_Makuhita_2[] = _(
+ "Every time it gets back up, this\n"
+ "POKéMON stores more energy in its body\n"
+ "for evolving.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Hariyama_1[] = _(
+ "HARIYAMA’s thick body may appear fat,\n"
+ "but it is actually a hunk of solid muscle.\n"
+ "If this POKéMON bears down and");
+static const u8 DexDescription_Hariyama_2[] = _(
+ "tightens all its muscles, its body\n"
+ "becomes as hard as a rock.");
+#else
+static const u8 DexDescription_Hariyama_1[] = _(
+ "HARIYAMA practices its straight-arm\n"
+ "slaps in any number of locations.\n"
+ "One hit of this POKéMON’s powerful,");
+static const u8 DexDescription_Hariyama_2[] = _(
+ "openhanded, straight-arm punches\n"
+ "could snap a telephone pole in two.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Azurill_1[] = _(
+ "AZURILL’s tail is large and bouncy.\n"
+ "It is packed full of the nutrients this\n"
+ "POKéMON needs to grow.");
+static const u8 DexDescription_Azurill_2[] = _(
+ "AZURILL can be seen bouncing and\n"
+ "playing on its big, rubbery tail.");
+#else
+static const u8 DexDescription_Azurill_1[] = _(
+ "AZURILL spins its tail as if it were a\n"
+ "lasso, then hurls it far. The momentum\n"
+ "of the throw sends its body flying, too.");
+static const u8 DexDescription_Azurill_2[] = _(
+ "Using this unique action, one of these\n"
+ "POKéMON managed to hurl itself a record\n"
+ "33 feet.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Nosepass_1[] = _(
+ "NOSEPASS had been said to be completely\n"
+ "unmoving, with its magnetic nose\n"
+ "pointed due north.");
+static const u8 DexDescription_Nosepass_2[] = _(
+ "However, close observation has revealed\n"
+ "that the POKéMON actually moves by a\n"
+ "little over 3/8 of an inch every year.");
+#else
+static const u8 DexDescription_Nosepass_1[] = _(
+ "NOSEPASS’s magnetic nose is always\n"
+ "pointed to the north. If two of these\n"
+ "POKéMON meet, they cannot turn");
+static const u8 DexDescription_Nosepass_2[] = _(
+ "their faces to each other when they\n"
+ "are close because their magnetic noses\n"
+ "repel one another.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Skitty_1[] = _(
+ "SKITTY is known to chase around\n"
+ "playfully after its own tail. In the wild,\n"
+ "this POKéMON lives in holes in the trees");
+static const u8 DexDescription_Skitty_2[] = _(
+ "of forests. It is very popular as a pet\n"
+ "because of its adorable looks.");
+#else
+static const u8 DexDescription_Skitty_1[] = _(
+ "SKITTY has the habit of becoming\n"
+ "fascinated by moving objects and\n"
+ "chasing them around.");
+static const u8 DexDescription_Skitty_2[] = _(
+ "This POKéMON is known to chase after\n"
+ "its own tail and become dizzy.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Delcatty_1[] = _(
+ "DELCATTY sleeps anywhere it wants\n"
+ "without keeping a permanent nest.\n"
+ "If other POKéMON approach it as it");
+static const u8 DexDescription_Delcatty_2[] = _(
+ "sleeps, this POKéMON will never fight -\n"
+ "it will just move away somewhere else.");
+#else
+static const u8 DexDescription_Delcatty_1[] = _(
+ "DELCATTY prefers to live an unfettered\n"
+ "existence in which it can do as it\n"
+ "pleases at its own pace.");
+static const u8 DexDescription_Delcatty_2[] = _(
+ "Because this POKéMON eats and sleeps\n"
+ "whenever it decides, its daily routines\n"
+ "are completely random.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Sableye_1[] = _(
+ "SABLEYE digs the ground with sharpened\n"
+ "claws to find rocks that it eats.\n"
+ "Substances in the eaten rocks");
+static const u8 DexDescription_Sableye_2[] = _(
+ "crystallize and rise up to the POKéMON’s\n"
+ "body surface.");
+#else
+static const u8 DexDescription_Sableye_1[] = _(
+ "SABLEYE lead quiet lives deep inside\n"
+ "caverns. They are feared, however,\n"
+ "because these POKéMON are thought to");
+static const u8 DexDescription_Sableye_2[] = _(
+ "steal the spirits of people when their\n"
+ "eyes burn with a sinister glow in the\n"
+ "darkness.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Mawile_1[] = _(
+ "Don’t be taken in by this POKéMON’s\n"
+ "cute face - it’s very dangerous. MAWILE\n"
+ "fools the foe into letting down its");
+static const u8 DexDescription_Mawile_2[] = _(
+ "guard, then chomps down with its\n"
+ "massive jaws. The steel jaws are really\n"
+ "horns that have been transformed.");
+#else
+#if REVISION >= 1
+static const u8 DexDescription_Mawile_1[] = _(
+ "MAWILE’s huge jaws are actually steel\n"
+ "horns that have been transformed.\n"
+ "Its docile-looking face serves to lull");
+static const u8 DexDescription_Mawile_2[] = _(
+ "its foe into letting down its guard.\n"
+ "When the foe least expects it, MAWILE\n" // Correct spelling of MAWILE
+ "chomps it with its gaping jaws.");
+#else
+static const u8 DexDescription_Mawile_1[] = _(
+ "MAWHILE’s huge jaws are actually steel\n"
+ "horns that have been transformed.\n"
+ "Its docile-looking face serves to lull");
+static const u8 DexDescription_Mawile_2[] = _(
+ "its foe into letting down its guard.\n"
+ "When the foe least expects it, MAWHILE\n"
+ "chomps it with its gaping jaws.");
+#endif
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Aron_1[] = _(
+ "ARON has a body of steel.\n"
+ "With one all-out charge, this POKéMON\n"
+ "can demolish even a heavy dump truck.");
+static const u8 DexDescription_Aron_2[] = _(
+ "The destroyed dump truck then becomes\n"
+ "a handy meal for the POKéMON.");
+#else
+static const u8 DexDescription_Aron_1[] = _(
+ "This POKéMON has a body of steel.\n"
+ "To make its body, ARON feeds on\n"
+ "iron ore that it digs from mountains.");
+static const u8 DexDescription_Aron_2[] = _(
+ "Occasionally, it causes major trouble by\n"
+ "eating bridges and rails.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Lairon_1[] = _(
+ "LAIRON feeds on iron contained in\n"
+ "rocks and water. It makes its nest on\n"
+ "mountains where iron ore is buried.");
+static const u8 DexDescription_Lairon_2[] = _(
+ "As a result, the POKéMON often clashes\n"
+ "with humans mining the iron ore.");
+#else
+static const u8 DexDescription_Lairon_1[] = _(
+ "LAIRON tempers its steel body by\n"
+ "drinking highly nutritious mineral\n"
+ "springwater until it is bloated.");
+static const u8 DexDescription_Lairon_2[] = _(
+ "This POKéMON makes its nest close to\n"
+ "springs of delicious water.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Aggron_1[] = _(
+ "AGGRON is surprisingly protective\n"
+ "of its environment. If its mountain\n"
+ "is ravaged by a landslide or a fire, this");
+static const u8 DexDescription_Aggron_2[] = _(
+ "POKéMON will haul topsoil to the area,\n"
+ "plant trees, and beautifully restore its\n"
+ "own territory.");
+#else
+static const u8 DexDescription_Aggron_1[] = _(
+ "AGGRON claims an entire mountain as its\n"
+ "own territory. It mercilessly beats up\n"
+ "anything that violates its environment.");
+static const u8 DexDescription_Aggron_2[] = _(
+ "This POKéMON vigilantly patrols its\n"
+ "territory at all times.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Meditite_1[] = _(
+ "MEDITITE heightens its inner energy\n"
+ "through meditation. It survives on\n"
+ "just one berry a day.");
+static const u8 DexDescription_Meditite_2[] = _(
+ "Minimal eating is another aspect of\n"
+ "this POKéMON’s training.");
+#else
+static const u8 DexDescription_Meditite_1[] = _(
+ "MEDITITE undertakes rigorous mental\n"
+ "training deep in the mountains.\n"
+ "However, whenever it meditates, this");
+static const u8 DexDescription_Meditite_2[] = _(
+ "POKéMON always loses its concentration\n"
+ "and focus. As a result, its training\n"
+ "never ends.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Medicham_1[] = _(
+ "Through the power of meditation,\n"
+ "MEDICHAM developed its sixth sense.\n"
+ "It gained the ability to use");
+static const u8 DexDescription_Medicham_2[] = _(
+ "psychokinetic powers. This POKéMON is\n"
+ "known to meditate for a whole month\n"
+ "without eating.");
+#else
+static const u8 DexDescription_Medicham_1[] = _(
+ "It is said that through meditation,\n"
+ "MEDICHAM heightens energy inside\n"
+ "its body and sharpens its sixth sense.");
+static const u8 DexDescription_Medicham_2[] = _(
+ "This POKéMON hides its presence by\n"
+ "merging itself with fields and\n"
+ "mountains.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Electrike_1[] = _(
+ "ELECTRIKE runs faster than the human\n"
+ "eye can follow. The friction from\n"
+ "running is converted into electricity,");
+static const u8 DexDescription_Electrike_2[] = _(
+ "which is then stored in this POKéMON’s\n"
+ "fur.");
+#else
+static const u8 DexDescription_Electrike_1[] = _(
+ "ELECTRIKE stores electricity in its\n"
+ "long body hair. This POKéMON stimulates\n"
+ "its leg muscles with electric charges.");
+static const u8 DexDescription_Electrike_2[] = _(
+ "These jolts of power give its legs\n"
+ "explosive acceleration performance.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Manectric_1[] = _(
+ "MANECTRIC discharges strong\n"
+ "electricity from its mane. The mane is\n"
+ "used for collecting electricity in the");
+static const u8 DexDescription_Manectric_2[] = _(
+ "atmosphere. This POKéMON creates\n"
+ "thunderclouds above its head.");
+#else
+static const u8 DexDescription_Manectric_1[] = _(
+ "MANECTRIC is constantly discharging\n"
+ "electricity from its mane. The sparks\n"
+ "sometimes ignite forest fires.");
+static const u8 DexDescription_Manectric_2[] = _(
+ "When it enters a battle, this POKéMON\n"
+ "creates thunderclouds.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Plusle_1[] = _(
+ "When PLUSLE is cheering on its partner,\n"
+ "it flashes with electric sparks from all\n"
+ "over its body.");
+static const u8 DexDescription_Plusle_2[] = _(
+ "If its partner loses, this POKéMON cries\n"
+ "loudly.");
+#else
+static const u8 DexDescription_Plusle_1[] = _(
+ "PLUSLE always acts as a cheerleader\n"
+ "for its partners. Whenever a teammate\n"
+ "puts out a good effort in battle, this");
+static const u8 DexDescription_Plusle_2[] = _(
+ "POKéMON shorts out its body to create\n"
+ "the crackling noises of sparks to show\n"
+ "its joy.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Minun_1[] = _(
+ "MINUN loves to cheer on its partner in\n"
+ "battle. It gives off sparks from its\n"
+ "body while it is doing so.");
+static const u8 DexDescription_Minun_2[] = _(
+ "If its partner is in trouble, this\n"
+ "POKéMON gives off increasing amounts\n"
+ "of sparks.");
+#else
+static const u8 DexDescription_Minun_1[] = _(
+ "MINUN is more concerned about cheering\n"
+ "on its partners than its own safety.\n"
+ "It shorts out the electricity in its");
+static const u8 DexDescription_Minun_2[] = _(
+ "body to create brilliant showers of\n"
+ "sparks to cheer on its teammates.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Volbeat_1[] = _(
+ "VOLBEAT’s tail glows like a lightbulb.\n"
+ "With other VOLBEAT, it uses its tail to\n"
+ "draw geometric shapes in the night sky.");
+static const u8 DexDescription_Volbeat_2[] = _(
+ "This POKéMON loves the sweet aroma\n"
+ "given off by ILLUMISE.");
+#else
+static const u8 DexDescription_Volbeat_1[] = _(
+ "With the arrival of night, VOLBEAT emits\n"
+ "light from its tail. It communicates with\n"
+ "others by adjusting the intensity and");
+static const u8 DexDescription_Volbeat_2[] = _(
+ "flashing of its light.\n"
+ "This POKéMON is attracted by the sweet\n"
+ "aroma of ILLUMISE.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Illumise_1[] = _(
+ "ILLUMISE leads a flight of illuminated\n"
+ "VOLBEAT to draw signs in the night sky.\n"
+ "This POKéMON is said to earn greater");
+static const u8 DexDescription_Illumise_2[] = _(
+ "respect from its peers by composing\n"
+ "more complex designs in the sky.");
+#else
+static const u8 DexDescription_Illumise_1[] = _(
+ "ILLUMISE attracts a swarm of VOLBEAT\n"
+ "using a sweet fragrance. Once the\n"
+ "VOLBEAT have gathered, this POKéMON");
+static const u8 DexDescription_Illumise_2[] = _(
+ "leads the lit-up swarm in drawing\n"
+ "geometric designs on the canvas of\n"
+ "the night sky.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Roselia_1[] = _(
+ "On extremely rare occasions, a ROSELIA\n"
+ "is said to appear with its flowers in\n"
+ "unusual colors.");
+static const u8 DexDescription_Roselia_2[] = _(
+ "The thorns on this POKéMON’s head\n"
+ "contain a vicious poison.");
+#else
+static const u8 DexDescription_Roselia_1[] = _(
+ "ROSELIA shoots sharp thorns as\n"
+ "projectiles at any opponent that tries\n"
+ "to steal the flowers on its arms.");
+static const u8 DexDescription_Roselia_2[] = _(
+ "The aroma of this POKéMON brings\n"
+ "serenity to living things.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Gulpin_1[] = _(
+ "Most of GULPIN’s body is made up of its\n"
+ "stomach - its heart and brain are very\n"
+ "small in comparison.");
+static const u8 DexDescription_Gulpin_2[] = _(
+ "This POKéMON’s stomach contains\n"
+ "special enzymes that dissolve anything.");
+#else
+static const u8 DexDescription_Gulpin_1[] = _(
+ "Virtually all of GULPIN’s body is its\n"
+ "stomach. As a result, it can swallow\n"
+ "something its own size.");
+static const u8 DexDescription_Gulpin_2[] = _(
+ "This POKéMON’s stomach contains a\n"
+ "special fluid that digests anything.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Swalot_1[] = _(
+ "SWALOT has no teeth, so what it\n"
+ "eats, it swallows whole, no matter what.\n"
+ "Its cavernous mouth yawns widely.");
+static const u8 DexDescription_Swalot_2[] = _(
+ "An automobile tire could easily fit\n"
+ "inside this POKéMON’s mouth.");
+#else
+static const u8 DexDescription_Swalot_1[] = _(
+ "When SWALOT spots prey, it spurts out\n"
+ "a hideously toxic fluid from its pores\n"
+ "and sprays the target.");
+static const u8 DexDescription_Swalot_2[] = _(
+ "Once the prey has weakened, this\n"
+ "POKéMON gulps it down whole with its\n"
+ "cavernous mouth.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Carvanha_1[] = _(
+ "If anything invades CARVANHA’s\n"
+ "territory, it will swarm and tear at the\n"
+ "intruder with its pointed fangs.");
+static const u8 DexDescription_Carvanha_2[] = _(
+ "On its own, however, this POKéMON turns\n"
+ "suddenly timid.");
+#else
+static const u8 DexDescription_Carvanha_1[] = _(
+ "CARVANHA’s strongly developed jaws\n"
+ "and its sharply pointed fangs pack the\n"
+ "destructive power to rip out boat hulls.");
+static const u8 DexDescription_Carvanha_2[] = _(
+ "Many boats have been attacked and\n"
+ "sunk by this POKéMON.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Sharpedo_1[] = _(
+ "SHARPEDO can swim at speeds of up to\n"
+ "75 mph by jetting seawater out of its\n"
+ "backside.");
+static const u8 DexDescription_Sharpedo_2[] = _(
+ "This POKéMON’s drawback is its inability\n"
+ "to swim long distances.");
+#else
+static const u8 DexDescription_Sharpedo_1[] = _(
+ "Nicknamed “the bully of the sea,”\n"
+ "SHARPEDO is widely feared.\n"
+ "Its cruel fangs grow back immediately");
+static const u8 DexDescription_Sharpedo_2[] = _(
+ "if they snap off.\n"
+ "Just one of these POKéMON can\n"
+ "thoroughly tear apart a supertanker.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Wailmer_1[] = _(
+ "WAILMER can store water inside its body\n"
+ "to transform itself into a ball for\n"
+ "bouncing around on the ground.");
+static const u8 DexDescription_Wailmer_2[] = _(
+ "By filling itself up with more water, this\n"
+ "POKéMON can elevate the height of its\n"
+ "bounces.");
+#else
+static const u8 DexDescription_Wailmer_1[] = _(
+ "WAILMER’s nostrils are located above\n"
+ "its eyes. This playful POKéMON loves\n"
+ "to startle people by forcefully snorting");
+static const u8 DexDescription_Wailmer_2[] = _(
+ "out seawater it stores inside its body\n"
+ "out of its nostrils.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Wailord_1[] = _(
+ "When chasing prey, WAILORD herds them\n"
+ "by leaping out of the water and making\n"
+ "a humongous splash.");
+static const u8 DexDescription_Wailord_2[] = _(
+ "It is breathtaking to see this POKéMON\n"
+ "leaping out of the sea with others in\n"
+ "its pod.");
+#else
+static const u8 DexDescription_Wailord_1[] = _(
+ "WAILORD is the largest of all identified\n"
+ "POKéMON up to now.\n"
+ "This giant POKéMON swims languorously");
+static const u8 DexDescription_Wailord_2[] = _(
+ "in the vast open sea, eating massive\n"
+ "amounts of food at once with its\n"
+ "enormous mouth.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Numel_1[] = _(
+ "NUMEL stores magma of almost 2,200\n"
+ "degrees F within its body. If it gets\n"
+ "wet, the magma cools and hardens.");
+static const u8 DexDescription_Numel_2[] = _(
+ "In that event, the POKéMON’s body\n"
+ "grows heavy and its movements become\n"
+ "sluggish.");
+#else
+static const u8 DexDescription_Numel_1[] = _(
+ "NUMEL is extremely dull witted - it\n"
+ "doesn’t notice being hit. However, it\n"
+ "can’t stand hunger for even a second.");
+static const u8 DexDescription_Numel_2[] = _(
+ "This POKéMON’s body is a seething\n"
+ "cauldron of boiling magma.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Camerupt_1[] = _(
+ "The humps on CAMERUPT’s back are\n"
+ "formed by a transformation of its\n"
+ "bones. They sometimes blast out molten");
+static const u8 DexDescription_Camerupt_2[] = _(
+ "magma. This POKéMON apparently erupts\n"
+ "often when it is enraged.");
+#else
+static const u8 DexDescription_Camerupt_1[] = _(
+ "CAMERUPT has a volcano inside its body.\n"
+ "Magma of 18,000 degrees F courses\n"
+ "through its body.");
+static const u8 DexDescription_Camerupt_2[] = _(
+ "Occasionally, the humps on this\n"
+ "POKéMON’s back erupt, spewing the\n"
+ "superheated magma.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Torkoal_1[] = _(
+ "TORKOAL generates energy by burning\n"
+ "coal. It grows weaker as the fire\n"
+ "dies down.");
+static const u8 DexDescription_Torkoal_2[] = _(
+ "When it is preparing for battle, this\n"
+ "POKéMON burns more coal.");
+#else
+static const u8 DexDescription_Torkoal_1[] = _(
+ "TORKOAL digs through mountains in\n"
+ "search of coal. If it finds some, it fills\n"
+ "hollow spaces on its shell with the coal");
+static const u8 DexDescription_Torkoal_2[] = _(
+ "and burns it.\n"
+ "If it is attacked, this POKéMON spouts\n"
+ "thick black smoke to beat a retreat.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Spoink_1[] = _(
+ "SPOINK keeps a pearl on top of its head.\n"
+ "The pearl functions to amplify this\n"
+ "POKéMON’s psychokinetic powers.");
+static const u8 DexDescription_Spoink_2[] = _(
+ "It is therefore on a constant search\n"
+ "for a bigger pearl.");
+#else
+static const u8 DexDescription_Spoink_1[] = _(
+ "SPOINK bounces around on its tail.\n"
+ "The shock of its bouncing makes its\n"
+ "heart pump. As a result, this POKéMON");
+static const u8 DexDescription_Spoink_2[] = _(
+ "cannot afford to stop bouncing - if it\n"
+ "stops, its heart will stop.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Grumpig_1[] = _(
+ "GRUMPIG uses the black pearls on its\n"
+ "body to wield its fantastic powers.\n"
+ "When it is doing so, it dances bizarrely.");
+static const u8 DexDescription_Grumpig_2[] = _(
+ "This POKéMON’s black pearls are valuable\n"
+ "as works of art.");
+#else
+static const u8 DexDescription_Grumpig_1[] = _(
+ "GRUMPIG uses the black pearls on its\n"
+ "body to amplify its psychic power waves\n"
+ "for gaining total control over its foe.");
+static const u8 DexDescription_Grumpig_2[] = _(
+ "When this POKéMON uses its special\n"
+ "power, its snorting breath grows\n"
+ "labored.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Spinda_1[] = _(
+ "No two SPINDA are said to have\n"
+ "identical spot patterns on their hides.\n"
+ "This POKéMON moves in a curious manner");
+static const u8 DexDescription_Spinda_2[] = _(
+ "as if it is stumbling in dizziness.\n"
+ "Its lurching movements can cause the\n"
+ "opponent to become confused.");
+#else
+static const u8 DexDescription_Spinda_1[] = _(
+ "All the SPINDA that exist in the\n"
+ "world are said to have utterly unique\n"
+ "spot patterns.");
+static const u8 DexDescription_Spinda_2[] = _(
+ "The shaky, tottering steps of this\n"
+ "POKéMON give it the appearance of\n"
+ "dancing.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Trapinch_1[] = _(
+ "TRAPINCH is a patient hunter. It digs\n"
+ "an inescapable pit in a desert and waits\n"
+ "for its prey to come tumbling down.");
+static const u8 DexDescription_Trapinch_2[] = _(
+ "This POKéMON can go a whole week\n"
+ "without access to any water.");
+#else
+static const u8 DexDescription_Trapinch_1[] = _(
+ "TRAPINCH’s nest is a sloped, bowl-like\n"
+ "pit dug in sand. This POKéMON patiently\n"
+ "waits for prey to tumble down the pit.");
+static const u8 DexDescription_Trapinch_2[] = _(
+ "Its giant jaws have enough strength\n"
+ "to crush even boulders.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Vibrava_1[] = _(
+ "VIBRAVA’s wings have not yet\n"
+ "completed the process of growing.\n"
+ "Rather than flying long distances,");
+static const u8 DexDescription_Vibrava_2[] = _(
+ "they are more useful for generating\n"
+ "ultrasonic waves by vibrating.");
+#else
+static const u8 DexDescription_Vibrava_1[] = _(
+ "To make prey faint, VIBRAVA generates\n"
+ "ultrasonic waves by vigorously making\n"
+ "its two wings vibrate.");
+static const u8 DexDescription_Vibrava_2[] = _(
+ "This POKéMON’s ultrasonic waves are so\n"
+ "powerful, they can bring on headaches\n"
+ "in people.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Flygon_1[] = _(
+ "FLYGON whips up a sandstorm by\n"
+ "flapping its wings. The wings create a\n"
+ "series of notes that sound like singing.");
+static const u8 DexDescription_Flygon_2[] = _(
+ "Because the “singing” is the only thing\n"
+ "that can be heard in a sandstorm, this\n"
+ "POKéMON is said to be the desert spirit.");
+#else
+static const u8 DexDescription_Flygon_1[] = _(
+ "FLYGON is nicknamed “the elemental \n"
+ "spirit of the desert.” Because its\n"
+ "flapping wings whip up a cloud of sand,");
+static const u8 DexDescription_Flygon_2[] = _(
+ "this POKéMON is always enveloped in a\n"
+ "sandstorm while flying.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Cacnea_1[] = _(
+ "The more arid and harsh the\n"
+ "environment, the more pretty and\n"
+ "fragrant a flower CACNEA grows.");
+static const u8 DexDescription_Cacnea_2[] = _(
+ "This POKéMON battles by wildly swinging\n"
+ "its thorny arms.");
+#else
+static const u8 DexDescription_Cacnea_1[] = _(
+ "CACNEA lives in arid locations such\n"
+ "as deserts. It releases a strong aroma\n"
+ "from its flower to attract prey.");
+static const u8 DexDescription_Cacnea_2[] = _(
+ "When prey comes near, this POKéMON\n"
+ "shoots sharp thorns from its body to\n"
+ "bring the victim down.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Cacturne_1[] = _(
+ "If a traveler is going through a desert\n"
+ "in the thick of night, CACTURNE\n"
+ "will follow in a ragtag group.");
+static const u8 DexDescription_Cacturne_2[] = _(
+ "The POKéMON are biding their time,\n"
+ "waiting for the traveler to tire and\n"
+ "become incapable of moving.");
+#else
+static const u8 DexDescription_Cacturne_1[] = _(
+ "During the daytime, CACTURNE remains\n"
+ "unmoving so that it does not lose any\n"
+ "moisture to the harsh desert sun.");
+static const u8 DexDescription_Cacturne_2[] = _(
+ "This POKéMON becomes active at night\n"
+ "when the temperature drops.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Swablu_1[] = _(
+ "SWABLU loves to make things clean.\n"
+ "If it spots something dirty, it will wipe\n"
+ "and polish it with its cottony wings.");
+static const u8 DexDescription_Swablu_2[] = _(
+ "If its wings become dirty, this POKéMON\n"
+ "finds a stream and showers itself.");
+#else
+static const u8 DexDescription_Swablu_1[] = _(
+ "SWABLU has light and fluffy wings that\n"
+ "are like cottony clouds. This POKéMON\n"
+ "is not frightened of people.");
+static const u8 DexDescription_Swablu_2[] = _(
+ "It lands on the heads of people and\n"
+ "sits there like a cotton-fluff hat.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Altaria_1[] = _(
+ "ALTARIA sings in a gorgeous soprano.\n"
+ "Its wings are like cotton clouds.\n"
+ "This POKéMON catches updrafts with its");
+static const u8 DexDescription_Altaria_2[] = _(
+ "buoyant wings and soars way up into\n"
+ "the wild blue yonder.");
+#else
+static const u8 DexDescription_Altaria_1[] = _(
+ "ALTARIA dances and wheels through the\n"
+ "sky among billowing, cotton-like clouds.\n"
+ "By singing melodies in its crystal-clear");
+static const u8 DexDescription_Altaria_2[] = _(
+ "voice, this POKéMON makes its listeners\n"
+ "experience dreamy wonderment.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Zangoose_1[] = _(
+ "ZANGOOSE usually stays on all fours,\n"
+ "but when angered, it gets up on its\n"
+ "hind legs and extends its claws.");
+static const u8 DexDescription_Zangoose_2[] = _(
+ "This POKéMON shares a bitter rivalry\n"
+ "with SEVIPER that dates back over\n"
+ "generations.");
+#else
+static const u8 DexDescription_Zangoose_1[] = _(
+ "Memories of battling its arch-rival\n"
+ "SEVIPER are etched into every cell of\n"
+ "ZANGOOSE’s body.");
+static const u8 DexDescription_Zangoose_2[] = _(
+ "This POKéMON adroitly dodges attacks\n"
+ "with incredible agility.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Seviper_1[] = _(
+ "SEVIPER’s swordlike tail serves two\n"
+ "purposes - it slashes foes and douses\n"
+ "them with secreted poison.");
+static const u8 DexDescription_Seviper_2[] = _(
+ "This POKéMON will not give up its long-\n"
+ "running blood feud with ZANGOOSE.");
+#else
+static const u8 DexDescription_Seviper_1[] = _(
+ "SEVIPER shares a generations-long\n"
+ "feud with ZANGOOSE. The scars on its\n"
+ "body are evidence of vicious battles.");
+static const u8 DexDescription_Seviper_2[] = _(
+ "This POKéMON attacks using its sword-\n"
+ "edged tail.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Lunatone_1[] = _(
+ "LUNATONE becomes active around the\n"
+ "time of the full moon. Instead of\n"
+ "walking, it moves by floating in midair.");
+static const u8 DexDescription_Lunatone_2[] = _(
+ "The POKéMON’s intimidating red eyes\n"
+ "cause all those who see it to become\n"
+ "transfixed with fear.");
+#else
+static const u8 DexDescription_Lunatone_1[] = _(
+ "LUNATONE was discovered at a location\n"
+ "where a meteorite fell. As a result, some\n"
+ "people theorize that this POKéMON");
+static const u8 DexDescription_Lunatone_2[] = _(
+ "came from space. However, no one has\n"
+ "been able to prove this theory so far.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Solrock_1[] = _(
+ "Sunlight is the source of SOLROCK’s\n"
+ "power. It is said to possess the ability\n"
+ "to read the emotions of others.");
+static const u8 DexDescription_Solrock_2[] = _(
+ "This POKéMON gives off intense heat\n"
+ "while rotating its body.");
+#else
+static const u8 DexDescription_Solrock_1[] = _(
+ "SOLROCK is a new species of POKéMON\n"
+ "that is said to have fallen from space.\n"
+ "It floats in air and moves silently.");
+static const u8 DexDescription_Solrock_2[] = _(
+ "In battle, this POKéMON releases\n"
+ "intensely bright light.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Barboach_1[] = _(
+ "BARBOACH’s body is covered with a\n"
+ "slimy film. If a foe grabs it, this\n"
+ "POKéMON just slips out of the enemy’s");
+static const u8 DexDescription_Barboach_2[] = _(
+ "grip.\n"
+ "This POKéMON grows weak if the slimy\n"
+ "coating dries up.");
+#else
+static const u8 DexDescription_Barboach_1[] = _(
+ "BARBOACH’s sensitive whiskers serve\n"
+ "as a superb radar system.\n"
+ "This POKéMON hides in mud, leaving only");
+static const u8 DexDescription_Barboach_2[] = _(
+ "its two whiskers exposed while it waits\n"
+ "for prey to come along.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Whiscash_1[] = _(
+ "If WHISCASH goes on a wild rampage,\n"
+ "it sets off a quake-like tremor with a\n"
+ "radius of over three miles.");
+static const u8 DexDescription_Whiscash_2[] = _(
+ "This POKéMON has the ability to predict\n"
+ "real earthquakes.");
+#else
+static const u8 DexDescription_Whiscash_1[] = _(
+ "WHISCASH is extremely territorial.\n"
+ "Just one of these POKéMON will claim a\n"
+ "large pond as its exclusive territory.");
+static const u8 DexDescription_Whiscash_2[] = _(
+ "If a foe approaches it, it thrashes\n"
+ "about and triggers a massive\n"
+ "earthquake.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Corphish_1[] = _(
+ "CORPHISH catches prey with its sharp\n"
+ "claws. It has no likes or dislikes when it\n"
+ "comes to food - it will eat anything.");
+static const u8 DexDescription_Corphish_2[] = _(
+ "This POKéMON has no trouble living in\n"
+ "filthy water.");
+#else
+static const u8 DexDescription_Corphish_1[] = _(
+ "CORPHISH were originally foreign\n"
+ "POKéMON that were imported as pets.\n"
+ "They eventually turned up in the wild.");
+static const u8 DexDescription_Corphish_2[] = _(
+ "This POKéMON is very hardy and has\n"
+ "greatly increased its population.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Crawdaunt_1[] = _(
+ "CRAWDAUNT molts (sheds) its shell\n"
+ "regularly. Immediately after molting,\n"
+ "its shell is soft and tender.");
+static const u8 DexDescription_Crawdaunt_2[] = _(
+ "Until the shell hardens, this POKéMON\n"
+ "hides in its streambed burrow to avoid\n"
+ "attack from its foes.");
+#else
+static const u8 DexDescription_Crawdaunt_1[] = _(
+ "CRAWDAUNT has an extremely violent\n"
+ "nature that compels it to challenge\n"
+ "other living things to battle.");
+static const u8 DexDescription_Crawdaunt_2[] = _(
+ "Other life-forms refuse to live in\n"
+ "ponds inhabited by this POKéMON,\n"
+ "making them desolate places.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Baltoy_1[] = _(
+ "As soon as it spots others of its kind,\n"
+ "BALTOY congregates with them and\n"
+ "then begins crying noisily in unison.");
+static const u8 DexDescription_Baltoy_2[] = _(
+ "This POKéMON sleeps while cleverly\n"
+ "balancing itself on its one foot.");
+#else
+static const u8 DexDescription_Baltoy_1[] = _(
+ "BALTOY moves while spinning around on\n"
+ "its one foot. Primitive wall paintings\n"
+ "depicting this POKéMON living among");
+static const u8 DexDescription_Baltoy_2[] = _(
+ "people were discovered in some ancient\n"
+ "ruins.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Claydol_1[] = _(
+ "CLAYDOL is an enigma that appeared\n"
+ "from a clay statue made by an ancient\n"
+ "civilization dating back 20,000 years.");
+static const u8 DexDescription_Claydol_2[] = _(
+ "This POKéMON shoots beams from both\n"
+ "its hands.");
+#else
+static const u8 DexDescription_Claydol_1[] = _(
+ "CLAYDOL are said to be dolls of mud made\n"
+ "by primitive humans and brought to life\n"
+ "by exposure to a mysterious ray.");
+static const u8 DexDescription_Claydol_2[] = _(
+ "This POKéMON moves about while\n"
+ "levitating.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Lileep_1[] = _(
+ "LILEEP is an ancient POKéMON that was\n"
+ "regenerated from a fossil. It remains\n"
+ "permanently anchored to a rock.");
+static const u8 DexDescription_Lileep_2[] = _(
+ "From its immobile perch, this POKéMON\n"
+ "intently scans for prey with its two\n"
+ "eyes.");
+#else
+static const u8 DexDescription_Lileep_1[] = _(
+ "LILEEP became extinct approximately\n"
+ "a hundred million years ago.\n"
+ "This ancient POKéMON attaches itself");
+static const u8 DexDescription_Lileep_2[] = _(
+ "to a rock on the seafloor and catches\n"
+ "approaching prey using tentacles \n"
+ "shaped like flower petals.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Cradily_1[] = _(
+ "CRADILY’s body serves as an anchor,\n"
+ "preventing it from being washed away in\n"
+ "rough seas.");
+static const u8 DexDescription_Cradily_2[] = _(
+ "This POKéMON secretes a strong\n"
+ "digestive fluid from its tentacles.");
+#else
+static const u8 DexDescription_Cradily_1[] = _(
+ "CRADILY roams around the ocean floor\n"
+ "in search of food. This POKéMON freely\n"
+ "extends its tree trunk-like neck and");
+static const u8 DexDescription_Cradily_2[] = _(
+ "captures unwary prey using its eight\n"
+ "tentacles.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Anorith_1[] = _(
+ "ANORITH is said to be a type of \n"
+ "POKéMON predecessor, with eight wings\n"
+ "at the sides of its body.");
+static const u8 DexDescription_Anorith_2[] = _(
+ "This POKéMON swam in the primordial sea\n"
+ "by undulating these eight wings.");
+#else
+static const u8 DexDescription_Anorith_1[] = _(
+ "ANORITH was regenerated from a\n"
+ "prehistoric fossil. This primitive\n"
+ "POKéMON once lived in warm seas.");
+static const u8 DexDescription_Anorith_2[] = _(
+ "It grips its prey firmly between its\n"
+ "two large claws.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Armaldo_1[] = _(
+ "ARMALDO is a POKéMON species that\n"
+ "became extinct in prehistoric times.\n"
+ "This POKéMON is said to have walked on");
+static const u8 DexDescription_Armaldo_2[] = _(
+ "its hind legs, which would have been\n"
+ "more convenient for life on land.");
+#else
+static const u8 DexDescription_Armaldo_1[] = _(
+ "ARMALDO’s tough armor makes all attacks\n"
+ "bounce off. This POKéMON’s two\n"
+ "enormous claws can be freely extended");
+static const u8 DexDescription_Armaldo_2[] = _(
+ "or contracted. They have the power to\n"
+ "punch right through a steel slab.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Feebas_1[] = _(
+ "While FEEBAS’s body is in tatters,\n"
+ "it has a hardy and tenacious life force\n"
+ "that enables it to live anywhere.");
+static const u8 DexDescription_Feebas_2[] = _(
+ "However, this POKéMON is also slow and\n"
+ "dimwitted, making it an easy catch.");
+#else
+static const u8 DexDescription_Feebas_1[] = _(
+ "FEEBAS’s fins are ragged and\n"
+ "tattered from the start of its life.\n"
+ "Because of its shoddy appearance, this");
+static const u8 DexDescription_Feebas_2[] = _(
+ "POKéMON is largely ignored.\n"
+ "It is capable of living in both the sea\n"
+ "and in rivers.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Milotic_1[] = _(
+ "MILOTIC live at the bottom of large\n"
+ "lakes. When this POKéMON’s body glows a\n"
+ "vivid pink, it releases a pulsing wave of");
+static const u8 DexDescription_Milotic_2[] = _(
+ "energy that brings soothing calm to\n"
+ "restless spirits.");
+#else
+static const u8 DexDescription_Milotic_1[] = _(
+ "MILOTIC is said to be the most\n"
+ "beautiful of all the POKéMON.\n"
+ "It has the power to becalm such");
+static const u8 DexDescription_Milotic_2[] = _(
+ "emotions as anger and hostility to quell\n"
+ "bitter feuding.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Castform_1[] = _(
+ "CASTFORM borrows the power of nature\n"
+ "to transform itself into the guises of\n"
+ "the sun, rain clouds, and snow clouds.");
+static const u8 DexDescription_Castform_2[] = _(
+ "This POKéMON’s feelings change with the\n"
+ "weather.");
+#else
+static const u8 DexDescription_Castform_1[] = _(
+ "CASTFORM’s appearance changes with\n"
+ "the weather.\n"
+ "This POKéMON gained the ability to use");
+static const u8 DexDescription_Castform_2[] = _(
+ "the vast power of nature to protect\n"
+ "its tiny body.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Kecleon_1[] = _(
+ "KECLEON alters its body coloration to\n"
+ "blend in with its surroundings, allowing\n"
+ "it to sneak up on its prey unnoticed.");
+static const u8 DexDescription_Kecleon_2[] = _(
+ "Then it lashes out with its long,\n"
+ "stretchy tongue to instantly ensnare\n"
+ "the unsuspecting target.");
+#else
+static const u8 DexDescription_Kecleon_1[] = _(
+ "KECLEON is capable of changing its body\n"
+ "colors at will to blend in with its\n"
+ "surroundings.");
+static const u8 DexDescription_Kecleon_2[] = _(
+ "There is one exception - this POKéMON\n"
+ "can’t change the zigzag pattern on its\n"
+ "belly.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Shuppet_1[] = _(
+ "SHUPPET grows by feeding on dark\n"
+ "emotions, such as vengefulness and \n"
+ "envy, in the hearts of people.");
+static const u8 DexDescription_Shuppet_2[] = _(
+ "It roams through cities in search of\n"
+ "grudges that taint people.");
+#else
+static const u8 DexDescription_Shuppet_1[] = _(
+ "SHUPPET is attracted by feelings\n"
+ "of jealousy and vindictiveness.\n"
+ "If someone develops strong feelings of");
+static const u8 DexDescription_Shuppet_2[] = _(
+ "vengeance, this POKéMON will appear\n"
+ "in a swarm and line up beneath the eaves\n"
+ "of that person’s home.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Banette_1[] = _(
+ "A cursed energy permeated the stuffing\n"
+ "of a discarded and forgotten plush doll,\n"
+ "giving it new life as BANETTE.");
+static const u8 DexDescription_Banette_2[] = _(
+ "The POKéMON’s energy would escape if it\n"
+ "were to ever open its mouth.");
+#else
+static const u8 DexDescription_Banette_1[] = _(
+ "BANETTE generates energy for laying\n"
+ "strong curses by sticking pins into its\n"
+ "own body.");
+static const u8 DexDescription_Banette_2[] = _(
+ "This POKéMON was originally a pitiful\n"
+ "plush doll that was thrown away.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Duskull_1[] = _(
+ "DUSKULL wanders lost among the deep\n"
+ "darkness of midnight. There is an oft-\n"
+ "told admonishment given to misbehaving");
+static const u8 DexDescription_Duskull_2[] = _(
+ "children that this POKéMON will spirit\n"
+ "away bad children who earn scoldings\n"
+ "from their mothers.");
+#else
+static const u8 DexDescription_Duskull_1[] = _(
+ "DUSKULL can pass through any wall no\n"
+ "matter how thick it may be.\n"
+ "Once this POKéMON chooses a target,");
+static const u8 DexDescription_Duskull_2[] = _(
+ "it will doggedly pursue the intended\n"
+ "victim until the break of dawn.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Dusclops_1[] = _(
+ "DUSCLOPS absorbs anything, however\n"
+ "large the object may be. This POKéMON\n"
+ "hypnotizes its foe by waving its hands");
+static const u8 DexDescription_Dusclops_2[] = _(
+ "in a macabre manner and by bringing its\n"
+ "single eye to bear. The hypnotized foe\n"
+ "is made to do DUSCLOPS’s bidding.");
+#else
+static const u8 DexDescription_Dusclops_1[] = _(
+ "DUSCLOPS’s body is completely hollow -\n"
+ "there is nothing at all inside.\n"
+ "It is said that its body is like a black");
+static const u8 DexDescription_Dusclops_2[] = _(
+ "hole. This POKéMON will absorb anything\n"
+ "into its body, but nothing will ever come\n"
+ "back out.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Tropius_1[] = _(
+ "Children of the southern tropics eat\n"
+ "as snacks the fruit that grows in\n"
+ "bunches around the neck of TROPIUS.");
+static const u8 DexDescription_Tropius_2[] = _(
+ "This POKéMON flies by flapping the\n"
+ "leaves on its back as if they were\n"
+ "wings.");
+#else
+static const u8 DexDescription_Tropius_1[] = _(
+ "The bunches of fruit around TROPIUS’s\n"
+ "neck are very popular with children.\n"
+ "This POKéMON loves fruit, and eats it");
+static const u8 DexDescription_Tropius_2[] = _(
+ "continuously. Apparently, its love for\n"
+ "fruit resulted in its own outgrowth\n"
+ "of fruit.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Chimecho_1[] = _(
+ "In high winds, CHIMECHO cries as it\n"
+ "hangs from a tree branch or the eaves\n"
+ "of a building using a suction cup on its");
+static const u8 DexDescription_Chimecho_2[] = _(
+ "head.\n"
+ "This POKéMON plucks berries with its\n"
+ "long tail and eats them.");
+#else
+static const u8 DexDescription_Chimecho_1[] = _(
+ "CHIMECHO makes its cries echo\n"
+ "inside its hollow body. When this\n"
+ "POKéMON becomes enraged, its cries");
+static const u8 DexDescription_Chimecho_2[] = _(
+ "result in ultrasonic waves that have\n"
+ "the power to knock foes flying.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Absol_1[] = _(
+ "ABSOL has the ability to foretell the\n"
+ "coming of natural disasters.\n"
+ "It lives in a harsh, rugged mountain");
+static const u8 DexDescription_Absol_2[] = _(
+ "environment. This POKéMON very rarely\n"
+ "ventures down from the mountains.");
+#else
+static const u8 DexDescription_Absol_1[] = _(
+ "Every time ABSOL appears before people,\n"
+ "it is followed by a disaster such as an\n"
+ "earthquake or a tidal wave.");
+static const u8 DexDescription_Absol_2[] = _(
+ "As a result, it came to be known as the\n"
+ "disaster POKéMON.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Wynaut_1[] = _(
+ "WYNAUT gather on moonlit nights to play\n"
+ "by squeezing up against each other.\n"
+ "By being squeezed, this POKéMON gains");
+static const u8 DexDescription_Wynaut_2[] = _(
+ "endurance and is trained to dole out\n"
+ "powerful counterattacks.");
+#else
+static const u8 DexDescription_Wynaut_1[] = _(
+ "WYNAUT can always be seen with a big,\n"
+ "happy smile on its face. Look at its tail\n"
+ "to determine if it is angry.");
+static const u8 DexDescription_Wynaut_2[] = _(
+ "When angered, this POKéMON will be\n"
+ "slapping the ground with its tail.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Snorunt_1[] = _(
+ "SNORUNT survives by eating only snow\n"
+ "and ice.\n"
+ "Old folklore claims that a house visited");
+static const u8 DexDescription_Snorunt_2[] = _(
+ "by this POKéMON is sure to prosper for\n"
+ "many generations to come.");
+#else
+static const u8 DexDescription_Snorunt_1[] = _(
+ "SNORUNT live in regions with heavy\n"
+ "snowfall. In seasons without snow, such\n"
+ "as spring and summer, this POKéMON");
+static const u8 DexDescription_Snorunt_2[] = _(
+ "steals away to live quietly among\n"
+ "stalactites and stalagmites deep in\n"
+ "caverns.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Glalie_1[] = _(
+ "GLALIE has the ability to freely\n"
+ "control ice. For example, it can\n"
+ "instantly freeze its foe solid.");
+static const u8 DexDescription_Glalie_2[] = _(
+ "After immobilizing its foe in ice, this\n"
+ "POKéMON enjoys eating it in leisurely\n"
+ "fashion.");
+#else
+static const u8 DexDescription_Glalie_1[] = _(
+ "GLALIE has a body made of rock, which it\n"
+ "hardens with an armor of ice.\n"
+ "This POKéMON has the ability to freeze");
+static const u8 DexDescription_Glalie_2[] = _(
+ "moisture in the atmosphere into any\n"
+ "shape it desires.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Spheal_1[] = _(
+ "SPHEAL always travels by rolling\n"
+ "around on its ball-like body. When the\n"
+ "season for ice floes arrives, this");
+static const u8 DexDescription_Spheal_2[] = _(
+ "POKéMON can be seen rolling about on\n"
+ "ice and crossing the sea.");
+#else
+static const u8 DexDescription_Spheal_1[] = _(
+ "SPHEAL is much faster rolling than \n"
+ "walking to get around. When groups of\n"
+ "this POKéMON eat, they all clap at once");
+static const u8 DexDescription_Spheal_2[] = _(
+ "to show their pleasure. Because of this,\n"
+ "their mealtimes are noisy.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Sealeo_1[] = _(
+ "SEALEO often balances and rolls\n"
+ "things on the tip of its nose. While the\n"
+ "POKéMON is rolling something, it checks");
+static const u8 DexDescription_Sealeo_2[] = _(
+ "the object’s aroma and texture to\n"
+ "determine whether it likes the object\n"
+ "or not.");
+#else
+static const u8 DexDescription_Sealeo_1[] = _(
+ "SEALEO has the habit of always juggling\n"
+ "on the tip of its nose anything it sees\n"
+ "for the first time.");
+static const u8 DexDescription_Sealeo_2[] = _(
+ "This POKéMON occasionally entertains\n"
+ "itself by balancing and rolling a SPHEAL\n"
+ "on its nose.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Walrein_1[] = _(
+ "WALREIN swims all over in frigid\n"
+ "seawater while crushing icebergs with\n"
+ "its grand, imposing tusks.");
+static const u8 DexDescription_Walrein_2[] = _(
+ "Its thick layer of blubber makes enemy\n"
+ "attacks bounce off harmlessly.");
+#else
+static const u8 DexDescription_Walrein_1[] = _(
+ "WALREIN’s two massively developed\n"
+ "tusks can totally shatter blocks of\n"
+ "ice weighing ten tons with one blow.");
+static const u8 DexDescription_Walrein_2[] = _(
+ "This POKéMON’s thick coat of blubber\n"
+ "insulates it from subzero temperatures.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Clamperl_1[] = _(
+ "CLAMPERL grows while being protected\n"
+ "by its rock-hard shell. When its body\n"
+ "becomes too large to fit inside the");
+static const u8 DexDescription_Clamperl_2[] = _(
+ "shell, it is sure evidence that this\n"
+ "POKéMON is getting close to evolution.");
+#else
+static const u8 DexDescription_Clamperl_1[] = _(
+ "CLAMPERL’s sturdy shell is not only good\n"
+ "for protection - it is also used for\n"
+ "clamping and catching prey.");
+static const u8 DexDescription_Clamperl_2[] = _(
+ "A fully grown CLAMPERL’s shell will be\n"
+ "scored with nicks and scratches all\n"
+ "over.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Huntail_1[] = _(
+ "HUNTAIL’s tail is shaped like a fish.\n"
+ "It uses the tail to attract prey, then\n"
+ "swallows the prey whole with its large,");
+static const u8 DexDescription_Huntail_2[] = _(
+ "gaping mouth.\n"
+ "This POKéMON swims by wiggling its\n"
+ "slender body like a snake.");
+#else
+static const u8 DexDescription_Huntail_1[] = _(
+ "HUNTAIL’s presence went unnoticed by\n"
+ "people for a long time because it lives\n"
+ "at extreme depths in the sea.");
+static const u8 DexDescription_Huntail_2[] = _(
+ "This POKéMON’s eyes can see clearly\n"
+ "even in the murky dark depths of the\n"
+ "ocean.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Gorebyss_1[] = _(
+ "Although GOREBYSS is the very picture\n"
+ "of elegance and beauty while swimming,\n"
+ "it is also cruel. When it spots prey, this");
+static const u8 DexDescription_Gorebyss_2[] = _(
+ "POKéMON inserts its thin mouth into the\n"
+ "prey’s body and drains the prey of its\n"
+ "body fluids.");
+#else
+static const u8 DexDescription_Gorebyss_1[] = _(
+ "GOREBYSS lives in the southern seas\n"
+ "at extreme depths. Its body is built to\n"
+ "withstand the enormous pressure of");
+static const u8 DexDescription_Gorebyss_2[] = _(
+ "water at incredible depths. Because of\n"
+ "this, this POKéMON’s body is unharmed\n"
+ "by ordinary attacks.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Relicanth_1[] = _(
+ "RELICANTH is a rare species that was\n"
+ "discovered in deep-sea explorations.\n"
+ "This POKéMON’s body withstands the");
+static const u8 DexDescription_Relicanth_2[] = _(
+ "enormous water pressure of the ocean\n"
+ "depths. Its body is covered in tough\n"
+ "scales that are like craggy rocks.");
+#else
+static const u8 DexDescription_Relicanth_1[] = _(
+ "RELICANTH is a POKéMON species that\n"
+ "existed for a hundred million years\n"
+ "without ever changing its form.");
+static const u8 DexDescription_Relicanth_2[] = _(
+ "This ancient POKéMON feeds on\n"
+ "microscopic organisms with its\n"
+ "toothless mouth.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Luvdisc_1[] = _(
+ "LUVDISC’s heart-shaped body is a\n"
+ "symbol of love and romance.\n"
+ "It is said that any couple meeting this");
+static const u8 DexDescription_Luvdisc_2[] = _(
+ "POKéMON is promised a loving\n"
+ "relationship that never ends.");
+#else
+static const u8 DexDescription_Luvdisc_1[] = _(
+ "LUVDISC live in shallow seas in the\n"
+ "tropics. This heart-shaped POKéMON\n"
+ "earned its name by swimming after");
+static const u8 DexDescription_Luvdisc_2[] = _(
+ "loving couples it spotted in the\n"
+ "ocean’s waves.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Bagon_1[] = _(
+ "BAGON harbors a never-ending dream of\n"
+ "one day soaring high among the clouds.\n"
+ "As if trying to dispel its frustration");
+static const u8 DexDescription_Bagon_2[] = _(
+ "over its inability to fly, this POKéMON\n"
+ "slams its hard head against huge rocks\n"
+ "and shatters them into pebbles.");
+#else
+static const u8 DexDescription_Bagon_1[] = _(
+ "BAGON has a dream of one day soaring\n"
+ "in the sky. In doomed efforts to fly,\n"
+ "this POKéMON hurls itself off cliffs.");
+static const u8 DexDescription_Bagon_2[] = _(
+ "As a result of its dives, its head has \n"
+ "grown tough and as hard as tempered\n"
+ "steel.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Shelgon_1[] = _(
+ "Covering SHELGON’s body are outgrowths\n"
+ "much like bones. The shell is very hard\n"
+ "and bounces off enemy attacks.");
+static const u8 DexDescription_Shelgon_2[] = _(
+ "When awaiting evolution, this POKéMON\n"
+ "hides away in a cavern.");
+#else
+static const u8 DexDescription_Shelgon_1[] = _(
+ "Inside SHELGON’s armor-like shell, cells\n"
+ "are in the midst of transformation\n"
+ "to create an entirely new body.");
+static const u8 DexDescription_Shelgon_2[] = _(
+ "This POKéMON’s shell is extremely heavy,\n"
+ "making its movements sluggish.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Salamence_1[] = _(
+ "By evolving into SALAMENCE, this\n"
+ "POKéMON finally realizes its long-held\n"
+ "dream of growing wings.");
+static const u8 DexDescription_Salamence_2[] = _(
+ "To express its joy, it flies and wheels\n"
+ "all over the sky while spouting flames\n"
+ "from its mouth.");
+#else
+static const u8 DexDescription_Salamence_1[] = _(
+ "SALAMENCE came about as a result of a\n"
+ "strong, long-held dream of growing\n"
+ "wings. It is said that this powerful");
+static const u8 DexDescription_Salamence_2[] = _(
+ "desire triggered a sudden mutation in\n"
+ "this POKéMON’s cells, causing it to\n"
+ "sprout its magnificent wings.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Beldum_1[] = _(
+ "BELDUM keeps itself floating by\n"
+ "generating a magnetic force that\n"
+ "repels earth’s natural magnetism.");
+static const u8 DexDescription_Beldum_2[] = _(
+ "When it sleeps, this POKéMON anchors\n"
+ "itself to a cliff using the hooks on\n"
+ "its rear.");
+#else
+static const u8 DexDescription_Beldum_1[] = _(
+ "Instead of blood, a powerful magnetic\n"
+ "force courses throughout BELDUM’s\n"
+ "body. This POKéMON communicates with");
+static const u8 DexDescription_Beldum_2[] = _(
+ "others by sending controlled pulses of\n"
+ "magnetism.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Metang_1[] = _(
+ "When two BELDUM fuse together, METANG\n"
+ "is formed. The brains of the BELDUM are\n"
+ "joined by a magnetic nervous system.");
+static const u8 DexDescription_Metang_2[] = _(
+ "This POKéMON turns its arms to the rear\n"
+ "for traveling at high speed.");
+#else
+static const u8 DexDescription_Metang_1[] = _(
+ "When two BELDUM fuse together, METANG\n"
+ "is formed. The brains of the BELDUM are\n"
+ "joined by a magnetic nervous system.");
+static const u8 DexDescription_Metang_2[] = _(
+ "By linking its brains magnetically,\n"
+ "this POKéMON generates strong\n"
+ "psychokinetic power.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Metagross_1[] = _(
+ "METAGROSS is the result of two METANG\n"
+ "achieving fusion. When hunting, this\n"
+ "POKéMON pins the prey to the ground");
+static const u8 DexDescription_Metagross_2[] = _(
+ "under its massive body. It then eats\n"
+ "the helpless victim using the large \n"
+ "mouth on its stomach.");
+#else
+static const u8 DexDescription_Metagross_1[] = _(
+ "METAGROSS has four brains in total.\n"
+ "Combined, the four brains can breeze\n"
+ "through difficult calculations faster");
+static const u8 DexDescription_Metagross_2[] = _(
+ "than a supercomputer.\n"
+ "This POKéMON can float in the air by\n"
+ "tucking in its four legs.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Regirock_1[] = _(
+ "REGIROCK’s body is composed entirely of\n"
+ "rocks. Recently, a study made the\n"
+ "startling discovery that the rocks");
+static const u8 DexDescription_Regirock_2[] = _(
+ "were all unearthed from different\n"
+ "locations.");
+#else
+static const u8 DexDescription_Regirock_1[] = _(
+ "REGIROCK was sealed away by people\n"
+ "long ago. If this POKéMON’s body is\n"
+ "damaged in battle, it is said to seek");
+static const u8 DexDescription_Regirock_2[] = _(
+ "out suitable rocks on its own to repair\n"
+ "itself.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Regice_1[] = _(
+ "REGICE cloaks itself with frigid air of\n"
+ "negative 328 degrees F.\n"
+ "Things will freeze solid just by going");
+static const u8 DexDescription_Regice_2[] = _(
+ "near this POKéMON.\n"
+ "Its icy body is so cold, it will not melt\n"
+ "even if it is immersed in magma.");
+#else
+static const u8 DexDescription_Regice_1[] = _(
+ "REGICE’s body was made during an ice\n"
+ "age. The deep-frozen body can’t be\n"
+ "melted, even by fire.");
+static const u8 DexDescription_Regice_2[] = _(
+ "This POKéMON controls frigid air of\n"
+ "minus 328 degrees F.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Registeel_1[] = _(
+ "REGISTEEL was imprisoned by people\n"
+ "in ancient times.\n"
+ "The metal composing its body is thought");
+static const u8 DexDescription_Registeel_2[] = _(
+ "to be a curious substance that is not\n"
+ "of this earth.");
+#else
+static const u8 DexDescription_Registeel_1[] = _(
+ "REGISTEEL has a body that is harder\n"
+ "than any kind of metal.\n"
+ "Its body is apparently hollow.");
+static const u8 DexDescription_Registeel_2[] = _(
+ "No one has any idea what this POKéMON\n"
+ "eats.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Latias_1[] = _(
+ "LATIAS is highly intelligent and capable\n"
+ "of understanding human speech.\n"
+ "It is covered with a glass-like down.");
+static const u8 DexDescription_Latias_2[] = _(
+ "The POKéMON enfolds its body with its\n"
+ "down and refracts light to alter its\n"
+ "appearance.");
+#else
+static const u8 DexDescription_Latias_1[] = _(
+ "LATIAS is highly sensitive to the\n"
+ "emotions of people. If it senses any\n"
+ "hostility, this POKéMON ruffles the");
+static const u8 DexDescription_Latias_2[] = _(
+ "feathers all over its body and cries\n"
+ "shrilly to intimidate the foe.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Latios_1[] = _(
+ "LATIOS will only open its heart to a\n"
+ "TRAINER with a compassionate spirit.\n"
+ "This POKéMON can fly faster than a jet");
+static const u8 DexDescription_Latios_2[] = _(
+ "plane by folding its forelegs to minimize\n"
+ "air resistance.");
+#else
+static const u8 DexDescription_Latios_1[] = _(
+ "LATIOS has the ability to make its foe\n"
+ "see an image of what it has seen or\n"
+ "imagines in its head.");
+static const u8 DexDescription_Latios_2[] = _(
+ "This POKéMON is intelligent and\n"
+ "understands human speech.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Kyogre_1[] = _(
+ "KYOGRE is named in mythology as the\n"
+ "POKéMON that expanded the sea by\n"
+ "covering the land with torrential rains");
+static const u8 DexDescription_Kyogre_2[] = _(
+ "and towering tidal waves.\n"
+ "It took to sleep after a cataclysmic\n"
+ "battle with GROUDON.");
+#else
+static const u8 DexDescription_Kyogre_1[] = _(
+ "KYOGRE has the power to create massive\n"
+ "rain clouds that cover the entire sky\n"
+ "and bring about torrential downpours.");
+static const u8 DexDescription_Kyogre_2[] = _(
+ "This POKéMON saved people who were\n"
+ "suffering from droughts.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Groudon_1[] = _(
+ "GROUDON has the power to scatter rain\n"
+ "clouds and make water evaporate with\n"
+ "light and heat.");
+static const u8 DexDescription_Groudon_2[] = _(
+ "It came as a savior to people who had\n"
+ "been suffering from terrible floods.");
+#else
+static const u8 DexDescription_Groudon_1[] = _(
+ "GROUDON has long been described in \n"
+ "mythology as the POKéMON that raised\n"
+ "lands and expanded continents.");
+static const u8 DexDescription_Groudon_2[] = _(
+ "This POKéMON took to sleep after a\n"
+ "cataclysmic battle with KYOGRE.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Rayquaza_1[] = _(
+ "RAYQUAZA is said to have lived for\n"
+ "hundreds of millions of years in the\n"
+ "earth’s ozone layer, above the clouds.");
+static const u8 DexDescription_Rayquaza_2[] = _(
+ "Its existence had been completely\n"
+ "unknown because it lived so high in\n"
+ "the sky.");
+#else
+static const u8 DexDescription_Rayquaza_1[] = _(
+ "RAYQUAZA lived for hundreds of millions\n"
+ "of years in the earth’s ozone layer, \n"
+ "never descending to the ground.");
+static const u8 DexDescription_Rayquaza_2[] = _(
+ "This POKéMON appears to feed on water\n"
+ "and particles in the atmosphere.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Jirachi_1[] = _(
+ "JIRACHI will awaken from its sleep of\n"
+ "a thousand years if you sing to it in a\n"
+ "voice of purity.");
+static const u8 DexDescription_Jirachi_2[] = _(
+ "It is said to make true any wish that\n"
+ "people desire.");
+#else
+static const u8 DexDescription_Jirachi_1[] = _(
+ "A legend states that JIRACHI will make\n"
+ "true any wish that is written on notes\n"
+ "attached to its head when it awakens.");
+static const u8 DexDescription_Jirachi_2[] = _(
+ "If this POKéMON senses danger, it will\n"
+ "fight without awakening.");
+#endif
+
+#ifdef SAPPHIRE
+static const u8 DexDescription_Deoxys_1[] = _(
+ "DEOXYS emerged from a virus that came\n"
+ "from space. It is highly intelligent and\n"
+ "wields psychokinetic powers.");
+static const u8 DexDescription_Deoxys_2[] = _(
+ "This POKéMON shoots lasers from the\n"
+ "crystalline organ on its chest.");
+#else
+static const u8 DexDescription_Deoxys_1[] = _(
+ "The DNA of a space virus underwent a\n"
+ "sudden mutation upon exposure to a\n"
+ "laser beam and resulted in DEOXYS.");
+static const u8 DexDescription_Deoxys_2[] = _(
+ "The crystalline organ on this POKéMON’s\n"
+ "chest appears to be its brain.");
+#endif
+
+static const struct PokedexEntry gPokedexEntries[] =
+{
+ { //Dummy
+ .categoryName = _("UNKNOWN"),
+ .height = 0,
+ .weight = 0,
+ .descriptionPage1 = DexDescription_Dummy_1,
+ .descriptionPage2 = DexDescription_Dummy_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Bulbasaur
+ .categoryName = _("SEED"),
+ .height = 7,
+ .weight = 69,
+ .descriptionPage1 = DexDescription_Bulbasaur_1,
+ .descriptionPage2 = DexDescription_Bulbasaur_2,
+ .pokemonScale = 356,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ivysaur
+ .categoryName = _("SEED"),
+ .height = 10,
+ .weight = 130,
+ .descriptionPage1 = DexDescription_Ivysaur_1,
+ .descriptionPage2 = DexDescription_Ivysaur_2,
+ .pokemonScale = 335,
+ .pokemonOffset = 13,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Venusaur
+ .categoryName = _("SEED"),
+ .height = 20,
+ .weight = 1000,
+ .descriptionPage1 = DexDescription_Venusaur_1,
+ .descriptionPage2 = DexDescription_Venusaur_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 388,
+ .trainerOffset = 6,
+ },
+ { //Charmander
+ .categoryName = _("LIZARD"),
+ .height = 6,
+ .weight = 85,
+ .descriptionPage1 = DexDescription_Charmander_1,
+ .descriptionPage2 = DexDescription_Charmander_2,
+ .pokemonScale = 444,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Charmeleon
+ .categoryName = _("FLAME"),
+ .height = 11,
+ .weight = 190,
+ .descriptionPage1 = DexDescription_Charmeleon_1,
+ .descriptionPage2 = DexDescription_Charmeleon_2,
+ .pokemonScale = 302,
+ .pokemonOffset = 9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Charizard
+ .categoryName = _("FLAME"),
+ .height = 17,
+ .weight = 905,
+ .descriptionPage1 = DexDescription_Charizard_1,
+ .descriptionPage2 = DexDescription_Charizard_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 1,
+ .trainerScale = 302,
+ .trainerOffset = 3,
+ },
+ { //Squirtle
+ .categoryName = _("TINY TURTLE"),
+ .height = 5,
+ .weight = 90,
+ .descriptionPage1 = DexDescription_Squirtle_1,
+ .descriptionPage2 = DexDescription_Squirtle_2,
+ .pokemonScale = 412,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Wartortle
+ .categoryName = _("TURTLE"),
+ .height = 10,
+ .weight = 225,
+ .descriptionPage1 = DexDescription_Wartortle_1,
+ .descriptionPage2 = DexDescription_Wartortle_2,
+ .pokemonScale = 332,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Blastoise
+ .categoryName = _("SHELLFISH"),
+ .height = 16,
+ .weight = 855,
+ .descriptionPage1 = DexDescription_Blastoise_1,
+ .descriptionPage2 = DexDescription_Blastoise_2,
+ .pokemonScale = 256,
+ .pokemonOffset = -1,
+ .trainerScale = 293,
+ .trainerOffset = 2,
+ },
+ { //Caterpie
+ .categoryName = _("WORM"),
+ .height = 3,
+ .weight = 29,
+ .descriptionPage1 = DexDescription_Caterpie_1,
+ .descriptionPage2 = DexDescription_Caterpie_2,
+ .pokemonScale = 549,
+ .pokemonOffset = 22,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Metapod
+ .categoryName = _("COCOON"),
+ .height = 7,
+ .weight = 99,
+ .descriptionPage1 = DexDescription_Metapod_1,
+ .descriptionPage2 = DexDescription_Metapod_2,
+ .pokemonScale = 350,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Butterfree
+ .categoryName = _("BUTTERFLY"),
+ .height = 11,
+ .weight = 320,
+ .descriptionPage1 = DexDescription_Butterfree_1,
+ .descriptionPage2 = DexDescription_Butterfree_2,
+ .pokemonScale = 312,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Weedle
+ .categoryName = _("HAIRY BUG"),
+ .height = 3,
+ .weight = 32,
+ .descriptionPage1 = DexDescription_Weedle_1,
+ .descriptionPage2 = DexDescription_Weedle_2,
+ .pokemonScale = 455,
+ .pokemonOffset = 22,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Kakuna
+ .categoryName = _("COCOON"),
+ .height = 6,
+ .weight = 100,
+ .descriptionPage1 = DexDescription_Kakuna_1,
+ .descriptionPage2 = DexDescription_Kakuna_2,
+ .pokemonScale = 424,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Beedrill
+ .categoryName = _("POISON BEE"),
+ .height = 10,
+ .weight = 295,
+ .descriptionPage1 = DexDescription_Beedrill_1,
+ .descriptionPage2 = DexDescription_Beedrill_2,
+ .pokemonScale = 366,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Pidgey
+ .categoryName = _("TINY BIRD"),
+ .height = 3,
+ .weight = 18,
+ .descriptionPage1 = DexDescription_Pidgey_1,
+ .descriptionPage2 = DexDescription_Pidgey_2,
+ .pokemonScale = 508,
+ .pokemonOffset = -3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Pidgeotto
+ .categoryName = _("BIRD"),
+ .height = 11,
+ .weight = 300,
+ .descriptionPage1 = DexDescription_Pidgeotto_1,
+ .descriptionPage2 = DexDescription_Pidgeotto_2,
+ .pokemonScale = 331,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Pidgeot
+ .categoryName = _("BIRD"),
+ .height = 15,
+ .weight = 395,
+ .descriptionPage1 = DexDescription_Pidgeot_1,
+ .descriptionPage2 = DexDescription_Pidgeot_2,
+ .pokemonScale = 269,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Rattata
+ .categoryName = _("MOUSE"),
+ .height = 3,
+ .weight = 35,
+ .descriptionPage1 = DexDescription_Rattata_1,
+ .descriptionPage2 = DexDescription_Rattata_2,
+ .pokemonScale = 481,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Raticate
+ .categoryName = _("MOUSE"),
+ .height = 7,
+ .weight = 185,
+ .descriptionPage1 = DexDescription_Raticate_1,
+ .descriptionPage2 = DexDescription_Raticate_2,
+ .pokemonScale = 459,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Spearow
+ .categoryName = _("TINY BIRD"),
+ .height = 3,
+ .weight = 20,
+ .descriptionPage1 = DexDescription_Spearow_1,
+ .descriptionPage2 = DexDescription_Spearow_2,
+ .pokemonScale = 571,
+ .pokemonOffset = 22,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Fearow
+ .categoryName = _("BEAK"),
+ .height = 12,
+ .weight = 380,
+ .descriptionPage1 = DexDescription_Fearow_1,
+ .descriptionPage2 = DexDescription_Fearow_2,
+ .pokemonScale = 278,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ekans
+ .categoryName = _("SNAKE"),
+ .height = 20,
+ .weight = 69,
+ .descriptionPage1 = DexDescription_Ekans_1,
+ .descriptionPage2 = DexDescription_Ekans_2,
+ .pokemonScale = 298,
+ .pokemonOffset = 12,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Arbok
+ .categoryName = _("COBRA"),
+ .height = 35,
+ .weight = 650,
+ .descriptionPage1 = DexDescription_Arbok_1,
+ .descriptionPage2 = DexDescription_Arbok_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 296,
+ .trainerOffset = 2,
+ },
+ { //Pikachu
+ .categoryName = _("MOUSE"),
+ .height = 4,
+ .weight = 60,
+ .descriptionPage1 = DexDescription_Pikachu_1,
+ .descriptionPage2 = DexDescription_Pikachu_2,
+ .pokemonScale = 479,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Raichu
+ .categoryName = _("MOUSE"),
+ .height = 8,
+ .weight = 300,
+ .descriptionPage1 = DexDescription_Raichu_1,
+ .descriptionPage2 = DexDescription_Raichu_2,
+ .pokemonScale = 426,
+ .pokemonOffset = 13,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Sandshrew
+ .categoryName = _("MOUSE"),
+ .height = 6,
+ .weight = 120,
+ .descriptionPage1 = DexDescription_Sandshrew_1,
+ .descriptionPage2 = DexDescription_Sandshrew_2,
+ .pokemonScale = 365,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Sandslash
+ .categoryName = _("MOUSE"),
+ .height = 10,
+ .weight = 295,
+ .descriptionPage1 = DexDescription_Sandslash_1,
+ .descriptionPage2 = DexDescription_Sandslash_2,
+ .pokemonScale = 341,
+ .pokemonOffset = 11,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //NidoranF
+ .categoryName = _("POISON PIN"),
+ .height = 4,
+ .weight = 70,
+ .descriptionPage1 = DexDescription_NidoranF_1,
+ .descriptionPage2 = DexDescription_NidoranF_2,
+ .pokemonScale = 488,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Nidorina
+ .categoryName = _("POISON PIN"),
+ .height = 8,
+ .weight = 200,
+ .descriptionPage1 = DexDescription_Nidorina_1,
+ .descriptionPage2 = DexDescription_Nidorina_2,
+ .pokemonScale = 381,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Nidoqueen
+ .categoryName = _("DRILL"),
+ .height = 13,
+ .weight = 600,
+ .descriptionPage1 = DexDescription_Nidoqueen_1,
+ .descriptionPage2 = DexDescription_Nidoqueen_2,
+ .pokemonScale = 293,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //NidoranM
+ .categoryName = _("POISON PIN"),
+ .height = 5,
+ .weight = 90,
+ .descriptionPage1 = DexDescription_NidoranM_1,
+ .descriptionPage2 = DexDescription_NidoranM_2,
+ .pokemonScale = 511,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Nidorino
+ .categoryName = _("POISON PIN"),
+ .height = 9,
+ .weight = 195,
+ .descriptionPage1 = DexDescription_Nidorino_1,
+ .descriptionPage2 = DexDescription_Nidorino_2,
+ .pokemonScale = 408,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Nidoking
+ .categoryName = _("DRILL"),
+ .height = 14,
+ .weight = 620,
+ .descriptionPage1 = DexDescription_Nidoking_1,
+ .descriptionPage2 = DexDescription_Nidoking_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Clefairy
+ .categoryName = _("FAIRY"),
+ .height = 6,
+ .weight = 75,
+ .descriptionPage1 = DexDescription_Clefairy_1,
+ .descriptionPage2 = DexDescription_Clefairy_2,
+ .pokemonScale = 441,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Clefable
+ .categoryName = _("FAIRY"),
+ .height = 13,
+ .weight = 400,
+ .descriptionPage1 = DexDescription_Clefable_1,
+ .descriptionPage2 = DexDescription_Clefable_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Vulpix
+ .categoryName = _("FOX"),
+ .height = 6,
+ .weight = 99,
+ .descriptionPage1 = DexDescription_Vulpix_1,
+ .descriptionPage2 = DexDescription_Vulpix_2,
+ .pokemonScale = 542,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ninetales
+ .categoryName = _("FOX"),
+ .height = 11,
+ .weight = 199,
+ .descriptionPage1 = DexDescription_Ninetales_1,
+ .descriptionPage2 = DexDescription_Ninetales_2,
+ .pokemonScale = 339,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Jigglypuff
+ .categoryName = _("BALLOON"),
+ .height = 5,
+ .weight = 55,
+ .descriptionPage1 = DexDescription_Jigglypuff_1,
+ .descriptionPage2 = DexDescription_Jigglypuff_2,
+ .pokemonScale = 433,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Wigglytuff
+ .categoryName = _("BALLOON"),
+ .height = 10,
+ .weight = 120,
+ .descriptionPage1 = DexDescription_Wigglytuff_1,
+ .descriptionPage2 = DexDescription_Wigglytuff_2,
+ .pokemonScale = 328,
+ .pokemonOffset = 11,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Zubat
+ .categoryName = _("BAT"),
+ .height = 8,
+ .weight = 75,
+ .descriptionPage1 = DexDescription_Zubat_1,
+ .descriptionPage2 = DexDescription_Zubat_2,
+ .pokemonScale = 362,
+ .pokemonOffset = -5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Golbat
+ .categoryName = _("BAT"),
+ .height = 16,
+ .weight = 550,
+ .descriptionPage1 = DexDescription_Golbat_1,
+ .descriptionPage2 = DexDescription_Golbat_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Oddish
+ .categoryName = _("WEED"),
+ .height = 5,
+ .weight = 54,
+ .descriptionPage1 = DexDescription_Oddish_1,
+ .descriptionPage2 = DexDescription_Oddish_2,
+ .pokemonScale = 423,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Gloom
+ .categoryName = _("WEED"),
+ .height = 8,
+ .weight = 86,
+ .descriptionPage1 = DexDescription_Gloom_1,
+ .descriptionPage2 = DexDescription_Gloom_2,
+ .pokemonScale = 329,
+ .pokemonOffset = 13,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Vileplume
+ .categoryName = _("FLOWER"),
+ .height = 12,
+ .weight = 186,
+ .descriptionPage1 = DexDescription_Vileplume_1,
+ .descriptionPage2 = DexDescription_Vileplume_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Paras
+ .categoryName = _("MUSHROOM"),
+ .height = 3,
+ .weight = 54,
+ .descriptionPage1 = DexDescription_Paras_1,
+ .descriptionPage2 = DexDescription_Paras_2,
+ .pokemonScale = 593,
+ .pokemonOffset = 22,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Parasect
+ .categoryName = _("MUSHROOM"),
+ .height = 10,
+ .weight = 295,
+ .descriptionPage1 = DexDescription_Parasect_1,
+ .descriptionPage2 = DexDescription_Parasect_2,
+ .pokemonScale = 307,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Venonat
+ .categoryName = _("INSECT"),
+ .height = 10,
+ .weight = 300,
+ .descriptionPage1 = DexDescription_Venonat_1,
+ .descriptionPage2 = DexDescription_Venonat_2,
+ .pokemonScale = 360,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = -1,
+ },
+ { //Venomoth
+ .categoryName = _("POISON MOTH"),
+ .height = 15,
+ .weight = 125,
+ .descriptionPage1 = DexDescription_Venomoth_1,
+ .descriptionPage2 = DexDescription_Venomoth_2,
+ .pokemonScale = 285,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 1,
+ },
+ { //Diglett
+ .categoryName = _("MOLE"),
+ .height = 2,
+ .weight = 8,
+ .descriptionPage1 = DexDescription_Diglett_1,
+ .descriptionPage2 = DexDescription_Diglett_2,
+ .pokemonScale = 833,
+ .pokemonOffset = 25,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Dugtrio
+ .categoryName = _("MOLE"),
+ .height = 7,
+ .weight = 333,
+ .descriptionPage1 = DexDescription_Dugtrio_1,
+ .descriptionPage2 = DexDescription_Dugtrio_2,
+ .pokemonScale = 406,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Meowth
+ .categoryName = _("SCRATCH CAT"),
+ .height = 4,
+ .weight = 42,
+ .descriptionPage1 = DexDescription_Meowth_1,
+ .descriptionPage2 = DexDescription_Meowth_2,
+ .pokemonScale = 480,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Persian
+ .categoryName = _("CLASSY CAT"),
+ .height = 10,
+ .weight = 320,
+ .descriptionPage1 = DexDescription_Persian_1,
+ .descriptionPage2 = DexDescription_Persian_2,
+ .pokemonScale = 320,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Psyduck
+ .categoryName = _("DUCK"),
+ .height = 8,
+ .weight = 196,
+ .descriptionPage1 = DexDescription_Psyduck_1,
+ .descriptionPage2 = DexDescription_Psyduck_2,
+ .pokemonScale = 369,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Golduck
+ .categoryName = _("DUCK"),
+ .height = 17,
+ .weight = 766,
+ .descriptionPage1 = DexDescription_Golduck_1,
+ .descriptionPage2 = DexDescription_Golduck_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 1,
+ .trainerScale = 273,
+ .trainerOffset = 1,
+ },
+ { //Mankey
+ .categoryName = _("PIG MONKEY"),
+ .height = 5,
+ .weight = 280,
+ .descriptionPage1 = DexDescription_Mankey_1,
+ .descriptionPage2 = DexDescription_Mankey_2,
+ .pokemonScale = 404,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Primeape
+ .categoryName = _("PIG MONKEY"),
+ .height = 10,
+ .weight = 320,
+ .descriptionPage1 = DexDescription_Primeape_1,
+ .descriptionPage2 = DexDescription_Primeape_2,
+ .pokemonScale = 326,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Growlithe
+ .categoryName = _("PUPPY"),
+ .height = 7,
+ .weight = 190,
+ .descriptionPage1 = DexDescription_Growlithe_1,
+ .descriptionPage2 = DexDescription_Growlithe_2,
+ .pokemonScale = 346,
+ .pokemonOffset = 14,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Arcanine
+ .categoryName = _("LEGENDARY"),
+ .height = 19,
+ .weight = 1550,
+ .descriptionPage1 = DexDescription_Arcanine_1,
+ .descriptionPage2 = DexDescription_Arcanine_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 1,
+ .trainerScale = 312,
+ .trainerOffset = 4,
+ },
+ { //Poliwag
+ .categoryName = _("TADPOLE"),
+ .height = 6,
+ .weight = 124,
+ .descriptionPage1 = DexDescription_Poliwag_1,
+ .descriptionPage2 = DexDescription_Poliwag_2,
+ .pokemonScale = 369,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Poliwhirl
+ .categoryName = _("TADPOLE"),
+ .height = 10,
+ .weight = 200,
+ .descriptionPage1 = DexDescription_Poliwhirl_1,
+ .descriptionPage2 = DexDescription_Poliwhirl_2,
+ .pokemonScale = 288,
+ .pokemonOffset = 11,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Poliwrath
+ .categoryName = _("TADPOLE"),
+ .height = 13,
+ .weight = 540,
+ .descriptionPage1 = DexDescription_Poliwrath_1,
+ .descriptionPage2 = DexDescription_Poliwrath_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 6,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Abra
+ .categoryName = _("PSI"),
+ .height = 9,
+ .weight = 195,
+ .descriptionPage1 = DexDescription_Abra_1,
+ .descriptionPage2 = DexDescription_Abra_2,
+ .pokemonScale = 363,
+ .pokemonOffset = 14,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Kadabra
+ .categoryName = _("PSI"),
+ .height = 13,
+ .weight = 565,
+ .descriptionPage1 = DexDescription_Kadabra_1,
+ .descriptionPage2 = DexDescription_Kadabra_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Alakazam
+ .categoryName = _("PSI"),
+ .height = 15,
+ .weight = 480,
+ .descriptionPage1 = DexDescription_Alakazam_1,
+ .descriptionPage2 = DexDescription_Alakazam_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Machop
+ .categoryName = _("SUPERPOWER"),
+ .height = 8,
+ .weight = 195,
+ .descriptionPage1 = DexDescription_Machop_1,
+ .descriptionPage2 = DexDescription_Machop_2,
+ .pokemonScale = 342,
+ .pokemonOffset = 14,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Machoke
+ .categoryName = _("SUPERPOWER"),
+ .height = 15,
+ .weight = 705,
+ .descriptionPage1 = DexDescription_Machoke_1,
+ .descriptionPage2 = DexDescription_Machoke_2,
+ .pokemonScale = 323,
+ .pokemonOffset = 9,
+ .trainerScale = 257,
+ .trainerOffset = 0,
+ },
+ { //Machamp
+ .categoryName = _("SUPERPOWER"),
+ .height = 16,
+ .weight = 1300,
+ .descriptionPage1 = DexDescription_Machamp_1,
+ .descriptionPage2 = DexDescription_Machamp_2,
+ .pokemonScale = 280,
+ .pokemonOffset = 1,
+ .trainerScale = 269,
+ .trainerOffset = -1,
+ },
+ { //Bellsprout
+ .categoryName = _("FLOWER"),
+ .height = 7,
+ .weight = 40,
+ .descriptionPage1 = DexDescription_Bellsprout_1,
+ .descriptionPage2 = DexDescription_Bellsprout_2,
+ .pokemonScale = 354,
+ .pokemonOffset = 16,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Weepinbell
+ .categoryName = _("FLYCATCHER"),
+ .height = 10,
+ .weight = 64,
+ .descriptionPage1 = DexDescription_Weepinbell_1,
+ .descriptionPage2 = DexDescription_Weepinbell_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Victreebel
+ .categoryName = _("FLYCATCHER"),
+ .height = 17,
+ .weight = 155,
+ .descriptionPage1 = DexDescription_Victreebel_1,
+ .descriptionPage2 = DexDescription_Victreebel_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 1,
+ .trainerScale = 312,
+ .trainerOffset = 3,
+ },
+ { //Tentacool
+ .categoryName = _("JELLYFISH"),
+ .height = 9,
+ .weight = 455,
+ .descriptionPage1 = DexDescription_Tentacool_1,
+ .descriptionPage2 = DexDescription_Tentacool_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Tentacruel
+ .categoryName = _("JELLYFISH"),
+ .height = 16,
+ .weight = 550,
+ .descriptionPage1 = DexDescription_Tentacruel_1,
+ .descriptionPage2 = DexDescription_Tentacruel_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 312,
+ .trainerOffset = 1,
+ },
+ { //Geodude
+ .categoryName = _("ROCK"),
+ .height = 4,
+ .weight = 200,
+ .descriptionPage1 = DexDescription_Geodude_1,
+ .descriptionPage2 = DexDescription_Geodude_2,
+ .pokemonScale = 347,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Graveler
+ .categoryName = _("ROCK"),
+ .height = 10,
+ .weight = 1050,
+ .descriptionPage1 = DexDescription_Graveler_1,
+ .descriptionPage2 = DexDescription_Graveler_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Golem
+ .categoryName = _("MEGATON"),
+ .height = 14,
+ .weight = 3000,
+ .descriptionPage1 = DexDescription_Golem_1,
+ .descriptionPage2 = DexDescription_Golem_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 296,
+ .trainerOffset = 2,
+ },
+ { //Ponyta
+ .categoryName = _("FIRE HORSE"),
+ .height = 10,
+ .weight = 300,
+ .descriptionPage1 = DexDescription_Ponyta_1,
+ .descriptionPage2 = DexDescription_Ponyta_2,
+ .pokemonScale = 283,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Rapidash
+ .categoryName = _("FIRE HORSE"),
+ .height = 17,
+ .weight = 950,
+ .descriptionPage1 = DexDescription_Rapidash_1,
+ .descriptionPage2 = DexDescription_Rapidash_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 289,
+ .trainerOffset = 1,
+ },
+ { //Slowpoke
+ .categoryName = _("DOPEY"),
+ .height = 12,
+ .weight = 360,
+ .descriptionPage1 = DexDescription_Slowpoke_1,
+ .descriptionPage2 = DexDescription_Slowpoke_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Slowbro
+ .categoryName = _("HERMIT CRAB"),
+ .height = 16,
+ .weight = 785,
+ .descriptionPage1 = DexDescription_Slowbro_1,
+ .descriptionPage2 = DexDescription_Slowbro_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 6,
+ .trainerScale = 296,
+ .trainerOffset = 2,
+ },
+ { //Magnemite
+ .categoryName = _("MAGNET"),
+ .height = 3,
+ .weight = 60,
+ .descriptionPage1 = DexDescription_Magnemite_1,
+ .descriptionPage2 = DexDescription_Magnemite_2,
+ .pokemonScale = 288,
+ .pokemonOffset = -9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Magneton
+ .categoryName = _("MAGNET"),
+ .height = 10,
+ .weight = 600,
+ .descriptionPage1 = DexDescription_Magneton_1,
+ .descriptionPage2 = DexDescription_Magneton_2,
+ .pokemonScale = 292,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Farfetchd
+ .categoryName = _("WILD DUCK"),
+ .height = 8,
+ .weight = 150,
+ .descriptionPage1 = DexDescription_Farfetchd_1,
+ .descriptionPage2 = DexDescription_Farfetchd_2,
+ .pokemonScale = 330,
+ .pokemonOffset = 2,
+ .trainerScale = 293,
+ .trainerOffset = 2,
+ },
+ { //Doduo
+ .categoryName = _("TWIN BIRD"),
+ .height = 14,
+ .weight = 392,
+ .descriptionPage1 = DexDescription_Doduo_1,
+ .descriptionPage2 = DexDescription_Doduo_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 257,
+ .trainerOffset = -1,
+ },
+ { //Dodrio
+ .categoryName = _("TRIPLE BIRD"),
+ .height = 18,
+ .weight = 852,
+ .descriptionPage1 = DexDescription_Dodrio_1,
+ .descriptionPage2 = DexDescription_Dodrio_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 268,
+ .trainerOffset = 0,
+ },
+ { //Seel
+ .categoryName = _("SEA LION"),
+ .height = 11,
+ .weight = 900,
+ .descriptionPage1 = DexDescription_Seel_1,
+ .descriptionPage2 = DexDescription_Seel_2,
+ .pokemonScale = 297,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Dewgong
+ .categoryName = _("SEA LION"),
+ .height = 17,
+ .weight = 1200,
+ .descriptionPage1 = DexDescription_Dewgong_1,
+ .descriptionPage2 = DexDescription_Dewgong_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 275,
+ .trainerOffset = 0,
+ },
+ { //Grimer
+ .categoryName = _("SLUDGE"),
+ .height = 9,
+ .weight = 300,
+ .descriptionPage1 = DexDescription_Grimer_1,
+ .descriptionPage2 = DexDescription_Grimer_2,
+ .pokemonScale = 258,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Muk
+ .categoryName = _("SLUDGE"),
+ .height = 12,
+ .weight = 300,
+ .descriptionPage1 = DexDescription_Muk_1,
+ .descriptionPage2 = DexDescription_Muk_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Shellder
+ .categoryName = _("BIVALVE"),
+ .height = 3,
+ .weight = 40,
+ .descriptionPage1 = DexDescription_Shellder_1,
+ .descriptionPage2 = DexDescription_Shellder_2,
+ .pokemonScale = 675,
+ .pokemonOffset = 24,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Cloyster
+ .categoryName = _("BIVALVE"),
+ .height = 15,
+ .weight = 1325,
+ .descriptionPage1 = DexDescription_Cloyster_1,
+ .descriptionPage2 = DexDescription_Cloyster_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 269,
+ .trainerOffset = 1,
+ },
+ { //Gastly
+ .categoryName = _("GAS"),
+ .height = 13,
+ .weight = 1,
+ .descriptionPage1 = DexDescription_Gastly_1,
+ .descriptionPage2 = DexDescription_Gastly_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Haunter
+ .categoryName = _("GAS"),
+ .height = 16,
+ .weight = 1,
+ .descriptionPage1 = DexDescription_Haunter_1,
+ .descriptionPage2 = DexDescription_Haunter_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 293,
+ .trainerOffset = 2,
+ },
+ { //Gengar
+ .categoryName = _("SHADOW"),
+ .height = 15,
+ .weight = 405,
+ .descriptionPage1 = DexDescription_Gengar_1,
+ .descriptionPage2 = DexDescription_Gengar_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 302,
+ .trainerOffset = 2,
+ },
+ { //Onix
+ .categoryName = _("ROCK SNAKE"),
+ .height = 88,
+ .weight = 2100,
+ .descriptionPage1 = DexDescription_Onix_1,
+ .descriptionPage2 = DexDescription_Onix_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 1,
+ .trainerScale = 515,
+ .trainerOffset = 14,
+ },
+ { //Drowzee
+ .categoryName = _("HYPNOSIS"),
+ .height = 10,
+ .weight = 324,
+ .descriptionPage1 = DexDescription_Drowzee_1,
+ .descriptionPage2 = DexDescription_Drowzee_2,
+ .pokemonScale = 274,
+ .pokemonOffset = 6,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Hypno
+ .categoryName = _("HYPNOSIS"),
+ .height = 16,
+ .weight = 756,
+ .descriptionPage1 = DexDescription_Hypno_1,
+ .descriptionPage2 = DexDescription_Hypno_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 257,
+ .trainerOffset = 0,
+ },
+ { //Krabby
+ .categoryName = _("RIVER CRAB"),
+ .height = 4,
+ .weight = 65,
+ .descriptionPage1 = DexDescription_Krabby_1,
+ .descriptionPage2 = DexDescription_Krabby_2,
+ .pokemonScale = 469,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Kingler
+ .categoryName = _("PINCER"),
+ .height = 13,
+ .weight = 600,
+ .descriptionPage1 = DexDescription_Kingler_1,
+ .descriptionPage2 = DexDescription_Kingler_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Voltorb
+ .categoryName = _("BALL"),
+ .height = 5,
+ .weight = 104,
+ .descriptionPage1 = DexDescription_Voltorb_1,
+ .descriptionPage2 = DexDescription_Voltorb_2,
+ .pokemonScale = 364,
+ .pokemonOffset = -8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Electrode
+ .categoryName = _("BALL"),
+ .height = 12,
+ .weight = 666,
+ .descriptionPage1 = DexDescription_Electrode_1,
+ .descriptionPage2 = DexDescription_Electrode_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Exeggcute
+ .categoryName = _("EGG"),
+ .height = 4,
+ .weight = 25,
+ .descriptionPage1 = DexDescription_Exeggcute_1,
+ .descriptionPage2 = DexDescription_Exeggcute_2,
+ .pokemonScale = 489,
+ .pokemonOffset = -4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Exeggutor
+ .categoryName = _("COCONUT"),
+ .height = 20,
+ .weight = 1200,
+ .descriptionPage1 = DexDescription_Exeggutor_1,
+ .descriptionPage2 = DexDescription_Exeggutor_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 309,
+ .trainerOffset = 5,
+ },
+ { //Cubone
+ .categoryName = _("LONELY"),
+ .height = 4,
+ .weight = 65,
+ .descriptionPage1 = DexDescription_Cubone_1,
+ .descriptionPage2 = DexDescription_Cubone_2,
+ .pokemonScale = 545,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Marowak
+ .categoryName = _("BONE KEEPER"),
+ .height = 10,
+ .weight = 450,
+ .descriptionPage1 = DexDescription_Marowak_1,
+ .descriptionPage2 = DexDescription_Marowak_2,
+ .pokemonScale = 293,
+ .pokemonOffset = 12,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Hitmonlee
+ .categoryName = _("KICKING"),
+ .height = 15,
+ .weight = 498,
+ .descriptionPage1 = DexDescription_Hitmonlee_1,
+ .descriptionPage2 = DexDescription_Hitmonlee_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 259,
+ .trainerOffset = 1,
+ },
+ { //Hitmonchan
+ .categoryName = _("PUNCHING"),
+ .height = 14,
+ .weight = 502,
+ .descriptionPage1 = DexDescription_Hitmonchan_1,
+ .descriptionPage2 = DexDescription_Hitmonchan_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 277,
+ .trainerOffset = 2,
+ },
+ { //Lickitung
+ .categoryName = _("LICKING"),
+ .height = 12,
+ .weight = 655,
+ .descriptionPage1 = DexDescription_Lickitung_1,
+ .descriptionPage2 = DexDescription_Lickitung_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Koffing
+ .categoryName = _("POISON GAS"),
+ .height = 6,
+ .weight = 10,
+ .descriptionPage1 = DexDescription_Koffing_1,
+ .descriptionPage2 = DexDescription_Koffing_2,
+ .pokemonScale = 369,
+ .pokemonOffset = -1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Weezing
+ .categoryName = _("POISON GAS"),
+ .height = 12,
+ .weight = 95,
+ .descriptionPage1 = DexDescription_Weezing_1,
+ .descriptionPage2 = DexDescription_Weezing_2,
+ .pokemonScale = 305,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Rhyhorn
+ .categoryName = _("SPIKES"),
+ .height = 10,
+ .weight = 1150,
+ .descriptionPage1 = DexDescription_Rhyhorn_1,
+ .descriptionPage2 = DexDescription_Rhyhorn_2,
+ .pokemonScale = 267,
+ .pokemonOffset = 6,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Rhydon
+ .categoryName = _("DRILL"),
+ .height = 19,
+ .weight = 1200,
+ .descriptionPage1 = DexDescription_Rhydon_1,
+ .descriptionPage2 = DexDescription_Rhydon_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 1,
+ .trainerScale = 299,
+ .trainerOffset = 2,
+ },
+ { //Chansey
+ .categoryName = _("EGG"),
+ .height = 11,
+ .weight = 346,
+ .descriptionPage1 = DexDescription_Chansey_1,
+ .descriptionPage2 = DexDescription_Chansey_2,
+ .pokemonScale = 257,
+ .pokemonOffset = 7,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Tangela
+ .categoryName = _("VINE"),
+ .height = 10,
+ .weight = 350,
+ .descriptionPage1 = DexDescription_Tangela_1,
+ .descriptionPage2 = DexDescription_Tangela_2,
+ .pokemonScale = 304,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Kangaskhan
+ .categoryName = _("PARENT"),
+ .height = 22,
+ .weight = 800,
+ .descriptionPage1 = DexDescription_Kangaskhan_1,
+ .descriptionPage2 = DexDescription_Kangaskhan_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 387,
+ .trainerOffset = 8,
+ },
+ { //Horsea
+ .categoryName = _("DRAGON"),
+ .height = 4,
+ .weight = 80,
+ .descriptionPage1 = DexDescription_Horsea_1,
+ .descriptionPage2 = DexDescription_Horsea_2,
+ .pokemonScale = 399,
+ .pokemonOffset = -1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Seadra
+ .categoryName = _("DRAGON"),
+ .height = 12,
+ .weight = 250,
+ .descriptionPage1 = DexDescription_Seadra_1,
+ .descriptionPage2 = DexDescription_Seadra_2,
+ .pokemonScale = 299,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Goldeen
+ .categoryName = _("GOLDFISH"),
+ .height = 6,
+ .weight = 150,
+ .descriptionPage1 = DexDescription_Goldeen_1,
+ .descriptionPage2 = DexDescription_Goldeen_2,
+ .pokemonScale = 379,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Seaking
+ .categoryName = _("GOLDFISH"),
+ .height = 13,
+ .weight = 390,
+ .descriptionPage1 = DexDescription_Seaking_1,
+ .descriptionPage2 = DexDescription_Seaking_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Staryu
+ .categoryName = _("STAR SHAPE"),
+ .height = 8,
+ .weight = 345,
+ .descriptionPage1 = DexDescription_Staryu_1,
+ .descriptionPage2 = DexDescription_Staryu_2,
+ .pokemonScale = 326,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Starmie
+ .categoryName = _("MYSTERIOUS"),
+ .height = 11,
+ .weight = 800,
+ .descriptionPage1 = DexDescription_Starmie_1,
+ .descriptionPage2 = DexDescription_Starmie_2,
+ .pokemonScale = 301,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Mrmime
+ .categoryName = _("BARRIER"),
+ .height = 13,
+ .weight = 545,
+ .descriptionPage1 = DexDescription_Mrmime_1,
+ .descriptionPage2 = DexDescription_Mrmime_2,
+ .pokemonScale = 258,
+ .pokemonOffset = 6,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Scyther
+ .categoryName = _("MANTIS"),
+ .height = 15,
+ .weight = 560,
+ .descriptionPage1 = DexDescription_Scyther_1,
+ .descriptionPage2 = DexDescription_Scyther_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 1,
+ .trainerScale = 293,
+ .trainerOffset = 2,
+ },
+ { //Jynx
+ .categoryName = _("HUMAN SHAPE"),
+ .height = 14,
+ .weight = 406,
+ .descriptionPage1 = DexDescription_Jynx_1,
+ .descriptionPage2 = DexDescription_Jynx_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 300,
+ .trainerOffset = 1,
+ },
+ { //Electabuzz
+ .categoryName = _("ELECTRIC"),
+ .height = 11,
+ .weight = 300,
+ .descriptionPage1 = DexDescription_Electabuzz_1,
+ .descriptionPage2 = DexDescription_Electabuzz_2,
+ .pokemonScale = 351,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Magmar
+ .categoryName = _("SPITFIRE"),
+ .height = 13,
+ .weight = 445,
+ .descriptionPage1 = DexDescription_Magmar_1,
+ .descriptionPage2 = DexDescription_Magmar_2,
+ .pokemonScale = 277,
+ .pokemonOffset = 5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Pinsir
+ .categoryName = _("STAG BEETLE"),
+ .height = 15,
+ .weight = 550,
+ .descriptionPage1 = DexDescription_Pinsir_1,
+ .descriptionPage2 = DexDescription_Pinsir_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 257,
+ .trainerOffset = 0,
+ },
+ { //Tauros
+ .categoryName = _("WILD BULL"),
+ .height = 14,
+ .weight = 884,
+ .descriptionPage1 = DexDescription_Tauros_1,
+ .descriptionPage2 = DexDescription_Tauros_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Magikarp
+ .categoryName = _("FISH"),
+ .height = 9,
+ .weight = 100,
+ .descriptionPage1 = DexDescription_Magikarp_1,
+ .descriptionPage2 = DexDescription_Magikarp_2,
+ .pokemonScale = 310,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Gyarados
+ .categoryName = _("ATROCIOUS"),
+ .height = 65,
+ .weight = 2350,
+ .descriptionPage1 = DexDescription_Gyarados_1,
+ .descriptionPage2 = DexDescription_Gyarados_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 6,
+ .trainerScale = 481,
+ .trainerOffset = 13,
+ },
+ { //Lapras
+ .categoryName = _("TRANSPORT"),
+ .height = 25,
+ .weight = 2200,
+ .descriptionPage1 = DexDescription_Lapras_1,
+ .descriptionPage2 = DexDescription_Lapras_2,
+ .pokemonScale = 257,
+ .pokemonOffset = 10,
+ .trainerScale = 423,
+ .trainerOffset = 8,
+ },
+ { //Ditto
+ .categoryName = _("TRANSFORM"),
+ .height = 3,
+ .weight = 40,
+ .descriptionPage1 = DexDescription_Ditto_1,
+ .descriptionPage2 = DexDescription_Ditto_2,
+ .pokemonScale = 633,
+ .pokemonOffset = 23,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Eevee
+ .categoryName = _("EVOLUTION"),
+ .height = 3,
+ .weight = 65,
+ .descriptionPage1 = DexDescription_Eevee_1,
+ .descriptionPage2 = DexDescription_Eevee_2,
+ .pokemonScale = 476,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Vaporeon
+ .categoryName = _("BUBBLE JET"),
+ .height = 10,
+ .weight = 290,
+ .descriptionPage1 = DexDescription_Vaporeon_1,
+ .descriptionPage2 = DexDescription_Vaporeon_2,
+ .pokemonScale = 316,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Jolteon
+ .categoryName = _("LIGHTNING"),
+ .height = 8,
+ .weight = 245,
+ .descriptionPage1 = DexDescription_Jolteon_1,
+ .descriptionPage2 = DexDescription_Jolteon_2,
+ .pokemonScale = 283,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Flareon
+ .categoryName = _("FLAME"),
+ .height = 9,
+ .weight = 250,
+ .descriptionPage1 = DexDescription_Flareon_1,
+ .descriptionPage2 = DexDescription_Flareon_2,
+ .pokemonScale = 306,
+ .pokemonOffset = 12,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Porygon
+ .categoryName = _("VIRTUAL"),
+ .height = 8,
+ .weight = 365,
+ .descriptionPage1 = DexDescription_Porygon_1,
+ .descriptionPage2 = DexDescription_Porygon_2,
+ .pokemonScale = 328,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Omanyte
+ .categoryName = _("SPIRAL"),
+ .height = 4,
+ .weight = 75,
+ .descriptionPage1 = DexDescription_Omanyte_1,
+ .descriptionPage2 = DexDescription_Omanyte_2,
+ .pokemonScale = 521,
+ .pokemonOffset = 22,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Omastar
+ .categoryName = _("SPIRAL"),
+ .height = 10,
+ .weight = 350,
+ .descriptionPage1 = DexDescription_Omastar_1,
+ .descriptionPage2 = DexDescription_Omastar_2,
+ .pokemonScale = 307,
+ .pokemonOffset = 7,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Kabuto
+ .categoryName = _("SHELLFISH"),
+ .height = 5,
+ .weight = 115,
+ .descriptionPage1 = DexDescription_Kabuto_1,
+ .descriptionPage2 = DexDescription_Kabuto_2,
+ .pokemonScale = 454,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Kabutops
+ .categoryName = _("SHELLFISH"),
+ .height = 13,
+ .weight = 405,
+ .descriptionPage1 = DexDescription_Kabutops_1,
+ .descriptionPage2 = DexDescription_Kabutops_2,
+ .pokemonScale = 271,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Aerodactyl
+ .categoryName = _("FOSSIL"),
+ .height = 18,
+ .weight = 590,
+ .descriptionPage1 = DexDescription_Aerodactyl_1,
+ .descriptionPage2 = DexDescription_Aerodactyl_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 302,
+ .trainerOffset = 4,
+ },
+ { //Snorlax
+ .categoryName = _("SLEEPING"),
+ .height = 21,
+ .weight = 4600,
+ .descriptionPage1 = DexDescription_Snorlax_1,
+ .descriptionPage2 = DexDescription_Snorlax_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 4,
+ .trainerScale = 423,
+ .trainerOffset = 11,
+ },
+ { //Articuno
+ .categoryName = _("FREEZE"),
+ .height = 17,
+ .weight = 554,
+ .descriptionPage1 = DexDescription_Articuno_1,
+ .descriptionPage2 = DexDescription_Articuno_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 309,
+ .trainerOffset = 2,
+ },
+ { //Zapdos
+ .categoryName = _("ELECTRIC"),
+ .height = 16,
+ .weight = 526,
+ .descriptionPage1 = DexDescription_Zapdos_1,
+ .descriptionPage2 = DexDescription_Zapdos_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 318,
+ .trainerOffset = 3,
+ },
+ { //Moltres
+ .categoryName = _("FLAME"),
+ .height = 20,
+ .weight = 600,
+ .descriptionPage1 = DexDescription_Moltres_1,
+ .descriptionPage2 = DexDescription_Moltres_2,
+ .pokemonScale = 270,
+ .pokemonOffset = 0,
+ .trainerScale = 387,
+ .trainerOffset = 8,
+ },
+ { //Dratini
+ .categoryName = _("DRAGON"),
+ .height = 18,
+ .weight = 33,
+ .descriptionPage1 = DexDescription_Dratini_1,
+ .descriptionPage2 = DexDescription_Dratini_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 8,
+ .trainerScale = 386,
+ .trainerOffset = 6,
+ },
+ { //Dragonair
+ .categoryName = _("DRAGON"),
+ .height = 40,
+ .weight = 165,
+ .descriptionPage1 = DexDescription_Dragonair_1,
+ .descriptionPage2 = DexDescription_Dragonair_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 411,
+ .trainerOffset = 5,
+ },
+ { //Dragonite
+ .categoryName = _("DRAGON"),
+ .height = 22,
+ .weight = 2100,
+ .descriptionPage1 = DexDescription_Dragonite_1,
+ .descriptionPage2 = DexDescription_Dragonite_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 309,
+ .trainerOffset = 4,
+ },
+ { //Mewtwo
+ .categoryName = _("GENETIC"),
+ .height = 20,
+ .weight = 1220,
+ .descriptionPage1 = DexDescription_Mewtwo_1,
+ .descriptionPage2 = DexDescription_Mewtwo_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 309,
+ .trainerOffset = 4,
+ },
+ { //Mew
+ .categoryName = _("NEW SPECIES"),
+ .height = 4,
+ .weight = 40,
+ .descriptionPage1 = DexDescription_Mew_1,
+ .descriptionPage2 = DexDescription_Mew_2,
+ .pokemonScale = 457,
+ .pokemonOffset = -2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Chikorita
+ .categoryName = _("LEAF"),
+ .height = 9,
+ .weight = 64,
+ .descriptionPage1 = DexDescription_Chikorita_1,
+ .descriptionPage2 = DexDescription_Chikorita_2,
+ .pokemonScale = 512,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Bayleef
+ .categoryName = _("LEAF"),
+ .height = 12,
+ .weight = 158,
+ .descriptionPage1 = DexDescription_Bayleef_1,
+ .descriptionPage2 = DexDescription_Bayleef_2,
+ .pokemonScale = 296,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Meganium
+ .categoryName = _("HERB"),
+ .height = 18,
+ .weight = 1005,
+ .descriptionPage1 = DexDescription_Meganium_1,
+ .descriptionPage2 = DexDescription_Meganium_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 277,
+ .trainerOffset = 1,
+ },
+ { //Cyndaquil
+ .categoryName = _("FIRE MOUSE"),
+ .height = 5,
+ .weight = 79,
+ .descriptionPage1 = DexDescription_Cyndaquil_1,
+ .descriptionPage2 = DexDescription_Cyndaquil_2,
+ .pokemonScale = 539,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Quilava
+ .categoryName = _("VOLCANO"),
+ .height = 9,
+ .weight = 190,
+ .descriptionPage1 = DexDescription_Quilava_1,
+ .descriptionPage2 = DexDescription_Quilava_2,
+ .pokemonScale = 329,
+ .pokemonOffset = 11,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Typhlosion
+ .categoryName = _("VOLCANO"),
+ .height = 17,
+ .weight = 795,
+ .descriptionPage1 = DexDescription_Typhlosion_1,
+ .descriptionPage2 = DexDescription_Typhlosion_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 268,
+ .trainerOffset = 1,
+ },
+ { //Totodile
+ .categoryName = _("BIG JAW"),
+ .height = 6,
+ .weight = 95,
+ .descriptionPage1 = DexDescription_Totodile_1,
+ .descriptionPage2 = DexDescription_Totodile_2,
+ .pokemonScale = 487,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Croconaw
+ .categoryName = _("BIG JAW"),
+ .height = 11,
+ .weight = 250,
+ .descriptionPage1 = DexDescription_Croconaw_1,
+ .descriptionPage2 = DexDescription_Croconaw_2,
+ .pokemonScale = 378,
+ .pokemonOffset = 13,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Feraligatr
+ .categoryName = _("BIG JAW"),
+ .height = 23,
+ .weight = 888,
+ .descriptionPage1 = DexDescription_Feraligatr_1,
+ .descriptionPage2 = DexDescription_Feraligatr_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 342,
+ .trainerOffset = 7,
+ },
+ { //Sentret
+ .categoryName = _("SCOUT"),
+ .height = 8,
+ .weight = 60,
+ .descriptionPage1 = DexDescription_Sentret_1,
+ .descriptionPage2 = DexDescription_Sentret_2,
+ .pokemonScale = 439,
+ .pokemonOffset = 12,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Furret
+ .categoryName = _("LONG BODY"),
+ .height = 18,
+ .weight = 325,
+ .descriptionPage1 = DexDescription_Furret_1,
+ .descriptionPage2 = DexDescription_Furret_2,
+ .pokemonScale = 346,
+ .pokemonOffset = 11,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Hoothoot
+ .categoryName = _("OWL"),
+ .height = 7,
+ .weight = 212,
+ .descriptionPage1 = DexDescription_Hoothoot_1,
+ .descriptionPage2 = DexDescription_Hoothoot_2,
+ .pokemonScale = 380,
+ .pokemonOffset = -2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Noctowl
+ .categoryName = _("OWL"),
+ .height = 16,
+ .weight = 408,
+ .descriptionPage1 = DexDescription_Noctowl_1,
+ .descriptionPage2 = DexDescription_Noctowl_2,
+ .pokemonScale = 278,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ledyba
+ .categoryName = _("FIVE STAR"),
+ .height = 10,
+ .weight = 108,
+ .descriptionPage1 = DexDescription_Ledyba_1,
+ .descriptionPage2 = DexDescription_Ledyba_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ledian
+ .categoryName = _("FIVE STAR"),
+ .height = 14,
+ .weight = 356,
+ .descriptionPage1 = DexDescription_Ledian_1,
+ .descriptionPage2 = DexDescription_Ledian_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Spinarak
+ .categoryName = _("STRING SPIT"),
+ .height = 5,
+ .weight = 85,
+ .descriptionPage1 = DexDescription_Spinarak_1,
+ .descriptionPage2 = DexDescription_Spinarak_2,
+ .pokemonScale = 414,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ariados
+ .categoryName = _("LONG LEG"),
+ .height = 11,
+ .weight = 335,
+ .descriptionPage1 = DexDescription_Ariados_1,
+ .descriptionPage2 = DexDescription_Ariados_2,
+ .pokemonScale = 316,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Crobat
+ .categoryName = _("BAT"),
+ .height = 18,
+ .weight = 750,
+ .descriptionPage1 = DexDescription_Crobat_1,
+ .descriptionPage2 = DexDescription_Crobat_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 281,
+ .trainerOffset = 1,
+ },
+ { //Chinchou
+ .categoryName = _("ANGLER"),
+ .height = 5,
+ .weight = 120,
+ .descriptionPage1 = DexDescription_Chinchou_1,
+ .descriptionPage2 = DexDescription_Chinchou_2,
+ .pokemonScale = 424,
+ .pokemonOffset = -2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Lanturn
+ .categoryName = _("LIGHT"),
+ .height = 12,
+ .weight = 225,
+ .descriptionPage1 = DexDescription_Lanturn_1,
+ .descriptionPage2 = DexDescription_Lanturn_2,
+ .pokemonScale = 269,
+ .pokemonOffset = 6,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Pichu
+ .categoryName = _("TINY MOUSE"),
+ .height = 3,
+ .weight = 20,
+ .descriptionPage1 = DexDescription_Pichu_1,
+ .descriptionPage2 = DexDescription_Pichu_2,
+ .pokemonScale = 508,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Cleffa
+ .categoryName = _("STAR SHAPE"),
+ .height = 3,
+ .weight = 30,
+ .descriptionPage1 = DexDescription_Cleffa_1,
+ .descriptionPage2 = DexDescription_Cleffa_2,
+ .pokemonScale = 462,
+ .pokemonOffset = 23,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Igglybuff
+ .categoryName = _("BALLOON"),
+ .height = 3,
+ .weight = 10,
+ .descriptionPage1 = DexDescription_Igglybuff_1,
+ .descriptionPage2 = DexDescription_Igglybuff_2,
+ .pokemonScale = 457,
+ .pokemonOffset = -1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Togepi
+ .categoryName = _("SPIKE BALL"),
+ .height = 3,
+ .weight = 15,
+ .descriptionPage1 = DexDescription_Togepi_1,
+ .descriptionPage2 = DexDescription_Togepi_2,
+ .pokemonScale = 507,
+ .pokemonOffset = 23,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Togetic
+ .categoryName = _("HAPPINESS"),
+ .height = 6,
+ .weight = 32,
+ .descriptionPage1 = DexDescription_Togetic_1,
+ .descriptionPage2 = DexDescription_Togetic_2,
+ .pokemonScale = 424,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Natu
+ .categoryName = _("TINY BIRD"),
+ .height = 2,
+ .weight = 20,
+ .descriptionPage1 = DexDescription_Natu_1,
+ .descriptionPage2 = DexDescription_Natu_2,
+ .pokemonScale = 610,
+ .pokemonOffset = 25,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Xatu
+ .categoryName = _("MYSTIC"),
+ .height = 15,
+ .weight = 150,
+ .descriptionPage1 = DexDescription_Xatu_1,
+ .descriptionPage2 = DexDescription_Xatu_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 6,
+ .trainerScale = 318,
+ .trainerOffset = 4,
+ },
+ { //Mareep
+ .categoryName = _("WOOL"),
+ .height = 6,
+ .weight = 78,
+ .descriptionPage1 = DexDescription_Mareep_1,
+ .descriptionPage2 = DexDescription_Mareep_2,
+ .pokemonScale = 379,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Flaaffy
+ .categoryName = _("WOOL"),
+ .height = 8,
+ .weight = 133,
+ .descriptionPage1 = DexDescription_Flaaffy_1,
+ .descriptionPage2 = DexDescription_Flaaffy_2,
+ .pokemonScale = 372,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ampharos
+ .categoryName = _("LIGHT"),
+ .height = 14,
+ .weight = 615,
+ .descriptionPage1 = DexDescription_Ampharos_1,
+ .descriptionPage2 = DexDescription_Ampharos_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Bellossom
+ .categoryName = _("FLOWER"),
+ .height = 4,
+ .weight = 58,
+ .descriptionPage1 = DexDescription_Bellossom_1,
+ .descriptionPage2 = DexDescription_Bellossom_2,
+ .pokemonScale = 472,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Marill
+ .categoryName = _("AQUA MOUSE"),
+ .height = 4,
+ .weight = 85,
+ .descriptionPage1 = DexDescription_Marill_1,
+ .descriptionPage2 = DexDescription_Marill_2,
+ .pokemonScale = 476,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Azumarill
+ .categoryName = _("AQUA RABBIT"),
+ .height = 8,
+ .weight = 285,
+ .descriptionPage1 = DexDescription_Azumarill_1,
+ .descriptionPage2 = DexDescription_Azumarill_2,
+ .pokemonScale = 448,
+ .pokemonOffset = 16,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Sudowoodo
+ .categoryName = _("IMITATION"),
+ .height = 12,
+ .weight = 380,
+ .descriptionPage1 = DexDescription_Sudowoodo_1,
+ .descriptionPage2 = DexDescription_Sudowoodo_2,
+ .pokemonScale = 305,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Politoed
+ .categoryName = _("FROG"),
+ .height = 11,
+ .weight = 339,
+ .descriptionPage1 = DexDescription_Politoed_1,
+ .descriptionPage2 = DexDescription_Politoed_2,
+ .pokemonScale = 289,
+ .pokemonOffset = 6,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Hoppip
+ .categoryName = _("COTTONWEED"),
+ .height = 4,
+ .weight = 5,
+ .descriptionPage1 = DexDescription_Hoppip_1,
+ .descriptionPage2 = DexDescription_Hoppip_2,
+ .pokemonScale = 562,
+ .pokemonOffset = -7,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Skiploom
+ .categoryName = _("COTTONWEED"),
+ .height = 6,
+ .weight = 10,
+ .descriptionPage1 = DexDescription_Skiploom_1,
+ .descriptionPage2 = DexDescription_Skiploom_2,
+ .pokemonScale = 387,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Jumpluff
+ .categoryName = _("COTTONWEED"),
+ .height = 8,
+ .weight = 30,
+ .descriptionPage1 = DexDescription_Jumpluff_1,
+ .descriptionPage2 = DexDescription_Jumpluff_2,
+ .pokemonScale = 418,
+ .pokemonOffset = -4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Aipom
+ .categoryName = _("LONG TAIL"),
+ .height = 8,
+ .weight = 115,
+ .descriptionPage1 = DexDescription_Aipom_1,
+ .descriptionPage2 = DexDescription_Aipom_2,
+ .pokemonScale = 363,
+ .pokemonOffset = 6,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Sunkern
+ .categoryName = _("SEED"),
+ .height = 3,
+ .weight = 18,
+ .descriptionPage1 = DexDescription_Sunkern_1,
+ .descriptionPage2 = DexDescription_Sunkern_2,
+ .pokemonScale = 541,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Sunflora
+ .categoryName = _("SUN"),
+ .height = 8,
+ .weight = 85,
+ .descriptionPage1 = DexDescription_Sunflora_1,
+ .descriptionPage2 = DexDescription_Sunflora_2,
+ .pokemonScale = 444,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Yanma
+ .categoryName = _("CLEAR WING"),
+ .height = 12,
+ .weight = 380,
+ .descriptionPage1 = DexDescription_Yanma_1,
+ .descriptionPage2 = DexDescription_Yanma_2,
+ .pokemonScale = 274,
+ .pokemonOffset = -1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Wooper
+ .categoryName = _("WATER FISH"),
+ .height = 4,
+ .weight = 85,
+ .descriptionPage1 = DexDescription_Wooper_1,
+ .descriptionPage2 = DexDescription_Wooper_2,
+ .pokemonScale = 479,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Quagsire
+ .categoryName = _("WATER FISH"),
+ .height = 14,
+ .weight = 750,
+ .descriptionPage1 = DexDescription_Quagsire_1,
+ .descriptionPage2 = DexDescription_Quagsire_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Espeon
+ .categoryName = _("SUN"),
+ .height = 9,
+ .weight = 265,
+ .descriptionPage1 = DexDescription_Espeon_1,
+ .descriptionPage2 = DexDescription_Espeon_2,
+ .pokemonScale = 363,
+ .pokemonOffset = 14,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Umbreon
+ .categoryName = _("MOONLIGHT"),
+ .height = 10,
+ .weight = 270,
+ .descriptionPage1 = DexDescription_Umbreon_1,
+ .descriptionPage2 = DexDescription_Umbreon_2,
+ .pokemonScale = 317,
+ .pokemonOffset = 11,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Murkrow
+ .categoryName = _("DARKNESS"),
+ .height = 5,
+ .weight = 21,
+ .descriptionPage1 = DexDescription_Murkrow_1,
+ .descriptionPage2 = DexDescription_Murkrow_2,
+ .pokemonScale = 401,
+ .pokemonOffset = -8,
+ .trainerScale = 256,
+ .trainerOffset = 1,
+ },
+ { //Slowking
+ .categoryName = _("ROYAL"),
+ .height = 20,
+ .weight = 795,
+ .descriptionPage1 = DexDescription_Slowking_1,
+ .descriptionPage2 = DexDescription_Slowking_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 309,
+ .trainerOffset = 5,
+ },
+ { //Misdreavus
+ .categoryName = _("SCREECH"),
+ .height = 7,
+ .weight = 10,
+ .descriptionPage1 = DexDescription_Misdreavus_1,
+ .descriptionPage2 = DexDescription_Misdreavus_2,
+ .pokemonScale = 407,
+ .pokemonOffset = -8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Unown
+ .categoryName = _("SYMBOL"),
+ .height = 5,
+ .weight = 50,
+ .descriptionPage1 = DexDescription_Unown_1,
+ .descriptionPage2 = DexDescription_Unown_2,
+ .pokemonScale = 411,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Wobbuffet
+ .categoryName = _("PATIENT"),
+ .height = 13,
+ .weight = 285,
+ .descriptionPage1 = DexDescription_Wobbuffet_1,
+ .descriptionPage2 = DexDescription_Wobbuffet_2,
+ .pokemonScale = 274,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Girafarig
+ .categoryName = _("LONG NECK"),
+ .height = 15,
+ .weight = 415,
+ .descriptionPage1 = DexDescription_Girafarig_1,
+ .descriptionPage2 = DexDescription_Girafarig_2,
+ .pokemonScale = 281,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Pineco
+ .categoryName = _("BAGWORM"),
+ .height = 6,
+ .weight = 72,
+ .descriptionPage1 = DexDescription_Pineco_1,
+ .descriptionPage2 = DexDescription_Pineco_2,
+ .pokemonScale = 445,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Forretress
+ .categoryName = _("BAGWORM"),
+ .height = 12,
+ .weight = 1258,
+ .descriptionPage1 = DexDescription_Forretress_1,
+ .descriptionPage2 = DexDescription_Forretress_2,
+ .pokemonScale = 293,
+ .pokemonOffset = 5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Dunsparce
+ .categoryName = _("LAND SNAKE"),
+ .height = 15,
+ .weight = 140,
+ .descriptionPage1 = DexDescription_Dunsparce_1,
+ .descriptionPage2 = DexDescription_Dunsparce_2,
+ .pokemonScale = 316,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Gligar
+ .categoryName = _("FLYSCORPION"),
+ .height = 11,
+ .weight = 648,
+ .descriptionPage1 = DexDescription_Gligar_1,
+ .descriptionPage2 = DexDescription_Gligar_2,
+ .pokemonScale = 350,
+ .pokemonOffset = -1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Steelix
+ .categoryName = _("IRON SNAKE"),
+ .height = 92,
+ .weight = 4000,
+ .descriptionPage1 = DexDescription_Steelix_1,
+ .descriptionPage2 = DexDescription_Steelix_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 516,
+ .trainerOffset = 13,
+ },
+ { //Snubbull
+ .categoryName = _("FAIRY"),
+ .height = 6,
+ .weight = 78,
+ .descriptionPage1 = DexDescription_Snubbull_1,
+ .descriptionPage2 = DexDescription_Snubbull_2,
+ .pokemonScale = 465,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Granbull
+ .categoryName = _("FAIRY"),
+ .height = 14,
+ .weight = 487,
+ .descriptionPage1 = DexDescription_Granbull_1,
+ .descriptionPage2 = DexDescription_Granbull_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Qwilfish
+ .categoryName = _("BALLOON"),
+ .height = 5,
+ .weight = 39,
+ .descriptionPage1 = DexDescription_Qwilfish_1,
+ .descriptionPage2 = DexDescription_Qwilfish_2,
+ .pokemonScale = 430,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Scizor
+ .categoryName = _("PINCER"),
+ .height = 18,
+ .weight = 1180,
+ .descriptionPage1 = DexDescription_Scizor_1,
+ .descriptionPage2 = DexDescription_Scizor_2,
+ .pokemonScale = 278,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Shuckle
+ .categoryName = _("MOLD"),
+ .height = 6,
+ .weight = 205,
+ .descriptionPage1 = DexDescription_Shuckle_1,
+ .descriptionPage2 = DexDescription_Shuckle_2,
+ .pokemonScale = 485,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Heracross
+ .categoryName = _("SINGLE HORN"),
+ .height = 15,
+ .weight = 540,
+ .descriptionPage1 = DexDescription_Heracross_1,
+ .descriptionPage2 = DexDescription_Heracross_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Sneasel
+ .categoryName = _("SHARP CLAW"),
+ .height = 9,
+ .weight = 280,
+ .descriptionPage1 = DexDescription_Sneasel_1,
+ .descriptionPage2 = DexDescription_Sneasel_2,
+ .pokemonScale = 413,
+ .pokemonOffset = -3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Teddiursa
+ .categoryName = _("LITTLE BEAR"),
+ .height = 6,
+ .weight = 88,
+ .descriptionPage1 = DexDescription_Teddiursa_1,
+ .descriptionPage2 = DexDescription_Teddiursa_2,
+ .pokemonScale = 455,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ursaring
+ .categoryName = _("HIBERNATOR"),
+ .height = 18,
+ .weight = 1258,
+ .descriptionPage1 = DexDescription_Ursaring_1,
+ .descriptionPage2 = DexDescription_Ursaring_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Slugma
+ .categoryName = _("LAVA"),
+ .height = 7,
+ .weight = 350,
+ .descriptionPage1 = DexDescription_Slugma_1,
+ .descriptionPage2 = DexDescription_Slugma_2,
+ .pokemonScale = 329,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Magcargo
+ .categoryName = _("LAVA"),
+ .height = 8,
+ .weight = 550,
+ .descriptionPage1 = DexDescription_Magcargo_1,
+ .descriptionPage2 = DexDescription_Magcargo_2,
+ .pokemonScale = 332,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Swinub
+ .categoryName = _("PIG"),
+ .height = 4,
+ .weight = 65,
+ .descriptionPage1 = DexDescription_Swinub_1,
+ .descriptionPage2 = DexDescription_Swinub_2,
+ .pokemonScale = 324,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Piloswine
+ .categoryName = _("SWINE"),
+ .height = 11,
+ .weight = 558,
+ .descriptionPage1 = DexDescription_Piloswine_1,
+ .descriptionPage2 = DexDescription_Piloswine_2,
+ .pokemonScale = 306,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Corsola
+ .categoryName = _("CORAL"),
+ .height = 6,
+ .weight = 50,
+ .descriptionPage1 = DexDescription_Corsola_1,
+ .descriptionPage2 = DexDescription_Corsola_2,
+ .pokemonScale = 410,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Remoraid
+ .categoryName = _("JET"),
+ .height = 6,
+ .weight = 120,
+ .descriptionPage1 = DexDescription_Remoraid_1,
+ .descriptionPage2 = DexDescription_Remoraid_2,
+ .pokemonScale = 316,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Octillery
+ .categoryName = _("JET"),
+ .height = 9,
+ .weight = 285,
+ .descriptionPage1 = DexDescription_Octillery_1,
+ .descriptionPage2 = DexDescription_Octillery_2,
+ .pokemonScale = 296,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Delibird
+ .categoryName = _("DELIVERY"),
+ .height = 9,
+ .weight = 160,
+ .descriptionPage1 = DexDescription_Delibird_1,
+ .descriptionPage2 = DexDescription_Delibird_2,
+ .pokemonScale = 293,
+ .pokemonOffset = 11,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Mantine
+ .categoryName = _("KITE"),
+ .height = 21,
+ .weight = 2200,
+ .descriptionPage1 = DexDescription_Mantine_1,
+ .descriptionPage2 = DexDescription_Mantine_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 342,
+ .trainerOffset = 7,
+ },
+ { //Skarmory
+ .categoryName = _("ARMOR BIRD"),
+ .height = 17,
+ .weight = 505,
+ .descriptionPage1 = DexDescription_Skarmory_1,
+ .descriptionPage2 = DexDescription_Skarmory_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 271,
+ .trainerOffset = 1,
+ },
+ { //Houndour
+ .categoryName = _("DARK"),
+ .height = 6,
+ .weight = 108,
+ .descriptionPage1 = DexDescription_Houndour_1,
+ .descriptionPage2 = DexDescription_Houndour_2,
+ .pokemonScale = 393,
+ .pokemonOffset = 16,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Houndoom
+ .categoryName = _("DARK"),
+ .height = 14,
+ .weight = 350,
+ .descriptionPage1 = DexDescription_Houndoom_1,
+ .descriptionPage2 = DexDescription_Houndoom_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Kingdra
+ .categoryName = _("DRAGON"),
+ .height = 18,
+ .weight = 1520,
+ .descriptionPage1 = DexDescription_Kingdra_1,
+ .descriptionPage2 = DexDescription_Kingdra_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 287,
+ .trainerOffset = 0,
+ },
+ { //Phanpy
+ .categoryName = _("LONG NOSE"),
+ .height = 5,
+ .weight = 335,
+ .descriptionPage1 = DexDescription_Phanpy_1,
+ .descriptionPage2 = DexDescription_Phanpy_2,
+ .pokemonScale = 465,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Donphan
+ .categoryName = _("ARMOR"),
+ .height = 11,
+ .weight = 1200,
+ .descriptionPage1 = DexDescription_Donphan_1,
+ .descriptionPage2 = DexDescription_Donphan_2,
+ .pokemonScale = 313,
+ .pokemonOffset = 9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Porygon2
+ .categoryName = _("VIRTUAL"),
+ .height = 6,
+ .weight = 325,
+ .descriptionPage1 = DexDescription_Porygon2_1,
+ .descriptionPage2 = DexDescription_Porygon2_2,
+ .pokemonScale = 320,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Stantler
+ .categoryName = _("BIG HORN"),
+ .height = 14,
+ .weight = 712,
+ .descriptionPage1 = DexDescription_Stantler_1,
+ .descriptionPage2 = DexDescription_Stantler_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Smeargle
+ .categoryName = _("PAINTER"),
+ .height = 12,
+ .weight = 580,
+ .descriptionPage1 = DexDescription_Smeargle_1,
+ .descriptionPage2 = DexDescription_Smeargle_2,
+ .pokemonScale = 287,
+ .pokemonOffset = 5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Tyrogue
+ .categoryName = _("SCUFFLE"),
+ .height = 7,
+ .weight = 210,
+ .descriptionPage1 = DexDescription_Tyrogue_1,
+ .descriptionPage2 = DexDescription_Tyrogue_2,
+ .pokemonScale = 292,
+ .pokemonOffset = 9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Hitmontop
+ .categoryName = _("HANDSTAND"),
+ .height = 14,
+ .weight = 480,
+ .descriptionPage1 = DexDescription_Hitmontop_1,
+ .descriptionPage2 = DexDescription_Hitmontop_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 257,
+ .trainerOffset = 0,
+ },
+ { //Smoochum
+ .categoryName = _("KISS"),
+ .height = 4,
+ .weight = 60,
+ .descriptionPage1 = DexDescription_Smoochum_1,
+ .descriptionPage2 = DexDescription_Smoochum_2,
+ .pokemonScale = 440,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Elekid
+ .categoryName = _("ELECTRIC"),
+ .height = 6,
+ .weight = 235,
+ .descriptionPage1 = DexDescription_Elekid_1,
+ .descriptionPage2 = DexDescription_Elekid_2,
+ .pokemonScale = 363,
+ .pokemonOffset = 14,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Magby
+ .categoryName = _("LIVE COAL"),
+ .height = 7,
+ .weight = 214,
+ .descriptionPage1 = DexDescription_Magby_1,
+ .descriptionPage2 = DexDescription_Magby_2,
+ .pokemonScale = 284,
+ .pokemonOffset = 13,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Miltank
+ .categoryName = _("MILK COW"),
+ .height = 12,
+ .weight = 755,
+ .descriptionPage1 = DexDescription_Miltank_1,
+ .descriptionPage2 = DexDescription_Miltank_2,
+ .pokemonScale = 280,
+ .pokemonOffset = 5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Blissey
+ .categoryName = _("HAPPINESS"),
+ .height = 15,
+ .weight = 468,
+ .descriptionPage1 = DexDescription_Blissey_1,
+ .descriptionPage2 = DexDescription_Blissey_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 4,
+ .trainerScale = 310,
+ .trainerOffset = 3,
+ },
+ { //Raikou
+ .categoryName = _("THUNDER"),
+ .height = 19,
+ .weight = 1780,
+ .descriptionPage1 = DexDescription_Raikou_1,
+ .descriptionPage2 = DexDescription_Raikou_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 345,
+ .trainerOffset = 7,
+ },
+ { //Entei
+ .categoryName = _("VOLCANO"),
+ .height = 21,
+ .weight = 1980,
+ .descriptionPage1 = DexDescription_Entei_1,
+ .descriptionPage2 = DexDescription_Entei_2,
+ .pokemonScale = 259,
+ .pokemonOffset = 0,
+ .trainerScale = 345,
+ .trainerOffset = 7,
+ },
+ { //Suicune
+ .categoryName = _("AURORA"),
+ .height = 20,
+ .weight = 1870,
+ .descriptionPage1 = DexDescription_Suicune_1,
+ .descriptionPage2 = DexDescription_Suicune_2,
+ .pokemonScale = 269,
+ .pokemonOffset = 0,
+ .trainerScale = 345,
+ .trainerOffset = 7,
+ },
+ { //Larvitar
+ .categoryName = _("ROCK SKIN"),
+ .height = 6,
+ .weight = 720,
+ .descriptionPage1 = DexDescription_Larvitar_1,
+ .descriptionPage2 = DexDescription_Larvitar_2,
+ .pokemonScale = 472,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Pupitar
+ .categoryName = _("HARD SHELL"),
+ .height = 12,
+ .weight = 1520,
+ .descriptionPage1 = DexDescription_Pupitar_1,
+ .descriptionPage2 = DexDescription_Pupitar_2,
+ .pokemonScale = 292,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Tyranitar
+ .categoryName = _("ARMOR"),
+ .height = 20,
+ .weight = 2020,
+ .descriptionPage1 = DexDescription_Tyranitar_1,
+ .descriptionPage2 = DexDescription_Tyranitar_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 345,
+ .trainerOffset = 7,
+ },
+ { //Lugia
+ .categoryName = _("DIVING"),
+ .height = 52,
+ .weight = 2160,
+ .descriptionPage1 = DexDescription_Lugia_1,
+ .descriptionPage2 = DexDescription_Lugia_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 721,
+ .trainerOffset = 19,
+ },
+ { //HoOh
+ .categoryName = _("RAINBOW"),
+ .height = 38,
+ .weight = 1990,
+ .descriptionPage1 = DexDescription_HoOh_1,
+ .descriptionPage2 = DexDescription_HoOh_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 610,
+ .trainerOffset = 17,
+ },
+ { //Celebi
+ .categoryName = _("TIME TRAVEL"),
+ .height = 6,
+ .weight = 50,
+ .descriptionPage1 = DexDescription_Celebi_1,
+ .descriptionPage2 = DexDescription_Celebi_2,
+ .pokemonScale = 393,
+ .pokemonOffset = -10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Treecko
+ .categoryName = _("WOOD GECKO"),
+ .height = 5,
+ .weight = 50,
+ .descriptionPage1 = DexDescription_Treecko_1,
+ .descriptionPage2 = DexDescription_Treecko_2,
+ .pokemonScale = 541,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Grovyle
+ .categoryName = _("WOOD GECKO"),
+ .height = 9,
+ .weight = 216,
+ .descriptionPage1 = DexDescription_Grovyle_1,
+ .descriptionPage2 = DexDescription_Grovyle_2,
+ .pokemonScale = 360,
+ .pokemonOffset = 5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Sceptile
+ .categoryName = _("FOREST"),
+ .height = 17,
+ .weight = 522,
+ .descriptionPage1 = DexDescription_Sceptile_1,
+ .descriptionPage2 = DexDescription_Sceptile_2,
+ .pokemonScale = 256,
+ .pokemonOffset = -1,
+ .trainerScale = 275,
+ .trainerOffset = 2,
+ },
+ { //Torchic
+ .categoryName = _("CHICK"),
+ .height = 4,
+ .weight = 25,
+ .descriptionPage1 = DexDescription_Torchic_1,
+ .descriptionPage2 = DexDescription_Torchic_2,
+ .pokemonScale = 566,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Combusken
+ .categoryName = _("YOUNG FOWL"),
+ .height = 9,
+ .weight = 195,
+ .descriptionPage1 = DexDescription_Combusken_1,
+ .descriptionPage2 = DexDescription_Combusken_2,
+ .pokemonScale = 343,
+ .pokemonOffset = 5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Blaziken
+ .categoryName = _("BLAZE"),
+ .height = 19,
+ .weight = 520,
+ .descriptionPage1 = DexDescription_Blaziken_1,
+ .descriptionPage2 = DexDescription_Blaziken_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 301,
+ .trainerOffset = 4,
+ },
+ { //Mudkip
+ .categoryName = _("MUD FISH"),
+ .height = 4,
+ .weight = 76,
+ .descriptionPage1 = DexDescription_Mudkip_1,
+ .descriptionPage2 = DexDescription_Mudkip_2,
+ .pokemonScale = 535,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Marshtomp
+ .categoryName = _("MUD FISH"),
+ .height = 7,
+ .weight = 280,
+ .descriptionPage1 = DexDescription_Marshtomp_1,
+ .descriptionPage2 = DexDescription_Marshtomp_2,
+ .pokemonScale = 340,
+ .pokemonOffset = 7,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Swampert
+ .categoryName = _("MUD FISH"),
+ .height = 15,
+ .weight = 819,
+ .descriptionPage1 = DexDescription_Swampert_1,
+ .descriptionPage2 = DexDescription_Swampert_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Poochyena
+ .categoryName = _("BITE"),
+ .height = 5,
+ .weight = 136,
+ .descriptionPage1 = DexDescription_Poochyena_1,
+ .descriptionPage2 = DexDescription_Poochyena_2,
+ .pokemonScale = 481,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Mightyena
+ .categoryName = _("BITE"),
+ .height = 10,
+ .weight = 370,
+ .descriptionPage1 = DexDescription_Mightyena_1,
+ .descriptionPage2 = DexDescription_Mightyena_2,
+ .pokemonScale = 362,
+ .pokemonOffset = 9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Zigzagoon
+ .categoryName = _("TINYRACCOON"),
+ .height = 4,
+ .weight = 175,
+ .descriptionPage1 = DexDescription_Zigzagoon_1,
+ .descriptionPage2 = DexDescription_Zigzagoon_2,
+ .pokemonScale = 560,
+ .pokemonOffset = 22,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Linoone
+ .categoryName = _("RUSHING"),
+ .height = 5,
+ .weight = 325,
+ .descriptionPage1 = DexDescription_Linoone_1,
+ .descriptionPage2 = DexDescription_Linoone_2,
+ .pokemonScale = 321,
+ .pokemonOffset = 7,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Wurmple
+ .categoryName = _("WORM"),
+ .height = 3,
+ .weight = 36,
+ .descriptionPage1 = DexDescription_Wurmple_1,
+ .descriptionPage2 = DexDescription_Wurmple_2,
+ .pokemonScale = 711,
+ .pokemonOffset = 24,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Silcoon
+ .categoryName = _("COCOON"),
+ .height = 6,
+ .weight = 100,
+ .descriptionPage1 = DexDescription_Silcoon_1,
+ .descriptionPage2 = DexDescription_Silcoon_2,
+ .pokemonScale = 431,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Beautifly
+ .categoryName = _("BUTTERFLY"),
+ .height = 10,
+ .weight = 284,
+ .descriptionPage1 = DexDescription_Beautifly_1,
+ .descriptionPage2 = DexDescription_Beautifly_2,
+ .pokemonScale = 298,
+ .pokemonOffset = -1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Cascoon
+ .categoryName = _("COCOON"),
+ .height = 7,
+ .weight = 115,
+ .descriptionPage1 = DexDescription_Cascoon_1,
+ .descriptionPage2 = DexDescription_Cascoon_2,
+ .pokemonScale = 391,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Dustox
+ .categoryName = _("POISON MOTH"),
+ .height = 12,
+ .weight = 316,
+ .descriptionPage1 = DexDescription_Dustox_1,
+ .descriptionPage2 = DexDescription_Dustox_2,
+ .pokemonScale = 269,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Lotad
+ .categoryName = _("WATER WEED"),
+ .height = 5,
+ .weight = 26,
+ .descriptionPage1 = DexDescription_Lotad_1,
+ .descriptionPage2 = DexDescription_Lotad_2,
+ .pokemonScale = 406,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Lombre
+ .categoryName = _("JOLLY"),
+ .height = 12,
+ .weight = 325,
+ .descriptionPage1 = DexDescription_Lombre_1,
+ .descriptionPage2 = DexDescription_Lombre_2,
+ .pokemonScale = 277,
+ .pokemonOffset = 9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ludicolo
+ .categoryName = _("CAREFREE"),
+ .height = 15,
+ .weight = 550,
+ .descriptionPage1 = DexDescription_Ludicolo_1,
+ .descriptionPage2 = DexDescription_Ludicolo_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 268,
+ .trainerOffset = -1,
+ },
+ { //Seedot
+ .categoryName = _("ACORN"),
+ .height = 5,
+ .weight = 40,
+ .descriptionPage1 = DexDescription_Seedot_1,
+ .descriptionPage2 = DexDescription_Seedot_2,
+ .pokemonScale = 472,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Nuzleaf
+ .categoryName = _("WILY"),
+ .height = 10,
+ .weight = 280,
+ .descriptionPage1 = DexDescription_Nuzleaf_1,
+ .descriptionPage2 = DexDescription_Nuzleaf_2,
+ .pokemonScale = 299,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Shiftry
+ .categoryName = _("WICKED"),
+ .height = 13,
+ .weight = 596,
+ .descriptionPage1 = DexDescription_Shiftry_1,
+ .descriptionPage2 = DexDescription_Shiftry_2,
+ .pokemonScale = 290,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Taillow
+ .categoryName = _("TINYSWALLOW"),
+ .height = 3,
+ .weight = 23,
+ .descriptionPage1 = DexDescription_Taillow_1,
+ .descriptionPage2 = DexDescription_Taillow_2,
+ .pokemonScale = 465,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Swellow
+ .categoryName = _("SWALLOW"),
+ .height = 7,
+ .weight = 198,
+ .descriptionPage1 = DexDescription_Swellow_1,
+ .descriptionPage2 = DexDescription_Swellow_2,
+ .pokemonScale = 428,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Wingull
+ .categoryName = _("SEAGULL"),
+ .height = 6,
+ .weight = 95,
+ .descriptionPage1 = DexDescription_Wingull_1,
+ .descriptionPage2 = DexDescription_Wingull_2,
+ .pokemonScale = 295,
+ .pokemonOffset = -2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Pelipper
+ .categoryName = _("WATER BIRD"),
+ .height = 12,
+ .weight = 280,
+ .descriptionPage1 = DexDescription_Pelipper_1,
+ .descriptionPage2 = DexDescription_Pelipper_2,
+ .pokemonScale = 288,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ralts
+ .categoryName = _("FEELING"),
+ .height = 4,
+ .weight = 66,
+ .descriptionPage1 = DexDescription_Ralts_1,
+ .descriptionPage2 = DexDescription_Ralts_2,
+ .pokemonScale = 457,
+ .pokemonOffset = -3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Kirlia
+ .categoryName = _("EMOTION"),
+ .height = 8,
+ .weight = 202,
+ .descriptionPage1 = DexDescription_Kirlia_1,
+ .descriptionPage2 = DexDescription_Kirlia_2,
+ .pokemonScale = 354,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Gardevoir
+ .categoryName = _("EMBRACE"),
+ .height = 16,
+ .weight = 484,
+ .descriptionPage1 = DexDescription_Gardevoir_1,
+ .descriptionPage2 = DexDescription_Gardevoir_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Surskit
+ .categoryName = _("POND SKATER"),
+ .height = 5,
+ .weight = 17,
+ .descriptionPage1 = DexDescription_Surskit_1,
+ .descriptionPage2 = DexDescription_Surskit_2,
+ .pokemonScale = 375,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Masquerain
+ .categoryName = _("EYEBALL"),
+ .height = 8,
+ .weight = 36,
+ .descriptionPage1 = DexDescription_Masquerain_1,
+ .descriptionPage2 = DexDescription_Masquerain_2,
+ .pokemonScale = 378,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Shroomish
+ .categoryName = _("MUSHROOM"),
+ .height = 4,
+ .weight = 45,
+ .descriptionPage1 = DexDescription_Shroomish_1,
+ .descriptionPage2 = DexDescription_Shroomish_2,
+ .pokemonScale = 513,
+ .pokemonOffset = 22,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Breloom
+ .categoryName = _("MUSHROOM"),
+ .height = 12,
+ .weight = 392,
+ .descriptionPage1 = DexDescription_Breloom_1,
+ .descriptionPage2 = DexDescription_Breloom_2,
+ .pokemonScale = 324,
+ .pokemonOffset = 6,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Slakoth
+ .categoryName = _("SLACKER"),
+ .height = 8,
+ .weight = 240,
+ .descriptionPage1 = DexDescription_Slakoth_1,
+ .descriptionPage2 = DexDescription_Slakoth_2,
+ .pokemonScale = 291,
+ .pokemonOffset = 16,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Vigoroth
+ .categoryName = _("WILD MONKEY"),
+ .height = 14,
+ .weight = 465,
+ .descriptionPage1 = DexDescription_Vigoroth_1,
+ .descriptionPage2 = DexDescription_Vigoroth_2,
+ .pokemonScale = 301,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Slaking
+ .categoryName = _("LAZY"),
+ .height = 20,
+ .weight = 1305,
+ .descriptionPage1 = DexDescription_Slaking_1,
+ .descriptionPage2 = DexDescription_Slaking_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 300,
+ .trainerOffset = 1,
+ },
+ { //Nincada
+ .categoryName = _("TRAINEE"),
+ .height = 5,
+ .weight = 55,
+ .descriptionPage1 = DexDescription_Nincada_1,
+ .descriptionPage2 = DexDescription_Nincada_2,
+ .pokemonScale = 405,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Ninjask
+ .categoryName = _("NINJA"),
+ .height = 8,
+ .weight = 120,
+ .descriptionPage1 = DexDescription_Ninjask_1,
+ .descriptionPage2 = DexDescription_Ninjask_2,
+ .pokemonScale = 383,
+ .pokemonOffset = -9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Shedinja
+ .categoryName = _("SHED"),
+ .height = 8,
+ .weight = 12,
+ .descriptionPage1 = DexDescription_Shedinja_1,
+ .descriptionPage2 = DexDescription_Shedinja_2,
+ .pokemonScale = 372,
+ .pokemonOffset = -8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Whismur
+ .categoryName = _("WHISPER"),
+ .height = 6,
+ .weight = 163,
+ .descriptionPage1 = DexDescription_Whismur_1,
+ .descriptionPage2 = DexDescription_Whismur_2,
+ .pokemonScale = 373,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Loudred
+ .categoryName = _("BIG VOICE"),
+ .height = 10,
+ .weight = 405,
+ .descriptionPage1 = DexDescription_Loudred_1,
+ .descriptionPage2 = DexDescription_Loudred_2,
+ .pokemonScale = 356,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Exploud
+ .categoryName = _("LOUD NOISE"),
+ .height = 15,
+ .weight = 840,
+ .descriptionPage1 = DexDescription_Exploud_1,
+ .descriptionPage2 = DexDescription_Exploud_2,
+ .pokemonScale = 284,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Makuhita
+ .categoryName = _("GUTS"),
+ .height = 10,
+ .weight = 864,
+ .descriptionPage1 = DexDescription_Makuhita_1,
+ .descriptionPage2 = DexDescription_Makuhita_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Hariyama
+ .categoryName = _("ARM THRUST"),
+ .height = 23,
+ .weight = 2538,
+ .descriptionPage1 = DexDescription_Hariyama_1,
+ .descriptionPage2 = DexDescription_Hariyama_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 343,
+ .trainerOffset = 7,
+ },
+ { //Azurill
+ .categoryName = _("POLKA DOT"),
+ .height = 2,
+ .weight = 20,
+ .descriptionPage1 = DexDescription_Azurill_1,
+ .descriptionPage2 = DexDescription_Azurill_2,
+ .pokemonScale = 603,
+ .pokemonOffset = 23,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Nosepass
+ .categoryName = _("COMPASS"),
+ .height = 10,
+ .weight = 970,
+ .descriptionPage1 = DexDescription_Nosepass_1,
+ .descriptionPage2 = DexDescription_Nosepass_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 9,
+ .trainerScale = 289,
+ .trainerOffset = 3,
+ },
+ { //Skitty
+ .categoryName = _("KITTEN"),
+ .height = 6,
+ .weight = 110,
+ .descriptionPage1 = DexDescription_Skitty_1,
+ .descriptionPage2 = DexDescription_Skitty_2,
+ .pokemonScale = 492,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Delcatty
+ .categoryName = _("PRIM"),
+ .height = 11,
+ .weight = 326,
+ .descriptionPage1 = DexDescription_Delcatty_1,
+ .descriptionPage2 = DexDescription_Delcatty_2,
+ .pokemonScale = 322,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Sableye
+ .categoryName = _("DARKNESS"),
+ .height = 5,
+ .weight = 110,
+ .descriptionPage1 = DexDescription_Sableye_1,
+ .descriptionPage2 = DexDescription_Sableye_2,
+ .pokemonScale = 451,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Mawile
+ .categoryName = _("DECEIVER"),
+ .height = 6,
+ .weight = 115,
+ .descriptionPage1 = DexDescription_Mawile_1,
+ .descriptionPage2 = DexDescription_Mawile_2,
+ .pokemonScale = 466,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Aron
+ .categoryName = _("IRON ARMOR"),
+ .height = 4,
+ .weight = 600,
+ .descriptionPage1 = DexDescription_Aron_1,
+ .descriptionPage2 = DexDescription_Aron_2,
+ .pokemonScale = 419,
+ .pokemonOffset = 23,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Lairon
+ .categoryName = _("IRON ARMOR"),
+ .height = 9,
+ .weight = 1200,
+ .descriptionPage1 = DexDescription_Lairon_1,
+ .descriptionPage2 = DexDescription_Lairon_2,
+ .pokemonScale = 275,
+ .pokemonOffset = 12,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Aggron
+ .categoryName = _("IRON ARMOR"),
+ .height = 21,
+ .weight = 3600,
+ .descriptionPage1 = DexDescription_Aggron_1,
+ .descriptionPage2 = DexDescription_Aggron_2,
+ .pokemonScale = 256,
+ .pokemonOffset = -1,
+ .trainerScale = 350,
+ .trainerOffset = 6,
+ },
+ { //Meditite
+ .categoryName = _("MEDITATE"),
+ .height = 6,
+ .weight = 112,
+ .descriptionPage1 = DexDescription_Meditite_1,
+ .descriptionPage2 = DexDescription_Meditite_2,
+ .pokemonScale = 465,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Medicham
+ .categoryName = _("MEDITATE"),
+ .height = 13,
+ .weight = 315,
+ .descriptionPage1 = DexDescription_Medicham_1,
+ .descriptionPage2 = DexDescription_Medicham_2,
+ .pokemonScale = 298,
+ .pokemonOffset = 5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Electrike
+ .categoryName = _("LIGHTNING"),
+ .height = 6,
+ .weight = 152,
+ .descriptionPage1 = DexDescription_Electrike_1,
+ .descriptionPage2 = DexDescription_Electrike_2,
+ .pokemonScale = 290,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Manectric
+ .categoryName = _("DISCHARGE"),
+ .height = 15,
+ .weight = 402,
+ .descriptionPage1 = DexDescription_Manectric_1,
+ .descriptionPage2 = DexDescription_Manectric_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 257,
+ .trainerOffset = 0,
+ },
+ { //Plusle
+ .categoryName = _("CHEERING"),
+ .height = 4,
+ .weight = 42,
+ .descriptionPage1 = DexDescription_Plusle_1,
+ .descriptionPage2 = DexDescription_Plusle_2,
+ .pokemonScale = 515,
+ .pokemonOffset = -9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Minun
+ .categoryName = _("CHEERING"),
+ .height = 4,
+ .weight = 42,
+ .descriptionPage1 = DexDescription_Minun_1,
+ .descriptionPage2 = DexDescription_Minun_2,
+ .pokemonScale = 512,
+ .pokemonOffset = -7,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Volbeat
+ .categoryName = _("FIREFLY"),
+ .height = 7,
+ .weight = 177,
+ .descriptionPage1 = DexDescription_Volbeat_1,
+ .descriptionPage2 = DexDescription_Volbeat_2,
+ .pokemonScale = 442,
+ .pokemonOffset = 16,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Illumise
+ .categoryName = _("FIREFLY"),
+ .height = 6,
+ .weight = 177,
+ .descriptionPage1 = DexDescription_Illumise_1,
+ .descriptionPage2 = DexDescription_Illumise_2,
+ .pokemonScale = 572,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Roselia
+ .categoryName = _("THORN"),
+ .height = 3,
+ .weight = 20,
+ .descriptionPage1 = DexDescription_Roselia_1,
+ .descriptionPage2 = DexDescription_Roselia_2,
+ .pokemonScale = 677,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Gulpin
+ .categoryName = _("STOMACH"),
+ .height = 4,
+ .weight = 103,
+ .descriptionPage1 = DexDescription_Gulpin_1,
+ .descriptionPage2 = DexDescription_Gulpin_2,
+ .pokemonScale = 593,
+ .pokemonOffset = 23,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Swalot
+ .categoryName = _("POISON BAG"),
+ .height = 17,
+ .weight = 800,
+ .descriptionPage1 = DexDescription_Swalot_1,
+ .descriptionPage2 = DexDescription_Swalot_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 6,
+ .trainerScale = 345,
+ .trainerOffset = 3,
+ },
+ { //Carvanha
+ .categoryName = _("SAVAGE"),
+ .height = 8,
+ .weight = 208,
+ .descriptionPage1 = DexDescription_Carvanha_1,
+ .descriptionPage2 = DexDescription_Carvanha_2,
+ .pokemonScale = 362,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Sharpedo
+ .categoryName = _("BRUTAL"),
+ .height = 18,
+ .weight = 888,
+ .descriptionPage1 = DexDescription_Sharpedo_1,
+ .descriptionPage2 = DexDescription_Sharpedo_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 317,
+ .trainerOffset = 3,
+ },
+ { //Wailmer
+ .categoryName = _("BALL WHALE"),
+ .height = 20,
+ .weight = 1300,
+ .descriptionPage1 = DexDescription_Wailmer_1,
+ .descriptionPage2 = DexDescription_Wailmer_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 493,
+ .trainerOffset = 0,
+ },
+ { //Wailord
+ .categoryName = _("FLOAT WHALE"),
+ .height = 145,
+ .weight = 3980,
+ .descriptionPage1 = DexDescription_Wailord_1,
+ .descriptionPage2 = DexDescription_Wailord_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 1352,
+ .trainerOffset = 18,
+ },
+ { //Numel
+ .categoryName = _("NUMB"),
+ .height = 7,
+ .weight = 240,
+ .descriptionPage1 = DexDescription_Numel_1,
+ .descriptionPage2 = DexDescription_Numel_2,
+ .pokemonScale = 342,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Camerupt
+ .categoryName = _("ERUPTION"),
+ .height = 19,
+ .weight = 2200,
+ .descriptionPage1 = DexDescription_Camerupt_1,
+ .descriptionPage2 = DexDescription_Camerupt_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 7,
+ .trainerScale = 345,
+ .trainerOffset = 6,
+ },
+ { //Torkoal
+ .categoryName = _("COAL"),
+ .height = 5,
+ .weight = 804,
+ .descriptionPage1 = DexDescription_Torkoal_1,
+ .descriptionPage2 = DexDescription_Torkoal_2,
+ .pokemonScale = 390,
+ .pokemonOffset = 9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Spoink
+ .categoryName = _("BOUNCE"),
+ .height = 7,
+ .weight = 306,
+ .descriptionPage1 = DexDescription_Spoink_1,
+ .descriptionPage2 = DexDescription_Spoink_2,
+ .pokemonScale = 423,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Grumpig
+ .categoryName = _("MANIPULATE"),
+ .height = 9,
+ .weight = 715,
+ .descriptionPage1 = DexDescription_Grumpig_1,
+ .descriptionPage2 = DexDescription_Grumpig_2,
+ .pokemonScale = 358,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Spinda
+ .categoryName = _("SPOT PANDA"),
+ .height = 11,
+ .weight = 50,
+ .descriptionPage1 = DexDescription_Spinda_1,
+ .descriptionPage2 = DexDescription_Spinda_2,
+ .pokemonScale = 321,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Trapinch
+ .categoryName = _("ANT PIT"),
+ .height = 7,
+ .weight = 150,
+ .descriptionPage1 = DexDescription_Trapinch_1,
+ .descriptionPage2 = DexDescription_Trapinch_2,
+ .pokemonScale = 298,
+ .pokemonOffset = 17,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Vibrava
+ .categoryName = _("VIBRATION"),
+ .height = 11,
+ .weight = 153,
+ .descriptionPage1 = DexDescription_Vibrava_1,
+ .descriptionPage2 = DexDescription_Vibrava_2,
+ .pokemonScale = 370,
+ .pokemonOffset = 11,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Flygon
+ .categoryName = _("MYSTIC"),
+ .height = 20,
+ .weight = 820,
+ .descriptionPage1 = DexDescription_Flygon_1,
+ .descriptionPage2 = DexDescription_Flygon_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 268,
+ .trainerOffset = 1,
+ },
+ { //Cacnea
+ .categoryName = _("CACTUS"),
+ .height = 4,
+ .weight = 513,
+ .descriptionPage1 = DexDescription_Cacnea_1,
+ .descriptionPage2 = DexDescription_Cacnea_2,
+ .pokemonScale = 455,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Cacturne
+ .categoryName = _("SCARECROW"),
+ .height = 13,
+ .weight = 774,
+ .descriptionPage1 = DexDescription_Cacturne_1,
+ .descriptionPage2 = DexDescription_Cacturne_2,
+ .pokemonScale = 327,
+ .pokemonOffset = 5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Swablu
+ .categoryName = _("COTTON BIRD"),
+ .height = 4,
+ .weight = 12,
+ .descriptionPage1 = DexDescription_Swablu_1,
+ .descriptionPage2 = DexDescription_Swablu_2,
+ .pokemonScale = 422,
+ .pokemonOffset = -8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Altaria
+ .categoryName = _("HUMMING"),
+ .height = 11,
+ .weight = 206,
+ .descriptionPage1 = DexDescription_Altaria_1,
+ .descriptionPage2 = DexDescription_Altaria_2,
+ .pokemonScale = 327,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Zangoose
+ .categoryName = _("CAT FERRET"),
+ .height = 13,
+ .weight = 403,
+ .descriptionPage1 = DexDescription_Zangoose_1,
+ .descriptionPage2 = DexDescription_Zangoose_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Seviper
+ .categoryName = _("FANG SNAKE"),
+ .height = 27,
+ .weight = 525,
+ .descriptionPage1 = DexDescription_Seviper_1,
+ .descriptionPage2 = DexDescription_Seviper_2,
+ .pokemonScale = 275,
+ .pokemonOffset = 7,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Lunatone
+ .categoryName = _("METEORITE"),
+ .height = 10,
+ .weight = 1680,
+ .descriptionPage1 = DexDescription_Lunatone_1,
+ .descriptionPage2 = DexDescription_Lunatone_2,
+ .pokemonScale = 300,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Solrock
+ .categoryName = _("METEORITE"),
+ .height = 12,
+ .weight = 1540,
+ .descriptionPage1 = DexDescription_Solrock_1,
+ .descriptionPage2 = DexDescription_Solrock_2,
+ .pokemonScale = 328,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Barboach
+ .categoryName = _("WHISKERS"),
+ .height = 4,
+ .weight = 19,
+ .descriptionPage1 = DexDescription_Barboach_1,
+ .descriptionPage2 = DexDescription_Barboach_2,
+ .pokemonScale = 581,
+ .pokemonOffset = -3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Whiscash
+ .categoryName = _("WHISKERS"),
+ .height = 9,
+ .weight = 236,
+ .descriptionPage1 = DexDescription_Whiscash_1,
+ .descriptionPage2 = DexDescription_Whiscash_2,
+ .pokemonScale = 317,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Corphish
+ .categoryName = _("RUFFIAN"),
+ .height = 6,
+ .weight = 115,
+ .descriptionPage1 = DexDescription_Corphish_1,
+ .descriptionPage2 = DexDescription_Corphish_2,
+ .pokemonScale = 484,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Crawdaunt
+ .categoryName = _("ROGUE"),
+ .height = 11,
+ .weight = 328,
+ .descriptionPage1 = DexDescription_Crawdaunt_1,
+ .descriptionPage2 = DexDescription_Crawdaunt_2,
+ .pokemonScale = 365,
+ .pokemonOffset = 9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Baltoy
+ .categoryName = _("CLAY DOLL"),
+ .height = 5,
+ .weight = 215,
+ .descriptionPage1 = DexDescription_Baltoy_1,
+ .descriptionPage2 = DexDescription_Baltoy_2,
+ .pokemonScale = 457,
+ .pokemonOffset = 21,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Claydol
+ .categoryName = _("CLAY DOLL"),
+ .height = 15,
+ .weight = 1080,
+ .descriptionPage1 = DexDescription_Claydol_1,
+ .descriptionPage2 = DexDescription_Claydol_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 280,
+ .trainerOffset = 1,
+ },
+ { //Lileep
+ .categoryName = _("SEA LILY"),
+ .height = 10,
+ .weight = 238,
+ .descriptionPage1 = DexDescription_Lileep_1,
+ .descriptionPage2 = DexDescription_Lileep_2,
+ .pokemonScale = 305,
+ .pokemonOffset = 8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Cradily
+ .categoryName = _("BARNACLE"),
+ .height = 15,
+ .weight = 604,
+ .descriptionPage1 = DexDescription_Cradily_1,
+ .descriptionPage2 = DexDescription_Cradily_2,
+ .pokemonScale = 267,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Anorith
+ .categoryName = _("OLD SHRIMP"),
+ .height = 7,
+ .weight = 125,
+ .descriptionPage1 = DexDescription_Anorith_1,
+ .descriptionPage2 = DexDescription_Anorith_2,
+ .pokemonScale = 296,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Armaldo
+ .categoryName = _("PLATE"),
+ .height = 15,
+ .weight = 682,
+ .descriptionPage1 = DexDescription_Armaldo_1,
+ .descriptionPage2 = DexDescription_Armaldo_2,
+ .pokemonScale = 312,
+ .pokemonOffset = 3,
+ .trainerScale = 271,
+ .trainerOffset = 0,
+ },
+ { //Feebas
+ .categoryName = _("FISH"),
+ .height = 6,
+ .weight = 74,
+ .descriptionPage1 = DexDescription_Feebas_1,
+ .descriptionPage2 = DexDescription_Feebas_2,
+ .pokemonScale = 423,
+ .pokemonOffset = -4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Milotic
+ .categoryName = _("TENDER"),
+ .height = 62,
+ .weight = 1620,
+ .descriptionPage1 = DexDescription_Milotic_1,
+ .descriptionPage2 = DexDescription_Milotic_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 360,
+ .trainerOffset = 7,
+ },
+ { //Castform
+ .categoryName = _("WEATHER"),
+ .height = 3,
+ .weight = 8,
+ .descriptionPage1 = DexDescription_Castform_1,
+ .descriptionPage2 = DexDescription_Castform_2,
+ .pokemonScale = 435,
+ .pokemonOffset = -5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Kecleon
+ .categoryName = _("COLOR SWAP"),
+ .height = 10,
+ .weight = 220,
+ .descriptionPage1 = DexDescription_Kecleon_1,
+ .descriptionPage2 = DexDescription_Kecleon_2,
+ .pokemonScale = 316,
+ .pokemonOffset = 10,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Shuppet
+ .categoryName = _("PUPPET"),
+ .height = 6,
+ .weight = 23,
+ .descriptionPage1 = DexDescription_Shuppet_1,
+ .descriptionPage2 = DexDescription_Shuppet_2,
+ .pokemonScale = 440,
+ .pokemonOffset = 20,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Banette
+ .categoryName = _("MARIONETTE"),
+ .height = 11,
+ .weight = 125,
+ .descriptionPage1 = DexDescription_Banette_1,
+ .descriptionPage2 = DexDescription_Banette_2,
+ .pokemonScale = 262,
+ .pokemonOffset = 9,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Duskull
+ .categoryName = _("REQUIEM"),
+ .height = 8,
+ .weight = 150,
+ .descriptionPage1 = DexDescription_Duskull_1,
+ .descriptionPage2 = DexDescription_Duskull_2,
+ .pokemonScale = 406,
+ .pokemonOffset = -4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Dusclops
+ .categoryName = _("BECKON"),
+ .height = 16,
+ .weight = 306,
+ .descriptionPage1 = DexDescription_Dusclops_1,
+ .descriptionPage2 = DexDescription_Dusclops_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 299,
+ .trainerOffset = 1,
+ },
+ { //Tropius
+ .categoryName = _("FRUIT"),
+ .height = 20,
+ .weight = 1000,
+ .descriptionPage1 = DexDescription_Tropius_1,
+ .descriptionPage2 = DexDescription_Tropius_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 344,
+ .trainerOffset = 7,
+ },
+ { //Chimecho
+ .categoryName = _("WIND CHIME"),
+ .height = 6,
+ .weight = 10,
+ .descriptionPage1 = DexDescription_Chimecho_1,
+ .descriptionPage2 = DexDescription_Chimecho_2,
+ .pokemonScale = 505,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Absol
+ .categoryName = _("DISASTER"),
+ .height = 12,
+ .weight = 470,
+ .descriptionPage1 = DexDescription_Absol_1,
+ .descriptionPage2 = DexDescription_Absol_2,
+ .pokemonScale = 301,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Wynaut
+ .categoryName = _("BRIGHT"),
+ .height = 6,
+ .weight = 140,
+ .descriptionPage1 = DexDescription_Wynaut_1,
+ .descriptionPage2 = DexDescription_Wynaut_2,
+ .pokemonScale = 484,
+ .pokemonOffset = 19,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Snorunt
+ .categoryName = _("SNOW HAT"),
+ .height = 7,
+ .weight = 168,
+ .descriptionPage1 = DexDescription_Snorunt_1,
+ .descriptionPage2 = DexDescription_Snorunt_2,
+ .pokemonScale = 380,
+ .pokemonOffset = 15,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Glalie
+ .categoryName = _("FACE"),
+ .height = 15,
+ .weight = 2565,
+ .descriptionPage1 = DexDescription_Glalie_1,
+ .descriptionPage2 = DexDescription_Glalie_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 3,
+ .trainerScale = 344,
+ .trainerOffset = 0,
+ },
+ { //Spheal
+ .categoryName = _("CLAP"),
+ .height = 8,
+ .weight = 395,
+ .descriptionPage1 = DexDescription_Spheal_1,
+ .descriptionPage2 = DexDescription_Spheal_2,
+ .pokemonScale = 315,
+ .pokemonOffset = 16,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Sealeo
+ .categoryName = _("BALL ROLL"),
+ .height = 11,
+ .weight = 876,
+ .descriptionPage1 = DexDescription_Sealeo_1,
+ .descriptionPage2 = DexDescription_Sealeo_2,
+ .pokemonScale = 338,
+ .pokemonOffset = 13,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Walrein
+ .categoryName = _("ICE BREAK"),
+ .height = 14,
+ .weight = 1506,
+ .descriptionPage1 = DexDescription_Walrein_1,
+ .descriptionPage2 = DexDescription_Walrein_2,
+ .pokemonScale = 316,
+ .pokemonOffset = 4,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Clamperl
+ .categoryName = _("BIVALVE"),
+ .height = 4,
+ .weight = 525,
+ .descriptionPage1 = DexDescription_Clamperl_1,
+ .descriptionPage2 = DexDescription_Clamperl_2,
+ .pokemonScale = 691,
+ .pokemonOffset = 22,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Huntail
+ .categoryName = _("DEEP SEA"),
+ .height = 17,
+ .weight = 270,
+ .descriptionPage1 = DexDescription_Huntail_1,
+ .descriptionPage2 = DexDescription_Huntail_2,
+ .pokemonScale = 307,
+ .pokemonOffset = 1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Gorebyss
+ .categoryName = _("SOUTH SEA"),
+ .height = 18,
+ .weight = 226,
+ .descriptionPage1 = DexDescription_Gorebyss_1,
+ .descriptionPage2 = DexDescription_Gorebyss_2,
+ .pokemonScale = 278,
+ .pokemonOffset = 5,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Relicanth
+ .categoryName = _("LONGEVITY"),
+ .height = 10,
+ .weight = 234,
+ .descriptionPage1 = DexDescription_Relicanth_1,
+ .descriptionPage2 = DexDescription_Relicanth_2,
+ .pokemonScale = 316,
+ .pokemonOffset = 7,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Luvdisc
+ .categoryName = _("RENDEZVOUS"),
+ .height = 6,
+ .weight = 87,
+ .descriptionPage1 = DexDescription_Luvdisc_1,
+ .descriptionPage2 = DexDescription_Luvdisc_2,
+ .pokemonScale = 371,
+ .pokemonOffset = 2,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Bagon
+ .categoryName = _("ROCK HEAD"),
+ .height = 6,
+ .weight = 421,
+ .descriptionPage1 = DexDescription_Bagon_1,
+ .descriptionPage2 = DexDescription_Bagon_2,
+ .pokemonScale = 448,
+ .pokemonOffset = 18,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Shelgon
+ .categoryName = _("ENDURANCE"),
+ .height = 11,
+ .weight = 1105,
+ .descriptionPage1 = DexDescription_Shelgon_1,
+ .descriptionPage2 = DexDescription_Shelgon_2,
+ .pokemonScale = 311,
+ .pokemonOffset = 12,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Salamence
+ .categoryName = _("DRAGON"),
+ .height = 15,
+ .weight = 1026,
+ .descriptionPage1 = DexDescription_Salamence_1,
+ .descriptionPage2 = DexDescription_Salamence_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Beldum
+ .categoryName = _("IRON BALL"),
+ .height = 6,
+ .weight = 952,
+ .descriptionPage1 = DexDescription_Beldum_1,
+ .descriptionPage2 = DexDescription_Beldum_2,
+ .pokemonScale = 414,
+ .pokemonOffset = -1,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Metang
+ .categoryName = _("IRON CLAW"),
+ .height = 12,
+ .weight = 2025,
+ .descriptionPage1 = DexDescription_Metang_1,
+ .descriptionPage2 = DexDescription_Metang_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 6,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Metagross
+ .categoryName = _("IRON LEG"),
+ .height = 16,
+ .weight = 5500,
+ .descriptionPage1 = DexDescription_Metagross_1,
+ .descriptionPage2 = DexDescription_Metagross_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 4,
+ .trainerScale = 447,
+ .trainerOffset = 9,
+ },
+ { //Regirock
+ .categoryName = _("ROCK PEAK"),
+ .height = 17,
+ .weight = 2300,
+ .descriptionPage1 = DexDescription_Regirock_1,
+ .descriptionPage2 = DexDescription_Regirock_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 2,
+ .trainerScale = 309,
+ .trainerOffset = 1,
+ },
+ { //Regice
+ .categoryName = _("ICEBERG"),
+ .height = 18,
+ .weight = 1750,
+ .descriptionPage1 = DexDescription_Regice_1,
+ .descriptionPage2 = DexDescription_Regice_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 301,
+ .trainerOffset = 2,
+ },
+ { //Registeel
+ .categoryName = _("IRON"),
+ .height = 19,
+ .weight = 2050,
+ .descriptionPage1 = DexDescription_Registeel_1,
+ .descriptionPage2 = DexDescription_Registeel_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 359,
+ .trainerOffset = 6,
+ },
+ { //Latias
+ .categoryName = _("EON"),
+ .height = 14,
+ .weight = 400,
+ .descriptionPage1 = DexDescription_Latias_1,
+ .descriptionPage2 = DexDescription_Latias_2,
+ .pokemonScale = 304,
+ .pokemonOffset = 3,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Latios
+ .categoryName = _("EON"),
+ .height = 20,
+ .weight = 600,
+ .descriptionPage1 = DexDescription_Latios_1,
+ .descriptionPage2 = DexDescription_Latios_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 294,
+ .trainerOffset = 3,
+ },
+ { //Kyogre
+ .categoryName = _("SEA BASIN"),
+ .height = 45,
+ .weight = 3520,
+ .descriptionPage1 = DexDescription_Kyogre_1,
+ .descriptionPage2 = DexDescription_Kyogre_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 614,
+ .trainerOffset = 13,
+ },
+ { //Groudon
+ .categoryName = _("CONTINENT"),
+ .height = 35,
+ .weight = 9500,
+ .descriptionPage1 = DexDescription_Groudon_1,
+ .descriptionPage2 = DexDescription_Groudon_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 515,
+ .trainerOffset = 14,
+ },
+ { //Rayquaza
+ .categoryName = _("SKY HIGH"),
+ .height = 70,
+ .weight = 2065,
+ .descriptionPage1 = DexDescription_Rayquaza_1,
+ .descriptionPage2 = DexDescription_Rayquaza_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 448,
+ .trainerOffset = 12,
+ },
+ { //Jirachi
+ .categoryName = _("WISH"),
+ .height = 3,
+ .weight = 11,
+ .descriptionPage1 = DexDescription_Jirachi_1,
+ .descriptionPage2 = DexDescription_Jirachi_2,
+ .pokemonScale = 608,
+ .pokemonOffset = -8,
+ .trainerScale = 256,
+ .trainerOffset = 0,
+ },
+ { //Deoxys
+ .categoryName = _("DNA"),
+ .height = 17,
+ .weight = 608,
+ .descriptionPage1 = DexDescription_Deoxys_1,
+ .descriptionPage2 = DexDescription_Deoxys_2,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 290,
+ .trainerOffset = 2,
+ },
+};
diff --git a/src/data/pokedex_orders.h b/src/data/pokedex_orders.h
new file mode 100644
index 000000000..3577e6793
--- /dev/null
+++ b/src/data/pokedex_orders.h
@@ -0,0 +1,1192 @@
+static const u16 gPokedexOrder_Alphabetical[] =
+{
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 63, // Abra
+ 359, // Absol
+ 142, // Aerodactyl
+ 306, // Aggron
+ 190, // Aipom
+ 65, // Alakazam
+ 334, // Altaria
+ 181, // Ampharos
+ 347, // Anorith
+ 24, // Arbok
+ 59, // Arcanine
+ 168, // Ariados
+ 348, // Armaldo
+ 304, // Aron
+ 144, // Articuno
+ 184, // Azumarill
+ 298, // Azurill
+ 371, // Bagon
+ 343, // Baltoy
+ 354, // Banette
+ 339, // Barboach
+ 153, // Bayleef
+ 267, // Beautifly
+ 15, // Beedrill
+ 374, // Beldum
+ 182, // Bellossom
+ 69, // Bellsprout
+ 9, // Blastoise
+ 257, // Blaziken
+ 242, // Blissey
+ 286, // Breloom
+ 1, // Bulbasaur
+ 12, // Butterfree
+ 331, // Cacnea
+ 332, // Cacturne
+ 323, // Camerupt
+ 318, // Carvanha
+ 268, // Cascoon
+ 351, // Castform
+ 10, // Caterpie
+ 251, // Celebi
+ 113, // Chansey
+ 6, // Charizard
+ 4, // Charmander
+ 5, // Charmeleon
+ 152, // Chikorita
+ 358, // Chimecho
+ 170, // Chinchou
+ 366, // Clamperl
+ 344, // Claydol
+ 36, // Clefable
+ 35, // Clefairy
+ 173, // Cleffa
+ 91, // Cloyster
+ 256, // Combusken
+ 341, // Corphish
+ 222, // Corsola
+ 346, // Cradily
+ 342, // Crawdaunt
+ 169, // Crobat
+ 159, // Croconaw
+ 104, // Cubone
+ 155, // Cyndaquil
+ 301, // Delcatty
+ 225, // Delibird
+ 386, // Deoxys
+ 87, // Dewgong
+ 50, // Diglett
+ 132, // Ditto
+ 85, // Dodrio
+ 84, // Doduo
+ 232, // Donphan
+ 148, // Dragonair
+ 149, // Dragonite
+ 147, // Dratini
+ 96, // Drowzee
+ 51, // Dugtrio
+ 206, // Dunsparce
+ 356, // Dusclops
+ 355, // Duskull
+ 269, // Dustox
+ 133, // Eevee
+ 23, // Ekans
+ 125, // Electabuzz
+ 309, // Electrike
+ 101, // Electrode
+ 239, // Elekid
+ 244, // Entei
+ 196, // Espeon
+ 102, // Exeggcute
+ 103, // Exeggutor
+ 295, // Exploud
+ 83, // Farfetchd
+ 22, // Fearow
+ 349, // Feebas
+ 160, // Feraligatr
+ 180, // Flaaffy
+ 136, // Flareon
+ 330, // Flygon
+ 205, // Forretress
+ 162, // Furret
+ 282, // Gardevoir
+ 92, // Gastly
+ 94, // Gengar
+ 74, // Geodude
+ 203, // Girafarig
+ 362, // Glalie
+ 207, // Gligar
+ 44, // Gloom
+ 42, // Golbat
+ 118, // Goldeen
+ 55, // Golduck
+ 76, // Golem
+ 368, // Gorebyss
+ 210, // Granbull
+ 75, // Graveler
+ 88, // Grimer
+ 383, // Groudon
+ 253, // Grovyle
+ 58, // Growlithe
+ 326, // Grumpig
+ 316, // Gulpin
+ 130, // Gyarados
+ 297, // Hariyama
+ 93, // Haunter
+ 214, // Heracross
+ 107, // Hitmonchan
+ 106, // Hitmonlee
+ 237, // Hitmontop
+ 250, // Ho-Oh
+ 163, // Hoothoot
+ 187, // Hoppip
+ 116, // Horsea
+ 229, // Houndoom
+ 228, // Houndour
+ 367, // Huntail
+ 97, // Hypno
+ 174, // Igglybuff
+ 314, // Illumise
+ 2, // Ivysaur
+ 39, // Jigglypuff
+ 385, // Jirachi
+ 135, // Jolteon
+ 189, // Jumpluff
+ 124, // Jynx
+ 140, // Kabuto
+ 141, // Kabutops
+ 64, // Kadabra
+ 14, // Kakuna
+ 115, // Kangaskhan
+ 352, // Kecleon
+ 230, // Kingdra
+ 99, // Kingler
+ 281, // Kirlia
+ 109, // Koffing
+ 98, // Krabby
+ 382, // Kyogre
+ 305, // Lairon
+ 171, // Lanturn
+ 131, // Lapras
+ 246, // Larvitar
+ 380, // Latias
+ 381, // Latios
+ 166, // Ledian
+ 165, // Ledyba
+ 108, // Lickitung
+ 345, // Lileep
+ 264, // Linoone
+ 271, // Lombre
+ 270, // Lotad
+ 294, // Loudred
+ 272, // Ludicolo
+ 249, // Lugia
+ 337, // Lunatone
+ 370, // Luvdisc
+ 68, // Machamp
+ 67, // Machoke
+ 66, // Machop
+ 240, // Magby
+ 219, // Magcargo
+ 129, // Magikarp
+ 126, // Magmar
+ 81, // Magnemite
+ 82, // Magneton
+ 296, // Makuhita
+ 310, // Manectric
+ 56, // Mankey
+ 226, // Mantine
+ 179, // Mareep
+ 183, // Marill
+ 105, // Marowak
+ 259, // Marshtomp
+ 284, // Masquerain
+ 303, // Mawile
+ 308, // Medicham
+ 307, // Meditite
+ 154, // Meganium
+ 52, // Meowth
+ 376, // Metagross
+ 375, // Metang
+ 11, // Metapod
+ 151, // Mew
+ 150, // Mewtwo
+ 262, // Mightyena
+ 350, // Milotic
+ 241, // Miltank
+ 312, // Minun
+ 200, // Misdreavus
+ 146, // Moltres
+ 122, // Mr. mime
+ 258, // Mudkip
+ 89, // Muk
+ 198, // Murkrow
+ 177, // Natu
+ 34, // Nidoking
+ 31, // Nidoqueen
+ 29, // Nidoran?
+ 32, // Nidoran?
+ 30, // Nidorina
+ 33, // Nidorino
+ 290, // Nincada
+ 38, // Ninetales
+ 291, // Ninjask
+ 164, // Noctowl
+ 299, // Nosepass
+ 322, // Numel
+ 274, // Nuzleaf
+ 224, // Octillery
+ 43, // Oddish
+ 138, // Omanyte
+ 139, // Omastar
+ 95, // Onix
+ 46, // Paras
+ 47, // Parasect
+ 279, // Pelipper
+ 53, // Persian
+ 231, // Phanpy
+ 172, // Pichu
+ 18, // Pidgeot
+ 17, // Pidgeotto
+ 16, // Pidgey
+ 25, // Pikachu
+ 221, // Piloswine
+ 204, // Pineco
+ 127, // Pinsir
+ 311, // Plusle
+ 186, // Politoed
+ 60, // Poliwag
+ 61, // Poliwhirl
+ 62, // Poliwrath
+ 77, // Ponyta
+ 261, // Poochyena
+ 137, // Porygon
+ 233, // Porygon2
+ 57, // Primeape
+ 54, // Psyduck
+ 247, // Pupitar
+ 195, // Quagsire
+ 156, // Quilava
+ 211, // Qwilfish
+ 26, // Raichu
+ 243, // Raikou
+ 280, // Ralts
+ 78, // Rapidash
+ 20, // Raticate
+ 19, // Rattata
+ 384, // Rayquaza
+ 378, // Regice
+ 377, // Regirock
+ 379, // Registeel
+ 369, // Relicanth
+ 223, // Remoraid
+ 112, // Rhydon
+ 111, // Rhyhorn
+ 315, // Roselia
+ 302, // Sableye
+ 373, // Salamence
+ 27, // Sandshrew
+ 28, // Sandslash
+ 254, // Sceptile
+ 212, // Scizor
+ 123, // Scyther
+ 117, // Seadra
+ 119, // Seaking
+ 364, // Sealeo
+ 273, // Seedot
+ 86, // Seel
+ 161, // Sentret
+ 336, // Seviper
+ 319, // Sharpedo
+ 292, // Shedinja
+ 372, // Shelgon
+ 90, // Shellder
+ 275, // Shiftry
+ 285, // Shroomish
+ 213, // Shuckle
+ 353, // Shuppet
+ 266, // Silcoon
+ 227, // Skarmory
+ 188, // Skiploom
+ 300, // Skitty
+ 289, // Slaking
+ 287, // Slakoth
+ 80, // Slowbro
+ 199, // Slowking
+ 79, // Slowpoke
+ 218, // Slugma
+ 235, // Smeargle
+ 238, // Smoochum
+ 215, // Sneasel
+ 143, // Snorlax
+ 361, // Snorunt
+ 209, // Snubbull
+ 338, // Solrock
+ 21, // Spearow
+ 363, // Spheal
+ 167, // Spinarak
+ 327, // Spinda
+ 325, // Spoink
+ 7, // Squirtle
+ 234, // Stantler
+ 121, // Starmie
+ 120, // Staryu
+ 208, // Steelix
+ 185, // Sudowoodo
+ 245, // Suicune
+ 192, // Sunflora
+ 191, // Sunkern
+ 283, // Surskit
+ 333, // Swablu
+ 317, // Swalot
+ 260, // Swampert
+ 277, // Swellow
+ 220, // Swinub
+ 276, // Taillow
+ 114, // Tangela
+ 128, // Tauros
+ 216, // Teddiursa
+ 72, // Tentacool
+ 73, // Tentacruel
+ 175, // Togepi
+ 176, // Togetic
+ 255, // Torchic
+ 324, // Torkoal
+ 158, // Totodile
+ 328, // Trapinch
+ 252, // Treecko
+ 357, // Tropius
+ 157, // Typhlosion
+ 248, // Tyranitar
+ 236, // Tyrogue
+ 197, // Umbreon
+ 201, // Unown
+ 217, // Ursaring
+ 134, // Vaporeon
+ 49, // Venomoth
+ 48, // Venonat
+ 3, // Venusaur
+ 329, // Vibrava
+ 71, // Victreebel
+ 288, // Vigoroth
+ 45, // Vileplume
+ 313, // Volbeat
+ 100, // Voltorb
+ 37, // Vulpix
+ 320, // Wailmer
+ 321, // Wailord
+ 365, // Walrein
+ 8, // Wartortle
+ 13, // Weedle
+ 70, // Weepinbell
+ 110, // Weezing
+ 340, // Whiscash
+ 293, // Whismur
+ 40, // Wigglytuff
+ 278, // Wingull
+ 202, // Wobbuffet
+ 194, // Wooper
+ 265, // Wurmple
+ 360, // Wynaut
+ 178, // Xatu
+ 193, // Yanma
+ 335, // Zangoose
+ 145, // Zapdos
+ 263, // Zigzagoon
+ 41, // Zubat
+};
+static const u16 gPokedexOrder_Weight[] =
+{
+ 92, // Gastly
+ 93, // Haunter
+ 187, // Hoppip
+ 50, // Diglett
+ 351, // Castform
+ 109, // Koffing
+ 174, // Igglybuff
+ 200, // Misdreavus
+ 358, // Chimecho
+ 188, // Skiploom
+ 385, // Jirachi
+ 333, // Swablu
+ 292, // Shedinja
+ 175, // Togepi
+ 283, // Surskit
+ 16, // Pidgey
+ 191, // Sunkern
+ 339, // Barboach
+ 172, // Pichu
+ 298, // Azurill
+ 315, // Roselia
+ 177, // Natu
+ 21, // Spearow
+ 198, // Murkrow
+ 353, // Shuppet
+ 276, // Taillow
+ 102, // Exeggcute
+ 255, // Torchic
+ 270, // Lotad
+ 10, // Caterpie
+ 189, // Jumpluff
+ 173, // Cleffa
+ 13, // Weedle
+ 176, // Togetic
+ 147, // Dratini
+ 19, // Rattata
+ 284, // Masquerain
+ 265, // Wurmple
+ 211, // Qwilfish
+ 151, // Mew
+ 90, // Shellder
+ 273, // Seedot
+ 132, // Ditto
+ 69, // Bellsprout
+ 311, // Plusle
+ 52, // Meowth
+ 312, // Minun
+ 285, // Shroomish
+ 251, // Celebi
+ 222, // Corsola
+ 252, // Treecko
+ 327, // Spinda
+ 201, // Unown
+ 46, // Paras
+ 43, // Oddish
+ 39, // Jigglypuff
+ 290, // Nincada
+ 182, // Bellossom
+ 81, // Magnemite
+ 25, // Pikachu
+ 238, // Smoochum
+ 161, // Sentret
+ 70, // Weepinbell
+ 152, // Chikorita
+ 220, // Swinub
+ 133, // Eevee
+ 98, // Krabby
+ 104, // Cubone
+ 280, // Ralts
+ 1, // Bulbasaur
+ 23, // Ekans
+ 29, // Nidoran?
+ 204, // Pineco
+ 349, // Feebas
+ 138, // Omanyte
+ 41, // Zubat
+ 35, // Clefairy
+ 258, // Mudkip
+ 209, // Snubbull
+ 179, // Mareep
+ 155, // Cyndaquil
+ 116, // Horsea
+ 4, // Charmander
+ 192, // Sunflora
+ 183, // Marill
+ 194, // Wooper
+ 167, // Spinarak
+ 44, // Gloom
+ 370, // Luvdisc
+ 216, // Teddiursa
+ 32, // Nidoran?
+ 7, // Squirtle
+ 278, // Wingull
+ 158, // Totodile
+ 110, // Weezing
+ 37, // Vulpix
+ 11, // Metapod
+ 266, // Silcoon
+ 129, // Magikarp
+ 14, // Kakuna
+ 316, // Gulpin
+ 100, // Voltorb
+ 165, // Ledyba
+ 228, // Houndour
+ 300, // Skitty
+ 302, // Sableye
+ 307, // Meditite
+ 341, // Corphish
+ 190, // Aipom
+ 268, // Cascoon
+ 303, // Mawile
+ 140, // Kabuto
+ 40, // Wigglytuff
+ 27, // Sandshrew
+ 223, // Remoraid
+ 291, // Ninjask
+ 170, // Chinchou
+ 60, // Poliwag
+ 347, // Anorith
+ 49, // Venomoth
+ 354, // Banette
+ 2, // Ivysaur
+ 180, // Flaaffy
+ 261, // Poochyena
+ 360, // Wynaut
+ 206, // Dunsparce
+ 178, // Xatu
+ 355, // Duskull
+ 83, // Farfetchd
+ 328, // Trapinch
+ 118, // Goldeen
+ 309, // Electrike
+ 329, // Vibrava
+ 71, // Victreebel
+ 153, // Bayleef
+ 225, // Delibird
+ 293, // Whismur
+ 148, // Dragonair
+ 361, // Snorunt
+ 263, // Zigzagoon
+ 314, // Illumise
+ 313, // Volbeat
+ 20, // Raticate
+ 45, // Vileplume
+ 156, // Quilava
+ 5, // Charmeleon
+ 58, // Growlithe
+ 256, // Combusken
+ 66, // Machop
+ 63, // Abra
+ 33, // Nidorino
+ 54, // Psyduck
+ 277, // Swellow
+ 38, // Ninetales
+ 30, // Nidorina
+ 61, // Poliwhirl
+ 74, // Geodude
+ 281, // Kirlia
+ 213, // Shuckle
+ 334, // Altaria
+ 318, // Carvanha
+ 236, // Tyrogue
+ 163, // Hoothoot
+ 240, // Magby
+ 343, // Baltoy
+ 253, // Grovyle
+ 352, // Kecleon
+ 171, // Lanturn
+ 8, // Wartortle
+ 368, // Gorebyss
+ 369, // Relicanth
+ 239, // Elekid
+ 340, // Whiscash
+ 345, // Lileep
+ 322, // Numel
+ 287, // Slakoth
+ 135, // Jolteon
+ 159, // Croconaw
+ 136, // Flareon
+ 117, // Seadra
+ 196, // Espeon
+ 367, // Huntail
+ 197, // Umbreon
+ 259, // Marshtomp
+ 274, // Nuzleaf
+ 215, // Sneasel
+ 56, // Mankey
+ 279, // Pelipper
+ 267, // Beautifly
+ 224, // Octillery
+ 184, // Azumarill
+ 202, // Wobbuffet
+ 134, // Vaporeon
+ 28, // Sandslash
+ 47, // Parasect
+ 15, // Beedrill
+ 89, // Muk
+ 17, // Pidgeotto
+ 88, // Grimer
+ 26, // Raichu
+ 77, // Ponyta
+ 125, // Electabuzz
+ 48, // Venonat
+ 325, // Spoink
+ 356, // Dusclops
+ 308, // Medicham
+ 269, // Dustox
+ 53, // Persian
+ 12, // Butterfree
+ 57, // Primeape
+ 96, // Drowzee
+ 162, // Furret
+ 233, // Porygon2
+ 271, // Lombre
+ 264, // Linoone
+ 301, // Delcatty
+ 342, // Crawdaunt
+ 51, // Dugtrio
+ 168, // Ariados
+ 231, // Phanpy
+ 186, // Politoed
+ 120, // Staryu
+ 113, // Chansey
+ 139, // Omastar
+ 114, // Tangela
+ 218, // Slugma
+ 229, // Houndoom
+ 166, // Ledian
+ 79, // Slowpoke
+ 137, // Porygon
+ 262, // Mightyena
+ 193, // Yanma
+ 22, // Fearow
+ 185, // Sudowoodo
+ 119, // Seaking
+ 286, // Breloom
+ 84, // Doduo
+ 18, // Pidgeot
+ 363, // Spheal
+ 36, // Clefable
+ 380, // Latias
+ 310, // Manectric
+ 335, // Zangoose
+ 141, // Kabutops
+ 94, // Gengar
+ 294, // Loudred
+ 124, // Jynx
+ 164, // Noctowl
+ 203, // Girafarig
+ 371, // Bagon
+ 126, // Magmar
+ 105, // Marowak
+ 72, // Tentacool
+ 288, // Vigoroth
+ 242, // Blissey
+ 359, // Absol
+ 65, // Alakazam
+ 237, // Hitmontop
+ 282, // Gardevoir
+ 210, // Granbull
+ 106, // Hitmonlee
+ 107, // Hitmonchan
+ 227, // Skarmory
+ 331, // Cacnea
+ 257, // Blaziken
+ 254, // Sceptile
+ 336, // Seviper
+ 366, // Clamperl
+ 145, // Zapdos
+ 214, // Heracross
+ 62, // Poliwrath
+ 122, // Mr. mime
+ 127, // Pinsir
+ 272, // Ludicolo
+ 73, // Tentacruel
+ 42, // Golbat
+ 219, // Magcargo
+ 144, // Articuno
+ 221, // Piloswine
+ 123, // Scyther
+ 64, // Kadabra
+ 235, // Smeargle
+ 142, // Aerodactyl
+ 275, // Shiftry
+ 99, // Kingler
+ 31, // Nidoqueen
+ 82, // Magneton
+ 304, // Aron
+ 381, // Latios
+ 146, // Moltres
+ 346, // Cradily
+ 386, // Deoxys
+ 181, // Ampharos
+ 34, // Nidoking
+ 207, // Gligar
+ 24, // Arbok
+ 108, // Lickitung
+ 101, // Electrode
+ 348, // Armaldo
+ 67, // Machoke
+ 234, // Stantler
+ 326, // Grumpig
+ 246, // Larvitar
+ 169, // Crobat
+ 195, // Quagsire
+ 241, // Miltank
+ 97, // Hypno
+ 55, // Golduck
+ 332, // Cacturne
+ 80, // Slowbro
+ 157, // Typhlosion
+ 199, // Slowking
+ 115, // Kangaskhan
+ 121, // Starmie
+ 317, // Swalot
+ 324, // Torkoal
+ 260, // Swampert
+ 330, // Flygon
+ 295, // Exploud
+ 85, // Dodrio
+ 9, // Blastoise
+ 296, // Makuhita
+ 364, // Sealeo
+ 128, // Tauros
+ 319, // Sharpedo
+ 160, // Feraligatr
+ 86, // Seel
+ 6, // Charizard
+ 78, // Rapidash
+ 374, // Beldum
+ 299, // Nosepass
+ 3, // Venusaur
+ 357, // Tropius
+ 154, // Meganium
+ 373, // Salamence
+ 75, // Graveler
+ 344, // Claydol
+ 372, // Shelgon
+ 111, // Rhyhorn
+ 212, // Scizor
+ 87, // Dewgong
+ 112, // Rhydon
+ 232, // Donphan
+ 103, // Exeggutor
+ 305, // Lairon
+ 150, // Mewtwo
+ 217, // Ursaring
+ 205, // Forretress
+ 68, // Machamp
+ 320, // Wailmer
+ 289, // Slaking
+ 91, // Cloyster
+ 365, // Walrein
+ 247, // Pupitar
+ 230, // Kingdra
+ 338, // Solrock
+ 59, // Arcanine
+ 350, // Milotic
+ 337, // Lunatone
+ 378, // Regice
+ 243, // Raikou
+ 245, // Suicune
+ 244, // Entei
+ 250, // Ho-Oh
+ 248, // Tyranitar
+ 375, // Metang
+ 379, // Registeel
+ 384, // Rayquaza
+ 95, // Onix
+ 149, // Dragonite
+ 249, // Lugia
+ 131, // Lapras
+ 323, // Camerupt
+ 226, // Mantine
+ 377, // Regirock
+ 130, // Gyarados
+ 297, // Hariyama
+ 362, // Glalie
+ 76, // Golem
+ 382, // Kyogre
+ 306, // Aggron
+ 321, // Wailord
+ 208, // Steelix
+ 143, // Snorlax
+ 376, // Metagross
+ 383, // Groudon
+};
+static const u16 gPokedexOrder_Height[] =
+{
+ 50, // Diglett
+ 298, // Azurill
+ 177, // Natu
+ 13, // Weedle
+ 172, // Pichu
+ 173, // Cleffa
+ 175, // Togepi
+ 351, // Castform
+ 174, // Igglybuff
+ 10, // Caterpie
+ 276, // Taillow
+ 132, // Ditto
+ 133, // Eevee
+ 315, // Roselia
+ 21, // Spearow
+ 16, // Pidgey
+ 191, // Sunkern
+ 90, // Shellder
+ 19, // Rattata
+ 81, // Magnemite
+ 46, // Paras
+ 265, // Wurmple
+ 385, // Jirachi
+ 104, // Cubone
+ 258, // Mudkip
+ 194, // Wooper
+ 116, // Horsea
+ 52, // Meowth
+ 29, // Nidoran?
+ 220, // Swinub
+ 151, // Mew
+ 333, // Swablu
+ 304, // Aron
+ 311, // Plusle
+ 312, // Minun
+ 102, // Exeggcute
+ 25, // Pikachu
+ 182, // Bellossom
+ 316, // Gulpin
+ 263, // Zigzagoon
+ 285, // Shroomish
+ 138, // Omanyte
+ 331, // Cacnea
+ 98, // Krabby
+ 280, // Ralts
+ 187, // Hoppip
+ 255, // Torchic
+ 366, // Clamperl
+ 74, // Geodude
+ 183, // Marill
+ 339, // Barboach
+ 238, // Smoochum
+ 100, // Voltorb
+ 290, // Nincada
+ 302, // Sableye
+ 198, // Murkrow
+ 211, // Qwilfish
+ 7, // Squirtle
+ 252, // Treecko
+ 343, // Baltoy
+ 43, // Oddish
+ 270, // Lotad
+ 39, // Jigglypuff
+ 283, // Surskit
+ 155, // Cyndaquil
+ 140, // Kabuto
+ 264, // Linoone
+ 324, // Torkoal
+ 32, // Nidoran?
+ 167, // Spinarak
+ 56, // Mankey
+ 273, // Seedot
+ 261, // Poochyena
+ 231, // Phanpy
+ 201, // Unown
+ 170, // Chinchou
+ 233, // Porygon2
+ 60, // Poliwag
+ 371, // Bagon
+ 349, // Feebas
+ 353, // Shuppet
+ 158, // Totodile
+ 251, // Celebi
+ 360, // Wynaut
+ 27, // Sandshrew
+ 358, // Chimecho
+ 370, // Luvdisc
+ 228, // Houndour
+ 266, // Silcoon
+ 309, // Electrike
+ 4, // Charmander
+ 307, // Meditite
+ 278, // Wingull
+ 223, // Remoraid
+ 341, // Corphish
+ 222, // Corsola
+ 314, // Illumise
+ 209, // Snubbull
+ 37, // Vulpix
+ 246, // Larvitar
+ 374, // Beldum
+ 293, // Whismur
+ 204, // Pineco
+ 239, // Elekid
+ 35, // Clefairy
+ 213, // Shuckle
+ 216, // Teddiursa
+ 14, // Kakuna
+ 300, // Skitty
+ 176, // Togetic
+ 118, // Goldeen
+ 303, // Mawile
+ 179, // Mareep
+ 188, // Skiploom
+ 109, // Koffing
+ 51, // Dugtrio
+ 268, // Cascoon
+ 322, // Numel
+ 347, // Anorith
+ 313, // Volbeat
+ 163, // Hoothoot
+ 328, // Trapinch
+ 325, // Spoink
+ 11, // Metapod
+ 69, // Bellsprout
+ 361, // Snorunt
+ 20, // Raticate
+ 259, // Marshtomp
+ 277, // Swellow
+ 240, // Magby
+ 58, // Growlithe
+ 200, // Misdreavus
+ 1, // Bulbasaur
+ 236, // Tyrogue
+ 218, // Slugma
+ 287, // Slakoth
+ 281, // Kirlia
+ 190, // Aipom
+ 135, // Jolteon
+ 30, // Nidorina
+ 184, // Azumarill
+ 292, // Shedinja
+ 66, // Machop
+ 291, // Ninjask
+ 284, // Masquerain
+ 355, // Duskull
+ 192, // Sunflora
+ 189, // Jumpluff
+ 120, // Staryu
+ 180, // Flaaffy
+ 363, // Spheal
+ 54, // Psyduck
+ 219, // Magcargo
+ 83, // Farfetchd
+ 41, // Zubat
+ 137, // Porygon
+ 161, // Sentret
+ 318, // Carvanha
+ 44, // Gloom
+ 26, // Raichu
+ 129, // Magikarp
+ 215, // Sneasel
+ 305, // Lairon
+ 256, // Combusken
+ 224, // Octillery
+ 33, // Nidorino
+ 136, // Flareon
+ 225, // Delibird
+ 72, // Tentacool
+ 63, // Abra
+ 253, // Grovyle
+ 340, // Whiscash
+ 156, // Quilava
+ 196, // Espeon
+ 88, // Grimer
+ 152, // Chikorita
+ 326, // Grumpig
+ 299, // Nosepass
+ 53, // Persian
+ 262, // Mightyena
+ 48, // Venonat
+ 82, // Magneton
+ 77, // Ponyta
+ 296, // Makuhita
+ 337, // Lunatone
+ 28, // Sandslash
+ 96, // Drowzee
+ 114, // Tangela
+ 57, // Primeape
+ 165, // Ledyba
+ 40, // Wigglytuff
+ 47, // Parasect
+ 139, // Omastar
+ 294, // Loudred
+ 8, // Wartortle
+ 75, // Graveler
+ 197, // Umbreon
+ 345, // Lileep
+ 61, // Poliwhirl
+ 134, // Vaporeon
+ 15, // Beedrill
+ 105, // Marowak
+ 70, // Weepinbell
+ 369, // Relicanth
+ 111, // Rhyhorn
+ 2, // Ivysaur
+ 352, // Kecleon
+ 274, // Nuzleaf
+ 267, // Beautifly
+ 17, // Pidgeotto
+ 168, // Ariados
+ 86, // Seel
+ 186, // Politoed
+ 159, // Croconaw
+ 113, // Chansey
+ 354, // Banette
+ 232, // Donphan
+ 121, // Starmie
+ 5, // Charmeleon
+ 221, // Piloswine
+ 12, // Butterfree
+ 329, // Vibrava
+ 125, // Electabuzz
+ 342, // Crawdaunt
+ 301, // Delcatty
+ 334, // Altaria
+ 372, // Shelgon
+ 38, // Ninetales
+ 207, // Gligar
+ 364, // Sealeo
+ 327, // Spinda
+ 247, // Pupitar
+ 79, // Slowpoke
+ 338, // Solrock
+ 241, // Miltank
+ 22, // Fearow
+ 45, // Vileplume
+ 89, // Muk
+ 205, // Forretress
+ 185, // Sudowoodo
+ 359, // Absol
+ 193, // Yanma
+ 269, // Dustox
+ 108, // Lickitung
+ 235, // Smeargle
+ 171, // Lanturn
+ 101, // Electrode
+ 271, // Lombre
+ 286, // Breloom
+ 153, // Bayleef
+ 117, // Seadra
+ 110, // Weezing
+ 279, // Pelipper
+ 375, // Metang
+ 31, // Nidoqueen
+ 332, // Cacturne
+ 275, // Shiftry
+ 308, // Medicham
+ 335, // Zangoose
+ 141, // Kabutops
+ 99, // Kingler
+ 64, // Kadabra
+ 119, // Seaking
+ 36, // Clefable
+ 126, // Magmar
+ 202, // Wobbuffet
+ 92, // Gastly
+ 122, // Mr. mime
+ 62, // Poliwrath
+ 128, // Tauros
+ 380, // Latias
+ 181, // Ampharos
+ 288, // Vigoroth
+ 166, // Ledian
+ 76, // Golem
+ 365, // Walrein
+ 84, // Doduo
+ 229, // Houndoom
+ 34, // Nidoking
+ 124, // Jynx
+ 107, // Hitmonchan
+ 234, // Stantler
+ 210, // Granbull
+ 237, // Hitmontop
+ 195, // Quagsire
+ 344, // Claydol
+ 260, // Swampert
+ 242, // Blissey
+ 272, // Ludicolo
+ 295, // Exploud
+ 206, // Dunsparce
+ 127, // Pinsir
+ 91, // Cloyster
+ 67, // Machoke
+ 203, // Girafarig
+ 18, // Pidgeot
+ 178, // Xatu
+ 346, // Cradily
+ 106, // Hitmonlee
+ 49, // Venomoth
+ 94, // Gengar
+ 214, // Heracross
+ 362, // Glalie
+ 123, // Scyther
+ 373, // Salamence
+ 310, // Manectric
+ 348, // Armaldo
+ 65, // Alakazam
+ 97, // Hypno
+ 164, // Noctowl
+ 73, // Tentacruel
+ 356, // Dusclops
+ 145, // Zapdos
+ 42, // Golbat
+ 376, // Metagross
+ 282, // Gardevoir
+ 9, // Blastoise
+ 80, // Slowbro
+ 93, // Haunter
+ 68, // Machamp
+ 377, // Regirock
+ 317, // Swalot
+ 254, // Sceptile
+ 227, // Skarmory
+ 55, // Golduck
+ 386, // Deoxys
+ 71, // Victreebel
+ 78, // Rapidash
+ 6, // Charizard
+ 367, // Huntail
+ 87, // Dewgong
+ 144, // Articuno
+ 157, // Typhlosion
+ 142, // Aerodactyl
+ 368, // Gorebyss
+ 217, // Ursaring
+ 154, // Meganium
+ 378, // Regice
+ 212, // Scizor
+ 230, // Kingdra
+ 147, // Dratini
+ 85, // Dodrio
+ 319, // Sharpedo
+ 169, // Crobat
+ 162, // Furret
+ 59, // Arcanine
+ 243, // Raikou
+ 257, // Blaziken
+ 323, // Camerupt
+ 112, // Rhydon
+ 379, // Registeel
+ 23, // Ekans
+ 330, // Flygon
+ 357, // Tropius
+ 381, // Latios
+ 245, // Suicune
+ 146, // Moltres
+ 3, // Venusaur
+ 103, // Exeggutor
+ 199, // Slowking
+ 248, // Tyranitar
+ 289, // Slaking
+ 320, // Wailmer
+ 150, // Mewtwo
+ 306, // Aggron
+ 143, // Snorlax
+ 226, // Mantine
+ 244, // Entei
+ 149, // Dragonite
+ 115, // Kangaskhan
+ 297, // Hariyama
+ 160, // Feraligatr
+ 131, // Lapras
+ 336, // Seviper
+ 24, // Arbok
+ 383, // Groudon
+ 250, // Ho-Oh
+ 148, // Dragonair
+ 382, // Kyogre
+ 249, // Lugia
+ 350, // Milotic
+ 130, // Gyarados
+ 384, // Rayquaza
+ 95, // Onix
+ 208, // Steelix
+ 321, // Wailord
+};
diff --git a/src/menu.c b/src/menu.c
index 0d5c0b7d2..d84a4c3c5 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -629,7 +629,7 @@ void MenuPrint_RightAligned(u8 *str, u8 left, u8 top)
sub_8004D38(gMenuWindowPtr, str, gMenuTextTileOffset, left, top);
}
-void sub_8072B80(u8 *a1, u8 a2, u8 a3, u8 *a4)
+void sub_8072B80(const u8 *a1, u8 a2, u8 a3, const u8 *a4)
{
u8 buffer[64];
u8 width = GetStringWidth(gMenuWindowPtr, a4);
diff --git a/src/pokedex.c b/src/pokedex.c
index 3d8b152ae..be6ef03a9 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -2,28 +2,77 @@
#include "gba/m4a_internal.h"
#include "pokedex.h"
#include "asm.h"
+#include "data2.h"
#include "decompress.h"
#include "event_data.h"
+#include "graphics.h"
#include "m4a.h"
#include "main.h"
#include "menu.h"
+#include "menu_cursor.h"
#include "palette.h"
#include "rng.h"
#include "songs.h"
#include "sound.h"
+#include "species.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "trig.h"
-// I'm #define-ing these just for now so I can keep using the old unkXXX member names
-#define unk60E selectedPokemon
-#define unk612 dexMode
-#define unk616 dexOrder
-#define unk64D selectedScreen
-#define unk650 menuIsOpen
-#define unk652 menuCursorPos
-#define unk654 menuY
+#define NATIONAL_DEX_COUNT 386
+
+struct PokedexListItem
+{
+ u16 dexNum;
+ u16 seen:1;
+ u16 owned:1;
+};
+
+struct PokedexView
+{
+ struct PokedexListItem unk0[NATIONAL_DEX_COUNT];
+ u16 unk608;
+ u8 unk60A_1:1;
+ u8 unk60A_2:1;
+ u8 unk60B;
+ u16 pokemonListCount;
+ u16 selectedPokemon;
+ u16 unk610;
+ u16 dexMode;
+ u16 unk614;
+ u16 dexOrder;
+ u16 unk618;
+ u16 unk61A;
+ u16 unk61C;
+ u16 unk61E[4];
+ u16 selectedMonSpriteId;
+ u16 unk628;
+ u16 unk62A;
+ u8 unk62C;
+ u8 unk62D;
+ u8 unk62E;
+ u8 unk62F;
+ s16 unk630;
+ s16 unk632;
+ u16 unk634;
+ u16 unk636;
+ u16 unk638;
+ u16 unk63A[4];
+ u8 filler642[8];
+ u8 unk64A;
+ u8 unk64B;
+ u8 unk64C_1:1;
+ u8 selectedScreen;
+ u8 descriptionPageNum;
+ u8 unk64F;
+ u8 menuIsOpen; //menuIsOpen
+ u8 unk651;
+ u16 menuCursorPos; //Menu cursor position
+ s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this)
+ u8 unk656[8];
+ u8 unk65E[8];
+};
enum
{
@@ -44,8 +93,8 @@ struct PokedexEntry
/*0x00*/ u8 categoryName[12];
/*0x0C*/ u16 height; //in decimeters
/*0x0E*/ u16 weight; //in hectograms
- /*0x10*/ u8 *descriptionPage1;
- /*0x14*/ u8 *descriptionPage2;
+ /*0x10*/ const u8 *descriptionPage1;
+ /*0x14*/ const u8 *descriptionPage2;
/*0x18*/ u16 unused;
/*0x1A*/ u16 pokemonScale;
/*0x1C*/ u16 pokemonOffset;
@@ -53,45 +102,75 @@ struct PokedexEntry
/*0x20*/ u16 trainerOffset;
}; /*size = 0x24*/
+struct UnknownStruct2
+{
+ const u8 *text1;
+ const u8 *text2;
+};
+
+struct UnknownStruct1
+{
+ const struct UnknownStruct2 *unk0;
+ u8 unk4;
+ u8 unk5;
+ u16 unk6;
+};
+
+struct UnknownStruct3
+{
+ const u8 *text;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+};
+
+struct UnknownStruct4
+{
+ const u8 *text;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
+ u8 unk8;
+ u8 unk9;
+};
+
extern struct MusicPlayerInfo gMPlay_BGM;
extern u8 gReservedSpritePaletteCount;
extern struct PokedexView *gPokedexView;
+extern struct SpriteTemplate gUnknown_02024E8C;
extern u16 gUnknown_0202FFB8;
extern u8 gUnknown_0202FFBA;
-extern u8 gUnknown_03005CE8;
-extern u8 gPokedexMenu_Gfx[];
-extern u8 gUnknown_08E96738[];
-extern u8 gUnknown_08E9C6DC[];
-extern u8 gUnknown_08E96888[];
-extern u8 gUnknown_08E96994[];
-extern struct SpriteSheet gUnknown_083A05CC;
-extern struct SpritePalette gUnknown_083A05DC[];
-extern u8 gUnknown_0839FA7C[];
-extern u8 gUnknown_0839F67C[];
-extern u8 gPokedexMenu_Pal[];
-extern u8 gUnknown_0839F73C[];
-extern u8 gUnknown_083A05EC[];
-extern u8 gUnknown_083A05F1[];
-extern struct SpriteTemplate gSpriteTemplate_83A053C;
-extern struct SpriteTemplate gSpriteTemplate_83A0524;
-extern struct SpriteTemplate gSpriteTemplate_83A0554;
-extern struct SpriteTemplate gSpriteTemplate_83A056C;
-extern struct SpriteTemplate gSpriteTemplate_83A0584;
-extern struct SpriteTemplate gSpriteTemplate_83A059C;
-extern struct SpriteTemplate gSpriteTemplate_83A05B4;
extern struct PokedexListItem *gUnknown_0202FFBC;
+extern u8 gUnknown_03005CE8;
extern IntrCallback gUnknown_03005CEC;
-extern u8 gUnknown_08E96BD4[];
-extern u8 gUnknown_083A05F8[];
-extern u8 gUnknown_0839F8A0[];
-extern u8 gUnknown_0839F988[];
extern u8 gUnknown_03005E98;
-extern u8 gUnknown_083B4EC4[];
-extern u8 gUnknown_08E96ACC[];
-extern u8 gUnknown_08E96B58[];
-
-extern struct PokedexEntry gPokedexEntries[];
-
+extern const u8 gPokedexMenu_Gfx[];
+extern const u8 gUnknown_08E96738[];
+extern const u8 gUnknown_08E96888[];
+extern const u8 gUnknown_08E96994[];
+extern const u8 gUnknown_08E9C6DC[];
+extern const u8 gUnknown_08D00524[];
+extern const u8 gUnknown_08E96BD4[];
+extern const u8 gUnknown_08E96ACC[];
+extern const u8 gUnknown_08E96B58[];
+extern const u16 gPokedexMenu_Pal[];
+extern const u16 gPokedexMenu2_Pal[];
+extern const struct SpriteSheet gTrainerFrontPicTable[];
+extern const struct MonCoords gTrainerFrontPicCoords[];
+extern const struct PokedexEntry gPokedexEntries[];
+extern const struct BaseStats gBaseStats[];
+extern const u8 gPokedexMenuSearch_Gfx[];
+extern const u8 gUnknown_08E96D2C[];
+extern const u16 gPokedexMenuSearch_Pal[];
+extern const u8 gTypeNames[][7];
+extern const u8 gPokedexMenu2_Gfx[];
+
+extern u16 NationalPokedexNumToSpecies(u16);
+extern void ShowPokedexAreaScreen(u16 species, u8 *string);
+extern void sub_814AD7C(u8, u8);
+extern void sub_800D74C();
+extern const u16 *species_and_otid_get_pal(u16, u32, u32);
extern void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
extern bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16);
extern void remove_some_task(void);
@@ -100,14 +179,1123 @@ extern void DisableNationalPokedex(void);
extern void sub_805469C(void);
extern u16 HoennToNationalOrder(u16);
extern u16 NationalToHoennOrder(u16);
-extern u16 gPokedexOrder_Alphabetical[];
-extern u16 gPokedexOrder_Weight[];
-extern u16 gPokedexOrder_Height[];
-u16 NationalPokedexNumToSpecies(u16);
-
-// asm/pokedex_area_screen
-void ShowPokedexAreaScreen(u16 species, u8 *string);
+static const u16 sPokedexSearchPalette[] = INCBIN_U16("graphics/pokedex/search.gbapal");
+static const u16 sNationalPokedexPalette[] = INCBIN_U16("graphics/pokedex/national.gbapal");
+const u8 gEmptySpacce_839F7FC[0xA4] = {0};
+static const u8 gUnknown_0839F8A0[] = INCBIN_U8("graphics/pokedex/pokedex_cry_layout.bin.lz");
+static const u8 gUnknown_0839F988[] = INCBIN_U8("graphics/pokedex/pokedex_size_layout.bin.lz");
+static const u8 gUnknown_0839FA7C[] = INCBIN_U8("graphics/pokedex/noball.4bpp.lz");
+#include "data/pokedex_orders.h"
+static const struct OamData gOamData_83A0404 =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+static const struct OamData gOamData_83A040C =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+static const struct OamData gOamData_83A0414 =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+static const struct OamData gOamData_83A041C =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 2,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+static const struct OamData gOamData_83A0424 =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+static const struct OamData gOamData_83A042C =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 2,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+static const union AnimCmd gSpriteAnim_83A0434[] =
+{
+ ANIMCMD_FRAME(3, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A043C[] =
+{
+ ANIMCMD_FRAME(1, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A0444[] =
+{
+ ANIMCMD_FRAME(16, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A044C[] =
+{
+ ANIMCMD_FRAME(32, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A0454[] =
+{
+ ANIMCMD_FRAME(64, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A045C[] =
+{
+ ANIMCMD_FRAME(96, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A0464[] =
+{
+ ANIMCMD_FRAME(128, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A046C[] =
+{
+ ANIMCMD_FRAME(160, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A0474[] =
+{
+ ANIMCMD_FRAME(192, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A047C[] =
+{
+ ANIMCMD_FRAME(224, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A0484[] =
+{
+ ANIMCMD_FRAME(226, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A048C[] =
+{
+ ANIMCMD_FRAME(228, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A0494[] =
+{
+ ANIMCMD_FRAME(230, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A049C[] =
+{
+ ANIMCMD_FRAME(232, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A04A4[] =
+{
+ ANIMCMD_FRAME(234, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A04AC[] =
+{
+ ANIMCMD_FRAME(236, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A04B4[] =
+{
+ ANIMCMD_FRAME(238, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A04BC[] =
+{
+ ANIMCMD_FRAME(240, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A04C4[] =
+{
+ ANIMCMD_FRAME(242, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd gSpriteAnim_83A04CC[] =
+{
+ ANIMCMD_FRAME(4, 30),
+ ANIMCMD_END,
+};
+static const union AnimCmd *const gSpriteAnimTable_83A04D4[] =
+{
+ gSpriteAnim_83A0434,
+};
+static const union AnimCmd *const gSpriteAnimTable_83A04D8[] =
+{
+ gSpriteAnim_83A043C,
+};
+static const union AnimCmd *const gSpriteAnimTable_83A04DC[] =
+{
+ gSpriteAnim_83A0444,
+};
+static const union AnimCmd *const gSpriteAnimTable_83A04E0[] =
+{
+ gSpriteAnim_83A044C,
+ gSpriteAnim_83A0454,
+ gSpriteAnim_83A045C,
+ gSpriteAnim_83A0464,
+};
+static const union AnimCmd *const gSpriteAnimTable_83A04F0[] =
+{
+ gSpriteAnim_83A046C,
+ gSpriteAnim_83A0474,
+};
+static const union AnimCmd *const gSpriteAnimTable_83A04F8[] =
+{
+ gSpriteAnim_83A047C,
+ gSpriteAnim_83A0484,
+ gSpriteAnim_83A048C,
+ gSpriteAnim_83A0494,
+ gSpriteAnim_83A049C,
+ gSpriteAnim_83A04A4,
+ gSpriteAnim_83A04AC,
+ gSpriteAnim_83A04B4,
+ gSpriteAnim_83A04BC,
+ gSpriteAnim_83A04C4,
+};
+static const union AnimCmd *const gSpriteAnimTable_83A0520[] =
+{
+ gSpriteAnim_83A04CC,
+};
+static void sub_808EF38(struct Sprite *);
+static const struct SpriteTemplate gSpriteTemplate_83A0524 =
+{
+ .tileTag = 4096,
+ .paletteTag = 4096,
+ .oam = &gOamData_83A0404,
+ .anims = gSpriteAnimTable_83A04D4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_808EF38,
+};
+static void sub_808EF8C(struct Sprite *);
+static const struct SpriteTemplate gSpriteTemplate_83A053C =
+{
+ .tileTag = 4096,
+ .paletteTag = 4096,
+ .oam = &gOamData_83A040C,
+ .anims = gSpriteAnimTable_83A04D8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_808EF8C,
+};
+static void sub_808F08C(struct Sprite *);
+static const struct SpriteTemplate gSpriteTemplate_83A0554 =
+{
+ .tileTag = 4096,
+ .paletteTag = 4096,
+ .oam = &gOamData_83A0414,
+ .anims = gSpriteAnimTable_83A04E0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_808F08C,
+};
+static void sub_808F0B4(struct Sprite *);
+static const struct SpriteTemplate gSpriteTemplate_83A056C =
+{
+ .tileTag = 4096,
+ .paletteTag = 4096,
+ .oam = &gOamData_83A041C,
+ .anims = gSpriteAnimTable_83A04DC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_808F0B4,
+};
+static void sub_808ED94(struct Sprite *);
+static const struct SpriteTemplate gSpriteTemplate_83A0584 =
+{
+ .tileTag = 4096,
+ .paletteTag = 4096,
+ .oam = &gOamData_83A0424,
+ .anims = gSpriteAnimTable_83A04F0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_808ED94,
+};
+static const struct SpriteTemplate gSpriteTemplate_83A059C =
+{
+ .tileTag = 4096,
+ .paletteTag = 4096,
+ .oam = &gOamData_83A042C,
+ .anims = gSpriteAnimTable_83A04F8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_808ED94,
+};
+static void sub_808F168(struct Sprite *);
+static const struct SpriteTemplate gSpriteTemplate_83A05B4 =
+{
+ .tileTag = 4096,
+ .paletteTag = 4096,
+ .oam = &gOamData_83A042C,
+ .anims = gSpriteAnimTable_83A0520,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_808F168,
+};
+static const struct SpriteSheet gUnknown_083A05CC[] =
+{
+ {gPokedexMenu2_Gfx, 0x1F00, 0x1000},
+ {NULL, 0, 0},
+};
+static const struct SpritePalette gUnknown_083A05DC[] =
+{
+ {gPokedexMenu_Pal, 0x1000},
+ {NULL, 0},
+};
+static const u8 gUnknown_083A05EC[] = {2, 4, 8, 16, 32};
+static const u8 gUnknown_083A05F1[] = {16, 8, 4, 2, 1};
+const u8 gEmptySpacce_83A05F6[] = {0, 0}; // Padding, maybe?
+static const u8 gUnknown_083A05F8[] = _("");
+// TODO: include German entries
+#include "data/pokedex_entries_en.h"
+static const u16 gUnknown_083B4EC4[16] = {0};
+static const u8 *const sMonFootprintTable[] =
+{
+ gMonFootprint_Bulbasaur,
+ gMonFootprint_Bulbasaur,
+ gMonFootprint_Ivysaur,
+ gMonFootprint_Venusaur,
+ gMonFootprint_Charmander,
+ gMonFootprint_Charmeleon,
+ gMonFootprint_Charizard,
+ gMonFootprint_Squirtle,
+ gMonFootprint_Wartortle,
+ gMonFootprint_Blastoise,
+ gMonFootprint_Caterpie,
+ gMonFootprint_Metapod,
+ gMonFootprint_Butterfree,
+ gMonFootprint_Weedle,
+ gMonFootprint_Kakuna,
+ gMonFootprint_Beedrill,
+ gMonFootprint_Pidgey,
+ gMonFootprint_Pidgeotto,
+ gMonFootprint_Pidgeot,
+ gMonFootprint_Rattata,
+ gMonFootprint_Raticate,
+ gMonFootprint_Spearow,
+ gMonFootprint_Fearow,
+ gMonFootprint_Ekans,
+ gMonFootprint_Arbok,
+ gMonFootprint_Pikachu,
+ gMonFootprint_Raichu,
+ gMonFootprint_Sandshrew,
+ gMonFootprint_Sandslash,
+ gMonFootprint_NidoranF,
+ gMonFootprint_Nidorina,
+ gMonFootprint_Nidoqueen,
+ gMonFootprint_NidoranM,
+ gMonFootprint_Nidorino,
+ gMonFootprint_Nidoking,
+ gMonFootprint_Clefairy,
+ gMonFootprint_Clefable,
+ gMonFootprint_Vulpix,
+ gMonFootprint_Ninetales,
+ gMonFootprint_Jigglypuff,
+ gMonFootprint_Wigglytuff,
+ gMonFootprint_Zubat,
+ gMonFootprint_Golbat,
+ gMonFootprint_Oddish,
+ gMonFootprint_Gloom,
+ gMonFootprint_Vileplume,
+ gMonFootprint_Paras,
+ gMonFootprint_Parasect,
+ gMonFootprint_Venonat,
+ gMonFootprint_Venomoth,
+ gMonFootprint_Diglett,
+ gMonFootprint_Dugtrio,
+ gMonFootprint_Meowth,
+ gMonFootprint_Persian,
+ gMonFootprint_Psyduck,
+ gMonFootprint_Golduck,
+ gMonFootprint_Mankey,
+ gMonFootprint_Primeape,
+ gMonFootprint_Growlithe,
+ gMonFootprint_Arcanine,
+ gMonFootprint_Poliwag,
+ gMonFootprint_Poliwhirl,
+ gMonFootprint_Poliwrath,
+ gMonFootprint_Abra,
+ gMonFootprint_Kadabra,
+ gMonFootprint_Alakazam,
+ gMonFootprint_Machop,
+ gMonFootprint_Machoke,
+ gMonFootprint_Machamp,
+ gMonFootprint_Bellsprout,
+ gMonFootprint_Weepinbell,
+ gMonFootprint_Victreebel,
+ gMonFootprint_Tentacool,
+ gMonFootprint_Tentacruel,
+ gMonFootprint_Geodude,
+ gMonFootprint_Graveler,
+ gMonFootprint_Golem,
+ gMonFootprint_Ponyta,
+ gMonFootprint_Rapidash,
+ gMonFootprint_Slowpoke,
+ gMonFootprint_Slowbro,
+ gMonFootprint_Magnemite,
+ gMonFootprint_Magneton,
+ gMonFootprint_Farfetchd,
+ gMonFootprint_Doduo,
+ gMonFootprint_Dodrio,
+ gMonFootprint_Seel,
+ gMonFootprint_Dewgong,
+ gMonFootprint_Grimer,
+ gMonFootprint_Muk,
+ gMonFootprint_Shellder,
+ gMonFootprint_Cloyster,
+ gMonFootprint_Gastly,
+ gMonFootprint_Haunter,
+ gMonFootprint_Gengar,
+ gMonFootprint_Onix,
+ gMonFootprint_Drowzee,
+ gMonFootprint_Hypno,
+ gMonFootprint_Krabby,
+ gMonFootprint_Kingler,
+ gMonFootprint_Voltorb,
+ gMonFootprint_Electrode,
+ gMonFootprint_Exeggcute,
+ gMonFootprint_Exeggutor,
+ gMonFootprint_Cubone,
+ gMonFootprint_Marowak,
+ gMonFootprint_Hitmonlee,
+ gMonFootprint_Hitmonchan,
+ gMonFootprint_Lickitung,
+ gMonFootprint_Koffing,
+ gMonFootprint_Weezing,
+ gMonFootprint_Rhyhorn,
+ gMonFootprint_Rhydon,
+ gMonFootprint_Chansey,
+ gMonFootprint_Tangela,
+ gMonFootprint_Kangaskhan,
+ gMonFootprint_Horsea,
+ gMonFootprint_Seadra,
+ gMonFootprint_Goldeen,
+ gMonFootprint_Seaking,
+ gMonFootprint_Staryu,
+ gMonFootprint_Starmie,
+ gMonFootprint_Mrmime,
+ gMonFootprint_Scyther,
+ gMonFootprint_Jynx,
+ gMonFootprint_Electabuzz,
+ gMonFootprint_Magmar,
+ gMonFootprint_Pinsir,
+ gMonFootprint_Tauros,
+ gMonFootprint_Magikarp,
+ gMonFootprint_Gyarados,
+ gMonFootprint_Lapras,
+ gMonFootprint_Ditto,
+ gMonFootprint_Eevee,
+ gMonFootprint_Vaporeon,
+ gMonFootprint_Jolteon,
+ gMonFootprint_Flareon,
+ gMonFootprint_Porygon,
+ gMonFootprint_Omanyte,
+ gMonFootprint_Omastar,
+ gMonFootprint_Kabuto,
+ gMonFootprint_Kabutops,
+ gMonFootprint_Aerodactyl,
+ gMonFootprint_Snorlax,
+ gMonFootprint_Articuno,
+ gMonFootprint_Zapdos,
+ gMonFootprint_Moltres,
+ gMonFootprint_Dratini,
+ gMonFootprint_Dragonair,
+ gMonFootprint_Dragonite,
+ gMonFootprint_Mewtwo,
+ gMonFootprint_Mew,
+ gMonFootprint_Chikorita,
+ gMonFootprint_Bayleef,
+ gMonFootprint_Meganium,
+ gMonFootprint_Cyndaquil,
+ gMonFootprint_Quilava,
+ gMonFootprint_Typhlosion,
+ gMonFootprint_Totodile,
+ gMonFootprint_Croconaw,
+ gMonFootprint_Feraligatr,
+ gMonFootprint_Sentret,
+ gMonFootprint_Furret,
+ gMonFootprint_Hoothoot,
+ gMonFootprint_Noctowl,
+ gMonFootprint_Ledyba,
+ gMonFootprint_Ledian,
+ gMonFootprint_Spinarak,
+ gMonFootprint_Ariados,
+ gMonFootprint_Crobat,
+ gMonFootprint_Chinchou,
+ gMonFootprint_Lanturn,
+ gMonFootprint_Pichu,
+ gMonFootprint_Cleffa,
+ gMonFootprint_Igglybuff,
+ gMonFootprint_Togepi,
+ gMonFootprint_Togetic,
+ gMonFootprint_Natu,
+ gMonFootprint_Xatu,
+ gMonFootprint_Mareep,
+ gMonFootprint_Flaaffy,
+ gMonFootprint_Ampharos,
+ gMonFootprint_Bellossom,
+ gMonFootprint_Marill,
+ gMonFootprint_Azumarill,
+ gMonFootprint_Sudowoodo,
+ gMonFootprint_Politoed,
+ gMonFootprint_Hoppip,
+ gMonFootprint_Skiploom,
+ gMonFootprint_Jumpluff,
+ gMonFootprint_Aipom,
+ gMonFootprint_Sunkern,
+ gMonFootprint_Sunflora,
+ gMonFootprint_Yanma,
+ gMonFootprint_Wooper,
+ gMonFootprint_Quagsire,
+ gMonFootprint_Espeon,
+ gMonFootprint_Umbreon,
+ gMonFootprint_Murkrow,
+ gMonFootprint_Slowking,
+ gMonFootprint_Misdreavus,
+ gMonFootprint_Unown,
+ gMonFootprint_Wobbuffet,
+ gMonFootprint_Girafarig,
+ gMonFootprint_Pineco,
+ gMonFootprint_Forretress,
+ gMonFootprint_Dunsparce,
+ gMonFootprint_Gligar,
+ gMonFootprint_Steelix,
+ gMonFootprint_Snubbull,
+ gMonFootprint_Granbull,
+ gMonFootprint_Qwilfish,
+ gMonFootprint_Scizor,
+ gMonFootprint_Shuckle,
+ gMonFootprint_Heracross,
+ gMonFootprint_Sneasel,
+ gMonFootprint_Teddiursa,
+ gMonFootprint_Ursaring,
+ gMonFootprint_Slugma,
+ gMonFootprint_Magcargo,
+ gMonFootprint_Swinub,
+ gMonFootprint_Piloswine,
+ gMonFootprint_Corsola,
+ gMonFootprint_Remoraid,
+ gMonFootprint_Octillery,
+ gMonFootprint_Delibird,
+ gMonFootprint_Mantine,
+ gMonFootprint_Skarmory,
+ gMonFootprint_Houndour,
+ gMonFootprint_Houndoom,
+ gMonFootprint_Kingdra,
+ gMonFootprint_Phanpy,
+ gMonFootprint_Donphan,
+ gMonFootprint_Porygon2,
+ gMonFootprint_Stantler,
+ gMonFootprint_Smeargle,
+ gMonFootprint_Tyrogue,
+ gMonFootprint_Hitmontop,
+ gMonFootprint_Smoochum,
+ gMonFootprint_Elekid,
+ gMonFootprint_Magby,
+ gMonFootprint_Miltank,
+ gMonFootprint_Blissey,
+ gMonFootprint_Raikou,
+ gMonFootprint_Entei,
+ gMonFootprint_Suicune,
+ gMonFootprint_Larvitar,
+ gMonFootprint_Pupitar,
+ gMonFootprint_Tyranitar,
+ gMonFootprint_Lugia,
+ gMonFootprint_HoOh,
+ gMonFootprint_Celebi,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_QuestionMark,
+ gMonFootprint_Treecko,
+ gMonFootprint_Grovyle,
+ gMonFootprint_Sceptile,
+ gMonFootprint_Torchic,
+ gMonFootprint_Combusken,
+ gMonFootprint_Blaziken,
+ gMonFootprint_Mudkip,
+ gMonFootprint_Marshtomp,
+ gMonFootprint_Swampert,
+ gMonFootprint_Poochyena,
+ gMonFootprint_Mightyena,
+ gMonFootprint_Zigzagoon,
+ gMonFootprint_Linoone,
+ gMonFootprint_Wurmple,
+ gMonFootprint_Silcoon,
+ gMonFootprint_Beautifly,
+ gMonFootprint_Cascoon,
+ gMonFootprint_Dustox,
+ gMonFootprint_Lotad,
+ gMonFootprint_Lombre,
+ gMonFootprint_Ludicolo,
+ gMonFootprint_Seedot,
+ gMonFootprint_Nuzleaf,
+ gMonFootprint_Shiftry,
+ gMonFootprint_Nincada,
+ gMonFootprint_Ninjask,
+ gMonFootprint_Shedinja,
+ gMonFootprint_Taillow,
+ gMonFootprint_Swellow,
+ gMonFootprint_Shroomish,
+ gMonFootprint_Breloom,
+ gMonFootprint_Spinda,
+ gMonFootprint_Wingull,
+ gMonFootprint_Pelipper,
+ gMonFootprint_Surskit,
+ gMonFootprint_Masquerain,
+ gMonFootprint_Wailmer,
+ gMonFootprint_Wailord,
+ gMonFootprint_Skitty,
+ gMonFootprint_Delcatty,
+ gMonFootprint_Kecleon,
+ gMonFootprint_Baltoy,
+ gMonFootprint_Claydol,
+ gMonFootprint_Nosepass,
+ gMonFootprint_Torkoal,
+ gMonFootprint_Sableye,
+ gMonFootprint_Barboach,
+ gMonFootprint_Whiscash,
+ gMonFootprint_Luvdisc,
+ gMonFootprint_Corphish,
+ gMonFootprint_Crawdaunt,
+ gMonFootprint_Feebas,
+ gMonFootprint_Milotic,
+ gMonFootprint_Carvanha,
+ gMonFootprint_Sharpedo,
+ gMonFootprint_Trapinch,
+ gMonFootprint_Vibrava,
+ gMonFootprint_Flygon,
+ gMonFootprint_Makuhita,
+ gMonFootprint_Hariyama,
+ gMonFootprint_Electrike,
+ gMonFootprint_Manectric,
+ gMonFootprint_Numel,
+ gMonFootprint_Camerupt,
+ gMonFootprint_Spheal,
+ gMonFootprint_Sealeo,
+ gMonFootprint_Walrein,
+ gMonFootprint_Cacnea,
+ gMonFootprint_Cacturne,
+ gMonFootprint_Snorunt,
+ gMonFootprint_Glalie,
+ gMonFootprint_Lunatone,
+ gMonFootprint_Solrock,
+ gMonFootprint_Azurill,
+ gMonFootprint_Spoink,
+ gMonFootprint_Grumpig,
+ gMonFootprint_Plusle,
+ gMonFootprint_Minun,
+ gMonFootprint_Mawile,
+ gMonFootprint_Meditite,
+ gMonFootprint_Medicham,
+ gMonFootprint_Swablu,
+ gMonFootprint_Altaria,
+ gMonFootprint_Wynaut,
+ gMonFootprint_Duskull,
+ gMonFootprint_Dusclops,
+ gMonFootprint_Roselia,
+ gMonFootprint_Slakoth,
+ gMonFootprint_Vigoroth,
+ gMonFootprint_Slaking,
+ gMonFootprint_Gulpin,
+ gMonFootprint_Swalot,
+ gMonFootprint_Tropius,
+ gMonFootprint_Whismur,
+ gMonFootprint_Loudred,
+ gMonFootprint_Exploud,
+ gMonFootprint_Clamperl,
+ gMonFootprint_Huntail,
+ gMonFootprint_Gorebyss,
+ gMonFootprint_Absol,
+ gMonFootprint_Shuppet,
+ gMonFootprint_Banette,
+ gMonFootprint_Seviper,
+ gMonFootprint_Zangoose,
+ gMonFootprint_Relicanth,
+ gMonFootprint_Aron,
+ gMonFootprint_Lairon,
+ gMonFootprint_Aggron,
+ gMonFootprint_Castform,
+ gMonFootprint_Volbeat,
+ gMonFootprint_Illumise,
+ gMonFootprint_Lileep,
+ gMonFootprint_Cradily,
+ gMonFootprint_Anorith,
+ gMonFootprint_Armaldo,
+ gMonFootprint_Ralts,
+ gMonFootprint_Kirlia,
+ gMonFootprint_Gardevoir,
+ gMonFootprint_Bagon,
+ gMonFootprint_Shelgon,
+ gMonFootprint_Salamence,
+ gMonFootprint_Beldum,
+ gMonFootprint_Metang,
+ gMonFootprint_Metagross,
+ gMonFootprint_Regirock,
+ gMonFootprint_Regice,
+ gMonFootprint_Registeel,
+ gMonFootprint_Kyogre,
+ gMonFootprint_Groudon,
+ gMonFootprint_Rayquaza,
+ gMonFootprint_Latias,
+ gMonFootprint_Latios,
+ gMonFootprint_Jirachi,
+ gMonFootprint_Deoxys,
+ gMonFootprint_Chimecho,
+ gMonFootprint_Bulbasaur,
+};
+static const u8 gUnknown_083B5558[] = _("{CLEAR_TO 0}");
+const u8 gUnknown_083B555C[] = INCBIN_U8("graphics/unknown/unknown_3B555C.bin");
+static const struct OamData gOamData_83B557C =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+static void *const gUnknown_083B5584[] =
+{
+ (void *)0x02008000,
+ (void *)0x0200C000,
+ (void *)0x02010000,
+ (void *)0x02014000,
+};
+static const struct SpriteFrameImage gSpriteImageTable_83B5594[] =
+{
+ {(u8 *)0x02008000, 0x800},
+ {(u8 *)0x02008800, 0x800},
+ {(u8 *)0x02009000, 0x800},
+ {(u8 *)0x02009800, 0x800},
+ {(u8 *)0x0200A000, 0x800},
+ {(u8 *)0x0200A800, 0x800},
+ {(u8 *)0x0200B000, 0x800},
+ {(u8 *)0x0200B800, 0x800},
+ {(u8 *)0x0200C000, 0x800},
+ {(u8 *)0x0200C800, 0x800},
+ {(u8 *)0x0200D000, 0x800},
+ {(u8 *)0x0200D800, 0x800},
+ {(u8 *)0x0200E000, 0x800},
+ {(u8 *)0x0200E800, 0x800},
+ {(u8 *)0x0200F000, 0x800},
+ {(u8 *)0x0200F800, 0x800},
+};
+static const struct SpriteFrameImage gSpriteImageTable_83B5614[] =
+{
+ {(u8 *)0x0200C000, 0x800},
+ {(u8 *)0x0200C800, 0x800},
+ {(u8 *)0x0200D000, 0x800},
+ {(u8 *)0x0200D800, 0x800},
+ {(u8 *)0x0200E000, 0x800},
+ {(u8 *)0x0200E800, 0x800},
+ {(u8 *)0x0200F000, 0x800},
+ {(u8 *)0x0200F800, 0x800},
+ {(u8 *)0x02010000, 0x800},
+ {(u8 *)0x02010800, 0x800},
+ {(u8 *)0x02011000, 0x800},
+ {(u8 *)0x02011800, 0x800},
+ {(u8 *)0x02012000, 0x800},
+ {(u8 *)0x02012800, 0x800},
+ {(u8 *)0x02013000, 0x800},
+ {(u8 *)0x02013800, 0x800},
+};
+static const struct SpriteFrameImage gSpriteImageTable_83B5694[] =
+{
+ {(u8 *)0x02010000, 0x800},
+ {(u8 *)0x02010800, 0x800},
+ {(u8 *)0x02011000, 0x800},
+ {(u8 *)0x02011800, 0x800},
+ {(u8 *)0x02012000, 0x800},
+ {(u8 *)0x02012800, 0x800},
+ {(u8 *)0x02013000, 0x800},
+ {(u8 *)0x02013800, 0x800},
+ {(u8 *)0x02014000, 0x800},
+ {(u8 *)0x02014800, 0x800},
+ {(u8 *)0x02015000, 0x800},
+ {(u8 *)0x02015800, 0x800},
+ {(u8 *)0x02016000, 0x800},
+ {(u8 *)0x02016800, 0x800},
+ {(u8 *)0x02017000, 0x800},
+ {(u8 *)0x02017800, 0x800},
+};
+static const struct SpriteFrameImage gSpriteImageTable_83B5714[] =
+{
+ {(u8 *)0x02014000, 0x800},
+ {(u8 *)0x02014800, 0x800},
+ {(u8 *)0x02015000, 0x800},
+ {(u8 *)0x02015800, 0x800},
+ {(u8 *)0x02016000, 0x800},
+ {(u8 *)0x02016800, 0x800},
+ {(u8 *)0x02017000, 0x800},
+ {(u8 *)0x02017800, 0x800},
+ {(u8 *)0x02018000, 0x800},
+ {(u8 *)0x02018800, 0x800},
+ {(u8 *)0x02019000, 0x800},
+ {(u8 *)0x02019800, 0x800},
+ {(u8 *)0x0201A000, 0x800},
+ {(u8 *)0x0201A800, 0x800},
+ {(u8 *)0x0201B000, 0x800},
+ {(u8 *)0x0201B800, 0x800},
+};
+static const struct SpriteFrameImage *const gUnknown_083B5794[] =
+{
+ gSpriteImageTable_83B5594,
+ gSpriteImageTable_83B5614,
+ gSpriteImageTable_83B5694,
+ gSpriteImageTable_83B5714,
+};
+static void nullsub_59(struct Sprite *);
+static const struct SpriteTemplate gUnknown_083B57A4 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 0,
+ .oam = &gOamData_83B557C,
+ .anims = NULL,
+ .images = gSpriteImageTable_83B5594,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = nullsub_59,
+};
+static const u8 gUnknown_083B57BC[][4] =
+{
+ {0, 0, 0, 0},
+ {CHAR_A, 3, CHAR_a, 3},
+ {CHAR_D, 3, CHAR_d, 3},
+ {CHAR_G, 3, CHAR_g, 3},
+ {CHAR_J, 3, CHAR_j, 3},
+ {CHAR_M, 3, CHAR_m, 3},
+ {CHAR_P, 3, CHAR_p, 3},
+ {CHAR_S, 3, CHAR_s, 3},
+ {CHAR_V, 3, CHAR_v, 3},
+ {CHAR_Y, 2, CHAR_y, 2},
+};
+static const struct UnknownStruct3 gUnknown_083B57E4[] =
+{
+ {DexText_SearchForPoke, 0, 0, 5},
+ {DexText_SwitchDex, 6, 0, 5},
+ {DexText_ReturnToDex, 12, 0, 5},
+};
+static const struct UnknownStruct4 gUnknown_083B57FC[] =
+{
+ {DexText_ListByABC, 0, 2, 5, 5, 2, 12},
+ {DexText_ListByColor, 0, 4, 5, 5, 4, 12},
+ {DexText_ListByType, 0, 6, 5, 5, 6, 6},
+ {DexText_ListByType, 0, 6, 5, 11, 6, 6},
+ {DexText_SelectDexList, 0, 8, 5, 5, 8, 12},
+ {DexText_SelectDexMode, 0, 10, 5, 5, 10, 12},
+ {DexText_ExecuteSearchSwitch, 0, 12, 5, 0, 0, 0},
+};
+static const u8 gUnknown_083B5850[][4] =
+{
+ {0xFF, 0xFF, 0xFF, 1},
+ {0xFF, 0xFF, 0, 2},
+ {0xFF, 3, 1, 4},
+ { 2, 0xFF, 1, 4},
+ {0xFF, 0xFF, 2, 5},
+ {0xFF, 0xFF, 4, 6},
+ {0xFF, 0xFF, 5, 0xFF},
+};
+static const u8 gUnknown_083B586C[][4] =
+{
+ {0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 5},
+ {0xFF, 0xFF, 4, 6},
+ {0xFF, 0xFF, 5, 0xFF},
+};
+static const u8 gUnknown_083B5888[][4] =
+{
+ {0xFF, 0xFF, 0xFF, 1},
+ {0xFF, 0xFF, 0, 2},
+ {0xFF, 3, 1, 4},
+ { 2, 0xFF, 1, 4},
+ {0xFF, 0xFF, 2, 6},
+ {0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 4, 0xFF},
+};
+static const u8 gUnknown_083B58A4[][4] =
+{
+ {0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 6},
+ {0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 4, 0xFF},
+};
+static const struct UnknownStruct2 gUnknown_083B58C0[] =
+{
+ {DexText_HoennDex2, DexText_HoennDex},
+ {DexText_NationalDex2, DexText_NationalDex},
+ {NULL, NULL},
+};
+static const struct UnknownStruct2 gUnknown_083B58D8[] =
+{
+ {DexText_ListByNumber, DexText_NumericalMode},
+ {DexText_ListByABC2, DexText_ABCMode},
+ {DexText_ListByHeavyToLightest, DexText_HeaviestMode},
+ {DexText_ListByLightToHeaviest, DexText_LightestMode},
+ {DexText_ListByTallToSmallest, DexText_TallestMode},
+ {DexText_ListBySmallToTallest, DexText_SmallestMode},
+ {NULL, NULL},
+};
+static const struct UnknownStruct2 gUnknown_083B5910[] =
+{
+ {DexText_Terminator5, DexText_DontSpecify},
+ {DexText_Terminator5, DexText_ABC},
+ {DexText_Terminator5, DexText_DEF},
+ {DexText_Terminator5, DexText_GHI},
+ {DexText_Terminator5, DexText_JKL},
+ {DexText_Terminator5, DexText_MNO},
+ {DexText_Terminator5, DexText_PQR},
+ {DexText_Terminator5, DexText_STU},
+ {DexText_Terminator5, DexText_VWX},
+ {DexText_Terminator5, DexText_YZ},
+ {NULL, NULL},
+};
+static const struct UnknownStruct2 gUnknown_083B5968[] =
+{
+ {DexText_Terminator5, DexText_DontSpecify},
+ {DexText_Terminator5, DexText_Red},
+ {DexText_Terminator5, DexText_Blue},
+ {DexText_Terminator5, DexText_Yellow},
+ {DexText_Terminator5, DexText_Green},
+ {DexText_Terminator5, DexText_Black},
+ {DexText_Terminator5, DexText_Brown},
+ {DexText_Terminator5, DexText_Purple},
+ {DexText_Terminator5, DexText_Gray},
+ {DexText_Terminator5, DexText_White},
+ {DexText_Terminator5, DexText_Pink},
+ {NULL, NULL},
+};
+static const struct UnknownStruct2 gUnknown_083B59C8[] =
+{
+ {DexText_Terminator5, DexText_None},
+ {DexText_Terminator5, gTypeNames[TYPE_NORMAL]},
+ {DexText_Terminator5, gTypeNames[TYPE_FIGHTING]},
+ {DexText_Terminator5, gTypeNames[TYPE_FLYING]},
+ {DexText_Terminator5, gTypeNames[TYPE_POISON]},
+ {DexText_Terminator5, gTypeNames[TYPE_GROUND]},
+ {DexText_Terminator5, gTypeNames[TYPE_ROCK]},
+ {DexText_Terminator5, gTypeNames[TYPE_BUG]},
+ {DexText_Terminator5, gTypeNames[TYPE_GHOST]},
+ {DexText_Terminator5, gTypeNames[TYPE_STEEL]},
+ {DexText_Terminator5, gTypeNames[TYPE_FIRE]},
+ {DexText_Terminator5, gTypeNames[TYPE_WATER]},
+ {DexText_Terminator5, gTypeNames[TYPE_GRASS]},
+ {DexText_Terminator5, gTypeNames[TYPE_ELECTRIC]},
+ {DexText_Terminator5, gTypeNames[TYPE_PSYCHIC]},
+ {DexText_Terminator5, gTypeNames[TYPE_ICE]},
+ {DexText_Terminator5, gTypeNames[TYPE_DRAGON]},
+ {DexText_Terminator5, gTypeNames[TYPE_DARK]},
+ {NULL, NULL},
+};
+static const u8 gUnknown_083B5A60[] = {0, 1};
+static const u8 gUnknown_083B5A62[] = {0, 1, 2, 3, 4, 5};
+static const u8 gUnknown_083B5A68[] = {0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17};
+static const struct UnknownStruct1 gUnknown_083B5A7C[] =
+{
+ {gUnknown_083B5910, 6, 7, 10},
+ {gUnknown_083B5968, 8, 9, 11},
+ {gUnknown_083B59C8, 10, 11, 18},
+ {gUnknown_083B59C8, 12, 13, 18},
+ {gUnknown_083B58D8, 4, 5, 6},
+ {gUnknown_083B58C0, 2, 3, 2},
+};
+static const u8 gUnknown_083B5AAC[] = _("{STR_VAR_1}{CLEAR_TO 43}");
+static const u8 gUnknown_083B5AB2[] = _("{STR_VAR_1}{CLEAR_TO 96}");
+
+static void MainCB(void);
+static void Task_PokedexShowMainScreen(u8 taskId);
+static void Task_PokedexMainScreen(u8 taskId);
+static void sub_808C898(u8 taskId);
+static void Task_PokedexMainScreenMenu(u8 taskId);
+static void sub_808CA64(u8 taskId);
+static void sub_808CAE4(u8 taskId);
+static void sub_808CB8C(u8 taskId);
+static void Task_ClosePokedex(u8 taskId);
+static void sub_808CCC4(u8 taskId);
+static void Task_PokedexResultsScreen(u8 taskId);
+static void sub_808CEF8(u8 taskId);
+static void Task_PokedexResultsScreenMenu(u8 taskId);
+static void sub_808D118(u8 taskId);
+static void sub_808D198(u8 taskId);
+static void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId);
+static void Task_PokedexResultsScreenExitPokedex(u8 taskId);
+static bool8 sub_808D344(u8 a);
+static void sub_808D640(void);
+static void SortPokedex(u8 dexMode, u8 sortMode);
+static void sub_808DEB0(u16 a, u8 b, u8 c, u16 d);
+static void sub_808DF88(u16 a, u8 b, u8 c, u16 d);
+static u8 sub_808DFE4(u16 num, u8 b, u8 c);
+static void sub_808E090(u8 a, u8 b, u16 c);
+static void sub_808E0CC(u16 a, u16 b);
+static bool8 sub_808E208(u8 a, u8 b, u8 c);
+static u16 sub_808E48C(u16 a, u16 b);
+static void sub_808E6BC(void);
+static u8 sub_808E71C(void);
+static u8 sub_808E82C(void);
+static u16 sub_808E888(u16 a1);
+static u32 sub_808E8C8(u16 a, s16 b, s16 c);
+static void sub_808E978(u8 a);
+static void sub_808EDB8(struct Sprite *sprite);
+static void sub_808EE28(struct Sprite *sprite);
+static u8 sub_808F210(struct PokedexListItem *, u8);
+static bool8 sub_808F250(u8 taskId);
+static u8 sub_808F284(struct PokedexListItem *, u8);
+static void Task_InitPageScreenMultistep(u8 taskId);
+static void Task_PageScreenProcessInput(u8 taskId);
+static void sub_808F888(u8 taskId);
+static void Task_ClosePageScreen(u8 taskId);
+static void Task_InitAreaScreenMultistep(u8 taskId);
+static void Task_AreaScreenProcessInput(u8 taskId);
+static void sub_808FA00(u8 taskId);
+static void Task_InitCryScreenMultistep(u8 taskId);
+static void Task_CryScreenProcessInput(u8 taskId);
+static void sub_808FFBC(u8 taskId);
+static void sub_8090040(u8 a);
+static void Task_InitSizeScreenMultistep(u8 taskId);
+static void Task_SizeScreenProcessInput(u8 taskId);
+static void sub_8090498(u8 taskId);
+static void sub_80904FC(u16 a);
+static void sub_8090540(u16 a);
+static void sub_8090584(u8 a, u16 b);
+static void sub_8090644(u8 a, u16 b);
+static void sub_8090750(u8);
+static void sub_8090A3C(u8);
+static void sub_8090B8C(u8);
+static void sub_8090C28(struct Sprite *);
+static void sub_8090C68(void);
+static void sub_8091060(u16);
+static void sub_8091154(u16 order, u8, u8);
+static u8 sub_80911C8(u16 num, u8, u8);
+static u8 sub_8091260(u16 num, u8, u8, u8);
+static void sub_8091304(const u8 *name, u8, u8);
+static void sub_8091458(u16 height, u8 i, u8 i1);
+static void sub_8091564(u16 weight, u8 i, u8 i1);
+static void sub_8091738(u16, u16, u16);
+static void sub_80917CC(u16 i, u16 i1);
+static u16 sub_8091818(u8, u16, u16, u16);
+static u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d);
+static u8 sub_8091A4C(u16 gender, s16, s16, u16);
+static void sub_8091E54(u8);
+static void sub_809204C(u8);
+static void sub_809207C(u8);
+static void sub_809217C(u8);
+static void sub_80921B0(u8);
+static void sub_80923FC(u8);
+static void sub_80924A4(u8);
+static void sub_8092508(u8);
+static void sub_80925CC(u8);
+static void sub_8092644(u8);
+static void sub_80927B8(u8);
+static void sub_80927F0(u8);
+static void sub_8092AB0(u8);
+static void sub_8092AD4(u8, u8);
+static void sub_8092B68(u8);
+static void sub_8092C8C(u8);
+static void sub_8092D78(u8);
+static u8 sub_8092E10(u8, u8);
+static void sub_8092EB0(u8);
+static void sub_809308C(u8);
void ResetPokedex(void)
{
@@ -139,18 +1327,18 @@ void sub_808C0A0(void)
gUnknown_0202FFBA = 0x40;
}
-void sub_808C0B8(void)
+static void sub_808C0B8(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-void ClearPokedexView(struct PokedexView *pokedexView)
+static void ClearPokedexView(struct PokedexView *pokedexView)
{
u16 i;
- for (i = 0; i <= 385; i++)
+ for (i = 0; i < NATIONAL_DEX_COUNT; i++)
{
pokedexView->unk0[i].dexNum |= 0xFFFF;
pokedexView->unk0[i].seen = 0;
@@ -159,7 +1347,7 @@ void ClearPokedexView(struct PokedexView *pokedexView)
pokedexView->unk608 = 0;
pokedexView->unk60A_1 = 0;
pokedexView->unk60A_2 = 0;
- pokedexView->unk60C = 0;
+ pokedexView->pokemonListCount = 0;
pokedexView->selectedPokemon = 0;
pokedexView->unk610 = 0;
pokedexView->dexMode = 0;
@@ -203,30 +1391,30 @@ void CB2_InitPokedex(void)
{
case 0:
default:
- {
- u8 *addr;
- u32 size;
+ {
+ u8 *addr;
+ u32 size;
- SetVBlankCallback(NULL);
- sub_8091060(0);
- addr = (u8 *)VRAM;
- size = VRAM_SIZE;
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
+ SetVBlankCallback(NULL);
+ sub_8091060(0);
+ addr = (u8 *)VRAM;
+ size = VRAM_SIZE;
+ while (1)
{
- DmaFill16(3, 0, addr, size);
- break;
+ DmaFill16(3, 0, addr, 0x1000);
+ addr += 0x1000;
+ size -= 0x1000;
+ if (size <= 0x1000)
+ {
+ DmaFill16(3, 0, addr, size);
+ break;
+ }
}
+ DmaClear32(3, OAM, OAM_SIZE);
+ DmaClear16(3, PLTT, PLTT_SIZE);
+ gMain.state = 1;
}
- DmaClear32(3, OAM, OAM_SIZE);
- DmaClear16(3, PLTT, PLTT_SIZE);
- gMain.state = 1;
break;
- }
case 1:
remove_some_task();
ResetTasks();
@@ -264,7 +1452,7 @@ void CB2_InitPokedex(void)
gPokedexView->selectedPokemon = gUnknown_0202FFB8;
gPokedexView->unk62C = gUnknown_0202FFBA;
gPokedexView->selectedScreen = PAGE_SCREEN;
- gPokedexView->unk64E = 0;
+ gPokedexView->descriptionPageNum = 0;
if (!IsNationalPokedexEnabled())
{
gPokedexView->unk61A = GetHoennPokedexCount(0);
@@ -279,19 +1467,20 @@ void CB2_InitPokedex(void)
gMain.state++;
break;
case 3:
- {
- u16 savedIme;
-
- savedIme = REG_IME;
- REG_IME = 0;
- REG_IE |= 1;
- REG_IME = savedIme;
- REG_DISPSTAT |= 8;
- SetVBlankCallback(sub_808C0B8);
- SetMainCallback2(MainCB);
- SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder);
- m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x80);
- }
+ {
+ u16 savedIme;
+
+ savedIme = REG_IME;
+ REG_IME = 0;
+ REG_IE |= 1;
+ REG_IME = savedIme;
+ REG_DISPSTAT |= 8;
+ SetVBlankCallback(sub_808C0B8);
+ SetMainCallback2(MainCB);
+ SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder);
+ m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x80);
+ }
+ break;
}
}
@@ -320,7 +1509,7 @@ u8 unref_sub_808C540(void (*func)(u8))
return gTasks[taskId].data[0];
}
-void MainCB(void)
+static void MainCB(void)
{
RunTasks();
AnimateSprites();
@@ -328,13 +1517,11 @@ void MainCB(void)
UpdatePaletteFade();
}
-void Task_PokedexShowMainScreen(u8 taskId)
+static void Task_PokedexShowMainScreen(u8 taskId)
{
gPokedexView->unk64C_1 = 0;
if (sub_808D344(0))
- {
gTasks[taskId].func = Task_PokedexMainScreen;
- }
}
//Hide menu and process input on main screen
@@ -351,9 +1538,9 @@ void Task_PokedexMainScreen(u8 taskId)
{
sub_808E6BC();
BeginNormalPaletteFade(
- ~(1 << (gSprites[gPokedexView->unk626].oam.paletteNum + 16)),
+ ~(1 << (gSprites[gPokedexView->selectedMonSpriteId].oam.paletteNum + 16)),
0, 0, 0x10, 0);
- gSprites[gPokedexView->unk626].callback = sub_808EDB8;
+ gSprites[gPokedexView->selectedMonSpriteId].callback = sub_808EDB8;
gTasks[taskId].func = sub_808CA64;
PlaySE(SE_PIN);
}
@@ -395,16 +1582,14 @@ void Task_PokedexMainScreen(u8 taskId)
}
}
-void sub_808C898(u8 taskId)
+static void sub_808C898(u8 taskId)
{
if (sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636))
- {
gTasks[taskId].func = Task_PokedexMainScreen;
- }
}
//Bring up menu and process menu input
-void Task_PokedexMainScreenMenu(u8 taskId)
+static void Task_PokedexMainScreenMenu(u8 taskId)
{
REG_BG0VOFS = gPokedexView->menuY;
@@ -429,8 +1614,8 @@ void Task_PokedexMainScreenMenu(u8 taskId)
gMain.newKeys |= START_BUTTON; //Exit menu
break;
case 2: //LIST BOTTOM
- gPokedexView->selectedPokemon = gPokedexView->unk60C - 1;
- gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30;
+ gPokedexView->selectedPokemon = gPokedexView->pokemonListCount - 1;
+ gPokedexView->unk62C = gPokedexView->pokemonListCount * 16 + 0x30;
sub_808E82C();
sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
gMain.newKeys |= START_BUTTON; //Exit menu
@@ -463,27 +1648,23 @@ void Task_PokedexMainScreenMenu(u8 taskId)
}
}
-void sub_808CA64(u8 taskId)
+static void sub_808CA64(u8 taskId)
{
- if (gSprites[gPokedexView->unk626].pos1.x == 0x30 &&
- gSprites[gPokedexView->unk626].pos1.y == 0x38)
+ if (gSprites[gPokedexView->selectedMonSpriteId].pos1.x == 48
+ && gSprites[gPokedexView->selectedMonSpriteId].pos1.y == 56)
{
gPokedexView->unk64B = gPokedexView->unk64A;
- gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->unk626);
+ gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->selectedMonSpriteId);
gTasks[taskId].func = sub_808CAE4;
}
}
-void sub_808CAE4(u8 taskId)
+static void sub_808CAE4(u8 taskId)
{
if (gTasks[gTasks[taskId].data[0]].isActive)
{
- if (gPokedexView->unk64A == 1 &&
- !sub_808F250(gTasks[taskId].data[0]) &&
- sub_808E71C())
- {
+ if (gPokedexView->unk64A == 1 && !sub_808F250(gTasks[taskId].data[0]) && sub_808E71C())
sub_808F284(&gPokedexView->unk0[gPokedexView->selectedPokemon], gTasks[taskId].data[0]);
- }
}
else
{
@@ -493,13 +1674,13 @@ void sub_808CAE4(u8 taskId)
}
}
-void sub_808CB8C(u8 taskId)
+static void sub_808CB8C(u8 taskId)
{
bool8 isActive = gTasks[gTasks[taskId].data[0]].isActive;
if (!isActive)
{
- if (gPokedexView->unk64F)
+ if (gPokedexView->unk64F != 0)
{
gPokedexView->selectedPokemon = isActive;
gPokedexView->unk62C = 0x40;
@@ -518,7 +1699,7 @@ void sub_808CB8C(u8 taskId)
}
}
-void Task_ClosePokedex(u8 taskId)
+static void Task_ClosePokedex(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -532,19 +1713,21 @@ void Task_ClosePokedex(u8 taskId)
}
}
-void sub_808CCC4(u8 taskId)
+static void sub_808CCC4(u8 taskId)
{
gPokedexView->unk64C_1 = 1;
if (sub_808D344(3))
gTasks[taskId].func = Task_PokedexResultsScreen;
}
-void Task_PokedexResultsScreen(u8 taskId)
+static void Task_PokedexResultsScreen(u8 taskId)
{
REG_BG0VOFS = gPokedexView->menuY;
if (gPokedexView->menuY)
+ {
gPokedexView->menuY -= 8;
+ }
else
{
if ((gMain.newKeys & A_BUTTON) && gPokedexView->unk0[gPokedexView->selectedPokemon].seen)
@@ -552,8 +1735,8 @@ void Task_PokedexResultsScreen(u8 taskId)
u32 a;
sub_808E6BC();
- a = (1 << (gSprites[gPokedexView->unk626].oam.paletteNum + 16));
- gSprites[gPokedexView->unk626].callback = sub_808EDB8;
+ a = (1 << (gSprites[gPokedexView->selectedMonSpriteId].oam.paletteNum + 16));
+ gSprites[gPokedexView->selectedMonSpriteId].callback = sub_808EDB8;
BeginNormalPaletteFade(~a, 0, 0, 0x10, 0);
gTasks[taskId].func = sub_808D118;
PlaySE(SE_PIN);
@@ -590,18 +1773,20 @@ void Task_PokedexResultsScreen(u8 taskId)
}
}
-void sub_808CEF8(u8 taskId)
+static void sub_808CEF8(u8 taskId)
{
if (sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636))
gTasks[taskId].func = Task_PokedexResultsScreen;
}
-void Task_PokedexResultsScreenMenu(u8 taskId)
+static void Task_PokedexResultsScreenMenu(u8 taskId)
{
REG_BG0VOFS = gPokedexView->menuY;
- if (gPokedexView->menuY != 0x60)
+ if (gPokedexView->menuY != 96)
+ {
gPokedexView->menuY += 8;
+ }
else
{
if (gMain.newKeys & A_BUTTON)
@@ -620,8 +1805,8 @@ void Task_PokedexResultsScreenMenu(u8 taskId)
gMain.newKeys |= START_BUTTON;
break;
case 2: //LIST BOTTOM
- gPokedexView->selectedPokemon = gPokedexView->unk60C - 1;
- gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30;
+ gPokedexView->selectedPokemon = gPokedexView->pokemonListCount - 1;
+ gPokedexView->unk62C = gPokedexView->pokemonListCount * 16 + 0x30;
sub_808E82C();
sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
gMain.newKeys |= START_BUTTON;
@@ -659,27 +1844,23 @@ void Task_PokedexResultsScreenMenu(u8 taskId)
}
}
-void sub_808D118(u8 taskId)
+static void sub_808D118(u8 taskId)
{
- if (gSprites[gPokedexView->unk626].pos1.x == 0x30 &&
- gSprites[gPokedexView->unk626].pos1.y == 0x38)
+ if (gSprites[gPokedexView->selectedMonSpriteId].pos1.x == 48
+ && gSprites[gPokedexView->selectedMonSpriteId].pos1.y == 56)
{
gPokedexView->unk64B = gPokedexView->unk64A;
- gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->unk626);
+ gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->selectedMonSpriteId);
gTasks[taskId].func = sub_808D198;
}
}
-void sub_808D198(u8 taskId)
+static void sub_808D198(u8 taskId)
{
if (gTasks[gTasks[taskId].data[0]].isActive)
{
- if (gPokedexView->unk64A == 1 &&
- !sub_808F250(gTasks[taskId].data[0]) &&
- sub_808E71C())
- {
+ if (gPokedexView->unk64A == 1 && !sub_808F250(gTasks[taskId].data[0]) && sub_808E71C())
sub_808F284(&gPokedexView->unk0[gPokedexView->selectedPokemon], gTasks[taskId].data[0]);
- }
}
else
{
@@ -687,7 +1868,7 @@ void sub_808D198(u8 taskId)
}
}
-void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId)
+static void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -701,7 +1882,7 @@ void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId)
}
}
-void Task_PokedexResultsScreenExitPokedex(u8 taskId)
+static void Task_PokedexResultsScreenExitPokedex(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -715,8 +1896,7 @@ void Task_PokedexResultsScreenExitPokedex(u8 taskId)
}
}
-
-bool8 sub_808D344(u8 a)
+static bool8 sub_808D344(u8 a)
{
switch (gMain.state)
{
@@ -724,7 +1904,6 @@ bool8 sub_808D344(u8 a)
default:
if (gPaletteFade.active)
return 0;
- //_0808D39E
SetVBlankCallback(NULL);
gPokedexView->unk64A = a;
sub_8091060(0);
@@ -749,7 +1928,7 @@ bool8 sub_808D344(u8 a)
ResetSpriteData();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
- LoadCompressedObjectPic(&gUnknown_083A05CC);
+ LoadCompressedObjectPic(&gUnknown_083A05CC[0]);
LoadSpritePalettes(gUnknown_083A05DC);
sub_808E978(a);
gMain.state++;
@@ -793,30 +1972,29 @@ bool8 sub_808D344(u8 a)
if (!gPaletteFade.active)
{
gMain.state = 0;
- return 1;
+ return TRUE;
}
- else
- return 0;
+ break;
}
- return 0;
+ return FALSE;
}
-void sub_808D640(void)
+static void sub_808D640(void)
{
if (gPokedexView->unk64C_1)
- LoadPalette(gUnknown_0839F67C + 0x2, 1, 0xBE);
+ LoadPalette(sPokedexSearchPalette + 1, 1, sizeof(sPokedexSearchPalette) - sizeof(u16));
else if (!IsNationalPokedexEnabled())
- LoadPalette(gPokedexMenu_Pal + 0x2, 1, 0xBE);
+ LoadPalette(gPokedexMenu_Pal + 1, 1, 0xBE);
else
- LoadPalette(gUnknown_0839F73C + 0x2, 1, 0xBE);
+ LoadPalette(sNationalPokedexPalette + 1, 1, sizeof(sNationalPokedexPalette) - sizeof(u16));
}
-void SortPokedex(u8 dexMode, u8 sortMode)
+static void SortPokedex(u8 dexMode, u8 sortMode)
{
u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever.
s16 i;
- gPokedexView->unk60C = 0;
+ gPokedexView->pokemonListCount = 0;
switch (dexMode)
{
@@ -828,7 +2006,7 @@ void SortPokedex(u8 dexMode, u8 sortMode)
case DEX_MODE_NATIONAL:
if (IsNationalPokedexEnabled())
{
- vars[0] = 386;
+ vars[0] = NATIONAL_DEX_COUNT;
vars[1] = 0;
}
else
@@ -842,7 +2020,6 @@ void SortPokedex(u8 dexMode, u8 sortMode)
switch (sortMode)
{
case 0:
- {
if (vars[1])
{
for (i = 0; i < vars[0]; i++)
@@ -852,7 +2029,7 @@ void SortPokedex(u8 dexMode, u8 sortMode)
gPokedexView->unk0[i].seen = GetNationalPokedexFlag(vars[2], 0);
gPokedexView->unk0[i].owned = GetNationalPokedexFlag(vars[2], 1);
if (gPokedexView->unk0[i].seen)
- gPokedexView->unk60C = i + 1;
+ gPokedexView->pokemonListCount = i + 1;
}
}
else
@@ -873,13 +2050,12 @@ void SortPokedex(u8 dexMode, u8 sortMode)
gPokedexView->unk0[r5].seen = GetNationalPokedexFlag(vars[2], 0);
gPokedexView->unk0[r5].owned = GetNationalPokedexFlag(vars[2], 1);
if (gPokedexView->unk0[r5].seen)
- gPokedexView->unk60C = r5 + 1;
+ gPokedexView->pokemonListCount = r5 + 1;
r5++;
}
}
}
break;
- }
case 1:
for (i = 0; i < 411; i++)
{
@@ -887,71 +2063,72 @@ void SortPokedex(u8 dexMode, u8 sortMode)
if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 0))
{
- gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
- gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
- gPokedexView->unk0[gPokedexView->unk60C].owned = GetNationalPokedexFlag(vars[2], 1);
- gPokedexView->unk60C++;
+ gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
+ gPokedexView->unk0[gPokedexView->pokemonListCount].owned = GetNationalPokedexFlag(vars[2], 1);
+ gPokedexView->pokemonListCount++;
}
}
break;
case 2:
- for (i = 385; i >= 0; i--)
+ for (i = NATIONAL_DEX_COUNT - 1; i >= 0; i--)
{
vars[2] = gPokedexOrder_Weight[i];
if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
{
- gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
- gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
- gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
- gPokedexView->unk60C++;
+ gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
+ gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1;
+ gPokedexView->pokemonListCount++;
}
}
break;
case 3:
- for (i = 0; i < 386; i++)
+ for (i = 0; i < NATIONAL_DEX_COUNT; i++)
{
vars[2] = gPokedexOrder_Weight[i];
if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
{
- gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
- gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
- gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
- gPokedexView->unk60C++;
+ gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
+ gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1;
+ gPokedexView->pokemonListCount++;
}
}
break;
case 4:
- for (i = 385; i >=0; i--)
+ for (i = NATIONAL_DEX_COUNT - 1; i >=0; i--)
{
vars[2] = gPokedexOrder_Height[i];
if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
{
- gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
- gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
- gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
- gPokedexView->unk60C++;
+ gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
+ gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1;
+ gPokedexView->pokemonListCount++;
}
}
break;
case 5:
- for (i = 0; i < 386; i++)
+ for (i = 0; i < NATIONAL_DEX_COUNT; i++)
{
vars[2] = gPokedexOrder_Height[i];
if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
{
- gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
- gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
- gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
- gPokedexView->unk60C++;
+ gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
+ gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1;
+ gPokedexView->pokemonListCount++;
}
}
break;
}
- for (i = gPokedexView->unk60C; i < 386; i++)
+
+ for (i = gPokedexView->pokemonListCount; i < NATIONAL_DEX_COUNT; i++)
{
gPokedexView->unk0[i].dexNum |= 0xFFFF;
gPokedexView->unk0[i].seen = 0;
@@ -959,20 +2136,23 @@ void SortPokedex(u8 dexMode, u8 sortMode)
}
}
-void sub_808DBE8(u8 a, u16 b, u16 c)
+static void sub_808DBE8(u8 a, u16 b, u16 c)
{
+ s16 _b;
+ u16 i;
+ u16 r2;
+
switch (a)
{
case 0:
default:
- {
- u16 i;
- s16 _b = b - 5;
-
+ _b = b - 5;
for (i = 0; i <= 10; i++)
{
- if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
+ if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gPokedexView->unk0[_b].dexNum == 0xFFFF)
+ {
sub_808E090(0x11, i * 2, c);
+ }
else
{
sub_808E090(0x11, i * 2, c);
@@ -992,13 +2172,12 @@ void sub_808DBE8(u8 a, u16 b, u16 c)
_b++;
}
break;
- }
case 1:
- {
- s16 _b = b - 5;
-
- if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
+ _b = b - 5;
+ if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gPokedexView->unk0[_b].dexNum == 0xFFFF)
+ {
sub_808E090(0x11, gPokedexView->unk630 * 2, c);
+ }
else
{
sub_808E090(0x11, gPokedexView->unk630 * 2, c);
@@ -1016,15 +2195,12 @@ void sub_808DBE8(u8 a, u16 b, u16 c)
}
}
break;
- }
case 2:
- {
- s16 _b = b + 5;
- u16 r2 = gPokedexView->unk630 + 10;
-
+ _b = b + 5;
+ r2 = gPokedexView->unk630 + 10;
if (r2 > 15)
r2 -= 16;
- if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
+ if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gPokedexView->unk0[_b].dexNum == 0xFFFF)
sub_808E090(0x11, r2 * 2, c);
else
{
@@ -1044,10 +2220,9 @@ void sub_808DBE8(u8 a, u16 b, u16 c)
}
break;
}
- }
}
-void sub_808DEB0(u16 a, u8 b, u8 c, u16 d)
+static void sub_808DEB0(u16 a, u8 b, u8 c, u16 d)
{
u8 text[4];
u16 unk[2];
@@ -1057,16 +2232,16 @@ void sub_808DEB0(u16 a, u8 b, u8 c, u16 d)
r7 = NationalToHoennOrder(r7);
unk[0] = 0x3FC;
unk[1] = 0x3FD;
- text[0] = r7 / 100 + 0xA1;
- text[1] = (r7 % 100) / 10 + 0xA1;
- text[2] = (r7 % 100) % 10 + 0xA1;
- text[3] = 0xFF;
+ text[0] = CHAR_0 + r7 / 100;
+ text[1] = CHAR_0 + (r7 % 100) / 10;
+ text[2] = CHAR_0 + (r7 % 100) % 10;
+ text[3] = EOS;
*(u16 *)(VRAM + d * 0x800 + c * 0x40 + b * 2) = unk[0];
- *(u16 *)(VRAM + 0x40 + d * 0x800 + c * 0x40 + b * 2) = unk[1];
+ *(u16 *)(VRAM + d * 0x800 + (c + 1) * 0x40 + b * 2) = unk[1];
MenuPrint(text, b - 15, c);
}
-void sub_808DF88(u16 a, u8 b, u8 c, u16 d)
+static void sub_808DF88(u16 a, u8 b, u8 c, u16 d)
{
u16 unk[2];
@@ -1081,152 +2256,57 @@ void sub_808DF88(u16 a, u8 b, u8 c, u16 d)
unk[1] = 0;
}
*(u16 *)(VRAM + d * 0x800 + c * 0x40 + b * 2) = unk[0];
- *(u16 *)(VRAM + 0x40 + d * 0x800 + c * 0x40 + b * 2) = unk[1];
+ *(u16 *)(VRAM + d * 0x800 + (c + 1) * 0x40 + b * 2) = unk[1];
}
-#ifdef NONMATCHING
-//FixMe
-u8 sub_808DFE4(u16 a, u8 b, u8 c)
+static u8 sub_808DFE4(u16 num, u8 b, u8 c)
{
u8 text[10];
u8 i;
- u32 species;
for (i = 0; i < 10; i++)
- text[i] = 0;
+ text[i] = CHAR_SPACE;
text[i] = EOS;
- species = NationalPokedexNumToSpecies(a);
- if (species)
- {
- for (i = 0; gSpeciesNames[species][i] != EOS && i < 10; i++)
- text[i] = gSpeciesNames[species][i];
- }
- else
+
+ num = NationalPokedexNumToSpecies(num);
+ switch (num)
{
+ default:
+ for (i = 0; gSpeciesNames[num][i] != EOS && i < 10; i++)
+ text[i] = gSpeciesNames[num][i];
+ break;
+ case 0:
for (i = 0; i < 10; i++)
- text[i] = 0xAE;
+ text[i] = CHAR_HYPHEN;
+ break;
}
MenuPrint_PixelCoords(text, (b - 0x11) * 8 + 0xFC, c * 8, 0);
+ return i;
}
-#else
-__attribute__((naked))
-u8 sub_808DFE4(u16 a, u8 b, u8 c)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- sub sp, 0xC\n\
- lsls r0, 16\n\
- lsrs r3, r0, 16\n\
- lsls r1, 24\n\
- lsrs r5, r1, 24\n\
- lsls r2, 24\n\
- lsrs r6, r2, 24\n\
- movs r4, 0\n\
- movs r1, 0\n\
-_0808DFF8:\n\
- mov r2, sp\n\
- adds r0, r2, r4\n\
- strb r1, [r0]\n\
- adds r0, r4, 0x1\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- cmp r4, 0x9\n\
- bls _0808DFF8\n\
- adds r0, r2, r4\n\
- movs r1, 0xFF\n\
- strb r1, [r0]\n\
- adds r0, r3, 0\n\
- bl NationalPokedexNumToSpecies\n\
- adds r3, r0, 0\n\
- cmp r3, 0\n\
- beq _0808E058\n\
- movs r4, 0\n\
- ldr r2, _0808E054\n\
- movs r0, 0xB\n\
- adds r1, r3, 0\n\
- muls r1, r0\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- subs r5, 0x11\n\
- lsls r6, 19\n\
- cmp r0, 0xFF\n\
- beq _0808E070\n\
- adds r3, r1, 0\n\
-_0808E032:\n\
- mov r0, sp\n\
- adds r1, r0, r4\n\
- adds r0, r4, r3\n\
- adds r0, r2\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- adds r0, r4, 0x1\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- adds r0, r4, r3\n\
- adds r0, r2\n\
- ldrb r0, [r0]\n\
- cmp r0, 0xFF\n\
- beq _0808E070\n\
- cmp r4, 0x9\n\
- bls _0808E032\n\
- b _0808E070\n\
- .align 2, 0\n\
-_0808E054: .4byte gSpeciesNames\n\
-_0808E058:\n\
- movs r4, 0\n\
- subs r5, 0x11\n\
- lsls r6, 19\n\
- movs r1, 0xAE\n\
-_0808E060:\n\
- mov r2, sp\n\
- adds r0, r2, r4\n\
- strb r1, [r0]\n\
- adds r0, r4, 0x1\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- cmp r4, 0x9\n\
- bls _0808E060\n\
-_0808E070:\n\
- lsls r1, r5, 27\n\
- movs r0, 0xFC\n\
- lsls r0, 24\n\
- adds r1, r0\n\
- lsrs r1, 24\n\
- lsrs r2, r6, 16\n\
- mov r0, sp\n\
- movs r3, 0\n\
- bl MenuPrint_PixelCoords\n\
- adds r0, r4, 0\n\
- add sp, 0xC\n\
- pop {r4-r6}\n\
- pop {r1}\n\
- bx r1\n\
- .syntax divided\n");
-}
-#endif
-void sub_808E090(u8 a, u8 b, u16 c)
+static void sub_808E090(u8 a, u8 b, u16 c)
{
u8 i;
for (i = 0; i < 12; i++)
{
*(u16 *)(VRAM + c * 0x800 + b * 64 + (a + i) * 2) = 0;
- *(u16 *)(VRAM + 0x40 + c * 0x800 + b * 64 + (a + i) * 2) = 0;
+ *(u16 *)(VRAM + c * 0x800 + (b + 1) * 64 + (a + i) * 2) = 0;
}
}
-void sub_808E0CC(u16 a, u16 b)
+static void sub_808E0CC(u16 a, u16 b)
{
u8 i;
u16 unk;
u8 spriteId;
for (i = 0; i < 4; i++)
- gPokedexView->unk61E[i] |= 0xFFFF;
- gPokedexView->unk626 = 0xFFFF;
+ gPokedexView->unk61E[i] = 0xFFFF;
+ gPokedexView->selectedMonSpriteId = 0xFFFF;
sub_808DBE8(0, a, b);
REG_BG2VOFS = gPokedexView->unk62D;
+
unk = sub_808E888(a - 1);
if (unk != 0xFFFF)
{
@@ -1234,6 +2314,7 @@ void sub_808E0CC(u16 a, u16 b)
gSprites[spriteId].callback = sub_808EE28;
gSprites[spriteId].data5 = -32;
}
+
unk = sub_808E888(a);
if (unk != 0xFFFF)
{
@@ -1241,6 +2322,7 @@ void sub_808E0CC(u16 a, u16 b)
gSprites[spriteId].callback = sub_808EE28;
gSprites[spriteId].data5 = 0;
}
+
unk = sub_808E888(a + 1);
if (unk != 0xFFFF)
{
@@ -1248,11 +2330,12 @@ void sub_808E0CC(u16 a, u16 b)
gSprites[spriteId].callback = sub_808EE28;
gSprites[spriteId].data5 = 32;
}
+
gPokedexView->unk630 = 0;
gPokedexView->unk632 = 0;
}
-bool8 sub_808E208(u8 a, u8 b, u8 c)
+static bool8 sub_808E208(u8 a, u8 b, u8 c)
{
u16 i;
u8 foo;
@@ -1283,17 +2366,16 @@ bool8 sub_808E208(u8 a, u8 b, u8 c)
gPokedexView->unk62C += gPokedexView->unk628;
break;
}
- return 0;
+ return FALSE;
}
- //_0808E36C
else
{
REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk630 * 16;
- return 1;
+ return TRUE;
}
}
-void sub_808E398(u8 a, u16 b)
+static void sub_808E398(u8 a, u16 b)
{
u16 unk;
u8 spriteId;
@@ -1302,22 +2384,19 @@ void sub_808E398(u8 a, u16 b)
switch (a)
{
case 1:
- {
unk = sub_808E888(b - 1);
if (unk != 0xFFFF)
{
spriteId = sub_808E8C8(unk, 0x60, 0x50);
gSprites[spriteId].callback = sub_808EE28;
- gSprites[spriteId].data5 = 0xFFC0;
+ gSprites[spriteId].data5 = -64;
}
if (gPokedexView->unk630 > 0)
gPokedexView->unk630--;
else
- gPokedexView->unk630 = 0xF;
+ gPokedexView->unk630 = 15;
break;
- }
case 2:
- {
unk = sub_808E888(b + 1);
if (unk != 0xFFFF)
{
@@ -1331,370 +2410,90 @@ void sub_808E398(u8 a, u16 b)
gPokedexView->unk630 = 0;
break;
}
- }
}
-#ifdef NONMATCHING
-//This one's ridiculous. Fix later
-u16 sub_808E48C(u16 a, u16 b)
+
+// Ugly, ugly, ugly. I couldn't get it to match otherwise.
+static u16 sub_808E48C(u16 a, u16 b)
{
u8 r3;
u8 r5;
- u32 r10 = 0;
- if (!(gMain.heldKeys & 0x40) || a == 0)
- {
- u8 i;
- u16 r6;
+ u8 i;
+ u16 r6;
+ u8 r10 = 0;
+ if (!((gMain.heldKeys & 0x40) && (a > 0)))
+ {
//_0808E4B6
- if (gMain.heldKeys & 0x80)
- {
- if (a < gPokedexView->unk60C - 1)
- goto _0808E5C4;
- }
+ if (!((gMain.heldKeys & 0x80) && (a < gPokedexView->pokemonListCount - 1)))
//_0808E4CE
-
- if ((gMain.newKeys & 0x20) && a != 0)
{
- r6 = a;
- //_0808E4E0
- for (i = 0; i < 7; i++)
+ if ((gMain.newKeys & 0x20) && (a > 0))
{
- a = sub_8091818(1, a, 0, gPokedexView->unk60C - 1);
+ r6 = a;
+ //_0808E4E0
+ for (i = 0; i < 7; i++)
+ a = sub_8091818(1, a, 0, gPokedexView->pokemonListCount - 1);
+ gPokedexView->unk62C += 16 * (a - r6);
+ sub_808E82C();
+ sub_808E0CC(a, 0xE);
+ PlaySE(0x6D);
+ }
+ //_0808E53C
+ else if ((gMain.newKeys & 0x10) && (a < gPokedexView->pokemonListCount - 1))
+ {
+ r6 = a;
+ for (i = 0; i < 7; i++)
+ a = sub_8091818(0, a, 0, gPokedexView->pokemonListCount - 1);
+ gPokedexView->unk62C += (a - r6) * 16;
+ sub_808E82C();
+ sub_808E0CC(a, 0xE);
+ PlaySE(0x6D);
+ }
+ _0808E5A2:
+ if (r10 == 0)
+ {
+ gPokedexView->unk638 = 0;
+ return a;
}
-
- gPokedexView->unk62C += (a - r6) * 16;
- sub_808E82C();
- sub_808E0CC(a, 0xE);
- PlaySE(SE_Z_PAGE);
- goto _0808E5A2;
}
- //_0808E53C
- if (!(gMain.newKeys & 0x10) || a >= gPokedexView->unk60C - 1)
- goto _0808E5A2;
-
- r6 = a;
- for (i = 0; i < 7; i++)
+ else
{
- a = sub_8091818(0, a, 0, gPokedexView->unk60C - 1);
+ // to _0808E5C4
+ r10 = 2;
+ a = sub_8091818(0, a, 0, gPokedexView->pokemonListCount - 1);
+ sub_808E398(2, a);
+ //goto _0808E60E
+ sub_808DBE8(2, a, b);
+ PlaySE(0x6C);
+ goto _0808E5A2;
}
-
- gPokedexView->unk62C += (a - r6) * 16;
- sub_808E82C();
- sub_808E0CC(a, 0xE);
- PlaySE(SE_Z_PAGE);
- goto _0808E5A2;
-
- _0808E5A2:
- if (r10 != 0)
- goto _0808E628;
- gPokedexView->unk638 = r10;
- return a;
-
- _0808E5C4:
- r10 = 2;
- a = sub_8091818(0, a, 0, gPokedexView->unk60C - 1);
- sub_808E398(2, a);
- //goto _0808E60E
- sub_808DBE8(2, a, b);
- PlaySE(SE_Z_SCROLL);
}
- //_0808E5E4
else
{
+ //to _0808E5E4
r10 = 1;
- a = sub_8091818(1, a, 0, gPokedexView->unk60C - 1);
+ a = sub_8091818(1, a, 0, gPokedexView->pokemonListCount - 1);
sub_808E398(1, a);
//_0808E60E
sub_808DBE8(1, a, b);
- PlaySE(SE_Z_SCROLL);
+ PlaySE(0x6C);
+ goto _0808E5A2;
}
- //_0808E60E
- goto _0808E5A2;
-
- _0808E628:
+ //_0808E628
r5 = gUnknown_083A05EC[gPokedexView->unk638 / 4];
r3 = gUnknown_083A05F1[gPokedexView->unk638 / 4];
gPokedexView->unk62E = r3;
gPokedexView->unk636 = r3;
gPokedexView->unk634 = r5;
gPokedexView->unk62F = r10;
- gPokedexView->unk628 = r5;
+ gPokedexView->unk628 = r5 / 2;
sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636);
if (gPokedexView->unk638 <= 0xB)
gPokedexView->unk638++;
return a;
}
-#else
-__attribute__((naked))
-u16 sub_808E48C(u16 a, u16 b)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- lsls r0, 16\n\
- lsrs r7, r0, 16\n\
- lsls r1, 16\n\
- lsrs r4, r1, 16\n\
- movs r0, 0\n\
- mov r10, r0\n\
- ldr r1, _0808E52C\n\
- ldrh r2, [r1, 0x2C]\n\
- movs r0, 0x40\n\
- ands r0, r2\n\
- adds r3, r1, 0\n\
- cmp r0, 0\n\
- beq _0808E4B6\n\
- cmp r7, 0\n\
- beq _0808E4B6\n\
- b _0808E5E4\n\
-_0808E4B6:\n\
- movs r0, 0x80\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- beq _0808E4CE\n\
- ldr r0, _0808E530\n\
- ldr r0, [r0]\n\
- ldr r1, _0808E534\n\
- adds r0, r1\n\
- ldrh r0, [r0]\n\
- subs r0, 0x1\n\
- cmp r7, r0\n\
- blt _0808E5C4\n\
-_0808E4CE:\n\
- ldrh r1, [r3, 0x2E]\n\
- movs r0, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0808E53C\n\
- cmp r7, 0\n\
- beq _0808E53C\n\
- adds r6, r7, 0\n\
- movs r4, 0\n\
-_0808E4E0:\n\
- ldr r5, _0808E530\n\
- ldr r0, [r5]\n\
- ldr r2, _0808E534\n\
- adds r0, r2\n\
- ldrh r3, [r0]\n\
- subs r3, 0x1\n\
- lsls r3, 16\n\
- lsrs r3, 16\n\
- movs r0, 0x1\n\
- adds r1, r7, 0\n\
- movs r2, 0\n\
- bl sub_8091818\n\
- adds r7, r0, 0\n\
- adds r0, r4, 0x1\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- cmp r4, 0x6\n\
- bls _0808E4E0\n\
- ldr r1, [r5]\n\
- ldr r3, _0808E538\n\
- adds r1, r3\n\
- subs r0, r7, r6\n\
- lsls r0, 4\n\
- ldrb r2, [r1]\n\
- adds r0, r2\n\
- strb r0, [r1]\n\
- bl sub_808E82C\n\
- adds r0, r7, 0\n\
- movs r1, 0xE\n\
- bl sub_808E0CC\n\
- movs r0, 0x6D\n\
- bl PlaySE\n\
- b _0808E5A2\n\
- .align 2, 0\n\
-_0808E52C: .4byte gMain\n\
-_0808E530: .4byte gPokedexView\n\
-_0808E534: .4byte 0x0000060c\n\
-_0808E538: .4byte 0x0000062c\n\
-_0808E53C:\n\
- ldrh r1, [r3, 0x2E]\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0808E5A2\n\
- ldr r0, _0808E5B8\n\
- ldr r0, [r0]\n\
- ldr r3, _0808E5BC\n\
- adds r0, r3\n\
- ldrh r0, [r0]\n\
- subs r0, 0x1\n\
- cmp r7, r0\n\
- bge _0808E5A2\n\
- adds r6, r7, 0\n\
- movs r4, 0\n\
-_0808E55A:\n\
- ldr r5, _0808E5B8\n\
- ldr r0, [r5]\n\
- ldr r1, _0808E5BC\n\
- adds r0, r1\n\
- ldrh r3, [r0]\n\
- subs r3, 0x1\n\
- lsls r3, 16\n\
- lsrs r3, 16\n\
- movs r0, 0\n\
- adds r1, r7, 0\n\
- movs r2, 0\n\
- bl sub_8091818\n\
- adds r7, r0, 0\n\
- adds r0, r4, 0x1\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- cmp r4, 0x6\n\
- bls _0808E55A\n\
- ldr r1, [r5]\n\
- ldr r2, _0808E5C0\n\
- adds r1, r2\n\
- subs r0, r7, r6\n\
- lsls r0, 4\n\
- ldrb r3, [r1]\n\
- adds r0, r3\n\
- strb r0, [r1]\n\
- bl sub_808E82C\n\
- adds r0, r7, 0\n\
- movs r1, 0xE\n\
- bl sub_808E0CC\n\
- movs r0, 0x6D\n\
- bl PlaySE\n\
-_0808E5A2:\n\
- mov r0, r10\n\
- cmp r0, 0\n\
- bne _0808E628\n\
- ldr r0, _0808E5B8\n\
- ldr r0, [r0]\n\
- movs r1, 0xC7\n\
- lsls r1, 3\n\
- adds r0, r1\n\
- mov r2, r10\n\
- strh r2, [r0]\n\
- b _0808E68E\n\
- .align 2, 0\n\
-_0808E5B8: .4byte gPokedexView\n\
-_0808E5BC: .4byte 0x0000060c\n\
-_0808E5C0: .4byte 0x0000062c\n\
-_0808E5C4:\n\
- movs r3, 0x2\n\
- mov r10, r3\n\
- lsls r3, r0, 16\n\
- lsrs r3, 16\n\
- movs r0, 0\n\
- adds r1, r7, 0\n\
- movs r2, 0\n\
- bl sub_8091818\n\
- adds r7, r0, 0\n\
- movs r0, 0x2\n\
- adds r1, r7, 0\n\
- bl sub_808E398\n\
- movs r0, 0x2\n\
- b _0808E60E\n\
-_0808E5E4:\n\
- movs r0, 0x1\n\
- mov r10, r0\n\
- ldr r0, _0808E620\n\
- ldr r0, [r0]\n\
- ldr r1, _0808E624\n\
- adds r0, r1\n\
- ldrh r3, [r0]\n\
- subs r3, 0x1\n\
- lsls r3, 16\n\
- lsrs r3, 16\n\
- movs r0, 0x1\n\
- adds r1, r7, 0\n\
- movs r2, 0\n\
- bl sub_8091818\n\
- adds r7, r0, 0\n\
- movs r0, 0x1\n\
- adds r1, r7, 0\n\
- bl sub_808E398\n\
- movs r0, 0x1\n\
-_0808E60E:\n\
- adds r1, r7, 0\n\
- adds r2, r4, 0\n\
- bl sub_808DBE8\n\
- movs r0, 0x6C\n\
- bl PlaySE\n\
- b _0808E5A2\n\
- .align 2, 0\n\
-_0808E620: .4byte gPokedexView\n\
-_0808E624: .4byte 0x0000060c\n\
-_0808E628:\n\
- ldr r1, _0808E6A0\n\
- ldr r6, _0808E6A4\n\
- ldr r2, [r6]\n\
- movs r3, 0xC7\n\
- lsls r3, 3\n\
- mov r9, r3\n\
- adds r0, r2, r3\n\
- ldrh r0, [r0]\n\
- lsrs r0, 2\n\
- adds r1, r0, r1\n\
- ldrb r5, [r1]\n\
- ldr r1, _0808E6A8\n\
- adds r0, r1\n\
- ldrb r3, [r0]\n\
- ldr r0, _0808E6AC\n\
- adds r2, r0\n\
- strb r3, [r2]\n\
- ldr r1, [r6]\n\
- ldr r2, _0808E6B0\n\
- mov r8, r2\n\
- adds r0, r1, r2\n\
- strh r3, [r0]\n\
- ldr r4, _0808E6B4\n\
- adds r0, r1, r4\n\
- strh r5, [r0]\n\
- ldr r3, _0808E6B8\n\
- adds r1, r3\n\
- mov r0, r10\n\
- strb r0, [r1]\n\
- ldr r2, [r6]\n\
- lsrs r5, 1\n\
- movs r1, 0xC5\n\
- lsls r1, 3\n\
- adds r0, r2, r1\n\
- strh r5, [r0]\n\
- adds r3, r2, r3\n\
- ldrb r0, [r3]\n\
- adds r4, r2, r4\n\
- ldrb r1, [r4]\n\
- add r2, r8\n\
- ldrb r2, [r2]\n\
- bl sub_808E208\n\
- ldr r0, [r6]\n\
- mov r2, r9\n\
- adds r1, r0, r2\n\
- ldrh r0, [r1]\n\
- cmp r0, 0xB\n\
- bhi _0808E68E\n\
- adds r0, 0x1\n\
- strh r0, [r1]\n\
-_0808E68E:\n\
- adds r0, r7, 0\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
-_0808E6A0: .4byte gUnknown_083A05EC\n\
-_0808E6A4: .4byte gPokedexView\n\
-_0808E6A8: .4byte gUnknown_083A05F1\n\
-_0808E6AC: .4byte 0x0000062e\n\
-_0808E6B0: .4byte 0x00000636\n\
-_0808E6B4: .4byte 0x00000634\n\
-_0808E6B8: .4byte 0x0000062f\n\
- .syntax divided\n");
-}
-#endif
-void sub_808E6BC(void)
+static void sub_808E6BC(void)
{
u16 i;
@@ -1703,11 +2502,11 @@ void sub_808E6BC(void)
u16 spriteId = gPokedexView->unk61E[i];
if (gSprites[spriteId].pos2.x == 0 && gSprites[spriteId].pos2.y == 0 && spriteId != 0xFFFF)
- gPokedexView->unk626 = spriteId;
+ gPokedexView->selectedMonSpriteId = spriteId;
}
}
-u8 sub_808E71C(void)
+static u8 sub_808E71C(void)
{
u16 r2;
u16 r4 = gPokedexView->selectedPokemon;
@@ -1717,7 +2516,7 @@ u8 sub_808E71C(void)
r2 = r4;
while (r2 != 0)
{
- r2 = sub_8091818(1, r2, 0, gPokedexView->unk60C - 1);
+ r2 = sub_8091818(1, r2, 0, gPokedexView->pokemonListCount - 1);
if (gPokedexView->unk0[r2].seen)
{
@@ -1735,12 +2534,12 @@ u8 sub_808E71C(void)
return 1;
}
}
- else if ((gMain.newKeys & DPAD_DOWN) && r4 < gPokedexView->unk60C - 1)
+ else if ((gMain.newKeys & DPAD_DOWN) && r4 < gPokedexView->pokemonListCount - 1)
{
r2 = r4;
- while (r2 < gPokedexView->unk60C - 1)
+ while (r2 < gPokedexView->pokemonListCount - 1)
{
- r2 = sub_8091818(0, r2, 0, gPokedexView->unk60C - 1);
+ r2 = sub_8091818(0, r2, 0, gPokedexView->pokemonListCount - 1);
if (gPokedexView->unk0[r2].seen)
{
@@ -1761,7 +2560,7 @@ u8 sub_808E71C(void)
return 0;
}
-u8 sub_808E82C(void)
+static u8 sub_808E82C(void)
{
u16 i;
@@ -1776,9 +2575,9 @@ u8 sub_808E82C(void)
return 0;
}
-u16 sub_808E888(u16 a1)
+static u16 sub_808E888(u16 a1)
{
- if (a1 > 385 || gPokedexView->unk0[a1].dexNum == 0xFFFF)
+ if (a1 >= NATIONAL_DEX_COUNT || gPokedexView->unk0[a1].dexNum == 0xFFFF)
return 0xFFFF;
else if (gPokedexView->unk0[a1].seen)
return gPokedexView->unk0[a1].dexNum;
@@ -1786,7 +2585,7 @@ u16 sub_808E888(u16 a1)
return 0;
}
-u32 sub_808E8C8(u16 a, u16 b, u16 c)
+static u32 sub_808E8C8(u16 a, s16 b, s16 c)
{
u8 i;
@@ -1794,7 +2593,7 @@ u32 sub_808E8C8(u16 a, u16 b, u16 c)
{
if (gPokedexView->unk61E[i] == 0xFFFF)
{
- u8 spriteId = sub_80918EC(a, (s16)b, (s16)c, i);
+ u8 spriteId = sub_80918EC(a, b, c, i);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.priority = 3;
@@ -1808,38 +2607,38 @@ u32 sub_808E8C8(u16 a, u16 b, u16 c)
return 0xFFFF;
}
-void sub_808E978(u8 a)
+static void sub_808E978(u8 a)
{
u8 spriteId;
u16 r5;
- spriteId = CreateSprite(&gSpriteTemplate_83A053C, 0xB8, 4, 0);
+ spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 4, 0);
gSprites[spriteId].data1 = 0;
- spriteId = CreateSprite(&gSpriteTemplate_83A053C, 0xB8, 0x9C, 0);
+ spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 156, 0);
gSprites[spriteId].data1 = 1;
- gSprites[spriteId].vFlip = 1;
+ gSprites[spriteId].vFlip = TRUE;
- CreateSprite(&gSpriteTemplate_83A0524, 0xEA, 0x14, 0);
- CreateSprite(&gSpriteTemplate_83A0554, 0x10, 0x8A, 0);
+ CreateSprite(&gSpriteTemplate_83A0524, 234, 20, 0);
+ CreateSprite(&gSpriteTemplate_83A0554, 16, 138, 0);
- spriteId = CreateSprite(&gSpriteTemplate_83A0554, 0x30, 0x8A, 0);
+ spriteId = CreateSprite(&gSpriteTemplate_83A0554, 48, 138, 0);
StartSpriteAnim(&gSprites[spriteId], 3);
- spriteId = CreateSprite(&gSpriteTemplate_83A0554, 0x10, 0x9E, 0);
+ spriteId = CreateSprite(&gSpriteTemplate_83A0554, 16, 158, 0);
StartSpriteAnim(&gSprites[spriteId], 2);
gSprites[spriteId].data2 = 0x80;
- spriteId = CreateSprite(&gSpriteTemplate_83A0554, 0x30, 0x9E, 0);
+ spriteId = CreateSprite(&gSpriteTemplate_83A0554, 48, 158, 0);
StartSpriteAnim(&gSprites[spriteId], 1);
- spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 0x50, 2);
+ spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 80, 2);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.matrixNum = 30;
gSprites[spriteId].data0 = 0x1E;
gSprites[spriteId].data1 = 0;
- spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 0x50, 2);
+ spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 80, 2);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.matrixNum = 31;
gSprites[spriteId].data0 = 0x1F;
@@ -1849,95 +2648,97 @@ void sub_808E978(u8 a)
{
u32 _a;
- CreateSprite(&gSpriteTemplate_83A0584, 0x20, 0x28, 1);
+ CreateSprite(&gSpriteTemplate_83A0584, 32, 40, 1);
- spriteId = CreateSprite(&gSpriteTemplate_83A0584, 0x20, 0x48, 1);
+ spriteId = CreateSprite(&gSpriteTemplate_83A0584, 32, 72, 1);
StartSpriteAnim(&gSprites[spriteId], 1);
_a = 0;
- spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x1C, 0x30, 1);
+ spriteId = CreateSprite(&gSpriteTemplate_83A059C, 28, 48, 1);
r5 = gPokedexView->unk61A / 100;
StartSpriteAnim(&gSprites[spriteId], r5);
if (r5 != 0)
_a = 1;
else
- gSprites[spriteId].invisible = 1;
+ gSprites[spriteId].invisible = TRUE;
- spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x22, 0x30, 1);
+ spriteId = CreateSprite(&gSpriteTemplate_83A059C, 34, 48, 1);
r5 = (gPokedexView->unk61A % 100) / 10;
if (r5 != 0 || _a != 0)
StartSpriteAnim(&gSprites[spriteId], r5);
else
- gSprites[spriteId].invisible = 1;
+ gSprites[spriteId].invisible = TRUE;
- spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x28, 0x30, 1);
+ spriteId = CreateSprite(&gSpriteTemplate_83A059C, 40, 48, 1);
r5 = (gPokedexView->unk61A % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
_a = 0;
- spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x1C, 0x50, 1);
+ spriteId = CreateSprite(&gSpriteTemplate_83A059C, 28, 80, 1);
r5 = gPokedexView->unk61C / 100;
StartSpriteAnim(&gSprites[spriteId], r5);
if (r5 != 0)
_a = 1;
else
- gSprites[spriteId].invisible = 1;
+ gSprites[spriteId].invisible = TRUE;
- spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x22, 0x50, 1);
+ spriteId = CreateSprite(&gSpriteTemplate_83A059C, 34, 80, 1);
r5 = (gPokedexView->unk61C % 100) / 10;
if (r5 != 0 || _a != 0)
StartSpriteAnim(&gSprites[spriteId], r5);
else
- gSprites[spriteId].invisible = 1;
+ gSprites[spriteId].invisible = TRUE;
- spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x28, 0x50, 1);
+ spriteId = CreateSprite(&gSpriteTemplate_83A059C, 40, 80, 1);
r5 = (gPokedexView->unk61C % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
- spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 0x8C, 0x60, 1);
- gSprites[spriteId].invisible = 1;
+ spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 140, 96, 1);
+ gSprites[spriteId].invisible = TRUE;
}
else
{
- spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 0x8C, 0x50, 1);
- gSprites[spriteId].invisible = 1;
+ spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 140, 80, 1);
+ gSprites[spriteId].invisible = TRUE;
}
}
-void nullsub_58(struct Sprite *sprite)
+static void nullsub_58(struct Sprite *sprite)
{
}
-void sub_808ED94(struct Sprite *sprite)
+static void sub_808ED94(struct Sprite *sprite)
{
if (gPokedexView->unk64A != 0)
DestroySprite(sprite);
}
//Move Pokemon into position for description page
-void sub_808EDB8(struct Sprite *sprite)
+static void sub_808EDB8(struct Sprite *sprite)
{
sprite->oam.priority = 0;
sprite->oam.affineMode = 0;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- if (sprite->pos1.x != 0x30 || sprite->pos1.y != 0x38)
+ if (sprite->pos1.x != 48 || sprite->pos1.y != 56)
{
- if (sprite->pos1.x > 0x30)
+ if (sprite->pos1.x > 48)
sprite->pos1.x--;
- if (sprite->pos1.x < 0x30)
+ if (sprite->pos1.x < 48)
sprite->pos1.x++;
- if (sprite->pos1.y > 0x38)
+
+ if (sprite->pos1.y > 56)
sprite->pos1.y--;
- if (sprite->pos1.y <0x38)
+ if (sprite->pos1.y < 56)
sprite->pos1.y++;
}
- //_0808EE1C
else
+ {
sprite->callback = nullsub_58;
+ }
}
-void sub_808EE28(struct Sprite *sprite)
+static void sub_808EE28(struct Sprite *sprite)
{
u8 data1 = sprite->data1;
@@ -1948,223 +2749,132 @@ void sub_808EE28(struct Sprite *sprite)
}
else
{
- //_0808EE58
- s32 var;
+ u32 var;
sprite->pos2.y = gSineTable[(u8)sprite->data5] * 76 / 256;
var = 0x10000 / gSineTable[sprite->data5 + 0x40];
- if ((u32)var > 0xFFFF)
+ if (var > 0xFFFF)
var = 0xFFFF;
SetOamMatrix(sprite->data1 + 1, 0x100, 0, 0, var);
sprite->oam.matrixNum = data1 + 1;
- //ToDo: clean up these inequalities
- if ((u16)(sprite->data5 + 0x3F) <= 0x7E)
+ if (sprite->data5 > -64 && sprite->data5 < 64)
{
- sprite->invisible = 0;
+ sprite->invisible = FALSE;
sprite->data0 = 1;
}
else
{
- sprite->invisible = 1;
+ sprite->invisible = TRUE;
}
- //_0808EEF8
- if ((u16)(sprite->data5 + 0x3F) > 0x7E && sprite->data0 != 0)
+
+ if ((sprite->data5 <= -64 || sprite->data5 >= 64) && sprite->data0 != 0)
{
DestroySprite(sprite);
gPokedexView->unk61E[data1] = 0xFFFF;
}
}
- //_0808EF16
}
-void sub_808EF38(struct Sprite *sprite)
+static void sub_808EF38(struct Sprite *sprite)
{
if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
DestroySprite(sprite);
else
- sprite->pos2.y = gPokedexView->selectedPokemon * 120 / (gPokedexView->unk60C - 1);
+ sprite->pos2.y = gPokedexView->selectedPokemon * 120 / (gPokedexView->pokemonListCount - 1);
}
-void sub_808EF8C(struct Sprite *sprite)
+static void sub_808EF8C(struct Sprite *sprite)
{
if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
+ {
DestroySprite(sprite);
+ }
else
{
u8 r0;
if (sprite->data1 != 0)
{
- if (gPokedexView->selectedPokemon == gPokedexView->unk60C - 1)
- sprite->invisible = 1;
+ if (gPokedexView->selectedPokemon == gPokedexView->pokemonListCount - 1)
+ sprite->invisible = TRUE;
else
- sprite->invisible = 0;
+ sprite->invisible = FALSE;
r0 = sprite->data2;
}
else
{
if (gPokedexView->selectedPokemon == 0)
- sprite->invisible = 1;
+ sprite->invisible = TRUE;
else
- sprite->invisible = 0;
- r0 = sprite->data2 - 0x80;
+ sprite->invisible = FALSE;
+ r0 = sprite->data2 - 128;
}
sprite->pos2.y = gSineTable[r0] / 64;
sprite->data2 = sprite->data2 + 8;
if (gPokedexView->menuIsOpen == 0 && gPokedexView->menuY == 0 && sprite->invisible == 0)
- sprite->invisible = 0;
+ sprite->invisible = FALSE;
else
- sprite->invisible = 1;
+ sprite->invisible = TRUE;
}
}
-void sub_808F08C(struct Sprite *sprite)
+static void sub_808F08C(struct Sprite *sprite)
{
if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
DestroySprite(sprite);
}
-#ifdef NONMATCHING
-void sub_808F0B4(struct Sprite *sprite)
+static void sub_808F0B4(struct Sprite *sprite)
{
if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
+ {
DestroySprite(sprite);
+ }
else
{
+ u8 val;
s16 r3;
+ s16 r0;
- u8 unk = gPokedexView->unk62C + sprite->data1;
- u16 foo = gSineTable[unk];
- //u8 unk2 = sprite->data0;
- //u16 bar = gSineTable[unk + 0x40];
+ val = gPokedexView->unk62C + sprite->data1;
+ r3 = gSineTable[val];
+ r0 = gSineTable[val + 0x40];
+ SetOamMatrix(sprite->data0, r0, r3, -r3, r0);
- SetOamMatrix(sprite->data0, foo, gSineTable[unk + 0x40], (-(u16)foo) >> 16, gSineTable[unk + 0x40]);
-
- r3 = gSineTable[sprite->data1 + gPokedexView->unk62C];
- sprite->pos2.x = gSineTable[sprite->data1 + gPokedexView->unk62C + 0x40] * 5 / 256;
+ val = gPokedexView->unk62C + (sprite->data1 + 0x40);
+ r3 = gSineTable[val];
+ r0 = gSineTable[val + 0x40];
+ sprite->pos2.x = r0 * 40 / 256;
sprite->pos2.y = r3 * 40 / 256;
}
}
-#else
-__attribute__((naked))
-void sub_808F0B4(struct Sprite *sprite)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- sub sp, 0x4\n\
- adds r6, r0, 0\n\
- ldr r1, _0808F0D8 @ =gPokedexView\n\
- ldr r0, [r1]\n\
- ldr r2, _0808F0DC @ =0x0000064a\n\
- adds r0, r2\n\
- ldrb r0, [r0]\n\
- adds r7, r1, 0\n\
- cmp r0, 0\n\
- beq _0808F0E0\n\
- cmp r0, 0x3\n\
- beq _0808F0E0\n\
- adds r0, r6, 0\n\
- bl DestroySprite\n\
- b _0808F158\n\
- .align 2, 0\n\
-_0808F0D8: .4byte gPokedexView\n\
-_0808F0DC: .4byte 0x0000064a\n\
-_0808F0E0:\n\
- ldr r0, [r7]\n\
- ldr r5, _0808F160 @ =0x0000062c\n\
- adds r0, r5\n\
- ldrb r1, [r0]\n\
- ldrh r0, [r6, 0x30]\n\
- adds r1, r0\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- ldr r4, _0808F164 @ =gSineTable\n\
- lsls r0, r1, 1\n\
- adds r0, r4\n\
- ldrh r3, [r0]\n\
- adds r1, 0x40\n\
- lsls r1, 1\n\
- adds r1, r4\n\
- ldrh r0, [r6, 0x2E]\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- ldrh r1, [r1]\n\
- lsls r3, 16\n\
- lsrs r2, r3, 16\n\
- negs r3, r3\n\
- lsrs r3, 16\n\
- str r1, [sp]\n\
- bl SetOamMatrix\n\
- ldr r1, [r7]\n\
- adds r1, r5\n\
- ldrh r0, [r6, 0x30]\n\
- adds r0, 0x40\n\
- ldrb r1, [r1]\n\
- adds r0, r1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- lsls r1, r0, 1\n\
- adds r1, r4\n\
- ldrh r3, [r1]\n\
- adds r0, 0x40\n\
- lsls r0, 1\n\
- adds r0, r4\n\
- movs r2, 0\n\
- ldrsh r1, [r0, r2]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r0, 3\n\
- cmp r0, 0\n\
- bge _0808F140\n\
- adds r0, 0xFF\n\
-_0808F140:\n\
- asrs r0, 8\n\
- strh r0, [r6, 0x24]\n\
- lsls r1, r3, 16\n\
- asrs r1, 16\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r0, 3\n\
- cmp r0, 0\n\
- bge _0808F154\n\
- adds r0, 0xFF\n\
-_0808F154:\n\
- asrs r0, 8\n\
- strh r0, [r6, 0x26]\n\
-_0808F158:\n\
- add sp, 0x4\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0808F160: .4byte 0x0000062c\n\
-_0808F164: .4byte gSineTable\n\
- .syntax divided\n");
-}
-#endif
-void sub_808F168(struct Sprite *sprite)
+static void sub_808F168(struct Sprite *sprite)
{
if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
+ {
DestroySprite(sprite);
+ }
else
{
- u16 r1 = gPokedexView->unk64A == 0 ? 0x50 : 0x60;
+ u16 r1 = gPokedexView->unk64A == 0 ? 80 : 96;
if (gPokedexView->menuIsOpen != 0 && gPokedexView->menuY == r1)
{
- sprite->invisible = 0;
+ sprite->invisible = FALSE;
sprite->pos2.y = gPokedexView->menuCursorPos * 16;
sprite->pos2.x = gSineTable[(u8)sprite->data2] / 64;
sprite->data2 += 8;
}
else
- sprite->invisible = 1;
+ {
+ sprite->invisible = TRUE;
+ }
}
}
-u8 sub_808F210(struct PokedexListItem *item, u8 b)
+static u8 sub_808F210(struct PokedexListItem *item, u8 b)
{
u8 taskId;
@@ -2178,15 +2888,15 @@ u8 sub_808F210(struct PokedexListItem *item, u8 b)
return taskId;
}
-bool8 sub_808F250(u8 taskId)
+static bool8 sub_808F250(u8 taskId)
{
if (gTasks[taskId].data[0] == 0 && gTasks[taskId].func == Task_PageScreenProcessInput)
- return 0;
+ return FALSE;
else
- return 1;
+ return TRUE;
}
-u8 sub_808F284(struct PokedexListItem *item, u8 b)
+static u8 sub_808F284(struct PokedexListItem *item, u8 b)
{
gUnknown_0202FFBC = item;
gTasks[b].data[0] = 1;
@@ -2196,7 +2906,7 @@ u8 sub_808F284(struct PokedexListItem *item, u8 b)
return b;
}
-void Task_InitPageScreenMultistep(u8 taskId)
+static void Task_InitPageScreenMultistep(u8 taskId)
{
switch (gMain.state)
{
@@ -2207,7 +2917,7 @@ void Task_InitPageScreenMultistep(u8 taskId)
u16 r2;
gPokedexView->unk64A = 1;
- gPokedexView->unk64E = 0;
+ gPokedexView->descriptionPageNum = 0;
gUnknown_03005CEC = gMain.vblankCallback;
SetVBlankCallback(NULL);
r2 = 0;
@@ -2241,7 +2951,6 @@ void Task_InitPageScreenMultistep(u8 taskId)
sub_8091154(NationalToHoennOrder(gUnknown_0202FFBC->dexNum), 0xD, 3);
else
sub_8091154(gUnknown_0202FFBC->dexNum, 0xD, 3);
- //_0808F45A
sub_80911C8(gUnknown_0202FFBC->dexNum, 0x10, 3);
MenuPrint(gDexText_UnknownPoke, 11, 5);
MenuPrint(gDexText_UnknownHeight, 16, 7);
@@ -2254,7 +2963,6 @@ void Task_InitPageScreenMultistep(u8 taskId)
MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13);
sub_80917CC(14, 0x3FC);
}
- //_0808F50C
else
{
MenuPrint(gUnknown_083A05F8, 2, 13);
@@ -2265,27 +2973,24 @@ void Task_InitPageScreenMultistep(u8 taskId)
case 5:
if (gTasks[taskId].data[1] == 0)
{
- //_0808F540
gTasks[taskId].data[4] = (u16)sub_80918EC(gUnknown_0202FFBC->dexNum, 0x30, 0x38, 0);
gSprites[gTasks[taskId].data[4]].oam.priority = 0;
}
gMain.state++;
break;
case 6:
- {
- u32 r3 = 0;
-
- if (gTasks[taskId].data[2] != 0)
- r3 = 0x14;
- if (gTasks[taskId].data[1] != 0)
{
- r3 |= (1 << (gSprites[gTasks[taskId].data[4]].oam.paletteNum + 0x10));
+ u32 r3 = 0;
+
+ if (gTasks[taskId].data[2] != 0)
+ r3 = 0x14;
+ if (gTasks[taskId].data[1] != 0)
+ r3 |= (1 << (gSprites[gTasks[taskId].data[4]].oam.paletteNum + 16));
+ BeginNormalPaletteFade(~r3, 0, 16, 0, 0);
+ SetVBlankCallback(gUnknown_03005CEC);
+ gMain.state++;
}
- BeginNormalPaletteFade(~r3, 0, 0x10, 0, 0);
- SetVBlankCallback(gUnknown_03005CEC);
- gMain.state++;
break;
- }
case 7:
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
@@ -2305,7 +3010,9 @@ void Task_InitPageScreenMultistep(u8 taskId)
PlayCry2(NationalPokedexNumToSpecies(gUnknown_0202FFBC->dexNum), 0, 0x7D, 0xA);
}
else
+ {
gMain.state++;
+ }
}
break;
case 9:
@@ -2323,21 +3030,23 @@ void Task_InitPageScreenMultistep(u8 taskId)
}
}
-void Task_PageScreenProcessInput(u8 taskId)
+static void Task_PageScreenProcessInput(u8 taskId)
{
if (gTasks[taskId].data[0] != 0)
{
- BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gTasks[taskId].func = sub_808F888;
PlaySE(SE_Z_SCROLL);
+ return;
}
- else if (gMain.newKeys & B_BUTTON)
+ if (gMain.newKeys & B_BUTTON)
{
- BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gTasks[taskId].func = Task_ClosePageScreen;
PlaySE(SE_PC_OFF);
+ return;
}
- else if (gMain.newKeys & A_BUTTON)
+ if (gMain.newKeys & A_BUTTON)
{
switch (gPokedexView->selectedScreen)
{
@@ -2356,7 +3065,9 @@ void Task_PageScreenProcessInput(u8 taskId)
break;
case SIZE_SCREEN:
if (!gUnknown_0202FFBC->owned)
+ {
PlaySE(SE_HAZURE);
+ }
else
{
BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
@@ -2365,38 +3076,41 @@ void Task_PageScreenProcessInput(u8 taskId)
}
break;
}
+ return;
}
- else if (((gMain.newKeys & DPAD_LEFT)
+ if (((gMain.newKeys & DPAD_LEFT)
|| ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
&& gPokedexView->selectedScreen > 0)
{
gPokedexView->selectedScreen--;
sub_8090584(gPokedexView->selectedScreen, 0xD);
PlaySE(SE_Z_PAGE);
+ return;
}
- else if (((gMain.newKeys & DPAD_RIGHT)
+ if (((gMain.newKeys & DPAD_RIGHT)
|| ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
&& gPokedexView->selectedScreen < 3)
{
gPokedexView->selectedScreen++;
sub_8090584(gPokedexView->selectedScreen, 0xD);
PlaySE(SE_Z_PAGE);
+ return;
}
}
-void sub_808F888(u8 taskId)
+static void sub_808F888(u8 taskId)
{
if (!gPaletteFade.active)
gTasks[taskId].func = Task_InitPageScreenMultistep;
}
-void Task_ClosePageScreen(u8 taskId)
+static void Task_ClosePageScreen(u8 taskId)
{
if (!gPaletteFade.active)
DestroyTask(taskId);
}
-void Task_InitAreaScreenMultistep(u8 taskId)
+static void Task_InitAreaScreenMultistep(u8 taskId)
{
switch (gMain.state)
{
@@ -2429,13 +3143,13 @@ void Task_InitAreaScreenMultistep(u8 taskId)
}
}
-void Task_AreaScreenProcessInput(u8 taskId)
+static void Task_AreaScreenProcessInput(u8 taskId)
{
if (gPokedexView->unk64F != 0)
gTasks[taskId].func = sub_808FA00;
}
-void sub_808FA00(u8 taskId)
+static void sub_808FA00(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -2452,7 +3166,7 @@ void sub_808FA00(u8 taskId)
}
}
-void Task_InitCryScreenMultistep(u8 taskId)
+static void Task_InitCryScreenMultistep(u8 taskId)
{
switch (gMain.state)
{
@@ -2499,36 +3213,34 @@ void Task_InitCryScreenMultistep(u8 taskId)
gMain.state++;
break;
case 6:
- {
- struct CryRelatedStruct sp8;
-
- sp8.unk0 = 0x4020;
- sp8.unk2 = 0x1F;
- sp8.paletteNo = 8;
- sp8.yPos = 0x1E;
- sp8.xPos = 0xC;
- if (sub_8119E3C(&sp8, 0) != 0)
{
- gMain.state++;
- gUnknown_03005E98 = 0;
+ struct CryRelatedStruct sp8;
+
+ sp8.unk0 = 0x4020;
+ sp8.unk2 = 0x1F;
+ sp8.paletteNo = 8;
+ sp8.yPos = 0x1E;
+ sp8.xPos = 0xC;
+ if (sub_8119E3C(&sp8, 0) != 0)
+ {
+ gMain.state++;
+ gUnknown_03005E98 = 0;
+ }
}
break;
- }
case 7:
- {
- struct CryRelatedStruct sp10;
-
- sp10.unk0 = 0x3000;
- sp10.unk2 = 0xE;
- sp10.paletteNo = 9;
- sp10.xPos = 0x12;
- sp10.yPos = 3;
- if (ShowPokedexCryScreen(&sp10, 1) != 0)
{
- gMain.state++;
+ struct CryRelatedStruct sp10;
+
+ sp10.unk0 = 0x3000;
+ sp10.unk2 = 0xE;
+ sp10.paletteNo = 9;
+ sp10.xPos = 0x12;
+ sp10.yPos = 3;
+ if (ShowPokedexCryScreen(&sp10, 1) != 0)
+ gMain.state++;
}
break;
- }
case 8:
BeginNormalPaletteFade(-0x15, 0, 0x10, 0, 0);
SetVBlankCallback(gUnknown_03005CEC);
@@ -2552,7 +3264,7 @@ void Task_InitCryScreenMultistep(u8 taskId)
}
}
-void Task_CryScreenProcessInput(u8 taskId)
+static void Task_CryScreenProcessInput(u8 taskId)
{
sub_8119F88(0);
@@ -2576,8 +3288,9 @@ void Task_CryScreenProcessInput(u8 taskId)
gPokedexView->unk64F = 1;
gTasks[taskId].func = sub_808FFBC;
PlaySE(SE_PC_OFF);
+ return;
}
- else if ((gMain.newKeys & DPAD_LEFT)
+ if ((gMain.newKeys & DPAD_LEFT)
|| ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
{
BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
@@ -2585,12 +3298,15 @@ void Task_CryScreenProcessInput(u8 taskId)
gPokedexView->unk64F = 2;
gTasks[taskId].func = sub_808FFBC;
PlaySE(SE_Z_PAGE);
+ return;
}
- else if ((gMain.newKeys & DPAD_RIGHT)
+ if ((gMain.newKeys & DPAD_RIGHT)
|| ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
{
if (!gUnknown_0202FFBC->owned)
+ {
PlaySE(SE_HAZURE);
+ }
else
{
BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
@@ -2599,11 +3315,12 @@ void Task_CryScreenProcessInput(u8 taskId)
gTasks[taskId].func = sub_808FFBC;
PlaySE(SE_Z_PAGE);
}
+ return;
}
}
}
-void sub_808FFBC(u8 taskId)
+static void sub_808FFBC(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -2619,11 +3336,12 @@ void sub_808FFBC(u8 taskId)
break;
case 3:
gTasks[taskId].func = Task_InitSizeScreenMultistep;
+ break;
}
}
}
-void sub_8090040(u8 a)
+static void sub_8090040(u8 a)
{
u16 unk;
@@ -2634,7 +3352,7 @@ void sub_8090040(u8 a)
LoadPalette(&unk, 0x5D, 2);
}
-void Task_InitSizeScreenMultistep(u8 taskId)
+static void Task_InitSizeScreenMultistep(u8 taskId)
{
u8 spriteId;
@@ -2664,40 +3382,40 @@ void Task_InitSizeScreenMultistep(u8 taskId)
gMain.state++;
break;
case 3:
- {
- u8 string[40]; //I hope this is the correct size
-
- SetUpWindowConfig(&gWindowConfig_81E702C);
- InitMenuWindow(&gWindowConfig_81E702C);
- string[0] = EOS;
- StringAppend(string, gDexText_SizeComparedTo);
- StringAppend(string, gSaveBlock2.playerName);
- sub_8072BD8(string, 3, 15, 0xC0);
- gMain.state++;
+ {
+ u8 string[40]; //I hope this is the correct size
+
+ SetUpWindowConfig(&gWindowConfig_81E702C);
+ InitMenuWindow(&gWindowConfig_81E702C);
+ string[0] = EOS;
+ StringAppend(string, gDexText_SizeComparedTo);
+ StringAppend(string, gSaveBlock2.playerName);
+ sub_8072BD8(string, 3, 15, 0xC0);
+ gMain.state++;
+ }
break;
- }
case 4:
ResetPaletteFade();
gMain.state++;
break;
case 5:
- spriteId = sub_8091A4C(gSaveBlock2.playerGender, 0x98, 0x38, 0);
+ spriteId = sub_8091A4C(gSaveBlock2.playerGender, 152, 56, 0);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.matrixNum = 1;
gSprites[spriteId].oam.priority = 0;
gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerOffset;
SetOamMatrix(1, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale);
- LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20);
+ LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, sizeof(gUnknown_083B4EC4));
gMain.state++;
break;
case 6:
- spriteId = sub_80918EC(gUnknown_0202FFBC->dexNum, 0x58, 0x38, 1);
+ spriteId = sub_80918EC(gUnknown_0202FFBC->dexNum, 88, 56, 1);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.matrixNum = 2;
gSprites[spriteId].oam.priority = 0;
gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonOffset;
SetOamMatrix(2, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale);
- LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20);
+ LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, sizeof(gUnknown_083B4EC4));
gMain.state++;
break;
case 7:
@@ -2724,7 +3442,7 @@ void Task_InitSizeScreenMultistep(u8 taskId)
}
}
-void Task_SizeScreenProcessInput(u8 taskId)
+static void Task_SizeScreenProcessInput(u8 taskId)
{
if (gMain.newKeys & B_BUTTON)
{
@@ -2733,7 +3451,6 @@ void Task_SizeScreenProcessInput(u8 taskId)
gTasks[taskId].func = sub_8090498;
PlaySE(SE_PC_OFF);
}
- //_08090430
else if ((gMain.newKeys & DPAD_LEFT)
|| ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
{
@@ -2744,7 +3461,7 @@ void Task_SizeScreenProcessInput(u8 taskId)
}
}
-void sub_8090498(u8 taskId)
+static void sub_8090498(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -2761,20 +3478,20 @@ void sub_8090498(u8 taskId)
}
}
-void sub_80904FC(u16 a)
+static void sub_80904FC(u16 a)
{
LZ77UnCompVram(gUnknown_08E96ACC, (void *)(VRAM + a * 0x800));
DmaClear16(3, (void *)(VRAM + a * 0x800 + 0xC0), 0x440);
}
-void sub_8090540(u16 a)
+static void sub_8090540(u16 a)
{
LZ77UnCompVram(gUnknown_08E96B58, (void *)(VRAM + a * 0x800));
DmaClear16(3, (void *)(VRAM + a * 0x800 + 0xC0), 0x440);
}
#ifdef NONMATCHING
-void sub_8090584(u8 a, u16 b)
+static void sub_8090584(u8 a, u16 b)
{
u8 i; //r1
u8 j; //r3
@@ -2814,7 +3531,7 @@ void sub_8090584(u8 a, u16 b)
}
#else
__attribute__((naked))
-void sub_8090584(u8 a, u16 b)
+static void sub_8090584(u8 a, u16 b)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -2920,7 +3637,7 @@ _08090640: .4byte 0x06000072\n\
//Nope, can't get this one to match, either.
#ifdef NONMATCHING
-void sub_8090644(u8 a, u16 b)
+static void sub_8090644(u8 a, u16 b)
{
u8 i;
u8 j;
@@ -2958,7 +3675,7 @@ void sub_8090644(u8 a, u16 b)
}
#else
__attribute__((naked))
-void sub_8090644(u8 a, u16 b)
+static void sub_8090644(u8 a, u16 b)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -3081,15 +3798,16 @@ u8 sub_809070C(u16 dexNum, u32 b, u32 c)
return taskId;
}
-/*
-void sub_8090750(u8 taskId)
+static void sub_8090750(u8 taskId)
{
+ u8 spriteId;
u16 dexNum = gTasks[taskId].data[1];
+ u16 i;
switch (gTasks[taskId].data[0])
{
- default:
case 0:
+ default:
if (!gPaletteFade.active)
{
gUnknown_03005CEC = gMain.vblankCallback;
@@ -3099,19 +3817,20 @@ void sub_8090750(u8 taskId)
}
break;
case 1:
- {
- u16 i;
-
LZ77UnCompVram(gPokedexMenu_Gfx, (void *)(VRAM + 0x4000));
LZ77UnCompVram(gUnknown_08E96BD4, (void *)(VRAM + 0x7800));
for (i = 0; i < 0x280; i++)
- ((u16 *)(VRAM + 0x7800))[i] += 0x2000;
+ {
+#ifndef NONMATCHING
+ asm("");
+#endif
+ *(u16 *)(VRAM + 0x7800 + 2 * i) += 0x2000;
+ }
sub_8091738(gTasks[taskId].data[1], 2, 0x3FC);
ResetPaletteFade();
- LoadPalette(gPokedexMenu_Pal + 2, 0x21, 0x9E);
+ LoadPalette(gPokedexMenu_Pal + 1, 0x21, 0x9E);
gTasks[taskId].data[0]++;
break;
- }
case 2:
SetUpWindowConfig(&gWindowConfig_81E7064);
InitMenuWindow(&gWindowConfig_81E7064);
@@ -3128,7 +3847,7 @@ void sub_8090750(u8 taskId)
MenuPrint(gDexText_UnknownPoke, 11, 5);
MenuPrint(gDexText_UnknownHeight, 16, 7);
MenuPrint(gDexText_UnknownWeight, 16, 9);
- sub_8091304(&gPokedexEntries[dexNum], 11, 5);
+ sub_8091304(gPokedexEntries[dexNum].categoryName, 11, 5);
sub_8091458(gPokedexEntries[dexNum].height, 16, 7);
sub_8091564(gPokedexEntries[dexNum].weight, 16, 9);
MenuPrint(gPokedexEntries[dexNum].descriptionPage1, 2, 13);
@@ -3136,16 +3855,13 @@ void sub_8090750(u8 taskId)
gTasks[taskId].data[0]++;
break;
case 4:
- {
- u8 spriteId = sub_80918EC(dexNum, 0x30, 0x38, 0);
-
+ spriteId = sub_80918EC(dexNum, 0x30, 0x38, 0);
gSprites[spriteId].oam.priority = 0;
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
SetVBlankCallback(gUnknown_03005CEC);
gTasks[taskId].data[3] = spriteId;
gTasks[taskId].data[0]++;
break;
- }
case 5:
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
@@ -3165,4 +3881,1586 @@ void sub_8090750(u8 taskId)
break;
}
}
-*/
+
+static void sub_8090A3C(u8 taskId)
+{
+ if (gMain.newKeys & B_BUTTON)
+ {
+ BeginNormalPaletteFade(0x0000FFFC, 0, 0, 16, 0);
+ gSprites[gTasks[taskId].data[3]].callback = sub_8090C28;
+ gTasks[taskId].func = sub_8090B8C;
+ return;
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ if (gTasks[taskId].data[4] == 0)
+ {
+ u16 r4 = gTasks[taskId].data[1];
+
+ MenuZeroFillWindowRect(2, 13, 27, 19);
+ MenuPrint(gPokedexEntries[r4].descriptionPage2, 2, 13);
+ (*(u16 *)(VRAM + 0x7ACA))++;
+ (*(u16 *)(VRAM + 0x7B0A))++;
+ gTasks[taskId].data[4] = 1;
+ PlaySE(SE_PIN);
+ }
+ else
+ {
+ BeginNormalPaletteFade(0x0000FFFC, 0, 0, 16, 0);
+ gSprites[gTasks[taskId].data[3]].callback = sub_8090C28;
+ gTasks[taskId].func = sub_8090B8C;
+ return;
+ }
+ }
+ gTasks[taskId].data[2]++;
+ if (gTasks[taskId].data[2] & 0x10)
+ LoadPalette(gPokedexMenu_Pal + 1, 0x51, 14);
+ else
+ LoadPalette(gPokedexMenu2_Pal + 1, 0x51, 14);
+}
+
+static void sub_8090B8C(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ u16 species;
+ u32 otId;
+ u32 personality;
+ u8 paletteNum;
+ const u16 *palette;
+
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
+ CpuCopy16(gUnknown_08D00524, (void *)(VRAM + 0xC000), 0x1000);
+ sub_800D74C();
+ species = NationalPokedexNumToSpecies(gTasks[taskId].data[1]);
+ otId = ((u16)gTasks[taskId].data[13] << 16) | (u16)gTasks[taskId].data[12];
+ personality = ((u16)gTasks[taskId].data[15] << 16) | (u16)gTasks[taskId].data[14];
+ paletteNum = gSprites[gTasks[taskId].data[3]].oam.paletteNum;
+ palette = species_and_otid_get_pal(species, otId, personality);
+ LoadCompressedPalette(palette, 0x100 | paletteNum * 16, 32);
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_8090C28(struct Sprite *sprite)
+{
+ if (sprite->pos1.x < 0x78)
+ sprite->pos1.x += 2;
+ if (sprite->pos1.x > 0x78)
+ sprite->pos1.x -= 2;
+
+ if (sprite->pos1.y < 0x50)
+ sprite->pos1.y += 1;
+ if (sprite->pos1.y > 0x50)
+ sprite->pos1.y -= 1;
+}
+
+static void sub_8090C68(void)
+{
+ if (gUnknown_0202FFBC->owned)
+ {
+ if (gPokedexView->descriptionPageNum == 0)
+ {
+ MenuZeroFillWindowRect(2, 13, 27, 19);
+ MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage2, 2, 13);
+ gPokedexView->descriptionPageNum = 1;
+ (*(u16 *)(VRAM + 0x7ACA))++;
+ (*(u16 *)(VRAM + 0x7B0A))++;
+ PlaySE(SE_PIN);
+ }
+ else
+ {
+ MenuZeroFillWindowRect(2, 13, 27, 19);
+ MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13);
+ gPokedexView->descriptionPageNum = 0;
+ (*(u16 *)(VRAM + 0x7ACA))--;
+ (*(u16 *)(VRAM + 0x7B0A))--;
+ PlaySE(SE_PIN);
+ }
+ }
+}
+
+const u8 *GetPokemonCategory(u16 dexNum)
+{
+ return gPokedexEntries[dexNum].categoryName;
+}
+
+u16 GetPokedexHeightWeight(u16 dexNum, u8 data)
+{
+ switch (data)
+ {
+ case 0: // height
+ return gPokedexEntries[dexNum].height;
+ case 1: // weight
+ return gPokedexEntries[dexNum].weight;
+ default:
+ return 1;
+ }
+}
+
+s8 GetNationalPokedexFlag(u16 a, u8 b)
+{
+ u8 index;
+ u8 bit;
+ u8 mask;
+ s8 retVal;
+
+ a--;
+ index = a / 8;
+ bit = a % 8;
+ mask = 1 << bit;
+ retVal = 0;
+ switch (b)
+ {
+ case 0:
+ if (gSaveBlock2.pokedex.seen[index] & mask)
+ {
+ if ((gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.unk938[index] & mask)
+ && (gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.unk3A8C[index] & mask))
+ retVal = 1;
+ else
+ {
+ gSaveBlock2.pokedex.seen[index] &= ~mask;
+ gSaveBlock1.unk938[index] &= ~mask;
+ gSaveBlock1.unk3A8C[index] &= ~mask;
+ retVal = 0;
+ }
+ }
+ break;
+ case 1:
+ if (gSaveBlock2.pokedex.owned[index] & mask)
+ {
+ if ((gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock2.pokedex.seen[index] & mask)
+ && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.unk938[index] & mask)
+ && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.unk3A8C[index] & mask))
+ retVal = 1;
+ else
+ {
+ gSaveBlock2.pokedex.owned[index] &= ~mask;
+ gSaveBlock2.pokedex.seen[index] &= ~mask;
+ gSaveBlock1.unk938[index] &= ~mask;
+ gSaveBlock1.unk3A8C[index] &= ~mask;
+ retVal = 0;
+ }
+ }
+ break;
+ case 2:
+ gSaveBlock2.pokedex.seen[index] |= mask;
+ gSaveBlock1.unk938[index] |= mask;
+ gSaveBlock1.unk3A8C[index] |= mask;
+ break;
+ case 3:
+ gSaveBlock2.pokedex.owned[index] |= mask;
+ break;
+ }
+ return retVal;
+}
+
+u16 GetNationalPokedexCount(u8 a)
+{
+ u16 count = 0;
+ u16 i;
+
+ for (i = 0; i < NATIONAL_DEX_COUNT; i++)
+ {
+ switch (a)
+ {
+ case 0:
+ if (GetNationalPokedexFlag(i + 1, 0) != 0)
+ count++;
+ break;
+ case 1:
+ if (GetNationalPokedexFlag(i + 1, 1) != 0)
+ count++;
+ break;
+ }
+ }
+ return count;
+}
+
+u16 GetHoennPokedexCount(u8 a)
+{
+ u16 count = 0;
+ u16 i;
+
+ for (i = 0; i < 202; i++)
+ {
+ switch (a)
+ {
+ case 0:
+ if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 0) != 0)
+ count++;
+ break;
+ case 1:
+ if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 1) != 0)
+ count++;
+ break;
+ }
+ }
+ return count;
+}
+
+bool8 sub_8090FC0(void)
+{
+ u16 i;
+
+ for (i = 0; i < 200; i++)
+ {
+ if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 1) == 0)
+ return FALSE;
+ }
+ return TRUE;
+}
+
+u16 sub_8090FF4(void)
+{
+ u16 i;
+
+ for (i = 0; i < 150; i++)
+ {
+ if (GetNationalPokedexFlag(i + 1, 1) == 0)
+ return 0;
+ }
+ for (i = 152; i < 250; i++)
+ {
+ if (GetNationalPokedexFlag(i + 1, 1) == 0)
+ return 0;
+ }
+ for (i = 252; i < 384; i++)
+ {
+ if (GetNationalPokedexFlag(i + 1, 1) == 0)
+ return 0;
+ }
+ return 1;
+}
+
+static void sub_8091060(u16 a)
+{
+ if (!(a & 0x100))
+ {
+ REG_DISPCNT &= 0xFEFF;
+ REG_BG0CNT = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ }
+ if (!(a & 0x200))
+ {
+ REG_DISPCNT &= 0xFDFF;
+ REG_BG1CNT = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ }
+ if (!(a & 0x400))
+ {
+ REG_DISPCNT &= 0xFBFF;
+ REG_BG2CNT = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ }
+ if (!(a & 0x800))
+ {
+ REG_DISPCNT &= 0xF7FF;
+ REG_BG3CNT = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ }
+ if (!(a & 0x1000))
+ {
+ REG_DISPCNT &= 0xEFFF;
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 8;
+ }
+}
+
+static void sub_8091154(u16 order, u8 b, u8 c)
+{
+ u8 str[4];
+
+ str[0] = CHAR_0 + order / 100;
+ str[1] = CHAR_0 + (order % 100) / 10;
+ str[2] = CHAR_0 + (order % 100) % 10;
+ str[3] = EOS;
+ MenuPrint(str, b, c);
+}
+
+static u8 sub_80911C8(u16 num, u8 b, u8 c)
+{
+ u8 str[11];
+ u8 i;
+
+ for (i = 0; i < 11; i++)
+ str[i] = EOS;
+ num = NationalPokedexNumToSpecies(num);
+ switch (num)
+ {
+ default:
+ for (i = 0; gSpeciesNames[num][i] != EOS && i < 10; i++)
+ str[i] = gSpeciesNames[num][i];
+ break;
+ case 0:
+ for (i = 0; i < 10; i++)
+ str[i] = 0xAE;
+ break;
+ }
+ MenuPrint(str, b, c);
+ return i;
+}
+
+static u8 sub_8091260(u16 num, u8 b, u8 c, u8 d)
+{
+ u8 str[40];
+ u8 *end;
+ u8 i;
+
+ end = StringCopy(str, gUnknown_083B5558);
+ str[2] = d;
+ num = NationalPokedexNumToSpecies(num);
+ switch (num)
+ {
+ default:
+ for (i = 0; gSpeciesNames[num][i] != EOS && i < 10; i++)
+ end[i] = gSpeciesNames[num][i];
+ break;
+ case 0:
+ for (i = 0; i < 10; i++)
+ end[i] = 0xAE;
+ break;
+ }
+ end[i] = EOS;
+ MenuPrint(str, b, c);
+ return i;
+}
+
+static void sub_8091304(const u8 *name, u8 left, u8 top)
+{
+ u8 str[32];
+ u8 i;
+#if ENGLISH
+ u8 j;
+#endif
+
+ for (i = 0; name[i] != EOS && i < 11; i++)
+ str[i] = name[i];
+#if ENGLISH
+ for (j = 0; gDexText_UnknownPoke[j] == 0xAC || gDexText_UnknownPoke[j] == 0; j++)
+ ;
+ j--;
+ while (gDexText_UnknownPoke[j] != EOS)
+ str[i++] = gDexText_UnknownPoke[j++];
+#endif
+ str[i] = EOS;
+ sub_8072B80(str, left, top, gDexText_UnknownPoke);
+}
+
+void unref_sub_80913A4(u16 a, u8 left, u8 top)
+{
+ u8 str[6];
+ bool8 outputted = FALSE;
+ u8 result;
+
+ result = a / 1000;
+ if (result == 0)
+ {
+ str[0] = CHAR_SPACE;
+ outputted = FALSE;
+ }
+ else
+ {
+ str[0] = CHAR_0 + result;
+ outputted = TRUE;
+ }
+
+ result = (a % 1000) / 100;
+ if (result == 0 && !outputted)
+ {
+ str[1] = CHAR_SPACE;
+ outputted = FALSE;
+ }
+ else
+ {
+ str[1] = CHAR_0 + result;
+ outputted = TRUE;
+ }
+
+ str[2] = CHAR_0 + ((a % 1000) % 100) / 10;
+ str[3] = CHAR_PERIOD;
+ str[4] = CHAR_0 + ((a % 1000) % 100) % 10;
+ str[5] = EOS;
+ MenuPrint(str, left, top);
+}
+
+#ifdef UNITS_IMPERIAL
+#define CHAR_PRIME (0xB4)
+#define CHAR_DOUBLE_PRIME (0xB2)
+static void sub_8091458(u16 height, u8 left, u8 top)
+{
+ u8 buffer[16];
+ u32 inches, feet;
+ u8 i = 0;
+
+ inches = (height * 10000) / 254;
+ if (inches % 10 >= 5)
+ inches += 10;
+ feet = inches / 120;
+ inches = (inches - (feet * 120)) / 10;
+
+ buffer[i++] = EXT_CTRL_CODE_BEGIN;
+ buffer[i++] = 0x13;
+ if (feet / 10 == 0)
+ {
+ buffer[i++] = 18;
+ buffer[i++] = feet + CHAR_0;
+ }
+ else
+ {
+ buffer[i++] = 12;
+ buffer[i++] = feet / 10 + CHAR_0;
+ buffer[i++] = (feet % 10) + CHAR_0;
+ }
+ buffer[i++] = CHAR_PRIME;
+ buffer[i++] = (inches / 10) + CHAR_0;
+ buffer[i++] = (inches % 10) + CHAR_0;
+ buffer[i++] = CHAR_DOUBLE_PRIME;
+ buffer[i++] = EOS;
+ MenuPrint(buffer, left, top);
+}
+#else
+static void sub_8091458(u16 height, u8 left, u8 top)
+{
+ unref_sub_80913A4(height, left, top);
+}
+#endif
+
+#ifdef UNITS_IMPERIAL
+static void sub_8091564(u16 weight, u8 left, u8 top)
+{
+ u8 buffer[16];
+ u32 lbs;
+ u8 i = 0;
+ bool8 output;
+
+ lbs = (weight * 100000) / 4536;
+ if (lbs % 10 >= 5)
+ lbs += 10;
+ output = FALSE;
+
+ buffer[i] = (lbs / 100000) + CHAR_0;
+ if (buffer[i] == CHAR_0 && output == FALSE)
+ {
+ buffer[i++] = CHAR_SPACE;
+ buffer[i++] = CHAR_SPACE;
+ }
+ else
+ {
+ output = TRUE;
+ i++;
+ }
+
+ lbs = (lbs % 100000);
+ buffer[i] = (lbs / 10000) + CHAR_0;
+ if (buffer[i] == CHAR_0 && output == FALSE)
+ {
+ buffer[i++] = CHAR_SPACE;
+ buffer[i++] = CHAR_SPACE;
+ }
+ else
+ {
+ output = TRUE;
+ i++;
+ }
+
+ lbs = (lbs % 10000);
+ buffer[i] = (lbs / 1000) + CHAR_0;
+ if (buffer[i] == CHAR_0 && output == FALSE)
+ {
+ buffer[i++] = CHAR_SPACE;
+ buffer[i++] = CHAR_SPACE;
+ }
+ else
+ {
+ output = TRUE;
+ i++;
+ }
+ lbs = (lbs % 1000);
+ buffer[i++] = (lbs / 100) + CHAR_0;
+ lbs = (lbs % 100);
+ buffer[i++] = CHAR_PERIOD;
+ buffer[i++] = (lbs / 10) + CHAR_0;
+ buffer[i++] = CHAR_SPACE;
+ buffer[i++] = CHAR_l;
+ buffer[i++] = CHAR_b;
+ buffer[i++] = CHAR_s;
+ buffer[i++] = CHAR_PERIOD;
+ buffer[i++] = EOS;
+ MenuPrint(buffer, left, top);
+}
+#else
+static void sub_8091564(u16 arg0, u8 left, u8 top)
+{
+ unref_sub_80913A4(arg0, left, top);
+}
+#endif
+
+static void sub_8091738(u16 num, u16 b, u16 c)
+{
+ u8 arr[0x80];
+ u16 i;
+ u16 j;
+ const u8 *r12;
+ u16 r7;
+ u8 r3;
+
+ r12 = sMonFootprintTable[NationalPokedexNumToSpecies(num)];
+ for (r7 = 0, i = 0; i < 32; i++)
+ {
+ r3 = r12[i];
+ for (j = 0; j < 4; j++)
+ {
+ u32 r1 = j * 2;
+ s32 r2 = (r3 >> r1) & 1;
+
+ if (r3 & (2 << r1))
+ r2 |= 0x10;
+
+// Needed to match
+#ifndef NONMATCHING
+ asm("");asm("");asm("");asm("");asm("");
+#endif
+
+ arr[r7] = r2;
+ r7++;
+ }
+ }
+ CpuCopy16(arr, (u16 *)(VRAM + b * 0x4000 + c * 0x20), 0x80);
+}
+
+static void sub_80917CC(u16 a, u16 b)
+{
+ *(u16 *)(VRAM + a * 0x800 + 0x232) = 0xF000 + b + 0;
+ *(u16 *)(VRAM + a * 0x800 + 0x234) = 0xF000 + b + 1;
+ *(u16 *)(VRAM + a * 0x800 + 0x272) = 0xF000 + b + 2;
+ *(u16 *)(VRAM + a * 0x800 + 0x274) = 0xF000 + b + 3;
+}
+
+static u16 sub_8091818(u8 a, u16 b, u16 c, u16 d)
+{
+ switch (a)
+ {
+ case 1:
+ if (b > c)
+ b--;
+ break;
+ case 0:
+ if (b < d)
+ b++;
+ break;
+ case 3:
+ if (b > c)
+ b--;
+ else
+ b = d;
+ break;
+ case 2:
+ if (b < d)
+ b++;
+ else
+ b = c;
+ break;
+ }
+ return b;
+}
+
+static void nullsub_59(struct Sprite *sprite)
+{
+}
+
+static void sub_8091878(u16 a, u8 b)
+{
+ gUnknown_02024E8C = gUnknown_083B57A4;
+ gUnknown_02024E8C.paletteTag = a;
+ gUnknown_02024E8C.images = gUnknown_083B5794[b];
+ gUnknown_02024E8C.anims = gSpriteAnimTable_81E7C64;
+}
+
+static void sub_80918B0(u16 a, u8 b)
+{
+ gUnknown_02024E8C = gUnknown_083B57A4;
+ gUnknown_02024E8C.paletteTag = a;
+ gUnknown_02024E8C.images = gUnknown_083B5794[b];
+ gUnknown_02024E8C.anims = gUnknown_081EC2A4[0];
+}
+
+u16 sub_80918EC(u16 num, s16 x, s16 y, u16 paletteNum)
+{
+ u8 spriteId;
+
+ num = NationalPokedexNumToSpecies(num);
+ switch (num)
+ {
+ default:
+ DecompressPicFromTable_2(
+ &gMonFrontPicTable[num],
+ gMonFrontPicCoords[num].coords,
+ gMonFrontPicCoords[num].y_offset,
+ (void *)0x02000000,
+ gUnknown_083B5584[paletteNum],
+ num);
+ break;
+ case SPECIES_SPINDA:
+ LoadSpecialPokePic(
+ &gMonFrontPicTable[num],
+ gMonFrontPicCoords[num].coords,
+ gMonFrontPicCoords[num].y_offset,
+ 0x02000000,
+ gUnknown_083B5584[paletteNum],
+ num,
+ gSaveBlock2.pokedex.spindaPersonality,
+ 1);
+ break;
+ case SPECIES_UNOWN:
+ LoadSpecialPokePic(
+ &gMonFrontPicTable[num],
+ gMonFrontPicCoords[num].coords,
+ gMonFrontPicCoords[num].y_offset,
+ 0x02000000,
+ gUnknown_083B5584[paletteNum],
+ num,
+ gSaveBlock2.pokedex.unownPersonality,
+ 1);
+ break;
+ }
+ LoadCompressedPalette(gMonPaletteTable[num].data, 0x100 + paletteNum * 16, 32);
+ sub_8091878(paletteNum, paletteNum);
+ spriteId = CreateSprite(&gUnknown_02024E8C, x, y, 0);
+ gSprites[spriteId].oam.paletteNum = paletteNum;
+ return spriteId;
+}
+
+static u8 sub_8091A4C(u16 gender, s16 x, s16 y, u16 paletteNum)
+{
+ u8 spriteId;
+
+ DecompressPicFromTable_2(
+ &gTrainerFrontPicTable[gender],
+ gTrainerFrontPicCoords[gender].coords,
+ gTrainerFrontPicCoords[gender].y_offset,
+ (void *)0x02000000,
+ gUnknown_083B5584[0],
+ gender);
+ sub_80918B0(gender, 0);
+ spriteId = CreateSprite(&gUnknown_02024E8C, x, y, 0);
+ gSprites[spriteId].oam.paletteNum = paletteNum;
+ return spriteId;
+}
+
+int sub_8091AF8(u8 a, u8 b, u8 abcGroup, u8 bodyColor, u8 type1, u8 type2)
+{
+ u16 species;
+ u16 i;
+ u16 resultsCount;
+ u8 types[2];
+
+ SortPokedex(a, b);
+
+ for (i = 0, resultsCount = 0; i < NATIONAL_DEX_COUNT; i++)
+ {
+ if (gPokedexView->unk0[i].seen)
+ {
+ gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i];
+ resultsCount++;
+ }
+ }
+ gPokedexView->pokemonListCount = resultsCount;
+
+ // Search by name
+ if (abcGroup != 0xFF)
+ {
+ for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++)
+ {
+ u8 r3;
+
+ species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum);
+ r3 = gSpeciesNames[species][0];
+ if ((r3 >= gUnknown_083B57BC[abcGroup][0] && r3 < gUnknown_083B57BC[abcGroup][0] + gUnknown_083B57BC[abcGroup][1])
+ || (r3 >= gUnknown_083B57BC[abcGroup][2] && r3 < gUnknown_083B57BC[abcGroup][2] + gUnknown_083B57BC[abcGroup][3]))
+ {
+ gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i];
+ resultsCount++;
+ }
+ }
+ gPokedexView->pokemonListCount = resultsCount;
+ }
+
+ // Search by body color
+ if (bodyColor != 0xFF)
+ {
+ for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++)
+ {
+ species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum);
+
+ if (bodyColor == gBaseStats[species].bodyColor)
+ {
+ gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i];
+ resultsCount++;
+ }
+ }
+ gPokedexView->pokemonListCount = resultsCount;
+ }
+
+ // Search by type
+ if (type1 != 0xFF || type2 != 0xFF)
+ {
+ if (type1 == 0xFF)
+ {
+ type1 = type2;
+ type2 = 0xFF;
+ }
+
+ if (type2 == 0xFF)
+ {
+ for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++)
+ {
+ if (gPokedexView->unk0[i].owned)
+ {
+ species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum);
+
+ types[0] = gBaseStats[species].type1;
+ types[1] = gBaseStats[species].type2;
+ if (types[0] == type1 || types[1] == type1)
+ {
+ gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i];
+ resultsCount++;
+ }
+ }
+ }
+ }
+ else
+ {
+ for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++)
+ {
+ if (gPokedexView->unk0[i].owned)
+ {
+ species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum);
+
+ types[0] = gBaseStats[species].type1;
+ types[1] = gBaseStats[species].type2;
+ if ((types[0] == type1 && types[1] == type2) || (types[0] == type2 && types[1] == type1))
+ {
+ gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i];
+ resultsCount++;
+ }
+ }
+ }
+ }
+ gPokedexView->pokemonListCount = resultsCount;
+ }
+
+ if (gPokedexView->pokemonListCount != 0)
+ {
+ for (i = gPokedexView->pokemonListCount; i < NATIONAL_DEX_COUNT; i++)
+ {
+ gPokedexView->unk0[i].dexNum = 0xFFFF;
+ gPokedexView->unk0[i].seen = FALSE;
+ gPokedexView->unk0[i].owned = FALSE;
+
+ }
+ }
+
+ return resultsCount;
+}
+
+void sub_8091E20(const u8 *str)
+{
+ sub_8072AB0(str, 9, 120, 208, 32, 1);
+}
+
+u8 sub_8091E3C(void)
+{
+ return CreateTask(sub_8091E54, 0);
+}
+
+static void sub_8091E54(u8 taskId)
+{
+ u16 i;
+
+ switch (gMain.state)
+ {
+ default:
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ gPokedexView->unk64A = 2;
+ sub_8091060(0);
+ LZ77UnCompVram(gPokedexMenuSearch_Gfx, (void *)VRAM);
+ LZ77UnCompVram(gUnknown_08E96D2C, (void *)(VRAM + 0x7800));
+ LoadPalette(gPokedexMenuSearch_Pal + 1, 1, 0x7E);
+ if (!IsNationalPokedexEnabled())
+ {
+ for (i = 0; i < 17; i++)
+ {
+ ((u16 *)(VRAM + 0x7A80))[i] = ((u16 *)(VRAM + 0x7B00))[i];
+ ((u16 *)(VRAM + 0x7AC0))[i] = ((u16 *)(VRAM + 0x7B40))[i];
+ ((u16 *)(VRAM + 0x7B00))[i] = 1;
+ ((u16 *)(VRAM + 0x7B40))[i] = 1;
+ }
+ }
+ gMain.state = 1;
+ }
+ break;
+ case 1:
+ SetUpWindowConfig(&gWindowConfig_81E7064);
+ InitMenuWindow(&gWindowConfig_81E7064);
+ LoadCompressedObjectPic(&gUnknown_083A05CC[0]);
+ LoadSpritePalettes(gUnknown_083A05DC);
+ sub_809308C(taskId);
+ for (i = 0; i < 16; i++)
+ gTasks[taskId].data[i] = 0;
+ sub_8092EB0(taskId);
+ sub_8092AB0(0);
+ sub_8092B68(taskId);
+ gMain.state++;
+ break;
+ case 2:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ gMain.state++;
+ break;
+ case 3:
+ REG_BG3CNT = 0x0F03;
+ REG_DISPCNT = 0x1C40;
+ gMain.state++;
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ gTasks[taskId].func = sub_809204C;
+ gMain.state = 0;
+ }
+ break;
+ }
+}
+
+static void sub_809204C(u8 taskId)
+{
+ sub_8092AB0(gTasks[taskId].data[0]);
+ sub_8092B68(taskId);
+ gTasks[taskId].func = sub_809207C;
+}
+
+static void sub_809207C(u8 taskId)
+{
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_PC_OFF);
+ gTasks[taskId].func = sub_80927B8;
+ return;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ PlaySE(SE_PIN);
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].func = sub_809217C;
+ break;
+ case 1:
+ PlaySE(SE_PIN);
+ gTasks[taskId].data[1] = 4;
+ gTasks[taskId].func = sub_809217C;
+ break;
+ case 2:
+ PlaySE(SE_PC_OFF);
+ gTasks[taskId].func = sub_80927B8;
+ break;
+ }
+ return;
+ }
+ if ((gMain.newKeys & DPAD_LEFT) && gTasks[taskId].data[0] > 0)
+ {
+ PlaySE(SE_Z_PAGE);
+ gTasks[taskId].data[0]--;
+ sub_8092AB0(gTasks[taskId].data[0]);
+ }
+ if ((gMain.newKeys & DPAD_RIGHT) && gTasks[taskId].data[0] < 2)
+ {
+ PlaySE(SE_Z_PAGE);
+ gTasks[taskId].data[0]++;
+ sub_8092AB0(gTasks[taskId].data[0]);
+ }
+}
+
+static void sub_809217C(u8 taskId)
+{
+ sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]);
+ sub_8092B68(taskId);
+ gTasks[taskId].func = sub_80921B0;
+}
+
+static void sub_80921B0(u8 taskId)
+{
+ const u8 (*r6)[4];
+
+ if (gTasks[taskId].data[0] != 0)
+ {
+ if (!IsNationalPokedexEnabled())
+ r6 = gUnknown_083B58A4;
+ else
+ r6 = gUnknown_083B586C;
+ }
+ else
+ {
+ if (!IsNationalPokedexEnabled())
+ r6 = gUnknown_083B5888;
+ else
+ r6 = gUnknown_083B5850;
+ }
+
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_BOWA);
+ sub_8092EB0(taskId);
+ gTasks[taskId].func = sub_809204C;
+ return;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ if (gTasks[taskId].data[1] == 6)
+ {
+ if (gTasks[taskId].data[0] != 0)
+ {
+ gUnknown_0202FFBA = 0x40;
+ gPokedexView->unk62A = 0x40;
+ gUnknown_0202FFB8 = 0;
+ gPokedexView->unk610 = 0;
+ gSaveBlock2.pokedex.unknown1 = sub_8092E10(taskId, 5);
+ if (!IsNationalPokedexEnabled())
+ gSaveBlock2.pokedex.unknown1 = 0;
+ gPokedexView->unk614 = gSaveBlock2.pokedex.unknown1;
+ gSaveBlock2.pokedex.order = sub_8092E10(taskId, 4);
+ gPokedexView->unk618 = gSaveBlock2.pokedex.order;
+ PlaySE(SE_PC_OFF);
+ gTasks[taskId].func = sub_80927B8;
+ }
+ else
+ {
+ sub_8091E20(gDexText_Searching);
+ gTasks[taskId].func = sub_80923FC;
+ PlaySE(SE_Z_SEARCH);
+ }
+ }
+ else
+ {
+ PlaySE(SE_PIN);
+ gTasks[taskId].func = sub_80925CC;
+ }
+ return;
+ }
+
+ if ((gMain.newKeys & DPAD_LEFT) && r6[gTasks[taskId].data[1]][0] != 0xFF)
+ {
+ PlaySE(SE_SELECT);
+ gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][0];
+ sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]);
+ }
+ if ((gMain.newKeys & DPAD_RIGHT) && r6[gTasks[taskId].data[1]][1] != 0xFF)
+ {
+ PlaySE(SE_SELECT);
+ gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][1];
+ sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]);
+ }
+ if ((gMain.newKeys & DPAD_UP) && r6[gTasks[taskId].data[1]][2] != 0xFF)
+ {
+ PlaySE(SE_SELECT);
+ gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][2];
+ sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]);
+ }
+ if ((gMain.newKeys & DPAD_DOWN) && r6[gTasks[taskId].data[1]][3] != 0xFF)
+ {
+ PlaySE(SE_SELECT);
+ gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][3];
+ sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]);
+ }
+}
+
+static void sub_80923FC(u8 taskId)
+{
+ u8 r10 = sub_8092E10(taskId, 5);
+ u8 r9 = sub_8092E10(taskId, 4);
+ u8 r8 = sub_8092E10(taskId, 0);
+ u8 r6 = sub_8092E10(taskId, 1);
+ u8 r4 = sub_8092E10(taskId, 2);
+ u8 r0 = sub_8092E10(taskId, 3);
+
+ sub_8091AF8(r10, r9, r8, r6, r4, r0);
+ gTasks[taskId].func = sub_80924A4;
+}
+
+static void sub_80924A4(u8 taskId)
+{
+ if (!IsSEPlaying())
+ {
+ if (gPokedexView->pokemonListCount != 0)
+ {
+ PlaySE(SE_SEIKAI);
+ sub_8091E20(gDexText_SearchComplete);
+ }
+ else
+ {
+ PlaySE(SE_HAZURE);
+ sub_8091E20(gDexText_NoMatching);
+ }
+ gTasks[taskId].func = sub_8092508;
+ }
+}
+
+static void sub_8092508(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON)
+ {
+ if (gPokedexView->pokemonListCount != 0)
+ {
+ gPokedexView->unk64F = 1;
+ gPokedexView->dexMode = sub_8092E10(taskId, 5);
+ gPokedexView->dexOrder = sub_8092E10(taskId, 4);
+ gTasks[taskId].func = sub_80927B8;
+ PlaySE(SE_PC_OFF);
+ }
+ else
+ {
+ gTasks[taskId].func = sub_809217C;
+ PlaySE(SE_BOWA);
+ }
+ }
+}
+
+static void sub_80925B4(u16 a, int unused)
+{
+ sub_814AD7C(0x90, (a * 2 + 1) * 8);
+}
+
+static void sub_80925CC(u8 taskId)
+{
+ u8 r0;
+ u16 *p1;
+ u16 *p2;
+
+ sub_8092C8C(0);
+ r0 = gTasks[taskId].data[1];
+ p1 = &gTasks[taskId].data[gUnknown_083B5A7C[r0].unk4];
+ p2 = &gTasks[taskId].data[gUnknown_083B5A7C[r0].unk5];
+ gTasks[taskId].data[14] = *p1;
+ gTasks[taskId].data[15] = *p2;
+ sub_8092D78(taskId);
+ CreateBlendedOutlineCursor(16, 0xFFFF, 12, 0x2D9F, 11);
+ sub_80925B4(*p1, 1);
+ gTasks[taskId].func = sub_8092644;
+}
+
+static void sub_8092644(u8 taskId)
+{
+ u8 r1;
+ const struct UnknownStruct2 *r8;
+ u16 *p1;
+ u16 *p2;
+ u16 r2;
+ bool8 r3;
+
+ r1 = gTasks[taskId].data[1];
+ r8 = gUnknown_083B5A7C[r1].unk0;
+ p1 = &gTasks[taskId].data[gUnknown_083B5A7C[r1].unk4];
+ p2 = &gTasks[taskId].data[gUnknown_083B5A7C[r1].unk5];
+ r2 = gUnknown_083B5A7C[r1].unk6 - 1;
+ if (gMain.newKeys & A_BUTTON)
+ {
+ sub_814ADC8();
+ PlaySE(SE_PIN);
+ MenuZeroFillWindowRect(18, 1, 28, 12);
+ sub_8092C8C(1);
+ gTasks[taskId].func = sub_809217C;
+ return;
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ sub_814ADC8();
+ PlaySE(SE_BOWA);
+ MenuZeroFillWindowRect(18, 1, 28, 12);
+ sub_8092C8C(1);
+ *p1 = gTasks[taskId].data[14];
+ *p2 = gTasks[taskId].data[15];
+ gTasks[taskId].func = sub_809217C;
+ return;
+ }
+ r3 = FALSE;
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (*p1 != 0)
+ {
+ sub_80925B4(*p1, 0);
+ (*p1)--;
+ sub_80925B4(*p1, 1);
+ r3 = TRUE;
+ }
+ else if (*p2 != 0)
+ {
+ (*p2)--;
+ sub_8092D78(taskId);
+ sub_80925B4(*p1, 1);
+ r3 = TRUE;
+ }
+ if (r3)
+ {
+ PlaySE(SE_SELECT);
+ sub_8091E20(r8[*p1 + *p2].text1);
+ }
+ return;
+ }
+ if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (*p1 < 5 && *p1 < r2)
+ {
+ sub_80925B4(*p1, 0);
+ (*p1)++;
+ sub_80925B4(*p1, 1);
+ r3 = TRUE;
+ }
+ else if (r2 > 5 && *p2 < r2 - 5)
+ {
+ (*p2)++;
+ sub_8092D78(taskId);
+ sub_80925B4(5, 1);
+ r3 = TRUE;
+ }
+ if (r3)
+ {
+ PlaySE(SE_SELECT);
+ sub_8091E20(r8[*p1 + *p2].text1);
+ }
+ return;
+ }
+}
+
+static void sub_80927B8(u8 taskId)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_80927F0;
+}
+
+static void sub_80927F0(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ DestroyTask(taskId);
+}
+
+#ifdef NONMATCHING
+void sub_8092810(u8 a, u8 b, u8 c, u8 d)
+{
+ u16 i;
+
+ for (i = 0; i < d; i++)
+ {
+ ((u16 *)VRAM)[15 * 0x400 + c * 32 + i + b] &= 0xFFF;
+ ((u16 *)VRAM)[15 * 0x400 + c * 32 + i + b] |= a << 12;
+
+ ((u16 *)VRAM)[15 * 0x400 + (c + 1) * 32 + i + b] &= 0xFFF;
+ ((u16 *)VRAM)[15 * 0x400 + (c + 1) * 32 + i + b] |= a << 12;
+ }
+}
+#else
+__attribute__((naked))
+void sub_8092810(u8 a, u8 b, u8 c, u8 d)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ mov r12, r1\n\
+ lsls r2, 24\n\
+ lsrs r1, r2, 24\n\
+ lsls r3, 24\n\
+ lsrs r5, r3, 8\n\
+ movs r3, 0\n\
+ cmp r5, 0\n\
+ beq _0809285A\n\
+ lsls r7, r1, 6\n\
+ ldr r6, _08092860 @ =0x00000fff\n\
+ lsls r4, r0, 12\n\
+_08092830:\n\
+ mov r0, r12\n\
+ adds r1, r0, r3\n\
+ lsls r1, 1\n\
+ adds r1, r7, r1\n\
+ ldr r0, _08092864 @ =0x06007800\n\
+ adds r2, r1, r0\n\
+ ldrh r0, [r2]\n\
+ ands r0, r6\n\
+ orrs r0, r4\n\
+ strh r0, [r2]\n\
+ ldr r0, _08092868 @ =0x06007840\n\
+ adds r1, r0\n\
+ ldrh r0, [r1]\n\
+ ands r0, r6\n\
+ orrs r0, r4\n\
+ strh r0, [r1]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ cmp r0, r5\n\
+ bcc _08092830\n\
+_0809285A:\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08092860: .4byte 0x00000fff\n\
+_08092864: .4byte 0x06007800\n\
+_08092868: .4byte 0x06007840\n\
+ .syntax divided\n");
+}
+#endif
+
+static void sub_809286C(u8 a, u8 b, u8 c)
+{
+ u8 r5 = (b & 1) | ((c & 1) << 1);
+
+ switch (a)
+ {
+ case 0:
+ case 1:
+ case 2:
+ sub_8092810(r5, gUnknown_083B57E4[a].unk4, gUnknown_083B57E4[a].unk5, gUnknown_083B57E4[a].unk6);
+ break;
+ case 3:
+ case 4:
+ case 7:
+ case 8:
+ sub_8092810(r5, gUnknown_083B57FC[a - 3].unk4, gUnknown_083B57FC[a - 3].unk5, gUnknown_083B57FC[a - 3].unk6);
+ // fall through
+ case 5:
+ case 6:
+ sub_8092810(r5, gUnknown_083B57FC[a - 3].unk7, gUnknown_083B57FC[a - 3].unk8, gUnknown_083B57FC[a - 3].unk9);
+ break;
+ case 10:
+ sub_8092810(r5, gUnknown_083B57FC[2].unk4, gUnknown_083B57FC[2].unk5, gUnknown_083B57FC[2].unk6);
+ break;
+ case 9:
+ if (!IsNationalPokedexEnabled())
+ sub_8092810(r5, gUnknown_083B57FC[a - 3].unk4, gUnknown_083B57FC[a - 3].unk5 - 2, gUnknown_083B57FC[a - 3].unk6);
+ else
+ sub_8092810(r5, gUnknown_083B57FC[a - 3].unk4, gUnknown_083B57FC[a - 3].unk5, gUnknown_083B57FC[a - 3].unk6);
+ break;
+ }
+}
+
+static void sub_8092964(u8 a)
+{
+ switch (a)
+ {
+ case 0:
+ sub_809286C(0, 0, 0);
+ sub_809286C(1, 1, 0);
+ sub_809286C(2, 1, 0);
+ sub_809286C(3, 1, 0);
+ sub_809286C(4, 1, 0);
+ sub_809286C(10, 1, 0);
+ sub_809286C(5, 1, 0);
+ sub_809286C(6, 1, 0);
+ sub_809286C(7, 1, 0);
+ sub_809286C(8, 1, 0);
+ sub_809286C(9, 1, 0);
+ break;
+ case 1:
+ sub_809286C(0, 1, 0);
+ sub_809286C(1, 0, 0);
+ sub_809286C(2, 1, 0);
+ sub_809286C(3, 1, 1);
+ sub_809286C(4, 1, 1);
+ sub_809286C(10, 1, 1);
+ sub_809286C(5, 1, 1);
+ sub_809286C(6, 1, 1);
+ sub_809286C(7, 1, 0);
+ sub_809286C(8, 1, 0);
+ sub_809286C(9, 1, 0);
+ break;
+ case 2:
+ sub_809286C(0, 1, 0);
+ sub_809286C(1, 1, 0);
+ sub_809286C(2, 0, 0);
+ sub_809286C(3, 1, 1);
+ sub_809286C(4, 1, 1);
+ sub_809286C(10, 1, 1);
+ sub_809286C(5, 1, 1);
+ sub_809286C(6, 1, 1);
+ sub_809286C(7, 1, 1);
+ sub_809286C(8, 1, 1);
+ sub_809286C(9, 1, 1);
+ break;
+ }
+}
+
+static void sub_8092AB0(u8 a)
+{
+ sub_8092964(a);
+ sub_8091E20(gUnknown_083B57E4[a].text);
+}
+
+static void sub_8092AD4(u8 a, u8 b)
+{
+ sub_8092964(a);
+ switch (b)
+ {
+ case 0:
+ sub_809286C(3, 0, 0);
+ break;
+ case 1:
+ sub_809286C(4, 0, 0);
+ break;
+ case 2:
+ sub_809286C(10, 0, 0);
+ sub_809286C(5, 0, 0);
+ break;
+ case 3:
+ sub_809286C(10, 0, 0);
+ sub_809286C(6, 0, 0);
+ break;
+ case 4:
+ sub_809286C(7, 0, 0);
+ break;
+ case 5:
+ sub_809286C(8, 0, 0);
+ break;
+ case 6:
+ sub_809286C(9, 0, 0);
+ break;
+ }
+ sub_8091E20(gUnknown_083B57FC[b].text);
+}
+
+static void sub_8092B68(u8 taskId)
+{
+ u16 var;
+
+ var = gTasks[taskId].data[6] + gTasks[taskId].data[7];
+ StringCopy(gStringVar1, gUnknown_083B5910[var].text2);
+ MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 16, 1);
+
+ var = gTasks[taskId].data[8] + gTasks[taskId].data[9];
+ StringCopy(gStringVar1, gUnknown_083B5968[var].text2);
+ MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 32, 1);
+
+ var = gTasks[taskId].data[10] + gTasks[taskId].data[11];
+ StringCopy(gStringVar1, gUnknown_083B59C8[var].text2);
+ MenuPrint_PixelCoords(gUnknown_083B5AAC, 45, 48, 1);
+
+ var = gTasks[taskId].data[12] + gTasks[taskId].data[13];
+ StringCopy(gStringVar1, gUnknown_083B59C8[var].text2);
+ MenuPrint_PixelCoords(gUnknown_083B5AAC, 93, 48, 1);
+
+ var = gTasks[taskId].data[4] + gTasks[taskId].data[5];
+ StringCopy(gStringVar1, gUnknown_083B58D8[var].text2);
+ MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 64, 1);
+
+ if (IsNationalPokedexEnabled())
+ {
+ var = gTasks[taskId].data[2] + gTasks[taskId].data[3];
+ StringCopy(gStringVar1, gUnknown_083B58C0[var].text2);
+ MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 80, 1);
+ }
+}
+
+static void sub_8092C8C(u8 a)
+{
+ u16 i;
+ u16 j;
+
+ if (a == 0)
+ {
+ *((u16 *)(VRAM + 0x7800 + 0x22)) = 0xC0B;
+ for (i = 0x12; i < 0x1D; i++)
+ *((u16 *)(VRAM + 0x7800 + i * 2)) = 0x80D;
+ *((u16 *)(VRAM + 0x7800 + 0x3A)) = 0x80B;
+ for (j = 1; j < 13; j++)
+ {
+ *((u16 *)(VRAM + 0x7800 + 0x22 + j * 64)) = 0x40A;
+ for (i = 0x12; i < 0x1D; i++)
+ *((u16 *)(VRAM + 0x7800 + j * 64 + i * 2)) = 2;
+ *((u16 *)(VRAM + 0x7800 + 0x3A + j * 64)) = 0xA;
+ }
+ *((u16 *)(VRAM + 0x7800 + 0x362)) = 0x40B;
+ for (i = 0x12; i < 0x1D; i++)
+ *((u16 *)(VRAM + 0x7800 + 0x340 + i * 2)) = 0xD;
+ *((u16 *)(VRAM + 0x7800 + 0x37A)) = 0xB;
+ }
+ else
+ {
+ for (j = 0; j < 14; j++)
+ {
+ for (i = 0x11; i < 0x1E; i++)
+ {
+ *((u16 *)(VRAM + 0x7800 + j * 64 + i * 2)) = 0x4F;
+ }
+ }
+ }
+}
+
+static void sub_8092D78(u8 taskId)
+{
+ const struct UnknownStruct2 *r6 = gUnknown_083B5A7C[gTasks[taskId].data[1]].unk0;
+ const u16 *r8 = &gTasks[taskId].data[gUnknown_083B5A7C[gTasks[taskId].data[1]].unk4];
+ const u16 *r7 = &gTasks[taskId].data[gUnknown_083B5A7C[gTasks[taskId].data[1]].unk5];
+ u16 i;
+ u16 j;
+
+ MenuZeroFillWindowRect(18, 1, 28, 12);
+ for (i = 0, j = *r7; i < 6 && r6[j].text2 != NULL; i++, j++)
+ {
+#ifndef NONMATCHING
+ j += 0; // Useless statement needed to match
+#endif
+ MenuPrint(r6[j].text2, 18, i * 2 + 1);
+ }
+ sub_8091E20(r6[*r8 + *r7].text1);
+}
+
+static u8 sub_8092E10(u8 taskId, u8 b)
+{
+ const u16 *ptr1 = &gTasks[taskId].data[gUnknown_083B5A7C[b].unk4];
+ const u16 *ptr2 = &gTasks[taskId].data[gUnknown_083B5A7C[b].unk5];
+ u16 r2 = *ptr1 + *ptr2;
+
+ switch (b)
+ {
+ default:
+ return 0;
+ case 5:
+ return gUnknown_083B5A60[r2];
+ case 4:
+ return gUnknown_083B5A62[r2];
+ case 0:
+ if (r2 == 0)
+ return 0xFF;
+ else
+ return r2;
+ case 1:
+ if (r2 == 0)
+ return 0xFF;
+ else
+ return r2 - 1;
+ case 2:
+ case 3:
+ return gUnknown_083B5A68[r2];
+ }
+}
+
+static void sub_8092EB0(u8 taskId)
+{
+ u16 r3;
+
+ switch (gPokedexView->unk614)
+ {
+ default:
+ case 0:
+ r3 = 0;
+ break;
+ case 1:
+ r3 = 1;
+ break;
+ }
+ gTasks[taskId].data[2] = r3;
+
+ switch (gPokedexView->unk618)
+ {
+ default:
+ case 0:
+ r3 = 0;
+ break;
+ case 1:
+ r3 = 1;
+ break;
+ case 2:
+ r3 = 2;
+ break;
+ case 3:
+ r3 = 3;
+ break;
+ case 4:
+ r3 = 4;
+ break;
+ case 5:
+ r3 = 5;
+ break;
+ }
+ gTasks[taskId].data[4] = r3;
+}
+
+static bool8 sub_8092F44(u8 taskId)
+{
+ u8 val1 = gTasks[taskId].data[1];
+ const u16 *ptr = &gTasks[taskId].data[gUnknown_083B5A7C[val1].unk5];
+ u16 val2 = gUnknown_083B5A7C[val1].unk6 - 1;
+
+ if (val2 > 5 && *ptr != 0)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+static bool8 sub_8092F8C(u8 taskId)
+{
+ u8 val1 = gTasks[taskId].data[1];
+ const u16 *ptr = &gTasks[taskId].data[gUnknown_083B5A7C[val1].unk5];
+ u16 val2 = gUnknown_083B5A7C[val1].unk6 - 1;
+
+ if (val2 > 5 && *ptr < val2 - 5)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+static void sub_8092FD8(struct Sprite *sprite)
+{
+ if (gTasks[sprite->data0].func == sub_8092644)
+ {
+ u8 val;
+
+ if (sprite->data1 != 0)
+ {
+ if (sub_8092F8C(sprite->data0))
+ sprite->invisible = TRUE;
+ else
+ sprite->invisible = FALSE;
+ }
+ else
+ {
+ if (sub_8092F44(sprite->data0))
+ sprite->invisible = TRUE;
+ else
+ sprite->invisible = FALSE;
+ }
+ val = sprite->data2 + sprite->data1 * 128;
+ sprite->pos2.y = gSineTable[val] / 128;
+ sprite->data2 += 8;
+ }
+ else
+ {
+ sprite->invisible = TRUE;
+ }
+}
+
+static void sub_809308C(u8 taskId)
+{
+ u8 spriteId;
+
+ spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 4, 0);
+ gSprites[spriteId].data0 = taskId;
+ gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].callback = sub_8092FD8;
+
+ spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 108, 0);
+ gSprites[spriteId].data0 = taskId;
+ gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].vFlip = TRUE;
+ gSprites[spriteId].callback = sub_8092FD8;
+}
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index f9eb3a7e9..f4eac79a7 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -1255,7 +1255,7 @@ bool8 IsHMMove2(u16 move)
bool8 sub_8040A3C(u16 species)
{
- return gBaseStats[species].bodyColor >> 7; // XXX: should this be a bitfield instead?
+ return gBaseStats[species].unk19_7;
}
s8 sub_8040A54(struct Pokemon *mon, u8 a2)
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 32b6adf36..0ed8315fc 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -483,7 +483,7 @@ static void AddTextColorCtrlCode(u8 *string, u8 bgColor, u8 textColor, u8 shadow
static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection)
{
u8 labelText[72];
- u8 *category;
+ const u8 *category;
u8 srcIndex;
u8 dstIndex;
u16 species;