diff --git a/asm/overlay_18.s b/asm/overlay_18.s index f11d13da59..f03dd3f743 100644 --- a/asm/overlay_18.s +++ b/asm/overlay_18.s @@ -2,17087 +2,26 @@ .include "overlay_18.inc" .include "global.inc" - .text - - thumb_func_start ov18_021E5900 -ov18_021E5900: ; 0x021E5900 - mov r0, #0x45 - bx lr - thumb_func_end ov18_021E5900 - - thumb_func_start ov18_021E5904 -ov18_021E5904: ; 0x021E5904 - add r0, r0, #3 - bx lr - thumb_func_end ov18_021E5904 - - thumb_func_start ov18_021E5908 -ov18_021E5908: ; 0x021E5908 - mov r0, #0 - bx lr - thumb_func_end ov18_021E5908 - - thumb_func_start ov18_021E590C -ov18_021E590C: ; 0x021E590C - push {r4, r5, r6, lr} - sub sp, #0x28 - add r4, r2, #0 - add r2, sp, #4 - str r2, [sp] - add r2, sp, #0xc - add r3, sp, #8 - add r5, r0, #0 - bl ov18_021E5A50 - ldr r2, [sp, #4] - cmp r2, #6 - bne _021E5932 - add r0, r5, #0 - add r1, r4, #0 - bl GetSpeciesName - add sp, #0x28 - pop {r4, r5, r6, pc} -_021E5932: - ldr r6, _021E5958 ; =_021F96F4 - add r5, sp, #0x10 - add r3, r5, #0 - ldmia r6!, {r0, r1} - stmia r5!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r5!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r5!, {r0, r1} - lsl r0, r2, #2 - ldr r1, [sp, #0xc] - ldr r0, [r3, r0] - add r2, r4, #0 - str r1, [sp, #4] - bl ov18_021E5A10 - add sp, #0x28 - pop {r4, r5, r6, pc} - nop -_021E5958: .word _021F96F4 - thumb_func_end ov18_021E590C - - thumb_func_start ov18_021E595C -ov18_021E595C: ; 0x021E595C - push {r4, r5, r6, lr} - sub sp, #0x28 - add r4, r2, #0 - add r2, sp, #4 - str r2, [sp] - add r2, sp, #0xc - add r3, sp, #8 - add r5, r0, #0 - bl ov18_021E5A50 - ldr r2, [sp, #4] - cmp r2, #6 - bne _021E597E - mov r0, #0x33 - str r5, [sp, #4] - lsl r0, r0, #4 - b _021E5998 -_021E597E: - ldr r6, _021E59A4 ; =_021F970C - add r5, sp, #0x10 - add r3, r5, #0 - ldmia r6!, {r0, r1} - stmia r5!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r5!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r5!, {r0, r1} - lsl r0, r2, #2 - ldr r1, [sp, #0xc] - ldr r0, [r3, r0] - str r1, [sp, #4] -_021E5998: - ldr r1, [sp, #4] - add r2, r4, #0 - bl ov18_021E5A10 - add sp, #0x28 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021E59A4: .word _021F970C - thumb_func_end ov18_021E595C - - thumb_func_start ov18_021E59A8 -ov18_021E59A8: ; 0x021E59A8 - push {r4, r5, r6, lr} - sub sp, #0x28 - add r4, r2, #0 - add r2, sp, #4 - add r6, r3, #0 - str r2, [sp] - add r2, sp, #0xc - add r3, sp, #8 - add r5, r0, #0 - bl ov18_021E5A50 - ldr r0, [sp, #4] - cmp r0, #6 - bne _021E59D4 - cmp r4, #1 - blt _021E59CC - bl GF_AssertFail -_021E59CC: - add r0, r5, r4 - str r0, [sp, #4] -#ifdef HEARTGOLD - ldr r0, _021E5A08 ; =0x00000323 -#else - mov r0, #0xC9 - lsl r0, r0, #2 -#endif - b _021E59FA -_021E59D4: - ldr r3, _021E5A0C ; =_021F9724 - add r2, sp, #0x10 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - cmp r4, #1 - blt _021E59EC - bl GF_AssertFail -_021E59EC: - ldr r0, [sp, #4] - lsl r1, r0, #2 - add r0, sp, #0x10 - ldr r0, [r0, r1] - ldr r1, [sp, #0xc] - add r1, r1, r4 - str r1, [sp, #4] -_021E59FA: - ldr r1, [sp, #4] - add r2, r6, #0 - bl ov18_021E5A10 - add sp, #0x28 - pop {r4, r5, r6, pc} -#ifdef HEARTGOLD - nop -_021E5A08: .word 0x00000323 -#endif -_021E5A0C: .word _021F9724 - thumb_func_end ov18_021E59A8 - - thumb_func_start ov18_021E5A10 -ov18_021E5A10: ; 0x021E5A10 - push {r4, r5, r6, lr} - add r3, r0, #0 - add r5, r2, #0 - add r6, r1, #0 - add r2, r3, #0 - mov r0, #1 - mov r1, #0x1b - add r3, r5, #0 - bl NewMsgDataFromNarc - add r4, r0, #0 - beq _021E5A4A - mov r0, #1 - lsl r0, r0, #8 - add r1, r5, #0 - bl String_New - add r5, r0, #0 - beq _021E5A40 - add r0, r4, #0 - add r1, r6, #0 - add r2, r5, #0 - bl ReadMsgDataIntoString -_021E5A40: - add r0, r4, #0 - bl DestroyMsgData - add r0, r5, #0 - pop {r4, r5, r6, pc} -_021E5A4A: - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov18_021E5A10 - - thumb_func_start ov18_021E5A50 -ov18_021E5A50: ; 0x021E5A50 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - add r0, r1, #0 - add r4, r2, #0 - add r5, r3, #0 - ldr r6, [sp, #0x18] - bl LanguageToDexFlag - str r0, [r5] - cmp r0, #6 - blt _021E5A6A - bl GF_AssertFail -_021E5A6A: - str r7, [r4] - ldr r5, [r5] - cmp r5, #6 - blt _021E5A76 - bl GF_AssertFail -_021E5A76: - cmp r5, #1 - bne _021E5A7C - mov r5, #6 -_021E5A7C: - str r5, [r6] - ldr r1, [r4] - ldr r0, _021E5A9C ; =0x000001ED - cmp r1, r0 - ble _021E5A8E - cmp r5, #6 - beq _021E5A8E - mov r0, #0 - b _021E5A90 -_021E5A8E: - mov r0, #1 -_021E5A90: - cmp r0, #0 - bne _021E5A98 - bl GF_AssertFail -_021E5A98: - pop {r3, r4, r5, r6, r7, pc} - nop -_021E5A9C: .word 0x000001ED - thumb_func_end ov18_021E5A50 - - thumb_func_start Pokedex_Init -Pokedex_Init: ; 0x021E5AA0 - push {r3, r4, r5, lr} - mov r2, #0x61 - add r5, r0, #0 - mov r0, #3 - mov r1, #0x25 - lsl r2, r2, #0xc - bl Heap_Create - ldr r1, _021E5B4C ; =0x00001910 - add r0, r5, #0 - mov r2, #0x25 - bl OverlayManager_CreateAndGetData - ldr r2, _021E5B4C ; =0x00001910 - mov r1, #0 - add r4, r0, #0 - bl MI_CpuFill8 - add r0, r5, #0 - bl OverlayManager_GetArgs - str r0, [r4] - ldr r0, _021E5B50 ; =0x0000085C - mov r1, #5 - str r1, [r4, r0] - ldr r0, [r4] - ldr r0, [r0, #8] - bl sub_02092BE0 - ldr r1, _021E5B54 ; =0x00001858 - strb r0, [r4, r1] - ldr r0, [r4] - ldr r0, [r0] - bl Pokedex_GetNatDexFlag - cmp r0, #0 - ldr r0, _021E5B58 ; =0x00001860 - beq _021E5B00 - mov r2, #1 - add r1, r0, #0 - str r2, [r4, r0] - sub r1, #8 - ldrb r1, [r4, r1] - cmp r1, #2 - bne _021E5B12 - sub r0, #8 - strb r2, [r4, r0] - b _021E5B12 -_021E5B00: - mov r2, #0 - add r1, r0, #0 - str r2, [r4, r0] - sub r1, #8 - ldrb r1, [r4, r1] - cmp r1, #2 - bne _021E5B12 - sub r0, #8 - strb r2, [r4, r0] -_021E5B12: - ldr r0, [r4] - ldr r1, _021E5B5C ; =0x000001E7 - ldr r0, [r0] - bl Pokedex_CheckMonCaughtFlag - cmp r0, #1 - bne _021E5B32 - ldr r0, [r4] - ldr r1, _021E5B5C ; =0x000001E7 - ldr r0, [r0] - mov r2, #0 - bl Pokedex_GetSeenFormByIdx - bl SetDexBanksByGiratinaForm - b _021E5B38 -_021E5B32: - mov r0, #0 - bl SetDexBanksByGiratinaForm -_021E5B38: - mov r0, #1 - mov r1, #0x2a - bl GF_SndHandleSetPlayerVolume - ldr r0, _021E5B60 ; =0x0000185C - mov r1, #2 - strb r1, [r4, r0] - mov r0, #1 - pop {r3, r4, r5, pc} - nop -_021E5B4C: .word 0x00001910 -_021E5B50: .word 0x0000085C -_021E5B54: .word 0x00001858 -_021E5B58: .word 0x00001860 -_021E5B5C: .word 0x000001E7 -_021E5B60: .word 0x0000185C - thumb_func_end Pokedex_Init - - thumb_func_start Pokedex_Main -Pokedex_Main: ; 0x021E5B64 - push {r4, lr} - add r4, r1, #0 - bl OverlayManager_GetData - add r1, r4, #0 - bl ov18_021E8BF4 - cmp r0, #0 - bne _021E5B7A - mov r0, #1 - pop {r4, pc} -_021E5B7A: - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end Pokedex_Main - - thumb_func_start Pokedex_Exit -Pokedex_Exit: ; 0x021E5B80 - push {r4, r5, r6, lr} - add r5, r0, #0 - bl OverlayManager_GetData - ldr r6, _021E5C08 ; =FS_OVERLAY_ID(ds_protect) - add r4, r0, #0 - mov r0, #0 - add r1, r6, #0 - bl FS_LoadOverlay - ldr r0, _021E5C0C ; =ov18_021E5C1C - bl DSProt_DetectEmulator - cmp r0, #0 - beq _021E5BA8 - mov r1, #0xfa - mov r0, #3 - lsl r1, r1, #2 - bl Heap_AllocAtEnd -_021E5BA8: - add r0, r4, #0 - bl ov18_021F8838 - ldr r2, _021E5C10 ; =0x00001858 - add r1, r0, #0 - ldr r0, [r4] - ldrb r2, [r4, r2] - ldr r0, [r0, #8] - bl sub_02092BD8 - ldr r0, _021E5C14 ; =ov18_021E5C2C - bl DSProt_DetectFlashcart - cmp r0, #0 - beq _021E5BD0 - mov r1, #0xfa - mov r0, #3 - lsl r1, r1, #2 - bl Heap_AllocAtEnd -_021E5BD0: - add r0, r5, #0 - bl OverlayManager_FreeData - mov r0, #0x25 - bl Heap_Destroy - mov r0, #1 - mov r1, #0x7f - bl GF_SndHandleSetPlayerVolume - bl sub_02004B10 - ldr r0, _021E5C18 ; =ov18_021E5C3C - bl DSProt_DetectNotDummy - cmp r0, #0 - bne _021E5BFC - mov r1, #0xfa - mov r0, #3 - lsl r1, r1, #2 - bl Heap_AllocAtEnd -_021E5BFC: - mov r0, #0 - add r1, r6, #0 - bl FS_UnloadOverlay - mov r0, #1 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021E5C08: .word FS_OVERLAY_ID(ds_protect) -_021E5C0C: .word ov18_021E5C1C -_021E5C10: .word 0x00001858 -_021E5C14: .word ov18_021E5C2C -_021E5C18: .word ov18_021E5C3C - thumb_func_end Pokedex_Exit - - thumb_func_start ov18_021E5C1C -ov18_021E5C1C: ; 0x021E5C1C - ldr r3, _021E5C28 ; =Heap_AllocAtEnd - mov r1, #0xfa - mov r0, #3 - lsl r1, r1, #2 - bx r3 - nop -_021E5C28: .word Heap_AllocAtEnd - thumb_func_end ov18_021E5C1C - - thumb_func_start ov18_021E5C2C -ov18_021E5C2C: ; 0x021E5C2C - ldr r3, _021E5C38 ; =Heap_AllocAtEnd - mov r1, #0xfa - mov r0, #3 - lsl r1, r1, #2 - bx r3 - nop -_021E5C38: .word Heap_AllocAtEnd - thumb_func_end ov18_021E5C2C - - thumb_func_start ov18_021E5C3C -ov18_021E5C3C: ; 0x021E5C3C - bx lr - .balign 4, 0 - thumb_func_end ov18_021E5C3C - - thumb_func_start ov18_021E5C40 -ov18_021E5C40: ; 0x021E5C40 - push {r4, lr} - add r4, r0, #0 - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r4, r0] - bl PaletteData_PushTransparentBuffers - add r0, r4, #0 - bl ov18_021E7A3C - ldr r0, [r4, #4] - bl DoScheduledBgGpuUpdates - bl SpriteSystem_TransferOam - ldr r3, _021E5C6C ; =0x027E0000 - ldr r1, _021E5C70 ; =0x00003FF8 - mov r0, #1 - ldr r2, [r3, r1] - orr r0, r2 - str r0, [r3, r1] - pop {r4, pc} - .balign 4, 0 -_021E5C6C: .word 0x027E0000 -_021E5C70: .word 0x00003FF8 - thumb_func_end ov18_021E5C40 - - thumb_func_start ov18_021E5C74 -ov18_021E5C74: ; 0x021E5C74 - ldr r3, _021E5C7C ; =GfGfx_SetBanks - ldr r0, _021E5C80 ; =_021F98B0 - bx r3 - nop -_021E5C7C: .word GfGfx_SetBanks -_021E5C80: .word _021F98B0 - thumb_func_end ov18_021E5C74 - - thumb_func_start ov18_021E5C84 -ov18_021E5C84: ; 0x021E5C84 - push {r3, r4, r5, lr} - sub sp, #0xf0 - add r4, r0, #0 - mov r0, #0x25 - bl BgConfig_Alloc - add r3, sp, #0xe0 - ldr r5, _021E5E4C ; =_021F9750 - str r0, [r4, #4] - add r2, r3, #0 - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - bl SetBothScreensModesAndDisable - ldr r5, _021E5E50 ; =_021F97EC - add r3, sp, #0xc4 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #0 - str r0, [r3] - ldr r0, [r4, #4] - add r3, r1, #0 - bl InitBgFromTemplate - add r0, r4, #0 - mov r1, #0 - bl ov18_021E613C - mov r0, #0 - mov r1, #0x20 - add r2, r0, #0 - mov r3, #0x25 - bl BG_ClearCharDataRange - ldr r5, _021E5E54 ; =_021F97B4 - add r3, sp, #0xa8 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #1 - str r0, [r3] - ldr r0, [r4, #4] - mov r3, #0 - bl InitBgFromTemplate - add r0, r4, #0 - mov r1, #1 - bl ov18_021E613C - mov r0, #1 - mov r1, #0x20 - mov r2, #0 - mov r3, #0x25 - bl BG_ClearCharDataRange - ldr r5, _021E5E58 ; =_021F9894 - add r3, sp, #0x8c - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #2 - str r0, [r3] - ldr r0, [r4, #4] - mov r3, #0 - bl InitBgFromTemplate - add r0, r4, #0 - mov r1, #2 - bl ov18_021E613C - mov r0, #2 - mov r1, #0x20 - mov r2, #0 - mov r3, #0x25 - bl BG_ClearCharDataRange - ldr r5, _021E5E5C ; =_021F9824 - add r3, sp, #0x70 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #3 - str r0, [r3] - ldr r0, [r4, #4] - mov r3, #0 - bl InitBgFromTemplate - add r0, r4, #0 - mov r1, #3 - bl ov18_021E613C - mov r0, #3 - mov r1, #0x20 - mov r2, #0 - mov r3, #0x25 - bl BG_ClearCharDataRange - ldr r5, _021E5E60 ; =_021F9840 - add r3, sp, #0x54 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #4 - str r0, [r3] - ldr r0, [r4, #4] - mov r3, #0 - bl InitBgFromTemplate - add r0, r4, #0 - mov r1, #4 - bl ov18_021E613C - mov r0, #4 - mov r1, #0x20 - mov r2, #0 - mov r3, #0x25 - bl BG_ClearCharDataRange - ldr r5, _021E5E64 ; =_021F985C - add r3, sp, #0x38 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #5 - str r0, [r3] - ldr r0, [r4, #4] - mov r3, #0 - bl InitBgFromTemplate - add r0, r4, #0 - mov r1, #5 - bl ov18_021E613C - mov r0, #5 - mov r1, #0x20 - mov r2, #0 - mov r3, #0x25 - bl BG_ClearCharDataRange - ldr r5, _021E5E68 ; =_021F9798 - add r3, sp, #0x1c - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #6 - str r0, [r3] - ldr r0, [r4, #4] - mov r3, #0 - bl InitBgFromTemplate - add r0, r4, #0 - mov r1, #6 - bl ov18_021E613C - mov r0, #6 - mov r1, #0x20 - mov r2, #0 - mov r3, #0x25 - bl BG_ClearCharDataRange - ldr r5, _021E5E6C ; =_021F97D0 - add r3, sp, #0 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #7 - str r0, [r3] - ldr r0, [r4, #4] - mov r3, #0 - bl InitBgFromTemplate - add r0, r4, #0 - mov r1, #7 - bl ov18_021E613C - mov r0, #7 - mov r1, #0x20 - mov r2, #0 - mov r3, #0x25 - bl BG_ClearCharDataRange - add sp, #0xf0 - pop {r3, r4, r5, pc} - nop -_021E5E4C: .word _021F9750 -_021E5E50: .word _021F97EC -_021E5E54: .word _021F97B4 -_021E5E58: .word _021F9894 -_021E5E5C: .word _021F9824 -_021E5E60: .word _021F9840 -_021E5E64: .word _021F985C -_021E5E68: .word _021F9798 -_021E5E6C: .word _021F97D0 - thumb_func_end ov18_021E5C84 - - thumb_func_start ov18_021E5E70 -ov18_021E5E70: ; 0x021E5E70 - push {r3, r4, r5, lr} - sub sp, #0x58 - add r4, r0, #0 - ldr r0, [r4, #4] - add r5, r1, #0 - mov r1, #7 - bl FreeBgTilemapBuffer - cmp r5, #0 - bne _021E5ED0 - ldr r5, _021E5F48 ; =_021F9740 - add r3, sp, #0x48 - add r2, r3, #0 - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - mov r1, #1 - bl SetScreenModeAndDisable - ldr r5, _021E5F4C ; =_021F9878 - add r3, sp, #0x2c - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #7 - str r0, [r3] - ldr r0, [r4, #4] - mov r3, #0 - bl InitBgFromTemplate - add r0, r4, #0 - mov r1, #7 - bl ov18_021E613C - mov r0, #7 - mov r1, #0x20 - mov r2, #0 - mov r3, #0x25 - bl BG_ClearCharDataRange - b _021E5F1A -_021E5ED0: - ldr r5, _021E5F50 ; =_021F9760 - add r3, sp, #0x1c - add r2, r3, #0 - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - mov r1, #1 - bl SetScreenModeAndDisable - ldr r5, _021E5F54 ; =_021F9808 - add r3, sp, #0 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #7 - str r0, [r3] - ldr r0, [r4, #4] - mov r3, #1 - bl InitBgFromTemplate - add r0, r4, #0 - mov r1, #7 - bl ov18_021E613C - mov r0, #7 - mov r1, #0x40 - mov r2, #0 - mov r3, #0x25 - bl BG_ClearCharDataRange -_021E5F1A: - mov r0, #1 - add r1, r0, #0 - bl GfGfx_EngineBTogglePlanes - mov r0, #2 - mov r1, #1 - bl GfGfx_EngineBTogglePlanes - mov r0, #4 - mov r1, #1 - bl GfGfx_EngineBTogglePlanes - mov r0, #8 - mov r1, #1 - bl GfGfx_EngineBTogglePlanes - mov r0, #0x10 - mov r1, #1 - bl GfGfx_EngineBTogglePlanes - add sp, #0x58 - pop {r3, r4, r5, pc} - nop -_021E5F48: .word _021F9740 -_021E5F4C: .word _021F9878 -_021E5F50: .word _021F9760 -_021E5F54: .word _021F9808 - thumb_func_end ov18_021E5E70 - - thumb_func_start ov18_021E5F58 -ov18_021E5F58: ; 0x021E5F58 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #4] - mov r1, #7 - bl FreeBgTilemapBuffer - ldr r0, [r4, #4] - mov r1, #6 - bl FreeBgTilemapBuffer - ldr r0, [r4, #4] - mov r1, #5 - bl FreeBgTilemapBuffer - ldr r0, [r4, #4] - mov r1, #4 - bl FreeBgTilemapBuffer - ldr r0, [r4, #4] - mov r1, #3 - bl FreeBgTilemapBuffer - ldr r0, [r4, #4] - mov r1, #2 - bl FreeBgTilemapBuffer - ldr r0, [r4, #4] - mov r1, #1 - bl FreeBgTilemapBuffer - ldr r0, [r4, #4] - mov r1, #0 - bl FreeBgTilemapBuffer - ldr r0, [r4, #4] - bl Heap_Free - pop {r4, pc} - thumb_func_end ov18_021E5F58 - - thumb_func_start ov18_021E5FA4 -ov18_021E5FA4: ; 0x021E5FA4 - push {r3, lr} - mov r0, #0 - mov r1, #2 - bl SetBgPriority - mov r0, #1 - mov r1, #0 - bl SetBgPriority - mov r0, #2 - mov r1, #1 - bl SetBgPriority - mov r0, #3 - add r1, r0, #0 - bl SetBgPriority - mov r0, #4 - mov r1, #0 - bl SetBgPriority - mov r0, #5 - mov r1, #1 - bl SetBgPriority - mov r0, #6 - mov r1, #2 - bl SetBgPriority - mov r0, #7 - mov r1, #3 - bl SetBgPriority - pop {r3, pc} - thumb_func_end ov18_021E5FA4 - - thumb_func_start ov18_021E5FE8 -ov18_021E5FE8: ; 0x021E5FE8 - push {r3, lr} - mov r0, #0 - mov r1, #1 - bl SetBgPriority - mov r0, #1 - mov r1, #0 - bl SetBgPriority - mov r0, #2 - add r1, r0, #0 - bl SetBgPriority - mov r0, #3 - add r1, r0, #0 - bl SetBgPriority - mov r0, #4 - mov r1, #0 - bl SetBgPriority - mov r0, #5 - mov r1, #1 - bl SetBgPriority - mov r0, #6 - mov r1, #2 - bl SetBgPriority - mov r0, #7 - mov r1, #3 - bl SetBgPriority - pop {r3, pc} - thumb_func_end ov18_021E5FE8 - - thumb_func_start ov18_021E602C -ov18_021E602C: ; 0x021E602C - push {r3, lr} - mov r0, #0 - mov r1, #1 - bl SetBgPriority - mov r0, #1 - mov r1, #0 - bl SetBgPriority - mov r0, #2 - add r1, r0, #0 - bl SetBgPriority - mov r0, #3 - add r1, r0, #0 - bl SetBgPriority - mov r0, #4 - mov r1, #0 - bl SetBgPriority - mov r0, #5 - mov r1, #1 - bl SetBgPriority - mov r0, #6 - mov r1, #2 - bl SetBgPriority - mov r0, #7 - mov r1, #3 - bl SetBgPriority - pop {r3, pc} - thumb_func_end ov18_021E602C - - thumb_func_start ov18_021E6070 -ov18_021E6070: ; 0x021E6070 - push {r3, lr} - mov r0, #0 - mov r1, #1 - bl SetBgPriority - mov r0, #1 - mov r1, #0 - bl SetBgPriority - mov r0, #2 - add r1, r0, #0 - bl SetBgPriority - mov r0, #3 - add r1, r0, #0 - bl SetBgPriority - mov r0, #4 - mov r1, #3 - bl SetBgPriority - mov r0, #5 - mov r1, #0 - bl SetBgPriority - mov r0, #6 - mov r1, #1 - bl SetBgPriority - mov r0, #7 - mov r1, #2 - bl SetBgPriority - pop {r3, pc} - thumb_func_end ov18_021E6070 - - thumb_func_start ov18_021E60B4 -ov18_021E60B4: ; 0x021E60B4 - push {r3, lr} - mov r0, #0 - mov r1, #1 - bl SetBgPriority - mov r0, #1 - mov r1, #0 - bl SetBgPriority - mov r0, #2 - add r1, r0, #0 - bl SetBgPriority - mov r0, #3 - add r1, r0, #0 - bl SetBgPriority - mov r0, #4 - mov r1, #0 - bl SetBgPriority - mov r0, #5 - mov r1, #1 - bl SetBgPriority - mov r0, #6 - mov r1, #3 - bl SetBgPriority - mov r0, #7 - mov r1, #2 - bl SetBgPriority - pop {r3, pc} - thumb_func_end ov18_021E60B4 - - thumb_func_start ov18_021E60F8 -ov18_021E60F8: ; 0x021E60F8 - push {r3, lr} - mov r0, #0 - mov r1, #1 - bl SetBgPriority - mov r0, #1 - mov r1, #0 - bl SetBgPriority - mov r0, #2 - add r1, r0, #0 - bl SetBgPriority - mov r0, #3 - add r1, r0, #0 - bl SetBgPriority - mov r0, #4 - mov r1, #0 - bl SetBgPriority - mov r0, #5 - mov r1, #1 - bl SetBgPriority - mov r0, #6 - mov r1, #3 - bl SetBgPriority - mov r0, #7 - mov r1, #2 - bl SetBgPriority - pop {r3, pc} - thumb_func_end ov18_021E60F8 - - thumb_func_start ov18_021E613C -ov18_021E613C: ; 0x021E613C - push {r3, r4, r5, lr} - sub sp, #0x10 - add r5, r0, #0 - add r4, r1, #0 - beq _021E614A - cmp r4, #4 - bne _021E614E -_021E614A: - mov r0, #0x40 - b _021E6150 -_021E614E: - mov r0, #0x20 -_021E6150: - mov r2, #0 - str r2, [sp] - str r0, [sp, #4] - mov r0, #0x20 - str r0, [sp, #8] - str r2, [sp, #0xc] - ldr r0, [r5, #4] - add r1, r4, #0 - add r3, r2, #0 - bl FillBgTilemapRect - ldr r0, [r5, #4] - add r1, r4, #0 - bl ScheduleBgTilemapBufferTransfer - add sp, #0x10 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov18_021E613C - - thumb_func_start ov18_021E6174 -ov18_021E6174: ; 0x021E6174 - push {r3, lr} - mov r0, #0xa - str r0, [sp] - ldr r0, _021E6188 ; =0x04000050 - mov r1, #0 - mov r2, #0xf - mov r3, #6 - bl G2x_SetBlendAlpha_ - pop {r3, pc} - .balign 4, 0 -_021E6188: .word 0x04000050 - thumb_func_end ov18_021E6174 - - thumb_func_start ov18_021E618C -ov18_021E618C: ; 0x021E618C - push {r3, lr} - add r3, r0, #0 - str r1, [sp] - ldr r0, _021E61A0 ; =0x04000050 - mov r1, #4 - mov r2, #8 - bl G2x_SetBlendAlpha_ - pop {r3, pc} - nop -_021E61A0: .word 0x04000050 - thumb_func_end ov18_021E618C - - thumb_func_start ov18_021E61A4 -ov18_021E61A4: ; 0x021E61A4 - push {r4, lr} - add r4, r0, #0 - mov r0, #0x25 - bl PaletteData_Init - mov r1, #0x85 - lsl r1, r1, #4 - str r0, [r4, r1] - mov r0, #0xf - mov r1, #0x25 - bl ZeroPalettesByBitmask - mov r0, #0x85 - lsl r0, r0, #4 - mov r2, #2 - ldr r0, [r4, r0] - mov r1, #0 - lsl r2, r2, #8 - mov r3, #0x25 - bl PaletteData_AllocBuffers - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #1 - ldr r0, [r4, r0] - lsl r2, r1, #9 - mov r3, #0x25 - bl PaletteData_AllocBuffers - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #2 - ldr r0, [r4, r0] - lsl r2, r1, #8 - mov r3, #0x25 - bl PaletteData_AllocBuffers - mov r0, #0x85 - lsl r0, r0, #4 - mov r2, #2 - ldr r0, [r4, r0] - mov r1, #3 - lsl r2, r2, #8 - mov r3, #0x25 - bl PaletteData_AllocBuffers - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E61A4 - - thumb_func_start ov18_021E6204 -ov18_021E6204: ; 0x021E6204 - push {r4, lr} - add r4, r0, #0 - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #3 - bl PaletteData_FreeBuffers - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #2 - bl PaletteData_FreeBuffers - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #1 - bl PaletteData_FreeBuffers - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #0 - bl PaletteData_FreeBuffers - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r4, r0] - bl PaletteData_Free - pop {r4, pc} - thumb_func_end ov18_021E6204 - - thumb_func_start ov18_021E6244 -ov18_021E6244: ; 0x021E6244 - push {r4, lr} - ldr r2, _021E6274 ; =0x00000322 - add r4, r0, #0 - mov r0, #0 - mov r1, #0x1b - mov r3, #0x25 - bl NewMsgDataFromNarc - ldr r1, _021E6278 ; =0x0000065C - str r0, [r4, r1] - mov r0, #0x25 - bl MessageFormat_New - mov r1, #0x66 - lsl r1, r1, #4 - str r0, [r4, r1] - mov r0, #1 - lsl r0, r0, #0xa - mov r1, #0x25 - bl String_New - ldr r1, _021E627C ; =0x00000664 - str r0, [r4, r1] - pop {r4, pc} - .balign 4, 0 -_021E6274: .word 0x00000322 -_021E6278: .word 0x0000065C -_021E627C: .word 0x00000664 - thumb_func_end ov18_021E6244 - - thumb_func_start ov18_021E6280 -ov18_021E6280: ; 0x021E6280 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021E62A0 ; =0x00000664 - ldr r0, [r4, r0] - bl String_Delete - mov r0, #0x66 - lsl r0, r0, #4 - ldr r0, [r4, r0] - bl MessageFormat_Delete - ldr r0, _021E62A4 ; =0x0000065C - ldr r0, [r4, r0] - bl DestroyMsgData - pop {r4, pc} - .balign 4, 0 -_021E62A0: .word 0x00000664 -_021E62A4: .word 0x0000065C - thumb_func_end ov18_021E6280 - - thumb_func_start ov18_021E62A8 -ov18_021E62A8: ; 0x021E62A8 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0x4b - mov r1, #0x25 - bl NARC_New - mov r1, #0 - add r2, r1, #0 - mov r3, #0x25 - add r4, r0, #0 - str r1, [sp] - bl GfGfxLoader_LoadFromOpenNarc - ldr r1, _021E62E0 ; =0x00001850 - mov r2, #0 - str r0, [r5, r1] - add r0, r4, #0 - mov r1, #1 - mov r3, #0x25 - str r2, [sp] - bl GfGfxLoader_LoadFromOpenNarc - ldr r1, _021E62E4 ; =0x00001854 - str r0, [r5, r1] - add r0, r4, #0 - bl NARC_Delete - pop {r3, r4, r5, pc} - .balign 4, 0 -_021E62E0: .word 0x00001850 -_021E62E4: .word 0x00001854 - thumb_func_end ov18_021E62A8 - - thumb_func_start ov18_021E62E8 -ov18_021E62E8: ; 0x021E62E8 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021E6300 ; =0x00001854 - ldr r0, [r4, r0] - bl Heap_Free - ldr r0, _021E6304 ; =0x00001850 - ldr r0, [r4, r0] - bl Heap_Free - pop {r4, pc} - nop -_021E6300: .word 0x00001854 -_021E6304: .word 0x00001850 - thumb_func_end ov18_021E62E8 - - thumb_func_start ov18_021E6308 -ov18_021E6308: ; 0x021E6308 - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - ldr r0, [r4, #4] - mov r1, #2 - mov r2, #0x18 - mov r3, #0x25 - bl sub_0201956C - str r0, [r4, #8] - mov r0, #5 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0 - mov r2, #2 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #5 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #1 - mov r2, #2 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #2 - mov r2, #0 - mov r3, #0x16 - bl sub_020195F4 - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #3 - mov r2, #0 - mov r3, #0x16 - bl sub_020195F4 - mov r1, #4 - str r1, [sp] - ldr r0, [r4, #8] - mov r2, #2 - mov r3, #0x20 - bl sub_020195F4 - mov r1, #5 - str r1, [sp] - ldr r0, [r4, #8] - mov r2, #3 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #6 - mov r2, #1 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #7 - mov r2, #1 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #5 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #8 - mov r2, #2 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #0x18 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #9 - mov r2, #0 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #0x18 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0xa - mov r2, #2 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #0x18 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0xb - mov r2, #5 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #0x18 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0xc - mov r2, #6 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #0x18 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0xd - mov r2, #4 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #0x18 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0xf - mov r2, #0 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #0x18 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0xe - mov r2, #0 - mov r3, #3 - bl sub_020195F4 - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0x10 - mov r2, #1 - mov r3, #0x20 - bl sub_020195F4 - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0x17 - mov r2, #7 - mov r3, #0x14 - bl sub_020195F4 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #0 - mov r3, #5 - bl sub_020196B8 - mov r1, #1 - str r1, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r3, #6 - bl sub_020196B8 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #2 - mov r3, #7 - bl sub_020196B8 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #3 - mov r3, #8 - bl sub_020196B8 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #4 - mov r3, #9 - bl sub_020196B8 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #5 - mov r3, #0xa - bl sub_020196B8 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #6 - mov r3, #0x45 - bl sub_020196B8 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #7 - mov r3, #0x46 - bl sub_020196B8 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #8 - mov r3, #0x47 - bl sub_020196B8 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #0xd - mov r3, #0x10 - bl sub_020196B8 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #0x10 - mov r3, #0xb - bl sub_020196B8 - mov r0, #1 - str r0, [sp] - ldr r2, _021E653C ; =0x00000854 - ldr r0, [r4, #8] - ldr r2, [r4, r2] - mov r1, #0x17 - mov r3, #0x58 - bl sub_020196B8 - mov r2, #0 - str r2, [sp] - mov r0, #0x13 - str r0, [sp, #4] - ldr r0, [r4, #8] - mov r1, #0xb - mov r3, #0x20 - bl sub_02019B70 - mov r2, #0 - str r2, [sp] - mov r0, #0x13 - str r0, [sp, #4] - ldr r0, [r4, #8] - mov r1, #0xc - mov r3, #0x20 - bl sub_02019B70 - add r0, r4, #0 - bl ov18_021F0168 - add sp, #8 - pop {r4, pc} - .balign 4, 0 -_021E653C: .word 0x00000854 - thumb_func_end ov18_021E6308 - - thumb_func_start ov18_021E6540 -ov18_021E6540: ; 0x021E6540 - ldr r3, _021E6548 ; =sub_020195C0 - ldr r0, [r0, #8] - bx r3 - nop -_021E6548: .word sub_020195C0 - thumb_func_end ov18_021E6540 - - thumb_func_start ov18_021E654C -ov18_021E654C: ; 0x021E654C - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - mov r1, #0 - ldr r0, [r4, #8] - add r2, r1, #0 - mov r3, #0x18 - bl sub_020196E8 - mov r1, #0 - mov r0, #5 - str r0, [sp] - ldr r0, [r4, #8] - add r2, r1, #0 - sub r3, r1, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E654C - - thumb_func_start ov18_021E6574 -ov18_021E6574: ; 0x021E6574 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - mov r1, #0 - ldr r0, [r4, #8] - add r2, r1, #0 - mov r3, #0x13 - bl sub_020196E8 - mov r0, #5 - str r0, [sp] - mov r1, #0 - ldr r0, [r4, #8] - add r2, r1, #0 - mov r3, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E6574 - - thumb_func_start ov18_021E659C -ov18_021E659C: ; 0x021E659C - push {r3, lr} - ldr r0, [r0, #8] - mov r1, #4 - mov r2, #0 - mov r3, #0xf - bl sub_020196E8 - pop {r3, pc} - thumb_func_end ov18_021E659C - - thumb_func_start ov18_021E65AC -ov18_021E65AC: ; 0x021E65AC - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #1 - mov r2, #0 - mov r3, #0x18 - bl sub_020196E8 - mov r0, #5 - str r0, [sp] - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #1 - sub r3, r2, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E65AC - - thumb_func_start ov18_021E65D4 -ov18_021E65D4: ; 0x021E65D4 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #1 - mov r2, #0 - mov r3, #0x13 - bl sub_020196E8 - mov r0, #5 - str r0, [sp] - mov r1, #1 - ldr r0, [r4, #8] - mov r2, #0 - add r3, r1, #0 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E65D4 - - thumb_func_start ov18_021E65FC -ov18_021E65FC: ; 0x021E65FC - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #6 - mov r2, #0 - mov r3, #0x18 - bl sub_020196E8 - mov r0, #4 - str r0, [sp] - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #6 - sub r3, r2, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E65FC - - thumb_func_start ov18_021E6624 -ov18_021E6624: ; 0x021E6624 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #6 - mov r2, #0 - mov r3, #0x14 - bl sub_020196E8 - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #6 - mov r2, #0 - mov r3, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E6624 - - thumb_func_start ov18_021E664C -ov18_021E664C: ; 0x021E664C - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #7 - mov r2, #0 - mov r3, #0x18 - bl sub_020196E8 - mov r0, #4 - str r0, [sp] - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #7 - sub r3, r2, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E664C - - thumb_func_start ov18_021E6674 -ov18_021E6674: ; 0x021E6674 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #7 - mov r2, #0 - mov r3, #0x14 - bl sub_020196E8 - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #7 - mov r2, #0 - mov r3, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E6674 - - thumb_func_start ov18_021E669C -ov18_021E669C: ; 0x021E669C - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #8 - mov r2, #0 - mov r3, #0x18 - bl sub_020196E8 - mov r0, #5 - str r0, [sp] - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #8 - sub r3, r2, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E669C - - thumb_func_start ov18_021E66C4 -ov18_021E66C4: ; 0x021E66C4 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #8 - mov r2, #0 - mov r3, #0x13 - bl sub_020196E8 - mov r0, #5 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #8 - mov r2, #0 - mov r3, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E66C4 - - thumb_func_start ov18_021E66EC -ov18_021E66EC: ; 0x021E66EC - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #0x10 - mov r2, #0 - mov r3, #0x18 - bl sub_020196E8 - mov r0, #4 - str r0, [sp] - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #0x10 - sub r3, r2, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E66EC - - thumb_func_start ov18_021E6714 -ov18_021E6714: ; 0x021E6714 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #0x10 - mov r2, #0 - mov r3, #0x14 - bl sub_020196E8 - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0x10 - mov r2, #0 - mov r3, #1 - bl sub_020198FC - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E6714 - - thumb_func_start ov18_021E673C -ov18_021E673C: ; 0x021E673C - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - ldr r0, [r5, #8] - mov r1, #0x10 - bl sub_02019B08 - ldr r1, _021E678C ; =0x000018A2 - add r4, r0, #0 - ldr r0, [r5] - ldrh r1, [r5, r1] - ldr r0, [r0] - bl Pokedex_CheckMonCaughtFlag - cmp r0, #0 - beq _021E675E - mov r5, #0 - b _021E6762 -_021E675E: - mov r5, #0xb - lsl r5, r5, #0xc -_021E6762: - mov r0, #0 - ldr r6, _021E6790 ; =0x00000FFF - add r2, r0, #0 -_021E6768: - lsl r3, r2, #1 - add r3, r4, r3 - mov r1, #8 - add r3, #0x10 -_021E6770: - ldrh r7, [r3] - add r1, r1, #1 - and r7, r6 - orr r7, r5 - strh r7, [r3] - add r3, r3, #2 - cmp r1, #0x10 - blo _021E6770 - add r0, r0, #1 - add r2, #0x20 - cmp r0, #4 - blo _021E6768 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E678C: .word 0x000018A2 -_021E6790: .word 0x00000FFF - thumb_func_end ov18_021E673C - - thumb_func_start ov18_021E6794 -ov18_021E6794: ; 0x021E6794 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #0x17 - mov r2, #0xa - mov r3, #0xb - bl sub_020196E8 - add r4, #0x3c - add r0, r4, #0 - bl ScheduleWindowCopyToVram - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E6794 - - thumb_func_start ov18_021E67B0 -ov18_021E67B0: ; 0x021E67B0 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #0x17 - bl sub_0201980C - add r4, #0x3c - add r0, r4, #0 - bl ClearWindowTilemapAndScheduleTransfer - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E67B0 - - thumb_func_start ov18_021E67C8 -ov18_021E67C8: ; 0x021E67C8 - push {r4, lr} - add r4, r0, #0 - cmp r1, #5 - bhi _021E6864 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021E67DC: ; jump table - .short _021E67E8 - _021E67DC - 2 ; case 0 - .short _021E67FE - _021E67DC - 2 ; case 1 - .short _021E6814 - _021E67DC - 2 ; case 2 - .short _021E682A - _021E67DC - 2 ; case 3 - .short _021E6840 - _021E67DC - 2 ; case 4 - .short _021E6850 - _021E67DC - 2 ; case 5 -_021E67E8: - bl ov18_021E6868 - bl ov18_021E5FA4 - add r0, r4, #0 - bl ov18_021EE3FC - add r0, r4, #0 - bl ov18_021F2880 - pop {r4, pc} -_021E67FE: - bl ov18_021E7BD0 - bl ov18_021E6070 - add r0, r4, #0 - bl ov18_021F021C - add r0, r4, #0 - bl ov18_021F3D98 - pop {r4, pc} -_021E6814: - bl ov18_021E7D90 - bl ov18_021E60B4 - add r0, r4, #0 - bl ov18_021F05E8 - add r0, r4, #0 - bl ov18_021F49F8 - pop {r4, pc} -_021E682A: - bl ov18_021E800C - bl ov18_021E602C - add r0, r4, #0 - bl ov18_021F0900 - add r0, r4, #0 - bl ov18_021F5DC0 - pop {r4, pc} -_021E6840: - bl ov18_021E7ED8 - bl ov18_021E60F8 - add r0, r4, #0 - bl ov18_021F0858 - pop {r4, pc} -_021E6850: - bl ov18_021E7048 - bl ov18_021E5FE8 - add r0, r4, #0 - bl ov18_021EEE58 - add r0, r4, #0 - bl ov18_021F2F3C -_021E6864: - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E67C8 - - thumb_func_start ov18_021E6868 -ov18_021E6868: ; 0x021E6868 - push {r4, r5, lr} - sub sp, #0x14 - add r4, r0, #0 - mov r1, #1 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #2 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #3 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #4 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #5 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #6 - bl ov18_021E613C - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - mov r1, #1 - str r1, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E6A64 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0x25 - str r0, [sp] - ldr r0, _021E6A64 ; =0x00000854 - mov r1, #0 - ldr r0, [r4, r0] - mov r2, #1 - add r3, sp, #0x10 - bl GfGfxLoader_GetScrnDataFromOpenNarc - ldr r2, [sp, #0x10] - add r5, r0, #0 - mov r3, #1 - ldr r0, [r4, #4] - mov r1, #0 - add r2, #0xc - lsl r3, r3, #0xc - bl BG_LoadScreenTilemapData - add r0, r5, #0 - bl Heap_Free - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E6A64 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #4 - mov r3, #2 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E6A64 ; =0x00000854 - mov r1, #3 - ldr r0, [r4, r0] - ldr r2, [r4, #4] - add r3, r1, #0 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r4, r1] - add r1, r1, #4 - ldr r1, [r4, r1] - mov r2, #2 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E6A64 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x11 - mov r3, #4 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E6A64 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x10 - mov r3, #4 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E6A64 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x13 - mov r3, #7 - bl GfGfxLoader_LoadCharDataFromOpenNarc - ldr r0, _021E6A68 ; =0x0000185C - ldrb r0, [r4, r0] - cmp r0, #2 - bne _021E69AA - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E6A64 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x14 - mov r3, #7 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - b _021E69C6 -_021E69AA: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E6A64 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x15 - mov r3, #7 - bl GfGfxLoader_LoadScrnDataFromOpenNarc -_021E69C6: - mov r0, #1 - str r0, [sp] - mov r0, #0 - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r4, r1] - add r1, r1, #4 - ldr r1, [r4, r1] - mov r2, #0x12 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - ldr r0, _021E6A6C ; =0x00001860 - ldr r0, [r4, r0] - cmp r0, #0 - bne _021E6A06 - mov r0, #0xf - str r0, [sp] - mov r0, #0x1a - str r0, [sp, #4] - mov r0, #2 - str r0, [sp, #8] - mov r0, #0x10 - str r0, [sp, #0xc] - ldr r0, [r4, #4] - mov r1, #0 - mov r2, #0x16 - mov r3, #3 - bl FillBgTilemapRect -_021E6A06: - add r0, r4, #0 - bl ov18_021E6A70 - mov r1, #0 - ldr r0, [r4, #8] - add r2, r1, #0 - mov r3, #0x13 - bl sub_020196E8 - add r0, r4, #0 - bl ov18_021E6C98 - ldr r0, [r4, #4] - mov r1, #0 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #1 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #3 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #4 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #5 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #6 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #7 - bl ScheduleBgTilemapBufferTransfer - add sp, #0x14 - pop {r4, r5, pc} - nop -_021E6A64: .word 0x00000854 -_021E6A68: .word 0x0000185C -_021E6A6C: .word 0x00001860 - thumb_func_end ov18_021E6868 - - thumb_func_start ov18_021E6A70 -ov18_021E6A70: ; 0x021E6A70 - push {r3, lr} - ldr r1, _021E6A94 ; =0x00001858 - ldrb r1, [r0, r1] - ldr r0, [r0, #8] - cmp r1, #0 - bne _021E6A88 - mov r1, #2 - mov r2, #5 - mov r3, #3 - bl sub_020196E8 - pop {r3, pc} -_021E6A88: - mov r1, #3 - mov r2, #5 - add r3, r1, #0 - bl sub_020196E8 - pop {r3, pc} - .balign 4, 0 -_021E6A94: .word 0x00001858 - thumb_func_end ov18_021E6A70 - - thumb_func_start ov18_021E6A98 -ov18_021E6A98: ; 0x021E6A98 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r1, #0 - ldr r1, _021E6AE8 ; =_021F973C - str r2, [sp] - ldrb r2, [r1] - add r7, r0, #0 - add r0, sp, #4 - strb r2, [r0] - ldrb r2, [r1, #1] - ldrb r1, [r1, #2] - mov r4, #0 - strb r2, [r0, #1] - strb r1, [r0, #2] -_021E6AB4: - add r0, sp, #4 - ldrb r6, [r0, r4] - add r0, r5, #0 - add r1, r6, #0 - bl _s32_div_f - ldr r1, [sp] - add r1, r1, r0 - mov r0, #1 - lsl r0, r0, #0xc - orr r1, r0 - lsl r0, r4, #1 - strh r1, [r7, r0] - add r0, r5, #0 - add r1, r6, #0 - bl _u32_div_f - lsl r0, r1, #0x10 - lsr r5, r0, #0x10 - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #3 - blo _021E6AB4 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021E6AE8: .word _021F973C - thumb_func_end ov18_021E6A98 - - thumb_func_start ov18_021E6AEC -ov18_021E6AEC: ; 0x021E6AEC - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - str r1, [sp, #4] - mov r1, #0x32 - str r0, [sp] - mov r0, #0x25 - lsl r1, r1, #6 - bl Heap_AllocAtEnd - add r6, r0, #0 - ldr r0, [sp] - mov r1, #5 - ldr r0, [r0, #8] - bl sub_02019B08 - str r0, [sp, #0x14] - ldr r0, [sp] - mov r1, #1 - bl ov18_021F891C - str r0, [sp, #0x10] - mov r0, #0 - str r0, [sp, #0xc] -_021E6B1A: - ldr r0, [sp, #0xc] - mov r2, #0xa0 - add r5, r0, #0 - mul r5, r2 - lsl r1, r5, #1 - ldr r0, [sp, #0x14] - add r1, r6, r1 - add r2, #0xa0 - bl MIi_CpuCopy16 - ldr r0, [sp, #0xc] - mov r4, #0 - lsl r1, r0, #2 - add r1, r0, r1 - ldr r0, [sp, #4] - add r0, r0, r1 - str r0, [sp, #8] - lsl r0, r5, #1 - add r7, r6, r0 - add r5, #0x25 -_021E6B42: - ldr r0, [sp, #8] - add r1, r4, r0 - ldr r0, [sp, #0x10] - cmp r1, r0 - bhs _021E6B9C - ldr r0, [sp] - lsl r2, r1, #2 - add r2, r0, r2 - ldr r0, _021E6BB0 ; =0x00001032 - ldrh r0, [r2, r0] - cmp r0, #2 - bne _021E6B7C - lsl r0, r4, #2 - add r3, r4, r0 - lsl r0, r3, #1 - add r2, r7, r0 - ldr r0, _021E6BB4 ; =0x00001002 - add r2, #0x48 - strh r0, [r2] - add r0, r5, r3 - add r1, r1, #1 - lsl r0, r0, #1 - lsl r1, r1, #0x10 - add r0, r6, r0 - lsr r1, r1, #0x10 - mov r2, #3 - bl ov18_021E6A98 - b _021E6B92 -_021E6B7C: - lsl r0, r4, #2 - add r0, r4, r0 - add r0, r5, r0 - add r1, r1, #1 - lsl r0, r0, #1 - lsl r1, r1, #0x10 - add r0, r6, r0 - lsr r1, r1, #0x10 - mov r2, #0xe - bl ov18_021E6A98 -_021E6B92: - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #5 - blo _021E6B42 -_021E6B9C: - ldr r0, [sp, #0xc] - add r0, r0, #1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0xc] - cmp r0, #0xa - blo _021E6B1A - add r0, r6, #0 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021E6BB0: .word 0x00001032 -_021E6BB4: .word 0x00001002 - thumb_func_end ov18_021E6AEC - - thumb_func_start ov18_021E6BB8 -ov18_021E6BB8: ; 0x021E6BB8 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - str r1, [sp] - mov r1, #0x32 - add r7, r0, #0 - mov r0, #0x25 - lsl r1, r1, #6 - bl Heap_AllocAtEnd - add r6, r0, #0 - ldr r0, [r7, #8] - mov r1, #5 - bl sub_02019B08 - str r0, [sp, #0x14] - mov r0, #0 - str r0, [sp, #0x10] -_021E6BDA: - ldr r0, [sp, #0x10] - mov r2, #0xa0 - add r5, r0, #0 - mul r5, r2 - lsl r1, r5, #1 - ldr r0, [sp, #0x14] - add r1, r6, r1 - add r2, #0xa0 - bl MIi_CpuCopy16 - ldr r0, [sp, #0x10] - mov r4, #0 - lsl r1, r0, #2 - add r1, r0, r1 - ldr r0, [sp] - add r0, r0, r1 - str r0, [sp, #0xc] - lsl r0, r5, #1 - add r0, r6, r0 - str r0, [sp, #8] - add r5, #0x25 -_021E6C04: - ldr r0, [sp, #0xc] - add r0, r4, r0 - lsl r0, r0, #2 - add r1, r7, r0 - ldr r0, _021E6C80 ; =0x00001030 - str r1, [sp, #4] - ldrh r1, [r1, r0] - cmp r1, #0 - beq _021E6C60 - ldr r0, _021E6C84 ; =0x00001858 - ldrb r0, [r7, r0] - bl Pokedex_ConvertToCurrentDexNo - add r1, r0, #0 - ldr r2, [sp, #4] - ldr r0, _021E6C88 ; =0x00001032 - ldrh r0, [r2, r0] - cmp r0, #2 - bne _021E6C4C - lsl r0, r4, #2 - add r0, r4, r0 - lsl r3, r0, #1 - ldr r2, [sp, #8] - add r0, r5, r0 - add r3, r2, r3 - lsl r0, r0, #1 - lsl r1, r1, #0x10 - ldr r2, _021E6C8C ; =0x00001002 - add r3, #0x48 - strh r2, [r3] - add r0, r6, r0 - lsr r1, r1, #0x10 - mov r2, #3 - bl ov18_021E6A98 - b _021E6C60 -_021E6C4C: - lsl r0, r4, #2 - add r0, r4, r0 - add r0, r5, r0 - lsl r0, r0, #1 - lsl r1, r1, #0x10 - add r0, r6, r0 - lsr r1, r1, #0x10 - mov r2, #0xe - bl ov18_021E6A98 -_021E6C60: - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #5 - blo _021E6C04 - ldr r0, [sp, #0x10] - add r0, r0, #1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x10] - cmp r0, #0xa - blo _021E6BDA - add r0, r6, #0 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E6C80: .word 0x00001030 -_021E6C84: .word 0x00001858 -_021E6C88: .word 0x00001032 -_021E6C8C: .word 0x00001002 - thumb_func_end ov18_021E6BB8 - - thumb_func_start ov18_021E6C90 -ov18_021E6C90: ; 0x021E6C90 - ldr r3, _021E6C94 ; =Heap_Free - bx r3 - .balign 4, 0 -_021E6C94: .word Heap_Free - thumb_func_end ov18_021E6C90 - - thumb_func_start ov18_021E6C98 -ov18_021E6C98: ; 0x021E6C98 - push {r3, r4, r5, lr} - ldr r1, _021E6CBC ; =0x00001859 - add r4, r0, #0 - ldrb r2, [r4, r1] - mov r1, #0xf - mul r1, r2 - bl ov18_021E6AEC - add r5, r0, #0 - add r0, r4, #0 - add r1, r5, #0 - bl ov18_021E6CE8 - add r0, r5, #0 - bl ov18_021E6C90 - pop {r3, r4, r5, pc} - nop -_021E6CBC: .word 0x00001859 - thumb_func_end ov18_021E6C98 - - thumb_func_start ov18_021E6CC0 -ov18_021E6CC0: ; 0x021E6CC0 - push {r3, r4, r5, lr} - ldr r1, _021E6CE4 ; =0x00001859 - add r4, r0, #0 - ldrb r2, [r4, r1] - mov r1, #0xf - mul r1, r2 - bl ov18_021E6BB8 - add r5, r0, #0 - add r0, r4, #0 - add r1, r5, #0 - bl ov18_021E6CE8 - add r0, r5, #0 - bl ov18_021E6C90 - pop {r3, r4, r5, pc} - nop -_021E6CE4: .word 0x00001859 - thumb_func_end ov18_021E6CC0 - - thumb_func_start ov18_021E6CE8 -ov18_021E6CE8: ; 0x021E6CE8 - push {r3, r4, lr} - sub sp, #0xc - mov r3, #0 - add r4, r0, #0 - str r3, [sp] - mov r0, #0x20 - str r0, [sp, #4] - mov r0, #0x18 - str r0, [sp, #8] - add r2, r1, #0 - ldr r0, [r4, #4] - mov r1, #3 - bl LoadRectToBgTilemapRect - ldr r0, [r4, #4] - mov r1, #3 - bl ScheduleBgTilemapBufferTransfer - add sp, #0xc - pop {r3, r4, pc} - thumb_func_end ov18_021E6CE8 - - thumb_func_start ov18_021E6D10 -ov18_021E6D10: ; 0x021E6D10 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r0, [r5] - add r4, r1, #0 - ldr r0, [r0] - add r6, r2, #0 - bl Pokedex_GetInternationalViewFlag - cmp r0, #0 - bne _021E6D28 - mov r0, #0 - pop {r4, r5, r6, pc} -_021E6D28: - ldr r0, [r5] - add r1, r4, #0 - ldr r0, [r0] - add r2, r6, #0 - bl Pokedex_HasCaughtMonWithLanguage - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov18_021E6D10 - - thumb_func_start ov18_021E6D38 -ov18_021E6D38: ; 0x021E6D38 - push {r3, r4, r5, r6, r7, lr} - ldr r5, _021E6D64 ; =_021F9C18 - add r6, r0, #0 - add r7, r1, #0 - mov r4, #0 -_021E6D42: - ldrb r2, [r5] - cmp r2, #2 - beq _021E6D58 - add r0, r6, #0 - add r1, r7, #0 - bl ov18_021E6D10 - cmp r0, #1 - bne _021E6D58 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021E6D58: - add r4, r4, #1 - add r5, r5, #1 - cmp r4, #6 - blo _021E6D42 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021E6D64: .word _021F9C18 - thumb_func_end ov18_021E6D38 - - thumb_func_start ov18_021E6D68 -ov18_021E6D68: ; 0x021E6D68 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - str r1, [sp, #4] - add r5, r0, #0 - str r2, [sp, #8] - ldr r0, [r5] - ldr r0, [r0] - bl Pokedex_GetInternationalViewFlag - cmp r0, #0 - beq _021E6E34 - ldr r0, _021E6E38 ; =0x0000185C - ldrb r0, [r5, r0] - bl LanguageToDexFlag - lsl r0, r0, #0x10 - asr r7, r0, #0x10 - mov r6, #0 -_021E6D8C: - ldr r1, [sp, #8] - add r0, r7, #0 - bl sub_020912D0 - add r7, r0, #0 - bl sub_02091294 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - ldr r0, _021E6E38 ; =0x0000185C - ldrb r0, [r5, r0] - cmp r4, r0 - beq _021E6E34 - lsl r2, r4, #0x10 - ldr r1, [sp, #4] - add r0, r5, #0 - lsr r2, r2, #0x10 - bl ov18_021E6D10 - cmp r0, #1 - beq _021E6DBA - cmp r4, #2 - bne _021E6E2E -_021E6DBA: - add r0, r5, #0 - bl ov18_021F8824 - add r6, r0, #0 - ldr r0, _021E6E38 ; =0x0000185C - mov r2, #6 - strb r4, [r5, r0] - ldr r1, [sp, #4] - add r0, r5, #0 - bl ov18_021EE638 - mov r0, #0x25 - str r0, [sp] - ldr r2, _021E6E38 ; =0x0000185C - ldr r3, _021E6E3C ; =0x00000854 - ldrb r2, [r5, r2] - ldr r0, [r5, #4] - ldr r3, [r5, r3] - mov r1, #7 - bl ov18_021E6F6C - ldr r1, [sp, #4] - add r0, r5, #0 - add r2, r6, #0 - bl ov18_021EE8B8 - ldr r1, [sp, #4] - add r0, r5, #0 - mov r2, #8 - bl ov18_021F24E0 - ldr r1, [sp, #4] - add r0, r5, #0 - mov r2, #0x12 - bl ov18_021F2530 - ldr r1, [sp, #4] - add r0, r5, #0 - add r2, r6, #0 - mov r3, #0xe - bl ov18_021F209C - ldr r1, [sp, #4] - add r0, r5, #0 - add r2, r6, #0 - mov r3, #0xd - bl ov18_021F1DE4 - add r0, r5, #0 - add r1, r6, #0 - mov r2, #9 - bl ov18_021F2EC8 - ldr r0, _021E6E40 ; =0x000008E8 - bl PlaySE - add sp, #0xc - pop {r4, r5, r6, r7, pc} -_021E6E2E: - add r6, r6, #1 - cmp r6, #6 - blo _021E6D8C -_021E6E34: - add sp, #0xc - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021E6E38: .word 0x0000185C -_021E6E3C: .word 0x00000854 -_021E6E40: .word 0x000008E8 - thumb_func_end ov18_021E6D68 - - thumb_func_start ov18_021E6E44 -ov18_021E6E44: ; 0x021E6E44 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r0, #0 - bl ov18_021F8824 - add r6, r0, #0 - add r0, r5, #0 - bl ov18_021F8838 - add r4, r0, #0 - bne _021E6E70 - add r0, r5, #0 - mov r1, #6 - mov r2, #0 - bl ov18_021F2A2C - add r0, r5, #0 - mov r1, #8 - mov r2, #0 - bl ov18_021F2A84 - b _021E6E9C -_021E6E70: - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E6D38 - cmp r0, #1 - bne _021E6E88 - add r0, r5, #0 - mov r1, #6 - mov r2, #1 - bl ov18_021F2A2C - b _021E6E92 -_021E6E88: - add r0, r5, #0 - mov r1, #6 - mov r2, #0 - bl ov18_021F2A2C -_021E6E92: - add r0, r5, #0 - mov r1, #8 - mov r2, #1 - bl ov18_021F2A84 -_021E6E9C: - ldr r2, _021E6F64 ; =0x0000185C - add r0, r5, #0 - ldrb r2, [r5, r2] - add r1, r4, #0 - bl ov18_021E6D10 - cmp r0, #0 - bne _021E6EB2 - ldr r0, _021E6F64 ; =0x0000185C - mov r1, #2 - strb r1, [r5, r0] -_021E6EB2: - add r0, r5, #0 - add r1, r4, #0 - mov r2, #6 - bl ov18_021EE638 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov18_021EE6BC - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov18_021EE8B8 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0xb - mov r3, #0xa - bl ov18_021F1CAC - add r0, r5, #0 - add r1, r4, #0 - mov r2, #8 - bl ov18_021F24E0 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x12 - bl ov18_021F2530 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - mov r3, #0xe - bl ov18_021F209C - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - mov r3, #0xd - bl ov18_021F1DE4 - add r0, r5, #0 - add r1, r6, #0 - mov r2, #9 - bl ov18_021F2EC8 - add r0, r5, #0 - mov r1, #1 - bl ov18_021F891C - cmp r6, r0 - blo _021E6F42 - ldr r2, _021E6F68 ; =0x00000854 - ldr r0, [r5, #4] - ldr r2, [r5, r2] - mov r1, #7 - mov r3, #0x25 - bl ov18_021E6FB8 - add r0, r5, #0 - add r0, #0x7c - bl ClearWindowTilemapAndScheduleTransfer - add r0, r5, #0 - mov r1, #0xa - mov r2, #0 - bl ov18_021F11C0 - add sp, #4 - pop {r3, r4, r5, r6, pc} -_021E6F42: - mov r0, #0x25 - str r0, [sp] - ldr r2, _021E6F64 ; =0x0000185C - ldr r3, _021E6F68 ; =0x00000854 - ldrb r2, [r5, r2] - ldr r0, [r5, #4] - ldr r3, [r5, r3] - mov r1, #7 - bl ov18_021E6F6C - add r5, #0x7c - add r0, r5, #0 - bl ScheduleWindowCopyToVram - add sp, #4 - pop {r3, r4, r5, r6, pc} - nop -_021E6F64: .word 0x0000185C -_021E6F68: .word 0x00000854 - thumb_func_end ov18_021E6E44 - - thumb_func_start ov18_021E6F6C -ov18_021E6F6C: ; 0x021E6F6C - push {r4, r5, r6, lr} - sub sp, #0x10 - add r5, r0, #0 - add r4, r1, #0 - cmp r2, #2 - bne _021E6F7C - mov r1, #0x14 - b _021E6F7E -_021E6F7C: - mov r1, #0x15 -_021E6F7E: - ldr r0, [sp, #0x20] - mov r2, #1 - str r0, [sp] - add r0, r3, #0 - add r3, sp, #0xc - bl GfGfxLoader_GetScrnDataFromOpenNarc - mov r3, #0 - add r6, r0, #0 - str r3, [sp] - mov r0, #0x20 - str r0, [sp, #4] - mov r0, #0x18 - str r0, [sp, #8] - ldr r2, [sp, #0xc] - add r0, r5, #0 - add r1, r4, #0 - add r2, #0xc - bl LoadRectToBgTilemapRect - add r0, r5, #0 - add r1, r4, #0 - bl ScheduleBgTilemapBufferTransfer - add r0, r6, #0 - bl Heap_Free - add sp, #0x10 - pop {r4, r5, r6, pc} - thumb_func_end ov18_021E6F6C - - thumb_func_start ov18_021E6FB8 -ov18_021E6FB8: ; 0x021E6FB8 - push {r4, r5, r6, lr} - sub sp, #0x10 - add r5, r0, #0 - add r4, r1, #0 - str r3, [sp] - add r0, r2, #0 - mov r1, #0x16 - mov r2, #1 - add r3, sp, #0xc - bl GfGfxLoader_GetScrnDataFromOpenNarc - mov r3, #0 - add r6, r0, #0 - str r3, [sp] - mov r0, #0x20 - str r0, [sp, #4] - mov r0, #0x18 - str r0, [sp, #8] - ldr r2, [sp, #0xc] - add r0, r5, #0 - add r1, r4, #0 - add r2, #0xc - bl LoadRectToBgTilemapRect - add r0, r5, #0 - add r1, r4, #0 - bl ScheduleBgTilemapBufferTransfer - add r0, r6, #0 - bl Heap_Free - add sp, #0x10 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov18_021E6FB8 - - thumb_func_start ov18_021E6FFC -ov18_021E6FFC: ; 0x021E6FFC - push {r3, r4} - ldr r1, _021E7044 ; =0x00001868 - mov r2, #0 - str r2, [r0, r1] - mov r4, #0x1a - add r3, r1, #4 - str r4, [r0, r3] - add r3, r1, #0 - mov r4, #0x11 - add r3, #8 - str r4, [r0, r3] - add r3, r1, #0 - add r3, #0xc - str r4, [r0, r3] - add r3, r1, #0 - add r3, #0x10 - str r2, [r0, r3] - add r3, r1, #0 - mov r4, #0x98 - add r3, #0x14 - str r4, [r0, r3] - add r3, r1, #0 - add r3, #0x18 - str r2, [r0, r3] - add r2, r1, #0 - add r2, #0x1c - str r4, [r0, r2] - add r2, r1, #0 - mov r3, #3 - add r2, #0x20 - str r3, [r0, r2] - mov r2, #0xe - add r1, #0x24 - str r2, [r0, r1] - pop {r3, r4} - bx lr - .balign 4, 0 -_021E7044: .word 0x00001868 - thumb_func_end ov18_021E6FFC - - thumb_func_start ov18_021E7048 -ov18_021E7048: ; 0x021E7048 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0 - mov r1, #0 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #1 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #3 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #4 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #5 - bl ov18_021E613C - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r3, #1 - str r3, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E71CC ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #4 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E71CC ; =0x00000854 - mov r1, #3 - ldr r0, [r4, r0] - ldr r2, [r4, #4] - add r3, r1, #0 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E71CC ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x3a - mov r3, #2 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E71CC ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x39 - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r4, r1] - add r1, r1, #4 - ldr r1, [r4, r1] - mov r2, #2 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E71CC ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x3a - mov r3, #6 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E71CC ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x3a - mov r3, #7 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E71CC ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x3b - mov r3, #7 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E71CC ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x3c - mov r3, #6 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #1 - str r0, [sp] - mov r0, #0 - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r4, r1] - add r1, r1, #4 - ldr r1, [r4, r1] - mov r2, #0x12 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - ldr r0, [r4, #4] - mov r1, #0 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #1 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #3 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #4 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #5 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #6 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #7 - bl ScheduleBgTilemapBufferTransfer - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 -_021E71CC: .word 0x00000854 - thumb_func_end ov18_021E7048 - - thumb_func_start ov18_021E71D0 -ov18_021E71D0: ; 0x021E71D0 - push {r3, r4, r5, lr} - sub sp, #0x10 - add r4, r0, #0 - add r5, r2, #0 - cmp r1, #7 - bls _021E71DE - b _021E7426 -_021E71DE: - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E71EA: ; jump table - .short _021E71FA - _021E71EA - 2 ; case 0 - .short _021E723E - _021E71EA - 2 ; case 1 - .short _021E728C - _021E71EA - 2 ; case 2 - .short _021E72D4 - _021E71EA - 2 ; case 3 - .short _021E7316 - _021E71EA - 2 ; case 4 - .short _021E7352 - _021E71EA - 2 ; case 5 - .short _021E738E - _021E71EA - 2 ; case 6 - .short _021E73E2 - _021E71EA - 2 ; case 7 -_021E71FA: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E742C ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x39 - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - add r0, r4, #0 - add r1, r5, #0 - bl ov18_021F6DE0 - add r0, r4, #0 - mov r1, #0 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021EF45C - add r0, r4, #0 - bl ov18_021EF528 - add r0, r4, #0 - mov r1, #0 - bl ov18_021F3618 - add sp, #0x10 - pop {r3, r4, r5, pc} -_021E723E: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E742C ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x3e - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - ldr r1, _021E7430 ; =0x00001868 - ldr r2, _021E7434 ; =_021F9780 - ldr r1, [r4, r1] - add r0, r4, #0 - lsl r1, r1, #2 - add r1, r2, r1 - mov r2, #1 - bl ov18_021E7448 - add r0, r4, #0 - bl ov18_021F6EC0 - add r0, r4, #0 - mov r1, #2 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021EF5D8 - add r0, r4, #0 - mov r1, #4 - bl ov18_021F3618 - add sp, #0x10 - pop {r3, r4, r5, pc} -_021E728C: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E742C ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x3f - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - ldr r1, _021E7438 ; =0x0000186C - add r0, r4, #0 - ldr r1, [r4, r1] - mov r2, #1 - bl ov18_021E76A4 - add r0, r4, #0 - bl ov18_021F6FA0 - add r0, r4, #0 - mov r1, #3 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021EF764 - add r0, r4, #0 - mov r1, #4 - bl ov18_021F3618 - add sp, #0x10 - pop {r3, r4, r5, pc} -_021E72D4: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E742C ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x40 - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - add r0, r4, #0 - bl ov18_021E74E4 - add r0, r4, #0 - bl ov18_021F7124 - add r0, r4, #0 - mov r1, #4 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021EF848 - add r0, r4, #0 - mov r1, #4 - bl ov18_021F3618 - add sp, #0x10 - pop {r3, r4, r5, pc} -_021E7316: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E742C ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x41 - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - add r0, r4, #0 - bl ov18_021F7354 - add r0, r4, #0 - mov r1, #5 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021EF91C - add r0, r4, #0 - mov r1, #2 - bl ov18_021F3618 - add sp, #0x10 - pop {r3, r4, r5, pc} -_021E7352: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E742C ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x42 - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - add r0, r4, #0 - bl ov18_021F74D8 - add r0, r4, #0 - mov r1, #6 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021EF9B4 - add r0, r4, #0 - mov r1, #3 - bl ov18_021F3618 - add sp, #0x10 - pop {r3, r4, r5, pc} -_021E738E: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E742C ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x43 - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - ldr r1, _021E743C ; =0x00001888 - ldr r2, _021E7440 ; =_021F9770 - ldr r1, [r4, r1] - add r0, r4, #0 - lsl r1, r1, #2 - add r1, r2, r1 - mov r2, #1 - bl ov18_021E7448 - add r0, r4, #0 - bl ov18_021F7668 - add r0, r4, #0 - mov r1, #7 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021EFA50 - add r0, r4, #0 - mov r1, #4 - bl ov18_021F3618 - add r0, r4, #0 - bl ov18_021E7564 - add sp, #0x10 - pop {r3, r4, r5, pc} -_021E73E2: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E742C ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x44 - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - ldr r1, _021E7444 ; =0x0000188C - add r0, r4, #0 - ldr r1, [r4, r1] - mov r2, #1 - bl ov18_021E7628 - add r0, r4, #0 - bl ov18_021F7748 - add r0, r4, #0 - mov r1, #8 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021EFB88 - add r0, r4, #0 - mov r1, #1 - bl ov18_021F3618 -_021E7426: - add sp, #0x10 - pop {r3, r4, r5, pc} - nop -_021E742C: .word 0x00000854 -_021E7430: .word 0x00001868 -_021E7434: .word _021F9780 -_021E7438: .word 0x0000186C -_021E743C: .word 0x00001888 -_021E7440: .word _021F9770 -_021E7444: .word 0x0000188C - thumb_func_end ov18_021E71D0 - - thumb_func_start ov18_021E7448 -ov18_021E7448: ; 0x021E7448 - push {r3, r4, lr} - sub sp, #0xc - add r3, r1, #0 - add r4, r0, #0 - cmp r2, #1 - ldrb r0, [r3, #2] - bne _021E746E - str r0, [sp] - ldrb r0, [r3, #3] - mov r1, #2 - str r0, [sp, #4] - mov r0, #3 - str r0, [sp, #8] - ldrb r2, [r3] - ldrb r3, [r3, #1] - ldr r0, [r4, #4] - bl BgTilemapRectChangePalette - b _021E7482 -_021E746E: - str r0, [sp] - ldrb r0, [r3, #3] - mov r1, #2 - str r0, [sp, #4] - str r1, [sp, #8] - ldrb r2, [r3] - ldrb r3, [r3, #1] - ldr r0, [r4, #4] - bl BgTilemapRectChangePalette -_021E7482: - ldr r0, [r4, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021E7448 - - thumb_func_start ov18_021E7490 -ov18_021E7490: ; 0x021E7490 - push {r3, r4, r5, r6, r7, lr} - add r4, r2, #0 - add r5, r1, #0 - ldr r1, [r4] - add r6, r3, #0 - lsl r1, r1, #2 - add r1, r5, r1 - mov r2, #0 - add r7, r0, #0 - bl ov18_021E7448 - lsl r1, r6, #2 - add r0, r7, #0 - add r1, r5, r1 - mov r2, #1 - str r6, [r4] - bl ov18_021E7448 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov18_021E7490 - - thumb_func_start ov18_021E74B8 -ov18_021E74B8: ; 0x021E74B8 - push {r4, lr} - ldr r2, _021E74DC ; =0x00001868 - add r4, r0, #0 - add r3, r1, #0 - ldr r1, _021E74E0 ; =_021F9780 - add r2, r4, r2 - bl ov18_021E7490 - add r0, r4, #0 - mov r1, #0x25 - bl ov18_021EFBE8 - mov r0, #0x97 - lsl r0, r0, #2 - add r0, r4, r0 - bl ScheduleWindowCopyToVram - pop {r4, pc} - .balign 4, 0 -_021E74DC: .word 0x00001868 -_021E74E0: .word _021F9780 - thumb_func_end ov18_021E74B8 - - thumb_func_start ov18_021E74E4 -ov18_021E74E4: ; 0x021E74E4 - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - ldr r5, _021E7528 ; =_021F990C - add r6, r0, #0 - add r7, r4, #0 -_021E74EE: - add r0, r6, #0 - add r1, r5, #0 - add r2, r7, #0 - bl ov18_021E7448 - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #0x12 - blo _021E74EE - ldr r1, _021E752C ; =0x00001870 - ldr r2, _021E7528 ; =_021F990C - ldr r1, [r6, r1] - add r0, r6, #0 - lsl r1, r1, #2 - add r1, r2, r1 - mov r2, #1 - bl ov18_021E7448 - ldr r1, _021E7530 ; =0x00001874 - ldr r2, _021E7528 ; =_021F990C - ldr r1, [r6, r1] - add r0, r6, #0 - lsl r1, r1, #2 - add r1, r2, r1 - mov r2, #1 - bl ov18_021E7448 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E7528: .word _021F990C -_021E752C: .word 0x00001870 -_021E7530: .word 0x00001874 - thumb_func_end ov18_021E74E4 - - thumb_func_start ov18_021E7534 -ov18_021E7534: ; 0x021E7534 - push {r4, lr} - ldr r2, _021E7558 ; =0x00001888 - add r4, r0, #0 - add r3, r1, #0 - ldr r1, _021E755C ; =_021F9770 - add r2, r4, r2 - bl ov18_021E7490 - add r0, r4, #0 - mov r1, #0x4b - bl ov18_021EFE70 - ldr r0, _021E7560 ; =0x000004BC - add r0, r4, r0 - bl ScheduleWindowCopyToVram - pop {r4, pc} - nop -_021E7558: .word 0x00001888 -_021E755C: .word _021F9770 -_021E7560: .word 0x000004BC - thumb_func_end ov18_021E7534 - - thumb_func_start ov18_021E7564 -ov18_021E7564: ; 0x021E7564 - push {r4, r5, r6, lr} - add r6, r0, #0 - ldr r0, _021E7620 ; =0x00001860 - ldr r1, [r6, r0] - cmp r1, #1 - beq _021E761C - add r0, r0, #4 - ldr r0, [r6, r0] - mov r1, #1 - bl GridInputHandler_ClearEnabledFlag - ldr r5, _021E7624 ; =_021F9774 - ldr r0, [r6, #4] - mov r1, #2 - bl GetBgTilemapBuffer - add r4, r0, #0 - ldrb r0, [r5] - ldrb r2, [r5, #1] - sub r1, r0, #1 - sub r0, r2, #2 - sub r2, r2, #1 - lsl r0, r0, #5 - add r0, r1, r0 - lsl r2, r2, #5 - add r1, r1, r2 - ldrb r2, [r5, #2] - lsl r0, r0, #1 - lsl r1, r1, #1 - add r2, r2, #2 - add r0, r4, r0 - add r1, r4, r1 - lsl r2, r2, #1 - bl MIi_CpuCopy16 - ldrb r0, [r5] - ldrb r2, [r5, #1] - sub r1, r0, #1 - sub r0, r2, #2 - lsl r0, r0, #5 - add r0, r1, r0 - lsl r2, r2, #5 - add r1, r1, r2 - ldrb r2, [r5, #2] - lsl r0, r0, #1 - lsl r1, r1, #1 - add r2, r2, #2 - add r0, r4, r0 - add r1, r4, r1 - lsl r2, r2, #1 - bl MIi_CpuCopy16 - ldrb r0, [r5] - ldrb r2, [r5, #1] - sub r1, r0, #1 - sub r0, r2, #2 - add r2, r2, #1 - lsl r0, r0, #5 - add r0, r1, r0 - lsl r2, r2, #5 - add r1, r1, r2 - ldrb r2, [r5, #2] - lsl r0, r0, #1 - lsl r1, r1, #1 - add r2, r2, #2 - add r0, r4, r0 - add r1, r4, r1 - lsl r2, r2, #1 - bl MIi_CpuCopy16 - ldrb r0, [r5] - ldrb r2, [r5, #1] - sub r1, r0, #1 - sub r0, r2, #3 - add r2, r2, #2 - lsl r0, r0, #5 - add r0, r1, r0 - lsl r2, r2, #5 - add r1, r1, r2 - ldrb r2, [r5, #2] - lsl r0, r0, #1 - lsl r1, r1, #1 - add r2, r2, #2 - add r0, r4, r0 - add r1, r4, r1 - lsl r2, r2, #1 - bl MIi_CpuCopy16 - ldr r0, [r6, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer -_021E761C: - pop {r4, r5, r6, pc} - nop -_021E7620: .word 0x00001860 -_021E7624: .word _021F9774 - thumb_func_end ov18_021E7564 - - thumb_func_start ov18_021E7628 -ov18_021E7628: ; 0x021E7628 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r0, #0 - add r4, r1, #0 - mov r1, #4 - add r0, sp, #0 - strb r1, [r0, #2] - strb r1, [r0, #3] - add r0, r4, #0 - mov r1, #5 - add r6, r2, #0 - bl _u32_div_f - mov r0, #6 - mul r0, r1 - add r1, r0, #2 - add r0, sp, #0 - strb r1, [r0] - add r0, r4, #0 - mov r1, #5 - bl _u32_div_f - add r1, r0, #1 - lsl r0, r1, #2 - add r1, r1, r0 - add r0, sp, #0 - strb r1, [r0, #1] - add r0, r5, #0 - add r1, sp, #0 - add r2, r6, #0 - bl ov18_021E7448 - add sp, #4 - pop {r3, r4, r5, r6, pc} - thumb_func_end ov18_021E7628 - - thumb_func_start ov18_021E766C -ov18_021E766C: ; 0x021E766C - push {r3, r4, r5, lr} - add r4, r1, #0 - ldr r1, _021E7694 ; =0x0000188C - add r5, r0, #0 - ldr r1, [r5, r1] - mov r2, #0 - bl ov18_021E7628 - ldr r1, _021E7694 ; =0x0000188C - add r0, r5, #0 - str r4, [r5, r1] - ldr r1, [r5, r1] - mov r2, #1 - bl ov18_021E7628 - add r0, r5, #0 - bl ov18_021F3494 - pop {r3, r4, r5, pc} - nop -_021E7694: .word 0x0000188C - thumb_func_end ov18_021E766C - - thumb_func_start ov18_021E7698 -ov18_021E7698: ; 0x021E7698 - ldr r1, _021E76A0 ; =_021F9C20 - ldrb r0, [r1, r0] - bx lr - nop -_021E76A0: .word _021F9C20 - thumb_func_end ov18_021E7698 - - thumb_func_start ov18_021E76A4 -ov18_021E76A4: ; 0x021E76A4 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r0, #0 - add r4, r2, #0 - mov r2, #2 - add r0, sp, #0 - strb r2, [r0, #2] - strb r2, [r0, #3] - ldr r0, _021E76E8 ; =_021F9C20 - ldrb r6, [r0, r1] - mov r1, #7 - add r0, r6, #0 - bl _s32_div_f - lsl r0, r1, #2 - add r1, r0, #3 - add r0, sp, #0 - strb r1, [r0] - add r0, r6, #0 - mov r1, #7 - bl _s32_div_f - lsl r0, r0, #2 - add r1, r0, #5 - add r0, sp, #0 - strb r1, [r0, #1] - add r0, r5, #0 - add r1, sp, #0 - add r2, r4, #0 - bl ov18_021E7448 - add sp, #4 - pop {r3, r4, r5, r6, pc} - nop -_021E76E8: .word _021F9C20 - thumb_func_end ov18_021E76A4 - - thumb_func_start ov18_021E76EC -ov18_021E76EC: ; 0x021E76EC - push {r3, r4, r5, lr} - add r4, r1, #0 - ldr r1, _021E771C ; =0x0000186C - add r5, r0, #0 - ldr r1, [r5, r1] - mov r2, #0 - bl ov18_021E76A4 - ldr r1, _021E771C ; =0x0000186C - add r0, r5, #0 - str r4, [r5, r1] - ldr r1, [r5, r1] - mov r2, #1 - bl ov18_021E76A4 - add r0, r5, #0 - mov r1, #0x42 - bl ov18_021EFC3C - ldr r0, _021E7720 ; =0x0000042C - add r0, r5, r0 - bl ScheduleWindowCopyToVram - pop {r3, r4, r5, pc} - .balign 4, 0 -_021E771C: .word 0x0000186C -_021E7720: .word 0x0000042C - thumb_func_end ov18_021E76EC - - thumb_func_start ov18_021E7724 -ov18_021E7724: ; 0x021E7724 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - str r0, [sp, #4] - ldr r0, [r0, #8] - mov r1, #0xf - bl sub_02019B08 - add r4, r0, #0 - ldr r0, [sp, #4] - mov r1, #0xe - ldr r0, [r0, #8] - bl sub_02019B08 - add r5, r0, #0 - mov r0, #0x25 - str r0, [sp] - ldr r1, _021E78A0 ; =0x00000854 - ldr r0, [sp, #4] - mov r2, #1 - ldr r0, [r0, r1] - mov r1, #0 - add r3, sp, #0x1c - bl GfGfxLoader_GetScrnDataFromOpenNarc - str r0, [sp, #0x14] - ldr r0, [sp, #0x1c] - mov r6, #1 - str r0, [sp, #0x10] - add r0, #0xc - str r0, [sp, #0x10] - mov r0, #0 - str r0, [sp, #0xc] - ldr r0, [sp, #0x10] - add r7, r4, #0 - str r0, [sp, #8] - lsl r6, r6, #0xa -_021E776C: - ldr r1, [sp, #8] - add r0, r7, #0 - mov r2, #0x40 - bl memcpy - lsl r0, r6, #1 - ldr r1, [sp, #0x10] - ldr r2, [sp, #0x10] - add r1, r1, r0 - ldrb r0, [r2, r0] - add r7, #0x40 - add r6, #0x20 - strb r0, [r5] - ldrb r0, [r1, #1] - strb r0, [r5, #1] - ldrb r0, [r1, #2] - strb r0, [r5, #2] - ldrb r0, [r1, #3] - strb r0, [r5, #3] - ldrb r0, [r1, #4] - strb r0, [r5, #4] - ldrb r0, [r1, #5] - strb r0, [r5, #5] - ldr r0, [sp, #8] - add r5, r5, #6 - add r0, #0x40 - str r0, [sp, #8] - ldr r0, [sp, #0xc] - add r0, r0, #1 - str r0, [sp, #0xc] - cmp r0, #0x18 - blo _021E776C - ldr r0, [sp, #0x14] - bl Heap_Free - ldr r1, _021E78A4 ; =0x00001860 - ldr r0, [sp, #4] - ldr r0, [r0, r1] - cmp r0, #0 - bne _021E77E6 - mov r3, #0xf - mov r7, #0 - lsl r3, r3, #0xc - mov r5, #0x16 -_021E77C4: - add r0, r7, #0 - add r0, #0xf - lsl r0, r0, #5 - mov r1, #0 - add r2, r0, #3 -_021E77CE: - lsl r0, r2, #1 - ldrh r6, [r4, r0] - add r1, r1, #1 - add r2, r2, #1 - and r6, r3 - orr r6, r5 - strh r6, [r4, r0] - cmp r1, #0x1a - blo _021E77CE - add r7, r7, #1 - cmp r7, #2 - blo _021E77C4 -_021E77E6: - ldr r1, _021E78A8 ; =0x00001858 - ldr r0, [sp, #4] - ldrb r0, [r0, r1] - cmp r0, #0 - bne _021E7844 - ldr r0, [sp, #4] - mov r1, #2 - ldr r0, [r0, #8] - bl sub_02019B08 - add r5, r0, #0 - ldr r0, [sp, #4] - add r2, sp, #0x18 - ldr r0, [r0, #8] - mov r1, #2 - add r2, #2 - add r3, sp, #0x18 - bl sub_02019B44 - add r6, sp, #0x18 - ldrh r0, [r6] - mov r2, #0 - cmp r0, #0 - bls _021E7896 - add r7, r2, #0 -_021E7818: - ldrh r1, [r6, #2] - add r3, r7, #0 - cmp r1, #0 - bls _021E783A - add r0, r2, #3 - lsl r0, r0, #6 - add r0, r4, r0 -_021E7826: - mul r1, r2 - add r1, r3, r1 - lsl r1, r1, #1 - ldrh r1, [r5, r1] - add r3, r3, #1 - strh r1, [r0, #0xa] - ldrh r1, [r6, #2] - add r0, r0, #2 - cmp r3, r1 - blo _021E7826 -_021E783A: - ldrh r0, [r6] - add r2, r2, #1 - cmp r2, r0 - blo _021E7818 - b _021E7896 -_021E7844: - ldr r0, [sp, #4] - mov r1, #3 - ldr r0, [r0, #8] - bl sub_02019B08 - add r5, r0, #0 - ldr r0, [sp, #4] - add r2, sp, #0x18 - ldr r0, [r0, #8] - mov r1, #2 - add r2, #2 - add r3, sp, #0x18 - bl sub_02019B44 - add r6, sp, #0x18 - ldrh r0, [r6] - mov r2, #0 - cmp r0, #0 - bls _021E7896 - add r7, r2, #0 -_021E786C: - ldrh r1, [r6, #2] - add r3, r7, #0 - cmp r1, #0 - bls _021E788E - add r0, r2, #3 - lsl r0, r0, #6 - add r0, r4, r0 -_021E787A: - mul r1, r2 - add r1, r3, r1 - lsl r1, r1, #1 - ldrh r1, [r5, r1] - add r3, r3, #1 - strh r1, [r0, #0xa] - ldrh r1, [r6, #2] - add r0, r0, #2 - cmp r3, r1 - blo _021E787A -_021E788E: - ldrh r0, [r6] - add r2, r2, #1 - cmp r2, r0 - blo _021E786C -_021E7896: - ldr r0, [sp, #4] - bl ov18_021EFFEC - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021E78A0: .word 0x00000854 -_021E78A4: .word 0x00001860 -_021E78A8: .word 0x00001858 - thumb_func_end ov18_021E7724 - - thumb_func_start ov18_021E78AC -ov18_021E78AC: ; 0x021E78AC - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r0, #0 - bl ov18_021F8824 - add r6, r0, #0 - bne _021E7900 - add r0, r5, #0 - mov r1, #0x16 - mov r2, #0 - bl ov18_021F2A2C - add r0, r5, #0 - mov r1, #0x18 - mov r2, #0 - bl ov18_021F2A84 - add r0, r5, #0 - mov r1, #0 - bl ov18_021F3B60 - add r0, r5, #0 - mov r1, #0 - mov r2, #0x5e - bl ov18_021EE638 - add r0, r5, #0 - bl ov18_021F014C - add r0, r5, #0 - mov r1, #1 - bl ov18_021F0118 - ldr r0, [r5, #4] - mov r1, #5 - bl ScheduleBgTilemapBufferTransfer - ldr r0, _021E7A2C ; =0x00001898 - mov r1, #1 - add sp, #4 - str r1, [r5, r0] - pop {r3, r4, r5, r6, pc} -_021E7900: - add r0, r5, #0 - mov r1, #0 - bl ov18_021F0118 - add r0, r5, #0 - bl ov18_021F8838 - add r4, r0, #0 - ldr r2, _021E7A30 ; =0x0000185C - add r0, r5, #0 - ldrb r2, [r5, r2] - add r1, r4, #0 - bl ov18_021E6D10 - cmp r0, #0 - bne _021E7926 - ldr r0, _021E7A30 ; =0x0000185C - mov r1, #2 - strb r1, [r5, r0] -_021E7926: - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x5e - bl ov18_021EE638 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov18_021EE6EC - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov18_021EED70 - ldr r0, [r5, #4] - mov r1, #7 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r5, #4] - mov r1, #5 - bl ScheduleBgTilemapBufferTransfer - ldr r0, _021E7A2C ; =0x00001898 - mov r1, #2 - str r1, [r5, r0] - add r0, r5, #0 - mov r1, #1 - bl ov18_021F3B60 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x2e - mov r3, #0x2d - bl ov18_021F1CAC - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x18 - bl ov18_021F24E0 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x35 - bl ov18_021F2530 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - mov r3, #0x31 - bl ov18_021F209C - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - mov r3, #0x30 - bl ov18_021F1DE4 - add r0, r5, #0 - add r1, r6, #0 - mov r2, #0x2c - bl ov18_021F2EC8 - cmp r4, #0 - bne _021E79E0 - add r0, r5, #0 - mov r1, #0x16 - mov r2, #0 - bl ov18_021F2A2C - add r0, r5, #0 - mov r1, #0x18 - mov r2, #0 - bl ov18_021F2A84 - ldr r2, _021E7A34 ; =0x00000854 - ldr r0, [r5, #4] - ldr r2, [r5, r2] - mov r1, #7 - mov r3, #0x25 - bl ov18_021E6FB8 - ldr r0, _021E7A38 ; =0x0000051C - add r0, r5, r0 - bl ClearWindowTilemapAndScheduleTransfer - add r0, r5, #0 - mov r1, #0x2d - mov r2, #0 - bl ov18_021F11C0 - add sp, #4 - pop {r3, r4, r5, r6, pc} -_021E79E0: - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E6D38 - cmp r0, #1 - bne _021E79F8 - add r0, r5, #0 - mov r1, #0x16 - mov r2, #1 - bl ov18_021F2A2C - b _021E7A02 -_021E79F8: - add r0, r5, #0 - mov r1, #0x16 - mov r2, #0 - bl ov18_021F2A2C -_021E7A02: - add r0, r5, #0 - mov r1, #0x18 - mov r2, #1 - bl ov18_021F2A84 - mov r0, #0x25 - str r0, [sp] - ldr r2, _021E7A30 ; =0x0000185C - ldr r3, _021E7A34 ; =0x00000854 - ldrb r2, [r5, r2] - ldr r0, [r5, #4] - ldr r3, [r5, r3] - mov r1, #7 - bl ov18_021E6F6C - ldr r0, _021E7A38 ; =0x0000051C - add r0, r5, r0 - bl ScheduleWindowCopyToVram - add sp, #4 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_021E7A2C: .word 0x00001898 -_021E7A30: .word 0x0000185C -_021E7A34: .word 0x00000854 -_021E7A38: .word 0x0000051C - thumb_func_end ov18_021E78AC - - thumb_func_start ov18_021E7A3C -ov18_021E7A3C: ; 0x021E7A3C - push {r4, lr} - add r4, r0, #0 - ldr r0, _021E7A7C ; =0x00001898 - ldr r0, [r4, r0] - cmp r0, #0 - beq _021E7A7A - cmp r0, #1 - beq _021E7A52 - cmp r0, #2 - beq _021E7A64 - b _021E7A74 -_021E7A52: - mov r0, #6 - mov r1, #2 - bl SetBgPriority - mov r0, #7 - mov r1, #3 - bl SetBgPriority - b _021E7A74 -_021E7A64: - mov r0, #6 - mov r1, #3 - bl SetBgPriority - mov r0, #7 - mov r1, #2 - bl SetBgPriority -_021E7A74: - ldr r0, _021E7A7C ; =0x00001898 - mov r1, #0 - str r1, [r4, r0] -_021E7A7A: - pop {r4, pc} - .balign 4, 0 -_021E7A7C: .word 0x00001898 - thumb_func_end ov18_021E7A3C - - thumb_func_start ov18_021E7A80 -ov18_021E7A80: ; 0x021E7A80 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - str r1, [sp, #4] - add r6, r0, #0 - str r2, [sp, #8] - ldr r0, [r6] - ldr r0, [r0] - bl Pokedex_GetInternationalViewFlag - cmp r0, #0 - beq _021E7B5C - add r0, r6, #0 - bl ov18_021F8824 - str r0, [sp, #0xc] - cmp r0, #0 - beq _021E7B5C - ldr r0, _021E7B60 ; =0x0000185C - ldrb r0, [r6, r0] - bl LanguageToDexFlag - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - mov r7, #0 -_021E7AB0: - ldr r0, [sp, #8] - add r0, r4, r0 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - bpl _021E7ABE - mov r4, #5 - b _021E7AC4 -_021E7ABE: - cmp r4, #6 - blt _021E7AC4 - mov r4, #0 -_021E7AC4: - add r0, r4, #0 - bl sub_02091294 - lsl r0, r0, #0x10 - asr r5, r0, #0x10 - ldr r0, _021E7B60 ; =0x0000185C - ldrb r0, [r6, r0] - cmp r5, r0 - beq _021E7B5C - lsl r2, r5, #0x10 - ldr r1, [sp, #4] - add r0, r6, #0 - lsr r2, r2, #0x10 - bl ov18_021E6D10 - cmp r0, #1 - beq _021E7AEA - cmp r5, #2 - bne _021E7B56 -_021E7AEA: - ldr r0, _021E7B60 ; =0x0000185C - mov r2, #0x5e - strb r5, [r6, r0] - ldr r1, [sp, #4] - add r0, r6, #0 - bl ov18_021EE638 - mov r0, #0x25 - str r0, [sp] - ldr r2, _021E7B60 ; =0x0000185C - ldr r3, _021E7B64 ; =0x00000854 - ldrb r2, [r6, r2] - ldr r0, [r6, #4] - ldr r3, [r6, r3] - mov r1, #7 - bl ov18_021E6F6C - ldr r1, [sp, #4] - ldr r2, [sp, #0xc] - add r0, r6, #0 - bl ov18_021EED70 - ldr r1, [sp, #4] - add r0, r6, #0 - mov r2, #0x18 - bl ov18_021F24E0 - ldr r1, [sp, #4] - add r0, r6, #0 - mov r2, #0x35 - bl ov18_021F2530 - ldr r1, [sp, #4] - ldr r2, [sp, #0xc] - add r0, r6, #0 - mov r3, #0x31 - bl ov18_021F209C - ldr r1, [sp, #4] - ldr r2, [sp, #0xc] - add r0, r6, #0 - mov r3, #0x30 - bl ov18_021F1DE4 - ldr r1, [sp, #0xc] - add r0, r6, #0 - mov r2, #0x2c - bl ov18_021F2EC8 - ldr r0, _021E7B68 ; =0x000008E8 - bl PlaySE - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} -_021E7B56: - add r7, r7, #1 - cmp r7, #6 - blo _021E7AB0 -_021E7B5C: - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021E7B60: .word 0x0000185C -_021E7B64: .word 0x00000854 -_021E7B68: .word 0x000008E8 - thumb_func_end ov18_021E7A80 - - thumb_func_start ov18_021E7B6C -ov18_021E7B6C: ; 0x021E7B6C - push {r4, r5} - cmp r0, #1 - bne _021E7BB6 - ldr r0, _021E7BC4 ; =0x04001000 - ldr r1, _021E7BC8 ; =0xFFFF1FFF - ldr r2, [r0] - add r4, r0, #0 - and r2, r1 - lsr r1, r0, #0xd - orr r1, r2 - str r1, [r0] - add r4, #0x48 - ldrh r3, [r4] - mov r2, #0x3f - mov r1, #0xf - bic r3, r2 - orr r1, r3 - mov r3, #0x20 - orr r1, r3 - strh r1, [r4] - add r4, r0, #0 - add r4, #0x4a - ldrh r5, [r4] - mov r1, #0x1f - bic r5, r2 - orr r1, r5 - orr r1, r3 - strh r1, [r4] - add r1, r0, #0 - mov r2, #0xff - add r1, #0x40 - strh r2, [r1] - ldr r1, _021E7BCC ; =0x000098C0 - add r0, #0x44 - strh r1, [r0] - pop {r4, r5} - bx lr -_021E7BB6: - ldr r2, _021E7BC4 ; =0x04001000 - ldr r0, _021E7BC8 ; =0xFFFF1FFF - ldr r1, [r2] - and r0, r1 - str r0, [r2] - pop {r4, r5} - bx lr - .balign 4, 0 -_021E7BC4: .word 0x04001000 -_021E7BC8: .word 0xFFFF1FFF -_021E7BCC: .word 0x000098C0 - thumb_func_end ov18_021E7B6C - - thumb_func_start ov18_021E7BD0 -ov18_021E7BD0: ; 0x021E7BD0 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0 - mov r1, #0 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #2 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #5 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #6 - bl ov18_021E613C - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7D88 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x52 - mov r3, #3 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - ldr r0, _021E7D8C ; =0x00001860 - ldr r0, [r4, r0] - cmp r0, #1 - bne _021E7C34 - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7D88 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x51 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - b _021E7C4E -_021E7C34: - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7D88 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x50 - bl GfGfxLoader_LoadScrnDataFromOpenNarc -_021E7C4E: - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7D88 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x53 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7D88 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x53 - mov r3, #3 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r3, #1 - str r3, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7D88 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #4 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r4, r1] - add r1, r1, #4 - ldr r1, [r4, r1] - mov r2, #2 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7D88 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x54 - mov r3, #7 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7D88 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x55 - mov r3, #7 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7D88 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x56 - mov r3, #4 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7D88 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x57 - mov r3, #4 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #1 - str r0, [sp] - mov r0, #0 - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r4, r1] - add r1, r1, #4 - ldr r1, [r4, r1] - mov r2, #0x12 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - ldr r0, [r4, #4] - mov r1, #0 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #1 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #3 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #4 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #5 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #6 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #7 - bl ScheduleBgTilemapBufferTransfer - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 -_021E7D88: .word 0x00000854 -_021E7D8C: .word 0x00001860 - thumb_func_end ov18_021E7BD0 - - thumb_func_start ov18_021E7D90 -ov18_021E7D90: ; 0x021E7D90 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0 - mov r1, #0 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #1 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #2 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #4 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #5 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #7 - bl ov18_021E613C - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7ED4 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x59 - mov r3, #3 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7ED4 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x5a - mov r3, #3 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r3, #1 - str r3, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7ED4 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #4 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r4, r1] - add r1, r1, #4 - ldr r1, [r4, r1] - mov r2, #2 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7ED4 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x5b - mov r3, #6 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E7ED4 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x5c - mov r3, #6 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #1 - str r0, [sp] - mov r0, #0 - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r4, r1] - add r1, r1, #4 - ldr r1, [r4, r1] - mov r2, #0x12 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - ldr r0, [r4, #8] - mov r1, #0x10 - mov r2, #0 - mov r3, #0x14 - bl sub_020196E8 - ldr r0, [r4, #4] - mov r1, #0 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #1 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #3 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #4 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #5 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #6 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #7 - bl ScheduleBgTilemapBufferTransfer - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 -_021E7ED4: .word 0x00000854 - thumb_func_end ov18_021E7D90 - - thumb_func_start ov18_021E7ED8 -ov18_021E7ED8: ; 0x021E7ED8 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0 - mov r1, #0 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #2 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #4 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #5 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #7 - bl ov18_021E613C - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E8008 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x65 - mov r3, #3 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E8008 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x66 - mov r3, #3 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r3, #1 - str r3, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E8008 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #4 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r4, r1] - add r1, r1, #4 - ldr r1, [r4, r1] - mov r2, #2 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E8008 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x67 - mov r3, #6 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E8008 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x68 - mov r3, #6 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #1 - str r0, [sp] - mov r0, #0 - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r4, r1] - add r1, r1, #4 - ldr r1, [r4, r1] - mov r2, #0x12 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - ldr r0, [r4, #4] - mov r1, #0 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #1 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #3 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #4 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #5 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #6 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #7 - bl ScheduleBgTilemapBufferTransfer - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 -_021E8008: .word 0x00000854 - thumb_func_end ov18_021E7ED8 - - thumb_func_start ov18_021E800C -ov18_021E800C: ; 0x021E800C - push {r4, r5, lr} - sub sp, #0x14 - add r5, r0, #0 - mov r1, #2 - bl ov18_021E613C - add r0, r5, #0 - mov r1, #4 - bl ov18_021E613C - add r0, r5, #0 - mov r1, #5 - bl ov18_021E613C - add r0, r5, #0 - mov r1, #6 - bl ov18_021E613C - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E81A0 ; =0x00000854 - ldr r2, [r5, #4] - ldr r0, [r5, r0] - mov r1, #0x60 - mov r3, #3 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E81A0 ; =0x00000854 - ldr r2, [r5, #4] - ldr r0, [r5, r0] - mov r1, #0x5d - mov r3, #3 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E81A0 ; =0x00000854 - ldr r2, [r5, #4] - ldr r0, [r5, r0] - mov r1, #0x5f - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E81A0 ; =0x00000854 - ldr r2, [r5, #4] - ldr r0, [r5, r0] - mov r1, #0x5d - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r3, #1 - str r3, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E81A0 ; =0x00000854 - ldr r2, [r5, #4] - ldr r0, [r5, r0] - mov r1, #4 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r5, r1] - add r1, r1, #4 - ldr r1, [r5, r1] - mov r2, #2 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E81A0 ; =0x00000854 - ldr r2, [r5, #4] - ldr r0, [r5, r0] - mov r1, #0x61 - mov r3, #7 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E81A0 ; =0x00000854 - ldr r2, [r5, #4] - ldr r0, [r5, r0] - mov r1, #0x5e - mov r3, #7 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #1 - str r0, [sp] - mov r0, #0 - mov r1, #0x85 - str r0, [sp, #4] - lsl r1, r1, #4 - str r0, [sp, #8] - ldr r0, [r5, r1] - add r1, r1, #4 - ldr r1, [r5, r1] - mov r2, #0x12 - mov r3, #0x25 - bl PaletteData_LoadOpenNarc - ldr r0, _021E81A4 ; =0x000018C4 - ldrsb r0, [r5, r0] - cmp r0, #1 - bne _021E815C - mov r0, #0x25 - str r0, [sp] - ldr r0, _021E81A0 ; =0x00000854 - mov r1, #0x64 - ldr r0, [r5, r0] - mov r2, #1 - add r3, sp, #0x10 - bl GfGfxLoader_GetScrnDataFromOpenNarc - mov r3, #0x10 - str r3, [sp] - add r4, r0, #0 - str r3, [sp, #4] - mov r0, #4 - str r0, [sp, #8] - ldr r2, [sp, #0x10] - ldr r0, [r5, #4] - mov r1, #0 - add r2, #0xc - bl LoadRectToBgTilemapRect - add r0, r4, #0 - bl Heap_Free -_021E815C: - ldr r0, [r5, #4] - mov r1, #0 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r5, #4] - mov r1, #1 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r5, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r5, #4] - mov r1, #3 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r5, #4] - mov r1, #4 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r5, #4] - mov r1, #5 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r5, #4] - mov r1, #6 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r5, #4] - mov r1, #7 - bl ScheduleBgTilemapBufferTransfer - add sp, #0x14 - pop {r4, r5, pc} - .balign 4, 0 -_021E81A0: .word 0x00000854 -_021E81A4: .word 0x000018C4 - thumb_func_end ov18_021E800C - - thumb_func_start ov18_021E81A8 -ov18_021E81A8: ; 0x021E81A8 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0 - mov r1, #0 - bl ov18_021E613C - add r0, r4, #0 - mov r1, #2 - bl ov18_021E613C - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E8250 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x62 - mov r3, #3 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E8250 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x5d - mov r3, #3 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E8250 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x63 - mov r3, #7 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021E8250 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x5e - mov r3, #7 - bl GfGfxLoader_LoadCharDataFromOpenNarc - ldr r0, [r4, #4] - mov r1, #0 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #3 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [r4, #4] - mov r1, #7 - bl ScheduleBgTilemapBufferTransfer - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 -_021E8250: .word 0x00000854 - thumb_func_end ov18_021E81A8 - - thumb_func_start ov18_021E8254 -ov18_021E8254: ; 0x021E8254 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - ldr r0, _021E83BC ; =0x000018A4 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x20 - bl memset - ldr r0, _021E83C0 ; =0x000018A2 - ldr r2, _021E83C4 ; =0x0000019D - ldrh r1, [r5, r0] - cmp r1, r2 - bgt _021E82A4 - sub r3, r2, #1 - cmp r1, r3 - blt _021E8280 - add r0, r3, #0 - cmp r1, r0 - beq _021E82FA - cmp r1, r2 - beq _021E82FA - b _021E838C -_021E8280: - cmp r1, #0xc9 - bgt _021E828C - bge _021E82FA - cmp r1, #0xac - beq _021E82FA - b _021E838C -_021E828C: - add r3, r2, #0 - sub r3, #0x3e - cmp r1, r3 - bgt _021E829C - sub r2, #0x3e - cmp r1, r2 - beq _021E8334 - b _021E838C -_021E829C: - sub r2, #0x1b - cmp r1, r2 - beq _021E82FA - b _021E838C -_021E82A4: - add r3, r2, #0 - add r3, #0x42 - cmp r1, r3 - bgt _021E82E4 - add r3, r2, #0 - add r3, #0x42 - cmp r1, r3 - bge _021E82FA - add r3, r2, #0 - add r3, #8 - cmp r1, r3 - bgt _021E82C4 - add r2, #8 - cmp r1, r2 - beq _021E8360 - b _021E838C -_021E82C4: - add r0, r2, #0 - add r0, #0xa - cmp r1, r0 - bgt _021E838C - add r0, r2, #0 - add r0, #9 - cmp r1, r0 - blt _021E838C - add r0, r2, #0 - add r0, #9 - cmp r1, r0 - beq _021E82FA - add r2, #0xa - cmp r1, r2 - beq _021E82FA - b _021E838C -_021E82E4: - add r0, r2, #0 - add r0, #0x4a - cmp r1, r0 - bgt _021E82F4 - add r2, #0x4a - cmp r1, r2 - beq _021E82FA - b _021E838C -_021E82F4: - add r2, #0x4f - cmp r1, r2 - bne _021E838C -_021E82FA: - ldr r0, [r5] - ldr r0, [r0] - bl Pokedex_GetSeenFormNum - ldr r1, _021E83C8 ; =0x000018C4 - mov r4, #0 - strb r0, [r5, r1] - ldrsb r0, [r5, r1] - cmp r0, #0 - bls _021E83B8 - add r7, r1, #0 - sub r7, #0x20 - add r6, r1, #0 -_021E8314: - ldr r1, _021E83C0 ; =0x000018A2 - ldr r0, [r5] - ldrh r1, [r5, r1] - ldr r0, [r0] - add r2, r4, #0 - bl Pokedex_GetSeenFormByIdx - mov r1, #0x80 - orr r1, r0 - add r0, r5, r4 - strb r1, [r0, r7] - ldrsb r0, [r5, r6] - add r4, r4, #1 - cmp r4, r0 - blo _021E8314 - pop {r3, r4, r5, r6, r7, pc} -_021E8334: - add r1, r0, #0 - mov r2, #4 - add r1, #0x22 - strb r2, [r5, r1] - add r0, #0x22 - ldrsb r0, [r5, r0] - mov r1, #0 - cmp r0, #0 - bls _021E83B8 - ldr r2, _021E83BC ; =0x000018A4 - mov r0, #0x80 - add r3, r2, #0 - add r3, #0x20 -_021E834E: - add r6, r1, #0 - add r4, r5, r1 - orr r6, r0 - strb r6, [r4, r2] - ldrsb r4, [r5, r3] - add r1, r1, #1 - cmp r1, r4 - blo _021E834E - pop {r3, r4, r5, r6, r7, pc} -_021E8360: - add r1, r0, #0 - mov r2, #2 - add r1, #0x22 - strb r2, [r5, r1] - add r0, #0x22 - ldrsb r0, [r5, r0] - mov r1, #0 - cmp r0, #0 - bls _021E83B8 - ldr r2, _021E83BC ; =0x000018A4 - mov r0, #0x80 - add r3, r2, #0 - add r3, #0x20 -_021E837A: - add r6, r1, #0 - add r4, r5, r1 - orr r6, r0 - strb r6, [r4, r2] - ldrsb r4, [r5, r3] - add r1, r1, #1 - cmp r1, r4 - blo _021E837A - pop {r3, r4, r5, r6, r7, pc} -_021E838C: - add r0, r5, #0 - mov r1, #0 - bl ov18_021E83D0 - ldr r1, _021E83BC ; =0x000018A4 - strb r0, [r5, r1] - add r0, r5, #0 - mov r1, #1 - bl ov18_021E83D0 - ldr r1, _021E83CC ; =0x000018A5 - strb r0, [r5, r1] - ldrb r0, [r5, r1] - cmp r0, #0 - bne _021E83B2 - mov r0, #1 - add r1, #0x1f - strb r0, [r5, r1] - pop {r3, r4, r5, r6, r7, pc} -_021E83B2: - mov r0, #2 - add r1, #0x1f - strb r0, [r5, r1] -_021E83B8: - pop {r3, r4, r5, r6, r7, pc} - nop -_021E83BC: .word 0x000018A4 -_021E83C0: .word 0x000018A2 -_021E83C4: .word 0x0000019D -_021E83C8: .word 0x000018C4 -_021E83CC: .word 0x000018A5 - thumb_func_end ov18_021E8254 - - thumb_func_start ov18_021E83D0 -ov18_021E83D0: ; 0x021E83D0 - push {r4, lr} - add r2, r0, #0 - add r4, r1, #0 - ldr r1, _021E840C ; =0x000018A2 - ldr r0, [r2] - ldrh r1, [r2, r1] - ldr r0, [r0] - add r2, r4, #0 - bl Pokedex_SpeciesGetLastSeenGender - cmp r0, #0 - beq _021E83F2 - cmp r0, #1 - beq _021E83F6 - cmp r0, #2 - beq _021E83FA - b _021E83FE -_021E83F2: - mov r0, #1 - pop {r4, pc} -_021E83F6: - mov r0, #2 - pop {r4, pc} -_021E83FA: - mov r0, #3 - pop {r4, pc} -_021E83FE: - cmp r4, #0 - bne _021E8406 - mov r0, #3 - pop {r4, pc} -_021E8406: - mov r0, #0 - pop {r4, pc} - nop -_021E840C: .word 0x000018A2 - thumb_func_end ov18_021E83D0 - - thumb_func_start ov18_021E8410 -ov18_021E8410: ; 0x021E8410 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r6, r0, #0 - ldr r0, _021E84E0 ; =0x000018CC - add r5, r6, r0 - bl GetPokedexDataNarcID - mov r1, #0x25 - bl NARC_New - add r4, r0, #0 - ldr r0, [r6] - ldr r0, [r0, #4] - bl PlayerProfile_GetTrainerGender - cmp r0, #0 - bne _021E8472 - mov r2, #0 - str r2, [sp] - add r0, r4, #0 - mov r1, #9 - mov r3, #0x25 - bl GfGfxLoader_LoadFromOpenNarc - str r0, [r5] - mov r2, #0 - str r2, [sp] - add r0, r4, #0 - mov r1, #5 - mov r3, #0x25 - bl GfGfxLoader_LoadFromOpenNarc - str r0, [r5, #4] - mov r2, #0 - str r2, [sp] - add r0, r4, #0 - mov r1, #0xa - mov r3, #0x25 - bl GfGfxLoader_LoadFromOpenNarc - str r0, [r5, #8] - mov r2, #0 - add r0, r4, #0 - mov r1, #6 - mov r3, #0x25 - str r2, [sp] - bl GfGfxLoader_LoadFromOpenNarc - b _021E84B0 -_021E8472: - mov r2, #0 - str r2, [sp] - add r0, r4, #0 - mov r1, #7 - mov r3, #0x25 - bl GfGfxLoader_LoadFromOpenNarc - str r0, [r5] - mov r2, #0 - str r2, [sp] - add r0, r4, #0 - mov r1, #3 - mov r3, #0x25 - bl GfGfxLoader_LoadFromOpenNarc - str r0, [r5, #4] - mov r2, #0 - str r2, [sp] - add r0, r4, #0 - mov r1, #8 - mov r3, #0x25 - bl GfGfxLoader_LoadFromOpenNarc - str r0, [r5, #8] - mov r2, #0 - add r0, r4, #0 - mov r1, #4 - mov r3, #0x25 - str r2, [sp] - bl GfGfxLoader_LoadFromOpenNarc -_021E84B0: - mov r1, #0 - str r0, [r5, #0xc] - add r0, r4, #0 - add r2, r1, #0 - mov r3, #0x25 - str r1, [sp] - bl GfGfxLoader_LoadFromOpenNarc - ldr r1, _021E84E4 ; =0x00001848 - mov r2, #0 - str r0, [r6, r1] - add r0, r4, #0 - mov r1, #1 - mov r3, #0x25 - str r2, [sp] - bl GfGfxLoader_LoadFromOpenNarc - ldr r1, _021E84E8 ; =0x0000184C - str r0, [r6, r1] - add r0, r4, #0 - bl NARC_Delete - add sp, #4 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_021E84E0: .word 0x000018CC -_021E84E4: .word 0x00001848 -_021E84E8: .word 0x0000184C - thumb_func_end ov18_021E8410 - - thumb_func_start ov18_021E84EC -ov18_021E84EC: ; 0x021E84EC - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, _021E8520 ; =0x000018CC - add r4, r5, r0 - sub r0, #0x84 - ldr r0, [r5, r0] - bl Heap_Free - ldr r0, _021E8524 ; =0x0000184C - ldr r0, [r5, r0] - bl Heap_Free - ldr r0, _021E8520 ; =0x000018CC - ldr r0, [r5, r0] - bl Heap_Free - ldr r0, [r4, #4] - bl Heap_Free - ldr r0, [r4, #8] - bl Heap_Free - ldr r0, [r4, #0xc] - bl Heap_Free - pop {r3, r4, r5, pc} - .balign 4, 0 -_021E8520: .word 0x000018CC -_021E8524: .word 0x0000184C - thumb_func_end ov18_021E84EC - - thumb_func_start ov18_021E8528 -ov18_021E8528: ; 0x021E8528 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r6, r1, #0 - ldr r1, _021E862C ; =0x000018DC - add r5, r0, #0 - add r0, r5, r1 - sub r1, #0x3a - add r4, r2, #0 - ldrh r1, [r5, r1] - add r2, r6, #4 - bl ov18_021E8698 - ldr r1, _021E8630 ; =0x000018E4 - mov r2, #7 - add r0, r5, r1 - sub r1, #0x42 - ldrh r1, [r5, r1] - bl ov18_021E8698 - ldr r1, _021E8634 ; =0x000018EC - add r2, r6, #0 - add r0, r5, r1 - sub r1, #0x4a - ldrh r1, [r5, r1] - bl ov18_021E8698 - ldr r1, _021E8638 ; =0x000018F4 - mov r2, #3 - add r0, r5, r1 - sub r1, #0x52 - ldrh r1, [r5, r1] - bl ov18_021E8698 - ldr r1, _021E863C ; =0x000018E0 - mov r2, #1 - ldr r0, [r5, r1] - sub r0, r0, #1 - add r2, r2, r0 - add r0, r1, #0 - add r0, #8 - ldr r0, [r5, r0] - sub r0, r0, #1 - add r2, r2, r0 - add r0, r1, #0 - add r0, #0x10 - ldr r0, [r5, r0] - add r1, #0x18 - sub r0, r0, #1 - add r2, r2, r0 - ldr r0, [r5, r1] - sub r0, r0, #1 - add r0, r2, r0 - lsl r6, r0, #2 - mov r0, #0x25 - add r1, r6, #0 - bl Heap_Alloc - ldr r1, _021E8640 ; =0x000018FC - str r0, [r5, r1] - mov r0, #0x25 - add r1, r6, #0 - bl Heap_Alloc - ldr r1, _021E8644 ; =0x00001904 - add r2, r6, #0 - str r0, [r5, r1] - sub r1, #8 - ldr r1, [r5, r1] - mov r0, #0 - bl MIi_CpuClear32 - ldr r1, _021E8644 ; =0x00001904 - mov r0, #0 - ldr r1, [r5, r1] - add r2, r6, #0 - bl MIi_CpuClear32 - ldr r1, _021E8640 ; =0x000018FC - mov r2, #1 - ldr r0, [r5, r1] - mvn r2, r2 - str r2, [r0] - mov r2, #1 - add r0, r1, #4 - str r2, [r5, r0] - add r0, r1, #0 - add r0, #8 - sub r1, #0x20 - ldr r0, [r5, r0] - mov r3, #0 - str r3, [r0] - add r0, r5, #0 - add r1, r5, r1 - add r2, r4, #0 - bl ov18_021E8714 - ldr r1, _021E8630 ; =0x000018E4 - add r0, r5, #0 - add r1, r5, r1 - add r2, r4, #0 - mov r3, #1 - bl ov18_021E8714 - mov r1, #0x19 - lsl r1, r1, #8 - ldr r6, [r5, r1] - mov r0, #0 - sub r1, #0x14 - str r0, [sp] - add r0, r5, #0 - add r1, r5, r1 - add r2, r4, #0 - add r3, r6, #0 - bl ov18_021E8878 - ldr r1, _021E8638 ; =0x000018F4 - mov r0, #1 - str r0, [sp] - add r0, r5, #0 - add r1, r5, r1 - add r2, r4, #0 - add r3, r6, #0 - bl ov18_021E8878 - add r0, r5, #0 - bl ov18_021E8A00 - add sp, #4 - pop {r3, r4, r5, r6, pc} - nop -_021E862C: .word 0x000018DC -_021E8630: .word 0x000018E4 -_021E8634: .word 0x000018EC -_021E8638: .word 0x000018F4 -_021E863C: .word 0x000018E0 -_021E8640: .word 0x000018FC -_021E8644: .word 0x00001904 - thumb_func_end ov18_021E8528 - - thumb_func_start ov18_021E8648 -ov18_021E8648: ; 0x021E8648 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021E8680 ; =0x000018DC - ldr r0, [r4, r0] - bl Heap_Free - ldr r0, _021E8684 ; =0x000018E4 - ldr r0, [r4, r0] - bl Heap_Free - ldr r0, _021E8688 ; =0x000018EC - ldr r0, [r4, r0] - bl Heap_Free - ldr r0, _021E868C ; =0x000018F4 - ldr r0, [r4, r0] - bl Heap_Free - ldr r0, _021E8690 ; =0x000018FC - ldr r0, [r4, r0] - bl Heap_Free - ldr r0, _021E8694 ; =0x00001904 - ldr r0, [r4, r0] - bl Heap_Free - pop {r4, pc} - nop -_021E8680: .word 0x000018DC -_021E8684: .word 0x000018E4 -_021E8688: .word 0x000018EC -_021E868C: .word 0x000018F4 -_021E8690: .word 0x000018FC -_021E8694: .word 0x00001904 - thumb_func_end ov18_021E8648 - - thumb_func_start ov18_021E8698 -ov18_021E8698: ; 0x021E8698 - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - cmp r2, #7 - bhi _021E86DE - add r0, r2, r2 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E86AE: ; jump table - .short _021E86BE - _021E86AE - 2 ; case 0 - .short _021E86C2 - _021E86AE - 2 ; case 1 - .short _021E86C6 - _021E86AE - 2 ; case 2 - .short _021E86CC - _021E86AE - 2 ; case 3 - .short _021E86D0 - _021E86AE - 2 ; case 4 - .short _021E86D4 - _021E86AE - 2 ; case 5 - .short _021E86D8 - _021E86AE - 2 ; case 6 - .short _021E86DC - _021E86AE - 2 ; case 7 -_021E86BE: - mov r3, #2 - b _021E86DE -_021E86C2: - ldr r3, _021E86FC ; =0x000001F1 - b _021E86DE -_021E86C6: - mov r3, #0x3e - lsl r3, r3, #4 - b _021E86DE -_021E86CC: - ldr r3, _021E8700 ; =0x00000B9C - b _021E86DE -_021E86D0: - ldr r3, _021E8704 ; =0x000005CF - b _021E86DE -_021E86D4: - ldr r3, _021E8708 ; =0x000007BE - b _021E86DE -_021E86D8: - ldr r3, _021E870C ; =0x000009AD - b _021E86DE -_021E86DC: - ldr r3, _021E8710 ; =0x00000D8B -_021E86DE: - mov r2, #0 - str r2, [sp] - add r0, sp, #8 - str r0, [sp, #4] - add r1, r3, r1 - mov r0, #0x85 - mov r3, #0x25 - bl GfGfxLoader_LoadFromNarc_GetSizeOut - str r0, [r4] - ldr r0, [sp, #8] - lsr r0, r0, #2 - str r0, [r4, #4] - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021E86FC: .word 0x000001F1 -_021E8700: .word 0x00000B9C -_021E8704: .word 0x000005CF -_021E8708: .word 0x000007BE -_021E870C: .word 0x000009AD -_021E8710: .word 0x00000D8B - thumb_func_end ov18_021E8698 - - thumb_func_start ov18_021E8714 -ov18_021E8714: ; 0x021E8714 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r4, r0, #0 - str r1, [sp] - cmp r2, #0 - bne _021E87BE - add r0, r1, #0 - ldr r0, [r0, #4] - mov r7, #0 - sub r0, r0, #1 - cmp r0, #0 - bgt _021E872E - b _021E886C -_021E872E: - mov r0, #1 - lsl r0, r3 - mov ip, r0 -_021E8734: - ldr r0, [sp] - ldr r2, [r0] - lsl r0, r7, #2 - str r0, [sp, #4] - ldr r3, [sp, #4] - ldr r0, _021E8870 ; =0x0000190C - ldr r2, [r2, r3] - mov r3, #0x24 - ldr r1, [r4, r0] - mul r3, r2 - ldrb r1, [r1, r3] - cmp r1, #0x16 - bhs _021E87AA - add r3, r0, #0 - sub r3, #0xc - ldr r5, [r4, r3] - mov r1, #0 - cmp r5, #0 - ble _021E877E - sub r0, #0x10 - ldr r3, [r4, r0] -_021E875E: - lsl r6, r1, #2 - ldr r0, [r3, r6] - cmp r0, r2 - bne _021E8774 - ldr r0, _021E8874 ; =0x00001904 - ldr r3, [r4, r0] - mov r0, ip - ldr r2, [r3, r6] - orr r0, r2 - str r0, [r3, r6] - b _021E877E -_021E8774: - add r0, r1, #1 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - cmp r1, r5 - blt _021E875E -_021E877E: - mov r2, #0x19 - lsl r2, r2, #8 - ldr r0, [r4, r2] - cmp r1, r0 - bne _021E87AA - ldr r1, [sp] - lsl r0, r0, #2 - ldr r3, [r1] - ldr r1, [sp, #4] - ldr r3, [r3, r1] - sub r1, r2, #4 - ldr r1, [r4, r1] - str r3, [r1, r0] - add r0, r2, #4 - ldr r1, [r4, r2] - ldr r0, [r4, r0] - lsl r3, r1, #2 - mov r1, ip - str r1, [r0, r3] - ldr r0, [r4, r2] - add r0, r0, #1 - str r0, [r4, r2] -_021E87AA: - add r0, r7, #1 - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - ldr r0, [sp] - ldr r0, [r0, #4] - sub r0, r0, #1 - cmp r7, r0 - blt _021E8734 - add sp, #0xc - pop {r4, r5, r6, r7, pc} -_021E87BE: - add r0, r1, #0 - ldr r0, [r0, #4] - mov r7, #0 - sub r0, r0, #1 - cmp r0, #0 - ble _021E886C - mov r0, #1 - lsl r0, r3 - str r0, [sp, #8] -_021E87D0: - ldr r0, [sp] - ldr r1, [r0] - lsl r0, r7, #2 - ldr r5, [r1, r0] - ldr r0, _021E8870 ; =0x0000190C - ldr r1, [r4, r0] - mov r0, #0x24 - mul r0, r5 - ldrb r0, [r1, r0] - cmp r0, #0x16 - blo _021E885C - add r0, r5, #0 - bl ov18_021E8B24 - cmp r0, #1 - bne _021E87F8 - bl ov18_021E8B40 - add r5, r0, #0 - b _021E8808 -_021E87F8: - add r0, r5, #0 - bl ov18_021E8B5C - cmp r0, #1 - bne _021E8808 - bl ov18_021E8B78 - add r5, r0, #0 -_021E8808: - mov r0, #0x19 - lsl r0, r0, #8 - ldr r3, [r4, r0] - mov r6, #0 - cmp r3, #0 - ble _021E8838 - sub r0, r0, #4 - ldr r2, [r4, r0] -_021E8818: - lsl r1, r6, #2 - ldr r0, [r2, r1] - cmp r5, r0 - bne _021E882E - ldr r0, _021E8874 ; =0x00001904 - ldr r3, [r4, r0] - ldr r0, [sp, #8] - ldr r2, [r3, r1] - orr r0, r2 - str r0, [r3, r1] - b _021E8838 -_021E882E: - add r0, r6, #1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - cmp r6, r3 - blt _021E8818 -_021E8838: - mov r0, #0x19 - lsl r0, r0, #8 - ldr r1, [r4, r0] - cmp r6, r1 - bne _021E885C - sub r2, r0, #4 - ldr r2, [r4, r2] - lsl r1, r1, #2 - str r5, [r2, r1] - add r1, r0, #4 - ldr r3, [r4, r1] - ldr r1, [r4, r0] - lsl r2, r1, #2 - ldr r1, [sp, #8] - str r1, [r3, r2] - ldr r1, [r4, r0] - add r1, r1, #1 - str r1, [r4, r0] -_021E885C: - add r0, r7, #1 - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - ldr r0, [sp] - ldr r0, [r0, #4] - sub r0, r0, #1 - cmp r7, r0 - blt _021E87D0 -_021E886C: - add sp, #0xc - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021E8870: .word 0x0000190C -_021E8874: .word 0x00001904 - thumb_func_end ov18_021E8714 - - thumb_func_start ov18_021E8878 -ov18_021E8878: ; 0x021E8878 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - str r1, [sp] - str r3, [sp, #4] - cmp r2, #0 - bne _021E892C - ldr r1, [r1, #4] - mov r7, #0 - sub r1, r1, #1 - cmp r1, #0 - bgt _021E8890 - b _021E89CE -_021E8890: - ldr r2, [sp, #0x30] - mov r1, #1 - lsl r1, r2 - mov r2, #2 - lsl r2, r2, #0x1e - str r1, [sp, #0x14] - sub r1, r1, r2 - str r1, [sp, #0x10] -_021E88A0: - ldr r1, [sp] - ldr r3, [r1] - lsl r1, r7, #2 - str r1, [sp, #0xc] - ldr r2, [sp, #0xc] - ldr r1, _021E89D4 ; =0x00001908 - ldr r3, [r3, r2] - ldr r4, [r0, r1] - lsl r2, r3, #2 - ldrb r2, [r4, r2] - cmp r2, #0x16 - bhs _021E8918 - ldr r2, [sp, #4] - lsl r2, r2, #0x10 - lsr r6, r2, #0x10 - add r2, r1, #0 - sub r2, #8 - ldr r5, [r0, r2] - cmp r6, r5 - bge _021E88EC - sub r1, #0xc - ldr r4, [r0, r1] -_021E88CC: - lsl r2, r6, #2 - ldr r1, [r4, r2] - cmp r1, r3 - bne _021E88E2 - ldr r1, _021E89D8 ; =0x00001904 - ldr r3, [sp, #0x14] - ldr r1, [r0, r1] - ldr r4, [r1, r2] - orr r3, r4 - str r3, [r1, r2] - b _021E88EC -_021E88E2: - add r1, r6, #1 - lsl r1, r1, #0x10 - lsr r6, r1, #0x10 - cmp r6, r5 - blt _021E88CC -_021E88EC: - mov r1, #0x19 - lsl r1, r1, #8 - ldr r3, [r0, r1] - cmp r6, r3 - bne _021E8918 - ldr r2, [sp] - lsl r3, r3, #2 - ldr r4, [r2] - ldr r2, [sp, #0xc] - ldr r2, [r4, r2] - sub r4, r1, #4 - ldr r4, [r0, r4] - str r2, [r4, r3] - add r2, r1, #4 - ldr r4, [r0, r2] - ldr r2, [r0, r1] - lsl r3, r2, #2 - ldr r2, [sp, #0x10] - str r2, [r4, r3] - ldr r2, [r0, r1] - add r2, r2, #1 - str r2, [r0, r1] -_021E8918: - add r1, r7, #1 - lsl r1, r1, #0x10 - lsr r7, r1, #0x10 - ldr r1, [sp] - ldr r1, [r1, #4] - sub r1, r1, #1 - cmp r7, r1 - blt _021E88A0 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} -_021E892C: - ldr r1, [r1, #4] - mov r7, #0 - sub r1, r1, #1 - cmp r1, #0 - ble _021E89CE - ldr r2, [sp, #0x30] - mov r1, #1 - lsl r1, r2 - mov r2, #2 - lsl r2, r2, #0x1e - mov ip, r1 - sub r1, r1, r2 - mov lr, r1 -_021E8946: - ldr r1, [sp] - ldr r4, [r1] - lsl r1, r7, #2 - str r1, [sp, #8] - ldr r3, [sp, #8] - ldr r1, _021E89D4 ; =0x00001908 - ldr r5, [r4, r3] - ldr r2, [r0, r1] - lsl r3, r5, #2 - ldrb r2, [r2, r3] - cmp r2, #0x16 - blo _021E89BE - ldr r2, [sp, #4] - lsl r2, r2, #0x10 - lsr r4, r2, #0x10 - add r2, r1, #0 - sub r2, #8 - ldr r3, [r0, r2] - cmp r4, r3 - bge _021E8992 - sub r1, #0xc - ldr r2, [r0, r1] -_021E8972: - lsl r6, r4, #2 - ldr r1, [r2, r6] - cmp r1, r5 - bne _021E8988 - ldr r1, _021E89D8 ; =0x00001904 - ldr r3, [r0, r1] - mov r1, ip - ldr r2, [r3, r6] - orr r1, r2 - str r1, [r3, r6] - b _021E8992 -_021E8988: - add r1, r4, #1 - lsl r1, r1, #0x10 - lsr r4, r1, #0x10 - cmp r4, r3 - blt _021E8972 -_021E8992: - mov r2, #0x19 - lsl r2, r2, #8 - ldr r1, [r0, r2] - cmp r4, r1 - bne _021E89BE - ldr r3, [sp] - lsl r1, r1, #2 - ldr r4, [r3] - ldr r3, [sp, #8] - ldr r4, [r4, r3] - sub r3, r2, #4 - ldr r3, [r0, r3] - str r4, [r3, r1] - add r1, r2, #4 - ldr r4, [r0, r1] - ldr r1, [r0, r2] - lsl r3, r1, #2 - mov r1, lr - str r1, [r4, r3] - ldr r1, [r0, r2] - add r1, r1, #1 - str r1, [r0, r2] -_021E89BE: - add r1, r7, #1 - lsl r1, r1, #0x10 - lsr r7, r1, #0x10 - ldr r1, [sp] - ldr r1, [r1, #4] - sub r1, r1, #1 - cmp r7, r1 - blt _021E8946 -_021E89CE: - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E89D4: .word 0x00001908 -_021E89D8: .word 0x00001904 - thumb_func_end ov18_021E8878 - - thumb_func_start ov18_021E89DC -ov18_021E89DC: ; 0x021E89DC - push {r3, lr} - ldr r3, _021E89FC ; =_021F99E0 - mov r2, #0 -_021E89E2: - ldr r1, [r3] - cmp r0, r1 - bne _021E89EC - add r0, r2, #0 - pop {r3, pc} -_021E89EC: - add r2, r2, #1 - add r3, r3, #4 - cmp r2, #0x8e - blo _021E89E2 - bl GF_AssertFail - mov r0, #0 - pop {r3, pc} - .balign 4, 0 -_021E89FC: .word _021F99E0 - thumb_func_end ov18_021E89DC - - thumb_func_start ov18_021E8A00 -ov18_021E8A00: ; 0x021E8A00 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r5, r0, #0 - mov r0, #1 - str r0, [sp, #4] - mov r0, #0x19 - lsl r0, r0, #8 - ldr r0, [r5, r0] - sub r0, r0, #1 - cmp r0, #1 - ble _021E8AA2 -_021E8A16: - ldr r1, [sp, #4] - add r0, r5, #0 - bl ov18_021E8AE0 - add r6, r0, #0 - ldr r0, [sp, #4] - add r0, r0, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - mov r0, #0x19 - lsl r0, r0, #8 - ldr r0, [r5, r0] - cmp r4, r0 - bge _021E8A90 - ldr r0, [sp, #4] - lsl r0, r0, #2 - str r0, [sp] -_021E8A38: - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E8AE0 - add r7, r0, #0 - add r0, r6, #0 - bl ov18_021E89DC - str r0, [sp, #8] - add r0, r7, #0 - bl ov18_021E89DC - ldr r1, [sp, #8] - cmp r1, r0 - bls _021E8A80 - ldr r0, _021E8AA8 ; =0x000018FC - ldr r1, [sp] - ldr r6, [r5, r0] - ldr r0, [sp] - ldr r3, [r0, r6] - lsl r0, r4, #2 - ldr r2, [r6, r0] - str r2, [r1, r6] - ldr r1, _021E8AA8 ; =0x000018FC - ldr r1, [r5, r1] - str r3, [r1, r0] - ldr r1, _021E8AAC ; =0x00001904 - ldr r6, [r5, r1] - ldr r1, [sp] - ldr r2, [r6, r0] - ldr r3, [r1, r6] - str r2, [r1, r6] - ldr r1, _021E8AAC ; =0x00001904 - add r6, r7, #0 - ldr r1, [r5, r1] - str r3, [r1, r0] -_021E8A80: - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - mov r0, #0x19 - lsl r0, r0, #8 - ldr r0, [r5, r0] - cmp r4, r0 - blt _021E8A38 -_021E8A90: - ldr r1, [sp, #4] - add r1, r1, #1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - str r1, [sp, #4] - sub r1, r0, #1 - ldr r0, [sp, #4] - cmp r0, r1 - blt _021E8A16 -_021E8AA2: - add sp, #0xc - pop {r4, r5, r6, r7, pc} - nop -_021E8AA8: .word 0x000018FC -_021E8AAC: .word 0x00001904 - thumb_func_end ov18_021E8A00 - - thumb_func_start ov18_021E8AB0 -ov18_021E8AB0: ; 0x021E8AB0 - ldr r2, _021E8AC8 ; =0x00001904 - ldr r2, [r0, r2] - lsl r0, r1, #2 - ldr r1, [r2, r0] - mov r0, #2 - lsl r0, r0, #0x1e - tst r0, r1 - beq _021E8AC4 - mov r0, #1 - bx lr -_021E8AC4: - mov r0, #0 - bx lr - .balign 4, 0 -_021E8AC8: .word 0x00001904 - thumb_func_end ov18_021E8AB0 - - thumb_func_start ov18_021E8ACC -ov18_021E8ACC: ; 0x021E8ACC - mov r3, #1 - lsl r3, r2 - ldr r2, _021E8ADC ; =0x00001904 - ldr r2, [r0, r2] - lsl r0, r1, #2 - ldr r0, [r2, r0] - and r0, r3 - bx lr - .balign 4, 0 -_021E8ADC: .word 0x00001904 - thumb_func_end ov18_021E8ACC - - thumb_func_start ov18_021E8AE0 -ov18_021E8AE0: ; 0x021E8AE0 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl ov18_021E8AB0 - cmp r0, #0 - ldr r0, _021E8B08 ; =0x000018FC - bne _021E8AFC - ldr r1, [r5, r0] - lsl r0, r4, #2 - ldr r0, [r1, r0] - bl ov18_021E8B0C - pop {r3, r4, r5, pc} -_021E8AFC: - ldr r1, [r5, r0] - lsl r0, r4, #2 - ldr r0, [r1, r0] - bl ov18_021E8B18 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021E8B08: .word 0x000018FC - thumb_func_end ov18_021E8AE0 - - thumb_func_start ov18_021E8B0C -ov18_021E8B0C: ; 0x021E8B0C - lsl r1, r0, #1 - ldr r0, _021E8B14 ; =_021F9954 - ldrh r0, [r0, r1] - bx lr - .balign 4, 0 -_021E8B14: .word _021F9954 - thumb_func_end ov18_021E8B0C - - thumb_func_start ov18_021E8B18 -ov18_021E8B18: ; 0x021E8B18 - lsl r1, r0, #1 - ldr r0, _021E8B20 ; =_021F98D8 - ldrh r0, [r0, r1] - bx lr - .balign 4, 0 -_021E8B20: .word _021F98D8 - thumb_func_end ov18_021E8B18 - - thumb_func_start ov18_021E8B24 -ov18_021E8B24: ; 0x021E8B24 - push {r3, lr} - bl ov18_021E8B0C - cmp r0, #0xa - beq _021E8B34 - ldr r1, _021E8B3C ; =0x0000019E - cmp r0, r1 - bne _021E8B38 -_021E8B34: - mov r0, #1 - pop {r3, pc} -_021E8B38: - mov r0, #0 - pop {r3, pc} - .balign 4, 0 -_021E8B3C: .word 0x0000019E - thumb_func_end ov18_021E8B24 - - thumb_func_start ov18_021E8B40 -ov18_021E8B40: ; 0x021E8B40 - ldr r2, _021E8B58 ; =_021F9954 - mov r0, #0 -_021E8B44: - ldrh r1, [r2] - cmp r1, #0xa - beq _021E8B54 - add r0, r0, #1 - add r2, r2, #2 - cmp r0, #0x46 - blo _021E8B44 - mov r0, #1 -_021E8B54: - bx lr - nop -_021E8B58: .word _021F9954 - thumb_func_end ov18_021E8B40 - - thumb_func_start ov18_021E8B5C -ov18_021E8B5C: ; 0x021E8B5C - push {r3, lr} - bl ov18_021E8B0C - ldr r1, _021E8B74 ; =0x000001A6 - cmp r0, r1 - beq _021E8B6C - cmp r0, #0x18 - bne _021E8B70 -_021E8B6C: - mov r0, #1 - pop {r3, pc} -_021E8B70: - mov r0, #0 - pop {r3, pc} - .balign 4, 0 -_021E8B74: .word 0x000001A6 - thumb_func_end ov18_021E8B5C - - thumb_func_start ov18_021E8B78 -ov18_021E8B78: ; 0x021E8B78 - ldr r2, _021E8B90 ; =_021F9954 - mov r0, #0 -_021E8B7C: - ldrh r1, [r2] - cmp r1, #0x18 - beq _021E8B8C - add r0, r0, #1 - add r2, r2, #2 - cmp r0, #0x46 - blo _021E8B7C - mov r0, #1 -_021E8B8C: - bx lr - nop -_021E8B90: .word _021F9954 - thumb_func_end ov18_021E8B78 - - thumb_func_start ov18_021E8B94 -ov18_021E8B94: ; 0x021E8B94 - push {r3, r4, lr} - sub sp, #0xc - mov r2, #0 - add r4, r0, #0 - str r2, [sp] - add r0, sp, #8 - str r0, [sp, #4] - mov r0, #0x85 - mov r1, #1 - mov r3, #0x25 - bl GfGfxLoader_LoadFromNarc_GetSizeOut - ldr r1, _021E8BCC ; =0x0000190C - mov r3, #0x25 - str r0, [r4, r1] - mov r1, #0 - str r1, [sp] - add r0, sp, #8 - str r0, [sp, #4] - mov r0, #0x85 - add r2, r1, #0 - bl GfGfxLoader_LoadFromNarc_GetSizeOut - ldr r1, _021E8BD0 ; =0x00001908 - str r0, [r4, r1] - add sp, #0xc - pop {r3, r4, pc} - nop -_021E8BCC: .word 0x0000190C -_021E8BD0: .word 0x00001908 - thumb_func_end ov18_021E8B94 - - thumb_func_start ov18_021E8BD4 -ov18_021E8BD4: ; 0x021E8BD4 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021E8BEC ; =0x0000190C - ldr r0, [r4, r0] - bl Heap_Free - ldr r0, _021E8BF0 ; =0x00001908 - ldr r0, [r4, r0] - bl Heap_Free - pop {r4, pc} - nop -_021E8BEC: .word 0x0000190C -_021E8BF0: .word 0x00001908 - thumb_func_end ov18_021E8BD4 - - thumb_func_start ov18_021E8BF4 -ov18_021E8BF4: ; 0x021E8BF4 - push {r3, r4, r5, lr} - add r4, r1, #0 - ldr r1, [r4] - add r5, r0, #0 - lsl r2, r1, #2 - ldr r1, _021E8C28 ; =_021F9C3C - ldr r1, [r1, r2] - blx r1 - str r0, [r4] - cmp r0, #0x5d - bne _021E8C0E - mov r0, #0 - pop {r3, r4, r5, pc} -_021E8C0E: - ldr r0, [r5, #8] - bl sub_02019934 - add r0, r5, #0 - bl ov18_021F1004 - ldr r0, _021E8C2C ; =0x0000066C - ldr r0, [r5, r0] - bl SpriteSystem_DrawSprites - mov r0, #1 - pop {r3, r4, r5, pc} - nop -_021E8C28: .word _021F9C3C -_021E8C2C: .word 0x0000066C - thumb_func_end ov18_021E8BF4 - - thumb_func_start ov18_021E8C30 -ov18_021E8C30: ; 0x021E8C30 - push {r4, lr} - sub sp, #0x20 - add r4, r0, #0 - mov r0, #0 - add r1, r0, #0 - bl Main_SetVBlankIntrCB - bl HBlankInterruptDisable - mov r0, #0 - bl GfGfx_EngineASetPlanes - mov r0, #0 - bl GfGfx_EngineBSetPlanes - ldr r0, _021E8D18 ; =0x04000050 - mov r1, #0 - strh r1, [r0] - ldr r0, _021E8D1C ; =0x04001050 - strh r1, [r0] - bl sub_020210BC - mov r0, #4 - bl sub_02021148 - ldr r2, _021E8D20 ; =0x04000304 - ldr r0, _021E8D24 ; =0xFFFF7FFF - ldrh r1, [r2] - and r0, r1 - strh r0, [r2] - mov r0, #4 - mov r1, #8 - bl SetKeyRepeatTimers - add r0, r4, #0 - bl ov18_021E62A8 - add r0, r4, #0 - bl ov18_021E8410 - mov r0, #0 - mov r1, #0x25 - bl sub_020880CC - mov r0, #4 - mov r1, #0x25 - bl FontID_Alloc - mov r0, #0x44 - mov r1, #0x25 - bl NARC_New - ldr r1, _021E8D28 ; =0x00000854 - str r0, [r4, r1] - add r0, r4, #0 - bl ov18_021E6FFC - mov r0, #0x11 - str r0, [sp] - str r0, [sp, #4] - mov r2, #0 - str r2, [sp, #8] - mov r0, #0x98 - str r0, [sp, #0xc] - str r2, [sp, #0x10] - str r0, [sp, #0x14] - mov r0, #8 - str r0, [sp, #0x18] - mov r0, #0xe - str r0, [sp, #0x1c] - ldr r1, _021E8D2C ; =0x00001858 - add r0, r4, #0 - ldrb r1, [r4, r1] - mov r3, #0x1a - bl ov18_021F7ED4 - add r0, r4, #0 - mov r1, #1 - bl ov18_021F8884 - add r0, r4, #0 - bl ov18_021EDDB4 - bl ov18_021E5C74 - add r0, r4, #0 - bl ov18_021E5C84 - add r0, r4, #0 - bl ov18_021E6308 - add r0, r4, #0 - bl ov18_021E61A4 - add r0, r4, #0 - bl ov18_021E6244 - add r0, r4, #0 - bl ov18_021F0FC8 - bl ov18_021E6174 - mov r1, #0 - mov r0, #0x36 - add r2, r1, #0 - bl Sound_SetSceneAndPlayBGM - ldr r0, _021E8D30 ; =ov18_021E5C40 - add r1, r4, #0 - bl Main_SetVBlankIntrCB - ldr r0, _021E8D34 ; =0x0000085C - ldr r0, [r4, r0] - add sp, #0x20 - pop {r4, pc} - nop -_021E8D18: .word 0x04000050 -_021E8D1C: .word 0x04001050 -_021E8D20: .word 0x04000304 -_021E8D24: .word 0xFFFF7FFF -_021E8D28: .word 0x00000854 -_021E8D2C: .word 0x00001858 -_021E8D30: .word ov18_021E5C40 -_021E8D34: .word 0x0000085C - thumb_func_end ov18_021E8C30 - - thumb_func_start ov18_021E8D38 -ov18_021E8D38: ; 0x021E8D38 - push {r4, lr} - add r4, r0, #0 - mov r0, #0 - add r1, r0, #0 - bl Main_SetVBlankIntrCB - add r0, r4, #0 - bl ov18_021EE388 - add r0, r4, #0 - bl ov18_021F0FEC - add r0, r4, #0 - bl ov18_021E6280 - add r0, r4, #0 - bl ov18_021E6204 - add r0, r4, #0 - bl ov18_021E6540 - add r0, r4, #0 - bl ov18_021E5F58 - ldr r0, _021E8DA0 ; =0x00000854 - ldr r0, [r4, r0] - bl NARC_Delete - mov r0, #4 - bl FontID_Release - add r0, r4, #0 - bl ov18_021E84EC - add r0, r4, #0 - bl ov18_021E62E8 - bl sub_02021238 - ldr r1, _021E8DA4 ; =0x04000050 - mov r0, #0 - strh r0, [r1] - ldr r1, _021E8DA8 ; =0x04001050 - strh r0, [r1] - bl GfGfx_EngineASetPlanes - mov r0, #0 - bl GfGfx_EngineBSetPlanes - ldr r0, _021E8DAC ; =0x0000085C - ldr r0, [r4, r0] - pop {r4, pc} - .balign 4, 0 -_021E8DA0: .word 0x00000854 -_021E8DA4: .word 0x04000050 -_021E8DA8: .word 0x04001050 -_021E8DAC: .word 0x0000085C - thumb_func_end ov18_021E8D38 - - thumb_func_start ov18_021E8DB0 -ov18_021E8DB0: ; 0x021E8DB0 - push {r4, lr} - add r4, r0, #0 - bl IsPaletteFadeFinished - cmp r0, #1 - bne _021E8DC4 - mov r0, #0x86 - lsl r0, r0, #4 - ldr r0, [r4, r0] - pop {r4, pc} -_021E8DC4: - mov r0, #2 - pop {r4, pc} - thumb_func_end ov18_021E8DB0 - - thumb_func_start ov18_021E8DC8 -ov18_021E8DC8: ; 0x021E8DC8 - push {r4, lr} - add r4, r0, #0 - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r4, r0] - bl PaletteData_GetSelectedBuffersBitmask - cmp r0, #0 - bne _021E8DE0 - ldr r0, _021E8DE4 ; =0x0000085C - ldr r0, [r4, r0] - pop {r4, pc} -_021E8DE0: - mov r0, #3 - pop {r4, pc} - .balign 4, 0 -_021E8DE4: .word 0x0000085C - thumb_func_end ov18_021E8DC8 - - thumb_func_start ov18_021E8DE8 -ov18_021E8DE8: ; 0x021E8DE8 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - ldr r0, _021E8E84 ; =0x00000868 - add r4, r5, r0 - ldrb r0, [r4, #5] - cmp r0, #0 - beq _021E8E02 - cmp r0, #1 - beq _021E8E2E - cmp r0, #2 - beq _021E8E6A - b _021E8E7C -_021E8E02: - ldrb r0, [r4, #2] - str r0, [sp] - ldrb r0, [r4, #3] - str r0, [sp, #4] - ldrb r0, [r4, #7] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1c - str r0, [sp, #8] - ldrb r1, [r4, #4] - ldrb r2, [r4] - ldrb r3, [r4, #1] - ldr r0, [r5, #4] - bl BgTilemapRectChangePalette - ldrb r1, [r4, #4] - ldr r0, [r5, #4] - bl ScheduleBgTilemapBufferTransfer - ldrb r0, [r4, #5] - add r0, r0, #1 - strb r0, [r4, #5] - b _021E8E7C -_021E8E2E: - ldrb r0, [r4, #6] - add r0, r0, #1 - strb r0, [r4, #6] - ldrb r0, [r4, #6] - cmp r0, #4 - bne _021E8E7C - ldrb r0, [r4, #2] - str r0, [sp] - ldrb r0, [r4, #3] - str r0, [sp, #4] - ldrb r0, [r4, #7] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - str r0, [sp, #8] - ldrb r1, [r4, #4] - ldrb r2, [r4] - ldrb r3, [r4, #1] - ldr r0, [r5, #4] - bl BgTilemapRectChangePalette - ldrb r1, [r4, #4] - ldr r0, [r5, #4] - bl ScheduleBgTilemapBufferTransfer - mov r0, #0 - strb r0, [r4, #6] - ldrb r0, [r4, #5] - add r0, r0, #1 - strb r0, [r4, #5] - b _021E8E7C -_021E8E6A: - add r0, r4, #0 - mov r1, #0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, _021E8E88 ; =0x0000085C - add sp, #0xc - ldr r0, [r5, r0] - pop {r4, r5, pc} -_021E8E7C: - mov r0, #4 - add sp, #0xc - pop {r4, r5, pc} - nop -_021E8E84: .word 0x00000868 -_021E8E88: .word 0x0000085C - thumb_func_end ov18_021E8DE8 - - thumb_func_start ov18_021E8E8C -ov18_021E8E8C: ; 0x021E8E8C - push {r3, r4, lr} - sub sp, #0xc - ldr r2, _021E8EC4 ; =0x0000185B - add r4, r0, #0 - mov r1, #0 - strb r1, [r4, r2] - bl ov18_021E67C8 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #0xf - add r3, r1, #0 - ldr r0, [r4, r0] - ldr r2, _021E8EC8 ; =0x0000FFFF - sub r3, #0x8e - bl PaletteData_BeginPaletteFade - mov r0, #0x86 - mov r1, #6 - lsl r0, r0, #4 - str r1, [r4, r0] - mov r0, #2 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021E8EC4: .word 0x0000185B -_021E8EC8: .word 0x0000FFFF - thumb_func_end ov18_021E8E8C - - thumb_func_start ov18_021E8ECC -ov18_021E8ECC: ; 0x021E8ECC - push {r3, r4, r5, lr} - sub sp, #8 - add r4, r0, #0 - bl ov18_021F6B00 - cmp r0, #6 - bhi _021E8FB0 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E8EE6: ; jump table - .short _021E8EF4 - _021E8EE6 - 2 ; case 0 - .short _021E8F0A - _021E8EE6 - 2 ; case 1 - .short _021E8F20 - _021E8EE6 - 2 ; case 2 - .short _021E8F54 - _021E8EE6 - 2 ; case 3 - .short _021E8F64 - _021E8EE6 - 2 ; case 4 - .short _021E8F74 - _021E8EE6 - 2 ; case 5 - .short _021E8F94 - _021E8EE6 - 2 ; case 6 -_021E8EF4: - ldr r0, _021E8FB8 ; =0x000008F2 - bl PlaySE - add r0, r4, #0 - mov r1, #8 - mov r2, #0x10 - mov r3, #9 - bl ov18_021EDBB8 - add sp, #8 - pop {r3, r4, r5, pc} -_021E8F0A: - ldr r0, _021E8FBC ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #0 - mov r2, #8 - mov r3, #0xa - bl ov18_021EDBB8 - add sp, #8 - pop {r3, r4, r5, pc} -_021E8F20: - ldr r0, _021E8FC0 ; =0x00000864 - ldr r0, [r4, r0] - cmp r0, #0 - ldr r0, [r4] - bne _021E8F34 - ldr r0, [r0, #0xc] - mov r1, #1 - bl MenuInputStateMgr_SetState - b _021E8F3C -_021E8F34: - ldr r0, [r0, #0xc] - mov r1, #0 - bl MenuInputStateMgr_SetState -_021E8F3C: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - add r0, r4, #0 - mov r1, #0x18 - mov r2, #8 - mov r3, #0x5c - bl ov18_021EDBB8 - add sp, #8 - pop {r3, r4, r5, pc} -_021E8F54: - ldr r0, _021E8FC4 ; =0x000008F1 - bl PlaySE - add r0, r4, #0 - mov r1, #1 - bl ov18_021EDDA4 - b _021E8FB0 -_021E8F64: - ldr r0, _021E8FC4 ; =0x000008F1 - bl PlaySE - add r0, r4, #0 - mov r1, #0 - bl ov18_021EDDA4 - b _021E8FB0 -_021E8F74: - ldr r0, _021E8FC8 ; =0x00000868 - add r5, r4, r0 - add r0, r5, #0 - add r1, r5, #4 - bl System_GetTouchNewCoords - add r0, r4, #0 - bl ov18_021F2B9C - strh r0, [r5, #8] - ldr r0, _021E8FB8 ; =0x000008F2 - bl PlaySE - add sp, #8 - mov r0, #8 - pop {r3, r4, r5, pc} -_021E8F94: - add r0, sp, #4 - add r1, sp, #0 - bl System_GetTouchNewCoords - ldr r1, [sp, #4] - ldr r2, [sp] - add r0, r4, #0 - bl ov18_021F2AF8 - cmp r0, #1 - bne _021E8FB0 - add sp, #8 - mov r0, #7 - pop {r3, r4, r5, pc} -_021E8FB0: - mov r0, #6 - add sp, #8 - pop {r3, r4, r5, pc} - nop -_021E8FB8: .word 0x000008F2 -_021E8FBC: .word 0x000008E9 -_021E8FC0: .word 0x00000864 -_021E8FC4: .word 0x000008F1 -_021E8FC8: .word 0x00000868 - thumb_func_end ov18_021E8ECC - - thumb_func_start ov18_021E8FCC -ov18_021E8FCC: ; 0x021E8FCC - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - add r0, sp, #4 - add r1, sp, #0 - bl System_GetTouchHeldCoords - cmp r0, #0 - bne _021E8FEA - add r0, r4, #0 - bl ov18_021EDCD4 - add sp, #8 - mov r0, #6 - pop {r4, pc} -_021E8FEA: - ldr r0, [sp, #4] - cmp r0, #0x5c - blo _021E9056 - cmp r0, #0xa4 - bhs _021E9056 - ldr r1, [sp] - cmp r1, #0x70 - blo _021E9056 - cmp r1, #0x90 - bhs _021E9056 - cmp r0, #0x60 - bhs _021E9008 - mov r0, #0x60 - str r0, [sp, #4] - b _021E9010 -_021E9008: - cmp r0, #0x9f - bls _021E9010 - mov r0, #0x9f - str r0, [sp, #4] -_021E9010: - cmp r1, #0x78 - bhs _021E901A - mov r0, #0x78 - str r0, [sp] - b _021E9022 -_021E901A: - cmp r1, #0x87 - bls _021E9022 - mov r0, #0x87 - str r0, [sp] -_021E9022: - ldr r1, [sp, #4] - ldr r2, [sp] - add r0, r4, #0 - bl ov18_021F2AF8 - cmp r0, #0 - bne _021E9062 - ldr r0, _021E9068 ; =0x00001858 - ldrb r0, [r4, r0] - cmp r0, #1 - ldr r0, _021E906C ; =0x000008F1 - bne _021E9048 - bl PlaySE - add r0, r4, #0 - mov r1, #0 - bl ov18_021EDC74 - b _021E9062 -_021E9048: - bl PlaySE - add r0, r4, #0 - mov r1, #1 - bl ov18_021EDC74 - b _021E9062 -_021E9056: - add r0, r4, #0 - bl ov18_021EDCD4 - add sp, #8 - mov r0, #6 - pop {r4, pc} -_021E9062: - mov r0, #7 - add sp, #8 - pop {r4, pc} - .balign 4, 0 -_021E9068: .word 0x00001858 -_021E906C: .word 0x000008F1 - thumb_func_end ov18_021E8FCC - - thumb_func_start ov18_021E9070 -ov18_021E9070: ; 0x021E9070 - push {r4, r5, r6, lr} - sub sp, #8 - add r5, r0, #0 - ldr r0, _021E9188 ; =0x00000868 - add r4, r5, r0 - ldrh r0, [r4, #0xa] - cmp r0, #0 - beq _021E9086 - cmp r0, #1 - beq _021E9118 - b _021E9180 -_021E9086: - add r0, sp, #4 - add r1, sp, #0 - bl System_GetTouchHeldCoords - cmp r0, #0 - bne _021E90B8 - ldr r0, [r5, #4] - mov r1, #0 - bl Bg_GetXpos - cmp r0, #0x40 - blt _021E90B0 - ldr r0, _021E9188 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add sp, #8 - mov r0, #9 - pop {r4, r5, r6, pc} -_021E90B0: - ldrh r0, [r4, #0xa] - add r0, r0, #1 - strh r0, [r4, #0xa] - b _021E9180 -_021E90B8: - ldr r1, [r4] - ldr r0, [sp, #4] - sub r3, r1, r0 - ldr r0, [r5, #4] - bpl _021E90E6 - mov r1, #0 - add r2, r1, #0 - add r3, r1, #0 - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r5, #4] - mov r1, #4 - add r3, r2, #0 - bl ScheduleSetBgPosText - mov r2, #8 - ldrsh r2, [r4, r2] - add r0, r5, #0 - mov r1, #0 - bl ov18_021F2B70 - b _021E9180 -_021E90E6: - mov r1, #0 - add r2, r1, #0 - bl ScheduleSetBgPosText - ldr r6, [r4] - ldr r3, [sp, #4] - ldr r0, [r5, #4] - mov r1, #4 - mov r2, #0 - sub r3, r6, r3 - bl ScheduleSetBgPosText - mov r2, #8 - add r0, r5, #0 - ldrsh r5, [r4, r2] - ldr r3, [r4] - ldr r2, [sp, #4] - mov r1, #0 - sub r2, r3, r2 - sub r2, r5, r2 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - bl ov18_021F2B70 - b _021E9180 -_021E9118: - ldr r0, [r5, #4] - mov r1, #0 - mov r2, #2 - mov r3, #0x10 - bl ScheduleSetBgPosText - ldr r0, [r5, #4] - mov r1, #4 - mov r2, #2 - mov r3, #0x10 - bl ScheduleSetBgPosText - add r0, r5, #0 - mov r1, #0 - mov r2, #0x10 - bl ov18_021F2B3C - ldr r0, [r5, #4] - mov r1, #0 - bl Bg_GetXpos - cmp r0, #0 - bgt _021E9180 - mov r1, #0 - ldr r0, [r5, #4] - add r2, r1, #0 - add r3, r1, #0 - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r5, #4] - mov r1, #4 - add r3, r2, #0 - bl ScheduleSetBgPosText - add r0, r5, #0 - bl ov18_021F2B9C - add r2, r0, #0 - add r0, r5, #0 - mov r1, #0 - bl ov18_021F2B70 - ldr r0, _021E9188 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add sp, #8 - mov r0, #6 - pop {r4, r5, r6, pc} -_021E9180: - mov r0, #8 - add sp, #8 - pop {r4, r5, r6, pc} - nop -_021E9188: .word 0x00000868 - thumb_func_end ov18_021E9070 - - thumb_func_start ov18_021E918C -ov18_021E918C: ; 0x021E918C - push {r4, r5, r6, lr} - ldr r1, _021E92A8 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrh r1, [r4] - cmp r1, #0 - beq _021E91A4 - cmp r1, #1 - beq _021E91AE - cmp r1, #2 - beq _021E924A - b _021E92A2 -_021E91A4: - bl ov18_021E6574 - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] -_021E91AE: - ldr r0, [r5, #4] - mov r1, #0 - mov r2, #1 - mov r3, #0x10 - bl ScheduleSetBgPosText - ldr r0, [r5, #4] - mov r1, #4 - mov r2, #1 - mov r3, #0x10 - bl ScheduleSetBgPosText - mov r1, #0 - add r2, r1, #0 - add r0, r5, #0 - sub r2, #0x10 - bl ov18_021F2B3C - ldr r0, [r5, #4] - mov r1, #0 - bl Bg_GetXpos - add r6, r0, #0 - ldrb r0, [r4, #3] - cmp r0, #0 - bne _021E9202 - cmp r6, #0xc0 - blt _021E9202 - ldr r0, [r5, #8] - mov r1, #0 - bl sub_020199E4 - cmp r0, #0 - bne _021E9202 - mov r0, #1 - strb r0, [r4, #3] - add r0, r5, #0 - bl ov18_021E65AC - add r0, r5, #0 - bl ov18_021EDE64 -_021E9202: - mov r3, #1 - lsl r3, r3, #8 - cmp r6, r3 - blt _021E92A2 - mov r1, #0 - ldr r0, [r5, #4] - add r2, r1, #0 - bl ScheduleSetBgPosText - mov r1, #4 - add r3, r1, #0 - ldr r0, [r5, #4] - mov r2, #0 - add r3, #0xfc - bl ScheduleSetBgPosText - add r0, r5, #0 - bl ov18_021F2B9C - mov r2, #1 - add r3, r0, #0 - lsl r2, r2, #8 - sub r2, r3, r2 - lsl r2, r2, #0x10 - add r0, r5, #0 - mov r1, #0 - asr r2, r2, #0x10 - bl ov18_021F2B70 - ldrb r0, [r4, #3] - cmp r0, #1 - bne _021E92A2 - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] - b _021E92A2 -_021E924A: - ldr r0, [r5, #8] - mov r1, #1 - bl sub_020199E4 - cmp r0, #0 - bne _021E92A2 - add r0, r5, #0 - bl ov18_021F8838 - add r4, r0, #0 - add r0, r5, #0 - bl ov18_021E659C - cmp r4, #0 - beq _021E9288 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #8 - bl ov18_021F24E0 - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E6D38 - cmp r0, #1 - bne _021E9288 - add r0, r5, #0 - mov r1, #6 - mov r2, #1 - bl ov18_021F2A2C -_021E9288: - add r0, r5, #0 - add r1, r4, #0 - mov r2, #6 - bl ov18_021EE638 - ldr r0, _021E92A8 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #0xb - pop {r4, r5, r6, pc} -_021E92A2: - mov r0, #9 - pop {r4, r5, r6, pc} - nop -_021E92A8: .word 0x00000868 - thumb_func_end ov18_021E918C - - thumb_func_start ov18_021E92AC -ov18_021E92AC: ; 0x021E92AC - push {r3, r4, lr} - sub sp, #0xc - ldr r1, _021E93CC ; =0x00000868 - add r4, r0, #0 - ldrb r2, [r4, r1] - cmp r2, #0 - beq _021E92C4 - cmp r2, #1 - beq _021E9302 - cmp r2, #2 - beq _021E9380 - b _021E93C4 -_021E92C4: - bl ov18_021E6574 - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021E93D0 ; =0x0000FFFE - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021E93D4 ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldr r0, _021E93CC ; =0x00000868 - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - b _021E93C4 -_021E9302: - sub r1, #0x18 - ldr r0, [r4, r1] - bl PaletteData_GetSelectedBuffersBitmask - cmp r0, #0 - bne _021E9318 - ldr r0, _021E93CC ; =0x00000868 - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - b _021E93C4 -_021E9318: - ldr r0, [r4, #4] - mov r1, #0 - bl Bg_GetXpos - mov r3, #1 - lsl r3, r3, #8 - cmp r0, r3 - ldr r0, [r4, #4] - blt _021E935C - mov r1, #0 - add r2, r1, #0 - bl ScheduleSetBgPosText - mov r1, #4 - add r3, r1, #0 - ldr r0, [r4, #4] - mov r2, #0 - add r3, #0xfc - bl ScheduleSetBgPosText - add r0, r4, #0 - bl ov18_021F2B9C - mov r2, #1 - add r3, r0, #0 - lsl r2, r2, #8 - sub r2, r3, r2 - lsl r2, r2, #0x10 - add r0, r4, #0 - mov r1, #0 - asr r2, r2, #0x10 - bl ov18_021F2B70 - b _021E93C4 -_021E935C: - mov r1, #0 - mov r2, #1 - mov r3, #0x10 - bl ScheduleSetBgPosText - ldr r0, [r4, #4] - mov r1, #4 - mov r2, #1 - mov r3, #0x10 - bl ScheduleSetBgPosText - mov r1, #0 - add r2, r1, #0 - add r0, r4, #0 - sub r2, #0x10 - bl ov18_021F2B3C - b _021E93C4 -_021E9380: - ldr r0, [r4, #8] - mov r1, #0 - bl sub_020199E4 - cmp r0, #0 - bne _021E93C4 - mov r1, #0 - ldr r0, [r4, #4] - add r2, r1, #0 - add r3, r1, #0 - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r4, #4] - mov r1, #4 - add r3, r2, #0 - bl ScheduleSetBgPosText - mov r0, #0xf - mov r1, #0x25 - bl ZeroPalettesByBitmask - add r0, r4, #0 - bl ov18_021EE388 - add r0, r4, #0 - bl ov18_021F2F00 - ldr r0, _021E93CC ; =0x00000868 - mov r1, #0 - strb r1, [r4, r0] - add sp, #0xc - mov r0, #0x15 - pop {r3, r4, pc} -_021E93C4: - mov r0, #0xa - add sp, #0xc - pop {r3, r4, pc} - nop -_021E93CC: .word 0x00000868 -_021E93D0: .word 0x0000FFFE -_021E93D4: .word 0x0000FFFF - thumb_func_end ov18_021E92AC - - thumb_func_start ov18_021E93D8 -ov18_021E93D8: ; 0x021E93D8 - push {r4, lr} - sub sp, #8 - mov r1, #1 - add r4, r0, #0 - bl ov18_021F6BBC - cmp r0, #0xe - bhi _021E9468 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E93F4: ; jump table - .short _021E9412 - _021E93F4 - 2 ; case 0 - .short _021E9428 - _021E93F4 - 2 ; case 1 - .short _021E942E - _021E93F4 - 2 ; case 2 - .short _021E9444 - _021E93F4 - 2 ; case 3 - .short _021E945E - _021E93F4 - 2 ; case 4 - .short _021E9486 - _021E93F4 - 2 ; case 5 - .short _021E94A0 - _021E93F4 - 2 ; case 6 - .short _021E94BA - _021E93F4 - 2 ; case 7 - .short _021E94CE - _021E93F4 - 2 ; case 8 - .short _021E94E0 - _021E93F4 - 2 ; case 9 - .short _021E9500 - _021E93F4 - 2 ; case 10 - .short _021E9526 - _021E93F4 - 2 ; case 11 - .short _021E9550 - _021E93F4 - 2 ; case 12 - .short _021E9580 - _021E93F4 - 2 ; case 13 - .short _021E95B0 - _021E93F4 - 2 ; case 14 -_021E9412: - add r0, r4, #0 - mov r1, #5 - bl ov18_021F2BB0 - add r0, r4, #0 - bl ov18_021E6E44 - add r0, r4, #0 - bl ov18_021EDE64 - b _021E95E4 -_021E9428: - add sp, #8 - mov r0, #0xc - pop {r4, pc} -_021E942E: - ldr r0, _021E95EC ; =0x0000185B - mov r1, #5 - strb r1, [r4, r0] - add r0, r4, #0 - mov r1, #0 - mov r2, #8 - mov r3, #0x12 - bl ov18_021EDBB8 - add sp, #8 - pop {r4, pc} -_021E9444: - add r0, r4, #0 - bl ov18_021EDE04 - cmp r0, #1 - bne _021E9468 - mov r1, #8 - add r0, r4, #0 - add r2, r1, #0 - mov r3, #0xb - bl ov18_021EDBB8 - add sp, #8 - pop {r4, pc} -_021E945E: - add r0, r4, #0 - bl ov18_021F8838 - cmp r0, #0 - bne _021E946A -_021E9468: - b _021E95E4 -_021E946A: - ldr r0, _021E95F0 ; =0x000008E9 - bl PlaySE - ldr r0, _021E95EC ; =0x0000185B - mov r1, #1 - strb r1, [r4, r0] - add r0, r4, #0 - mov r1, #0x10 - mov r2, #8 - mov r3, #0x12 - bl ov18_021EDBB8 - add sp, #8 - pop {r4, pc} -_021E9486: - ldr r0, [r4] - mov r1, #1 - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_SetState - add r0, r4, #0 - mov r1, #0x18 - mov r2, #8 - mov r3, #0x14 - bl ov18_021EDBB8 - add sp, #8 - pop {r4, pc} -_021E94A0: - ldr r0, [r4] - mov r1, #0 - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_SetState - add r0, r4, #0 - mov r1, #0x18 - mov r2, #8 - mov r3, #0x14 - bl ov18_021EDBB8 - add sp, #8 - pop {r4, pc} -_021E94BA: - add r0, r4, #0 - bl ov18_021F8838 - mov r2, #0 - add r1, r0, #0 - add r0, r4, #0 - mvn r2, r2 - bl ov18_021E6D68 - b _021E95E4 -_021E94CE: - add r0, r4, #0 - bl ov18_021F8838 - add r1, r0, #0 - add r0, r4, #0 - mov r2, #1 - bl ov18_021E6D68 - b _021E95E4 -_021E94E0: - ldr r0, _021E95F4 ; =0x00001859 - ldrb r0, [r4, r0] - cmp r0, #0 - beq _021E95E4 - ldr r0, _021E95F0 ; =0x000008E9 - bl PlaySE - ldr r0, _021E95F8 ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add sp, #8 - mov r0, #0xd - pop {r4, pc} -_021E9500: - ldr r0, _021E95F4 ; =0x00001859 - ldrb r0, [r4, r0] - cmp r0, #0 - beq _021E95E4 - ldr r0, _021E95F0 ; =0x000008E9 - bl PlaySE - ldr r0, _021E95F8 ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, _021E95FC ; =0x0000086F - mov r1, #1 - strb r1, [r4, r0] - add sp, #8 - mov r0, #0xd - pop {r4, pc} -_021E9526: - add r0, r4, #0 - mov r1, #1 - bl ov18_021F8950 - ldr r1, _021E95F4 ; =0x00001859 - ldrb r1, [r4, r1] - add r1, r1, #1 - cmp r1, r0 - bhi _021E95E4 - ldr r0, _021E95F0 ; =0x000008E9 - bl PlaySE - ldr r0, _021E95F8 ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add sp, #8 - mov r0, #0xe - pop {r4, pc} -_021E9550: - add r0, r4, #0 - mov r1, #1 - bl ov18_021F8950 - ldr r1, _021E95F4 ; =0x00001859 - ldrb r1, [r4, r1] - add r1, r1, #1 - cmp r1, r0 - bhi _021E95E4 - ldr r0, _021E95F0 ; =0x000008E9 - bl PlaySE - ldr r0, _021E95F8 ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, _021E95FC ; =0x0000086F - mov r1, #1 - strb r1, [r4, r0] - add sp, #8 - mov r0, #0xe - pop {r4, pc} -_021E9580: - add r0, sp, #4 - add r1, sp, #0 - bl System_GetTouchHeldCoords - ldr r2, [sp, #4] - ldr r3, [sp] - add r0, r4, #0 - mov r1, #1 - bl ov18_021F2CD0 - cmp r0, #1 - bne _021E959E - add sp, #8 - mov r0, #0xf - pop {r4, pc} -_021E959E: - ldr r0, _021E95F8 ; =0x00000868 - add r1, r4, r0 - ldr r0, [sp, #4] - strh r0, [r1] - ldr r0, [sp] - add sp, #8 - strh r0, [r1, #2] - mov r0, #0x10 - pop {r4, pc} -_021E95B0: - ldr r0, _021E95F8 ; =0x00000868 - add r0, r4, r0 - add r1, r0, #4 - bl System_GetTouchNewCoords - ldr r0, [r4, #8] - mov r1, #4 - bl sub_0201980C - add r0, r4, #0 - mov r1, #6 - mov r2, #0 - bl ov18_021F2A2C - add r0, r4, #0 - mov r1, #8 - mov r2, #0 - bl ov18_021F2A84 - add r4, #0x6c - add r0, r4, #0 - bl ClearWindowTilemapAndScheduleTransfer - add sp, #8 - mov r0, #0x11 - pop {r4, pc} -_021E95E4: - mov r0, #0xb - add sp, #8 - pop {r4, pc} - nop -_021E95EC: .word 0x0000185B -_021E95F0: .word 0x000008E9 -_021E95F4: .word 0x00001859 -_021E95F8: .word 0x00000868 -_021E95FC: .word 0x0000086F - thumb_func_end ov18_021E93D8 - - thumb_func_start ov18_021E9600 -ov18_021E9600: ; 0x021E9600 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r0, _021E96F0 ; =0x00000868 - add r4, r5, r0 - ldrh r0, [r4] - cmp r0, #0 - beq _021E9618 - cmp r0, #1 - beq _021E9648 - cmp r0, #2 - beq _021E96CE - b _021E96EA -_021E9618: - ldr r0, [r5, #8] - mov r1, #4 - bl sub_0201980C - add r0, r5, #0 - mov r1, #6 - mov r2, #0 - bl ov18_021F2A2C - add r0, r5, #0 - mov r1, #8 - mov r2, #0 - bl ov18_021F2A84 - add r0, r5, #0 - add r0, #0x6c - bl ClearWindowTilemapAndScheduleTransfer - add r0, r5, #0 - bl ov18_021E65D4 - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] -_021E9648: - ldr r0, [r5, #4] - mov r1, #0 - mov r2, #2 - mov r3, #0x10 - bl ScheduleSetBgPosText - ldr r0, [r5, #4] - mov r1, #4 - mov r2, #2 - mov r3, #0x10 - bl ScheduleSetBgPosText - add r0, r5, #0 - mov r1, #0 - mov r2, #0x10 - bl ov18_021F2B3C - ldr r0, [r5, #4] - mov r1, #0 - bl Bg_GetXpos - add r6, r0, #0 - ldrb r0, [r4, #3] - cmp r0, #0 - bne _021E9694 - cmp r6, #0x40 - bge _021E9694 - ldr r0, [r5, #8] - mov r1, #1 - bl sub_020199E4 - cmp r0, #0 - bne _021E9694 - mov r0, #1 - strb r0, [r4, #3] - add r0, r5, #0 - bl ov18_021E654C -_021E9694: - cmp r6, #0 - bgt _021E96EA - mov r1, #0 - ldr r0, [r5, #4] - add r2, r1, #0 - add r3, r1, #0 - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r5, #4] - mov r1, #4 - add r3, r2, #0 - bl ScheduleSetBgPosText - add r0, r5, #0 - bl ov18_021F2B9C - add r2, r0, #0 - add r0, r5, #0 - mov r1, #0 - bl ov18_021F2B70 - ldrb r0, [r4, #3] - cmp r0, #1 - bne _021E96EA - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] - b _021E96EA -_021E96CE: - ldr r0, [r5, #8] - mov r1, #0 - bl sub_020199E4 - cmp r0, #0 - bne _021E96EA - ldr r0, _021E96F0 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #6 - pop {r4, r5, r6, pc} -_021E96EA: - mov r0, #0xc - pop {r4, r5, r6, pc} - nop -_021E96F0: .word 0x00000868 - thumb_func_end ov18_021E9600 - - thumb_func_start ov18_021E96F4 -ov18_021E96F4: ; 0x021E96F4 - push {r3, r4, r5, lr} - ldr r1, _021E9814 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrb r1, [r4, #4] - cmp r1, #0 - beq _021E970C - cmp r1, #1 - beq _021E976C - cmp r1, #2 - beq _021E97BA - b _021E980E -_021E970C: - bl ov18_021F2BFC - add r0, r5, #0 - mov r1, #2 - mov r2, #6 - bl ov18_021F118C - add r0, r5, #0 - mov r1, #6 - mov r2, #0 - bl ov18_021F2A2C - add r0, r5, #0 - mov r1, #8 - mov r2, #0 - bl ov18_021F2A84 - add r0, r5, #0 - add r0, #0x6c - bl ClearWindowTilemapAndScheduleTransfer - ldr r1, _021E9818 ; =0x00001859 - add r0, r5, #0 - ldrb r1, [r5, r1] - sub r2, r1, #1 - mov r1, #0xf - mul r1, r2 - bl ov18_021E6AEC - str r0, [r4] - ldr r1, _021E9818 ; =0x00001859 - mov r2, #1 - ldrb r1, [r5, r1] - add r0, r5, #0 - add r3, r2, #0 - sub r1, r1, #1 - bl ov18_021F2DD4 - add r2, r0, #0 - add r0, r5, #0 - mov r1, #1 - mov r3, #0xf - bl ov18_021F2E14 - strb r0, [r4, #6] - ldrb r0, [r4, #4] - add r0, r0, #1 - strb r0, [r4, #4] -_021E976C: - ldrb r0, [r4, #5] - add r0, r0, #1 - strb r0, [r4, #5] - ldrb r2, [r4, #5] - ldr r1, [r4] - add r0, r5, #0 - lsl r3, r2, #5 - mov r2, #0x1e - lsl r2, r2, #4 - sub r2, r2, r3 - lsl r2, r2, #1 - add r1, r1, r2 - bl ov18_021E6CE8 - ldrb r0, [r4, #5] - mov r1, #5 - bl _s32_div_f - add r3, r0, #0 - lsl r3, r3, #0x18 - add r0, r5, #0 - mov r1, #0x18 - mov r2, #8 - lsr r3, r3, #0x18 - bl ov18_021F16C4 - ldrb r2, [r4, #6] - add r0, r5, #0 - mov r1, #1 - neg r2, r2 - bl ov18_021F2E4C - ldrb r0, [r4, #5] - cmp r0, #0xf - bne _021E980E - ldrb r0, [r4, #4] - add r0, r0, #1 - strb r0, [r4, #4] - b _021E980E -_021E97BA: - ldrb r0, [r4, #7] - cmp r0, #1 - bne _021E97C8 - ldr r0, _021E981C ; =0x0000185A - ldrb r1, [r5, r0] - add r1, #0xa - strb r1, [r5, r0] -_021E97C8: - ldr r0, _021E9818 ; =0x00001859 - ldrb r1, [r5, r0] - sub r1, r1, #1 - strb r1, [r5, r0] - add r0, r5, #0 - mov r1, #5 - bl ov18_021F2BB0 - ldr r0, [r4] - bl ov18_021E6C90 - add r0, r5, #0 - bl ov18_021E6E44 - add r0, r5, #0 - mov r1, #2 - mov r2, #1 - bl ov18_021F2C10 - mov r1, #1 - add r0, r5, #0 - add r2, r1, #0 - bl ov18_021F2E80 - add r0, r5, #0 - bl ov18_021EDE64 - ldr r0, _021E9814 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #0xb - pop {r3, r4, r5, pc} -_021E980E: - mov r0, #0xd - pop {r3, r4, r5, pc} - nop -_021E9814: .word 0x00000868 -_021E9818: .word 0x00001859 -_021E981C: .word 0x0000185A - thumb_func_end ov18_021E96F4 - - thumb_func_start ov18_021E9820 -ov18_021E9820: ; 0x021E9820 - push {r3, r4, r5, lr} - ldr r1, _021E9934 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrb r1, [r4, #4] - cmp r1, #0 - beq _021E9838 - cmp r1, #1 - beq _021E9896 - cmp r1, #2 - beq _021E98DC - b _021E9930 -_021E9838: - bl ov18_021F2BFC - add r0, r5, #0 - mov r1, #3 - mov r2, #9 - bl ov18_021F118C - add r0, r5, #0 - mov r1, #6 - mov r2, #0 - bl ov18_021F2A2C - add r0, r5, #0 - mov r1, #8 - mov r2, #0 - bl ov18_021F2A84 - add r0, r5, #0 - add r0, #0x6c - bl ClearWindowTilemapAndScheduleTransfer - ldr r1, _021E9938 ; =0x00001859 - add r0, r5, #0 - ldrb r2, [r5, r1] - mov r1, #0xf - mul r1, r2 - bl ov18_021E6AEC - str r0, [r4] - ldr r1, _021E9938 ; =0x00001859 - mov r2, #1 - ldrb r1, [r5, r1] - add r0, r5, #0 - add r3, r2, #0 - add r1, r1, #1 - bl ov18_021F2DD4 - add r2, r0, #0 - add r0, r5, #0 - mov r1, #1 - mov r3, #0xf - bl ov18_021F2E14 - strb r0, [r4, #6] - ldrb r0, [r4, #4] - add r0, r0, #1 - strb r0, [r4, #4] -_021E9896: - ldrb r0, [r4, #5] - add r0, r0, #1 - strb r0, [r4, #5] - ldrb r1, [r4, #5] - ldr r2, [r4] - add r0, r5, #0 - lsl r1, r1, #6 - add r1, r2, r1 - bl ov18_021E6CE8 - ldrb r0, [r4, #5] - mov r1, #5 - bl _s32_div_f - add r3, r0, #0 - mov r1, #0x18 - add r2, r1, #0 - lsl r3, r3, #0x18 - add r0, r5, #0 - sub r2, #0x20 - lsr r3, r3, #0x18 - bl ov18_021F1760 - ldrb r2, [r4, #6] - add r0, r5, #0 - mov r1, #1 - bl ov18_021F2E4C - ldrb r0, [r4, #5] - cmp r0, #0xf - bne _021E9930 - ldrb r0, [r4, #4] - add r0, r0, #1 - strb r0, [r4, #4] - b _021E9930 -_021E98DC: - ldrb r0, [r4, #7] - cmp r0, #1 - bne _021E98EA - ldr r0, _021E993C ; =0x0000185A - ldrb r1, [r5, r0] - sub r1, #0xa - strb r1, [r5, r0] -_021E98EA: - ldr r0, _021E9938 ; =0x00001859 - ldrb r1, [r5, r0] - add r1, r1, #1 - strb r1, [r5, r0] - add r0, r5, #0 - mov r1, #5 - bl ov18_021F2BB0 - ldr r0, [r4] - bl ov18_021E6C90 - add r0, r5, #0 - bl ov18_021E6E44 - add r0, r5, #0 - mov r1, #2 - mov r2, #1 - bl ov18_021F2C10 - mov r1, #1 - add r0, r5, #0 - add r2, r1, #0 - bl ov18_021F2E80 - add r0, r5, #0 - bl ov18_021EDE64 - ldr r0, _021E9934 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #0xb - pop {r3, r4, r5, pc} -_021E9930: - mov r0, #0xe - pop {r3, r4, r5, pc} - .balign 4, 0 -_021E9934: .word 0x00000868 -_021E9938: .word 0x00001859 -_021E993C: .word 0x0000185A - thumb_func_end ov18_021E9820 - - thumb_func_start ov18_021E9940 -ov18_021E9940: ; 0x021E9940 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - add r0, sp, #8 - add r1, sp, #4 - bl System_GetTouchHeldCoords - cmp r0, #0 - bne _021E9958 - add sp, #0xc - mov r0, #0xb - pop {r4, r5, pc} -_021E9958: - mov r1, #1 - str r1, [sp] - ldr r2, [sp, #8] - ldr r3, [sp, #4] - add r0, r5, #0 - bl ov18_021F2D24 - cmp r0, #1 - bne _021E99B6 - ldr r1, _021E99BC ; =0x00001859 - add r0, r5, #0 - ldrb r2, [r5, r1] - mov r1, #0xf - mul r1, r2 - bl ov18_021E6AEC - ldr r1, _021E99C0 ; =0x0000185E - add r4, r0, #0 - ldrb r2, [r5, r1] - mov r0, #1 - eor r0, r2 - strb r0, [r5, r1] - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E6CE8 - add r0, r4, #0 - bl ov18_021E6C90 - add r0, r5, #0 - mov r1, #0x18 - bl ov18_021F1620 - add r0, r5, #0 - bl ov18_021E6E44 - add r0, r5, #0 - mov r1, #2 - mov r2, #1 - bl ov18_021F2C10 - add r0, r5, #0 - bl ov18_021EDE64 - ldr r0, _021E99C4 ; =0x000008E8 - bl PlaySE -_021E99B6: - mov r0, #0xf - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 -_021E99BC: .word 0x00001859 -_021E99C0: .word 0x0000185E -_021E99C4: .word 0x000008E8 - thumb_func_end ov18_021E9940 - - thumb_func_start ov18_021E99C8 -ov18_021E99C8: ; 0x021E99C8 - push {r3, r4, r5, lr} - ldr r1, _021E9A3C ; =0x00000868 - add r5, r0, #0 - add r3, r5, r1 - mov r1, #1 - str r1, [sp] - ldrh r2, [r3] - ldrh r3, [r3, #2] - bl ov18_021F2D24 - cmp r0, #1 - bne _021E9A38 - ldr r1, _021E9A40 ; =0x00001859 - add r0, r5, #0 - ldrb r2, [r5, r1] - mov r1, #0xf - mul r1, r2 - bl ov18_021E6AEC - ldr r1, _021E9A44 ; =0x0000185E - add r4, r0, #0 - ldrb r2, [r5, r1] - mov r0, #1 - eor r0, r2 - strb r0, [r5, r1] - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E6CE8 - add r0, r4, #0 - bl ov18_021E6C90 - add r0, r5, #0 - mov r1, #0x18 - bl ov18_021F1620 - add r0, r5, #0 - bl ov18_021E6E44 - add r0, r5, #0 - mov r1, #2 - mov r2, #1 - bl ov18_021F2C10 - add r0, r5, #0 - bl ov18_021EDE64 - ldr r0, _021E9A3C ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, _021E9A48 ; =0x000008E8 - bl PlaySE -_021E9A38: - mov r0, #0xb - pop {r3, r4, r5, pc} - .balign 4, 0 -_021E9A3C: .word 0x00000868 -_021E9A40: .word 0x00001859 -_021E9A44: .word 0x0000185E -_021E9A48: .word 0x000008E8 - thumb_func_end ov18_021E99C8 - - thumb_func_start ov18_021E9A4C -ov18_021E9A4C: ; 0x021E9A4C - push {r4, r5, r6, lr} - sub sp, #8 - add r5, r0, #0 - ldr r0, _021E9BDC ; =0x00000868 - add r4, r5, r0 - ldrh r0, [r4, #0xa] - cmp r0, #0 - beq _021E9A62 - cmp r0, #1 - beq _021E9B1C - b _021E9BD4 -_021E9A62: - add r0, sp, #4 - add r1, sp, #0 - bl System_GetTouchHeldCoords - cmp r0, #0 - bne _021E9A94 - ldr r0, [r5, #4] - mov r1, #0 - bl Bg_GetXpos - cmp r0, #0xc0 - bge _021E9A8C - ldr r0, _021E9BDC ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add sp, #8 - mov r0, #0xc - pop {r4, r5, r6, pc} -_021E9A8C: - ldrh r0, [r4, #0xa] - add r0, r0, #1 - strh r0, [r4, #0xa] - b _021E9BD4 -_021E9A94: - mov r3, #1 - ldr r0, [r4] - lsl r3, r3, #8 - add r1, r0, r3 - ldr r0, [sp, #4] - sub r6, r1, r0 - cmp r6, r3 - ldr r0, [r5, #4] - ble _021E9AD8 - mov r1, #0 - add r2, r1, #0 - bl ScheduleSetBgPosText - mov r1, #4 - add r3, r1, #0 - ldr r0, [r5, #4] - mov r2, #0 - add r3, #0xfc - bl ScheduleSetBgPosText - add r0, r5, #0 - bl ov18_021F2B9C - mov r2, #1 - add r3, r0, #0 - lsl r2, r2, #8 - sub r2, r3, r2 - lsl r2, r2, #0x10 - add r0, r5, #0 - mov r1, #0 - asr r2, r2, #0x10 - bl ov18_021F2B70 - b _021E9BD4 -_021E9AD8: - mov r1, #0 - add r2, r1, #0 - add r3, r6, #0 - bl ScheduleSetBgPosText - mov r1, #4 - add r3, r1, #0 - ldr r6, [r4] - add r3, #0xfc - add r6, r6, r3 - ldr r3, [sp, #4] - ldr r0, [r5, #4] - mov r2, #0 - sub r3, r6, r3 - bl ScheduleSetBgPosText - add r0, r5, #0 - bl ov18_021F2B9C - mov r2, #1 - add r3, r0, #0 - lsl r2, r2, #8 - add r0, r5, #0 - sub r5, r3, r2 - ldr r3, [r4] - ldr r2, [sp, #4] - mov r1, #0 - sub r2, r3, r2 - sub r2, r5, r2 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - bl ov18_021F2B70 - b _021E9BD4 -_021E9B1C: - ldr r0, [r5, #4] - mov r1, #0 - mov r2, #1 - mov r3, #0x10 - bl ScheduleSetBgPosText - ldr r0, [r5, #4] - mov r1, #4 - mov r2, #1 - mov r3, #0x10 - bl ScheduleSetBgPosText - mov r1, #0 - add r2, r1, #0 - add r0, r5, #0 - sub r2, #0x10 - bl ov18_021F2B3C - ldr r0, [r5, #4] - mov r1, #0 - bl Bg_GetXpos - mov r1, #1 - lsl r1, r1, #8 - cmp r0, r1 - ble _021E9BD4 - add r0, r5, #0 - bl ov18_021F8838 - add r4, r0, #0 - add r0, r5, #0 - bl ov18_021E659C - cmp r4, #0 - beq _021E9B82 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #8 - bl ov18_021F24E0 - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E6D38 - cmp r0, #1 - bne _021E9B82 - add r0, r5, #0 - mov r1, #6 - mov r2, #1 - bl ov18_021F2A2C -_021E9B82: - add r0, r5, #0 - add r1, r4, #0 - mov r2, #6 - bl ov18_021EE638 - mov r1, #0 - mov r3, #1 - ldr r0, [r5, #4] - add r2, r1, #0 - lsl r3, r3, #8 - bl ScheduleSetBgPosText - mov r1, #4 - add r3, r1, #0 - ldr r0, [r5, #4] - mov r2, #0 - add r3, #0xfc - bl ScheduleSetBgPosText - add r0, r5, #0 - bl ov18_021F2B9C - mov r2, #1 - add r3, r0, #0 - lsl r2, r2, #8 - sub r2, r3, r2 - lsl r2, r2, #0x10 - add r0, r5, #0 - mov r1, #0 - asr r2, r2, #0x10 - bl ov18_021F2B70 - ldr r0, _021E9BDC ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add sp, #8 - mov r0, #0xb - pop {r4, r5, r6, pc} -_021E9BD4: - mov r0, #0x11 - add sp, #8 - pop {r4, r5, r6, pc} - nop -_021E9BDC: .word 0x00000868 - thumb_func_end ov18_021E9A4C - - thumb_func_start ov18_021E9BE0 -ov18_021E9BE0: ; 0x021E9BE0 - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - ldr r0, _021E9CC4 ; =0x00000868 - ldrb r0, [r4, r0] - cmp r0, #0 - beq _021E9BF4 - cmp r0, #1 - beq _021E9C66 - b _021E9CBC -_021E9BF4: - ldr r0, [r4, #8] - mov r1, #4 - bl sub_0201980C - add r0, r4, #0 - mov r1, #6 - mov r2, #0 - bl ov18_021F2A2C - add r0, r4, #0 - mov r1, #8 - mov r2, #0 - bl ov18_021F2A84 - add r0, r4, #0 - add r0, #0x6c - bl ClearWindowTilemapAndScheduleTransfer - add r0, r4, #0 - bl ov18_021E65D4 - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021E9CC8 ; =0x0000FFFE - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021E9CCC ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldr r1, _021E9CD0 ; =0x0000085C - mov r0, #0x12 - str r0, [r4, r1] - add r0, r1, #0 - add r0, #0xc - ldrb r0, [r4, r0] - add r1, #0xc - add sp, #0xc - add r0, r0, #1 - strb r0, [r4, r1] - mov r0, #3 - pop {r3, r4, pc} -_021E9C66: - ldr r0, [r4, #8] - mov r1, #1 - bl sub_020199E4 - cmp r0, #0 - bne _021E9CBC - mov r1, #0 - ldr r0, [r4, #4] - add r2, r1, #0 - add r3, r1, #0 - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r4, #4] - mov r1, #4 - add r3, r2, #0 - bl ScheduleSetBgPosText - mov r0, #0xf - mov r1, #0x25 - bl ZeroPalettesByBitmask - add r0, r4, #0 - bl ov18_021EE388 - add r0, r4, #0 - bl ov18_021F2F00 - ldr r0, _021E9CC4 ; =0x00000868 - mov r2, #0 - strb r2, [r4, r0] - ldr r0, _021E9CD4 ; =0x0000185B - ldrb r1, [r4, r0] - cmp r1, #5 - bne _021E9CB2 - add sp, #0xc - mov r0, #0x15 - pop {r3, r4, pc} -_021E9CB2: - add r0, #0x45 - strb r2, [r4, r0] - add sp, #0xc - mov r0, #0x42 - pop {r3, r4, pc} -_021E9CBC: - mov r0, #0x12 - add sp, #0xc - pop {r3, r4, pc} - nop -_021E9CC4: .word 0x00000868 -_021E9CC8: .word 0x0000FFFE -_021E9CCC: .word 0x0000FFFF -_021E9CD0: .word 0x0000085C -_021E9CD4: .word 0x0000185B - thumb_func_end ov18_021E9BE0 - - thumb_func_start ov18_021E9CD8 -ov18_021E9CD8: ; 0x021E9CD8 - push {r3, r4, lr} - sub sp, #0xc - ldr r1, _021E9D64 ; =0x00000868 - add r4, r0, #0 - ldrb r1, [r4, r1] - cmp r1, #0 - beq _021E9CEC - cmp r1, #1 - beq _021E9D44 - b _021E9D5C -_021E9CEC: - mov r1, #5 - bl ov18_021E67C8 - add r0, r4, #0 - bl ov18_021E65FC - add r0, r4, #0 - mov r1, #0 - bl ov18_021F6DE0 - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021E9D68 ; =0x0000FFEF - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021E9D6C ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldr r0, _021E9D64 ; =0x00000868 - add sp, #0xc - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - mov r1, #0x15 - sub r0, #0xc - str r1, [r4, r0] - mov r0, #3 - pop {r3, r4, pc} -_021E9D44: - ldr r0, [r4, #8] - mov r1, #6 - bl sub_020199E4 - cmp r0, #0 - bne _021E9D5C - ldr r0, _021E9D64 ; =0x00000868 - mov r1, #0 - strb r1, [r4, r0] - add sp, #0xc - mov r0, #0x16 - pop {r3, r4, pc} -_021E9D5C: - mov r0, #0x15 - add sp, #0xc - pop {r3, r4, pc} - nop -_021E9D64: .word 0x00000868 -_021E9D68: .word 0x0000FFEF -_021E9D6C: .word 0x0000FFFF - thumb_func_end ov18_021E9CD8 - - thumb_func_start ov18_021E9D70 -ov18_021E9D70: ; 0x021E9D70 - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - bl ov18_021F6E2C - mov r2, #2 - mvn r2, r2 - cmp r0, r2 - bhi _021E9DB0 - bhs _021E9DBA - cmp r0, #9 - bhi _021E9DA8 - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021E9D94: ; jump table - .short _021E9DC2 - _021E9D94 - 2 ; case 0 - .short _021E9DE8 - _021E9D94 - 2 ; case 1 - .short _021E9E0E - _021E9D94 - 2 ; case 2 - .short _021E9E34 - _021E9D94 - 2 ; case 3 - .short _021E9E5A - _021E9D94 - 2 ; case 4 - .short _021E9E80 - _021E9D94 - 2 ; case 5 - .short _021E9EA6 - _021E9D94 - 2 ; case 6 - .short _021E9ECA - _021E9D94 - 2 ; case 7 - .short _021E9EE8 - _021E9D94 - 2 ; case 8 - .short _021E9F06 - _021E9D94 - 2 ; case 9 -_021E9DA8: - mov r1, #3 - mvn r1, r1 - cmp r0, r1 - b _021E9F1E -_021E9DB0: - add r1, r2, #1 - cmp r0, r1 - bhi _021E9DBC - bne _021E9DBA - b _021E9F06 -_021E9DBA: - b _021E9F1E -_021E9DBC: - add r1, r2, #2 - cmp r0, r1 - b _021E9F1E -_021E9DC2: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021E9F24 ; =0x000008E9 - bl PlaySE - mov r0, #2 - str r0, [sp] - mov r0, #0x1c - str r0, [sp, #4] - add r0, r4, #0 - mov r1, #0x10 - mov r2, #1 - mov r3, #0xb - bl ov18_021EDC00 - add sp, #8 - pop {r4, pc} -_021E9DE8: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021E9F24 ; =0x000008E9 - bl PlaySE - mov r0, #2 - str r0, [sp] - mov r0, #0x1f - str r0, [sp, #4] - add r0, r4, #0 - mov r1, #7 - mov r2, #4 - mov r3, #9 - bl ov18_021EDC00 - add sp, #8 - pop {r4, pc} -_021E9E0E: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021E9F24 ; =0x000008E9 - bl PlaySE - mov r0, #2 - str r0, [sp] - mov r0, #0x22 - mov r1, #7 - str r0, [sp, #4] - add r0, r4, #0 - add r2, r1, #0 - mov r3, #0x10 - bl ov18_021EDC00 - add sp, #8 - pop {r4, pc} -_021E9E34: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021E9F24 ; =0x000008E9 - bl PlaySE - mov r0, #2 - str r0, [sp] - mov r0, #0x25 - str r0, [sp, #4] - add r0, r4, #0 - mov r1, #7 - mov r2, #0xa - mov r3, #0xe - bl ov18_021EDC00 - add sp, #8 - pop {r4, pc} -_021E9E5A: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021E9F24 ; =0x000008E9 - bl PlaySE - mov r0, #2 - str r0, [sp] - mov r0, #0x2c - str r0, [sp, #4] - add r0, r4, #0 - mov r1, #7 - mov r2, #0xd - mov r3, #0x14 - bl ov18_021EDC00 - add sp, #8 - pop {r4, pc} -_021E9E80: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021E9F24 ; =0x000008E9 - bl PlaySE - mov r0, #2 - str r0, [sp] - mov r0, #0x33 - mov r1, #7 - str r0, [sp, #4] - add r0, r4, #0 - mov r2, #0x10 - add r3, r1, #0 - bl ov18_021EDC00 - add sp, #8 - pop {r4, pc} -_021E9EA6: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021E9F24 ; =0x000008E9 - bl PlaySE - mov r3, #4 - str r3, [sp] - mov r0, #0x36 - str r0, [sp, #4] - add r0, r4, #0 - mov r1, #0x1a - mov r2, #7 - bl ov18_021EDC00 - add sp, #8 - pop {r4, pc} -_021E9ECA: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021E9F24 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #0 - mov r2, #0xa - mov r3, #0x18 - bl ov18_021EDBDC - add sp, #8 - pop {r4, pc} -_021E9EE8: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021E9F24 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #0xb - mov r2, #0xa - mov r3, #0x17 - bl ov18_021EDBDC - add sp, #8 - pop {r4, pc} -_021E9F06: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - add r0, r4, #0 - mov r1, #0x16 - mov r2, #0xa - mov r3, #0x19 - bl ov18_021EDBDC - add sp, #8 - pop {r4, pc} -_021E9F1E: - mov r0, #0x16 - add sp, #8 - pop {r4, pc} - .balign 4, 0 -_021E9F24: .word 0x000008E9 - thumb_func_end ov18_021E9D70 - - thumb_func_start ov18_021E9F28 -ov18_021E9F28: ; 0x021E9F28 - push {r3, r4, r5, lr} - sub sp, #0x20 - ldr r1, _021EA274 ; =0x00000868 - add r4, r0, #0 - add r5, r4, r1 - ldrh r2, [r5] - cmp r2, #0x12 - bls _021E9F3A - b _021EA33C -_021E9F3A: - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_021E9F46: ; jump table - .short _021E9F6C - _021E9F46 - 2 ; case 0 - .short _021E9FA2 - _021E9F46 - 2 ; case 1 - .short _021EA028 - _021E9F46 - 2 ; case 2 - .short _021EA036 - _021E9F46 - 2 ; case 3 - .short _021EA044 - _021E9F46 - 2 ; case 4 - .short _021EA052 - _021E9F46 - 2 ; case 5 - .short _021EA060 - _021E9F46 - 2 ; case 6 - .short _021EA06A - _021E9F46 - 2 ; case 7 - .short _021EA07C - _021E9F46 - 2 ; case 8 - .short _021EA0D0 - _021E9F46 - 2 ; case 9 - .short _021EA0F4 - _021E9F46 - 2 ; case 10 - .short _021EA1A0 - _021E9F46 - 2 ; case 11 - .short _021EA1C4 - _021E9F46 - 2 ; case 12 - .short _021EA22A - _021E9F46 - 2 ; case 13 - .short _021EA23E - _021E9F46 - 2 ; case 14 - .short _021EA29C - _021E9F46 - 2 ; case 15 - .short _021EA2C0 - _021E9F46 - 2 ; case 16 - .short _021EA2DE - _021E9F46 - 2 ; case 17 - .short _021EA314 - _021E9F46 - 2 ; case 18 -_021E9F6C: - mov r1, #0x1b - mov r2, #2 - bl ov18_021F118C - add r0, r4, #0 - mov r1, #0x1b - mov r2, #1 - bl ov18_021F11C0 - mov r1, #0 - add r0, r4, #0 - add r2, r1, #0 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #9 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021E6624 - ldr r0, _021EA278 ; =0x000005FE - bl PlaySE - mov r0, #1 - strh r0, [r5] - b _021EA33C -_021E9FA2: - ldr r3, _021EA27C ; =0x00001870 - mov r2, #1 - ldr r1, [r4, r3] - str r1, [sp] - add r1, r3, #4 - ldr r1, [r4, r1] - str r1, [sp, #4] - add r1, r3, #0 - add r1, #8 - ldr r1, [r4, r1] - str r1, [sp, #8] - add r1, r3, #0 - add r1, #0xc - ldr r1, [r4, r1] - str r1, [sp, #0xc] - add r1, r3, #0 - add r1, #0x10 - ldr r1, [r4, r1] - str r1, [sp, #0x10] - add r1, r3, #0 - add r1, #0x14 - ldr r1, [r4, r1] - str r1, [sp, #0x14] - add r1, r3, #0 - add r1, #0x18 - ldr r1, [r4, r1] - lsl r2, r1 - add r1, r3, #0 - str r2, [sp, #0x18] - add r1, #0x1c - ldr r1, [r4, r1] - add r2, r3, #0 - str r1, [sp, #0x1c] - add r1, r3, #0 - sub r1, #0x18 - sub r2, #8 - sub r3, r3, #4 - ldrb r1, [r4, r1] - ldr r2, [r4, r2] - ldr r3, [r4, r3] - bl ov18_021F7ED4 - ldr r0, _021EA280 ; =0x0000102E - ldrh r1, [r4, r0] - cmp r1, #0 - bne _021EA00C - sub r0, r0, #2 - ldrh r0, [r4, r0] - cmp r0, #0 - bne _021EA00C - mov r0, #0xf - strh r0, [r5] - b _021EA33C -_021EA00C: - add r0, r4, #0 - mov r1, #0 - bl ov18_021F8884 - ldr r0, _021EA284 ; =0x0000185A - mov r2, #0 - strb r2, [r4, r0] - sub r1, r0, #1 - strb r2, [r4, r1] - mov r1, #2 - add r0, r0, #2 - strb r1, [r4, r0] - strh r1, [r5] - b _021EA33C -_021EA028: - mov r1, #0 - mov r2, #9 - bl ov18_021EA350 - mov r0, #3 - strh r0, [r5] - b _021EA33C -_021EA036: - mov r1, #2 - mov r2, #0xa - bl ov18_021EA350 - mov r0, #4 - strh r0, [r5] - b _021EA33C -_021EA044: - mov r1, #0 - mov r2, #0xb - bl ov18_021EA350 - mov r0, #5 - strh r0, [r5] - b _021EA33C -_021EA052: - mov r1, #2 - mov r2, #0xc - bl ov18_021EA350 - mov r0, #6 - strh r0, [r5] - b _021EA33C -_021EA060: - bl ov18_021EFEC4 - mov r0, #7 - strh r0, [r5] - b _021EA33C -_021EA06A: - mov r1, #0x3b - bl ov18_021F1620 - add r0, r4, #0 - bl ov18_021E6CC0 - mov r0, #8 - strh r0, [r5] - b _021EA33C -_021EA07C: - mov r1, #0x12 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0x13 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0x14 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0x15 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0x19 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0x12 - mov r2, #0 - bl ov18_021F2C5C - add r0, r4, #0 - mov r1, #0x12 - mov r2, #0 - bl ov18_021F2E80 - add r0, r4, #0 - mov r1, #0x13 - mov r2, #0 - bl ov18_021F2C10 - mov r0, #9 - strh r0, [r5] - b _021EA33C -_021EA0D0: - mov r1, #0x1b - bl ov18_021F11AC - cmp r0, #0 - bne _021EA100 - add r0, r4, #0 - mov r1, #0x1a - mov r2, #1 - bl ov18_021F118C - add r0, r4, #0 - mov r1, #0x1b - mov r2, #0 - bl ov18_021F11C0 - mov r0, #0xa - strh r0, [r5] - b _021EA33C -_021EA0F4: - ldrh r1, [r5, #2] - add r1, r1, #1 - strh r1, [r5, #2] - ldrh r1, [r5, #2] - cmp r1, #0x20 - beq _021EA102 -_021EA100: - b _021EA33C -_021EA102: - mov r1, #1 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021F3BA4 - mov r1, #7 - add r0, r4, #0 - mvn r1, r1 - bl ov18_021F3BD4 - mov r0, #1 - bl ov18_021E7B6C - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #9 - add r3, r2, #0 - bl sub_020196E8 - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #0xa - add r3, r2, #0 - bl sub_020196E8 - ldr r0, [r4, #8] - mov r1, #0xb - mov r2, #0 - mov r3, #0x18 - bl sub_020196E8 - ldr r0, [r4, #8] - mov r1, #0xc - mov r2, #0 - mov r3, #0x18 - bl sub_020196E8 - mov r0, #0x18 - str r0, [sp] - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #9 - sub r3, r2, #1 - bl sub_020198FC - mov r0, #0x18 - str r0, [sp] - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #0xa - sub r3, r2, #1 - bl sub_020198FC - mov r0, #0x18 - str r0, [sp] - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #0xb - sub r3, r2, #1 - bl sub_020198FC - mov r0, #0x18 - str r0, [sp] - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #0xc - sub r3, r2, #1 - bl sub_020198FC - mov r0, #0x8f - lsl r0, r0, #4 - bl PlaySE - mov r0, #0 - strh r0, [r5, #2] - mov r0, #0xb - strh r0, [r5] - b _021EA33C -_021EA1A0: - ldr r0, [r4, #8] - mov r1, #9 - bl sub_020199E4 - cmp r0, #0 - bne _021EA1B8 - mov r0, #0 - bl ov18_021E7B6C - mov r0, #0xc - strh r0, [r5] - b _021EA33C -_021EA1B8: - mov r1, #7 - add r0, r4, #0 - mvn r1, r1 - bl ov18_021F3BD4 - b _021EA33C -_021EA1C4: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - sub r1, #0x14 - ldr r0, [r4, r1] - ldr r2, [r4, #4] - mov r1, #4 - mov r3, #2 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021EA288 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x13 - mov r3, #7 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021EA288 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x14 - mov r3, #7 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - add r0, r4, #0 - bl ov18_021E669C - add r0, r4, #0 - bl ov18_021F3448 - mov r0, #0xd - strh r0, [r5] - b _021EA33C -_021EA22A: - ldr r0, [r4, #8] - mov r1, #8 - bl sub_020199E4 - cmp r0, #0 - beq _021EA238 - b _021EA33C -_021EA238: - mov r0, #0xe - strh r0, [r5] - b _021EA33C -_021EA23E: - bl ov18_021F7B74 - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0 - bl ov18_021F2BB0 - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl ov18_021F118C - add r0, r4, #0 - bl ov18_021F3190 - add r0, r4, #0 - bl ov18_021EDEB0 - add r0, r4, #0 - bl ov18_021E659C - ldr r0, _021EA274 ; =0x00000868 - b _021EA28C - .balign 4, 0 -_021EA274: .word 0x00000868 -_021EA278: .word 0x000005FE -_021EA27C: .word 0x00001870 -_021EA280: .word 0x0000102E -_021EA284: .word 0x0000185A -_021EA288: .word 0x00000854 -_021EA28C: - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add sp, #0x20 - mov r0, #0x39 - pop {r3, r4, r5, pc} -_021EA29C: - mov r1, #0x1b - bl ov18_021F11AC - cmp r0, #0 - bne _021EA33C - add r0, r4, #0 - mov r1, #0x1a - mov r2, #3 - bl ov18_021F118C - add r0, r4, #0 - mov r1, #0x1b - mov r2, #0 - bl ov18_021F11C0 - mov r0, #0x10 - strh r0, [r5] - b _021EA33C -_021EA2C0: - mov r1, #0x1a - bl ov18_021F11AC - cmp r0, #0 - bne _021EA33C - add r0, r4, #0 - mov r1, #0xa - bl ov18_021EEED0 - ldr r0, _021EA344 ; =0x000005F2 - bl PlaySE - mov r0, #0x11 - strh r0, [r5] - b _021EA33C -_021EA2DE: - ldrh r0, [r5, #2] - add r0, r0, #1 - strh r0, [r5, #2] - ldr r0, _021EA348 ; =gSystem - ldr r1, [r0, #0x48] - mov r0, #3 - tst r0, r1 - bne _021EA2FC - bl System_GetTouchNew - cmp r0, #1 - beq _021EA2FC - ldrh r0, [r5, #2] - cmp r0, #0x3c - bne _021EA33C -_021EA2FC: - add r0, r4, #0 - mov r1, #0 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021E65FC - mov r0, #0 - strh r0, [r5, #2] - mov r0, #0x12 - strh r0, [r5] - b _021EA33C -_021EA314: - ldr r0, [r4, #8] - mov r1, #6 - bl sub_020199E4 - cmp r0, #0 - bne _021EA33C - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl ov18_021F11C0 - ldr r0, _021EA34C ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add sp, #0x20 - mov r0, #0x16 - pop {r3, r4, r5, pc} -_021EA33C: - mov r0, #0x17 - add sp, #0x20 - pop {r3, r4, r5, pc} - nop -_021EA344: .word 0x000005F2 -_021EA348: .word gSystem -_021EA34C: .word 0x00000868 - thumb_func_end ov18_021E9F28 - - thumb_func_start ov18_021EA350 -ov18_021EA350: ; 0x021EA350 - push {r3, r4, r5, lr} - add r5, r0, #0 - lsl r1, r1, #0x18 - ldr r0, [r5, #4] - lsr r1, r1, #0x18 - add r4, r2, #0 - bl GetBgTilemapBuffer - add r2, r0, #0 - ldr r0, [r5, #8] - add r1, r4, #0 - bl sub_02019668 - pop {r3, r4, r5, pc} - thumb_func_end ov18_021EA350 - - thumb_func_start ov18_021EA36C -ov18_021EA36C: ; 0x021EA36C - push {r4, lr} - add r4, r0, #0 - bl ov18_021E6FFC - add r0, r4, #0 - bl ov18_021EF528 - add r0, r4, #0 - bl ov18_021F3494 - mov r0, #0x16 - pop {r4, pc} - thumb_func_end ov18_021EA36C - - thumb_func_start ov18_021EA384 -ov18_021EA384: ; 0x021EA384 - push {r3, r4, lr} - sub sp, #0xc - ldr r1, _021EA420 ; =0x00000868 - add r4, r0, #0 - ldrb r1, [r4, r1] - cmp r1, #0 - beq _021EA398 - cmp r1, #1 - beq _021EA3EE - b _021EA41A -_021EA398: - mov r1, #0 - add r2, r1, #0 - bl ov18_021F11C0 - add r0, r4, #0 - bl ov18_021E6624 - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021EA424 ; =0x0000FFEF - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021EA428 ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldr r1, _021EA42C ; =0x0000085C - mov r0, #0x19 - str r0, [r4, r1] - add r0, r1, #0 - add r0, #0xc - ldrb r0, [r4, r0] - add r1, #0xc - add sp, #0xc - add r0, r0, #1 - strb r0, [r4, r1] - mov r0, #3 - pop {r3, r4, pc} -_021EA3EE: - mov r0, #0xf - mov r1, #0x25 - bl ZeroPalettesByBitmask - add r0, r4, #0 - bl ov18_021F7B74 - add r0, r4, #0 - bl ov18_021EE388 - add r0, r4, #0 - bl ov18_021F3438 - add r0, r4, #0 - bl ov18_021F3448 - ldr r0, _021EA420 ; =0x00000868 - mov r1, #0 - strb r1, [r4, r0] - add sp, #0xc - mov r0, #0x13 - pop {r3, r4, pc} -_021EA41A: - mov r0, #0x19 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021EA420: .word 0x00000868 -_021EA424: .word 0x0000FFEF -_021EA428: .word 0x0000FFFF -_021EA42C: .word 0x0000085C - thumb_func_end ov18_021EA384 - - thumb_func_start ov18_021EA430 -ov18_021EA430: ; 0x021EA430 - push {r3, r4, r5, lr} - sub sp, #0x20 - ldr r1, _021EA590 ; =0x00000868 - add r4, r0, #0 - ldrb r1, [r4, r1] - cmp r1, #0 - beq _021EA448 - cmp r1, #1 - beq _021EA47E - cmp r1, #2 - beq _021EA536 - b _021EA588 -_021EA448: - mov r1, #0x11 - str r1, [sp] - str r1, [sp, #4] - mov r2, #0 - str r2, [sp, #8] - mov r1, #0x98 - str r1, [sp, #0xc] - str r2, [sp, #0x10] - str r1, [sp, #0x14] - mov r1, #8 - str r1, [sp, #0x18] - mov r1, #0xe - str r1, [sp, #0x1c] - ldr r1, _021EA594 ; =0x00001858 - mov r3, #0x1a - ldrb r1, [r4, r1] - bl ov18_021F7ED4 - add r0, r4, #0 - mov r1, #1 - bl ov18_021F8884 - ldr r0, _021EA590 ; =0x00000868 - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - b _021EA588 -_021EA47E: - mov r1, #0 - bl ov18_021E67C8 - add r0, r4, #0 - bl ov18_021F8824 - add r5, r0, #0 - add r0, r4, #0 - mov r1, #1 - bl ov18_021F891C - cmp r5, r0 - blo _021EA4B8 - ldr r2, _021EA598 ; =0x00000854 - ldr r0, [r4, #4] - ldr r2, [r4, r2] - mov r1, #7 - mov r3, #0x25 - bl ov18_021E6FB8 - add r0, r4, #0 - add r0, #0x7c - bl ClearWindowTilemapAndScheduleTransfer - add r0, r4, #0 - mov r1, #0xa - mov r2, #0 - bl ov18_021F11C0 -_021EA4B8: - ldr r0, [r4, #8] - mov r1, #0 - bl sub_0201980C - add r0, r4, #0 - bl ov18_021E65AC - mov r1, #0 - mov r3, #1 - ldr r0, [r4, #4] - add r2, r1, #0 - lsl r3, r3, #8 - bl ScheduleSetBgPosText - mov r1, #4 - add r3, r1, #0 - ldr r0, [r4, #4] - mov r2, #0 - add r3, #0xfc - bl ScheduleSetBgPosText - mov r2, #0xff - add r0, r4, #0 - mov r1, #0 - mvn r2, r2 - bl ov18_021F2B3C - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021EA59C ; =0x0000FFFE - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021EA5A0 ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldr r1, _021EA5A4 ; =0x0000085C - mov r0, #0x13 - str r0, [r4, r1] - add r0, r1, #0 - add r0, #0xc - ldrb r0, [r4, r0] - add r1, #0xc - add sp, #0x20 - add r0, r0, #1 - strb r0, [r4, r1] - mov r0, #3 - pop {r3, r4, r5, pc} -_021EA536: - bl ov18_021F8838 - add r5, r0, #0 - add r0, r4, #0 - bl ov18_021E659C - cmp r5, #0 - beq _021EA552 - add r0, r4, #0 - mov r1, #8 - mov r2, #1 - bl ov18_021F2A84 - b _021EA55C -_021EA552: - add r0, r4, #0 - mov r1, #8 - mov r2, #0 - bl ov18_021F2A84 -_021EA55C: - add r0, r4, #0 - add r1, r5, #0 - bl ov18_021E6D38 - cmp r0, #1 - bne _021EA572 - add r0, r4, #0 - mov r1, #6 - mov r2, #1 - bl ov18_021F2A2C -_021EA572: - add r0, r4, #0 - add r1, r5, #0 - mov r2, #6 - bl ov18_021EE638 - ldr r0, _021EA590 ; =0x00000868 - mov r1, #0 - strb r1, [r4, r0] - add sp, #0x20 - mov r0, #0xb - pop {r3, r4, r5, pc} -_021EA588: - mov r0, #0x13 - add sp, #0x20 - pop {r3, r4, r5, pc} - nop -_021EA590: .word 0x00000868 -_021EA594: .word 0x00001858 -_021EA598: .word 0x00000854 -_021EA59C: .word 0x0000FFFE -_021EA5A0: .word 0x0000FFFF -_021EA5A4: .word 0x0000085C - thumb_func_end ov18_021EA430 - - thumb_func_start ov18_021EA5A8 -ov18_021EA5A8: ; 0x021EA5A8 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, _021EA680 ; =0x00000868 - add r4, r5, r0 - ldrh r0, [r4] - cmp r0, #0 - beq _021EA5BC - cmp r0, #1 - beq _021EA5F0 - b _021EA67C -_021EA5BC: - ldr r0, [r5, #8] - mov r1, #4 - bl sub_0201980C - add r0, r5, #0 - mov r1, #6 - mov r2, #0 - bl ov18_021F2A2C - add r0, r5, #0 - mov r1, #8 - mov r2, #0 - bl ov18_021F2A84 - add r0, r5, #0 - add r0, #0x6c - bl ClearWindowTilemapAndScheduleTransfer - add r0, r5, #0 - bl ov18_021E65D4 - mov r0, #0 - strb r0, [r4, #2] - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] -_021EA5F0: - ldrb r0, [r4, #2] - cmp r0, #0xa - bne _021EA600 - add r0, r5, #0 - mov r1, #0x5d - bl ov18_021EDB3C - b _021EA620 -_021EA600: - bls _021EA620 - bl IsPaletteFadeFinished - cmp r0, #1 - bne _021EA620 - ldr r0, _021EA680 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, _021EA684 ; =0x0000085C - mov r1, #0x5d - str r1, [r5, r0] - mov r0, #1 - pop {r3, r4, r5, pc} -_021EA620: - ldrb r0, [r4, #2] - mov r1, #0 - add r0, r0, #1 - strb r0, [r4, #2] - ldr r0, [r5, #4] - bl Bg_GetXpos - cmp r0, #0 - ldr r0, [r5, #4] - bne _021EA65C - mov r1, #0 - add r2, r1, #0 - add r3, r1, #0 - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r5, #4] - mov r1, #4 - add r3, r2, #0 - bl ScheduleSetBgPosText - add r0, r5, #0 - bl ov18_021F2B9C - add r2, r0, #0 - add r0, r5, #0 - mov r1, #0 - bl ov18_021F2B70 - b _021EA67C -_021EA65C: - mov r1, #0 - mov r2, #2 - mov r3, #0x10 - bl ScheduleSetBgPosText - ldr r0, [r5, #4] - mov r1, #4 - mov r2, #2 - mov r3, #0x10 - bl ScheduleSetBgPosText - add r0, r5, #0 - mov r1, #0 - mov r2, #0x10 - bl ov18_021F2B3C -_021EA67C: - mov r0, #0x14 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EA680: .word 0x00000868 -_021EA684: .word 0x0000085C - thumb_func_end ov18_021EA5A8 - - thumb_func_start ov18_021EA688 -ov18_021EA688: ; 0x021EA688 - push {r4, r5, lr} - sub sp, #0xc - ldr r1, _021EA750 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrb r1, [r4, #2] - cmp r1, #0 - beq _021EA69E - cmp r1, #1 - beq _021EA6EE - b _021EA74A -_021EA69E: - mov r1, #0 - add r2, r1, #0 - bl ov18_021F11C0 - add r0, r5, #0 - bl ov18_021E6624 - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021EA754 ; =0x0000FFEF - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021EA758 ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldr r0, _021EA75C ; =0x0000085C - mov r1, #0x1a - str r1, [r5, r0] - ldrb r0, [r4, #2] - add sp, #0xc - add r0, r0, #1 - strb r0, [r4, #2] - mov r0, #3 - pop {r4, r5, pc} -_021EA6EE: - bl ov18_021F7B74 - add r0, r5, #0 - bl ov18_021E664C - ldrb r1, [r4] - ldrb r2, [r4, #3] - add r0, r5, #0 - bl ov18_021E71D0 - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021EA754 ; =0x0000FFEF - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021EA758 ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldrb r1, [r4, #1] - ldr r0, _021EA75C ; =0x0000085C - mov r2, #0x10 - str r1, [r5, r0] - add r0, #0xc - add r0, r5, r0 - mov r1, #0 - bl MI_CpuFill8 - add sp, #0xc - mov r0, #3 - pop {r4, r5, pc} -_021EA74A: - mov r0, #0x1a - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 -_021EA750: .word 0x00000868 -_021EA754: .word 0x0000FFEF -_021EA758: .word 0x0000FFFF -_021EA75C: .word 0x0000085C - thumb_func_end ov18_021EA688 - - thumb_func_start ov18_021EA760 -ov18_021EA760: ; 0x021EA760 - push {r4, r5, lr} - sub sp, #0xc - ldr r1, _021EA828 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrb r1, [r4, #2] - cmp r1, #0 - beq _021EA776 - cmp r1, #1 - beq _021EA7C6 - b _021EA822 -_021EA776: - mov r1, #0 - add r2, r1, #0 - bl ov18_021F11C0 - add r0, r5, #0 - bl ov18_021E6674 - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021EA82C ; =0x0000FFEF - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021EA830 ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldr r0, _021EA834 ; =0x0000085C - mov r1, #0x1b - str r1, [r5, r0] - ldrb r0, [r4, #2] - add sp, #0xc - add r0, r0, #1 - strb r0, [r4, #2] - mov r0, #3 - pop {r4, r5, pc} -_021EA7C6: - bl ov18_021F7B74 - add r0, r5, #0 - bl ov18_021E65FC - ldrb r2, [r4, #3] - add r0, r5, #0 - mov r1, #0 - bl ov18_021E71D0 - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021EA82C ; =0x0000FFEF - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021EA830 ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldrb r1, [r4, #1] - ldr r0, _021EA834 ; =0x0000085C - mov r2, #0x10 - str r1, [r5, r0] - add r0, #0xc - add r0, r5, r0 - mov r1, #0 - bl MI_CpuFill8 - add sp, #0xc - mov r0, #3 - pop {r4, r5, pc} -_021EA822: - mov r0, #0x1b - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 -_021EA828: .word 0x00000868 -_021EA82C: .word 0x0000FFEF -_021EA830: .word 0x0000FFFF -_021EA834: .word 0x0000085C - thumb_func_end ov18_021EA760 - - thumb_func_start ov18_021EA838 -ov18_021EA838: ; 0x021EA838 - push {r3, lr} - ldr r1, _021EA850 ; =0x00001868 - mov r3, #0x1d - ldr r2, [r0, r1] - add r1, #0x28 - str r2, [r0, r1] - mov r1, #1 - mov r2, #0 - bl ov18_021EDE4C - mov r0, #0x1a - pop {r3, pc} - .balign 4, 0 -_021EA850: .word 0x00001868 - thumb_func_end ov18_021EA838 - - thumb_func_start ov18_021EA854 -ov18_021EA854: ; 0x021EA854 - push {r4, lr} - add r4, r0, #0 - bl ov18_021F6F08 - cmp r0, #7 - bhi _021EA87C - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EA86C: ; jump table - .short _021EA886 - _021EA86C - 2 ; case 0 - .short _021EA89E - _021EA86C - 2 ; case 1 - .short _021EA8B6 - _021EA86C - 2 ; case 2 - .short _021EA8CE - _021EA86C - 2 ; case 3 - .short _021EA8E6 - _021EA86C - 2 ; case 4 - .short _021EA8FE - _021EA86C - 2 ; case 5 - .short _021EA916 - _021EA86C - 2 ; case 6 - .short _021EA932 - _021EA86C - 2 ; case 7 -_021EA87C: - mov r1, #1 - mvn r1, r1 - cmp r0, r1 - beq _021EA932 - b _021EA950 -_021EA886: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EA954 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #0 - bl ov18_021E74B8 - b _021EA950 -_021EA89E: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EA954 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #1 - bl ov18_021E74B8 - b _021EA950 -_021EA8B6: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EA954 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #2 - bl ov18_021E74B8 - b _021EA950 -_021EA8CE: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EA954 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #3 - bl ov18_021E74B8 - b _021EA950 -_021EA8E6: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EA954 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #4 - bl ov18_021E74B8 - b _021EA950 -_021EA8FE: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EA954 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #5 - bl ov18_021E74B8 - b _021EA950 -_021EA916: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EA954 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #0 - mov r2, #0xa - mov r3, #0x1e - bl ov18_021EDBDC - pop {r4, pc} -_021EA932: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - ldr r0, _021EA958 ; =0x00001890 - mov r2, #0xa - ldr r1, [r4, r0] - sub r0, #0x28 - str r1, [r4, r0] - add r0, r4, #0 - mov r1, #0x16 - mov r3, #0x1e - bl ov18_021EDBDC - pop {r4, pc} -_021EA950: - mov r0, #0x1d - pop {r4, pc} - .balign 4, 0 -_021EA954: .word 0x000008E9 -_021EA958: .word 0x00001890 - thumb_func_end ov18_021EA854 - - thumb_func_start ov18_021EA95C -ov18_021EA95C: ; 0x021EA95C - push {r3, lr} - mov r1, #0 - add r2, r1, #0 - mov r3, #0x16 - bl ov18_021EDE4C - mov r0, #0x1b - pop {r3, pc} - thumb_func_end ov18_021EA95C - - thumb_func_start ov18_021EA96C -ov18_021EA96C: ; 0x021EA96C - push {r3, lr} - ldr r1, _021EA984 ; =0x0000186C - mov r3, #0x20 - ldr r2, [r0, r1] - add r1, #0x24 - str r2, [r0, r1] - mov r1, #2 - mov r2, #0 - bl ov18_021EDE4C - mov r0, #0x1a - pop {r3, pc} - .balign 4, 0 -_021EA984: .word 0x0000186C - thumb_func_end ov18_021EA96C - - thumb_func_start ov18_021EA988 -ov18_021EA988: ; 0x021EA988 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl ov18_021F6FE8 - mov r1, #3 - add r4, r0, #0 - mvn r1, r1 - cmp r4, r1 - bhi _021EA9AC - bhs _021EAA12 - cmp r4, #0x1c - bhi _021EA9FC - cmp r4, #0x1b - blo _021EA9FC - beq _021EA9C2 - cmp r4, #0x1c - beq _021EA9DE - b _021EA9FC -_021EA9AC: - add r0, r1, #1 - cmp r4, r0 - blo _021EA9FC - beq _021EAA12 - add r0, r1, #2 - cmp r4, r0 - beq _021EA9DE - add r0, r1, #3 - cmp r4, r0 - beq _021EAA12 - b _021EA9FC -_021EA9C2: - ldr r0, [r5] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EAA18 ; =0x000008E9 - bl PlaySE - add r0, r5, #0 - mov r1, #0 - mov r2, #0xa - mov r3, #0x21 - bl ov18_021EDBDC - pop {r3, r4, r5, pc} -_021EA9DE: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - ldr r0, _021EAA1C ; =0x00001890 - mov r2, #0xa - ldr r1, [r5, r0] - sub r0, #0x24 - str r1, [r5, r0] - add r0, r5, #0 - mov r1, #0x16 - mov r3, #0x21 - bl ov18_021EDBDC - pop {r3, r4, r5, pc} -_021EA9FC: - ldr r0, [r5] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EAA18 ; =0x000008E9 - bl PlaySE - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E76EC -_021EAA12: - mov r0, #0x20 - pop {r3, r4, r5, pc} - nop -_021EAA18: .word 0x000008E9 -_021EAA1C: .word 0x00001890 - thumb_func_end ov18_021EA988 - - thumb_func_start ov18_021EAA20 -ov18_021EAA20: ; 0x021EAA20 - push {r3, lr} - mov r1, #0 - mov r2, #1 - mov r3, #0x16 - bl ov18_021EDE4C - mov r0, #0x1b - pop {r3, pc} - thumb_func_end ov18_021EAA20 - - thumb_func_start ov18_021EAA30 -ov18_021EAA30: ; 0x021EAA30 - push {r3, lr} - ldr r2, _021EAA54 ; =0x00001870 - add r1, r2, #0 - ldr r3, [r0, r2] - add r1, #0x20 - str r3, [r0, r1] - add r1, r2, #4 - ldr r1, [r0, r1] - add r2, #0x24 - str r1, [r0, r2] - mov r1, #3 - mov r2, #0 - mov r3, #0x23 - bl ov18_021EDE4C - mov r0, #0x1a - pop {r3, pc} - nop -_021EAA54: .word 0x00001870 - thumb_func_end ov18_021EAA30 - - thumb_func_start ov18_021EAA58 -ov18_021EAA58: ; 0x021EAA58 - push {r4, lr} - add r4, r0, #0 - bl ov18_021F716C - mov r2, #3 - mvn r2, r2 - cmp r0, r2 - bhi _021EAA7A - bhs _021EAB68 - cmp r0, #0x13 - bhi _021EAAE6 - cmp r0, #0x12 - blo _021EAAE6 - beq _021EAA90 - cmp r0, #0x13 - beq _021EAABE - b _021EAAE6 -_021EAA7A: - add r1, r2, #1 - cmp r0, r1 - blo _021EAAE6 - beq _021EAB68 - add r1, r2, #2 - cmp r0, r1 - beq _021EAABE - add r1, r2, #3 - cmp r0, r1 - beq _021EAB68 - b _021EAAE6 -_021EAA90: - ldr r0, _021EAB6C ; =0x00001870 - add r1, r0, #4 - ldr r2, [r4, r0] - ldr r1, [r4, r1] - cmp r2, r1 - bne _021EAAA2 - mov r1, #0x11 - add r0, r0, #4 - str r1, [r4, r0] -_021EAAA2: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EAB70 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - mov r1, #0 - mov r2, #0xa - mov r3, #0x24 - bl ov18_021EDBDC - pop {r4, pc} -_021EAABE: - ldr r1, _021EAB74 ; =0x00001890 - add r0, r1, #0 - ldr r2, [r4, r1] - sub r0, #0x20 - str r2, [r4, r0] - add r0, r1, #4 - ldr r0, [r4, r0] - sub r1, #0x1c - str r0, [r4, r1] - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - add r0, r4, #0 - mov r1, #0x16 - mov r2, #0xa - mov r3, #0x24 - bl ov18_021EDBDC - pop {r4, pc} -_021EAAE6: - cmp r0, #0x11 - bne _021EAAFC - ldr r1, _021EAB78 ; =0x00001874 - ldr r2, [r4, r1] - cmp r2, #0x11 - beq _021EAAF6 - str r0, [r4, r1] - b _021EAB24 -_021EAAF6: - sub r1, r1, #4 - str r0, [r4, r1] - b _021EAB24 -_021EAAFC: - ldr r2, _021EAB6C ; =0x00001870 - ldr r3, [r4, r2] - cmp r3, #0x11 - bne _021EAB08 - str r0, [r4, r2] - b _021EAB24 -_021EAB08: - add r1, r2, #4 - ldr r1, [r4, r1] - cmp r1, #0x11 - bne _021EAB1A - cmp r3, r0 - beq _021EAB68 - add r1, r2, #4 - str r0, [r4, r1] - b _021EAB24 -_021EAB1A: - cmp r1, r0 - beq _021EAB68 - str r1, [r4, r2] - add r1, r2, #4 - str r0, [r4, r1] -_021EAB24: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EAB70 ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - bl ov18_021E74E4 - ldr r1, _021EAB6C ; =0x00001870 - add r0, r4, #0 - ldr r1, [r4, r1] - mov r2, #0x2d - mov r3, #0x1d - bl ov18_021EFC9C - ldr r1, _021EAB78 ; =0x00001874 - add r0, r4, #0 - ldr r1, [r4, r1] - mov r2, #0x2e - mov r3, #0x23 - bl ov18_021EFC9C - mov r0, #0xb7 - lsl r0, r0, #2 - add r0, r4, r0 - bl ScheduleWindowCopyToVram - mov r0, #0xbb - lsl r0, r0, #2 - add r0, r4, r0 - bl ScheduleWindowCopyToVram -_021EAB68: - mov r0, #0x23 - pop {r4, pc} - .balign 4, 0 -_021EAB6C: .word 0x00001870 -_021EAB70: .word 0x000008E9 -_021EAB74: .word 0x00001890 -_021EAB78: .word 0x00001874 - thumb_func_end ov18_021EAA58 - - thumb_func_start ov18_021EAB7C -ov18_021EAB7C: ; 0x021EAB7C - push {r3, lr} - mov r1, #0 - mov r2, #2 - mov r3, #0x16 - bl ov18_021EDE4C - mov r0, #0x1b - pop {r3, pc} - thumb_func_end ov18_021EAB7C - - thumb_func_start ov18_021EAB8C -ov18_021EAB8C: ; 0x021EAB8C - push {r3, lr} - ldr r2, _021EABB0 ; =0x00001878 - add r1, r2, #0 - ldr r3, [r0, r2] - add r1, #0x18 - str r3, [r0, r1] - add r1, r2, #4 - ldr r1, [r0, r1] - add r2, #0x1c - str r1, [r0, r2] - mov r1, #4 - mov r2, #0 - mov r3, #0x26 - bl ov18_021EDE4C - mov r0, #0x1a - pop {r3, pc} - nop -_021EABB0: .word 0x00001878 - thumb_func_end ov18_021EAB8C - - thumb_func_start ov18_021EABB4 -ov18_021EABB4: ; 0x021EABB4 - push {r3, r4, r5, lr} - ldr r1, _021EAD5C ; =0x00000868 - add r4, r0, #0 - add r5, r4, r1 - bl ov18_021F739C - mov r1, #1 - mvn r1, r1 - cmp r0, r1 - bhi _021EABEA - bhs _021EAC4E - cmp r0, #7 - bhi _021EABF4 - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EABDA: ; jump table - .short _021EABF6 - _021EABDA - 2 ; case 0 - .short _021EAC0E - _021EABDA - 2 ; case 1 - .short _021EAC26 - _021EABDA - 2 ; case 2 - .short _021EAC4E - _021EABDA - 2 ; case 3 - .short _021EAC82 - _021EABDA - 2 ; case 4 - .short _021EACAE - _021EABDA - 2 ; case 5 - .short _021EACDE - _021EABDA - 2 ; case 6 - .short _021EAD0E - _021EABDA - 2 ; case 7 -_021EABEA: - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - bne _021EABF4 - b _021EAD3A -_021EABF4: - b _021EAD56 -_021EABF6: - ldr r0, _021EAD60 ; =0x0000187C - mov r1, #0 - ldr r0, [r4, r0] - mov r2, #5 - str r0, [r5] - add r0, r4, #0 - mov r3, #1 - str r1, [r5, #4] - bl ov18_021F36D4 - mov r0, #0x28 - pop {r3, r4, r5, pc} -_021EAC0E: - ldr r0, _021EAD64 ; =0x00001878 - mov r1, #0 - ldr r0, [r4, r0] - mov r2, #0xb - str r0, [r5] - add r0, r4, #0 - mov r3, #1 - str r1, [r5, #4] - bl ov18_021F36D4 - mov r0, #0x29 - pop {r3, r4, r5, pc} -_021EAC26: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EAD68 ; =0x000008E9 - bl PlaySE - ldr r0, _021EAD5C ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add r0, r4, #0 - mov r1, #0 - mov r2, #0xa - mov r3, #0x27 - bl ov18_021EDBDC - pop {r3, r4, r5, pc} -_021EAC4E: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - ldr r1, _021EAD6C ; =0x00001890 - add r0, r1, #0 - ldr r2, [r4, r1] - sub r0, #0x18 - str r2, [r4, r0] - add r0, r1, #4 - ldr r0, [r4, r0] - sub r1, #0x14 - str r0, [r4, r1] - ldr r0, _021EAD5C ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add r0, r4, #0 - mov r1, #0x16 - mov r2, #0xa - mov r3, #0x27 - bl ov18_021EDBDC - pop {r3, r4, r5, pc} -_021EAC82: - ldr r0, _021EAD60 ; =0x0000187C - ldr r0, [r4, r0] - cmp r0, #0x98 - beq _021EAD56 - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EAD68 ; =0x000008E9 - bl PlaySE - mov r0, #2 - strh r0, [r5, #8] - mov r0, #1 - strh r0, [r5, #0xa] - ldrh r1, [r5, #8] - add r0, r4, #0 - mov r2, #0x36 - bl ov18_021F118C - mov r0, #0x2a - pop {r3, r4, r5, pc} -_021EACAE: - ldr r0, _021EAD60 ; =0x0000187C - ldr r1, [r4, r0] - sub r0, r0, #4 - ldr r0, [r4, r0] - cmp r1, r0 - bls _021EAD56 - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EAD68 ; =0x000008E9 - bl PlaySE - mov r0, #1 - strh r0, [r5, #8] - sub r0, r0, #2 - strh r0, [r5, #0xa] - ldrh r1, [r5, #8] - add r0, r4, #0 - mov r2, #0x39 - bl ov18_021F118C - mov r0, #0x2a - pop {r3, r4, r5, pc} -_021EACDE: - ldr r0, _021EAD64 ; =0x00001878 - ldr r1, [r4, r0] - add r0, r0, #4 - ldr r0, [r4, r0] - cmp r1, r0 - bhs _021EAD56 - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EAD68 ; =0x000008E9 - bl PlaySE - mov r0, #4 - strh r0, [r5, #8] - mov r0, #1 - strh r0, [r5, #0xa] - ldrh r1, [r5, #8] - add r0, r4, #0 - mov r2, #0x36 - bl ov18_021F118C - mov r0, #0x2b - pop {r3, r4, r5, pc} -_021EAD0E: - ldr r0, _021EAD64 ; =0x00001878 - ldr r0, [r4, r0] - cmp r0, #0 - beq _021EAD56 - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EAD68 ; =0x000008E9 - bl PlaySE - mov r0, #3 - strh r0, [r5, #8] - sub r0, r0, #4 - strh r0, [r5, #0xa] - ldrh r1, [r5, #8] - add r0, r4, #0 - mov r2, #0x39 - bl ov18_021F118C - mov r0, #0x2b - pop {r3, r4, r5, pc} -_021EAD3A: - ldr r0, _021EAD70 ; =gSystem - ldr r1, [r0, #0x44] - mov r0, #0x20 - tst r0, r1 - bne _021EAD56 - mov r0, #0x10 - tst r0, r1 - bne _021EAD56 - bl System_GetTouchHeld - cmp r0, #0 - bne _021EAD56 - mov r0, #0 - str r0, [r5, #4] -_021EAD56: - mov r0, #0x26 - pop {r3, r4, r5, pc} - nop -_021EAD5C: .word 0x00000868 -_021EAD60: .word 0x0000187C -_021EAD64: .word 0x00001878 -_021EAD68: .word 0x000008E9 -_021EAD6C: .word 0x00001890 -_021EAD70: .word gSystem - thumb_func_end ov18_021EABB4 - - thumb_func_start ov18_021EAD74 -ov18_021EAD74: ; 0x021EAD74 - push {r4, r5} - ldr r4, [r3] - cmp r4, #0x18 - beq _021EAD80 - add r4, r4, #1 - str r4, [r3] -_021EAD80: - ldr r3, [r3] - cmp r3, #0x18 - blo _021EAD8A - mov r5, #0x20 - b _021EAD9C -_021EAD8A: - cmp r3, #0x10 - blo _021EAD92 - mov r5, #0x10 - b _021EAD9C -_021EAD92: - cmp r3, #8 - blo _021EAD9A - mov r5, #8 - b _021EAD9C -_021EAD9A: - mov r5, #1 -_021EAD9C: - ldr r3, [sp, #8] - ldr r4, [r0] - mul r3, r5 - add r3, r4, r3 - cmp r3, r1 - bge _021EADAC - add r3, r1, #0 - b _021EADB2 -_021EADAC: - cmp r3, r2 - ble _021EADB2 - add r3, r2, #0 -_021EADB2: - str r3, [r0] - pop {r4, r5} - bx lr - thumb_func_end ov18_021EAD74 - - thumb_func_start ov18_021EADB8 -ov18_021EADB8: ; 0x021EADB8 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r7, r1, #0 - add r6, r3, #0 - ldr r4, [sp, #0x18] - cmp r2, #0 - bne _021EAE00 - bl ov18_021F3AD0 - add r1, r0, #0 - add r0, r5, #0 - add r2, r6, #0 - mov r3, #1 - bl ov18_021F36D4 - ldr r2, _021EAE40 ; =0x00001850 - lsl r7, r7, #2 - ldr r2, [r5, r2] - add r0, r5, #0 - ldrh r2, [r2, r7] - add r1, r6, #1 - bl ov18_021F38F0 - ldr r1, _021EAE40 ; =0x00001850 - add r0, r5, #0 - ldr r1, [r5, r1] - add r2, r4, #0 - ldrh r1, [r1, r7] - bl ov18_021EFD00 - add r5, #0xc - lsl r0, r4, #4 - add r0, r5, r0 - bl ScheduleWindowCopyToVram - pop {r3, r4, r5, r6, r7, pc} -_021EAE00: - bl ov18_021F3AD0 - add r1, r0, #0 - add r0, r5, #0 - add r2, r6, #0 - mov r3, #1 - bl ov18_021F37D4 - ldr r2, _021EAE40 ; =0x00001850 - lsl r7, r7, #2 - ldr r2, [r5, r2] - add r0, r5, #0 - add r2, r2, r7 - ldrh r2, [r2, #2] - add r1, r6, #1 - bl ov18_021F39C4 - ldr r1, _021EAE40 ; =0x00001850 - add r0, r5, #0 - ldr r1, [r5, r1] - add r2, r4, #0 - add r1, r1, r7 - ldrh r1, [r1, #2] - bl ov18_021EFDB4 - add r5, #0xc - lsl r0, r4, #4 - add r0, r5, r0 - bl ScheduleWindowCopyToVram - pop {r3, r4, r5, r6, r7, pc} - nop -_021EAE40: .word 0x00001850 - thumb_func_end ov18_021EADB8 - - thumb_func_start ov18_021EAE44 -ov18_021EAE44: ; 0x021EAE44 - push {r3, lr} - mov r1, #0 - mov r2, #3 - mov r3, #0x16 - bl ov18_021EDE4C - mov r0, #0x1b - pop {r3, pc} - thumb_func_end ov18_021EAE44 - - thumb_func_start ov18_021EAE54 -ov18_021EAE54: ; 0x021EAE54 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - add r0, sp, #4 - ldr r4, _021EAF04 ; =0x00000868 - bl ov18_021F765C - cmp r0, #0 - ldr r0, _021EAF08 ; =0x0000187C - bne _021EAE9A - sub r1, r0, #4 - ldr r2, [r5, r0] - ldr r1, [r5, r1] - cmp r2, r1 - bhs _021EAE76 - ldr r1, [r5, r4] - str r1, [r5, r0] -_021EAE76: - mov r0, #0x46 - str r0, [sp] - ldr r1, _021EAF08 ; =0x0000187C - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #0 - mov r3, #5 - bl ov18_021EADB8 - ldr r1, _021EAF08 ; =0x0000187C - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #1 - bl ov18_021F3A64 - add sp, #8 - mov r0, #0x26 - pop {r3, r4, r5, pc} -_021EAE9A: - ldr r1, [sp, #4] - ldr r4, [r5, r0] - add r0, r5, #0 - mov r2, #5 - mov r3, #1 - bl ov18_021F36D4 - add r0, r5, #0 - mov r1, #5 - bl ov18_021F3AB0 - ldr r3, _021EAF08 ; =0x0000187C - mov r1, #6 - add r2, r3, #0 - str r0, [r5, r3] - sub r2, #0x2c - ldr r3, [r5, r3] - ldr r2, [r5, r2] - lsl r3, r3, #2 - ldrh r2, [r2, r3] - add r0, r5, #0 - bl ov18_021F38F0 - ldr r1, _021EAF0C ; =0x00001850 - add r0, r5, #0 - ldr r2, [r5, r1] - add r1, #0x2c - ldr r1, [r5, r1] - lsl r1, r1, #2 - ldrh r1, [r2, r1] - mov r2, #0x46 - bl ov18_021EFD00 - ldr r0, _021EAF10 ; =0x0000046C - add r0, r5, r0 - bl ScheduleWindowCopyToVram - ldr r1, _021EAF08 ; =0x0000187C - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #1 - bl ov18_021F3A64 - ldr r0, _021EAF08 ; =0x0000187C - ldr r0, [r5, r0] - cmp r4, r0 - beq _021EAEFE - ldr r0, _021EAF14 ; =0x000008E8 - bl PlaySE -_021EAEFE: - mov r0, #0x28 - add sp, #8 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EAF04: .word 0x00000868 -_021EAF08: .word 0x0000187C -_021EAF0C: .word 0x00001850 -_021EAF10: .word 0x0000046C -_021EAF14: .word 0x000008E8 - thumb_func_end ov18_021EAE54 - - thumb_func_start ov18_021EAF18 -ov18_021EAF18: ; 0x021EAF18 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - add r0, sp, #4 - ldr r4, _021EAFC8 ; =0x00000868 - bl ov18_021F765C - cmp r0, #0 - ldr r0, _021EAFCC ; =0x00001878 - bne _021EAF5E - add r1, r0, #4 - ldr r2, [r5, r0] - ldr r1, [r5, r1] - cmp r2, r1 - bls _021EAF3A - ldr r1, [r5, r4] - str r1, [r5, r0] -_021EAF3A: - mov r0, #0x45 - str r0, [sp] - ldr r1, _021EAFCC ; =0x00001878 - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #0 - mov r3, #0xb - bl ov18_021EADB8 - ldr r1, _021EAFCC ; =0x00001878 - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #3 - bl ov18_021F3A64 - add sp, #8 - mov r0, #0x26 - pop {r3, r4, r5, pc} -_021EAF5E: - ldr r1, [sp, #4] - ldr r4, [r5, r0] - add r0, r5, #0 - mov r2, #0xb - mov r3, #1 - bl ov18_021F36D4 - add r0, r5, #0 - mov r1, #0xb - bl ov18_021F3AB0 - ldr r3, _021EAFCC ; =0x00001878 - mov r1, #0xc - add r2, r3, #0 - str r0, [r5, r3] - sub r2, #0x28 - ldr r3, [r5, r3] - ldr r2, [r5, r2] - lsl r3, r3, #2 - ldrh r2, [r2, r3] - add r0, r5, #0 - bl ov18_021F38F0 - ldr r1, _021EAFD0 ; =0x00001850 - add r0, r5, #0 - ldr r2, [r5, r1] - add r1, #0x28 - ldr r1, [r5, r1] - lsl r1, r1, #2 - ldrh r1, [r2, r1] - mov r2, #0x45 - bl ov18_021EFD00 - ldr r0, _021EAFD4 ; =0x0000045C - add r0, r5, r0 - bl ScheduleWindowCopyToVram - ldr r1, _021EAFCC ; =0x00001878 - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #3 - bl ov18_021F3A64 - ldr r0, _021EAFCC ; =0x00001878 - ldr r0, [r5, r0] - cmp r4, r0 - beq _021EAFC2 - ldr r0, _021EAFD8 ; =0x000008E8 - bl PlaySE -_021EAFC2: - mov r0, #0x29 - add sp, #8 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EAFC8: .word 0x00000868 -_021EAFCC: .word 0x00001878 -_021EAFD0: .word 0x00001850 -_021EAFD4: .word 0x0000045C -_021EAFD8: .word 0x000008E8 - thumb_func_end ov18_021EAF18 - - thumb_func_start ov18_021EAFDC -ov18_021EAFDC: ; 0x021EAFDC - push {r3, r4, r5, lr} - ldr r1, _021EB02C ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrh r1, [r4, #8] - bl ov18_021F11AC - cmp r0, #0 - bne _021EB026 - mov r0, #0xa - ldrsh r0, [r4, r0] - ldr r1, _021EB030 ; =0x0000187C - mov r2, #0x98 - str r0, [sp] - add r0, r5, r1 - sub r1, r1, #4 - ldr r1, [r5, r1] - add r3, r4, #4 - bl ov18_021EAD74 - mov r0, #0x46 - str r0, [sp] - ldr r1, _021EB030 ; =0x0000187C - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #0 - mov r3, #5 - bl ov18_021EADB8 - ldr r1, _021EB030 ; =0x0000187C - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #1 - bl ov18_021F3A64 - mov r0, #0x26 - pop {r3, r4, r5, pc} -_021EB026: - mov r0, #0x2a - pop {r3, r4, r5, pc} - nop -_021EB02C: .word 0x00000868 -_021EB030: .word 0x0000187C - thumb_func_end ov18_021EAFDC - - thumb_func_start ov18_021EB034 -ov18_021EB034: ; 0x021EB034 - push {r3, r4, r5, lr} - ldr r1, _021EB084 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrh r1, [r4, #8] - bl ov18_021F11AC - cmp r0, #0 - bne _021EB07E - mov r0, #0xa - ldrsh r0, [r4, r0] - ldr r2, _021EB088 ; =0x00001878 - mov r1, #0 - str r0, [sp] - add r0, r5, r2 - add r2, r2, #4 - ldr r2, [r5, r2] - add r3, r4, #4 - bl ov18_021EAD74 - mov r0, #0x45 - str r0, [sp] - ldr r1, _021EB088 ; =0x00001878 - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #0 - mov r3, #0xb - bl ov18_021EADB8 - ldr r1, _021EB088 ; =0x00001878 - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #3 - bl ov18_021F3A64 - mov r0, #0x26 - pop {r3, r4, r5, pc} -_021EB07E: - mov r0, #0x2b - pop {r3, r4, r5, pc} - nop -_021EB084: .word 0x00000868 -_021EB088: .word 0x00001878 - thumb_func_end ov18_021EB034 - - thumb_func_start ov18_021EB08C -ov18_021EB08C: ; 0x021EB08C - push {r3, lr} - mov r2, #0x62 - lsl r2, r2, #6 - add r1, r2, #0 - ldr r3, [r0, r2] - add r1, #0x10 - str r3, [r0, r1] - add r1, r2, #4 - ldr r1, [r0, r1] - add r2, #0x14 - str r1, [r0, r2] - mov r1, #5 - mov r2, #0 - mov r3, #0x2d - bl ov18_021EDE4C - mov r0, #0x1a - pop {r3, pc} - thumb_func_end ov18_021EB08C - - thumb_func_start ov18_021EB0B0 -ov18_021EB0B0: ; 0x021EB0B0 - push {r3, r4, r5, lr} - ldr r1, _021EB25C ; =0x00000868 - add r4, r0, #0 - add r5, r4, r1 - bl ov18_021F7520 - mov r1, #1 - mvn r1, r1 - cmp r0, r1 - bhi _021EB0E6 - bhs _021EB14C - cmp r0, #7 - bhi _021EB0F0 - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EB0D6: ; jump table - .short _021EB0F2 - _021EB0D6 - 2 ; case 0 - .short _021EB10A - _021EB0D6 - 2 ; case 1 - .short _021EB124 - _021EB0D6 - 2 ; case 2 - .short _021EB14C - _021EB0D6 - 2 ; case 3 - .short _021EB180 - _021EB0D6 - 2 ; case 4 - .short _021EB1AC - _021EB0D6 - 2 ; case 5 - .short _021EB1DC - _021EB0D6 - 2 ; case 6 - .short _021EB20E - _021EB0D6 - 2 ; case 7 -_021EB0E6: - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - bne _021EB0F0 - b _021EB23C -_021EB0F0: - b _021EB258 -_021EB0F2: - ldr r0, _021EB260 ; =0x00001884 - mov r1, #0 - ldr r0, [r4, r0] - mov r2, #5 - str r0, [r5] - add r0, r4, #0 - mov r3, #1 - str r1, [r5, #4] - bl ov18_021F37D4 - mov r0, #0x2f - pop {r3, r4, r5, pc} -_021EB10A: - mov r0, #0x62 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #0 - str r0, [r5] - add r0, r4, #0 - mov r2, #0xb - mov r3, #1 - str r1, [r5, #4] - bl ov18_021F37D4 - mov r0, #0x30 - pop {r3, r4, r5, pc} -_021EB124: - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EB264 ; =0x000008E9 - bl PlaySE - ldr r0, _021EB25C ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add r0, r4, #0 - mov r1, #0 - mov r2, #0xa - mov r3, #0x2e - bl ov18_021EDBDC - pop {r3, r4, r5, pc} -_021EB14C: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - ldr r1, _021EB268 ; =0x00001890 - add r0, r1, #0 - ldr r2, [r4, r1] - sub r0, #0x10 - str r2, [r4, r0] - add r0, r1, #4 - ldr r0, [r4, r0] - sub r1, #0xc - str r0, [r4, r1] - ldr r0, _021EB25C ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add r0, r4, #0 - mov r1, #0x16 - mov r2, #0xa - mov r3, #0x2e - bl ov18_021EDBDC - pop {r3, r4, r5, pc} -_021EB180: - ldr r0, _021EB260 ; =0x00001884 - ldr r0, [r4, r0] - cmp r0, #0x98 - beq _021EB258 - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EB264 ; =0x000008E9 - bl PlaySE - mov r0, #2 - strh r0, [r5, #8] - mov r0, #1 - strh r0, [r5, #0xa] - ldrh r1, [r5, #8] - add r0, r4, #0 - mov r2, #0x36 - bl ov18_021F118C - mov r0, #0x31 - pop {r3, r4, r5, pc} -_021EB1AC: - ldr r0, _021EB260 ; =0x00001884 - ldr r1, [r4, r0] - sub r0, r0, #4 - ldr r0, [r4, r0] - cmp r1, r0 - bls _021EB258 - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EB264 ; =0x000008E9 - bl PlaySE - mov r0, #1 - strh r0, [r5, #8] - sub r0, r0, #2 - strh r0, [r5, #0xa] - ldrh r1, [r5, #8] - add r0, r4, #0 - mov r2, #0x39 - bl ov18_021F118C - mov r0, #0x31 - pop {r3, r4, r5, pc} -_021EB1DC: - mov r0, #0x62 - lsl r0, r0, #6 - ldr r1, [r4, r0] - add r0, r0, #4 - ldr r0, [r4, r0] - cmp r1, r0 - bhs _021EB258 - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EB264 ; =0x000008E9 - bl PlaySE - mov r0, #4 - strh r0, [r5, #8] - mov r0, #1 - strh r0, [r5, #0xa] - ldrh r1, [r5, #8] - add r0, r4, #0 - mov r2, #0x36 - bl ov18_021F118C - mov r0, #0x32 - pop {r3, r4, r5, pc} -_021EB20E: - mov r0, #0x62 - lsl r0, r0, #6 - ldr r0, [r4, r0] - cmp r0, #0 - beq _021EB258 - ldr r0, [r4] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EB264 ; =0x000008E9 - bl PlaySE - mov r0, #3 - strh r0, [r5, #8] - sub r0, r0, #4 - strh r0, [r5, #0xa] - ldrh r1, [r5, #8] - add r0, r4, #0 - mov r2, #0x39 - bl ov18_021F118C - mov r0, #0x32 - pop {r3, r4, r5, pc} -_021EB23C: - ldr r0, _021EB26C ; =gSystem - ldr r1, [r0, #0x44] - mov r0, #0x20 - tst r0, r1 - bne _021EB258 - mov r0, #0x10 - tst r0, r1 - bne _021EB258 - bl System_GetTouchHeld - cmp r0, #0 - bne _021EB258 - mov r0, #0 - str r0, [r5, #4] -_021EB258: - mov r0, #0x2d - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EB25C: .word 0x00000868 -_021EB260: .word 0x00001884 -_021EB264: .word 0x000008E9 -_021EB268: .word 0x00001890 -_021EB26C: .word gSystem - thumb_func_end ov18_021EB0B0 - - thumb_func_start ov18_021EB270 -ov18_021EB270: ; 0x021EB270 - push {r3, lr} - mov r1, #0 - mov r2, #4 - mov r3, #0x16 - bl ov18_021EDE4C - mov r0, #0x1b - pop {r3, pc} - thumb_func_end ov18_021EB270 - - thumb_func_start ov18_021EB280 -ov18_021EB280: ; 0x021EB280 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - add r0, sp, #4 - ldr r4, _021EB334 ; =0x00000868 - bl ov18_021F765C - cmp r0, #0 - ldr r0, _021EB338 ; =0x00001884 - bne _021EB2C6 - sub r1, r0, #4 - ldr r2, [r5, r0] - ldr r1, [r5, r1] - cmp r2, r1 - bhs _021EB2A2 - ldr r1, [r5, r4] - str r1, [r5, r0] -_021EB2A2: - mov r0, #0x49 - str r0, [sp] - ldr r1, _021EB338 ; =0x00001884 - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #1 - mov r3, #5 - bl ov18_021EADB8 - ldr r1, _021EB338 ; =0x00001884 - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #1 - bl ov18_021F3A64 - add sp, #8 - mov r0, #0x2d - pop {r3, r4, r5, pc} -_021EB2C6: - ldr r1, [sp, #4] - ldr r4, [r5, r0] - add r0, r5, #0 - mov r2, #5 - mov r3, #1 - bl ov18_021F37D4 - add r0, r5, #0 - mov r1, #5 - bl ov18_021F3AB0 - ldr r3, _021EB338 ; =0x00001884 - mov r1, #6 - add r2, r3, #0 - str r0, [r5, r3] - sub r2, #0x34 - ldr r3, [r5, r3] - ldr r2, [r5, r2] - lsl r3, r3, #2 - add r2, r2, r3 - ldrh r2, [r2, #2] - add r0, r5, #0 - bl ov18_021F39C4 - ldr r1, _021EB33C ; =0x00001850 - add r0, r5, #0 - ldr r2, [r5, r1] - add r1, #0x34 - ldr r1, [r5, r1] - lsl r1, r1, #2 - add r1, r2, r1 - ldrh r1, [r1, #2] - mov r2, #0x49 - bl ov18_021EFDB4 - ldr r0, _021EB340 ; =0x0000049C - add r0, r5, r0 - bl ScheduleWindowCopyToVram - ldr r1, _021EB338 ; =0x00001884 - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #1 - bl ov18_021F3A64 - ldr r0, _021EB338 ; =0x00001884 - ldr r0, [r5, r0] - cmp r4, r0 - beq _021EB32E - ldr r0, _021EB344 ; =0x000008E8 - bl PlaySE -_021EB32E: - mov r0, #0x2f - add sp, #8 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EB334: .word 0x00000868 -_021EB338: .word 0x00001884 -_021EB33C: .word 0x00001850 -_021EB340: .word 0x0000049C -_021EB344: .word 0x000008E8 - thumb_func_end ov18_021EB280 - - thumb_func_start ov18_021EB348 -ov18_021EB348: ; 0x021EB348 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - add r0, sp, #4 - ldr r4, _021EB40C ; =0x00000868 - bl ov18_021F765C - cmp r0, #0 - bne _021EB394 - mov r0, #0x62 - lsl r0, r0, #6 - add r1, r0, #4 - ldr r2, [r5, r0] - ldr r1, [r5, r1] - cmp r2, r1 - bls _021EB36C - ldr r1, [r5, r4] - str r1, [r5, r0] -_021EB36C: - mov r0, #0x48 - mov r1, #0x62 - str r0, [sp] - lsl r1, r1, #6 - ldr r1, [r5, r1] - add r0, r5, #0 - mov r2, #1 - mov r3, #0xb - bl ov18_021EADB8 - mov r1, #0x62 - lsl r1, r1, #6 - ldr r1, [r5, r1] - add r0, r5, #0 - mov r2, #3 - bl ov18_021F3A64 - add sp, #8 - mov r0, #0x2d - pop {r3, r4, r5, pc} -_021EB394: - mov r0, #0x62 - lsl r0, r0, #6 - ldr r4, [r5, r0] - ldr r1, [sp, #4] - add r0, r5, #0 - mov r2, #0xb - mov r3, #1 - bl ov18_021F37D4 - add r0, r5, #0 - mov r1, #0xb - bl ov18_021F3AB0 - mov r3, #0x62 - lsl r3, r3, #6 - add r2, r3, #0 - str r0, [r5, r3] - sub r2, #0x30 - ldr r3, [r5, r3] - ldr r2, [r5, r2] - lsl r3, r3, #2 - add r2, r2, r3 - ldrh r2, [r2, #2] - add r0, r5, #0 - mov r1, #0xc - bl ov18_021F39C4 - ldr r1, _021EB410 ; =0x00001850 - add r0, r5, #0 - ldr r2, [r5, r1] - add r1, #0x30 - ldr r1, [r5, r1] - lsl r1, r1, #2 - add r1, r2, r1 - ldrh r1, [r1, #2] - mov r2, #0x48 - bl ov18_021EFDB4 - ldr r0, _021EB414 ; =0x0000048C - add r0, r5, r0 - bl ScheduleWindowCopyToVram - mov r1, #0x62 - lsl r1, r1, #6 - ldr r1, [r5, r1] - add r0, r5, #0 - mov r2, #3 - bl ov18_021F3A64 - mov r0, #0x62 - lsl r0, r0, #6 - ldr r0, [r5, r0] - cmp r4, r0 - beq _021EB406 - ldr r0, _021EB418 ; =0x000008E8 - bl PlaySE -_021EB406: - mov r0, #0x30 - add sp, #8 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EB40C: .word 0x00000868 -_021EB410: .word 0x00001850 -_021EB414: .word 0x0000048C -_021EB418: .word 0x000008E8 - thumb_func_end ov18_021EB348 - - thumb_func_start ov18_021EB41C -ov18_021EB41C: ; 0x021EB41C - push {r3, r4, r5, lr} - ldr r1, _021EB46C ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrh r1, [r4, #8] - bl ov18_021F11AC - cmp r0, #0 - bne _021EB466 - mov r0, #0xa - ldrsh r0, [r4, r0] - ldr r1, _021EB470 ; =0x00001884 - mov r2, #0x98 - str r0, [sp] - add r0, r5, r1 - sub r1, r1, #4 - ldr r1, [r5, r1] - add r3, r4, #4 - bl ov18_021EAD74 - mov r0, #0x49 - str r0, [sp] - ldr r1, _021EB470 ; =0x00001884 - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #1 - mov r3, #5 - bl ov18_021EADB8 - ldr r1, _021EB470 ; =0x00001884 - add r0, r5, #0 - ldr r1, [r5, r1] - mov r2, #1 - bl ov18_021F3A64 - mov r0, #0x2d - pop {r3, r4, r5, pc} -_021EB466: - mov r0, #0x31 - pop {r3, r4, r5, pc} - nop -_021EB46C: .word 0x00000868 -_021EB470: .word 0x00001884 - thumb_func_end ov18_021EB41C - - thumb_func_start ov18_021EB474 -ov18_021EB474: ; 0x021EB474 - push {r3, r4, r5, lr} - ldr r1, _021EB4C8 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrh r1, [r4, #8] - bl ov18_021F11AC - cmp r0, #0 - bne _021EB4C4 - mov r0, #0xa - ldrsh r0, [r4, r0] - mov r2, #0x62 - lsl r2, r2, #6 - str r0, [sp] - add r0, r5, r2 - add r2, r2, #4 - ldr r2, [r5, r2] - mov r1, #0 - add r3, r4, #4 - bl ov18_021EAD74 - mov r0, #0x48 - mov r1, #0x62 - str r0, [sp] - lsl r1, r1, #6 - ldr r1, [r5, r1] - add r0, r5, #0 - mov r2, #1 - mov r3, #0xb - bl ov18_021EADB8 - mov r1, #0x62 - lsl r1, r1, #6 - ldr r1, [r5, r1] - add r0, r5, #0 - mov r2, #3 - bl ov18_021F3A64 - mov r0, #0x2d - pop {r3, r4, r5, pc} -_021EB4C4: - mov r0, #0x32 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EB4C8: .word 0x00000868 - thumb_func_end ov18_021EB474 - - thumb_func_start ov18_021EB4CC -ov18_021EB4CC: ; 0x021EB4CC - push {r3, lr} - ldr r1, _021EB4E4 ; =0x00001888 - mov r3, #0x34 - ldr r2, [r0, r1] - add r1, #8 - str r2, [r0, r1] - mov r1, #6 - mov r2, #0 - bl ov18_021EDE4C - mov r0, #0x1a - pop {r3, pc} - .balign 4, 0 -_021EB4E4: .word 0x00001888 - thumb_func_end ov18_021EB4CC - - thumb_func_start ov18_021EB4E8 -ov18_021EB4E8: ; 0x021EB4E8 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl ov18_021F76B0 - mov r1, #3 - add r4, r0, #0 - mvn r1, r1 - cmp r4, r1 - bhi _021EB50C - bhs _021EB572 - cmp r4, #5 - bhi _021EB55C - cmp r4, #4 - blo _021EB55C - beq _021EB522 - cmp r4, #5 - beq _021EB53E - b _021EB55C -_021EB50C: - add r0, r1, #1 - cmp r4, r0 - blo _021EB55C - beq _021EB572 - add r0, r1, #2 - cmp r4, r0 - beq _021EB53E - add r0, r1, #3 - cmp r4, r0 - beq _021EB572 - b _021EB55C -_021EB522: - ldr r0, [r5] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EB578 ; =0x000008E9 - bl PlaySE - add r0, r5, #0 - mov r1, #0 - mov r2, #0xa - mov r3, #0x35 - bl ov18_021EDBDC - pop {r3, r4, r5, pc} -_021EB53E: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - ldr r0, _021EB57C ; =0x00001890 - mov r2, #0xa - ldr r1, [r5, r0] - sub r0, #8 - str r1, [r5, r0] - add r0, r5, #0 - mov r1, #0x16 - mov r3, #0x35 - bl ov18_021EDBDC - pop {r3, r4, r5, pc} -_021EB55C: - ldr r0, [r5] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EB578 ; =0x000008E9 - bl PlaySE - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E7534 -_021EB572: - mov r0, #0x34 - pop {r3, r4, r5, pc} - nop -_021EB578: .word 0x000008E9 -_021EB57C: .word 0x00001890 - thumb_func_end ov18_021EB4E8 - - thumb_func_start ov18_021EB580 -ov18_021EB580: ; 0x021EB580 - push {r3, lr} - mov r1, #0 - mov r2, #5 - mov r3, #0x16 - bl ov18_021EDE4C - mov r0, #0x1b - pop {r3, pc} - thumb_func_end ov18_021EB580 - - thumb_func_start ov18_021EB590 -ov18_021EB590: ; 0x021EB590 - push {r3, lr} - ldr r1, _021EB5A8 ; =0x0000188C - mov r3, #0x37 - ldr r2, [r0, r1] - add r1, r1, #4 - str r2, [r0, r1] - mov r1, #7 - mov r2, #0 - bl ov18_021EDE4C - mov r0, #0x1a - pop {r3, pc} - .balign 4, 0 -_021EB5A8: .word 0x0000188C - thumb_func_end ov18_021EB590 - - thumb_func_start ov18_021EB5AC -ov18_021EB5AC: ; 0x021EB5AC - push {r3, r4, r5, lr} - add r5, r0, #0 - bl ov18_021F7790 - mov r1, #3 - add r4, r0, #0 - mvn r1, r1 - cmp r4, r1 - bhi _021EB5D0 - bhs _021EB636 - cmp r4, #0x10 - bhi _021EB620 - cmp r4, #0xf - blo _021EB620 - beq _021EB5E6 - cmp r4, #0x10 - beq _021EB602 - b _021EB620 -_021EB5D0: - add r0, r1, #1 - cmp r4, r0 - blo _021EB620 - beq _021EB636 - add r0, r1, #2 - cmp r4, r0 - beq _021EB602 - add r0, r1, #3 - cmp r4, r0 - beq _021EB636 - b _021EB620 -_021EB5E6: - ldr r0, [r5] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EB63C ; =0x000008E9 - bl PlaySE - add r0, r5, #0 - mov r1, #0 - mov r2, #0xa - mov r3, #0x38 - bl ov18_021EDBDC - pop {r3, r4, r5, pc} -_021EB602: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - ldr r0, _021EB640 ; =0x00001890 - mov r2, #0xa - ldr r1, [r5, r0] - sub r0, r0, #4 - str r1, [r5, r0] - add r0, r5, #0 - mov r1, #0x16 - mov r3, #0x38 - bl ov18_021EDBDC - pop {r3, r4, r5, pc} -_021EB620: - ldr r0, [r5] - ldr r0, [r0, #0xc] - bl MenuInputStateMgr_GetState - ldr r0, _021EB63C ; =0x000008E9 - bl PlaySE - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E766C -_021EB636: - mov r0, #0x37 - pop {r3, r4, r5, pc} - nop -_021EB63C: .word 0x000008E9 -_021EB640: .word 0x00001890 - thumb_func_end ov18_021EB5AC - - thumb_func_start ov18_021EB644 -ov18_021EB644: ; 0x021EB644 - push {r3, lr} - mov r1, #0 - mov r2, #6 - mov r3, #0x16 - bl ov18_021EDE4C - mov r0, #0x1b - pop {r3, pc} - thumb_func_end ov18_021EB644 - - thumb_func_start ov18_021EB654 -ov18_021EB654: ; 0x021EB654 - push {r4, lr} - sub sp, #8 - mov r1, #0 - add r4, r0, #0 - bl ov18_021F7974 - cmp r0, #0xd - bhi _021EB6EA - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EB670: ; jump table - .short _021EB68C - _021EB670 - 2 ; case 0 - .short _021EB81E - _021EB670 - 2 ; case 1 - .short _021EB6A2 - _021EB670 - 2 ; case 2 - .short _021EB6B2 - _021EB670 - 2 ; case 3 - .short _021EB6D6 - _021EB670 - 2 ; case 4 - .short _021EB708 - _021EB670 - 2 ; case 5 - .short _021EB718 - _021EB670 - 2 ; case 6 - .short _021EB728 - _021EB670 - 2 ; case 7 - .short _021EB73C - _021EB670 - 2 ; case 8 - .short _021EB74E - _021EB670 - 2 ; case 9 - .short _021EB76E - _021EB670 - 2 ; case 10 - .short _021EB794 - _021EB670 - 2 ; case 11 - .short _021EB7BE - _021EB670 - 2 ; case 12 - .short _021EB7EE - _021EB670 - 2 ; case 13 -_021EB68C: - add r0, r4, #0 - mov r1, #0 - bl ov18_021F2BB0 - add r0, r4, #0 - bl ov18_021E78AC - add r0, r4, #0 - bl ov18_021EDEB0 - b _021EB81E -_021EB6A2: - add r0, r4, #0 - mov r1, #0 - mov r2, #8 - mov r3, #0x3e - bl ov18_021EDBB8 - add sp, #8 - pop {r4, pc} -_021EB6B2: - add r0, r4, #0 - bl ov18_021F8824 - cmp r0, #0 - beq _021EB6EA - add r0, r4, #0 - bl ov18_021EDE04 - cmp r0, #1 - bne _021EB6EA - mov r1, #8 - add r0, r4, #0 - add r2, r1, #0 - mov r3, #0x39 - bl ov18_021EDBB8 - add sp, #8 - pop {r4, pc} -_021EB6D6: - add r0, r4, #0 - bl ov18_021F8824 - cmp r0, #0 - beq _021EB6EA - add r0, r4, #0 - bl ov18_021F8838 - cmp r0, #0 - bne _021EB6EC -_021EB6EA: - b _021EB81E -_021EB6EC: - ldr r0, _021EB824 ; =0x000008E9 - bl PlaySE - ldr r0, _021EB828 ; =0x0000185B - mov r1, #1 - strb r1, [r4, r0] - add r0, r4, #0 - mov r1, #0x10 - mov r2, #8 - mov r3, #0x40 - bl ov18_021EDBB8 - add sp, #8 - pop {r4, pc} -_021EB708: - add r0, r4, #0 - mov r1, #0x18 - mov r2, #8 - mov r3, #0x3f - bl ov18_021EDBB8 - add sp, #8 - pop {r4, pc} -_021EB718: - add r0, r4, #0 - mov r1, #0x18 - mov r2, #8 - mov r3, #0x3f - bl ov18_021EDBB8 - add sp, #8 - pop {r4, pc} -_021EB728: - add r0, r4, #0 - bl ov18_021F8838 - mov r2, #0 - add r1, r0, #0 - add r0, r4, #0 - mvn r2, r2 - bl ov18_021E7A80 - b _021EB81E -_021EB73C: - add r0, r4, #0 - bl ov18_021F8838 - add r1, r0, #0 - add r0, r4, #0 - mov r2, #1 - bl ov18_021E7A80 - b _021EB81E -_021EB74E: - ldr r0, _021EB82C ; =0x00001859 - ldrb r0, [r4, r0] - cmp r0, #0 - beq _021EB81E - ldr r0, _021EB824 ; =0x000008E9 - bl PlaySE - ldr r0, _021EB830 ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add sp, #8 - mov r0, #0x3a - pop {r4, pc} -_021EB76E: - ldr r0, _021EB82C ; =0x00001859 - ldrb r0, [r4, r0] - cmp r0, #0 - beq _021EB81E - ldr r0, _021EB824 ; =0x000008E9 - bl PlaySE - ldr r0, _021EB830 ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, _021EB834 ; =0x0000086F - mov r1, #1 - strb r1, [r4, r0] - add sp, #8 - mov r0, #0x3a - pop {r4, pc} -_021EB794: - add r0, r4, #0 - mov r1, #0 - bl ov18_021F8950 - ldr r1, _021EB82C ; =0x00001859 - ldrb r1, [r4, r1] - add r1, r1, #1 - cmp r1, r0 - bhi _021EB81E - ldr r0, _021EB824 ; =0x000008E9 - bl PlaySE - ldr r0, _021EB830 ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - add sp, #8 - mov r0, #0x3b - pop {r4, pc} -_021EB7BE: - add r0, r4, #0 - mov r1, #0 - bl ov18_021F8950 - ldr r1, _021EB82C ; =0x00001859 - ldrb r1, [r4, r1] - add r1, r1, #1 - cmp r1, r0 - bhi _021EB81E - ldr r0, _021EB824 ; =0x000008E9 - bl PlaySE - ldr r0, _021EB830 ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, _021EB834 ; =0x0000086F - mov r1, #1 - strb r1, [r4, r0] - add sp, #8 - mov r0, #0x3b - pop {r4, pc} -_021EB7EE: - add r0, sp, #4 - add r1, sp, #0 - bl System_GetTouchHeldCoords - ldr r2, [sp, #4] - ldr r3, [sp] - add r0, r4, #0 - mov r1, #0x12 - bl ov18_021F2CD0 - cmp r0, #1 - bne _021EB80C - add sp, #8 - mov r0, #0x3c - pop {r4, pc} -_021EB80C: - ldr r0, _021EB830 ; =0x00000868 - add r1, r4, r0 - ldr r0, [sp, #4] - strh r0, [r1] - ldr r0, [sp] - add sp, #8 - strh r0, [r1, #2] - mov r0, #0x3d - pop {r4, pc} -_021EB81E: - mov r0, #0x39 - add sp, #8 - pop {r4, pc} - .balign 4, 0 -_021EB824: .word 0x000008E9 -_021EB828: .word 0x0000185B -_021EB82C: .word 0x00001859 -_021EB830: .word 0x00000868 -_021EB834: .word 0x0000086F - thumb_func_end ov18_021EB654 - - thumb_func_start ov18_021EB838 -ov18_021EB838: ; 0x021EB838 - push {r3, r4, r5, lr} - ldr r1, _021EB978 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrb r1, [r4, #4] - cmp r1, #0 - beq _021EB850 - cmp r1, #1 - beq _021EB8C2 - cmp r1, #2 - beq _021EB920 - b _021EB974 -_021EB850: - mov r1, #0 - add r2, r1, #0 - bl ov18_021F11C0 - add r0, r5, #0 - mov r1, #0x13 - mov r2, #6 - bl ov18_021F118C - add r0, r5, #0 - mov r1, #0x16 - mov r2, #0 - bl ov18_021F2A2C - add r0, r5, #0 - mov r1, #0x18 - mov r2, #0 - bl ov18_021F2A84 - ldr r0, _021EB97C ; =0x000005EC - add r0, r5, r0 - bl ClearWindowTilemapAndScheduleTransfer - ldr r1, _021EB980 ; =0x00001859 - add r0, r5, #0 - ldrb r1, [r5, r1] - sub r2, r1, #1 - mov r1, #0xf - mul r1, r2 - bl ov18_021E6BB8 - str r0, [r4] - ldr r1, _021EB980 ; =0x00001859 - add r0, r5, #0 - ldrb r1, [r5, r1] - mov r2, #0x12 - mov r3, #0 - sub r1, r1, #1 - bl ov18_021F2DD4 - add r2, r0, #0 - add r0, r5, #0 - mov r1, #0x12 - mov r3, #0xf - bl ov18_021F2E14 - strb r0, [r4, #6] - ldr r0, _021EB980 ; =0x00001859 - ldrb r0, [r5, r0] - cmp r0, #1 - bne _021EB8BC - add r0, r5, #0 - bl ov18_021F3C30 -_021EB8BC: - ldrb r0, [r4, #4] - add r0, r0, #1 - strb r0, [r4, #4] -_021EB8C2: - ldrb r0, [r4, #5] - add r0, r0, #1 - strb r0, [r4, #5] - ldrb r2, [r4, #5] - ldr r1, [r4] - add r0, r5, #0 - lsl r3, r2, #5 - mov r2, #0x1e - lsl r2, r2, #4 - sub r2, r2, r3 - lsl r2, r2, #1 - add r1, r1, r2 - bl ov18_021E6CE8 - ldrb r0, [r4, #5] - mov r1, #5 - bl _s32_div_f - add r3, r0, #0 - lsl r3, r3, #0x18 - add r0, r5, #0 - mov r1, #0x3b - mov r2, #8 - lsr r3, r3, #0x18 - bl ov18_021F16C4 - ldrb r2, [r4, #6] - add r0, r5, #0 - mov r1, #0x12 - neg r2, r2 - bl ov18_021F2E4C - ldr r0, _021EB980 ; =0x00001859 - ldrb r0, [r5, r0] - cmp r0, #1 - bne _021EB912 - add r0, r5, #0 - mov r1, #8 - bl ov18_021F3C54 -_021EB912: - ldrb r0, [r4, #5] - cmp r0, #0xf - bne _021EB974 - ldrb r0, [r4, #4] - add r0, r0, #1 - strb r0, [r4, #4] - b _021EB974 -_021EB920: - ldrb r0, [r4, #7] - cmp r0, #1 - bne _021EB92E - ldr r0, _021EB984 ; =0x0000185A - ldrb r1, [r5, r0] - add r1, #0xa - strb r1, [r5, r0] -_021EB92E: - ldr r0, _021EB980 ; =0x00001859 - ldrb r1, [r5, r0] - sub r1, r1, #1 - strb r1, [r5, r0] - add r0, r5, #0 - mov r1, #0 - bl ov18_021F2BB0 - ldr r0, [r4] - bl ov18_021E6C90 - add r0, r5, #0 - bl ov18_021E78AC - add r0, r5, #0 - bl ov18_021EDEB0 - add r0, r5, #0 - mov r1, #0x13 - mov r2, #0 - bl ov18_021F2C10 - add r0, r5, #0 - mov r1, #0x12 - mov r2, #0 - bl ov18_021F2E80 - ldr r0, _021EB978 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #0x39 - pop {r3, r4, r5, pc} -_021EB974: - mov r0, #0x3a - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EB978: .word 0x00000868 -_021EB97C: .word 0x000005EC -_021EB980: .word 0x00001859 -_021EB984: .word 0x0000185A - thumb_func_end ov18_021EB838 - - thumb_func_start ov18_021EB988 -ov18_021EB988: ; 0x021EB988 - push {r3, r4, r5, lr} - ldr r1, _021EBAB4 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrb r1, [r4, #4] - cmp r1, #0 - beq _021EB9A0 - cmp r1, #1 - beq _021EBA02 - cmp r1, #2 - beq _021EBA5A - b _021EBAAE -_021EB9A0: - mov r1, #0 - add r2, r1, #0 - bl ov18_021F11C0 - add r0, r5, #0 - mov r1, #0x14 - mov r2, #9 - bl ov18_021F118C - add r0, r5, #0 - mov r1, #0x16 - mov r2, #0 - bl ov18_021F2A2C - add r0, r5, #0 - mov r1, #0x18 - mov r2, #0 - bl ov18_021F2A84 - ldr r0, _021EBAB8 ; =0x000005EC - add r0, r5, r0 - bl ClearWindowTilemapAndScheduleTransfer - ldr r1, _021EBABC ; =0x00001859 - add r0, r5, #0 - ldrb r2, [r5, r1] - mov r1, #0xf - mul r1, r2 - bl ov18_021E6BB8 - str r0, [r4] - ldr r1, _021EBABC ; =0x00001859 - add r0, r5, #0 - ldrb r1, [r5, r1] - mov r2, #0x12 - mov r3, #0 - add r1, r1, #1 - bl ov18_021F2DD4 - add r2, r0, #0 - add r0, r5, #0 - mov r1, #0x12 - mov r3, #0xf - bl ov18_021F2E14 - strb r0, [r4, #6] - ldrb r0, [r4, #4] - add r0, r0, #1 - strb r0, [r4, #4] -_021EBA02: - ldrb r0, [r4, #5] - add r0, r0, #1 - strb r0, [r4, #5] - ldrb r1, [r4, #5] - ldr r2, [r4] - add r0, r5, #0 - lsl r1, r1, #6 - add r1, r2, r1 - bl ov18_021E6CE8 - ldrb r0, [r4, #5] - mov r1, #5 - bl _s32_div_f - add r3, r0, #0 - mov r1, #0x3b - add r2, r1, #0 - lsl r3, r3, #0x18 - add r0, r5, #0 - sub r2, #0x43 - lsr r3, r3, #0x18 - bl ov18_021F1760 - ldrb r2, [r4, #6] - add r0, r5, #0 - mov r1, #0x12 - bl ov18_021F2E4C - ldr r0, _021EBABC ; =0x00001859 - ldrb r0, [r5, r0] - cmp r0, #0 - bne _021EBA4C - mov r1, #7 - add r0, r5, #0 - mvn r1, r1 - bl ov18_021F3C54 -_021EBA4C: - ldrb r0, [r4, #5] - cmp r0, #0xf - bne _021EBAAE - ldrb r0, [r4, #4] - add r0, r0, #1 - strb r0, [r4, #4] - b _021EBAAE -_021EBA5A: - ldrb r0, [r4, #7] - cmp r0, #1 - bne _021EBA68 - ldr r0, _021EBAC0 ; =0x0000185A - ldrb r1, [r5, r0] - sub r1, #0xa - strb r1, [r5, r0] -_021EBA68: - ldr r0, _021EBABC ; =0x00001859 - ldrb r1, [r5, r0] - add r1, r1, #1 - strb r1, [r5, r0] - add r0, r5, #0 - mov r1, #0 - bl ov18_021F2BB0 - ldr r0, [r4] - bl ov18_021E6C90 - add r0, r5, #0 - bl ov18_021E78AC - add r0, r5, #0 - bl ov18_021EDEB0 - add r0, r5, #0 - mov r1, #0x13 - mov r2, #0 - bl ov18_021F2C10 - add r0, r5, #0 - mov r1, #0x12 - mov r2, #0 - bl ov18_021F2E80 - ldr r0, _021EBAB4 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #0x39 - pop {r3, r4, r5, pc} -_021EBAAE: - mov r0, #0x3b - pop {r3, r4, r5, pc} - nop -_021EBAB4: .word 0x00000868 -_021EBAB8: .word 0x000005EC -_021EBABC: .word 0x00001859 -_021EBAC0: .word 0x0000185A - thumb_func_end ov18_021EB988 - - thumb_func_start ov18_021EBAC4 -ov18_021EBAC4: ; 0x021EBAC4 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - add r0, sp, #8 - add r1, sp, #4 - bl System_GetTouchHeldCoords - cmp r0, #0 - bne _021EBADC - add sp, #0xc - mov r0, #0x39 - pop {r4, r5, pc} -_021EBADC: - mov r0, #0 - str r0, [sp] - ldr r2, [sp, #8] - ldr r3, [sp, #4] - add r0, r5, #0 - mov r1, #0x12 - bl ov18_021F2D24 - cmp r0, #1 - bne _021EBB56 - ldr r1, _021EBB5C ; =0x00001859 - add r0, r5, #0 - ldrb r2, [r5, r1] - mov r1, #0xf - mul r1, r2 - bl ov18_021E6BB8 - ldr r1, _021EBB60 ; =0x0000185E - add r4, r0, #0 - ldrb r2, [r5, r1] - mov r0, #1 - eor r0, r2 - strb r0, [r5, r1] - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E6CE8 - add r0, r4, #0 - bl ov18_021E6C90 - add r0, r5, #0 - mov r1, #0x3b - bl ov18_021F1620 - ldr r0, _021EBB5C ; =0x00001859 - ldrb r0, [r5, r0] - cmp r0, #0 - bne _021EBB30 - add r0, r5, #0 - bl ov18_021F3C88 - b _021EBB3A -_021EBB30: - add r0, r5, #0 - mov r1, #0x19 - mov r2, #0 - bl ov18_021F11C0 -_021EBB3A: - add r0, r5, #0 - bl ov18_021E78AC - add r0, r5, #0 - bl ov18_021EDEB0 - add r0, r5, #0 - mov r1, #0x13 - mov r2, #0 - bl ov18_021F2C10 - ldr r0, _021EBB64 ; =0x000008E8 - bl PlaySE -_021EBB56: - mov r0, #0x3c - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 -_021EBB5C: .word 0x00001859 -_021EBB60: .word 0x0000185E -_021EBB64: .word 0x000008E8 - thumb_func_end ov18_021EBAC4 - - thumb_func_start ov18_021EBB68 -ov18_021EBB68: ; 0x021EBB68 - push {r3, r4, r5, lr} - ldr r1, _021EBBF8 ; =0x00000868 - add r5, r0, #0 - add r3, r5, r1 - mov r1, #0 - str r1, [sp] - ldrh r2, [r3] - ldrh r3, [r3, #2] - mov r1, #0x12 - bl ov18_021F2D24 - cmp r0, #1 - bne _021EBBF4 - ldr r1, _021EBBFC ; =0x00001859 - add r0, r5, #0 - ldrb r2, [r5, r1] - mov r1, #0xf - mul r1, r2 - bl ov18_021E6BB8 - ldr r1, _021EBC00 ; =0x0000185E - add r4, r0, #0 - ldrb r2, [r5, r1] - mov r0, #1 - eor r0, r2 - strb r0, [r5, r1] - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E6CE8 - add r0, r4, #0 - bl ov18_021E6C90 - add r0, r5, #0 - mov r1, #0x3b - bl ov18_021F1620 - ldr r0, _021EBBFC ; =0x00001859 - ldrb r0, [r5, r0] - cmp r0, #0 - bne _021EBBC2 - add r0, r5, #0 - bl ov18_021F3C88 - b _021EBBCC -_021EBBC2: - add r0, r5, #0 - mov r1, #0x19 - mov r2, #0 - bl ov18_021F11C0 -_021EBBCC: - add r0, r5, #0 - bl ov18_021E78AC - add r0, r5, #0 - bl ov18_021EDEB0 - add r0, r5, #0 - mov r1, #0x13 - mov r2, #1 - bl ov18_021F2C10 - ldr r0, _021EBC04 ; =0x000008E8 - bl PlaySE - ldr r0, _021EBBF8 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 -_021EBBF4: - mov r0, #0x39 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EBBF8: .word 0x00000868 -_021EBBFC: .word 0x00001859 -_021EBC00: .word 0x0000185E -_021EBC04: .word 0x000008E8 - thumb_func_end ov18_021EBB68 - - thumb_func_start ov18_021EBC08 -ov18_021EBC08: ; 0x021EBC08 - push {r4, lr} - sub sp, #0x20 - ldr r1, _021EBD10 ; =0x00000868 - add r4, r0, #0 - ldrb r1, [r4, r1] - cmp r1, #0 - beq _021EBC1C - cmp r1, #1 - beq _021EBCD8 - b _021EBD0A -_021EBC1C: - bl ov18_021F8838 - add r1, r0, #0 - beq _021EBC30 - ldr r2, _021EBD14 ; =0x00001858 - ldr r0, [r4] - ldrb r2, [r4, r2] - ldr r0, [r0, #8] - bl sub_02092BD8 -_021EBC30: - mov r0, #0x11 - str r0, [sp] - str r0, [sp, #4] - mov r2, #0 - str r2, [sp, #8] - mov r0, #0x98 - str r0, [sp, #0xc] - str r2, [sp, #0x10] - str r0, [sp, #0x14] - mov r0, #8 - str r0, [sp, #0x18] - mov r0, #0xe - str r0, [sp, #0x1c] - ldr r1, _021EBD14 ; =0x00001858 - add r0, r4, #0 - ldrb r1, [r4, r1] - mov r3, #0x1a - bl ov18_021F7ED4 - add r0, r4, #0 - mov r1, #1 - bl ov18_021F8884 - add r0, r4, #0 - bl ov18_021EDDB4 - add r0, r4, #0 - bl ov18_021EDE64 - ldr r0, [r4, #8] - mov r1, #4 - bl sub_0201980C - add r0, r4, #0 - mov r1, #0x16 - mov r2, #0 - bl ov18_021F2A2C - add r0, r4, #0 - mov r1, #0x18 - mov r2, #0 - bl ov18_021F2A84 - ldr r0, _021EBD18 ; =0x000005EC - add r0, r4, r0 - bl ClearWindowTilemapAndScheduleTransfer - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021EBD1C ; =0x0000FFFE - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021EBD20 ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldr r0, _021EBD24 ; =0x0000085C - mov r1, #0x3e - str r1, [r4, r0] - add r0, r4, #0 - bl ov18_021E66C4 - ldr r0, _021EBD10 ; =0x00000868 - add sp, #0x20 - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - mov r0, #3 - pop {r4, pc} -_021EBCD8: - ldr r0, [r4, #8] - mov r1, #8 - bl sub_020199E4 - cmp r0, #0 - bne _021EBD0A - mov r0, #0xf - mov r1, #0x25 - bl ZeroPalettesByBitmask - add r0, r4, #0 - bl ov18_021EE388 - add r0, r4, #0 - bl ov18_021F3294 - add r0, r4, #0 - bl ov18_021F3438 - ldr r0, _021EBD10 ; =0x00000868 - mov r1, #0 - strb r1, [r4, r0] - add sp, #0x20 - mov r0, #0x15 - pop {r4, pc} -_021EBD0A: - mov r0, #0x3e - add sp, #0x20 - pop {r4, pc} - .balign 4, 0 -_021EBD10: .word 0x00000868 -_021EBD14: .word 0x00001858 -_021EBD18: .word 0x000005EC -_021EBD1C: .word 0x0000FFFE -_021EBD20: .word 0x0000FFFF -_021EBD24: .word 0x0000085C - thumb_func_end ov18_021EBC08 - - thumb_func_start ov18_021EBD28 -ov18_021EBD28: ; 0x021EBD28 - push {r4, lr} - sub sp, #0x20 - ldr r1, _021EBEB8 ; =0x00000868 - add r4, r0, #0 - ldrb r2, [r4, r1] - cmp r2, #0 - beq _021EBD44 - cmp r2, #1 - bne _021EBD3C - b _021EBE62 -_021EBD3C: - cmp r2, #2 - bne _021EBD42 - b _021EBE82 -_021EBD42: - b _021EBEB2 -_021EBD44: - bl ov18_021F8838 - add r1, r0, #0 - beq _021EBD58 - ldr r2, _021EBEBC ; =0x00001858 - ldr r0, [r4] - ldrb r2, [r4, r2] - ldr r0, [r0, #8] - bl sub_02092BD8 -_021EBD58: - mov r0, #0x11 - str r0, [sp] - str r0, [sp, #4] - mov r2, #0 - str r2, [sp, #8] - mov r0, #0x98 - str r0, [sp, #0xc] - str r2, [sp, #0x10] - str r0, [sp, #0x14] - mov r0, #8 - str r0, [sp, #0x18] - mov r0, #0xe - str r0, [sp, #0x1c] - ldr r1, _021EBEBC ; =0x00001858 - add r0, r4, #0 - ldrb r1, [r4, r1] - mov r3, #0x1a - bl ov18_021F7ED4 - add r0, r4, #0 - mov r1, #1 - bl ov18_021F8884 - add r0, r4, #0 - bl ov18_021EDDB4 - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - mov r1, #1 - str r1, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021EBEC0 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021EBEC0 ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x11 - mov r3, #4 - bl GfGfxLoader_LoadCharDataFromOpenNarc - add r0, r4, #0 - bl ov18_021E7724 - mov r1, #0xd - add r2, r1, #0 - ldr r0, [r4, #8] - sub r2, #0x31 - mov r3, #0 - bl sub_020196E8 - mov r1, #0xf - add r2, r1, #0 - ldr r0, [r4, #8] - sub r2, #0x33 - mov r3, #0 - bl sub_020196E8 - mov r1, #0xe - add r2, r1, #0 - ldr r0, [r4, #8] - sub r2, #0x12 - mov r3, #0 - bl sub_020196E8 - mov r0, #0x12 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0xd - mov r2, #2 - mov r3, #0 - bl sub_020198FC - mov r0, #0x12 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0xf - mov r2, #2 - mov r3, #0 - bl sub_020198FC - mov r0, #0x12 - str r0, [sp] - ldr r0, [r4, #8] - mov r1, #0xe - mov r2, #2 - mov r3, #0 - bl sub_020198FC - ldr r0, [r4, #8] - mov r1, #4 - bl sub_0201980C - add r0, r4, #0 - mov r1, #0x16 - mov r2, #0 - bl ov18_021F2A2C - add r0, r4, #0 - mov r1, #0x18 - mov r2, #0 - bl ov18_021F2A84 - ldr r0, _021EBEC4 ; =0x000005EC - add r0, r4, r0 - bl ClearWindowTilemapAndScheduleTransfer - mov r1, #0 - add r0, r4, #0 - add r2, r1, #0 - bl ov18_021F11C0 - add r0, r4, #0 - bl ov18_021F3AD8 - add r0, r4, #0 - bl ov18_021E66C4 - ldr r0, _021EBEB8 ; =0x00000868 - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] -_021EBE62: - ldr r0, [r4, #8] - mov r1, #0xd - bl sub_020199E4 - cmp r0, #0 - bne _021EBE78 - ldr r0, _021EBEB8 ; =0x00000868 - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - b _021EBEB2 -_021EBE78: - add r0, r4, #0 - mov r1, #0x10 - bl ov18_021F3B2C - b _021EBEB2 -_021EBE82: - mov r2, #0 - strb r2, [r4, r1] - bl ov18_021EE388 - add r0, r4, #0 - bl ov18_021F3294 - add r0, r4, #0 - bl ov18_021F3438 - add r0, r4, #0 - mov r1, #0 - bl ov18_021E67C8 - ldr r0, [r4, #8] - mov r1, #0 - bl sub_0201980C - ldr r0, _021EBEB8 ; =0x00000868 - mov r1, #1 - strh r1, [r4, r0] - add sp, #0x20 - mov r0, #9 - pop {r4, pc} -_021EBEB2: - mov r0, #0x3f - add sp, #0x20 - pop {r4, pc} - .balign 4, 0 -_021EBEB8: .word 0x00000868 -_021EBEBC: .word 0x00001858 -_021EBEC0: .word 0x00000854 -_021EBEC4: .word 0x000005EC - thumb_func_end ov18_021EBD28 - - thumb_func_start ov18_021EBEC8 -ov18_021EBEC8: ; 0x021EBEC8 - push {r3, r4, lr} - sub sp, #0xc - ldr r1, _021EBFA4 ; =0x00000868 - add r4, r0, #0 - ldrb r1, [r4, r1] - cmp r1, #0 - beq _021EBEDC - cmp r1, #1 - beq _021EBF6C - b _021EBF9C -_021EBEDC: - bl ov18_021F8838 - add r1, r0, #0 - beq _021EBEF0 - ldr r2, _021EBFA8 ; =0x00001858 - ldr r0, [r4] - ldrb r2, [r4, r2] - ldr r0, [r0, #8] - bl sub_02092BD8 -_021EBEF0: - ldr r0, [r4, #8] - mov r1, #4 - bl sub_0201980C - add r0, r4, #0 - mov r1, #0x16 - mov r2, #0 - bl ov18_021F2A2C - add r0, r4, #0 - mov r1, #0x18 - mov r2, #0 - bl ov18_021F2A84 - ldr r0, _021EBFAC ; =0x000005EC - add r0, r4, r0 - bl ClearWindowTilemapAndScheduleTransfer - mov r1, #0 - add r0, r4, #0 - add r2, r1, #0 - bl ov18_021F11C0 - add r0, r4, #0 - bl ov18_021E66C4 - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021EBFB0 ; =0x0000FFFE - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021EBFB4 ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldr r1, _021EBFB8 ; =0x0000085C - mov r0, #0x40 - str r0, [r4, r1] - add r0, r1, #0 - add r0, #0xc - ldrb r0, [r4, r0] - add r1, #0xc - add sp, #0xc - add r0, r0, #1 - strb r0, [r4, r1] - mov r0, #3 - pop {r3, r4, pc} -_021EBF6C: - ldr r0, [r4, #8] - mov r1, #8 - bl sub_020199E4 - cmp r0, #0 - bne _021EBF9C - ldr r0, _021EBFA4 ; =0x00000868 - mov r1, #0 - strb r1, [r4, r0] - add r0, r4, #0 - bl ov18_021EE388 - add r0, r4, #0 - bl ov18_021F3294 - add r0, r4, #0 - bl ov18_021F3438 - ldr r0, _021EBFBC ; =0x000018A0 - mov r1, #5 - strb r1, [r4, r0] - add sp, #0xc - mov r0, #0x42 - pop {r3, r4, pc} -_021EBF9C: - mov r0, #0x40 - add sp, #0xc - pop {r3, r4, pc} - nop -_021EBFA4: .word 0x00000868 -_021EBFA8: .word 0x00001858 -_021EBFAC: .word 0x000005EC -_021EBFB0: .word 0x0000FFFE -_021EBFB4: .word 0x0000FFFF -_021EBFB8: .word 0x0000085C -_021EBFBC: .word 0x000018A0 - thumb_func_end ov18_021EBEC8 - - thumb_func_start ov18_021EBFC0 -ov18_021EBFC0: ; 0x021EBFC0 - push {r4, lr} - sub sp, #0x10 - ldr r1, _021EC1C8 ; =0x00000868 - add r4, r0, #0 - ldrb r1, [r4, r1] - cmp r1, #0 - beq _021EBFD6 - cmp r1, #1 - bne _021EBFD4 - b _021EC1AA -_021EBFD4: - b _021EC1C2 -_021EBFD6: - mov r1, #5 - bl ov18_021E67C8 - add r0, r4, #0 - mov r1, #0 - mov r2, #9 - bl ov18_021EA350 - add r0, r4, #0 - mov r1, #2 - mov r2, #0xa - bl ov18_021EA350 - add r0, r4, #0 - mov r1, #0 - mov r2, #0xb - bl ov18_021EA350 - add r0, r4, #0 - mov r1, #2 - mov r2, #0xc - bl ov18_021EA350 - add r0, r4, #0 - bl ov18_021EFEC4 - add r0, r4, #0 - mov r1, #0x3b - bl ov18_021F1620 - add r0, r4, #0 - bl ov18_021E6CC0 - add r0, r4, #0 - mov r1, #0x12 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0x13 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0x14 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0x15 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0x19 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0x12 - mov r2, #0 - bl ov18_021F2C5C - add r0, r4, #0 - mov r1, #0x12 - mov r2, #0 - bl ov18_021F2E80 - add r0, r4, #0 - mov r1, #0x13 - mov r2, #0 - bl ov18_021F2C10 - add r0, r4, #0 - mov r1, #1 - bl ov18_021EEED0 - add r0, r4, #0 - bl ov18_021F3BA4 - mov r1, #0xbf - add r0, r4, #0 - mvn r1, r1 - bl ov18_021F3BD4 - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #9 - add r3, r2, #0 - bl sub_020196E8 - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #0xa - add r3, r2, #0 - bl sub_020196E8 - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #0xb - add r3, r2, #0 - bl sub_020196E8 - mov r2, #0 - ldr r0, [r4, #8] - mov r1, #0xc - add r3, r2, #0 - bl sub_020196E8 - ldr r0, [r4, #8] - mov r1, #9 - bl sub_0201980C - ldr r0, [r4, #8] - mov r1, #0xa - bl sub_0201980C - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021EC1CC ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #4 - mov r3, #2 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021EC1CC ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x13 - mov r3, #7 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x25 - str r0, [sp, #0xc] - ldr r0, _021EC1CC ; =0x00000854 - ldr r2, [r4, #4] - ldr r0, [r4, r0] - mov r1, #0x14 - mov r3, #7 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - add r0, r4, #0 - bl ov18_021E669C - add r0, r4, #0 - bl ov18_021F3448 - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl ov18_021F11C0 - add r0, r4, #0 - mov r1, #0 - bl ov18_021F2BB0 - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl ov18_021F118C - add r0, r4, #0 - bl ov18_021F3190 - add r0, r4, #0 - bl ov18_021E78AC - add r0, r4, #0 - bl ov18_021EDEB0 - add r0, r4, #0 - bl ov18_021E659C - ldr r0, _021EC1D0 ; =0x00001859 - ldrb r0, [r4, r0] - cmp r0, #0 - beq _021EC166 - mov r1, #0x27 - add r0, r4, #0 - mvn r1, r1 - bl ov18_021F3C54 -_021EC166: - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021EC1D4 ; =0x0000FFEF - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021EC1D8 ; =0x0000FFFF - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldr r0, _021EC1C8 ; =0x00000868 - add sp, #0x10 - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - mov r1, #0x41 - sub r0, #0xc - str r1, [r4, r0] - mov r0, #3 - pop {r4, pc} -_021EC1AA: - ldr r0, [r4, #8] - mov r1, #8 - bl sub_020199E4 - cmp r0, #0 - bne _021EC1C2 - ldr r0, _021EC1C8 ; =0x00000868 - mov r1, #0 - strb r1, [r4, r0] - add sp, #0x10 - mov r0, #0x39 - pop {r4, pc} -_021EC1C2: - mov r0, #0x41 - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 -_021EC1C8: .word 0x00000868 -_021EC1CC: .word 0x00000854 -_021EC1D0: .word 0x00001859 -_021EC1D4: .word 0x0000FFEF -_021EC1D8: .word 0x0000FFFF - thumb_func_end ov18_021EBFC0 - - thumb_func_start ov18_021EC1DC -ov18_021EC1DC: ; 0x021EC1DC - push {r4, r5, r6, lr} - add r4, r2, #0 - ldr r2, _021EC278 ; =0x00000868 - add r5, r0, #0 - add r2, r5, r2 - mov r6, #0 - strh r6, [r2] - strb r1, [r2, #2] - cmp r4, #0xff - bne _021EC202 - mov r1, #3 - bl ov18_021F3D80 - add r0, r5, #0 - mov r1, #0x18 - mov r2, #0x43 - bl ov18_021EDC28 - pop {r4, r5, r6, pc} -_021EC202: - cmp r4, #1 - bne _021EC20E - add r1, r6, #0 - bl ov18_021F3D80 - b _021EC232 -_021EC20E: - cmp r4, #2 - bne _021EC21C - mov r1, #1 - mov r6, #8 - bl ov18_021F3D80 - b _021EC232 -_021EC21C: - cmp r4, #3 - bne _021EC22A - mov r1, #2 - mov r6, #0x10 - bl ov18_021F3D80 - b _021EC232 -_021EC22A: - mov r1, #3 - mov r6, #0x18 - bl ov18_021F3D80 -_021EC232: - ldr r0, _021EC27C ; =0x0000185B - ldrb r1, [r5, r0] - cmp r1, #1 - bne _021EC248 - strb r4, [r5, r0] - add r0, r5, #0 - add r1, r6, #0 - mov r2, #0x46 - bl ov18_021EDC28 - pop {r4, r5, r6, pc} -_021EC248: - cmp r1, #2 - bne _021EC25A - strb r4, [r5, r0] - add r0, r5, #0 - add r1, r6, #0 - mov r2, #0x4e - bl ov18_021EDC28 - pop {r4, r5, r6, pc} -_021EC25A: - cmp r1, #3 - strb r4, [r5, r0] - bne _021EC26C - add r0, r5, #0 - add r1, r6, #0 - mov r2, #0x51 - bl ov18_021EDC28 - pop {r4, r5, r6, pc} -_021EC26C: - add r0, r5, #0 - add r1, r6, #0 - mov r2, #0x5b - bl ov18_021EDC28 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021EC278: .word 0x00000868 -_021EC27C: .word 0x0000185B - thumb_func_end ov18_021EC1DC - - thumb_func_start ov18_021EC280 -ov18_021EC280: ; 0x021EC280 - push {r4, lr} - add r4, r0, #0 - bl ov18_021F8838 - ldr r1, _021EC2C0 ; =0x000018A2 - mov r2, #0 - strh r0, [r4, r1] - add r0, r1, #0 - add r0, #0x27 - strb r2, [r4, r0] - add r0, r1, #0 - add r0, #0x28 - strb r2, [r4, r0] - add r1, #0x26 - add r0, r4, #0 - strb r2, [r4, r1] - bl ov18_021E8254 - add r0, r4, #0 - bl ov18_021E673C - add r0, r4, #0 - bl ov18_021E66EC - add r0, r4, #0 - bl ov18_021F3D34 - add r0, r4, #0 - bl ov18_021EC3E8 - pop {r4, pc} - nop -_021EC2C0: .word 0x000018A2 - thumb_func_end ov18_021EC280 - - thumb_func_start ov18_021EC2C4 -ov18_021EC2C4: ; 0x021EC2C4 - push {r4, r5, lr} - sub sp, #0xc - ldr r1, _021EC3D0 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrh r1, [r4] - cmp r1, #0 - beq _021EC2DA - cmp r1, #1 - beq _021EC32E - b _021EC3CA -_021EC2DA: - mov r1, #0 - add r2, r1, #0 - bl ov18_021F11C0 - add r0, r5, #0 - bl ov18_021E6714 - ldrb r0, [r4, #2] - mov r3, #0 - ldr r2, _021EC3D4 ; =0x0000F7BE - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r5, r0] - mov r1, #1 - bl PaletteData_BeginPaletteFade - ldrb r0, [r4, #2] - mov r3, #0 - ldr r2, _021EC3D8 ; =0x0000FFFF - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r5, r0] - mov r1, #0xe - bl PaletteData_BeginPaletteFade - ldrh r0, [r4] - mov r1, #0x43 - add sp, #0xc - add r0, r0, #1 - strh r0, [r4] - ldr r0, _021EC3DC ; =0x0000085C - str r1, [r5, r0] - mov r0, #3 - pop {r4, r5, pc} -_021EC32E: - ldr r0, [r5, #8] - mov r1, #0x10 - bl sub_020199E4 - cmp r0, #0 - bne _021EC3CA - mov r0, #0xf - mov r1, #0x25 - bl ZeroPalettesByBitmask - ldr r0, _021EC3E0 ; =0x0000185B - ldrb r0, [r5, r0] - cmp r0, #3 - bne _021EC358 - add r0, r5, #0 - bl ov18_021F0918 - add r0, r5, #0 - bl ov18_021F5DE0 - b _021EC39C -_021EC358: - cmp r0, #2 - bne _021EC372 - add r0, r5, #0 - bl ov18_021F0838 - add r0, r5, #0 - bl ov18_021F4A50 - add r0, r5, #0 - mov r1, #0 - bl ov18_021E5E70 - b _021EC39C -_021EC372: - cmp r0, #1 - bne _021EC396 - add r0, r5, #0 - bl ov18_021F03C0 - add r0, r5, #0 - bl ov18_021F3E08 - add r0, r5, #0 - bl ov18_021E8648 - add r0, r5, #0 - bl ov18_021E8BD4 - add r0, r5, #0 - bl ov18_021EE20C - b _021EC39C -_021EC396: - add r0, r5, #0 - bl ov18_021F08E0 -_021EC39C: - add r0, r5, #0 - bl ov18_021F3D6C - ldr r0, _021EC3D0 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r1, _021EC3E4 ; =0x000018A0 - add r0, r1, #0 - ldrb r2, [r5, r1] - sub r0, #0x45 - strb r2, [r5, r0] - ldrb r0, [r5, r1] - cmp r0, #0 - bne _021EC3C4 - add sp, #0xc - mov r0, #0x13 - pop {r4, r5, pc} -_021EC3C4: - add sp, #0xc - mov r0, #0x41 - pop {r4, r5, pc} -_021EC3CA: - mov r0, #0x43 - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 -_021EC3D0: .word 0x00000868 -_021EC3D4: .word 0x0000F7BE -_021EC3D8: .word 0x0000FFFF -_021EC3DC: .word 0x0000085C -_021EC3E0: .word 0x0000185B -_021EC3E4: .word 0x000018A0 - thumb_func_end ov18_021EC2C4 - - thumb_func_start ov18_021EC3E8 -ov18_021EC3E8: ; 0x021EC3E8 - push {r3, r4, lr} - sub sp, #0xc - ldr r1, _021EC4E4 ; =0x00000868 - add r4, r0, #0 - ldrb r1, [r4, r1] - cmp r1, #0 - beq _021EC3FC - cmp r1, #1 - beq _021EC4B6 - b _021EC4DE -_021EC3FC: - ldr r1, _021EC4E8 ; =0x000018C9 - mov r3, #0 - strb r3, [r4, r1] - sub r2, r1, #1 - strb r3, [r4, r2] - add r1, r1, #1 - strb r3, [r4, r1] - bl ov18_021E8B94 - ldr r2, _021EC4E8 ; =0x000018C9 - add r0, r4, #0 - ldrsb r1, [r4, r2] - sub r2, r2, #1 - ldrsb r2, [r4, r2] - bl ov18_021E8528 - add r0, r4, #0 - bl ov18_021F018C - add r0, r4, #0 - mov r1, #1 - bl ov18_021E67C8 - add r0, r4, #0 - bl ov18_021EE170 - add r0, r4, #0 - bl ov18_021EE1F8 - add r0, r4, #0 - bl ov18_021F4384 - add r0, r4, #0 - bl ov18_021EE314 - mov r0, #0x19 - lsl r0, r0, #8 - ldr r0, [r4, r0] - cmp r0, #1 - bne _021EC452 - add r0, r4, #0 - bl ov18_021E6794 -_021EC452: - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #1 - ldr r0, [r4, r0] - ldr r2, _021EC4EC ; =0x0000F7BE - sub r3, r1, #3 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #4 - ldr r0, [r4, r0] - ldr r2, _021EC4F0 ; =0x0000FFEF - sub r3, r1, #6 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #0xa - add r3, r1, #0 - ldr r0, [r4, r0] - ldr r2, _021EC4F4 ; =0x0000FFFF - sub r3, #0xc - bl PaletteData_BeginPaletteFade - ldr r0, _021EC4E4 ; =0x00000868 - add sp, #0xc - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - mov r1, #0x44 - sub r0, #0xc - str r1, [r4, r0] - mov r0, #3 - pop {r3, r4, pc} -_021EC4B6: - ldr r0, [r4, #8] - mov r1, #0x10 - bl sub_020199E4 - cmp r0, #0 - bne _021EC4DE - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl ov18_021F11C0 - ldr r0, _021EC4F8 ; =0x0000185B - mov r1, #1 - strb r1, [r4, r0] - ldr r0, _021EC4E4 ; =0x00000868 - mov r1, #0 - strb r1, [r4, r0] - add sp, #0xc - mov r0, #0x45 - pop {r3, r4, pc} -_021EC4DE: - mov r0, #0x44 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021EC4E4: .word 0x00000868 -_021EC4E8: .word 0x000018C9 -_021EC4EC: .word 0x0000F7BE -_021EC4F0: .word 0x0000FFEF -_021EC4F4: .word 0x0000FFFF -_021EC4F8: .word 0x0000185B - thumb_func_end ov18_021EC3E8 - - thumb_func_start ov18_021EC4FC -ov18_021EC4FC: ; 0x021EC4FC - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - bl ov18_021EE26C - add r0, r4, #0 - add r1, sp, #8 - bl ov18_021F7C14 - cmp r0, #0x10 - bls _021EC514 - b _021EC79A -_021EC514: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EC520: ; jump table - .short _021EC542 - _021EC520 - 2 ; case 0 - .short _021EC564 - _021EC520 - 2 ; case 1 - .short _021EC586 - _021EC520 - 2 ; case 2 - .short _021EC5A8 - _021EC520 - 2 ; case 3 - .short _021EC5BE - _021EC520 - 2 ; case 4 - .short _021EC5EE - _021EC520 - 2 ; case 5 - .short _021EC61E - _021EC520 - 2 ; case 6 - .short _021EC64C - _021EC520 - 2 ; case 7 - .short _021EC5EE - _021EC520 - 2 ; case 8 - .short _021EC64C - _021EC520 - 2 ; case 9 - .short _021EC67A - _021EC520 - 2 ; case 10 - .short _021EC6A8 - _021EC520 - 2 ; case 11 - .short _021EC6CE - _021EC520 - 2 ; case 12 - .short _021EC6F4 - _021EC520 - 2 ; case 13 - .short _021EC720 - _021EC520 - 2 ; case 14 - .short _021EC74C - _021EC520 - 2 ; case 15 - .short _021EC778 - _021EC520 - 2 ; case 16 -_021EC542: - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC550 - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC556 -_021EC550: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC556: - add r0, r4, #0 - mov r1, #0 - mov r2, #0x45 - bl ov18_021EDC28 - add sp, #0xc - pop {r3, r4, pc} -_021EC564: - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC572 - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC578 -_021EC572: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC578: - add r0, r4, #0 - mov r1, #0 - mov r2, #2 - bl ov18_021EC1DC - add sp, #0xc - pop {r3, r4, pc} -_021EC586: - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC594 - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC59A -_021EC594: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC59A: - add r0, r4, #0 - mov r1, #0 - mov r2, #3 - bl ov18_021EC1DC - add sp, #0xc - pop {r3, r4, pc} -_021EC5A8: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - add r0, r4, #0 - mov r1, #0 - mov r2, #0xff - bl ov18_021EC1DC - add sp, #0xc - pop {r3, r4, pc} -_021EC5BE: - mov r1, #1 - add r0, r4, #0 - mvn r1, r1 - mov r2, #2 - bl ov18_021EE0F0 - cmp r0, #1 - bne _021EC5E8 - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC5DC - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC5E2 -_021EC5DC: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC5E2: - add sp, #0xc - mov r0, #0x47 - pop {r3, r4, pc} -_021EC5E8: - add sp, #0xc - mov r0, #0x45 - pop {r3, r4, pc} -_021EC5EE: - mov r1, #0 - add r0, r4, #0 - mvn r1, r1 - mov r2, #1 - bl ov18_021EE0F0 - cmp r0, #1 - bne _021EC618 - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC60C - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC612 -_021EC60C: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC612: - add sp, #0xc - mov r0, #0x47 - pop {r3, r4, pc} -_021EC618: - add sp, #0xc - mov r0, #0x45 - pop {r3, r4, pc} -_021EC61E: - mov r1, #2 - add r0, r4, #0 - add r2, r1, #0 - bl ov18_021EE0F0 - cmp r0, #1 - bne _021EC646 - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC63A - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC640 -_021EC63A: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC640: - add sp, #0xc - mov r0, #0x48 - pop {r3, r4, pc} -_021EC646: - add sp, #0xc - mov r0, #0x45 - pop {r3, r4, pc} -_021EC64C: - mov r1, #1 - add r0, r4, #0 - add r2, r1, #0 - bl ov18_021EE0F0 - cmp r0, #1 - bne _021EC674 - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC668 - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC66E -_021EC668: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC66E: - add sp, #0xc - mov r0, #0x48 - pop {r3, r4, pc} -_021EC674: - add sp, #0xc - mov r0, #0x45 - pop {r3, r4, pc} -_021EC67A: - add r0, sp, #4 - add r1, sp, #0 - bl System_GetTouchHeldCoords - ldr r1, [sp, #4] - ldr r2, [sp] - add r0, r4, #0 - bl ov18_021F62B4 - cmp r0, #1 - bne _021EC696 - add sp, #0xc - mov r0, #0x49 - pop {r3, r4, pc} -_021EC696: - ldr r0, _021EC7A8 ; =0x00000868 - add r1, r4, r0 - ldr r0, [sp, #4] - strh r0, [r1] - ldr r0, [sp] - add sp, #0xc - strh r0, [r1, #2] - mov r0, #0x4a - pop {r3, r4, pc} -_021EC6A8: - add r0, r4, #0 - mov r1, #0 - bl ov18_021EE140 - cmp r0, #1 - bne _021EC79A - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC6C2 - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC6C8 -_021EC6C2: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC6C8: - add sp, #0xc - mov r0, #0x4b - pop {r3, r4, pc} -_021EC6CE: - add r0, r4, #0 - mov r1, #1 - bl ov18_021EE140 - cmp r0, #1 - bne _021EC79A - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC6E8 - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC6EE -_021EC6E8: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC6EE: - add sp, #0xc - mov r0, #0x4b - pop {r3, r4, pc} -_021EC6F4: - add r0, r4, #0 - mov r1, #0 - bl ov18_021EE124 - cmp r0, #1 - bne _021EC79A - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC70E - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC714 -_021EC70E: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC714: - add r0, r4, #0 - bl ov18_021F4080 - add sp, #0xc - mov r0, #0x4b - pop {r3, r4, pc} -_021EC720: - add r0, r4, #0 - mov r1, #1 - bl ov18_021EE124 - cmp r0, #1 - bne _021EC79A - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC73A - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC740 -_021EC73A: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC740: - add r0, r4, #0 - bl ov18_021F4080 - add sp, #0xc - mov r0, #0x4b - pop {r3, r4, pc} -_021EC74C: - add r0, r4, #0 - mov r1, #2 - bl ov18_021EE124 - cmp r0, #1 - bne _021EC79A - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC766 - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC76C -_021EC766: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC76C: - add r0, r4, #0 - bl ov18_021F4080 - add sp, #0xc - mov r0, #0x4b - pop {r3, r4, pc} -_021EC778: - ldr r0, [sp, #8] - cmp r0, #1 - bne _021EC786 - ldr r0, _021EC7A0 ; =0x000008E9 - bl PlaySE - b _021EC78C -_021EC786: - ldr r0, _021EC7A4 ; =0x000008E8 - bl PlaySE -_021EC78C: - add r0, r4, #0 - mov r1, #0 - mov r2, #4 - bl ov18_021EC1DC - add sp, #0xc - pop {r3, r4, pc} -_021EC79A: - mov r0, #0x45 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021EC7A0: .word 0x000008E9 -_021EC7A4: .word 0x000008E8 -_021EC7A8: .word 0x00000868 - thumb_func_end ov18_021EC4FC - - thumb_func_start ov18_021EC7AC -ov18_021EC7AC: ; 0x021EC7AC - push {r4, r5, lr} - sub sp, #0xc - ldr r1, _021EC874 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrh r2, [r4] - cmp r2, #0 - beq _021EC7C2 - cmp r2, #1 - beq _021EC828 - b _021EC86E -_021EC7C2: - ldrb r0, [r4, #2] - sub r1, #0x18 - ldr r2, _021EC878 ; =0x0000F7BE - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - ldr r0, [r5, r1] - mov r1, #1 - sub r3, r1, #3 - bl PaletteData_BeginPaletteFade - ldrb r0, [r4, #2] - mov r1, #4 - ldr r2, _021EC87C ; =0x0000FFEF - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r5, r0] - sub r3, r1, #6 - bl PaletteData_BeginPaletteFade - ldrb r0, [r4, #2] - mov r1, #0xa - add r3, r1, #0 - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021EC880 ; =0x0000FFFF - sub r3, #0xc - bl PaletteData_BeginPaletteFade - ldrh r0, [r4] - mov r1, #0x46 - add sp, #0xc - add r0, r0, #1 - strh r0, [r4] - ldr r0, _021EC884 ; =0x0000085C - str r1, [r5, r0] - mov r0, #3 - pop {r4, r5, pc} -_021EC828: - bl ov18_021F03C0 - add r0, r5, #0 - bl ov18_021F3E08 - add r0, r5, #0 - bl ov18_021E8648 - add r0, r5, #0 - bl ov18_021E8BD4 - add r0, r5, #0 - bl ov18_021EE20C - ldr r0, _021EC874 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, _021EC888 ; =0x0000185B - ldrb r0, [r5, r0] - cmp r0, #2 - bne _021EC85E - add sp, #0xc - mov r0, #0x4c - pop {r4, r5, pc} -_021EC85E: - cmp r0, #3 - bne _021EC868 - add sp, #0xc - mov r0, #0x4f - pop {r4, r5, pc} -_021EC868: - add sp, #0xc - mov r0, #0x59 - pop {r4, r5, pc} -_021EC86E: - mov r0, #0x46 - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 -_021EC874: .word 0x00000868 -_021EC878: .word 0x0000F7BE -_021EC87C: .word 0x0000FFEF -_021EC880: .word 0x0000FFFF -_021EC884: .word 0x0000085C -_021EC888: .word 0x0000185B - thumb_func_end ov18_021EC7AC - - thumb_func_start ov18_021EC88C -ov18_021EC88C: ; 0x021EC88C - push {r3, r4, r5, r6, r7, lr} - ldr r1, _021EC954 ; =0x00000868 - add r5, r0, #0 - add r6, r5, r1 - ldrb r1, [r6] - cmp r1, #0 - beq _021EC8A0 - cmp r1, #1 - beq _021EC8F0 - b _021EC950 -_021EC8A0: - ldr r1, _021EC958 ; =0x000018CA - ldrsb r2, [r5, r1] - sub r2, r2, #1 - strb r2, [r5, r1] - mov r1, #6 - add r2, r1, #0 - bl ov18_021F118C - add r0, r5, #0 - mov r1, #1 - bl ov18_021F0504 - mov r4, #0 - mov r7, #3 -_021EC8BC: - str r7, [sp] - add r1, r4, #0 - ldr r0, [r5, #8] - add r1, #0x11 - mov r2, #0 - mov r3, #1 - bl sub_020198FC - add r4, r4, #1 - cmp r4, #6 - blo _021EC8BC - ldr r1, _021EC958 ; =0x000018CA - add r0, r5, #0 - ldrsb r1, [r5, r1] - bl ov18_021F64F4 - add r2, r0, #0 - add r0, r5, #0 - mov r1, #5 - mov r3, #3 - bl ov18_021F6540 - strb r0, [r6, #3] - ldrb r0, [r6] - add r0, r0, #1 - strb r0, [r6] -_021EC8F0: - ldrb r2, [r6, #3] - add r0, r5, #0 - mov r1, #5 - neg r2, r2 - bl ov18_021F6578 - ldrb r0, [r6, #1] - add r0, r0, #1 - strb r0, [r6, #1] - ldrb r0, [r6, #1] - cmp r0, #3 - bne _021EC950 - mov r0, #0 - strb r0, [r6] - strb r0, [r6, #1] - ldrb r0, [r6, #2] - sub r0, r0, #1 - strb r0, [r6, #2] - ldrb r0, [r6, #2] - cmp r0, #0 - bne _021EC950 - add r0, r5, #0 - bl ov18_021F65EC - ldr r2, _021EC958 ; =0x000018CA - add r0, r5, #0 - ldrsb r1, [r5, r2] - add r2, #0x36 - ldr r2, [r5, r2] - mov r3, #6 - lsl r2, r2, #0x18 - asr r2, r2, #0x18 - bl ov18_021F619C - add r0, r5, #0 - bl ov18_021F4384 - add r0, r5, #0 - bl ov18_021F463C - ldr r0, _021EC954 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #0x45 - pop {r3, r4, r5, r6, r7, pc} -_021EC950: - mov r0, #0x47 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021EC954: .word 0x00000868 -_021EC958: .word 0x000018CA - thumb_func_end ov18_021EC88C - - thumb_func_start ov18_021EC95C -ov18_021EC95C: ; 0x021EC95C - push {r3, r4, r5, r6, r7, lr} - ldr r1, _021ECA24 ; =0x00000868 - add r5, r0, #0 - add r6, r5, r1 - ldrb r1, [r6] - cmp r1, #0 - beq _021EC970 - cmp r1, #1 - beq _021EC9C2 - b _021ECA20 -_021EC970: - ldr r1, _021ECA28 ; =0x000018CA - ldrsb r2, [r5, r1] - add r2, r2, #1 - strb r2, [r5, r1] - mov r1, #7 - mov r2, #9 - bl ov18_021F118C - mov r1, #0 - add r0, r5, #0 - mvn r1, r1 - bl ov18_021F0504 - mov r4, #0 - mov r7, #3 -_021EC98E: - str r7, [sp] - add r1, r4, #0 - mov r2, #0 - ldr r0, [r5, #8] - add r1, #0x11 - sub r3, r2, #1 - bl sub_020198FC - add r4, r4, #1 - cmp r4, #6 - blo _021EC98E - ldr r1, _021ECA28 ; =0x000018CA - add r0, r5, #0 - ldrsb r1, [r5, r1] - bl ov18_021F64F4 - add r2, r0, #0 - add r0, r5, #0 - mov r1, #5 - mov r3, #3 - bl ov18_021F6540 - strb r0, [r6, #3] - ldrb r0, [r6] - add r0, r0, #1 - strb r0, [r6] -_021EC9C2: - ldrb r2, [r6, #3] - add r0, r5, #0 - mov r1, #5 - bl ov18_021F6578 - ldrb r0, [r6, #1] - add r0, r0, #1 - strb r0, [r6, #1] - ldrb r0, [r6, #1] - cmp r0, #3 - bne _021ECA20 - mov r0, #0 - strb r0, [r6] - strb r0, [r6, #1] - ldrb r0, [r6, #2] - sub r0, r0, #1 - strb r0, [r6, #2] - ldrb r0, [r6, #2] - cmp r0, #0 - bne _021ECA20 - add r0, r5, #0 - bl ov18_021F65EC - ldr r2, _021ECA28 ; =0x000018CA - add r0, r5, #0 - ldrsb r1, [r5, r2] - add r2, #0x36 - ldr r2, [r5, r2] - mov r3, #6 - lsl r2, r2, #0x18 - asr r2, r2, #0x18 - bl ov18_021F619C - add r0, r5, #0 - bl ov18_021F4384 - add r0, r5, #0 - bl ov18_021F463C - ldr r0, _021ECA24 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #0x45 - pop {r3, r4, r5, r6, r7, pc} -_021ECA20: - mov r0, #0x48 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021ECA24: .word 0x00000868 -_021ECA28: .word 0x000018CA - thumb_func_end ov18_021EC95C - - thumb_func_start ov18_021ECA2C -ov18_021ECA2C: ; 0x021ECA2C - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - bl ov18_021EE26C - add r0, sp, #4 - add r1, sp, #0 - bl System_GetTouchHeldCoords - cmp r0, #0 - bne _021ECA48 - add sp, #8 - mov r0, #0x45 - pop {r4, pc} -_021ECA48: - ldr r1, [sp, #4] - ldr r2, [sp] - add r0, r4, #0 - bl ov18_021F63DC - cmp r0, #1 - bne _021ECA82 - ldr r2, _021ECA88 ; =0x000018CA - add r0, r4, #0 - ldrsb r1, [r4, r2] - add r2, #0x36 - ldr r2, [r4, r2] - mov r3, #6 - lsl r2, r2, #0x18 - asr r2, r2, #0x18 - bl ov18_021F619C - add r0, r4, #0 - bl ov18_021F4384 - add r0, r4, #0 - bl ov18_021F463C - add r0, r4, #0 - bl ov18_021F0428 - ldr r0, _021ECA8C ; =0x000008E8 - bl PlaySE -_021ECA82: - mov r0, #0x49 - add sp, #8 - pop {r4, pc} - .balign 4, 0 -_021ECA88: .word 0x000018CA -_021ECA8C: .word 0x000008E8 - thumb_func_end ov18_021ECA2C - - thumb_func_start ov18_021ECA90 -ov18_021ECA90: ; 0x021ECA90 - push {r4, lr} - ldr r1, _021ECAE0 ; =0x00000868 - add r4, r0, #0 - add r2, r4, r1 - ldrh r1, [r2] - ldrh r2, [r2, #2] - bl ov18_021F63DC - cmp r0, #1 - bne _021ECADC - ldr r2, _021ECAE4 ; =0x000018CA - add r0, r4, #0 - ldrsb r1, [r4, r2] - add r2, #0x36 - ldr r2, [r4, r2] - mov r3, #6 - lsl r2, r2, #0x18 - asr r2, r2, #0x18 - bl ov18_021F619C - add r0, r4, #0 - bl ov18_021F4384 - add r0, r4, #0 - bl ov18_021F463C - add r0, r4, #0 - bl ov18_021F0428 - ldr r0, _021ECAE8 ; =0x000008E8 - bl PlaySE - ldr r0, _021ECAE0 ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 -_021ECADC: - mov r0, #0x45 - pop {r4, pc} - .balign 4, 0 -_021ECAE0: .word 0x00000868 -_021ECAE4: .word 0x000018CA -_021ECAE8: .word 0x000008E8 - thumb_func_end ov18_021ECA90 - - thumb_func_start ov18_021ECAEC -ov18_021ECAEC: ; 0x021ECAEC - push {r3, r4, r5, lr} - ldr r1, _021ECBF8 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - bl ov18_021EE21C - ldr r1, _021ECBF8 ; =0x00000868 - ldrh r1, [r5, r1] - cmp r1, #4 - bhi _021ECBF2 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021ECB0C: ; jump table - .short _021ECB16 - _021ECB0C - 2 ; case 0 - .short _021ECB38 - _021ECB0C - 2 ; case 1 - .short _021ECB5E - _021ECB0C - 2 ; case 2 - .short _021ECB92 - _021ECB0C - 2 ; case 3 - .short _021ECBBC - _021ECB0C - 2 ; case 4 -_021ECB16: - add r0, r5, #0 - bl ov18_021E6794 - add r0, r5, #0 - bl ov18_021E67B0 - add r0, r5, #0 - mov r1, #2 - mov r2, #0 - bl ov18_021F11C0 - add r0, r5, #0 - bl ov18_021F4620 - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] -_021ECB38: - ldrh r0, [r4, #2] - add r0, r0, #2 - strh r0, [r4, #2] - ldrh r1, [r4, #2] - mov r0, #0x1f - sub r0, r0, r1 - lsl r0, r0, #0x18 - lsl r1, r1, #0x18 - lsr r0, r0, #0x18 - lsr r1, r1, #0x18 - bl ov18_021E618C - ldrh r0, [r4, #2] - cmp r0, #0x10 - bne _021ECBF2 - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] - b _021ECBF2 -_021ECB5E: - add r0, r5, #0 - bl ov18_021E8648 - ldr r2, _021ECBFC ; =0x000018C9 - add r0, r5, #0 - ldrsb r1, [r5, r2] - sub r2, r2, #1 - ldrsb r2, [r5, r2] - bl ov18_021E8528 - add r0, r5, #0 - bl ov18_021F40A0 - add r0, r5, #0 - bl ov18_021F03E0 - add r0, r5, #0 - bl ov18_021F0428 - add r0, r5, #0 - bl ov18_021EE170 - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] - b _021ECBF2 -_021ECB92: - ldrh r0, [r4, #2] - sub r0, r0, #2 - strh r0, [r4, #2] - ldrh r1, [r4, #2] - mov r0, #0x1f - sub r0, r0, r1 - lsl r0, r0, #0x18 - lsl r1, r1, #0x18 - lsr r0, r0, #0x18 - lsr r1, r1, #0x18 - bl ov18_021E618C - ldrh r0, [r4, #2] - cmp r0, #0 - bne _021ECBF2 - bl ov18_021E6174 - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] - b _021ECBF2 -_021ECBBC: - cmp r0, #0 - bne _021ECBF2 - add r0, r5, #0 - bl ov18_021F4134 - add r0, r5, #0 - bl ov18_021F4384 - add r0, r5, #0 - bl ov18_021EE314 - mov r0, #0x19 - lsl r0, r0, #8 - ldr r0, [r5, r0] - cmp r0, #1 - bne _021ECBE2 - add r0, r5, #0 - bl ov18_021E6794 -_021ECBE2: - ldr r0, _021ECBF8 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #0x45 - pop {r3, r4, r5, pc} -_021ECBF2: - mov r0, #0x4b - pop {r3, r4, r5, pc} - nop -_021ECBF8: .word 0x00000868 -_021ECBFC: .word 0x000018C9 - thumb_func_end ov18_021ECAEC - - thumb_func_start ov18_021ECC00 -ov18_021ECC00: ; 0x021ECC00 - push {r3, r4, lr} - sub sp, #0xc - ldr r1, _021ECC9C ; =0x00000868 - add r4, r0, #0 - ldrb r2, [r4, r1] - cmp r2, #0 - beq _021ECC14 - cmp r2, #1 - beq _021ECC86 - b _021ECC96 -_021ECC14: - mov r1, #1 - bl ov18_021E5E70 - add r0, r4, #0 - mov r1, #2 - bl ov18_021E67C8 - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #1 - ldr r0, [r4, r0] - ldr r2, _021ECCA0 ; =0x0000F7BE - sub r3, r1, #3 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #4 - ldr r0, [r4, r0] - ldr r2, _021ECCA4 ; =0x0000FFEF - sub r3, r1, #6 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #0xa - add r3, r1, #0 - ldr r0, [r4, r0] - ldr r2, _021ECCA8 ; =0x0000FFFF - sub r3, #0xc - bl PaletteData_BeginPaletteFade - ldr r0, _021ECC9C ; =0x00000868 - add sp, #0xc - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - mov r1, #0x4c - sub r0, #0xc - str r1, [r4, r0] - mov r0, #3 - pop {r3, r4, pc} -_021ECC86: - ldr r0, _021ECCAC ; =0x0000185B - mov r2, #2 - strb r2, [r4, r0] - mov r0, #0 - strb r0, [r4, r1] - add sp, #0xc - mov r0, #0x4d - pop {r3, r4, pc} -_021ECC96: - mov r0, #0x4c - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021ECC9C: .word 0x00000868 -_021ECCA0: .word 0x0000F7BE -_021ECCA4: .word 0x0000FFEF -_021ECCA8: .word 0x0000FFFF -_021ECCAC: .word 0x0000185B - thumb_func_end ov18_021ECC00 - - thumb_func_start ov18_021ECCB0 -ov18_021ECCB0: ; 0x021ECCB0 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - bl ov18_021EE068 - add r0, r4, #0 - add r1, sp, #0 - bl ov18_021F7D00 - cmp r0, #3 - bhi _021ECD6E - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021ECCD2: ; jump table - .short _021ECCDA - _021ECCD2 - 2 ; case 0 - .short _021ECD02 - _021ECCD2 - 2 ; case 1 - .short _021ECD2A - _021ECCD2 - 2 ; case 2 - .short _021ECD52 - _021ECCD2 - 2 ; case 3 -_021ECCDA: - ldr r0, [sp] - cmp r0, #1 - bne _021ECCE8 - ldr r0, _021ECDBC ; =0x000008E9 - bl PlaySE - b _021ECCEE -_021ECCE8: - ldr r0, _021ECDC0 ; =0x000008E8 - bl PlaySE -_021ECCEE: - add r0, r4, #0 - bl ov18_021EE0CC - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl ov18_021EC1DC - add sp, #4 - pop {r3, r4, pc} -_021ECD02: - ldr r0, [sp] - cmp r0, #1 - bne _021ECD10 - ldr r0, _021ECDBC ; =0x000008E9 - bl PlaySE - b _021ECD16 -_021ECD10: - ldr r0, _021ECDC0 ; =0x000008E8 - bl PlaySE -_021ECD16: - add r0, r4, #0 - bl ov18_021EE0CC - add r0, r4, #0 - mov r1, #0 - mov r2, #2 - bl ov18_021EC1DC - add sp, #4 - pop {r3, r4, pc} -_021ECD2A: - ldr r0, [sp] - cmp r0, #1 - bne _021ECD38 - ldr r0, _021ECDBC ; =0x000008E9 - bl PlaySE - b _021ECD3E -_021ECD38: - ldr r0, _021ECDC0 ; =0x000008E8 - bl PlaySE -_021ECD3E: - add r0, r4, #0 - bl ov18_021EE0CC - add r0, r4, #0 - mov r1, #0 - mov r2, #3 - bl ov18_021EC1DC - add sp, #4 - pop {r3, r4, pc} -_021ECD52: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - add r0, r4, #0 - bl ov18_021EE0CC - add r0, r4, #0 - mov r1, #0 - mov r2, #0xff - bl ov18_021EC1DC - add sp, #4 - pop {r3, r4, pc} -_021ECD6E: - ldr r0, _021ECDC4 ; =gSystem - ldr r1, [r0, #0x48] - mov r0, #1 - tst r0, r1 - beq _021ECD92 - ldr r0, _021ECDC0 ; =0x000008E8 - bl PlaySE - add r0, r4, #0 - bl ov18_021EE0CC - add r0, r4, #0 - mov r1, #0 - mov r2, #2 - bl ov18_021EC1DC - add sp, #4 - pop {r3, r4, pc} -_021ECD92: - bl System_GetTouchNew - cmp r0, #1 - bne _021ECDB4 - ldr r0, _021ECDBC ; =0x000008E9 - bl PlaySE - add r0, r4, #0 - bl ov18_021EE0CC - add r0, r4, #0 - mov r1, #0 - mov r2, #2 - bl ov18_021EC1DC - add sp, #4 - pop {r3, r4, pc} -_021ECDB4: - mov r0, #0x4d - add sp, #4 - pop {r3, r4, pc} - nop -_021ECDBC: .word 0x000008E9 -_021ECDC0: .word 0x000008E8 -_021ECDC4: .word gSystem - thumb_func_end ov18_021ECCB0 - - thumb_func_start ov18_021ECDC8 -ov18_021ECDC8: ; 0x021ECDC8 - push {r4, r5, lr} - sub sp, #0xc - ldr r1, _021ECE88 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrh r2, [r4] - cmp r2, #0 - beq _021ECDDE - cmp r2, #1 - beq _021ECE44 - b _021ECE80 -_021ECDDE: - ldrb r0, [r4, #2] - sub r1, #0x18 - ldr r2, _021ECE8C ; =0x0000F7BE - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - ldr r0, [r5, r1] - mov r1, #1 - sub r3, r1, #3 - bl PaletteData_BeginPaletteFade - ldrb r0, [r4, #2] - mov r1, #4 - ldr r2, _021ECE90 ; =0x0000FFEF - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r5, r0] - sub r3, r1, #6 - bl PaletteData_BeginPaletteFade - ldrb r0, [r4, #2] - mov r1, #0xa - add r3, r1, #0 - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021ECE94 ; =0x0000FFFF - sub r3, #0xc - bl PaletteData_BeginPaletteFade - ldrh r0, [r4] - mov r1, #0x4e - add sp, #0xc - add r0, r0, #1 - strh r0, [r4] - ldr r0, _021ECE98 ; =0x0000085C - str r1, [r5, r0] - mov r0, #3 - pop {r4, r5, pc} -_021ECE44: - bl ov18_021F0838 - add r0, r5, #0 - bl ov18_021F4A50 - add r0, r5, #0 - mov r1, #0 - bl ov18_021E5E70 - ldr r0, _021ECE88 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, _021ECE9C ; =0x0000185B - ldrb r0, [r5, r0] - cmp r0, #1 - bne _021ECE70 - add sp, #0xc - mov r0, #0x44 - pop {r4, r5, pc} -_021ECE70: - cmp r0, #2 - bne _021ECE7A - add sp, #0xc - mov r0, #0x4c - pop {r4, r5, pc} -_021ECE7A: - add sp, #0xc - mov r0, #0x4f - pop {r4, r5, pc} -_021ECE80: - mov r0, #0x4e - add sp, #0xc - pop {r4, r5, pc} - nop -_021ECE88: .word 0x00000868 -_021ECE8C: .word 0x0000F7BE -_021ECE90: .word 0x0000FFEF -_021ECE94: .word 0x0000FFFF -_021ECE98: .word 0x0000085C -_021ECE9C: .word 0x0000185B - thumb_func_end ov18_021ECDC8 - - thumb_func_start ov18_021ECEA0 -ov18_021ECEA0: ; 0x021ECEA0 - push {r3, r4, lr} - sub sp, #0xc - ldr r1, _021ECF40 ; =0x00000868 - add r4, r0, #0 - ldrb r2, [r4, r1] - cmp r2, #0 - beq _021ECEB4 - cmp r2, #1 - beq _021ECF2A - b _021ECF3A -_021ECEB4: - ldr r1, _021ECF44 ; =0x000018C5 - mov r2, #0 - strb r2, [r4, r1] - bl ov18_021F01D4 - add r0, r4, #0 - mov r1, #3 - bl ov18_021E67C8 - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #1 - ldr r0, [r4, r0] - ldr r2, _021ECF48 ; =0x0000F7BE - sub r3, r1, #3 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #4 - ldr r0, [r4, r0] - ldr r2, _021ECF4C ; =0x0000FFEF - sub r3, r1, #6 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #0xa - add r3, r1, #0 - ldr r0, [r4, r0] - ldr r2, _021ECF50 ; =0x0000FFFF - sub r3, #0xc - bl PaletteData_BeginPaletteFade - ldr r0, _021ECF40 ; =0x00000868 - add sp, #0xc - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - mov r1, #0x4f - sub r0, #0xc - str r1, [r4, r0] - mov r0, #3 - pop {r3, r4, pc} -_021ECF2A: - ldr r0, _021ECF54 ; =0x0000185B - mov r2, #3 - strb r2, [r4, r0] - mov r0, #0 - strb r0, [r4, r1] - add sp, #0xc - mov r0, #0x50 - pop {r3, r4, pc} -_021ECF3A: - mov r0, #0x4f - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021ECF40: .word 0x00000868 -_021ECF44: .word 0x000018C5 -_021ECF48: .word 0x0000F7BE -_021ECF4C: .word 0x0000FFEF -_021ECF50: .word 0x0000FFFF -_021ECF54: .word 0x0000185B - thumb_func_end ov18_021ECEA0 - - thumb_func_start ov18_021ECF58 -ov18_021ECF58: ; 0x021ECF58 - push {r4, lr} - sub sp, #0x18 - add r1, sp, #0x14 - add r4, r0, #0 - bl ov18_021F7D30 - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - beq _021ECF70 - cmp r0, #0xc - bls _021ECF72 -_021ECF70: - b _021ED144 -_021ECF72: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021ECF7E: ; jump table - .short _021ECF98 - _021ECF7E - 2 ; case 0 - .short _021ECFBA - _021ECF7E - 2 ; case 1 - .short _021ECFDC - _021ECF7E - 2 ; case 2 - .short _021ECFFE - _021ECF7E - 2 ; case 3 - .short _021ED014 - _021ECF7E - 2 ; case 4 - .short _021ED042 - _021ECF7E - 2 ; case 5 - .short _021ED06E - _021ECF7E - 2 ; case 6 - .short _021ED09C - _021ECF7E - 2 ; case 7 - .short _021ED042 - _021ECF7E - 2 ; case 8 - .short _021ED09C - _021ECF7E - 2 ; case 9 - .short _021ED0CA - _021ECF7E - 2 ; case 10 - .short _021ED0F8 - _021ECF7E - 2 ; case 11 - .short _021ED122 - _021ECF7E - 2 ; case 12 -_021ECF98: - ldr r0, [sp, #0x14] - cmp r0, #1 - bne _021ECFA6 - ldr r0, _021ED14C ; =0x000008E9 - bl PlaySE - b _021ECFAC -_021ECFA6: - ldr r0, _021ED150 ; =0x000008E8 - bl PlaySE -_021ECFAC: - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl ov18_021EC1DC - add sp, #0x18 - pop {r4, pc} -_021ECFBA: - ldr r0, [sp, #0x14] - cmp r0, #1 - bne _021ECFC8 - ldr r0, _021ED14C ; =0x000008E9 - bl PlaySE - b _021ECFCE -_021ECFC8: - ldr r0, _021ED150 ; =0x000008E8 - bl PlaySE -_021ECFCE: - add r0, r4, #0 - mov r1, #0 - mov r2, #2 - bl ov18_021EC1DC - add sp, #0x18 - pop {r4, pc} -_021ECFDC: - ldr r0, [sp, #0x14] - cmp r0, #1 - bne _021ECFEA - ldr r0, _021ED14C ; =0x000008E9 - bl PlaySE - b _021ECFF0 -_021ECFEA: - ldr r0, _021ED150 ; =0x000008E8 - bl PlaySE -_021ECFF0: - add r0, r4, #0 - mov r1, #0x10 - mov r2, #0x50 - bl ov18_021EDC28 - add sp, #0x18 - pop {r4, pc} -_021ECFFE: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - add r0, r4, #0 - mov r1, #0 - mov r2, #0xff - bl ov18_021EC1DC - add sp, #0x18 - pop {r4, pc} -_021ED014: - add r0, r4, #0 - sub r1, r1, #1 - mov r2, #2 - bl ov18_021EDF14 - cmp r0, #1 - bne _021ED03C - ldr r0, [sp, #0x14] - cmp r0, #1 - bne _021ED030 - ldr r0, _021ED14C ; =0x000008E9 - bl PlaySE - b _021ED036 -_021ED030: - ldr r0, _021ED150 ; =0x000008E8 - bl PlaySE -_021ED036: - add sp, #0x18 - mov r0, #0x52 - pop {r4, pc} -_021ED03C: - add sp, #0x18 - mov r0, #0x50 - pop {r4, pc} -_021ED042: - add r0, r4, #0 - mov r2, #1 - bl ov18_021EDF14 - cmp r0, #1 - bne _021ED068 - ldr r0, [sp, #0x14] - cmp r0, #1 - bne _021ED05C - ldr r0, _021ED14C ; =0x000008E9 - bl PlaySE - b _021ED062 -_021ED05C: - ldr r0, _021ED150 ; =0x000008E8 - bl PlaySE -_021ED062: - add sp, #0x18 - mov r0, #0x52 - pop {r4, pc} -_021ED068: - add sp, #0x18 - mov r0, #0x50 - pop {r4, pc} -_021ED06E: - mov r1, #2 - add r0, r4, #0 - add r2, r1, #0 - bl ov18_021EDF14 - cmp r0, #1 - bne _021ED096 - ldr r0, [sp, #0x14] - cmp r0, #1 - bne _021ED08A - ldr r0, _021ED14C ; =0x000008E9 - bl PlaySE - b _021ED090 -_021ED08A: - ldr r0, _021ED150 ; =0x000008E8 - bl PlaySE -_021ED090: - add sp, #0x18 - mov r0, #0x53 - pop {r4, pc} -_021ED096: - add sp, #0x18 - mov r0, #0x50 - pop {r4, pc} -_021ED09C: - mov r1, #1 - add r0, r4, #0 - add r2, r1, #0 - bl ov18_021EDF14 - cmp r0, #1 - bne _021ED0C4 - ldr r0, [sp, #0x14] - cmp r0, #1 - bne _021ED0B8 - ldr r0, _021ED14C ; =0x000008E9 - bl PlaySE - b _021ED0BE -_021ED0B8: - ldr r0, _021ED150 ; =0x000008E8 - bl PlaySE -_021ED0BE: - add sp, #0x18 - mov r0, #0x53 - pop {r4, pc} -_021ED0C4: - add sp, #0x18 - mov r0, #0x50 - pop {r4, pc} -_021ED0CA: - add r0, sp, #0x10 - add r1, sp, #0xc - bl System_GetTouchHeldCoords - ldr r1, [sp, #0x10] - ldr r2, [sp, #0xc] - add r0, r4, #0 - bl ov18_021F6258 - cmp r0, #1 - bne _021ED0E6 - add sp, #0x18 - mov r0, #0x54 - pop {r4, pc} -_021ED0E6: - ldr r0, _021ED154 ; =0x00000868 - add r1, r4, r0 - ldr r0, [sp, #0x10] - strh r0, [r1] - ldr r0, [sp, #0xc] - add sp, #0x18 - strh r0, [r1, #2] - mov r0, #0x55 - pop {r4, pc} -_021ED0F8: - ldr r0, _021ED158 ; =0x000018C4 - ldrsb r0, [r4, r0] - cmp r0, #1 - beq _021ED144 - ldr r0, _021ED14C ; =0x000008E9 - bl PlaySE - mov r0, #0xf - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #0x56 - mov r2, #0x11 - str r0, [sp, #8] - add r0, r4, #0 - mov r1, #0 - add r3, r2, #0 - bl ov18_021EDC50 - add sp, #0x18 - pop {r4, pc} -_021ED122: - ldr r0, [sp, #0x14] - cmp r0, #1 - bne _021ED130 - ldr r0, _021ED14C ; =0x000008E9 - bl PlaySE - b _021ED136 -_021ED130: - ldr r0, _021ED150 ; =0x000008E8 - bl PlaySE -_021ED136: - add r0, r4, #0 - mov r1, #0 - mov r2, #4 - bl ov18_021EC1DC - add sp, #0x18 - pop {r4, pc} -_021ED144: - mov r0, #0x50 - add sp, #0x18 - pop {r4, pc} - nop -_021ED14C: .word 0x000008E9 -_021ED150: .word 0x000008E8 -_021ED154: .word 0x00000868 -_021ED158: .word 0x000018C4 - thumb_func_end ov18_021ECF58 - - thumb_func_start ov18_021ED15C -ov18_021ED15C: ; 0x021ED15C - push {r4, r5, lr} - sub sp, #0xc - ldr r1, _021ED20C ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrh r2, [r4] - cmp r2, #0 - beq _021ED172 - cmp r2, #1 - beq _021ED1D8 - b _021ED204 -_021ED172: - ldrb r0, [r4, #2] - sub r1, #0x18 - ldr r2, _021ED210 ; =0x0000F7BE - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - ldr r0, [r5, r1] - mov r1, #1 - sub r3, r1, #3 - bl PaletteData_BeginPaletteFade - ldrb r0, [r4, #2] - mov r1, #4 - ldr r2, _021ED214 ; =0x0000FFEF - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r5, r0] - sub r3, r1, #6 - bl PaletteData_BeginPaletteFade - ldrb r0, [r4, #2] - mov r1, #0xa - add r3, r1, #0 - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021ED218 ; =0x0000FFFF - sub r3, #0xc - bl PaletteData_BeginPaletteFade - ldrh r0, [r4] - mov r1, #0x51 - add sp, #0xc - add r0, r0, #1 - strh r0, [r4] - ldr r0, _021ED21C ; =0x0000085C - str r1, [r5, r0] - mov r0, #3 - pop {r4, r5, pc} -_021ED1D8: - bl ov18_021F0918 - add r0, r5, #0 - bl ov18_021F5DE0 - mov r0, #0 - strh r0, [r4] - ldr r0, _021ED220 ; =0x0000185B - ldrb r0, [r5, r0] - cmp r0, #1 - bne _021ED1F4 - add sp, #0xc - mov r0, #0x44 - pop {r4, r5, pc} -_021ED1F4: - cmp r0, #2 - bne _021ED1FE - add sp, #0xc - mov r0, #0x4c - pop {r4, r5, pc} -_021ED1FE: - add sp, #0xc - mov r0, #0x59 - pop {r4, r5, pc} -_021ED204: - mov r0, #0x51 - add sp, #0xc - pop {r4, r5, pc} - nop -_021ED20C: .word 0x00000868 -_021ED210: .word 0x0000F7BE -_021ED214: .word 0x0000FFEF -_021ED218: .word 0x0000FFFF -_021ED21C: .word 0x0000085C -_021ED220: .word 0x0000185B - thumb_func_end ov18_021ED15C - - thumb_func_start ov18_021ED224 -ov18_021ED224: ; 0x021ED224 - push {r3, r4, r5, r6, r7, lr} - ldr r1, _021ED2FC ; =0x00000868 - add r5, r0, #0 - add r6, r5, r1 - ldrb r1, [r6] - cmp r1, #0 - beq _021ED238 - cmp r1, #1 - beq _021ED290 - b _021ED2F8 -_021ED238: - ldr r1, _021ED300 ; =0x000018C5 - ldrsb r2, [r5, r1] - sub r2, r2, #1 - strb r2, [r5, r1] - mov r1, #1 - bl ov18_021F609C - mov r1, #6 - add r0, r5, #0 - add r2, r1, #0 - bl ov18_021F118C - add r0, r5, #0 - mov r1, #1 - bl ov18_021F0B70 - mov r4, #0 - mov r7, #3 -_021ED25C: - str r7, [sp] - add r1, r4, #0 - ldr r0, [r5, #8] - add r1, #0x11 - mov r2, #0 - mov r3, #1 - bl sub_020198FC - add r4, r4, #1 - cmp r4, #6 - blo _021ED25C - ldr r1, _021ED300 ; =0x000018C5 - add r0, r5, #0 - ldrsb r1, [r5, r1] - bl ov18_021F64A4 - add r2, r0, #0 - add r0, r5, #0 - mov r1, #5 - mov r3, #3 - bl ov18_021F6540 - strb r0, [r6, #3] - ldrb r0, [r6] - add r0, r0, #1 - strb r0, [r6] -_021ED290: - add r0, r5, #0 - mov r1, #8 - bl ov18_021F6178 - ldrb r2, [r6, #3] - add r0, r5, #0 - mov r1, #5 - neg r2, r2 - bl ov18_021F6578 - ldrb r0, [r6, #1] - add r0, r0, #1 - strb r0, [r6, #1] - ldrb r0, [r6, #1] - cmp r0, #3 - bne _021ED2F8 - mov r0, #0 - strb r0, [r6] - strb r0, [r6, #1] - ldrb r0, [r6, #2] - sub r0, r0, #1 - strb r0, [r6, #2] - ldrb r0, [r6, #2] - cmp r0, #0 - bne _021ED2F8 - ldr r1, _021ED300 ; =0x000018C5 - add r0, r5, #0 - ldrsb r1, [r5, r1] - bl ov18_021F5EF0 - add r0, r5, #0 - bl ov18_021F65AC - ldr r2, _021ED300 ; =0x000018C5 - add r0, r5, #0 - ldrsb r1, [r5, r2] - sub r2, r2, #1 - ldrsb r2, [r5, r2] - mov r3, #6 - bl ov18_021F619C - add r0, r5, #0 - bl ov18_021F0D2C - ldr r0, _021ED2FC ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #0x50 - pop {r3, r4, r5, r6, r7, pc} -_021ED2F8: - mov r0, #0x52 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021ED2FC: .word 0x00000868 -_021ED300: .word 0x000018C5 - thumb_func_end ov18_021ED224 - - thumb_func_start ov18_021ED304 -ov18_021ED304: ; 0x021ED304 - push {r3, r4, r5, r6, r7, lr} - ldr r1, _021ED3E0 ; =0x00000868 - add r5, r0, #0 - add r6, r5, r1 - ldrb r1, [r6] - cmp r1, #0 - beq _021ED318 - cmp r1, #1 - beq _021ED374 - b _021ED3DC -_021ED318: - ldr r1, _021ED3E4 ; =0x000018C5 - ldrsb r2, [r5, r1] - add r2, r2, #1 - strb r2, [r5, r1] - mov r1, #0 - mvn r1, r1 - bl ov18_021F609C - add r0, r5, #0 - mov r1, #7 - mov r2, #9 - bl ov18_021F118C - mov r1, #0 - add r0, r5, #0 - mvn r1, r1 - bl ov18_021F0B70 - mov r4, #0 - mov r7, #3 -_021ED340: - str r7, [sp] - add r1, r4, #0 - mov r2, #0 - ldr r0, [r5, #8] - add r1, #0x11 - sub r3, r2, #1 - bl sub_020198FC - add r4, r4, #1 - cmp r4, #6 - blo _021ED340 - ldr r1, _021ED3E4 ; =0x000018C5 - add r0, r5, #0 - ldrsb r1, [r5, r1] - bl ov18_021F64A4 - add r2, r0, #0 - add r0, r5, #0 - mov r1, #5 - mov r3, #3 - bl ov18_021F6540 - strb r0, [r6, #3] - ldrb r0, [r6] - add r0, r0, #1 - strb r0, [r6] -_021ED374: - mov r1, #7 - add r0, r5, #0 - mvn r1, r1 - bl ov18_021F6178 - ldrb r2, [r6, #3] - add r0, r5, #0 - mov r1, #5 - bl ov18_021F6578 - ldrb r0, [r6, #1] - add r0, r0, #1 - strb r0, [r6, #1] - ldrb r0, [r6, #1] - cmp r0, #3 - bne _021ED3DC - mov r0, #0 - strb r0, [r6] - strb r0, [r6, #1] - ldrb r0, [r6, #2] - sub r0, r0, #1 - strb r0, [r6, #2] - ldrb r0, [r6, #2] - cmp r0, #0 - bne _021ED3DC - ldr r1, _021ED3E4 ; =0x000018C5 - add r0, r5, #0 - ldrsb r1, [r5, r1] - bl ov18_021F5EF0 - add r0, r5, #0 - bl ov18_021F65AC - ldr r2, _021ED3E4 ; =0x000018C5 - add r0, r5, #0 - ldrsb r1, [r5, r2] - sub r2, r2, #1 - ldrsb r2, [r5, r2] - mov r3, #6 - bl ov18_021F619C - add r0, r5, #0 - bl ov18_021F0D2C - ldr r0, _021ED3E0 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r0, #0x50 - pop {r3, r4, r5, r6, r7, pc} -_021ED3DC: - mov r0, #0x53 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021ED3E0: .word 0x00000868 -_021ED3E4: .word 0x000018C5 - thumb_func_end ov18_021ED304 - - thumb_func_start ov18_021ED3E8 -ov18_021ED3E8: ; 0x021ED3E8 - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - add r0, sp, #4 - add r1, sp, #0 - bl System_GetTouchHeldCoords - cmp r0, #0 - bne _021ED400 - add sp, #8 - mov r0, #0x50 - pop {r4, pc} -_021ED400: - ldr r1, [sp, #4] - ldr r2, [sp] - add r0, r4, #0 - bl ov18_021F6310 - cmp r0, #1 - bne _021ED440 - add r0, r4, #0 - bl ov18_021F6038 - ldr r1, _021ED448 ; =0x000018C5 - add r0, r4, #0 - ldrsb r1, [r4, r1] - bl ov18_021F5EF0 - ldr r2, _021ED448 ; =0x000018C5 - add r0, r4, #0 - ldrsb r1, [r4, r2] - sub r2, r2, #1 - ldrsb r2, [r4, r2] - mov r3, #6 - bl ov18_021F619C - add r0, r4, #0 - bl ov18_021F0940 - add r0, r4, #0 - bl ov18_021F0D2C - ldr r0, _021ED44C ; =0x000008E8 - bl PlaySE -_021ED440: - mov r0, #0x54 - add sp, #8 - pop {r4, pc} - nop -_021ED448: .word 0x000018C5 -_021ED44C: .word 0x000008E8 - thumb_func_end ov18_021ED3E8 - - thumb_func_start ov18_021ED450 -ov18_021ED450: ; 0x021ED450 - push {r4, lr} - ldr r1, _021ED4A8 ; =0x00000868 - add r4, r0, #0 - add r2, r4, r1 - ldrh r1, [r2] - ldrh r2, [r2, #2] - bl ov18_021F6310 - cmp r0, #1 - bne _021ED4A2 - add r0, r4, #0 - bl ov18_021F6038 - ldr r1, _021ED4AC ; =0x000018C5 - add r0, r4, #0 - ldrsb r1, [r4, r1] - bl ov18_021F5EF0 - ldr r2, _021ED4AC ; =0x000018C5 - add r0, r4, #0 - ldrsb r1, [r4, r2] - sub r2, r2, #1 - ldrsb r2, [r4, r2] - mov r3, #6 - bl ov18_021F619C - add r0, r4, #0 - bl ov18_021F0940 - add r0, r4, #0 - bl ov18_021F0D2C - ldr r0, _021ED4B0 ; =0x000008E8 - bl PlaySE - ldr r0, _021ED4A8 ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 -_021ED4A2: - mov r0, #0x50 - pop {r4, pc} - nop -_021ED4A8: .word 0x00000868 -_021ED4AC: .word 0x000018C5 -_021ED4B0: .word 0x000008E8 - thumb_func_end ov18_021ED450 - - thumb_func_start ov18_021ED4B4 -ov18_021ED4B4: ; 0x021ED4B4 - push {r3, r4, lr} - sub sp, #0xc - ldr r1, _021ED5E8 ; =0x00000868 - add r4, r0, #0 - ldrb r1, [r4, r1] - cmp r1, #0 - beq _021ED4C8 - cmp r1, #1 - beq _021ED532 - b _021ED5E2 -_021ED4C8: - mov r1, #0 - add r2, r1, #0 - bl ov18_021F11C0 - add r0, r4, #0 - bl ov18_021E6714 - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED5EC ; =0x0000F7BE - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED5F0 ; =0x0000FFEF - mov r1, #4 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED5F4 ; =0x0000FFFF - mov r1, #0xa - bl PaletteData_BeginPaletteFade - ldr r0, _021ED5E8 ; =0x00000868 - add sp, #0xc - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - mov r1, #0x56 - sub r0, #0xc - str r1, [r4, r0] - mov r0, #3 - pop {r3, r4, pc} -_021ED532: - ldr r0, [r4, #8] - mov r1, #0x10 - bl sub_020199E4 - cmp r0, #0 - bne _021ED5E2 - ldr r3, _021ED5F8 ; =0x000018C7 - mov r0, #0x1f - ldrb r1, [r4, r3] - bic r1, r0 - strb r1, [r4, r3] - ldrb r1, [r4, r3] - mov r0, #0x80 - bic r1, r0 - strb r1, [r4, r3] - mov r1, #0 - sub r0, r3, #1 - strb r1, [r4, r0] - sub r0, r3, #2 - ldrsb r1, [r4, r0] - sub r0, r3, #1 - ldrsb r0, [r4, r0] - cmp r1, r0 - bne _021ED570 - sub r0, r3, #1 - sub r3, r3, #3 - ldrb r3, [r4, r3] - add r0, r4, r0 - mov r2, #1 - bl ov18_021EDF48 -_021ED570: - add r0, r4, #0 - bl ov18_021E81A8 - add r0, r4, #0 - bl ov18_021F0DD0 - add r0, r4, #0 - bl ov18_021F6684 - add r0, r4, #0 - bl ov18_021F6714 - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED5EC ; =0x0000F7BE - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED5F0 ; =0x0000FFEF - mov r1, #4 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED5F4 ; =0x0000FFFF - mov r1, #0xa - bl PaletteData_BeginPaletteFade - ldr r0, _021ED5E8 ; =0x00000868 - mov r1, #0 - strb r1, [r4, r0] - mov r1, #0x57 - sub r0, #0xc - str r1, [r4, r0] - add sp, #0xc - mov r0, #3 - pop {r3, r4, pc} -_021ED5E2: - mov r0, #0x56 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021ED5E8: .word 0x00000868 -_021ED5EC: .word 0x0000F7BE -_021ED5F0: .word 0x0000FFEF -_021ED5F4: .word 0x0000FFFF -_021ED5F8: .word 0x000018C7 - thumb_func_end ov18_021ED4B4 - - thumb_func_start ov18_021ED5FC -ov18_021ED5FC: ; 0x021ED5FC - push {r4, lr} - sub sp, #0x10 - add r1, sp, #0xc - add r4, r0, #0 - bl ov18_021F7DCC - cmp r0, #7 - bhi _021ED67C - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021ED618: ; jump table - .short _021ED628 - _021ED618 - 2 ; case 0 - .short _021ED64C - _021ED618 - 2 ; case 1 - .short _021ED66E - _021ED618 - 2 ; case 2 - .short _021ED694 - _021ED618 - 2 ; case 3 - .short _021ED6B6 - _021ED618 - 2 ; case 4 - .short _021ED70A - _021ED618 - 2 ; case 5 - .short _021ED72C - _021ED618 - 2 ; case 6 - .short _021ED764 - _021ED618 - 2 ; case 7 -_021ED628: - mov r1, #0 - add r0, r4, #0 - mvn r1, r1 - bl ov18_021EDF84 - cmp r0, #1 - bne _021ED67C - ldr r0, [sp, #0xc] - cmp r0, #1 - bne _021ED644 - ldr r0, _021ED7A8 ; =0x000008E9 - bl PlaySE - b _021ED7A0 -_021ED644: - ldr r0, _021ED7AC ; =0x000008E8 - bl PlaySE - b _021ED7A0 -_021ED64C: - add r0, r4, #0 - mov r1, #1 - bl ov18_021EDF84 - cmp r0, #1 - bne _021ED67C - ldr r0, [sp, #0xc] - cmp r0, #1 - bne _021ED666 - ldr r0, _021ED7A8 ; =0x000008E9 - bl PlaySE - b _021ED7A0 -_021ED666: - ldr r0, _021ED7AC ; =0x000008E8 - bl PlaySE - b _021ED7A0 -_021ED66E: - mov r1, #0 - add r0, r4, #0 - mvn r1, r1 - bl ov18_021EDFF4 - cmp r0, #1 - beq _021ED67E -_021ED67C: - b _021ED7A0 -_021ED67E: - ldr r0, [sp, #0xc] - cmp r0, #1 - bne _021ED68C - ldr r0, _021ED7A8 ; =0x000008E9 - bl PlaySE - b _021ED7A0 -_021ED68C: - ldr r0, _021ED7AC ; =0x000008E8 - bl PlaySE - b _021ED7A0 -_021ED694: - add r0, r4, #0 - mov r1, #1 - bl ov18_021EDFF4 - cmp r0, #1 - bne _021ED7A0 - ldr r0, [sp, #0xc] - cmp r0, #1 - bne _021ED6AE - ldr r0, _021ED7A8 ; =0x000008E9 - bl PlaySE - b _021ED7A0 -_021ED6AE: - ldr r0, _021ED7AC ; =0x000008E8 - bl PlaySE - b _021ED7A0 -_021ED6B6: - ldr r0, _021ED7A8 ; =0x000008E9 - bl PlaySE - ldr r3, _021ED7B0 ; =0x000018C7 - mov r1, #0x80 - ldrb r2, [r4, r3] - add r0, r2, #0 - bic r0, r1 - lsl r1, r2, #0x18 - lsr r2, r1, #0x1f - mov r1, #1 - eor r2, r1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - lsl r2, r2, #0x1f - lsr r2, r2, #0x18 - orr r0, r2 - strb r0, [r4, r3] - sub r2, r3, #2 - ldrsb r2, [r4, r2] - add r0, r4, #0 - bl ov18_021F6984 - ldr r2, _021ED7B4 ; =0x000018C6 - add r0, r4, #0 - ldrsb r2, [r4, r2] - mov r1, #2 - bl ov18_021F6984 - mov r0, #0xe - str r0, [sp] - mov r1, #3 - str r1, [sp, #4] - mov r0, #0x57 - str r0, [sp, #8] - add r0, r4, #0 - mov r2, #1 - mov r3, #0x14 - bl ov18_021EDC50 - add sp, #0x10 - pop {r4, pc} -_021ED70A: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - mov r0, #0xf - str r0, [sp] - mov r1, #3 - str r1, [sp, #4] - mov r0, #0x58 - str r0, [sp, #8] - add r0, r4, #0 - mov r2, #0x10 - mov r3, #0x14 - bl ov18_021EDC50 - add sp, #0x10 - pop {r4, pc} -_021ED72C: - ldr r0, _021ED7B8 ; =0x000018C4 - ldrsb r1, [r4, r0] - cmp r1, #3 - blt _021ED7A0 - add r0, r0, #3 - ldrb r0, [r4, r0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1b - beq _021ED7A0 - ldr r0, [sp, #0xc] - cmp r0, #1 - bne _021ED74C - ldr r0, _021ED7A8 ; =0x000008E9 - bl PlaySE - b _021ED752 -_021ED74C: - ldr r0, _021ED7AC ; =0x000008E8 - bl PlaySE -_021ED752: - ldr r1, _021ED7B0 ; =0x000018C7 - mov r0, #0x1f - ldrb r2, [r4, r1] - bic r2, r0 - add r0, r4, #0 - strb r2, [r4, r1] - bl ov18_021F6990 - b _021ED7A0 -_021ED764: - ldr r0, _021ED7B8 ; =0x000018C4 - ldrsb r1, [r4, r0] - cmp r1, #3 - blt _021ED7A0 - add r0, r0, #3 - ldrb r0, [r4, r0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1b - cmp r0, #1 - beq _021ED7A0 - ldr r0, [sp, #0xc] - cmp r0, #1 - bne _021ED786 - ldr r0, _021ED7A8 ; =0x000008E9 - bl PlaySE - b _021ED78C -_021ED786: - ldr r0, _021ED7AC ; =0x000008E8 - bl PlaySE -_021ED78C: - ldr r1, _021ED7B0 ; =0x000018C7 - mov r0, #0x1f - ldrb r2, [r4, r1] - bic r2, r0 - mov r0, #1 - orr r0, r2 - strb r0, [r4, r1] - add r0, r4, #0 - bl ov18_021F6990 -_021ED7A0: - mov r0, #0x57 - add sp, #0x10 - pop {r4, pc} - nop -_021ED7A8: .word 0x000008E9 -_021ED7AC: .word 0x000008E8 -_021ED7B0: .word 0x000018C7 -_021ED7B4: .word 0x000018C6 -_021ED7B8: .word 0x000018C4 - thumb_func_end ov18_021ED5FC - - thumb_func_start ov18_021ED7BC -ov18_021ED7BC: ; 0x021ED7BC - push {r3, r4, lr} - sub sp, #0xc - ldr r1, _021ED8D4 ; =0x00000868 - add r4, r0, #0 - ldrb r2, [r4, r1] - cmp r2, #0 - beq _021ED7D4 - cmp r2, #1 - beq _021ED82E - cmp r2, #2 - beq _021ED8AC - b _021ED8CE -_021ED7D4: - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - str r3, [sp, #8] - sub r1, #0x18 - ldr r0, [r4, r1] - ldr r2, _021ED8D8 ; =0x0000F7BE - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED8DC ; =0x0000FFEF - mov r1, #4 - bl PaletteData_BeginPaletteFade - mov r3, #0 - str r3, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED8E0 ; =0x0000FFFF - mov r1, #0xa - bl PaletteData_BeginPaletteFade - ldr r0, _021ED8D4 ; =0x00000868 - add sp, #0xc - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - mov r1, #0x58 - sub r0, #0xc - str r1, [r4, r0] - mov r0, #3 - pop {r3, r4, pc} -_021ED82E: - bl ov18_021F67D0 - add r0, r4, #0 - bl ov18_021F0F2C - add r0, r4, #0 - bl ov18_021E800C - add r0, r4, #0 - bl ov18_021F662C - add r0, r4, #0 - bl ov18_021F0928 - add r0, r4, #0 - bl ov18_021E66EC - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED8D8 ; =0x0000F7BE - mov r1, #1 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED8DC ; =0x0000FFEF - mov r1, #4 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - mov r0, #0x85 - str r3, [sp, #8] - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r2, _021ED8E0 ; =0x0000FFFF - mov r1, #0xa - bl PaletteData_BeginPaletteFade - ldr r0, _021ED8D4 ; =0x00000868 - add sp, #0xc - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - mov r1, #0x58 - sub r0, #0xc - str r1, [r4, r0] - mov r0, #3 - pop {r3, r4, pc} -_021ED8AC: - ldr r0, [r4, #8] - mov r1, #0x10 - bl sub_020199E4 - cmp r0, #0 - bne _021ED8CE - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl ov18_021F11C0 - ldr r0, _021ED8D4 ; =0x00000868 - mov r1, #0 - strb r1, [r4, r0] - add sp, #0xc - mov r0, #0x50 - pop {r3, r4, pc} -_021ED8CE: - mov r0, #0x58 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021ED8D4: .word 0x00000868 -_021ED8D8: .word 0x0000F7BE -_021ED8DC: .word 0x0000FFEF -_021ED8E0: .word 0x0000FFFF - thumb_func_end ov18_021ED7BC - - thumb_func_start ov18_021ED8E4 -ov18_021ED8E4: ; 0x021ED8E4 - push {r3, r4, lr} - sub sp, #0xc - ldr r1, _021ED978 ; =0x00000868 - add r4, r0, #0 - ldrb r2, [r4, r1] - cmp r2, #0 - beq _021ED8F8 - cmp r2, #1 - beq _021ED962 - b _021ED972 -_021ED8F8: - mov r1, #4 - bl ov18_021E67C8 - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #1 - ldr r0, [r4, r0] - ldr r2, _021ED97C ; =0x0000F7BE - sub r3, r1, #3 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #4 - ldr r0, [r4, r0] - ldr r2, _021ED980 ; =0x0000FFEF - sub r3, r1, #6 - bl PaletteData_BeginPaletteFade - mov r0, #0x10 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - mov r1, #0xa - add r3, r1, #0 - ldr r0, [r4, r0] - ldr r2, _021ED984 ; =0x0000FFFF - sub r3, #0xc - bl PaletteData_BeginPaletteFade - ldr r0, _021ED978 ; =0x00000868 - add sp, #0xc - ldrb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, r0] - mov r1, #0x59 - sub r0, #0xc - str r1, [r4, r0] - mov r0, #3 - pop {r3, r4, pc} -_021ED962: - ldr r0, _021ED988 ; =0x0000185B - mov r2, #4 - strb r2, [r4, r0] - mov r0, #0 - strb r0, [r4, r1] - add sp, #0xc - mov r0, #0x5a - pop {r3, r4, pc} -_021ED972: - mov r0, #0x59 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021ED978: .word 0x00000868 -_021ED97C: .word 0x0000F7BE -_021ED980: .word 0x0000FFEF -_021ED984: .word 0x0000FFFF -_021ED988: .word 0x0000185B - thumb_func_end ov18_021ED8E4 - - thumb_func_start ov18_021ED98C -ov18_021ED98C: ; 0x021ED98C - push {r4, lr} - sub sp, #0x10 - add r1, sp, #0xc - add r4, r0, #0 - bl ov18_021F7E70 - cmp r0, #4 - bhi _021EDA52 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021ED9A8: ; jump table - .short _021ED9B2 - _021ED9A8 - 2 ; case 0 - .short _021ED9D4 - _021ED9A8 - 2 ; case 1 - .short _021ED9F6 - _021ED9A8 - 2 ; case 2 - .short _021EDA18 - _021ED9A8 - 2 ; case 3 - .short _021EDA2E - _021ED9A8 - 2 ; case 4 -_021ED9B2: - ldr r0, [sp, #0xc] - cmp r0, #1 - bne _021ED9C0 - ldr r0, _021EDA58 ; =0x000008E9 - bl PlaySE - b _021ED9C6 -_021ED9C0: - ldr r0, _021EDA5C ; =0x000008E8 - bl PlaySE -_021ED9C6: - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl ov18_021EC1DC - add sp, #0x10 - pop {r4, pc} -_021ED9D4: - ldr r0, [sp, #0xc] - cmp r0, #1 - bne _021ED9E2 - ldr r0, _021EDA58 ; =0x000008E9 - bl PlaySE - b _021ED9E8 -_021ED9E2: - ldr r0, _021EDA5C ; =0x000008E8 - bl PlaySE -_021ED9E8: - add r0, r4, #0 - mov r1, #0 - mov r2, #2 - bl ov18_021EC1DC - add sp, #0x10 - pop {r4, pc} -_021ED9F6: - ldr r0, [sp, #0xc] - cmp r0, #1 - bne _021EDA04 - ldr r0, _021EDA58 ; =0x000008E9 - bl PlaySE - b _021EDA0A -_021EDA04: - ldr r0, _021EDA5C ; =0x000008E8 - bl PlaySE -_021EDA0A: - add r0, r4, #0 - mov r1, #0 - mov r2, #3 - bl ov18_021EC1DC - add sp, #0x10 - pop {r4, pc} -_021EDA18: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - add r0, r4, #0 - mov r1, #0 - mov r2, #0xff - bl ov18_021EC1DC - add sp, #0x10 - pop {r4, pc} -_021EDA2E: - mov r0, #0x25 - lsl r0, r0, #6 - bl PlaySE - mov r0, #0x14 - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r0, #0x43 - str r0, [sp, #8] - add r0, r4, #0 - mov r1, #3 - mov r2, #6 - mov r3, #9 - bl ov18_021EDC50 - add sp, #0x10 - pop {r4, pc} -_021EDA52: - mov r0, #0x5a - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 -_021EDA58: .word 0x000008E9 -_021EDA5C: .word 0x000008E8 - thumb_func_end ov18_021ED98C - - thumb_func_start ov18_021EDA60 -ov18_021EDA60: ; 0x021EDA60 - push {r4, r5, lr} - sub sp, #0xc - ldr r1, _021EDB10 ; =0x00000868 - add r5, r0, #0 - add r4, r5, r1 - ldrh r2, [r4] - cmp r2, #0 - beq _021EDA76 - cmp r2, #1 - beq _021EDADC - b _021EDB0A -_021EDA76: - ldrb r0, [r4, #2] - sub r1, #0x18 - ldr r2, _021EDB14 ; =0x0000F7BE - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - ldr r0, [r5, r1] - mov r1, #1 - sub r3, r1, #3 - bl PaletteData_BeginPaletteFade - ldrb r0, [r4, #2] - mov r1, #4 - ldr r2, _021EDB18 ; =0x0000FFEF - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r5, r0] - sub r3, r1, #6 - bl PaletteData_BeginPaletteFade - ldrb r0, [r4, #2] - mov r1, #0xa - add r3, r1, #0 - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - mov r0, #0x85 - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, _021EDB1C ; =0x0000FFFF - sub r3, #0xc - bl PaletteData_BeginPaletteFade - ldrh r0, [r4] - mov r1, #0x5b - add sp, #0xc - add r0, r0, #1 - strh r0, [r4] - ldr r0, _021EDB20 ; =0x0000085C - str r1, [r5, r0] - mov r0, #3 - pop {r4, r5, pc} -_021EDADC: - bl ov18_021F08E0 - ldr r0, _021EDB10 ; =0x00000868 - mov r1, #0 - add r0, r5, r0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, _021EDB24 ; =0x0000185B - ldrb r0, [r5, r0] - cmp r0, #2 - bne _021EDAFA - add sp, #0xc - mov r0, #0x4c - pop {r4, r5, pc} -_021EDAFA: - cmp r0, #3 - bne _021EDB04 - add sp, #0xc - mov r0, #0x4f - pop {r4, r5, pc} -_021EDB04: - add sp, #0xc - mov r0, #0x44 - pop {r4, r5, pc} -_021EDB0A: - mov r0, #0x5b - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 -_021EDB10: .word 0x00000868 -_021EDB14: .word 0x0000F7BE -_021EDB18: .word 0x0000FFEF -_021EDB1C: .word 0x0000FFFF -_021EDB20: .word 0x0000085C -_021EDB24: .word 0x0000185B - thumb_func_end ov18_021EDA60 - - thumb_func_start ov18_021EDB28 -ov18_021EDB28: ; 0x021EDB28 - ldr r1, _021EDB34 ; =0x0000085C - mov r2, #0x5d - str r2, [r0, r1] - ldr r3, _021EDB38 ; =ov18_021EDB3C - mov r1, #1 - bx r3 - .balign 4, 0 -_021EDB34: .word 0x0000085C -_021EDB38: .word ov18_021EDB3C - thumb_func_end ov18_021EDB28 - - thumb_func_start ov18_021EDB3C -ov18_021EDB3C: ; 0x021EDB3C - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - mov r0, #6 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #0x25 - str r0, [sp, #8] - mov r0, #0 - add r4, r1, #0 - add r1, r0, #0 - add r2, r0, #0 - add r3, r0, #0 - bl BeginNormalPaletteFade - mov r0, #0x86 - lsl r0, r0, #4 - str r4, [r5, r0] - mov r0, #2 - add sp, #0xc - pop {r4, r5, pc} - thumb_func_end ov18_021EDB3C - - thumb_func_start ov18_021EDB68 -ov18_021EDB68: ; 0x021EDB68 - push {r3, r4, r5, r6} - ldr r5, _021EDBB4 ; =0x00000868 - add r4, r0, #0 - add r0, r4, r5 - strb r2, [r0] - add r2, sp, #0 - strb r3, [r0, #1] - ldrb r3, [r2, #0x10] - sub r5, #0xc - strb r3, [r0, #2] - ldrb r3, [r2, #0x14] - strb r3, [r0, #3] - strb r1, [r0, #4] - mov r1, #0 - strb r1, [r0, #5] - strb r1, [r0, #6] - ldrb r1, [r0, #7] - mov r3, #0xf - ldrb r6, [r2, #0x18] - bic r1, r3 - mov r3, #0xf - and r3, r6 - orr r1, r3 - strb r1, [r0, #7] - ldrb r2, [r2, #0x1c] - ldrb r1, [r0, #7] - mov r3, #0xf0 - lsl r2, r2, #0x1c - bic r1, r3 - lsr r2, r2, #0x18 - orr r1, r2 - strb r1, [r0, #7] - ldr r0, [sp, #0x20] - str r0, [r4, r5] - mov r0, #4 - pop {r3, r4, r5, r6} - bx lr - nop -_021EDBB4: .word 0x00000868 - thumb_func_end ov18_021EDB68 - - thumb_func_start ov18_021EDBB8 -ov18_021EDBB8: ; 0x021EDBB8 - push {r3, r4, lr} - sub sp, #0x14 - add r4, r1, #0 - str r2, [sp] - mov r1, #5 - str r1, [sp, #4] - mov r1, #0 - str r1, [sp, #8] - mov r1, #6 - str r1, [sp, #0xc] - str r3, [sp, #0x10] - mov r1, #2 - add r2, r4, #0 - mov r3, #0x13 - bl ov18_021EDB68 - add sp, #0x14 - pop {r3, r4, pc} - thumb_func_end ov18_021EDBB8 - - thumb_func_start ov18_021EDBDC -ov18_021EDBDC: ; 0x021EDBDC - push {r3, r4, lr} - sub sp, #0x14 - add r4, r1, #0 - str r2, [sp] - mov r1, #4 - str r1, [sp, #4] - str r1, [sp, #8] - mov r1, #5 - str r1, [sp, #0xc] - str r3, [sp, #0x10] - mov r1, #1 - add r2, r4, #0 - mov r3, #0x14 - bl ov18_021EDB68 - add sp, #0x14 - pop {r3, r4, pc} - .balign 4, 0 - thumb_func_end ov18_021EDBDC - - thumb_func_start ov18_021EDC00 -ov18_021EDC00: ; 0x021EDC00 - push {r4, r5, lr} - sub sp, #0x14 - add r5, r1, #0 - str r3, [sp] - add r1, sp, #0x10 - ldrb r1, [r1, #0x10] - add r4, r2, #0 - mov r2, #3 - str r1, [sp, #4] - mov r1, #2 - str r1, [sp, #8] - str r2, [sp, #0xc] - ldr r2, [sp, #0x24] - add r3, r4, #0 - str r2, [sp, #0x10] - add r2, r5, #0 - bl ov18_021EDB68 - add sp, #0x14 - pop {r4, r5, pc} - thumb_func_end ov18_021EDC00 - - thumb_func_start ov18_021EDC28 -ov18_021EDC28: ; 0x021EDC28 - push {lr} - sub sp, #0x14 - add r3, r1, #0 - mov r1, #8 - str r1, [sp] - mov r1, #4 - str r1, [sp, #4] - mov r1, #0 - str r1, [sp, #8] - mov r1, #6 - str r1, [sp, #0xc] - str r2, [sp, #0x10] - add r2, r3, #0 - mov r1, #1 - mov r3, #0x14 - bl ov18_021EDB68 - add sp, #0x14 - pop {pc} - .balign 4, 0 - thumb_func_end ov18_021EDC28 - - thumb_func_start ov18_021EDC50 -ov18_021EDC50: ; 0x021EDC50 - push {r4, r5, lr} - sub sp, #0x14 - add r4, sp, #0x10 - ldrb r5, [r4, #0x10] - str r5, [sp] - ldrb r4, [r4, #0x14] - str r4, [sp, #4] - mov r4, #0xa - str r4, [sp, #8] - mov r4, #0xb - str r4, [sp, #0xc] - ldr r4, [sp, #0x28] - str r4, [sp, #0x10] - bl ov18_021EDB68 - add sp, #0x14 - pop {r4, r5, pc} - .balign 4, 0 - thumb_func_end ov18_021EDC50 - - thumb_func_start ov18_021EDC74 -ov18_021EDC74: ; 0x021EDC74 - push {r3, r4, r5, lr} - sub sp, #0x20 - add r5, r0, #0 - add r4, r1, #0 - bl ov18_021F8838 - ldr r2, _021EDCD0 ; =0x00001858 - add r1, r0, #0 - ldr r0, [r5] - ldrb r2, [r5, r2] - ldr r0, [r0, #8] - bl sub_02092BD8 - ldr r0, _021EDCD0 ; =0x00001858 - strb r4, [r5, r0] - add r0, r5, #0 - bl ov18_021E6A70 - add r0, r5, #0 - mov r1, #0 - bl ov18_021F2AC0 - mov r0, #0x11 - str r0, [sp] - str r0, [sp, #4] - mov r2, #0 - str r2, [sp, #8] - mov r0, #0x98 - str r0, [sp, #0xc] - str r2, [sp, #0x10] - str r0, [sp, #0x14] - mov r0, #8 - str r0, [sp, #0x18] - mov r0, #0xe - str r0, [sp, #0x1c] - ldr r1, _021EDCD0 ; =0x00001858 - add r0, r5, #0 - ldrb r1, [r5, r1] - mov r3, #0x1a - bl ov18_021F7ED4 - add r0, r5, #0 - bl ov18_021EE5FC - add sp, #0x20 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EDCD0: .word 0x00001858 - thumb_func_end ov18_021EDC74 - - thumb_func_start ov18_021EDCD4 -ov18_021EDCD4: ; 0x021EDCD4 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r0, #0 - bl ov18_021EDDB4 - add r0, r5, #0 - mov r1, #1 - bl ov18_021F8884 - add r0, r5, #0 - bl ov18_021F8838 - add r4, r0, #0 - add r0, r5, #0 - bl ov18_021F8824 - ldr r2, _021EDD9C ; =0x0000185C - add r6, r0, #0 - ldrb r2, [r5, r2] - add r0, r5, #0 - add r1, r4, #0 - bl ov18_021E6D10 - cmp r0, #0 - bne _021EDD0C - ldr r0, _021EDD9C ; =0x0000185C - mov r1, #2 - strb r1, [r5, r0] -_021EDD0C: - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov18_021EE6BC - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov18_021EE8B8 - add r0, r5, #0 - mov r1, #0x18 - bl ov18_021F1620 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0xb - mov r3, #0xa - bl ov18_021F1CAC - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - mov r3, #0xe - bl ov18_021F209C - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x12 - bl ov18_021F2530 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - mov r3, #0xd - bl ov18_021F1DE4 - add r0, r5, #0 - mov r1, #5 - bl ov18_021F2BB0 - add r0, r5, #0 - mov r1, #2 - mov r2, #1 - bl ov18_021F2C10 - mov r1, #1 - add r0, r5, #0 - add r2, r1, #0 - bl ov18_021F2C5C - mov r1, #1 - add r0, r5, #0 - add r2, r1, #0 - bl ov18_021F2E80 - mov r0, #0x25 - str r0, [sp] - ldr r2, _021EDD9C ; =0x0000185C - ldr r3, _021EDDA0 ; =0x00000854 - ldrb r2, [r5, r2] - ldr r0, [r5, #4] - ldr r3, [r5, r3] - mov r1, #7 - bl ov18_021E6F6C - add r0, r5, #0 - bl ov18_021E6C98 - add sp, #4 - pop {r3, r4, r5, r6, pc} - nop -_021EDD9C: .word 0x0000185C -_021EDDA0: .word 0x00000854 - thumb_func_end ov18_021EDCD4 - - thumb_func_start ov18_021EDDA4 -ov18_021EDDA4: ; 0x021EDDA4 - push {r4, lr} - add r4, r0, #0 - bl ov18_021EDC74 - add r0, r4, #0 - bl ov18_021EDCD4 - pop {r4, pc} - thumb_func_end ov18_021EDDA4 - - thumb_func_start ov18_021EDDB4 -ov18_021EDDB4: ; 0x021EDDB4 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5] - ldr r0, [r0, #8] - bl sub_02092BE4 - add r1, r0, #0 - ldr r0, _021EDDF4 ; =0x00000878 - lsl r1, r1, #0x10 - add r0, r5, r0 - lsr r1, r1, #0x10 - bl ov18_021F8850 - add r1, r0, #0 - ldr r0, _021EDDF8 ; =0x00001858 - ldrb r0, [r5, r0] - bl Pokedex_ConvertToCurrentDexNo - sub r4, r0, #1 - add r0, r4, #0 - mov r1, #0xf - bl _u32_div_f - ldr r0, _021EDDFC ; =0x0000185A - strb r1, [r5, r0] - add r0, r4, #0 - mov r1, #0xf - bl _u32_div_f - ldr r1, _021EDE00 ; =0x00001859 - strb r0, [r5, r1] - pop {r3, r4, r5, pc} - .balign 4, 0 -_021EDDF4: .word 0x00000878 -_021EDDF8: .word 0x00001858 -_021EDDFC: .word 0x0000185A -_021EDE00: .word 0x00001859 - thumb_func_end ov18_021EDDB4 - - thumb_func_start ov18_021EDE04 -ov18_021EDE04: ; 0x021EDE04 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl ov18_021F8838 - add r4, r0, #0 - bne _021EDE14 - mov r0, #0 - pop {r3, r4, r5, pc} -_021EDE14: - ldr r0, [r5] - add r1, r4, #0 - ldr r0, [r0] - mov r2, #0 - bl Pokedex_GetSeenFormByIdx - add r5, r0, #0 - cmp r4, #0xac - bne _021EDE30 - cmp r5, #2 - bne _021EDE2E - mov r5, #1 - b _021EDE30 -_021EDE2E: - mov r5, #0 -_021EDE30: - mov r0, #1 - bl sub_02006E3C - lsl r1, r5, #0x18 - add r0, r4, #0 - lsr r1, r1, #0x18 - bl PlayCry - mov r0, #0 - bl sub_02006E3C - mov r0, #1 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov18_021EDE04 - - thumb_func_start ov18_021EDE4C -ov18_021EDE4C: ; 0x021EDE4C - push {r3, r4} - ldr r4, _021EDE60 ; =0x00000868 - add r4, r0, r4 - strb r1, [r4] - strb r3, [r4, #1] - strb r2, [r4, #3] - mov r0, #0 - strb r0, [r4, #2] - pop {r3, r4} - bx lr - .balign 4, 0 -_021EDE60: .word 0x00000868 - thumb_func_end ov18_021EDE4C - - thumb_func_start ov18_021EDE64 -ov18_021EDE64: ; 0x021EDE64 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - bl ov18_021F8838 - cmp r0, #0 - bne _021EDE76 - mov r4, #0xb - b _021EDE78 -_021EDE76: - mov r4, #0 -_021EDE78: - mov r0, #0x10 - str r0, [sp] - mov r0, #5 - str r0, [sp, #4] - str r4, [sp, #8] - ldr r0, [r5, #8] - mov r1, #1 - mov r2, #8 - mov r3, #0 - bl sub_020199F4 - mov r0, #0x10 - str r0, [sp] - mov r0, #5 - str r0, [sp, #4] - str r4, [sp, #8] - ldr r0, [r5, #4] - mov r1, #2 - mov r2, #8 - mov r3, #0x13 - bl BgTilemapRectChangePalette - ldr r0, [r5, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - add sp, #0xc - pop {r4, r5, pc} - thumb_func_end ov18_021EDE64 - - thumb_func_start ov18_021EDEB0 -ov18_021EDEB0: ; 0x021EDEB0 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - ldr r0, _021EDF10 ; =0x0000185A - ldrb r1, [r5, r0] - cmp r1, #0 - bne _021EDEC6 - sub r0, r0, #1 - ldrb r0, [r5, r0] - cmp r0, #0 - beq _021EDED0 -_021EDEC6: - add r0, r5, #0 - bl ov18_021F8838 - cmp r0, #0 - bne _021EDED4 -_021EDED0: - mov r4, #0xb - b _021EDED6 -_021EDED4: - mov r4, #0 -_021EDED6: - mov r0, #0x10 - str r0, [sp] - mov r0, #5 - str r0, [sp, #4] - str r4, [sp, #8] - mov r1, #8 - ldr r0, [r5, #8] - add r2, r1, #0 - mov r3, #0 - bl sub_020199F4 - mov r0, #0x10 - str r0, [sp] - mov r0, #5 - str r0, [sp, #4] - str r4, [sp, #8] - ldr r0, [r5, #4] - mov r1, #2 - mov r2, #8 - mov r3, #0x13 - bl BgTilemapRectChangePalette - ldr r0, [r5, #4] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - add sp, #0xc - pop {r4, r5, pc} - nop -_021EDF10: .word 0x0000185A - thumb_func_end ov18_021EDEB0 - - thumb_func_start ov18_021EDF14 -ov18_021EDF14: ; 0x021EDF14 - push {r3, r4} - ldr r3, _021EDF40 ; =0x000018C5 - ldrsb r4, [r0, r3] - add r4, r4, r1 - bmi _021EDF26 - sub r1, r3, #1 - ldrsb r1, [r0, r1] - cmp r4, r1 - blt _021EDF2C -_021EDF26: - mov r0, #0 - pop {r3, r4} - bx lr -_021EDF2C: - ldr r1, _021EDF44 ; =0x00000868 - add r1, r0, r1 - mov r0, #0 - strb r0, [r1] - strb r0, [r1, #1] - strb r2, [r1, #2] - mov r0, #1 - pop {r3, r4} - bx lr - nop -_021EDF40: .word 0x000018C5 -_021EDF44: .word 0x00000868 - thumb_func_end ov18_021EDF14 - - thumb_func_start ov18_021EDF48 -ov18_021EDF48: ; 0x021EDF48 - push {r4, r5, r6, r7} - mov r6, #0 - cmp r3, #0 - bls _021EDF80 - sub r5, r3, #1 - lsl r5, r5, #0x18 - add r4, r6, #0 - asr r5, r5, #0x18 -_021EDF58: - mov r7, #0 - ldrsb r7, [r0, r7] - add r7, r7, r2 - strb r7, [r0] - mov r7, #0 - ldrsb r7, [r0, r7] - cmp r7, #0 - bge _021EDF6C - strb r5, [r0] - b _021EDF72 -_021EDF6C: - cmp r7, r3 - blt _021EDF72 - strb r4, [r0] -_021EDF72: - mov r7, #0 - ldrsb r7, [r0, r7] - cmp r7, r1 - bne _021EDF80 - add r6, r6, #1 - cmp r6, r3 - blo _021EDF58 -_021EDF80: - pop {r4, r5, r6, r7} - bx lr - thumb_func_end ov18_021EDF48 - - thumb_func_start ov18_021EDF84 -ov18_021EDF84: ; 0x021EDF84 - push {r4, r5, r6, lr} - ldr r2, _021EDFEC ; =0x000018C4 - add r5, r0, #0 - add r6, r1, #0 - ldrsb r1, [r5, r2] - cmp r1, #3 - bge _021EDF96 - mov r0, #0 - pop {r4, r5, r6, pc} -_021EDF96: - add r1, r2, #3 - ldrb r3, [r5, r1] - mov r1, #0x1f - bic r3, r1 - add r1, r2, #3 - strb r3, [r5, r1] - bl ov18_021F6990 - ldr r3, _021EDFF0 ; =0x000018C5 - add r2, r6, #0 - add r1, r3, #1 - ldrsb r4, [r5, r3] - add r0, r5, r3 - sub r3, r3, #1 - ldrsb r1, [r5, r1] - ldrb r3, [r5, r3] - bl ov18_021EDF48 - ldr r0, _021EDFF0 ; =0x000018C5 - ldrsb r2, [r5, r0] - cmp r2, r4 - bne _021EDFC6 - mov r0, #0 - pop {r4, r5, r6, pc} -_021EDFC6: - add r0, r5, #0 - mov r1, #0xe - bl ov18_021F6844 - ldr r2, _021EDFF0 ; =0x000018C5 - add r0, r5, #0 - ldrsb r2, [r5, r2] - mov r1, #1 - bl ov18_021F6984 - ldr r2, _021EDFF0 ; =0x000018C5 - add r0, r5, #0 - ldrsb r2, [r5, r2] - mov r1, #6 - bl ov18_021F0F68 - mov r0, #1 - pop {r4, r5, r6, pc} - nop -_021EDFEC: .word 0x000018C4 -_021EDFF0: .word 0x000018C5 - thumb_func_end ov18_021EDF84 - - thumb_func_start ov18_021EDFF4 -ov18_021EDFF4: ; 0x021EDFF4 - push {r4, r5, r6, lr} - ldr r2, _021EE060 ; =0x000018C4 - add r5, r0, #0 - add r6, r1, #0 - ldrsb r1, [r5, r2] - cmp r1, #3 - bge _021EE006 - mov r0, #0 - pop {r4, r5, r6, pc} -_021EE006: - add r1, r2, #3 - ldrb r3, [r5, r1] - mov r1, #0x1f - bic r3, r1 - mov r1, #1 - orr r3, r1 - add r1, r2, #3 - strb r3, [r5, r1] - bl ov18_021F6990 - ldr r3, _021EE064 ; =0x000018C6 - add r2, r6, #0 - sub r1, r3, #1 - ldrsb r4, [r5, r3] - add r0, r5, r3 - sub r3, r3, #2 - ldrsb r1, [r5, r1] - ldrb r3, [r5, r3] - bl ov18_021EDF48 - ldr r0, _021EE064 ; =0x000018C6 - ldrsb r2, [r5, r0] - cmp r2, r4 - bne _021EE03A - mov r0, #0 - pop {r4, r5, r6, pc} -_021EE03A: - add r0, r5, #0 - mov r1, #0xf - bl ov18_021F6844 - ldr r2, _021EE064 ; =0x000018C6 - add r0, r5, #0 - ldrsb r2, [r5, r2] - mov r1, #2 - bl ov18_021F6984 - ldr r2, _021EE064 ; =0x000018C6 - add r0, r5, #0 - ldrsb r2, [r5, r2] - mov r1, #7 - bl ov18_021F0F68 - mov r0, #1 - pop {r4, r5, r6, pc} - nop -_021EE060: .word 0x000018C4 -_021EE064: .word 0x000018C6 - thumb_func_end ov18_021EDFF4 - - thumb_func_start ov18_021EE068 -ov18_021EE068: ; 0x021EE068 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, _021EE0C4 ; =0x00000868 - add r4, r5, r0 - ldr r0, [r4] - cmp r0, #0 - beq _021EE080 - cmp r0, #1 - beq _021EE09E - cmp r0, #2 - beq _021EE0B0 - pop {r3, r4, r5, pc} -_021EE080: - mov r0, #0x25 - mov r1, #0x20 - bl Heap_Alloc - str r0, [r4, #4] - ldr r1, [r4, #4] - add r0, r5, #0 - bl ov18_021F504C - ldr r0, _021EE0C8 ; =0x00000884 - bl PlaySE - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] -_021EE09E: - ldr r0, [r4, #4] - bl ov18_021F50C0 - cmp r0, #0 - bne _021EE0C0 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, pc} -_021EE0B0: - ldr r0, [r4, #4] - bl ov18_021F516C - cmp r0, #0 - bne _021EE0C0 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] -_021EE0C0: - pop {r3, r4, r5, pc} - nop -_021EE0C4: .word 0x00000868 -_021EE0C8: .word 0x00000884 - thumb_func_end ov18_021EE068 - - thumb_func_start ov18_021EE0CC -ov18_021EE0CC: ; 0x021EE0CC - push {r4, lr} - add r4, r0, #0 - ldr r0, _021EE0E8 ; =0x0000086C - ldr r0, [r4, r0] - bl Heap_Free - ldr r0, _021EE0EC ; =0x00000868 - mov r1, #0 - add r0, r4, r0 - mov r2, #0x10 - bl MI_CpuFill8 - pop {r4, pc} - nop -_021EE0E8: .word 0x0000086C -_021EE0EC: .word 0x00000868 - thumb_func_end ov18_021EE0CC - - thumb_func_start ov18_021EE0F0 -ov18_021EE0F0: ; 0x021EE0F0 - push {r3, r4} - ldr r3, _021EE11C ; =0x000018CA - ldrsb r4, [r0, r3] - add r4, r4, r1 - bmi _021EE102 - add r3, #0x36 - ldr r1, [r0, r3] - cmp r4, r1 - blt _021EE108 -_021EE102: - mov r0, #0 - pop {r3, r4} - bx lr -_021EE108: - ldr r1, _021EE120 ; =0x00000868 - add r1, r0, r1 - mov r0, #0 - strb r0, [r1] - strb r0, [r1, #1] - strb r2, [r1, #2] - mov r0, #1 - pop {r3, r4} - bx lr - nop -_021EE11C: .word 0x000018CA -_021EE120: .word 0x00000868 - thumb_func_end ov18_021EE0F0 - - thumb_func_start ov18_021EE124 -ov18_021EE124: ; 0x021EE124 - ldr r2, _021EE13C ; =0x000018C9 - ldrsb r3, [r0, r2] - cmp r3, r1 - bne _021EE130 - mov r0, #0 - bx lr -_021EE130: - strb r1, [r0, r2] - mov r3, #0 - add r1, r2, #1 - strb r3, [r0, r1] - mov r0, #1 - bx lr - .balign 4, 0 -_021EE13C: .word 0x000018C9 - thumb_func_end ov18_021EE124 - - thumb_func_start ov18_021EE140 -ov18_021EE140: ; 0x021EE140 - ldr r3, _021EE16C ; =0x00001860 - ldr r2, [r0, r3] - cmp r2, #0 - bne _021EE14C - mov r0, #0 - bx lr -_021EE14C: - add r2, r3, #0 - add r2, #0x68 - ldrsb r2, [r0, r2] - cmp r2, r1 - bne _021EE15A - mov r0, #0 - bx lr -_021EE15A: - add r2, r3, #0 - add r2, #0x68 - strb r1, [r0, r2] - mov r1, #0 - add r3, #0x6a - strb r1, [r0, r3] - mov r0, #1 - bx lr - nop -_021EE16C: .word 0x00001860 - thumb_func_end ov18_021EE140 - - thumb_func_start ov18_021EE170 -ov18_021EE170: ; 0x021EE170 - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - ldr r0, _021EE1F4 ; =0x00001860 - ldr r1, [r4, r0] - cmp r1, #0 - beq _021EE1F0 - add r0, #0x68 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _021EE1B8 - mov r0, #7 - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #0xc - str r0, [sp, #8] - ldr r0, [r4, #4] - mov r1, #0 - mov r2, #9 - mov r3, #1 - bl BgTilemapRectChangePalette - mov r0, #7 - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #0xa - str r0, [sp, #8] - ldr r0, [r4, #4] - mov r1, #0 - mov r2, #0x18 - mov r3, #1 - bl BgTilemapRectChangePalette - b _021EE1E8 -_021EE1B8: - mov r0, #7 - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #0xa - str r0, [sp, #8] - ldr r0, [r4, #4] - mov r1, #0 - mov r2, #9 - mov r3, #1 - bl BgTilemapRectChangePalette - mov r0, #7 - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #0xc - str r0, [sp, #8] - ldr r0, [r4, #4] - mov r1, #0 - mov r2, #0x18 - mov r3, #1 - bl BgTilemapRectChangePalette -_021EE1E8: - ldr r0, [r4, #4] - mov r1, #0 - bl ScheduleBgTilemapBufferTransfer -_021EE1F0: - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021EE1F4: .word 0x00001860 - thumb_func_end ov18_021EE170 - - thumb_func_start ov18_021EE1F8 -ov18_021EE1F8: ; 0x021EE1F8 - push {r3, lr} - mov r2, #0 - add r3, r2, #0 - ldr r0, [r0, #4] - mov r1, #4 - sub r3, #0x48 - bl ScheduleSetBgPosText - pop {r3, pc} - .balign 4, 0 - thumb_func_end ov18_021EE1F8 - - thumb_func_start ov18_021EE20C -ov18_021EE20C: ; 0x021EE20C - push {r3, lr} - mov r2, #0 - ldr r0, [r0, #4] - mov r1, #4 - add r3, r2, #0 - bl ScheduleSetBgPosText - pop {r3, pc} - thumb_func_end ov18_021EE20C - - thumb_func_start ov18_021EE21C -ov18_021EE21C: ; 0x021EE21C - push {r4, lr} - add r4, r0, #0 - ldr r0, _021EE268 ; =0x000018C8 - ldrsb r0, [r4, r0] - cmp r0, #0 - ldr r0, [r4, #4] - bne _021EE24A - mov r1, #4 - bl GetBgHOffset - mov r1, #0x47 - mvn r1, r1 - cmp r0, r1 - bne _021EE23C - mov r0, #0 - pop {r4, pc} -_021EE23C: - ldr r0, [r4, #4] - mov r1, #4 - mov r2, #2 - mov r3, #8 - bl ScheduleSetBgPosText - b _021EE264 -_021EE24A: - mov r1, #4 - bl GetBgHOffset - cmp r0, #0x68 - bne _021EE258 - mov r0, #0 - pop {r4, pc} -_021EE258: - ldr r0, [r4, #4] - mov r1, #4 - mov r2, #1 - mov r3, #8 - bl ScheduleSetBgPosText -_021EE264: - mov r0, #1 - pop {r4, pc} - .balign 4, 0 -_021EE268: .word 0x000018C8 - thumb_func_end ov18_021EE21C + .extern ov18_021E5900 + .extern ov18_021E5904 + .extern ov18_021E5908 + .extern ov18_021E590C + .extern ov18_021E595C + .extern ov18_021E59A8 + .extern ov18_021E613C + .extern ov18_021E6D10 + .extern ov18_021E7698 + .extern ov18_021E8AB0 + .extern ov18_021E8ACC + .extern ov18_021E8AE0 + .extern ov18_021E8B0C + .extern ov18_021E8B18 + .extern ov18_021E8B24 + .extern ov18_021E8B5C - thumb_func_start ov18_021EE26C -ov18_021EE26C: ; 0x021EE26C - push {r3, r4, r5, lr} - ldr r1, _021EE30C ; =0x000018CB - add r4, r0, #0 - ldrb r3, [r4, r1] - lsl r2, r3, #0x18 - lsr r2, r2, #0x1f - beq _021EE280 - cmp r2, #1 - beq _021EE2AA - b _021EE2F0 -_021EE280: - mov r2, #0x3f - add r0, r3, #0 - bic r0, r2 - lsl r2, r3, #0x1a - lsr r2, r2, #0x1a - add r2, r2, #1 - lsl r2, r2, #0x18 - lsr r3, r2, #0x18 - mov r2, #0x3f - and r2, r3 - orr r0, r2 - strb r0, [r4, r1] - ldrb r2, [r4, r1] - lsl r0, r2, #0x1a - lsr r0, r0, #0x1a - cmp r0, #0xf - bne _021EE2F0 - mov r0, #0x80 - orr r0, r2 - strb r0, [r4, r1] - b _021EE2F0 -_021EE2AA: - add r2, r3, #0 - lsl r3, r3, #0x1a - lsr r3, r3, #0x1a - add r3, #0xff - mov r5, #0x3f - lsl r3, r3, #0x18 - bic r2, r5 - lsr r5, r3, #0x18 - mov r3, #0x3f - and r3, r5 - orr r2, r3 - strb r2, [r4, r1] - ldrb r3, [r4, r1] - lsl r2, r3, #0x1a - lsr r2, r2, #0x1a - bne _021EE2F0 - mov r2, #0x80 - bic r3, r2 - strb r3, [r4, r1] - ldrb r5, [r4, r1] - mov r3, #0x40 - add r2, r5, #0 - bic r2, r3 - lsl r3, r5, #0x19 - lsr r5, r3, #0x1f - mov r3, #1 - eor r3, r5 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - lsl r3, r3, #0x1f - lsr r3, r3, #0x19 - orr r2, r3 - strb r2, [r4, r1] - bl ov18_021F463C -_021EE2F0: - ldr r0, _021EE30C ; =0x000018CB - mov r1, #0 - ldrb r0, [r4, r0] - mov r2, #1 - lsl r0, r0, #0x1a - lsr r3, r0, #0x1a - mov r0, #0x1f - sub r0, r0, r3 - str r0, [sp] - ldr r0, _021EE310 ; =0x04001050 - bl G2x_SetBlendAlpha_ - pop {r3, r4, r5, pc} - nop -_021EE30C: .word 0x000018CB -_021EE310: .word 0x04001050 - thumb_func_end ov18_021EE26C + .text - thumb_func_start ov18_021EE314 -ov18_021EE314: ; 0x021EE314 - push {r3, r4, lr} - sub sp, #4 - ldr r2, _021EE354 ; =0x000018CB - add r4, r0, #0 - ldrb r3, [r4, r2] - mov r1, #0x80 - bic r3, r1 - strb r3, [r4, r2] - ldrb r3, [r4, r2] - mov r1, #0x3f - bic r3, r1 - strb r3, [r4, r2] - ldrb r3, [r4, r2] - mov r1, #0x40 - bic r3, r1 - strb r3, [r4, r2] - bl ov18_021F463C - ldr r0, _021EE354 ; =0x000018CB - mov r1, #0 - ldrb r0, [r4, r0] - mov r2, #1 - lsl r0, r0, #0x1a - lsr r3, r0, #0x1a - mov r0, #0x1f - sub r0, r0, r3 - str r0, [sp] - ldr r0, _021EE358 ; =0x04001050 - bl G2x_SetBlendAlpha_ - add sp, #4 - pop {r3, r4, pc} .balign 4, 0 -_021EE354: .word 0x000018CB -_021EE358: .word 0x04001050 - thumb_func_end ov18_021EE314 thumb_func_start ov18_021EE35C ov18_021EE35C: ; 0x021EE35C @@ -17177,7 +116,7 @@ _021EE3F8: .word 0x00000664 thumb_func_start ov18_021EE3FC ov18_021EE3FC: ; 0x021EE3FC push {r4, r5, r6, lr} - ldr r1, _021EE448 ; =_021F9F3C + ldr r1, _021EE448 ; =ov18_021F9F3C mov r2, #0x14 add r5, r0, #0 bl ov18_021EE35C @@ -17207,7 +146,7 @@ ov18_021EE3FC: ; 0x021EE3FC bl ov18_021EE8B8 pop {r4, r5, r6, pc} .balign 4, 0 -_021EE448: .word _021F9F3C +_021EE448: .word ov18_021F9F3C thumb_func_end ov18_021EE3FC thumb_func_start ov18_021EE44C @@ -18436,7 +1375,7 @@ _021EEE54: .word 0x0000185C thumb_func_start ov18_021EEE58 ov18_021EEE58: ; 0x021EEE58 push {r4, lr} - ldr r1, _021EEE80 ; =_021F9FDC + ldr r1, _021EEE80 ; =ov18_021F9FDC add r4, r0, #0 mov r2, #0x65 bl ov18_021EE35C @@ -18451,7 +1390,7 @@ ov18_021EEE58: ; 0x021EEE58 bl ov18_021EEE84 pop {r4, pc} .balign 4, 0 -_021EEE80: .word _021F9FDC +_021EEE80: .word ov18_021F9FDC thumb_func_end ov18_021EEE58 thumb_func_start ov18_021EEE84 @@ -19676,7 +2615,7 @@ ov18_021EF848: ; 0x021EF848 bl ov18_021F9648 mov r0, #0xbf lsl r0, r0, #2 - ldr r5, _021EF910 ; =_021F9E1E + ldr r5, _021EF910 ; =ov18_021F9DE4 + 7 * 8 + 2 mov r7, #0x2f add r4, r6, r0 _021EF88A: @@ -19740,7 +2679,7 @@ _021EF8F6: .balign 4, 0 _021EF908: .word 0x00020100 _021EF90C: .word 0x0000065C -_021EF910: .word _021F9E1E +_021EF910: .word ov18_021F9DE4 + 7 * 8 + 2 _021EF914: .word 0x00001870 _021EF918: .word 0x00001874 thumb_func_end ov18_021EF848 @@ -20191,7 +3130,7 @@ _021EFCCA: str r0, [sp, #4] ldr r0, _021EFCF4 ; =0x00020100 lsl r3, r2, #1 - ldr r2, _021EFCF8 ; =_021F9DC0 + ldr r2, _021EFCF8 ; =ov18_021F9DC0 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] @@ -20205,7 +3144,7 @@ _021EFCCA: pop {r4, r5, r6, r7, pc} nop _021EFCF4: .word 0x00020100 -_021EFCF8: .word _021F9DC0 +_021EFCF8: .word ov18_021F9DC0 _021EFCFC: .word 0x0000065C thumb_func_end ov18_021EFC9C @@ -20775,7 +3714,7 @@ _021F0196: add r1, #0x11 bl sub_02019B08 add r2, r0, #0 - ldr r0, _021F01D0 ; =_021F9E4C + ldr r0, _021F01D0 ; =ov18_021F9E4C lsl r1, r4, #3 add r0, r0, r1 add r0, #0x46 @@ -20799,7 +3738,7 @@ _021F01AE: blo _021F0196 pop {r3, r4, r5, r6, r7, pc} nop -_021F01D0: .word _021F9E4C +_021F01D0: .word ov18_021F9E4C thumb_func_end ov18_021F018C thumb_func_start ov18_021F01D4 @@ -20815,7 +3754,7 @@ _021F01DE: add r1, #0x11 bl sub_02019B08 add r2, r0, #0 - ldr r0, _021F0218 ; =_021F9EBC + ldr r0, _021F0218 ; =ov18_021F9EBC lsl r1, r4, #3 add r0, r0, r1 add r0, #0x56 @@ -20839,14 +3778,14 @@ _021F01F6: blo _021F01DE pop {r3, r4, r5, r6, r7, pc} nop -_021F0218: .word _021F9EBC +_021F0218: .word ov18_021F9EBC thumb_func_end ov18_021F01D4 thumb_func_start ov18_021F021C ov18_021F021C: ; 0x021F021C push {r3, r4, r5, lr} sub sp, #0x10 - ldr r1, _021F03A4 ; =_021F9E4C + ldr r1, _021F03A4 ; =ov18_021F9E4C add r5, r0, #0 mov r2, #0xe bl ov18_021EE35C @@ -21017,7 +3956,7 @@ _021F0364: add sp, #0x10 pop {r3, r4, r5, pc} .balign 4, 0 -_021F03A4: .word _021F9E4C +_021F03A4: .word ov18_021F9E4C _021F03A8: .word 0x00020100 _021F03AC: .word 0x0000065C _021F03B0: .word 0x000018A2 @@ -21303,7 +4242,7 @@ _021F05E4: .word 0x0000065C ov18_021F05E8: ; 0x021F05E8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 - ldr r1, _021F0820 ; =_021F9DE4 + ldr r1, _021F0820 ; =ov18_021F9DE4 mov r2, #0xd add r5, r0, #0 bl ov18_021EE35C @@ -21568,7 +4507,7 @@ _021F080E: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 -_021F0820: .word _021F9DE4 +_021F0820: .word ov18_021F9DE4 _021F0824: .word 0x000018A2 _021F0828: .word 0x00020100 _021F082C: .word 0x0000065C @@ -21599,7 +4538,7 @@ _021F0842: ov18_021F0858: ; 0x021F0858 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 - ldr r1, _021F08D0 ; =_021F9DB0 + ldr r1, _021F08D0 ; =ov18_021F9DB0 mov r2, #2 add r5, r0, #0 bl ov18_021EE35C @@ -21655,7 +4594,7 @@ _021F08BE: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 -_021F08D0: .word _021F9DB0 +_021F08D0: .word ov18_021F9DB0 _021F08D4: .word 0x00020100 _021F08D8: .word 0x0000065C _021F08DC: .word 0x000F0C00 @@ -21683,7 +4622,7 @@ _021F08EA: thumb_func_start ov18_021F0900 ov18_021F0900: ; 0x021F0900 push {r4, lr} - ldr r1, _021F0914 ; =_021F9EBC + ldr r1, _021F0914 ; =ov18_021F9EBC add r4, r0, #0 mov r2, #0x10 bl ov18_021EE35C @@ -21691,7 +4630,7 @@ ov18_021F0900: ; 0x021F0900 bl ov18_021F0928 pop {r4, pc} .balign 4, 0 -_021F0914: .word _021F9EBC +_021F0914: .word ov18_021F9EBC thumb_func_end ov18_021F0900 thumb_func_start ov18_021F0918 @@ -21798,7 +4737,7 @@ ov18_021F09D8: ; 0x021F09D8 ldrh r0, [r4, r2] ldr r3, _021F0B68 ; =0x0000019D cmp r0, r3 - bgt _021F0A1E + bgt ov18_021F0A1E sub r5, r3, #1 cmp r0, r5 blt _021F09FA @@ -21810,30 +4749,30 @@ ov18_021F09D8: ; 0x021F09D8 b _021F0B1E _021F09FA: cmp r0, #0xc9 - bgt _021F0A06 + bgt ov18_021F0A06 bge _021F0A76 cmp r0, #0xac beq _021F0AFC b _021F0B1E -_021F0A06: +ov18_021F0A06: add r5, r3, #0 sub r5, #0x3e cmp r0, r5 - bgt _021F0A16 + bgt ov18_021F0A16 sub r3, #0x3e cmp r0, r3 beq _021F0ADC b _021F0B1E -_021F0A16: +ov18_021F0A16: sub r3, #0x1b cmp r0, r3 beq _021F0A9C b _021F0B1E -_021F0A1E: +ov18_021F0A1E: add r5, r3, #0 add r5, #0x42 cmp r0, r5 - bgt _021F0A5E + bgt ov18_021F0A5E add r5, r3, #0 add r5, #0x42 cmp r0, r5 @@ -21841,12 +4780,12 @@ _021F0A1E: add r5, r3, #0 add r5, #8 cmp r0, r5 - bgt _021F0A3E + bgt ov18_021F0A3E add r3, #8 cmp r0, r3 beq _021F0AEC b _021F0B1E -_021F0A3E: +ov18_021F0A3E: add r2, r3, #0 add r2, #0xa cmp r0, r2 @@ -21863,16 +4802,16 @@ _021F0A3E: cmp r0, r3 beq _021F0A7C b _021F0B1E -_021F0A5E: +ov18_021F0A5E: add r5, r3, #0 add r5, #0x4a cmp r0, r5 - bgt _021F0A6E + bgt ov18_021F0A6E add r3, #0x4a cmp r0, r3 beq _021F0ABC b _021F0B1E -_021F0A6E: +ov18_021F0A6E: add r3, #0x4f cmp r0, r3 beq _021F0AAC @@ -22582,7 +5521,7 @@ ov18_021F1024: ; 0x021F1024 bl SpriteManager_New ldr r7, _021F10B8 ; =0x0000066C add r2, sp, #0x2c - ldr r3, _021F10BC ; =_021FA3C8 + ldr r3, _021F10BC ; =ov18_021FA3C8 str r0, [r4, r7] ldmia r3!, {r0, r1} add r6, r2, #0 @@ -22592,7 +5531,7 @@ ov18_021F1024: ; 0x021F1024 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} - ldr r5, _021F10C0 ; =_021FA36C + ldr r5, _021F10C0 ; =ov18_021FA36C stmia r2!, {r0, r1} add r3, sp, #0x18 ldmia r5!, {r0, r1} @@ -22607,7 +5546,7 @@ ov18_021F1024: ; 0x021F1024 ldr r0, [r4, r0] mov r3, #0x20 bl SpriteSystem_Init - ldr r3, _021F10C4 ; =_021FA380 + ldr r3, _021F10C4 ; =ov18_021FA380 add r2, sp, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} @@ -22639,9 +5578,9 @@ ov18_021F1024: ; 0x021F1024 .balign 4, 0 _021F10B4: .word 0x00000668 _021F10B8: .word 0x0000066C -_021F10BC: .word _021FA3C8 -_021F10C0: .word _021FA36C -_021F10C4: .word _021FA380 +_021F10BC: .word ov18_021FA3C8 +_021F10C0: .word ov18_021FA36C +_021F10C4: .word ov18_021FA380 thumb_func_end ov18_021F1024 thumb_func_start ov18_021F10C8 @@ -23107,7 +6046,7 @@ ov18_021F1424: ; 0x021F1424 sub sp, #0x68 add r7, r0, #0 lsl r0, r1, #2 - ldr r3, _021F147C ; =_021FA3E8 + ldr r3, _021F147C ; =ov18_021FA3E8 mov r4, #0 add r5, r7, r0 add r2, sp, #0 @@ -23149,7 +6088,7 @@ _021F1448: add sp, #0x68 pop {r3, r4, r5, r6, r7, pc} nop -_021F147C: .word _021FA3E8 +_021F147C: .word ov18_021FA3E8 _021F1480: .word 0x0000066C _021F1484: .word 0x0000C550 _021F1488: .word 0x00000668 @@ -23862,7 +6801,7 @@ ov18_021F1A30: ; 0x021F1A30 add r1, r1, #4 mov r3, #2 ldr r1, [r5, r1] - ldr r2, _021F1A70 ; =_021FABC0 + ldr r2, _021F1A70 ; =ov18_021FABC0 lsl r3, r3, #0x14 bl SpriteSystem_NewSpriteWithYOffset mov r1, #0x67 @@ -23875,7 +6814,7 @@ ov18_021F1A30: ; 0x021F1A30 sub r1, r1, #4 ldr r0, [r5, r0] ldr r1, [r5, r1] - ldr r2, _021F1A74 ; =_021FABF4 + ldr r2, _021F1A74 ; =ov18_021FABF4 lsl r3, r3, #0x14 bl SpriteSystem_NewSpriteWithYOffset ldr r1, _021F1A78 ; =0x00000674 @@ -23884,8 +6823,8 @@ ov18_021F1A30: ; 0x021F1A30 pop {r3, r4, r5, pc} .balign 4, 0 _021F1A6C: .word 0x00000668 -_021F1A70: .word _021FABC0 -_021F1A74: .word _021FABF4 +_021F1A70: .word ov18_021FABC0 +_021F1A74: .word ov18_021FABF4 _021F1A78: .word 0x00000674 thumb_func_end ov18_021F1A30 @@ -23895,7 +6834,7 @@ ov18_021F1A7C: ; 0x021F1A7C sub sp, #0x40 str r2, [sp, #0x14] str r3, [sp, #0x18] - ldr r3, _021F1BC0 ; =_021FA328 + ldr r3, _021F1BC0 ; =ov18_021FA328 add r2, sp, #0x20 add r5, r0, #0 add r4, r1, #0 @@ -24042,7 +6981,7 @@ _021F1BB4: add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} nop -_021F1BC0: .word _021FA328 +_021F1BC0: .word ov18_021FA328 _021F1BC4: .word 0x00000147 thumb_func_end ov18_021F1A7C @@ -24282,7 +7221,7 @@ ov18_021F1D98: ; 0x021F1D98 mov r3, #2 ldr r0, [r6, r0] ldr r1, [r6, r1] - ldr r2, _021F1DD8 ; =_021FA450 + ldr r2, _021F1DD8 ; =ov18_021FA450 lsl r3, r3, #0x14 bl SpriteSystem_NewSpriteWithYOffset str r0, [r5, r4] @@ -24299,7 +7238,7 @@ ov18_021F1D98: ; 0x021F1D98 bl ManagedSprite_SetDrawFlag pop {r4, r5, r6, pc} .balign 4, 0 -_021F1DD8: .word _021FA450 +_021F1DD8: .word ov18_021FA450 _021F1DDC: .word 0x0000066C _021F1DE0: .word 0x0000C55B thumb_func_end ov18_021F1D98 @@ -24537,7 +7476,7 @@ _021F1FD8: .word 0x0000C555 ov18_021F1FDC: ; 0x021F1FDC push {r3, r4, r5, r6, lr} sub sp, #0x34 - ldr r6, _021F207C ; =_021FA41C + ldr r6, _021F207C ; =ov18_021FA41C add r4, r0, #0 add r2, r1, #0 add r5, sp, #0 @@ -24612,7 +7551,7 @@ _021F1FEA: add sp, #0x34 pop {r3, r4, r5, r6, pc} nop -_021F207C: .word _021FA41C +_021F207C: .word ov18_021FA41C _021F2080: .word 0x00000668 _021F2084: .word 0x0000C595 _021F2088: .word 0x00000678 @@ -25083,7 +8022,7 @@ _021F2464: .word 0x00000668 ov18_021F2468: ; 0x021F2468 push {r4, r5, r6, r7, lr} sub sp, #0x34 - ldr r4, _021F24D0 ; =_021FA484 + ldr r4, _021F24D0 ; =ov18_021FA484 add r7, r0, #0 add r3, sp, #0 mov r2, #6 @@ -25124,17 +8063,17 @@ _021F248A: add r5, r5, #4 cmp r6, #0x17 bls _021F248A - ldr r2, _021F24DC ; =_021FAB24 + ldr r2, _021F24DC ; =ov18_021FAB24 add r0, r7, #0 mov r1, #8 bl ov18_021F2424 add sp, #0x34 pop {r4, r5, r6, r7, pc} nop -_021F24D0: .word _021FA484 +_021F24D0: .word ov18_021FA484 _021F24D4: .word 0x0000066C _021F24D8: .word 0x0000C55A -_021F24DC: .word _021FAB24 +_021F24DC: .word ov18_021FAB24 thumb_func_end ov18_021F2468 thumb_func_start ov18_021F24E0 @@ -25700,7 +8639,7 @@ ov18_021F2964: ; 0x021F2964 ov18_021F299C: ; 0x021F299C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 - ldr r6, _021F2A0C ; =_021FA984 + ldr r6, _021F2A0C ; =ov18_021FA984 mov r7, #0 add r4, r5, #0 _021F29A6: @@ -25732,7 +8671,7 @@ _021F29A6: ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] - ldr r2, _021F2A1C ; =_021FAB58 + ldr r2, _021F2A1C ; =ov18_021FAB58 lsl r3, r3, #0x14 bl SpriteSystem_NewSpriteWithYOffset ldr r1, _021F2A20 ; =0x00000694 @@ -25743,20 +8682,20 @@ _021F29A6: sub r1, #0x28 ldr r0, [r5, r0] ldr r1, [r5, r1] - ldr r2, _021F2A24 ; =_021FAB8C + ldr r2, _021F2A24 ; =ov18_021FAB8C lsl r3, r3, #0x14 bl SpriteSystem_NewSpriteWithYOffset ldr r1, _021F2A28 ; =0x00000698 str r0, [r5, r1] pop {r3, r4, r5, r6, r7, pc} nop -_021F2A0C: .word _021FA984 +_021F2A0C: .word ov18_021FA984 _021F2A10: .word 0x00000668 _021F2A14: .word 0x0000066C _021F2A18: .word 0x0000068C -_021F2A1C: .word _021FAB58 +_021F2A1C: .word ov18_021FAB58 _021F2A20: .word 0x00000694 -_021F2A24: .word _021FAB8C +_021F2A24: .word ov18_021FAB8C _021F2A28: .word 0x00000698 thumb_func_end ov18_021F299C @@ -26076,7 +9015,7 @@ ov18_021F2C5C: ; 0x021F2C5C ov18_021F2C74: ; 0x021F2C74 push {r3, lr} bl ov18_021F891C - ldr r3, _021F2C94 ; =_021FA398 + ldr r3, _021F2C94 ; =ov18_021FA398 mov r2, #0 _021F2C7E: ldrh r1, [r3] @@ -26091,7 +9030,7 @@ _021F2C8C: add r0, r2, #0 pop {r3, pc} nop -_021F2C94: .word _021FA398 +_021F2C94: .word ov18_021FA398 thumb_func_end ov18_021F2C74 thumb_func_start ov18_021F2C98 @@ -26103,11 +9042,11 @@ ov18_021F2C98: ; 0x021F2C98 lsl r0, r0, #4 ldr r0, [r1, r0] bl ManagedSprite_GetActiveAnim - ldr r1, _021F2CB0 ; =_021FA311 + ldr r1, _021F2CB0 ; =ov18_021FA310 + 1 ldrb r0, [r1, r0] pop {r3, pc} nop -_021F2CB0: .word _021FA311 +_021F2CB0: .word ov18_021FA310 + 1 thumb_func_end ov18_021F2C98 thumb_func_start ov18_021F2CB4 @@ -26730,7 +9669,7 @@ ov18_021F3190: ; 0x021F3190 ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] - ldr r2, _021F3274 ; =_021FAB58 + ldr r2, _021F3274 ; =ov18_021FAB58 lsl r3, r3, #0x14 bl SpriteSystem_NewSpriteWithYOffset mov r1, #0x72 @@ -26742,7 +9681,7 @@ ov18_021F3190: ; 0x021F3190 mov r3, #2 ldr r0, [r5, r0] ldr r1, [r5, r1] - ldr r2, _021F3278 ; =_021FAB8C + ldr r2, _021F3278 ; =ov18_021FAB8C lsl r3, r3, #0x14 bl SpriteSystem_NewSpriteWithYOffset ldr r1, _021F327C ; =0x00000724 @@ -26756,7 +9695,7 @@ ov18_021F3190: ; 0x021F3190 add r0, r5, #0 mov r1, #0x31 bl ov18_021F1FDC - ldr r4, _021F3280 ; =_021FA484 + ldr r4, _021F3280 ; =ov18_021FA484 add r3, sp, #0 mov r2, #6 _021F3200: @@ -26814,10 +9753,10 @@ _021F3252: pop {r4, r5, r6, r7, pc} nop _021F3270: .word 0x00000668 -_021F3274: .word _021FAB58 -_021F3278: .word _021FAB8C +_021F3274: .word ov18_021FAB58 +_021F3278: .word ov18_021FAB8C _021F327C: .word 0x00000724 -_021F3280: .word _021FA484 +_021F3280: .word ov18_021FA484 _021F3284: .word 0x000004F8 _021F3288: .word 0x0000047C _021F328C: .word 0x0000066C @@ -26846,7 +9785,7 @@ ov18_021F32B8: ; 0x021F32B8 push {r4, r5, r6, r7, lr} sub sp, #0x34 mov r7, #0x67 - ldr r6, _021F340C ; =_021FB004 + ldr r6, _021F340C ; =ov18_021FB004 add r5, r0, #0 mov r4, #0 lsl r7, r7, #4 @@ -26876,7 +9815,7 @@ _021F32C6: ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] - ldr r2, _021F3418 ; =_021FA520 + ldr r2, _021F3418 ; =ov18_021FA520 lsl r3, r3, #0x14 bl SpriteSystem_NewSpriteWithYOffset ldr r1, _021F341C ; =0x0000071C @@ -26890,7 +9829,7 @@ _021F32C6: ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] - ldr r2, _021F3420 ; =_021FB54C + ldr r2, _021F3420 ; =ov18_021FB54C lsl r3, r3, #0x14 bl SpriteSystem_NewSpriteWithYOffset ldr r1, _021F3424 ; =0x000006D8 @@ -26901,7 +9840,7 @@ _021F32C6: sub r1, #0x6c ldr r0, [r5, r0] ldr r1, [r5, r1] - ldr r2, _021F3428 ; =_021FB580 + ldr r2, _021F3428 ; =ov18_021FB580 lsl r3, r3, #0x14 bl SpriteSystem_NewSpriteWithYOffset ldr r1, _021F342C ; =0x000006DC @@ -26910,7 +9849,7 @@ _021F32C6: add r0, r5, #0 mov r1, #0x1b bl ov18_021F11C0 - ldr r4, _021F3430 ; =_021FA4EC + ldr r4, _021F3430 ; =ov18_021FA4EC add r3, sp, #0 mov r2, #6 _021F3350: @@ -27004,16 +9943,16 @@ _021F33F6: add sp, #0x34 pop {r4, r5, r6, r7, pc} .balign 4, 0 -_021F340C: .word _021FB004 +_021F340C: .word ov18_021FB004 _021F3410: .word 0x00000668 _021F3414: .word 0x0000066C -_021F3418: .word _021FA520 +_021F3418: .word ov18_021FA520 _021F341C: .word 0x0000071C -_021F3420: .word _021FB54C +_021F3420: .word ov18_021FB54C _021F3424: .word 0x000006D8 -_021F3428: .word _021FB580 +_021F3428: .word ov18_021FB580 _021F342C: .word 0x000006DC -_021F3430: .word _021FA4EC +_021F3430: .word ov18_021FA4EC _021F3434: .word 0x0000188C thumb_func_end ov18_021F32B8 @@ -27270,26 +10209,26 @@ ov18_021F3618: ; 0x021F3618 lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 -_021F362C: ; jump table - .short _021F3634 - _021F362C - 2 ; case 0 - .short _021F3644 - _021F362C - 2 ; case 1 - .short _021F3654 - _021F362C - 2 ; case 2 - .short _021F3688 - _021F362C - 2 ; case 3 -_021F3634: +ov18_021F362C: ; jump table + .short ov18_021F3634 - ov18_021F362C - 2 ; case 0 + .short ov18_021F3644 - ov18_021F362C - 2 ; case 1 + .short ov18_021F3654 - ov18_021F362C - 2 ; case 2 + .short ov18_021F3688 - ov18_021F362C - 2 ; case 3 +ov18_021F3634: mov r1, #1 bl ov18_021F34EC add r0, r4, #0 mov r1, #0 bl ov18_021F3544 pop {r4, pc} -_021F3644: +ov18_021F3644: mov r1, #0 bl ov18_021F34EC add r0, r4, #0 mov r1, #0 bl ov18_021F3544 pop {r4, pc} -_021F3654: +ov18_021F3654: mov r1, #1 bl ov18_021F34C4 add r0, r4, #0 @@ -27311,7 +10250,7 @@ _021F3654: mov r3, #0 bl ov18_021F3560 pop {r4, pc} -_021F3688: +ov18_021F3688: mov r1, #1 bl ov18_021F34C4 add r0, r4, #0 @@ -28173,7 +11112,7 @@ ov18_021F3D34: ; 0x021F3D34 add r4, r0, #0 bl ov18_021F2648 ldr r1, _021F3D64 ; =0x00000668 - ldr r2, _021F3D68 ; =_021FA554 + ldr r2, _021F3D68 ; =ov18_021FA554 ldr r0, [r4, r1] add r1, r1, #4 ldr r1, [r4, r1] @@ -28191,7 +11130,7 @@ ov18_021F3D34: ; 0x021F3D34 pop {r4, pc} .balign 4, 0 _021F3D64: .word 0x00000668 -_021F3D68: .word _021FA554 +_021F3D68: .word ov18_021FA554 thumb_func_end ov18_021F3D34 thumb_func_start ov18_021F3D6C @@ -28231,7 +11170,7 @@ ov18_021F3D98: ; 0x021F3D98 add r5, r7, #4 _021F3DA6: add r2, r4, #0 - ldr r1, _021F3E00 ; =_021FA610 + ldr r1, _021F3E00 ; =ov18_021FA610 sub r2, #0x34 add r0, r7, #0 add r1, r1, r2 @@ -28268,7 +11207,7 @@ _021F3DA6: bl ov18_021F4188 pop {r3, r4, r5, r6, r7, pc} nop -_021F3E00: .word _021FA610 +_021F3E00: .word ov18_021FA610 _021F3E04: .word 0x000018A2 thumb_func_end ov18_021F3D98 @@ -28581,7 +11520,7 @@ ov18_021F40A0: ; 0x021F40A0 add r4, r0, #0 lsl r2, r2, #8 ldr r2, [r4, r2] - ldr r3, _021F40DC ; =_021FA35A + ldr r3, _021F40DC ; =ov18_021FA35A lsl r2, r2, #0x18 mov r1, #5 asr r2, r2, #0x18 @@ -28600,7 +11539,7 @@ ov18_021F40A0: ; 0x021F40A0 add sp, #4 pop {r3, r4, pc} nop -_021F40DC: .word _021FA35A +_021F40DC: .word ov18_021FA35A _021F40E0: .word 0x000018CA thumb_func_end ov18_021F40A0 @@ -28702,7 +11641,7 @@ ov18_021F4188: ; 0x021F4188 add r6, #0x24 lsl r7, r7, #4 _021F4196: - ldr r1, _021F41C0 ; =_021FA4B8 + ldr r1, _021F41C0 ; =ov18_021FA4B8 add r0, r5, #0 bl ov18_021F11EC str r0, [r6, r7] @@ -28720,7 +11659,7 @@ _021F4196: blo _021F4196 pop {r3, r4, r5, r6, r7, pc} nop -_021F41C0: .word _021FA4B8 +_021F41C0: .word ov18_021FA4B8 thumb_func_end ov18_021F4188 thumb_func_start ov18_021F41C4 @@ -28993,7 +11932,7 @@ ov18_021F4384: ; 0x021F4384 ldr r0, [r5, r0] mov r4, #1 cmp r0, #1 - ble _021F4478 + ble ov18_021F4478 add r6, sp, #8 _021F43B4: add r0, r5, #0 @@ -29052,7 +11991,7 @@ _021F4400: bl ov18_021F11C0 ldrb r0, [r6] lsl r1, r0, #1 - ldr r0, _021F4618 ; =_021FA3B0 + ldr r0, _021F4618 ; =ov18_021FA3B0 add r3, r0, r1 ldrb r0, [r0, r1] lsr r2, r0, #1 @@ -29089,7 +12028,7 @@ _021F4468: ldr r0, [r5, r0] cmp r4, r0 blt _021F43B4 -_021F4478: +ov18_021F4478: add r4, #8 ldr r1, [sp, #0x14] add r0, r5, #0 @@ -29157,7 +12096,7 @@ _021F44A8: add r0, sp, #8 ldrb r1, [r0] lsl r4, r1, #1 - ldr r1, _021F4618 ; =_021FA3B0 + ldr r1, _021F4618 ; =ov18_021FA3B0 ldrb r1, [r1, r4] lsr r3, r1, #1 mov r1, #4 @@ -29170,7 +12109,7 @@ _021F44A8: add r2, r2, r3 cmp r1, r2 bge _021F4602 - ldr r1, _021F461C ; =_021FA3B1 + ldr r1, _021F461C ; =ov18_021FA3B0 + 1 mov r2, #2 ldrb r1, [r1, r4] ldrsh r3, [r0, r2] @@ -29228,7 +12167,7 @@ _021F4542: add r0, sp, #8 ldrb r1, [r0] lsl r4, r1, #1 - ldr r1, _021F4618 ; =_021FA3B0 + ldr r1, _021F4618 ; =ov18_021FA3B0 ldrb r1, [r1, r4] lsr r3, r1, #1 mov r1, #4 @@ -29241,7 +12180,7 @@ _021F4542: add r2, r2, r3 cmp r1, r2 bge _021F45D8 - ldr r1, _021F461C ; =_021FA3B1 + ldr r1, _021F461C ; =ov18_021FA3B0 + 1 mov r2, #2 ldrb r1, [r1, r4] ldrsh r3, [r0, r2] @@ -29285,8 +12224,8 @@ _021F4602: nop _021F4610: .word 0x000018CA _021F4614: .word 0x000018FC -_021F4618: .word _021FA3B0 -_021F461C: .word _021FA3B1 +_021F4618: .word ov18_021FA3B0 +_021F461C: .word ov18_021FA3B0 + 1 thumb_func_end ov18_021F4384 thumb_func_start ov18_021F4620 @@ -29323,7 +12262,7 @@ ov18_021F463C: ; 0x021F463C ldr r0, [r5, r1] mov r4, #1 cmp r0, #1 - ble _021F46EC + ble ov18_021F46EC ldr r7, _021F47B4 ; =0x000018CB add r6, r7, #0 _021F465E: @@ -29391,7 +12330,7 @@ _021F46DC: ldr r0, [r5, r0] cmp r4, r0 blt _021F465E -_021F46EC: +ov18_021F46EC: ldr r0, _021F47B4 ; =0x000018CB add r4, #8 ldrb r0, [r5, r0] @@ -29739,7 +12678,7 @@ _021F498E: add r2, #2 add r3, sp, #0xc bl ov18_021F12C8 - ldr r0, _021F49F4 ; =_021FA3B0 + ldr r0, _021F49F4 ; =ov18_021FA3B0 add r2, sp, #0xc ldrb r0, [r0] mov r1, #2 @@ -29751,7 +12690,7 @@ _021F498E: add r0, r2, r0 cmp r6, r0 bge _021F49E4 - ldr r0, _021F49F4 ; =_021FA3B0 + ldr r0, _021F49F4 ; =ov18_021FA3B0 add r2, sp, #0xc ldrb r0, [r0, #1] mov r1, #0 @@ -29777,7 +12716,7 @@ _021F49EE: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 -_021F49F4: .word _021FA3B0 +_021F49F4: .word ov18_021FA3B0 thumb_func_end ov18_021F4974 thumb_func_start ov18_021F49F8 @@ -29790,7 +12729,7 @@ ov18_021F49F8: ; 0x021F49F8 add r5, r7, #4 _021F4A06: add r2, r4, #0 - ldr r1, _021F4A4C ; =_021FA7B0 + ldr r1, _021F4A4C ; =ov18_021FA7B0 sub r2, #0x34 add r0, r7, #0 add r1, r1, r2 @@ -29819,7 +12758,7 @@ _021F4A06: bl ov18_021F11C0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 -_021F4A4C: .word _021FA7B0 +_021F4A4C: .word ov18_021FA7B0 thumb_func_end ov18_021F49F8 thumb_func_start ov18_021F4A50 @@ -30570,7 +13509,7 @@ _021F508A: sub r0, r0, r2 mov r1, #0xa bl _u32_div_f - ldr r3, _021F50BC ; =_021FA5CC + ldr r3, _021F50BC ; =ov18_021FA5CC mov r2, #0 _021F5098: ldrh r1, [r3] @@ -30590,7 +13529,7 @@ _021F50A8: nop _021F50B4: .word 0x0000019A _021F50B8: .word 0x0000184C -_021F50BC: .word _021FA5CC +_021F50BC: .word ov18_021FA5CC thumb_func_end ov18_021F504C thumb_func_start ov18_021F50C0 @@ -30683,12 +13622,12 @@ ov18_021F516C: ; 0x021F516C push {r3, lr} ldrh r1, [r0, #8] lsl r2, r1, #2 - ldr r1, _021F517C ; =_021FA588 + ldr r1, _021F517C ; =ov18_021FA588 ldr r1, [r1, r2] blx r1 pop {r3, pc} nop -_021F517C: .word _021FA588 +_021F517C: .word ov18_021FA588 thumb_func_end ov18_021F516C thumb_func_start ov18_021F5180 @@ -31400,12 +14339,12 @@ ov18_021F56DC: ; 0x021F56DC lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F56F2: ; jump table - .short _021F56FA - _021F56F2 - 2 ; case 0 - .short _021F5712 - _021F56F2 - 2 ; case 1 - .short _021F5786 - _021F56F2 - 2 ; case 2 - .short _021F5798 - _021F56F2 - 2 ; case 3 -_021F56FA: +ov18_021F56F2: ; jump table + .short ov18_021F56FA - ov18_021F56F2 - 2 ; case 0 + .short ov18_021F5712 - ov18_021F56F2 - 2 ; case 1 + .short _021F5786 - ov18_021F56F2 - 2 ; case 2 + .short ov18_021F5798 - ov18_021F56F2 - 2 ; case 3 +ov18_021F56FA: ldr r0, _021F57AC ; =0x000008EC bl PlaySE mov r1, #3 @@ -31416,7 +14355,7 @@ _021F56FA: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5712: +ov18_021F5712: ldr r1, [r4] ldr r0, _021F57B0 ; =0x0000068C ldr r0, [r1, r0] @@ -31478,7 +14417,7 @@ _021F5786: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5798: +ov18_021F5798: add r0, r4, #0 bl ov18_021F55D8 cmp r0, #0 @@ -31506,12 +14445,12 @@ ov18_021F57B4: ; 0x021F57B4 lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F57CA: ; jump table - .short _021F57D2 - _021F57CA - 2 ; case 0 - .short _021F57EA - _021F57CA - 2 ; case 1 - .short _021F585E - _021F57CA - 2 ; case 2 - .short _021F5870 - _021F57CA - 2 ; case 3 -_021F57D2: +ov18_021F57CA: ; jump table + .short ov18_021F57D2 - ov18_021F57CA - 2 ; case 0 + .short ov18_021F57EA - ov18_021F57CA - 2 ; case 1 + .short _021F585E - ov18_021F57CA - 2 ; case 2 + .short ov18_021F5870 - ov18_021F57CA - 2 ; case 3 +ov18_021F57D2: ldr r0, _021F5884 ; =0x000008EC bl PlaySE mov r1, #1 @@ -31522,7 +14461,7 @@ _021F57D2: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F57EA: +ov18_021F57EA: ldr r1, [r4] ldr r0, _021F5888 ; =0x0000068C ldr r0, [r1, r0] @@ -31584,7 +14523,7 @@ _021F585E: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5870: +ov18_021F5870: add r0, r4, #0 bl ov18_021F55D8 cmp r0, #0 @@ -31612,12 +14551,12 @@ ov18_021F588C: ; 0x021F588C lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F58A2: ; jump table - .short _021F58AA - _021F58A2 - 2 ; case 0 - .short _021F58C2 - _021F58A2 - 2 ; case 1 - .short _021F5936 - _021F58A2 - 2 ; case 2 - .short _021F5948 - _021F58A2 - 2 ; case 3 -_021F58AA: +ov18_021F58A2: ; jump table + .short ov18_021F58AA - ov18_021F58A2 - 2 ; case 0 + .short ov18_021F58C2 - ov18_021F58A2 - 2 ; case 1 + .short _021F5936 - ov18_021F58A2 - 2 ; case 2 + .short ov18_021F5948 - ov18_021F58A2 - 2 ; case 3 +ov18_021F58AA: ldr r0, _021F595C ; =0x000008EC bl PlaySE mov r1, #1 @@ -31628,7 +14567,7 @@ _021F58AA: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F58C2: +ov18_021F58C2: ldr r1, [r4] ldr r0, _021F5960 ; =0x0000068C ldr r0, [r1, r0] @@ -31690,7 +14629,7 @@ _021F5936: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5948: +ov18_021F5948: add r0, r4, #0 bl ov18_021F55D8 cmp r0, #0 @@ -31718,12 +14657,12 @@ ov18_021F5964: ; 0x021F5964 lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F597A: ; jump table - .short _021F5982 - _021F597A - 2 ; case 0 - .short _021F599A - _021F597A - 2 ; case 1 - .short _021F5A0E - _021F597A - 2 ; case 2 - .short _021F5A20 - _021F597A - 2 ; case 3 -_021F5982: +ov18_021F597A: ; jump table + .short ov18_021F5982 - ov18_021F597A - 2 ; case 0 + .short ov18_021F599A - ov18_021F597A - 2 ; case 1 + .short _021F5A0E - ov18_021F597A - 2 ; case 2 + .short ov18_021F5A20 - ov18_021F597A - 2 ; case 3 +ov18_021F5982: ldr r0, _021F5A34 ; =0x000008ED bl PlaySE mov r1, #5 @@ -31734,7 +14673,7 @@ _021F5982: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F599A: +ov18_021F599A: ldr r1, [r4] ldr r0, _021F5A38 ; =0x0000068C ldr r0, [r1, r0] @@ -31796,7 +14735,7 @@ _021F5A0E: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5A20: +ov18_021F5A20: add r0, r4, #0 bl ov18_021F55D8 cmp r0, #0 @@ -31824,12 +14763,12 @@ ov18_021F5A3C: ; 0x021F5A3C lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F5A52: ; jump table - .short _021F5A5A - _021F5A52 - 2 ; case 0 - .short _021F5A72 - _021F5A52 - 2 ; case 1 - .short _021F5AE6 - _021F5A52 - 2 ; case 2 - .short _021F5AF8 - _021F5A52 - 2 ; case 3 -_021F5A5A: +ov18_021F5A52: ; jump table + .short ov18_021F5A5A - ov18_021F5A52 - 2 ; case 0 + .short ov18_021F5A72 - ov18_021F5A52 - 2 ; case 1 + .short _021F5AE6 - ov18_021F5A52 - 2 ; case 2 + .short ov18_021F5AF8 - ov18_021F5A52 - 2 ; case 3 +ov18_021F5A5A: ldr r0, _021F5B0C ; =0x000008ED bl PlaySE mov r1, #5 @@ -31840,7 +14779,7 @@ _021F5A5A: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5A72: +ov18_021F5A72: ldr r1, [r4] ldr r0, _021F5B10 ; =0x0000068C ldr r0, [r1, r0] @@ -31902,7 +14841,7 @@ _021F5AE6: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5AF8: +ov18_021F5AF8: add r0, r4, #0 bl ov18_021F55D8 cmp r0, #0 @@ -31930,12 +14869,12 @@ ov18_021F5B14: ; 0x021F5B14 lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F5B2A: ; jump table - .short _021F5B32 - _021F5B2A - 2 ; case 0 - .short _021F5B4A - _021F5B2A - 2 ; case 1 - .short _021F5BBE - _021F5B2A - 2 ; case 2 - .short _021F5BD0 - _021F5B2A - 2 ; case 3 -_021F5B32: +ov18_021F5B2A: ; jump table + .short ov18_021F5B32 - ov18_021F5B2A - 2 ; case 0 + .short ov18_021F5B4A - ov18_021F5B2A - 2 ; case 1 + .short _021F5BBE - ov18_021F5B2A - 2 ; case 2 + .short ov18_021F5BD0 - ov18_021F5B2A - 2 ; case 3 +ov18_021F5B32: ldr r0, _021F5BE4 ; =0x000008ED bl PlaySE mov r1, #6 @@ -31946,7 +14885,7 @@ _021F5B32: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5B4A: +ov18_021F5B4A: ldr r1, [r4] ldr r0, _021F5BE8 ; =0x0000068C ldr r0, [r1, r0] @@ -32008,7 +14947,7 @@ _021F5BBE: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5BD0: +ov18_021F5BD0: add r0, r4, #0 bl ov18_021F55D8 cmp r0, #0 @@ -32036,12 +14975,12 @@ ov18_021F5BEC: ; 0x021F5BEC lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F5C02: ; jump table - .short _021F5C0A - _021F5C02 - 2 ; case 0 - .short _021F5C22 - _021F5C02 - 2 ; case 1 - .short _021F5C96 - _021F5C02 - 2 ; case 2 - .short _021F5CA8 - _021F5C02 - 2 ; case 3 -_021F5C0A: +ov18_021F5C02: ; jump table + .short ov18_021F5C0A - ov18_021F5C02 - 2 ; case 0 + .short ov18_021F5C22 - ov18_021F5C02 - 2 ; case 1 + .short _021F5C96 - ov18_021F5C02 - 2 ; case 2 + .short ov18_021F5CA8 - ov18_021F5C02 - 2 ; case 3 +ov18_021F5C0A: ldr r0, _021F5CBC ; =0x000008ED bl PlaySE mov r1, #7 @@ -32052,7 +14991,7 @@ _021F5C0A: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5C22: +ov18_021F5C22: ldr r1, [r4] ldr r0, _021F5CC0 ; =0x0000068C ldr r0, [r1, r0] @@ -32114,7 +15053,7 @@ _021F5C96: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5CA8: +ov18_021F5CA8: add r0, r4, #0 bl ov18_021F55D8 cmp r0, #0 @@ -32143,12 +15082,12 @@ ov18_021F5CC4: ; 0x021F5CC4 lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F5CDC: ; jump table - .short _021F5CE4 - _021F5CDC - 2 ; case 0 - .short _021F5CFC - _021F5CDC - 2 ; case 1 - .short _021F5D70 - _021F5CDC - 2 ; case 2 - .short _021F5D82 - _021F5CDC - 2 ; case 3 -_021F5CE4: +ov18_021F5CDC: ; jump table + .short ov18_021F5CE4 - ov18_021F5CDC - 2 ; case 0 + .short ov18_021F5CFC - ov18_021F5CDC - 2 ; case 1 + .short _021F5D70 - ov18_021F5CDC - 2 ; case 2 + .short ov18_021F5D82 - ov18_021F5CDC - 2 ; case 3 +ov18_021F5CE4: ldr r0, _021F5DB8 ; =0x000008EE bl PlaySE mov r1, #2 @@ -32159,7 +15098,7 @@ _021F5CE4: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5CFC: +ov18_021F5CFC: ldr r1, [r4] ldr r0, _021F5DBC ; =0x0000068C ldr r0, [r1, r0] @@ -32221,7 +15160,7 @@ _021F5D70: ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] -_021F5D82: +ov18_021F5D82: add r0, r4, #0 bl ov18_021F55D8 cmp r0, #0 @@ -32244,10 +15183,10 @@ _021F5D92: mov r1, #0xff mvn r1, r1 cmp r2, r1 - ble _021F5DB4 + ble ov18_021F5DB4 _021F5DB2: mov r0, #1 -_021F5DB4: +ov18_021F5DB4: add sp, #8 pop {r3, r4, r5, pc} .balign 4, 0 @@ -32305,7 +15244,7 @@ _021F5E16: ldr r0, _021F5ED8 ; =0x00000668 ldr r1, _021F5EDC ; =0x0000066C add r3, r6, #0 - ldr r2, _021F5EE0 ; =_021FAC28 + ldr r2, _021F5EE0 ; =ov18_021FAC28 sub r3, #0x34 add r2, r2, r3 mov r3, #2 @@ -32330,7 +15269,7 @@ _021F5E48: ldr r0, _021F5ED8 ; =0x00000668 ldr r1, _021F5EDC ; =0x0000066C add r3, r6, #0 - ldr r2, _021F5EE0 ; =_021FAC28 + ldr r2, _021F5EE0 ; =ov18_021FAC28 sub r3, #0x34 ldr r0, [r5, r0] ldr r1, [r5, r1] @@ -32373,7 +15312,7 @@ _021F5E48: mov r0, #9 str r0, [sp] ldr r2, _021F5EE4 ; =0x000018C4 - ldr r3, _021F5EE8 ; =_021FA348 + ldr r3, _021F5EE8 ; =ov18_021FA348 ldrsb r2, [r5, r2] add r0, r5, #0 mov r1, #5 @@ -32391,9 +15330,9 @@ _021F5E48: .balign 4, 0 _021F5ED8: .word 0x00000668 _021F5EDC: .word 0x0000066C -_021F5EE0: .word _021FAC28 +_021F5EE0: .word ov18_021FAC28 _021F5EE4: .word 0x000018C4 -_021F5EE8: .word _021FA348 +_021F5EE8: .word ov18_021FA348 _021F5EEC: .word 0x000018C5 thumb_func_end ov18_021F5E0C @@ -32871,7 +15810,7 @@ ov18_021F6258: ; 0x021F6258 add r1, #2 add r2, sp, #0 bl ManagedSprite_GetPositionXY - ldr r2, _021F62B0 ; =_021FA310 + ldr r2, _021F62B0 ; =ov18_021FA310 add r0, r6, #0 mov r1, #5 bl ov18_021F6214 @@ -32903,7 +15842,7 @@ _021F62A6: pop {r3, r4, r5, r6, pc} .balign 4, 0 _021F62AC: .word 0x00000684 -_021F62B0: .word _021FA310 +_021F62B0: .word ov18_021FA310 thumb_func_end ov18_021F6258 thumb_func_start ov18_021F62B4 @@ -32919,7 +15858,7 @@ ov18_021F62B4: ; 0x021F62B4 add r1, #2 add r2, sp, #0 bl ManagedSprite_GetPositionXY - ldr r2, _021F630C ; =_021FA304 + ldr r2, _021F630C ; =ov18_021FA304 add r0, r6, #0 mov r1, #5 bl ov18_021F6214 @@ -32951,7 +15890,7 @@ _021F6302: pop {r3, r4, r5, r6, pc} .balign 4, 0 _021F6308: .word 0x00000684 -_021F630C: .word _021FA304 +_021F630C: .word ov18_021FA304 thumb_func_end ov18_021F62B4 thumb_func_start ov18_021F6310 @@ -32968,7 +15907,7 @@ ov18_021F6310: ; 0x021F6310 bl ManagedSprite_GetPositionXY mov r0, #0x56 str r0, [sp] - ldr r2, _021F63D0 ; =_021FA310 + ldr r2, _021F63D0 ; =ov18_021FA310 add r0, r5, #0 mov r1, #5 mov r3, #0x40 @@ -32979,7 +15918,7 @@ ov18_021F6310: ; 0x021F6310 _021F633C: mov r0, #0x56 str r0, [sp] - ldr r2, _021F63D0 ; =_021FA310 + ldr r2, _021F63D0 ; =ov18_021FA310 add r0, r5, #0 mov r1, #5 mov r3, #0x40 @@ -32998,7 +15937,7 @@ _021F6352: bl ManagedSprite_SetPositionXY mov r0, #0x56 str r0, [sp] - ldr r2, _021F63D0 ; =_021FA310 + ldr r2, _021F63D0 ; =ov18_021FA310 add r0, r5, #0 mov r1, #5 mov r3, #0x40 @@ -33006,7 +15945,7 @@ _021F6352: add r7, r0, #0 mov r0, #0x56 str r0, [sp] - ldr r2, _021F63D0 ; =_021FA310 + ldr r2, _021F63D0 ; =ov18_021FA310 add r0, r5, #0 mov r1, #5 mov r3, #0x40 @@ -33049,7 +15988,7 @@ _021F63C4: pop {r3, r4, r5, r6, r7, pc} nop _021F63CC: .word 0x00000684 -_021F63D0: .word _021FA310 +_021F63D0: .word ov18_021FA310 _021F63D4: .word 0x000018C4 _021F63D8: .word 0x000018C5 thumb_func_end ov18_021F6310 @@ -33068,7 +16007,7 @@ ov18_021F63DC: ; 0x021F63DC bl ManagedSprite_GetPositionXY mov r0, #0x56 str r0, [sp] - ldr r2, _021F649C ; =_021FA304 + ldr r2, _021F649C ; =ov18_021FA304 add r0, r5, #0 mov r1, #5 mov r3, #0x60 @@ -33079,7 +16018,7 @@ ov18_021F63DC: ; 0x021F63DC _021F6408: mov r0, #0x56 str r0, [sp] - ldr r2, _021F649C ; =_021FA304 + ldr r2, _021F649C ; =ov18_021FA304 add r0, r5, #0 mov r1, #5 mov r3, #0x60 @@ -33098,7 +16037,7 @@ _021F641E: bl ManagedSprite_SetPositionXY mov r0, #0x56 str r0, [sp] - ldr r2, _021F649C ; =_021FA304 + ldr r2, _021F649C ; =ov18_021FA304 add r0, r5, #0 mov r1, #5 mov r3, #0x60 @@ -33106,7 +16045,7 @@ _021F641E: add r7, r0, #0 mov r0, #0x56 str r0, [sp] - ldr r2, _021F649C ; =_021FA304 + ldr r2, _021F649C ; =ov18_021FA304 add r0, r5, #0 mov r1, #5 mov r3, #0x60 @@ -33150,7 +16089,7 @@ _021F6492: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F6498: .word 0x00000684 -_021F649C: .word _021FA304 +_021F649C: .word ov18_021FA304 _021F64A0: .word 0x000018CA thumb_func_end ov18_021F63DC @@ -33161,7 +16100,7 @@ ov18_021F64A4: ; 0x021F64A4 add r5, r1, #0 mov r1, #0x56 str r1, [sp] - ldr r2, _021F64EC ; =_021FA310 + ldr r2, _021F64EC ; =ov18_021FA310 mov r1, #5 mov r3, #0x40 add r6, r0, #0 @@ -33169,7 +16108,7 @@ ov18_021F64A4: ; 0x021F64A4 add r4, r0, #0 mov r0, #0x56 str r0, [sp] - ldr r2, _021F64EC ; =_021FA310 + ldr r2, _021F64EC ; =ov18_021FA310 add r0, r6, #0 mov r1, #5 mov r3, #0x40 @@ -33190,7 +16129,7 @@ _021F64E6: add sp, #4 pop {r3, r4, r5, r6, pc} nop -_021F64EC: .word _021FA310 +_021F64EC: .word ov18_021FA310 _021F64F0: .word 0x000018C4 thumb_func_end ov18_021F64A4 @@ -33201,7 +16140,7 @@ ov18_021F64F4: ; 0x021F64F4 add r5, r1, #0 mov r1, #0x56 str r1, [sp] - ldr r2, _021F653C ; =_021FA304 + ldr r2, _021F653C ; =ov18_021FA304 mov r1, #5 mov r3, #0x60 add r6, r0, #0 @@ -33209,7 +16148,7 @@ ov18_021F64F4: ; 0x021F64F4 add r4, r0, #0 mov r0, #0x56 str r0, [sp] - ldr r2, _021F653C ; =_021FA304 + ldr r2, _021F653C ; =ov18_021FA304 add r0, r6, #0 mov r1, #5 mov r3, #0x60 @@ -33231,7 +16170,7 @@ _021F6538: add sp, #4 pop {r3, r4, r5, r6, pc} .balign 4, 0 -_021F653C: .word _021FA304 +_021F653C: .word ov18_021FA304 thumb_func_end ov18_021F64F4 thumb_func_start ov18_021F6540 @@ -33820,7 +16759,7 @@ ov18_021F69E8: ; 0x021F69E8 sub sp, #0x3c str r2, [sp, #0x14] str r3, [sp, #0x18] - ldr r3, _021F6AA4 ; =_021FA338 + ldr r3, _021F6AA4 ; =ov18_021FA338 add r2, sp, #0x1c add r5, r0, #0 add r4, r1, #0 @@ -33894,7 +16833,7 @@ _021F6A22: str r0, [sp, #4] str r0, [sp, #8] ldr r0, [r5, #4] - ldr r2, _021F6AAC ; =_021FB5B4 + ldr r2, _021F6AAC ; =ov18_021FB5B4 mov r1, #7 bl LoadRectToBgTilemapRect ldr r0, [r5, #4] @@ -33903,9 +16842,9 @@ _021F6A22: add sp, #0x3c pop {r4, r5, r6, r7, pc} .balign 4, 0 -_021F6AA4: .word _021FA338 +_021F6AA4: .word ov18_021FA338 _021F6AA8: .word 0x00000147 -_021F6AAC: .word _021FB5B4 +_021F6AAC: .word ov18_021FB5B4 thumb_func_end ov18_021F69E8 thumb_func_start ov18_021F6AB0 @@ -33958,7 +16897,7 @@ ov18_021F6B00: ; 0x021F6B00 bl System_GetTouchNew cmp r0, #1 bne _021F6B3A - ldr r0, _021F6BAC ; =_021FB72C + ldr r0, _021F6BAC ; =ov18_021FB72C bl TouchscreenHitbox_FindRectAtTouchNew mov r1, #0 mvn r1, r1 @@ -33968,7 +16907,7 @@ ov18_021F6B00: ; 0x021F6B00 pop {r4, pc} _021F6B24: lsl r1, r0, #2 - ldr r0, _021F6BB0 ; =_021FB6F0 + ldr r0, _021F6BB0 ; =ov18_021FB6F0 ldr r0, [r0, r1] cmp r0, #6 bne _021F6BA4 @@ -34043,8 +16982,8 @@ _021F6BA4: pop {r4, pc} nop _021F6BA8: .word 0x00000864 -_021F6BAC: .word _021FB72C -_021F6BB0: .word _021FB6F0 +_021F6BAC: .word ov18_021FB72C +_021F6BB0: .word ov18_021FB6F0 _021F6BB4: .word 0x00001860 _021F6BB8: .word gSystem thumb_func_end ov18_021F6B00 @@ -34063,7 +17002,7 @@ ov18_021F6BBC: ; 0x021F6BBC bl System_GetTouchNewCoords cmp r0, #1 bne _021F6C5C - ldr r0, _021F6DC0 ; =_021FB8A4 + ldr r0, _021F6DC0 ; =ov18_021FB8A4 bl TouchscreenHitbox_FindRectAtTouchNew mov r1, #0 mvn r1, r1 @@ -34074,7 +17013,7 @@ ov18_021F6BBC: ; 0x021F6BBC pop {r3, r4, r5, r6, r7, pc} _021F6BEA: lsl r1, r0, #2 - ldr r0, _021F6DC4 ; =_021FB84C + ldr r0, _021F6DC4 ; =ov18_021FB84C ldr r4, [r0, r1] cmp r4, #0 bne _021F6C32 @@ -34317,8 +17256,8 @@ _021F6DB4: pop {r3, r4, r5, r6, r7, pc} nop _021F6DBC: .word 0x00000864 -_021F6DC0: .word _021FB8A4 -_021F6DC4: .word _021FB84C +_021F6DC0: .word ov18_021FB8A4 +_021F6DC4: .word ov18_021FB84C _021F6DC8: .word 0x0000185A _021F6DCC: .word 0x000008E9 _021F6DD0: .word 0x000008F2 @@ -34340,9 +17279,9 @@ ov18_021F6DE0: ; 0x021F6DE0 str r0, [sp, #4] mov r0, #0x25 str r0, [sp, #8] - ldr r0, _021F6E1C ; =_021FB878 - ldr r1, _021F6E20 ; =_021FB9F0 - ldr r2, _021F6E24 ; =_021FB688 + ldr r0, _021F6E1C ; =ov18_021FB878 + ldr r1, _021F6E20 ; =ov18_021FB9F0 + ldr r2, _021F6E24 ; =ov18_021FB688 add r3, r5, #0 bl GridInputHandler_Create ldr r1, _021F6E28 ; =0x00001864 @@ -34357,9 +17296,9 @@ ov18_021F6DE0: ; 0x021F6DE0 add sp, #0xc pop {r4, r5, pc} .balign 4, 0 -_021F6E1C: .word _021FB878 -_021F6E20: .word _021FB9F0 -_021F6E24: .word _021FB688 +_021F6E1C: .word ov18_021FB878 +_021F6E20: .word ov18_021FB9F0 +_021F6E24: .word ov18_021FB688 _021F6E28: .word 0x00001864 thumb_func_end ov18_021F6DE0 @@ -34405,7 +17344,7 @@ ov18_021F6E58: ; 0x021F6E58 ldrb r2, [r2] ldr r0, [r5, r0] bl ManagedSprite_SetPositionXY - ldr r2, _021F6E94 ; =_021FBD1C + ldr r2, _021F6E94 ; =ov18_021FBD1C add r0, r5, #0 ldrb r2, [r2, r4] mov r1, #0 @@ -34413,7 +17352,7 @@ ov18_021F6E58: ; 0x021F6E58 pop {r3, r4, r5, pc} nop _021F6E90: .word 0x00001864 -_021F6E94: .word _021FBD1C +_021F6E94: .word ov18_021FBD1C thumb_func_end ov18_021F6E58 thumb_func_start ov18_021F6E98 @@ -34450,9 +17389,9 @@ ov18_021F6EC0: ; 0x021F6EC0 str r0, [sp, #4] mov r0, #0x25 str r0, [sp, #8] - ldr r0, _021F6EF8 ; =_021FB828 - ldr r1, _021F6EFC ; =_021FB968 - ldr r2, _021F6F00 ; =_021FB668 + ldr r0, _021F6EF8 ; =ov18_021FB828 + ldr r1, _021F6EFC ; =ov18_021FB968 + ldr r2, _021F6F00 ; =ov18_021FB668 add r3, r4, #0 bl GridInputHandler_Create ldr r1, _021F6F04 ; =0x00001864 @@ -34467,9 +17406,9 @@ ov18_021F6EC0: ; 0x021F6EC0 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 -_021F6EF8: .word _021FB828 -_021F6EFC: .word _021FB968 -_021F6F00: .word _021FB668 +_021F6EF8: .word ov18_021FB828 +_021F6EFC: .word ov18_021FB968 +_021F6F00: .word ov18_021FB668 _021F6F04: .word 0x00001864 thumb_func_end ov18_021F6EC0 @@ -34517,7 +17456,7 @@ ov18_021F6F38: ; 0x021F6F38 ldrb r2, [r2] ldr r0, [r5, r0] bl ManagedSprite_SetPositionXY - ldr r2, _021F6F74 ; =_021FB628 + ldr r2, _021F6F74 ; =ov18_021FB628 add r0, r5, #0 ldrb r2, [r2, r4] mov r1, #0 @@ -34525,7 +17464,7 @@ ov18_021F6F38: ; 0x021F6F38 pop {r3, r4, r5, pc} nop _021F6F70: .word 0x00001864 -_021F6F74: .word _021FB628 +_021F6F74: .word ov18_021FB628 thumb_func_end ov18_021F6F38 thumb_func_start ov18_021F6F78 @@ -34562,9 +17501,9 @@ ov18_021F6FA0: ; 0x021F6FA0 str r0, [sp, #4] mov r0, #0x25 str r0, [sp, #8] - ldr r0, _021F6FD8 ; =_021FBA94 - ldr r1, _021F6FDC ; =_021FBC34 - ldr r2, _021F6FE0 ; =_021FB6A8 + ldr r0, _021F6FD8 ; =ov18_021FBA94 + ldr r1, _021F6FDC ; =ov18_021FBC34 + ldr r2, _021F6FE0 ; =ov18_021FB6A8 add r3, r4, #0 bl GridInputHandler_Create ldr r1, _021F6FE4 ; =0x00001864 @@ -34579,9 +17518,9 @@ ov18_021F6FA0: ; 0x021F6FA0 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 -_021F6FD8: .word _021FBA94 -_021F6FDC: .word _021FBC34 -_021F6FE0: .word _021FB6A8 +_021F6FD8: .word ov18_021FBA94 +_021F6FDC: .word ov18_021FBC34 +_021F6FE0: .word ov18_021FB6A8 _021F6FE4: .word 0x00001864 thumb_func_end ov18_021F6FA0 @@ -34659,16 +17598,16 @@ ov18_021F7060: ; 0x021F7060 ldr r0, _021F70F0 ; =0x0000189C ldr r0, [r5, r0] lsl r1, r0, #3 - ldr r0, _021F70F4 ; =_021FBC34 + ldr r0, _021F70F4 ; =ov18_021FBC34 cmp r4, #0 ldrb r0, [r0, r1] beq _021F7082 cmp r4, #6 bne _021F70AC _021F7082: - ldr r3, _021F70F4 ; =_021FBC34 + ldr r3, _021F70F4 ; =ov18_021FBC34 mov r1, #0 -_021F7086: +ov18_021F7086: ldrb r2, [r3] cmp r0, r2 bne _021F70A2 @@ -34686,7 +17625,7 @@ _021F70A2: add r1, r1, #1 add r3, #8 cmp r1, #0x1a - ble _021F7086 + ble ov18_021F7086 b _021F70DA _021F70AC: cmp r4, #0x15 @@ -34694,7 +17633,7 @@ _021F70AC: cmp r4, #0x1a bne _021F70DA _021F70B4: - ldr r3, _021F70FC ; =_021FBD04 + ldr r3, _021F70FC ; =ov18_021FBC34 + 0xD0 mov r1, #0x1a _021F70B8: ldrb r2, [r3] @@ -34725,9 +17664,9 @@ _021F70DA: pop {r4, r5, r6, pc} nop _021F70F0: .word 0x0000189C -_021F70F4: .word _021FBC34 +_021F70F4: .word ov18_021FBC34 _021F70F8: .word 0x00001864 -_021F70FC: .word _021FBD04 +_021F70FC: .word ov18_021FBC34 + 0xD0 _021F7100: .word 0x000008E8 thumb_func_end ov18_021F7060 @@ -34759,9 +17698,9 @@ ov18_021F7124: ; 0x021F7124 str r0, [sp, #4] mov r0, #0x25 str r0, [sp, #8] - ldr r0, _021F715C ; =_021FBA40 - ldr r1, _021F7160 ; =_021FBB94 - ldr r2, _021F7164 ; =_021FB638 + ldr r0, _021F715C ; =ov18_021FBA40 + ldr r1, _021F7160 ; =ov18_021FBB94 + ldr r2, _021F7164 ; =ov18_021FB638 add r3, r4, #0 bl GridInputHandler_Create ldr r1, _021F7168 ; =0x00001864 @@ -34776,9 +17715,9 @@ ov18_021F7124: ; 0x021F7124 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 -_021F715C: .word _021FBA40 -_021F7160: .word _021FBB94 -_021F7164: .word _021FB638 +_021F715C: .word ov18_021FBA40 +_021F7160: .word ov18_021FBB94 +_021F7164: .word ov18_021FB638 _021F7168: .word 0x00001864 thumb_func_end ov18_021F7124 @@ -34826,7 +17765,7 @@ ov18_021F719C: ; 0x021F719C ldrb r2, [r2] ldr r0, [r5, r0] bl ManagedSprite_SetPositionXY - ldr r2, _021F71D8 ; =_021FBD3C + ldr r2, _021F71D8 ; =ov18_021FBD3C add r0, r5, #0 ldrb r2, [r2, r4] mov r1, #0 @@ -34834,7 +17773,7 @@ ov18_021F719C: ; 0x021F719C pop {r3, r4, r5, pc} nop _021F71D4: .word 0x00001864 -_021F71D8: .word _021FBD3C +_021F71D8: .word ov18_021FBD3C thumb_func_end ov18_021F719C thumb_func_start ov18_021F71DC @@ -35036,9 +17975,9 @@ ov18_021F7354: ; 0x021F7354 str r0, [sp, #4] mov r0, #0x25 str r0, [sp, #8] - ldr r0, _021F738C ; =_021FB6C8 - ldr r1, _021F7390 ; =_021FB780 - ldr r2, _021F7394 ; =_021FB648 + ldr r0, _021F738C ; =ov18_021FB6C8 + ldr r1, _021F7390 ; =ov18_021FB780 + ldr r2, _021F7394 ; =ov18_021FB648 add r3, r4, #0 bl GridInputHandler_Create ldr r1, _021F7398 ; =0x00001864 @@ -35053,9 +17992,9 @@ ov18_021F7354: ; 0x021F7354 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 -_021F738C: .word _021FB6C8 -_021F7390: .word _021FB780 -_021F7394: .word _021FB648 +_021F738C: .word ov18_021FB6C8 +_021F7390: .word ov18_021FB780 +_021F7394: .word ov18_021FB648 _021F7398: .word 0x00001864 thumb_func_end ov18_021F7354 @@ -35110,7 +18049,7 @@ _021F73EE: mov r0, #6 pop {r4, r5, r6, pc} _021F73F8: - ldr r0, _021F7440 ; =_021FB718 + ldr r0, _021F7440 ; =ov18_021FB718 bl TouchscreenHitbox_FindRectAtTouchHeld add r6, r0, #0 mov r0, #0 @@ -35140,7 +18079,7 @@ _021F742C: nop _021F7438: .word 0x00001864 _021F743C: .word gSystem -_021F7440: .word _021FB718 +_021F7440: .word ov18_021FB718 thumb_func_end ov18_021F739C thumb_func_start ov18_021F7444 @@ -35181,7 +18120,7 @@ _021F7482: ldrb r2, [r2] ldr r0, [r5, r0] bl ManagedSprite_SetPositionXY - ldr r2, _021F74AC ; =_021FB618 + ldr r2, _021F74AC ; =ov18_021FB618 add r0, r5, #0 ldrb r2, [r2, r4] mov r1, #0 @@ -35191,7 +18130,7 @@ _021F7482: _021F74A0: .word 0x00001864 _021F74A4: .word 0x0000187C _021F74A8: .word 0x00001878 -_021F74AC: .word _021FB618 +_021F74AC: .word ov18_021FB618 thumb_func_end ov18_021F7444 thumb_func_start ov18_021F74B0 @@ -35228,9 +18167,9 @@ ov18_021F74D8: ; 0x021F74D8 str r0, [sp, #4] mov r0, #0x25 str r0, [sp, #8] - ldr r0, _021F7510 ; =_021FB6DC - ldr r1, _021F7514 ; =_021FB7A0 - ldr r2, _021F7518 ; =_021FB678 + ldr r0, _021F7510 ; =ov18_021FB6DC + ldr r1, _021F7514 ; =ov18_021FB7A0 + ldr r2, _021F7518 ; =ov18_021FB678 add r3, r4, #0 bl GridInputHandler_Create ldr r1, _021F751C ; =0x00001864 @@ -35245,9 +18184,9 @@ ov18_021F74D8: ; 0x021F74D8 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 -_021F7510: .word _021FB6DC -_021F7514: .word _021FB7A0 -_021F7518: .word _021FB678 +_021F7510: .word ov18_021FB6DC +_021F7514: .word ov18_021FB7A0 +_021F7518: .word ov18_021FB678 _021F751C: .word 0x00001864 thumb_func_end ov18_021F74D8 @@ -35302,7 +18241,7 @@ _021F7572: mov r0, #6 pop {r4, r5, r6, pc} _021F757C: - ldr r0, _021F75C4 ; =_021FB718 + ldr r0, _021F75C4 ; =ov18_021FB718 bl TouchscreenHitbox_FindRectAtTouchHeld add r6, r0, #0 mov r0, #0 @@ -35332,7 +18271,7 @@ _021F75B0: nop _021F75BC: .word 0x00001864 _021F75C0: .word gSystem -_021F75C4: .word _021FB718 +_021F75C4: .word ov18_021FB718 thumb_func_end ov18_021F7520 thumb_func_start ov18_021F75C8 @@ -35374,7 +18313,7 @@ _021F7608: ldrb r2, [r2] ldr r0, [r5, r0] bl ManagedSprite_SetPositionXY - ldr r2, _021F7630 ; =_021FB61C + ldr r2, _021F7630 ; =ov18_021FB61C add r0, r5, #0 ldrb r2, [r2, r4] mov r1, #0 @@ -35383,7 +18322,7 @@ _021F7608: nop _021F7628: .word 0x00001864 _021F762C: .word 0x00001884 -_021F7630: .word _021FB61C +_021F7630: .word ov18_021FB61C thumb_func_end ov18_021F75C8 thumb_func_start ov18_021F7634 @@ -35429,9 +18368,9 @@ ov18_021F7668: ; 0x021F7668 str r0, [sp, #4] mov r0, #0x25 str r0, [sp, #8] - ldr r0, _021F76A0 ; =_021FB744 - ldr r1, _021F76A4 ; =_021FB8D4 - ldr r2, _021F76A8 ; =_021FB6B8 + ldr r0, _021F76A0 ; =ov18_021FB744 + ldr r1, _021F76A4 ; =ov18_021FB8D4 + ldr r2, _021F76A8 ; =ov18_021FB6B8 add r3, r4, #0 bl GridInputHandler_Create ldr r1, _021F76AC ; =0x00001864 @@ -35446,9 +18385,9 @@ ov18_021F7668: ; 0x021F7668 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 -_021F76A0: .word _021FB744 -_021F76A4: .word _021FB8D4 -_021F76A8: .word _021FB6B8 +_021F76A0: .word ov18_021FB744 +_021F76A4: .word ov18_021FB8D4 +_021F76A8: .word ov18_021FB6B8 _021F76AC: .word 0x00001864 thumb_func_end ov18_021F7668 @@ -35496,7 +18435,7 @@ ov18_021F76E0: ; 0x021F76E0 ldrb r2, [r2] ldr r0, [r5, r0] bl ManagedSprite_SetPositionXY - ldr r2, _021F771C ; =_021FB620 + ldr r2, _021F771C ; =ov18_021FB620 add r0, r5, #0 ldrb r2, [r2, r4] mov r1, #0 @@ -35504,7 +18443,7 @@ ov18_021F76E0: ; 0x021F76E0 pop {r3, r4, r5, pc} nop _021F7718: .word 0x00001864 -_021F771C: .word _021FB620 +_021F771C: .word ov18_021FB620 thumb_func_end ov18_021F76E0 thumb_func_start ov18_021F7720 @@ -35541,9 +18480,9 @@ ov18_021F7748: ; 0x021F7748 str r0, [sp, #4] mov r0, #0x25 str r0, [sp, #8] - ldr r0, _021F7780 ; =_021FB9A8 - ldr r1, _021F7784 ; =_021FBB0C - ldr r2, _021F7788 ; =_021FB658 + ldr r0, _021F7780 ; =ov18_021FB9A8 + ldr r1, _021F7784 ; =ov18_021FBB0C + ldr r2, _021F7788 ; =ov18_021FB658 add r3, r4, #0 bl GridInputHandler_Create ldr r1, _021F778C ; =0x00001864 @@ -35558,9 +18497,9 @@ ov18_021F7748: ; 0x021F7748 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 -_021F7780: .word _021FB9A8 -_021F7784: .word _021FBB0C -_021F7788: .word _021FB658 +_021F7780: .word ov18_021FB9A8 +_021F7784: .word ov18_021FBB0C +_021F7788: .word ov18_021FB658 _021F778C: .word 0x00001864 thumb_func_end ov18_021F7748 @@ -35608,7 +18547,7 @@ ov18_021F77C0: ; 0x021F77C0 ldrb r2, [r2] ldr r0, [r5, r0] bl ManagedSprite_SetPositionXY - ldr r2, _021F77FC ; =_021FBD28 + ldr r2, _021F77FC ; =ov18_021FBD28 add r0, r5, #0 ldrb r2, [r2, r4] mov r1, #0 @@ -35616,7 +18555,7 @@ ov18_021F77C0: ; 0x021F77C0 pop {r3, r4, r5, pc} nop _021F77F8: .word 0x00001864 -_021F77FC: .word _021FBD28 +_021F77FC: .word ov18_021FBD28 thumb_func_end ov18_021F77C0 thumb_func_start ov18_021F7800 @@ -35814,7 +18753,7 @@ ov18_021F7974: ; 0x021F7974 bl System_GetTouchNewCoords cmp r0, #1 bne _021F7A1A - ldr r0, _021F7B58 ; =_021FB8A4 + ldr r0, _021F7B58 ; =ov18_021FB8A4 bl TouchscreenHitbox_FindRectAtTouchNew mov r1, #0 mvn r1, r1 @@ -35825,7 +18764,7 @@ ov18_021F7974: ; 0x021F7974 pop {r4, r5, r6, pc} _021F799C: lsl r1, r0, #2 - ldr r0, _021F7B5C ; =_021FB84C + ldr r0, _021F7B5C ; =ov18_021FB84C ldr r4, [r0, r1] cmp r4, #0 bne _021F79FC @@ -36057,8 +18996,8 @@ _021F7B52: add sp, #8 pop {r4, r5, r6, pc} .balign 4, 0 -_021F7B58: .word _021FB8A4 -_021F7B5C: .word _021FB84C +_021F7B58: .word ov18_021FB8A4 +_021F7B5C: .word ov18_021FB84C _021F7B60: .word 0x0000185A _021F7B64: .word 0x000008E9 _021F7B68: .word gSystem @@ -36099,7 +19038,7 @@ ov18_021F7B94: ; 0x021F7B94 bl System_GetTouchNew cmp r0, #1 bne _021F7BE8 - ldr r0, _021F7C04 ; =_021FB704 + ldr r0, _021F7C04 ; =ov18_021FB704 bl TouchscreenHitbox_FindRectAtTouchNew add r6, r0, #0 mov r0, #0 @@ -36109,7 +19048,7 @@ ov18_021F7B94: ; 0x021F7B94 add r0, sp, #4 add r1, sp, #0 bl System_GetTouchNewCoords - ldr r0, _021F7C08 ; =_021FB698 + ldr r0, _021F7C08 ; =ov18_021FB698 lsl r1, r6, #2 ldr r6, [r0, r1] cmp r6, #1 @@ -36148,8 +19087,8 @@ _021F7BFE: add sp, #8 pop {r4, r5, r6, pc} nop -_021F7C04: .word _021FB704 -_021F7C08: .word _021FB698 +_021F7C04: .word ov18_021FB704 +_021F7C08: .word ov18_021FB698 _021F7C0C: .word 0x000018A2 _021F7C10: .word gSystem thumb_func_end ov18_021F7B94 @@ -36167,7 +19106,7 @@ ov18_021F7C14: ; 0x021F7C14 bl System_GetTouchNew cmp r0, #1 bne _021F7C4C - ldr r0, _021F7CE8 ; =_021FB934 + ldr r0, _021F7CE8 ; =ov18_021FB934 bl TouchscreenHitbox_FindHitboxAtTouchNew mov r1, #0 mvn r1, r1 @@ -36179,7 +19118,7 @@ _021F7C40: mov r1, #1 str r1, [r5] lsl r1, r0, #2 - ldr r0, _021F7CEC ; =_021FB904 + ldr r0, _021F7CEC ; =ov18_021FB904 ldr r0, [r0, r1] pop {r3, r4, r5, pc} _021F7C4C: @@ -36274,8 +19213,8 @@ _021F7CE4: _021F7CE6: pop {r3, r4, r5, pc} .balign 4, 0 -_021F7CE8: .word _021FB934 -_021F7CEC: .word _021FB904 +_021F7CE8: .word ov18_021FB934 +_021F7CEC: .word ov18_021FB904 _021F7CF0: .word gSystem _021F7CF4: .word 0x000018C9 _021F7CF8: .word 0x000018C8 @@ -36323,7 +19262,7 @@ ov18_021F7D30: ; 0x021F7D30 bl System_GetTouchNew cmp r0, #1 bne _021F7D68 - ldr r0, _021F7DBC ; =_021FB804 + ldr r0, _021F7DBC ; =ov18_021FB804 bl TouchscreenHitbox_FindRectAtTouchNew mov r1, #0 mvn r1, r1 @@ -36335,7 +19274,7 @@ _021F7D5C: mov r1, #1 str r1, [r5] lsl r1, r0, #2 - ldr r0, _021F7DC0 ; =_021FB760 + ldr r0, _021F7DC0 ; =ov18_021FB760 ldr r0, [r0, r1] pop {r3, r4, r5, pc} _021F7D68: @@ -36388,8 +19327,8 @@ _021F7DB8: _021F7DBA: pop {r3, r4, r5, pc} .balign 4, 0 -_021F7DBC: .word _021FB804 -_021F7DC0: .word _021FB760 +_021F7DBC: .word ov18_021FB804 +_021F7DC0: .word ov18_021FB760 _021F7DC4: .word gSystem _021F7DC8: .word 0x000018A2 thumb_func_end ov18_021F7D30 @@ -36402,7 +19341,7 @@ ov18_021F7DCC: ; 0x021F7DCC bl System_GetTouchNew cmp r0, #1 bne _021F7DF8 - ldr r0, _021F7E60 ; =_021FB7E0 + ldr r0, _021F7E60 ; =ov18_021FB7E0 bl TouchscreenHitbox_FindRectAtTouchNew mov r1, #0 mvn r1, r1 @@ -36414,7 +19353,7 @@ _021F7DEC: mov r1, #1 str r1, [r4] lsl r1, r0, #2 - ldr r0, _021F7E64 ; =_021FB7C0 + ldr r0, _021F7E64 ; =ov18_021FB7C0 ldr r0, [r0, r1] pop {r3, r4, r5, pc} _021F7DF8: @@ -36478,8 +19417,8 @@ _021F7E5A: _021F7E5C: pop {r3, r4, r5, pc} nop -_021F7E60: .word _021FB7E0 -_021F7E64: .word _021FB7C0 +_021F7E60: .word ov18_021FB7E0 +_021F7E64: .word ov18_021FB7C0 _021F7E68: .word gSystem _021F7E6C: .word 0x000018C7 thumb_func_end ov18_021F7DCC @@ -36496,7 +19435,7 @@ ov18_021F7E70: ; 0x021F7E70 bl System_GetTouchNew cmp r0, #1 bne _021F7EA2 - ldr r0, _021F7ECC ; =_021FB630 + ldr r0, _021F7ECC ; =ov18_021FB630 bl TouchscreenHitbox_FindHitboxAtTouchNew mov r1, #0 mvn r1, r1 @@ -36534,7 +19473,7 @@ _021F7EC6: _021F7EC8: pop {r4, pc} nop -_021F7ECC: .word _021FB630 +_021F7ECC: .word ov18_021FB630 _021F7ED0: .word gSystem thumb_func_end ov18_021F7E70 @@ -36853,7 +19792,7 @@ ov18_021F8168: ; 0x021F8168 blo _021F8178 bl GF_AssertFail _021F8178: - ; ret = GfGfxLoader_LoadFromNarc_GetSizeOut(GetPokedexDataNarcID(), a0 + 11, FALSE, 37, FALSE, &size); + ; ret = GfGfxLoader_LoadFromNarc_GetSizeOut(GetPokedexDataNarcID(), a0 + 11, FALSE, HEAP_ID_POKEDEX_APP, FALSE, &size); bl GetPokedexDataNarcID mov r2, #0 str r2, [sp] @@ -36975,14 +19914,14 @@ ov18_021F822C: ; 0x021F822C lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F8248: ; jump table - .short _021F8254 - _021F8248 - 2 ; case 0 - .short _021F8268 - _021F8248 - 2 ; case 1 - .short _021F8276 - _021F8248 - 2 ; case 2 - .short _021F8282 - _021F8248 - 2 ; case 3 - .short _021F828E - _021F8248 - 2 ; case 4 - .short _021F829A - _021F8248 - 2 ; case 5 -_021F8254: +ov18_021F8248: ; jump table + .short ov18_021F8254 - ov18_021F8248 - 2 ; case 0 + .short ov18_021F8268 - ov18_021F8248 - 2 ; case 1 + .short ov18_021F8276 - ov18_021F8248 - 2 ; case 2 + .short ov18_021F8282 - ov18_021F8248 - 2 ; case 3 + .short ov18_021F828E - ov18_021F8248 - 2 ; case 4 + .short ov18_021F829A - ov18_021F8248 - 2 ; case 5 +ov18_021F8254: ldr r2, [sp, #0x30] add r0, r7, #0 add r1, r3, #0 @@ -36992,32 +19931,32 @@ _021F8254: add sp, #0x18 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} -_021F8268: +ov18_021F8268: mov r0, #2 add r1, sp, #0x14 bl ov18_021F8168 add r6, r0, #0 mov r4, #1 b _021F82AA -_021F8276: +ov18_021F8276: mov r0, #3 add r1, sp, #0x14 bl ov18_021F8168 add r6, r0, #0 b _021F82AA -_021F8282: +ov18_021F8282: mov r0, #4 add r1, sp, #0x14 bl ov18_021F8168 add r6, r0, #0 b _021F82AA -_021F828E: +ov18_021F828E: mov r0, #5 add r1, sp, #0x14 bl ov18_021F8168 add r6, r0, #0 b _021F82AA -_021F829A: +ov18_021F829A: mov r0, #6 add r1, sp, #0x14 bl ov18_021F8168 @@ -37102,26 +20041,26 @@ _021F8330: lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F833C: ; jump table - .short _021F8372 - _021F833C - 2 ; case 0 - .short _021F837E - _021F833C - 2 ; case 1 - .short _021F838A - _021F833C - 2 ; case 2 - .short _021F8396 - _021F833C - 2 ; case 3 - .short _021F83A2 - _021F833C - 2 ; case 4 - .short _021F83AE - _021F833C - 2 ; case 5 - .short _021F83BA - _021F833C - 2 ; case 6 - .short _021F83C6 - _021F833C - 2 ; case 7 - .short _021F83D2 - _021F833C - 2 ; case 8 - .short _021F83DE - _021F833C - 2 ; case 9 - .short _021F83EA - _021F833C - 2 ; case 10 - .short _021F83F6 - _021F833C - 2 ; case 11 - .short _021F8402 - _021F833C - 2 ; case 12 - .short _021F840E - _021F833C - 2 ; case 13 - .short _021F841A - _021F833C - 2 ; case 14 - .short _021F8426 - _021F833C - 2 ; case 15 - .short _021F8432 - _021F833C - 2 ; case 16 - .short _021F8360 - _021F833C - 2 ; case 17 -_021F8360: +ov18_021F833C: ; jump table + .short ov18_021F8372 - ov18_021F833C - 2 ; case 0 + .short ov18_021F837E - ov18_021F833C - 2 ; case 1 + .short ov18_021F838A - ov18_021F833C - 2 ; case 2 + .short ov18_021F8396 - ov18_021F833C - 2 ; case 3 + .short ov18_021F83A2 - ov18_021F833C - 2 ; case 4 + .short ov18_021F83AE - ov18_021F833C - 2 ; case 5 + .short ov18_021F83BA - ov18_021F833C - 2 ; case 6 + .short ov18_021F83C6 - ov18_021F833C - 2 ; case 7 + .short ov18_021F83D2 - ov18_021F833C - 2 ; case 8 + .short ov18_021F83DE - ov18_021F833C - 2 ; case 9 + .short ov18_021F83EA - ov18_021F833C - 2 ; case 10 + .short ov18_021F83F6 - ov18_021F833C - 2 ; case 11 + .short ov18_021F8402 - ov18_021F833C - 2 ; case 12 + .short ov18_021F840E - ov18_021F833C - 2 ; case 13 + .short ov18_021F841A - ov18_021F833C - 2 ; case 14 + .short ov18_021F8426 - ov18_021F833C - 2 ; case 15 + .short ov18_021F8432 - ov18_021F833C - 2 ; case 16 + .short ov18_021F8360 - ov18_021F833C - 2 ; case 17 +ov18_021F8360: ldr r5, [sp, #0x28] add r0, r7, #0 add r1, r6, #0 @@ -37130,103 +20069,103 @@ _021F8360: add sp, #0x14 str r5, [r4] pop {r4, r5, r6, r7, pc} -_021F8372: +ov18_021F8372: mov r0, #0x33 add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F837E: +ov18_021F837E: mov r0, #0x34 add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F838A: +ov18_021F838A: mov r0, #0x35 add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F8396: +ov18_021F8396: mov r0, #0x36 add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F83A2: +ov18_021F83A2: mov r0, #0x37 add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F83AE: +ov18_021F83AE: mov r0, #0x38 add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F83BA: +ov18_021F83BA: mov r0, #0x39 add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F83C6: +ov18_021F83C6: mov r0, #0x3a add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F83D2: +ov18_021F83D2: mov r0, #0x3b add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F83DE: +ov18_021F83DE: mov r0, #0x3c add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F83EA: +ov18_021F83EA: mov r0, #0x3d add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F83F6: +ov18_021F83F6: mov r0, #0x3e add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F8402: +ov18_021F8402: mov r0, #0x3f add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F840E: +ov18_021F840E: mov r0, #0x40 add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F841A: +ov18_021F841A: mov r0, #0x41 add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F8426: +ov18_021F8426: mov r0, #0x42 add r1, sp, #0x10 bl ov18_021F8168 add r5, r0, #0 b _021F8442 -_021F8432: +ov18_021F8432: mov r0, #0x43 add r1, sp, #0x10 bl ov18_021F8168 @@ -37269,23 +20208,23 @@ ov18_021F8468: ; 0x021F8468 lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F8482: ; jump table - .short _021F8544 - _021F8482 - 2 ; case 0 - .short _021F8514 - _021F8482 - 2 ; case 1 - .short _021F8520 - _021F8482 - 2 ; case 2 - .short _021F852C - _021F8482 - 2 ; case 3 - .short _021F84E4 - _021F8482 - 2 ; case 4 - .short _021F84D8 - _021F8482 - 2 ; case 5 - .short _021F8508 - _021F8482 - 2 ; case 6 - .short _021F84B4 - _021F8482 - 2 ; case 7 - .short _021F8550 - _021F8482 - 2 ; case 8 - .short _021F84FC - _021F8482 - 2 ; case 9 - .short _021F8538 - _021F8482 - 2 ; case 10 - .short _021F84CC - _021F8482 - 2 ; case 11 - .short _021F84F0 - _021F8482 - 2 ; case 12 - .short _021F84C0 - _021F8482 - 2 ; case 13 - .short _021F84A0 - _021F8482 - 2 ; case 14 -_021F84A0: +ov18_021F8482: ; jump table + .short ov18_021F8544 - ov18_021F8482 - 2 ; case 0 + .short ov18_021F8514 - ov18_021F8482 - 2 ; case 1 + .short ov18_021F8520 - ov18_021F8482 - 2 ; case 2 + .short ov18_021F852C - ov18_021F8482 - 2 ; case 3 + .short ov18_021F84E4 - ov18_021F8482 - 2 ; case 4 + .short ov18_021F84D8 - ov18_021F8482 - 2 ; case 5 + .short ov18_021F8508 - ov18_021F8482 - 2 ; case 6 + .short ov18_021F84B4 - ov18_021F8482 - 2 ; case 7 + .short ov18_021F8550 - ov18_021F8482 - 2 ; case 8 + .short ov18_021F84FC - ov18_021F8482 - 2 ; case 9 + .short ov18_021F8538 - ov18_021F8482 - 2 ; case 10 + .short ov18_021F84CC - ov18_021F8482 - 2 ; case 11 + .short ov18_021F84F0 - ov18_021F8482 - 2 ; case 12 + .short ov18_021F84C0 - ov18_021F8482 - 2 ; case 13 + .short ov18_021F84A0 - ov18_021F8482 - 2 ; case 14 +ov18_021F84A0: ldr r2, [sp, #0x28] add r0, r6, #0 add r1, r5, #0 @@ -37295,85 +20234,85 @@ _021F84A0: add sp, #0x14 str r0, [r4] pop {r4, r5, r6, r7, pc} -_021F84B4: +ov18_021F84B4: mov r0, #0x44 add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F84C0: +ov18_021F84C0: mov r0, #0x45 add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F84CC: +ov18_021F84CC: mov r0, #0x46 add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F84D8: +ov18_021F84D8: mov r0, #0x47 add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F84E4: +ov18_021F84E4: mov r0, #0x48 add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F84F0: +ov18_021F84F0: mov r0, #0x49 add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F84FC: +ov18_021F84FC: mov r0, #0x4a add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F8508: +ov18_021F8508: mov r0, #0x4b add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F8514: +ov18_021F8514: mov r0, #0x4c add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F8520: +ov18_021F8520: mov r0, #0x4d add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F852C: +ov18_021F852C: mov r0, #0x4e add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F8538: +ov18_021F8538: mov r0, #0x4f add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F8544: +ov18_021F8544: mov r0, #0x50 add r1, sp, #0x10 bl ov18_021F8168 add r7, r0, #0 b _021F8560 -_021F8550: +ov18_021F8550: mov r0, #0x51 add r1, sp, #0x10 bl ov18_021F8168 @@ -38038,13 +20977,13 @@ ov18_021F89F8: ; 0x021F89F8 lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 -_021F8A14: ; jump table - .short _021F8A1E - _021F8A14 - 2 ; case 0 - .short _021F8A52 - _021F8A14 - 2 ; case 1 - .short _021F8A66 - _021F8A14 - 2 ; case 2 - .short _021F8A8A - _021F8A14 - 2 ; case 3 - .short _021F8AA0 - _021F8A14 - 2 ; case 4 -_021F8A1E: +ov18_021F8A14: ; jump table + .short ov18_021F8A1E - ov18_021F8A14 - 2 ; case 0 + .short ov18_021F8A52 - ov18_021F8A14 - 2 ; case 1 + .short ov18_021F8A66 - ov18_021F8A14 - 2 ; case 2 + .short ov18_021F8A8A - ov18_021F8A14 - 2 ; case 3 + .short _021F8AA0 - ov18_021F8A14 - 2 ; case 4 +ov18_021F8A1E: ldr r0, _021F8AB4 ; =0x04000050 mov r1, #0 strh r1, [r0] @@ -38065,7 +21004,7 @@ _021F8A1E: lsl r0, r0, #6 strh r1, [r4, r0] b _021F8AA0 -_021F8A52: +ov18_021F8A52: add r0, r4, #0 bl ov18_021F8C48 cmp r0, #1 @@ -38075,7 +21014,7 @@ _021F8A52: lsl r0, r0, #6 strh r1, [r4, r0] b _021F8AA0 -_021F8A66: +ov18_021F8A66: add r2, r1, #0 sub r2, #0x41 str r2, [sp] @@ -38093,7 +21032,7 @@ _021F8A66: lsl r0, r0, #6 strh r1, [r4, r0] b _021F8AA0 -_021F8A8A: +ov18_021F8A8A: bl IsCryFinished cmp r0, #0 bne _021F8AA0 @@ -38170,7 +21109,7 @@ ov18_021F8B10: ; 0x021F8B10 mov r0, #1 add r1, r0, #0 bl GfGfx_EngineATogglePlanes - ldr r5, _021F8BE0 ; =_021FBD7C + ldr r5, _021F8BE0 ; =ov18_021FBD7C add r3, sp, #0x48 ldmia r5!, {r0, r1} add r2, r3, #0 @@ -38190,7 +21129,7 @@ ov18_021F8B10: ; 0x021F8B10 mov r1, #0x20 mov r2, #0 bl BG_ClearCharDataRange - ldr r5, _021F8BE4 ; =_021FBD60 + ldr r5, _021F8BE4 ; =ov18_021FBD60 add r3, sp, #0x2c ldmia r5!, {r0, r1} add r2, r3, #0 @@ -38205,7 +21144,7 @@ ov18_021F8B10: ; 0x021F8B10 ldr r0, [r4] mov r3, #0 bl InitBgFromTemplate - ldr r5, _021F8BE8 ; =_021FBD98 + ldr r5, _021F8BE8 ; =ov18_021FBD98 add r3, sp, #0x10 ldmia r5!, {r0, r1} add r2, r3, #0 @@ -38256,9 +21195,9 @@ ov18_021F8B10: ; 0x021F8B10 add sp, #0x64 pop {r4, r5, pc} nop -_021F8BE0: .word _021FBD7C -_021F8BE4: .word _021FBD60 -_021F8BE8: .word _021FBD98 +_021F8BE0: .word ov18_021FBD7C +_021F8BE4: .word ov18_021FBD60 +_021F8BE8: .word ov18_021FBD98 thumb_func_end ov18_021F8B10 thumb_func_start ov18_021F8BEC @@ -38385,7 +21324,7 @@ ov18_021F8CCC: ; 0x021F8CCC sub sp, #0x18 add r5, r0, #0 add r4, r5, #0 - ldr r6, _021F8F04 ; =_021FBDB4 + ldr r6, _021F8F04 ; =ov18_021FBDB4 mov r7, #0 add r4, #0x24 _021F8CDA: @@ -38630,7 +21569,7 @@ _021F8EF2: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 -_021F8F04: .word _021FBDB4 +_021F8F04: .word ov18_021FBDB4 _021F8F08: .word 0x00000322 _021F8F0C: .word 0x00020100 thumb_func_end ov18_021F8CCC @@ -38655,7 +21594,7 @@ _021F8F18: ov18_021F8F28: ; 0x021F8F28 push {r3, r4, r5, lr} sub sp, #0x10 - ldr r4, _021F8F50 ; =_021FBD50 + ldr r4, _021F8F50 ; =ov18_021FBD50 add r3, sp, #0 add r5, r0, #0 add r2, r3, #0 @@ -38672,7 +21611,7 @@ ov18_021F8F28: ; 0x021F8F28 add sp, #0x10 pop {r3, r4, r5, pc} nop -_021F8F50: .word _021FBD50 +_021F8F50: .word ov18_021FBD50 _021F8F54: .word 0x00100010 thumb_func_end ov18_021F8F28 @@ -39602,20 +22541,20 @@ ov18_021F9648: ; 0x021F9648 thumb_func_start ov18_021F967C ov18_021F967C: ; 0x021F967C lsl r1, r0, #2 - ldr r0, _021F9684 ; =_021FBE10 + ldr r0, _021F9684 ; =ov18_021FBE10 ldr r0, [r0, r1] bx lr .balign 4, 0 -_021F9684: .word _021FBE10 +_021F9684: .word ov18_021FBE10 thumb_func_end ov18_021F967C thumb_func_start ov18_021F9688 ov18_021F9688: ; 0x021F9688 - ldr r1, _021F9690 ; =_021FBDFC + ldr r1, _021F9690 ; =ov18_021FBDFC ldrb r0, [r1, r0] bx lr nop -_021F9690: .word _021FBDFC +_021F9690: .word ov18_021FBDFC thumb_func_end ov18_021F9688 thumb_func_start ov18_021F9694 @@ -39663,407 +22602,496 @@ ov18_021F9694: ; 0x021F9694 thumb_func_end ov18_021F9694 .rodata + .balign 4, 0 -_021F96F4: - .byte 0x36, 0x03, 0x00, 0x00, 0x31, 0x03, 0x00, 0x00, 0x32, 0x03, 0x00, 0x00 - .byte 0x33, 0x03, 0x00, 0x00, 0x34, 0x03, 0x00, 0x00, 0x35, 0x03, 0x00, 0x00 -_021F970C: - .byte 0x3C, 0x03, 0x00, 0x00 - .byte 0x37, 0x03, 0x00, 0x00, 0x38, 0x03, 0x00, 0x00, 0x39, 0x03, 0x00, 0x00, 0x3A, 0x03, 0x00, 0x00 - .byte 0x3B, 0x03, 0x00, 0x00 -_021F9724: - .byte 0x2A, 0x03, 0x00, 0x00, 0x25, 0x03, 0x00, 0x00, 0x26, 0x03, 0x00, 0x00 - .byte 0x27, 0x03, 0x00, 0x00, 0x28, 0x03, 0x00, 0x00, 0x29, 0x03, 0x00, 0x00 -_021F973C: - .byte 0x64, 0x0A, 0x01, 0x00 -_021F9740: - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021F9750: - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021F9760: - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021F9770: - .byte 0x06, 0x08, 0x07, 0x02 -_021F9774: - .byte 0x13, 0x08, 0x07, 0x02, 0x06, 0x0F, 0x07, 0x02, 0x13, 0x0F, 0x07, 0x02 -_021F9780: - .byte 0x03, 0x06, 0x0B, 0x02, 0x12, 0x06, 0x0B, 0x02, 0x03, 0x0A, 0x0B, 0x02, 0x12, 0x0A, 0x0B, 0x02 - .byte 0x03, 0x0E, 0x0B, 0x02, 0x12, 0x0E, 0x0B, 0x02 -_021F9798: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1C, 0x05, 0x00, 0x02, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 -_021F97B4: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021F97D0: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x1B, 0x06, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021F97EC: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1E, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021F9808: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x1B, 0x06, 0x00, 0x02, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 -_021F9824: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x06, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021F9840: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x1E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021F985C: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021F9878: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x06, 0x00, 0x03, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 -_021F9894: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1C, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021F98B0: - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 -_021F98D8: - .byte 0xFF, 0xFF, 0x9B, 0x00, 0x71, 0x00, 0x63, 0x00 - .byte 0xB1, 0x00, 0x75, 0x00, 0x60, 0x00, 0x07, 0x00, 0x4C, 0x01, 0x79, 0x00, 0x77, 0x00, 0x78, 0x00 - .byte 0xFD, 0x00, 0xB0, 0x00, 0xC1, 0x01, 0x92, 0x00, 0xCE, 0x01, 0x17, 0x01, 0x56, 0x01, 0xF0, 0x00 - .byte 0x6C, 0x00, 0x7C, 0x00, 0x7E, 0x00, 0x6A, 0x00, 0x93, 0x00, 0x91, 0x00 -_021F990C: - .byte 0x00, 0x05, 0x08, 0x02 - .byte 0x08, 0x05, 0x08, 0x02, 0x10, 0x05, 0x08, 0x02, 0x18, 0x05, 0x08, 0x02, 0x00, 0x08, 0x08, 0x02 - .byte 0x08, 0x08, 0x08, 0x02, 0x10, 0x08, 0x08, 0x02, 0x18, 0x08, 0x08, 0x02, 0x00, 0x0B, 0x08, 0x02 - .byte 0x08, 0x0B, 0x08, 0x02, 0x10, 0x0B, 0x08, 0x02, 0x18, 0x0B, 0x08, 0x02, 0x00, 0x0E, 0x08, 0x02 - .byte 0x08, 0x0E, 0x08, 0x02, 0x10, 0x0E, 0x08, 0x02, 0x18, 0x0E, 0x08, 0x02, 0x00, 0x11, 0x08, 0x02 - .byte 0x08, 0x11, 0x08, 0x02 -_021F9954: - .byte 0xFF, 0xFF, 0x3C, 0x00, 0x21, 0x00, 0x43, 0x00, 0x22, 0x00, 0x23, 0x00 - .byte 0x49, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x4E, 0x00 - .byte 0x2A, 0x00, 0x2B, 0x00, 0x4D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x4B, 0x00, 0x2C, 0x00, 0x2D, 0x00 - .byte 0x58, 0x00, 0x2E, 0x00, 0x59, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x97, 0x00, 0x5A, 0x00, 0x14, 0x00 - .byte 0x5B, 0x00, 0x5C, 0x00, 0x31, 0x00, 0x32, 0x00, 0x34, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00 - .byte 0x39, 0x00, 0x98, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00 - .byte 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00 - .byte 0x15, 0x00, 0x16, 0x00, 0x17, 0x00, 0xA6, 0x01, 0x19, 0x00, 0x1A, 0x00, 0x5D, 0x00, 0x1B, 0x00 - .byte 0x1C, 0x00, 0x1D, 0x00, 0x9E, 0x01, 0x33, 0x00, 0x4A, 0x00, 0xAE, 0x00, 0x18, 0x00, 0xFF, 0xFF -_021F99E0: - .byte 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9E, 0x01, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00 - .byte 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00 - .byte 0xA6, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00 - .byte 0x5B, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00 - .byte 0x1C, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00 - .byte 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00 - .byte 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00 - .byte 0x28, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00 - .byte 0x5E, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00 - .byte 0x2E, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00 - .byte 0x98, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4C, 0x01, 0x00, 0x00, 0x4D, 0x01, 0x00, 0x00 - .byte 0x4E, 0x01, 0x00, 0x00, 0x4F, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00 - .byte 0x52, 0x01, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0xD9, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00 - .byte 0xC2, 0x01, 0x00, 0x00, 0xC3, 0x01, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00 - .byte 0x4B, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00 - .byte 0x6A, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00 - .byte 0x4E, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00 - .byte 0xEE, 0x00, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00 - .byte 0x6B, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xC1, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00 - .byte 0x77, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0xFB, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00 - .byte 0x5A, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0xCB, 0x01, 0x00, 0x00, 0xCC, 0x01, 0x00, 0x00 - .byte 0xCD, 0x01, 0x00, 0x00, 0xCE, 0x01, 0x00, 0x00, 0xCF, 0x01, 0x00, 0x00, 0xD0, 0x01, 0x00, 0x00 - .byte 0x60, 0x00, 0x00, 0x00, 0xE7, 0x01, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00 - .byte 0x4D, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00 - .byte 0xC4, 0x01, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x3B, 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x00 - .byte 0xEB, 0x01, 0x00, 0x00, 0xEC, 0x01, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00 - .byte 0x65, 0x01, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0xC5, 0x01, 0x00, 0x00 - .byte 0xC6, 0x01, 0x00, 0x00, 0xC7, 0x01, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00 - .byte 0x9C, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00 - .byte 0x99, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00 - .byte 0xB2, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00 - .byte 0x93, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF3, 0x00, 0x00, 0x00 - .byte 0xE6, 0x01, 0x00, 0x00, 0xF4, 0x00, 0x00, 0x00 -_021F9C18: - .byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, 0x00, 0x00 -_021F9C20: - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1B, 0x00 -_021F9C3C: - .word ov18_021E8C30 - .word ov18_021E8D38 - .word ov18_021E8DB0 - .word ov18_021E8DC8 - .word ov18_021E8DE8 - .word ov18_021E8E8C - .word ov18_021E8ECC - .word ov18_021E8FCC - .word ov18_021E9070 - .word ov18_021E918C - .word ov18_021E92AC - .word ov18_021E93D8 - .word ov18_021E9600 - .word ov18_021E96F4 - .word ov18_021E9820 - .word ov18_021E9940 - .word ov18_021E99C8 - .word ov18_021E9A4C - .word ov18_021E9BE0 - .word ov18_021EA430 - .word ov18_021EA5A8 - .word ov18_021E9CD8 - .word ov18_021E9D70 - .word ov18_021E9F28 - .word ov18_021EA36C - .word ov18_021EA384 - .word ov18_021EA688 - .word ov18_021EA760 - .word ov18_021EA838 - .word ov18_021EA854 - .word ov18_021EA95C - .word ov18_021EA96C - .word ov18_021EA988 - .word ov18_021EAA20 - .word ov18_021EAA30 - .word ov18_021EAA58 - .word ov18_021EAB7C - .word ov18_021EAB8C - .word ov18_021EABB4 - .word ov18_021EAE44 - .word ov18_021EAE54 - .word ov18_021EAF18 - .word ov18_021EAFDC - .word ov18_021EB034 - .word ov18_021EB08C - .word ov18_021EB0B0 - .word ov18_021EB270 - .word ov18_021EB280 - .word ov18_021EB348 - .word ov18_021EB41C - .word ov18_021EB474 - .word ov18_021EB4CC - .word ov18_021EB4E8 - .word ov18_021EB580 - .word ov18_021EB590 - .word ov18_021EB5AC - .word ov18_021EB644 - .word ov18_021EB654 - .word ov18_021EB838 - .word ov18_021EB988 - .word ov18_021EBAC4 - .word ov18_021EBB68 - .word ov18_021EBC08 - .word ov18_021EBD28 - .word ov18_021EBEC8 - .word ov18_021EBFC0 - .word ov18_021EC280 - .word ov18_021EC2C4 - .word ov18_021EC3E8 - .word ov18_021EC4FC - .word ov18_021EC7AC - .word ov18_021EC88C - .word ov18_021EC95C - .word ov18_021ECA2C - .word ov18_021ECA90 - .word ov18_021ECAEC - .word ov18_021ECC00 - .word ov18_021ECCB0 - .word ov18_021ECDC8 - .word ov18_021ECEA0 - .word ov18_021ECF58 - .word ov18_021ED15C - .word ov18_021ED224 - .word ov18_021ED304 - .word ov18_021ED3E8 - .word ov18_021ED450 - .word ov18_021ED4B4 - .word ov18_021ED5FC - .word ov18_021ED7BC - .word ov18_021ED8E4 - .word ov18_021ED98C - .word ov18_021EDA60 - .word ov18_021EDB28 -_021F9DB0: - .byte 0x05, 0x02, 0x00, 0x09, 0x02, 0x02, 0xEE, 0x03, 0x01, 0x0A, 0x0A, 0x0F, 0x02, 0x01, 0xE2, 0x01 -_021F9DC0: - .byte 0x3A, 0x00, 0x32, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x36, 0x00, 0x30, 0x00, 0x3F, 0x00, 0x35, 0x00 - .byte 0x3B, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x33, 0x00, 0x37, 0x00, 0x31, 0x00, 0x34, 0x00, 0x39, 0x00 - .byte 0x2F, 0x00, 0x40, 0x00 -_021F9DE4: - .byte 0x05, 0x02, 0x00, 0x09, 0x02, 0x02, 0xEE, 0x03, 0x05, 0x04, 0x03, 0x08 - .byte 0x02, 0x01, 0xDE, 0x03, 0x05, 0x14, 0x03, 0x08, 0x02, 0x01, 0xCE, 0x03, 0x05, 0x0A, 0x06, 0x0C - .byte 0x02, 0x01, 0xB6, 0x03, 0x05, 0x02, 0x15, 0x04, 0x02, 0x02, 0xAE, 0x03, 0x05, 0x07, 0x15, 0x08 - .byte 0x02, 0x02, 0x9E, 0x03, 0x05, 0x11, 0x15, 0x04, 0x02, 0x02, 0x96, 0x03, 0x05, 0x16 -_021F9E1E: - .byte 0x15, 0x08 - .byte 0x02, 0x02, 0x86, 0x03, 0x01, 0x0A, 0x01, 0x0C, 0x02, 0x01, 0xE8, 0x01, 0x01, 0x02, 0x11, 0x04 - .byte 0x02, 0x01, 0xE0, 0x01, 0x01, 0x07, 0x11, 0x08, 0x02, 0x01, 0xD0, 0x01, 0x01, 0x11, 0x11, 0x04 - .byte 0x02, 0x01, 0xC8, 0x01, 0x01, 0x16, 0x11, 0x08, 0x02, 0x01, 0xB0, 0x01 -_021F9E4C: - .byte 0x05, 0x02, 0x00, 0x09 - .byte 0x02, 0x02, 0xEE, 0x01, 0x05, 0x01, 0x03, 0x07, 0x02, 0x01, 0xE0, 0x01, 0x05, 0x00, 0x10, 0x09 - .byte 0x02, 0x01, 0xCE, 0x01, 0x05, 0x0D, 0x0C, 0x0E, 0x02, 0x01, 0xB2, 0x01, 0x01, 0x01, 0x05, 0x06 - .byte 0x02, 0x01, 0xF4, 0x01, 0x01, 0x09, 0x01, 0x07, 0x02, 0x01, 0xE6, 0x01, 0x01, 0x12, 0x01, 0x07 - .byte 0x02, 0x01, 0xE6, 0x01, 0x01, 0x18, 0x01, 0x07, 0x02, 0x01, 0xD8, 0x01, 0x02, 0x0A, 0x05, 0x12 - .byte 0x02, 0x01, 0xDC, 0x01, 0x02, 0x0A, 0x08, 0x12, 0x02, 0x01, 0xB8, 0x01, 0x02, 0x0A, 0x0B, 0x12 - .byte 0x02, 0x01, 0x94, 0x01, 0x02, 0x0A, 0x0E, 0x12, 0x02, 0x01, 0x70, 0x01, 0x02, 0x0A, 0x11, 0x12 - .byte 0x02, 0x01, 0x4C, 0x01, 0x02, 0x0A, 0x14, 0x12, 0x02, 0x01, 0x28, 0x01 -_021F9EBC: - .byte 0x05, 0x02, 0x00, 0x09 - .byte 0x02, 0x02, 0xEE, 0x03, 0x05, 0x04, 0x05, 0x09, 0x02, 0x01, 0xDC, 0x03, 0x05, 0x0D, 0x05, 0x0F - .byte 0x02, 0x01, 0xBE, 0x03, 0x05, 0x07, 0x05, 0x12, 0x02, 0x01, 0x9A, 0x03, 0x01, 0x15, 0x11, 0x0A - .byte 0x02, 0x01, 0xEC, 0x01, 0x01, 0x0D, 0x02, 0x06, 0x02, 0x01, 0xE0, 0x01, 0x01, 0x00, 0x0C, 0x10 - .byte 0x02, 0x01, 0xC0, 0x01, 0x01, 0x10, 0x0C, 0x10, 0x02, 0x01, 0xA0, 0x01, 0x01, 0x03, 0x14, 0x0C - .byte 0x03, 0x01, 0x7C, 0x01, 0x01, 0x12, 0x14, 0x0C, 0x03, 0x01, 0x58, 0x01, 0x02, 0x08, 0x01, 0x12 - .byte 0x02, 0x01, 0xDC, 0x01, 0x02, 0x08, 0x04, 0x12, 0x02, 0x01, 0xB8, 0x01, 0x02, 0x08, 0x07, 0x12 - .byte 0x02, 0x01, 0x94, 0x01, 0x02, 0x08, 0x0A, 0x12, 0x02, 0x01, 0x70, 0x01, 0x02, 0x08, 0x0D, 0x12 - .byte 0x02, 0x01, 0x4C, 0x01, 0x02, 0x08, 0x10, 0x12, 0x02, 0x01, 0x28, 0x01 -_021F9F3C: - .byte 0x00, 0x02, 0x09, 0x0C - .byte 0x02, 0x09, 0xE8, 0x03, 0x00, 0x12, 0x09, 0x0C, 0x02, 0x09, 0xD0, 0x03, 0x00, 0x0B, 0x0B, 0x03 - .byte 0x02, 0x09, 0xCA, 0x03, 0x00, 0x0B, 0x0B, 0x03, 0x02, 0x09, 0xC4, 0x03, 0x00, 0x1B, 0x0B, 0x03 - .byte 0x02, 0x09, 0xBE, 0x03, 0x00, 0x1B, 0x0B, 0x03, 0x02, 0x09, 0xB8, 0x03, 0x01, 0x0A, 0x10, 0x0B - .byte 0x02, 0x00, 0xEA, 0x01, 0x05, 0x02, 0x00, 0x08, 0x02, 0x02, 0xF0, 0x03, 0x05, 0x0F, 0x03, 0x04 - .byte 0x02, 0x00, 0xE8, 0x03, 0x05, 0x13, 0x03, 0x09, 0x02, 0x00, 0xD6, 0x03, 0x05, 0x0D, 0x05, 0x12 - .byte 0x02, 0x00, 0xB2, 0x03, 0x05, 0x02, 0x11, 0x1C, 0x06, 0x01, 0x0A, 0x03, 0x05, 0x12, 0x0B, 0x05 - .byte 0x02, 0x01, 0x00, 0x03, 0x05, 0x17, 0x0B, 0x08, 0x02, 0x01, 0xF0, 0x02, 0x05, 0x12, 0x0D, 0x05 - .byte 0x02, 0x01, 0xE6, 0x02, 0x05, 0x17, 0x0D, 0x08, 0x02, 0x01, 0xD6, 0x02, 0x05, 0x10, 0x08, 0x0E - .byte 0x02, 0x01, 0xB6, 0x02, 0x05, 0x10, 0x0B, 0x03, 0x02, 0x01, 0xB0, 0x02, 0x05, 0x14, 0x0B, 0x08 - .byte 0x02, 0x01, 0xA0, 0x02, 0x05, 0x0F, 0x0D, 0x10, 0x02, 0x01, 0x80, 0x02 -_021F9FDC: - .byte 0x05, 0x02, 0x13, 0x1C - .byte 0x05, 0x02, 0x74, 0x01, 0x05, 0x04, 0x01, 0x09, 0x02, 0x02, 0x62, 0x01, 0x05, 0x01, 0x04, 0x05 - .byte 0x02, 0x02, 0x58, 0x01, 0x05, 0x01, 0x07, 0x05, 0x02, 0x02, 0x4E, 0x01, 0x05, 0x01, 0x0A, 0x05 - .byte 0x02, 0x02, 0x44, 0x01, 0x05, 0x01, 0x0D, 0x05, 0x02, 0x02, 0x3A, 0x01, 0x05, 0x01, 0x10, 0x05 - .byte 0x02, 0x02, 0x30, 0x01, 0x05, 0x19, 0x04, 0x06, 0x02, 0x02, 0x24, 0x01, 0x05, 0x10, 0x01, 0x0B - .byte 0x02, 0x02, 0x0E, 0x01, 0x05, 0x07, 0x04, 0x09, 0x02, 0x02, 0xFC, 0x00, 0x05, 0x07, 0x07, 0x08 - .byte 0x02, 0x02, 0xEC, 0x00, 0x05, 0x0F, 0x07, 0x08, 0x02, 0x02, 0xDC, 0x00, 0x05, 0x07, 0x0A, 0x06 - .byte 0x02, 0x02, 0xD0, 0x00, 0x05, 0x0F, 0x0A, 0x06, 0x02, 0x02, 0xC4, 0x00, 0x05, 0x07, 0x0D, 0x09 - .byte 0x02, 0x02, 0xB2, 0x00, 0x05, 0x12, 0x0D, 0x09, 0x02, 0x02, 0xA0, 0x00, 0x05, 0x07, 0x10, 0x07 - .byte 0x02, 0x02, 0x92, 0x00, 0x01, 0x01, 0x01, 0x08, 0x02, 0x04, 0xF0, 0x01, 0x01, 0x0C, 0x01, 0x08 - .byte 0x02, 0x04, 0xE0, 0x01, 0x01, 0x17, 0x01, 0x08, 0x02, 0x04, 0xD0, 0x01, 0x00, 0x04, 0x01, 0x09 - .byte 0x02, 0x02, 0x62, 0x01, 0x00, 0x01, 0x04, 0x05, 0x02, 0x02, 0x58, 0x01, 0x00, 0x01, 0x07, 0x05 - .byte 0x02, 0x02, 0x4E, 0x01, 0x00, 0x01, 0x0A, 0x05, 0x02, 0x02, 0x44, 0x01, 0x00, 0x01, 0x0D, 0x05 - .byte 0x02, 0x02, 0x3A, 0x01, 0x00, 0x01, 0x10, 0x05, 0x02, 0x02, 0x30, 0x01, 0x00, 0x19, 0x04, 0x06 - .byte 0x02, 0x02, 0x24, 0x01, 0x00, 0x10, 0x01, 0x0B, 0x02, 0x02, 0x0E, 0x01, 0x00, 0x07, 0x04, 0x09 - .byte 0x02, 0x02, 0xFC, 0x00, 0x00, 0x07, 0x07, 0x08, 0x02, 0x02, 0xEC, 0x00, 0x00, 0x0F, 0x07, 0x08 - .byte 0x02, 0x02, 0xDC, 0x00, 0x00, 0x07, 0x0A, 0x06, 0x02, 0x02, 0xD0, 0x00, 0x00, 0x0F, 0x0A, 0x06 - .byte 0x02, 0x02, 0xC4, 0x00, 0x00, 0x07, 0x0D, 0x09, 0x02, 0x02, 0xB2, 0x00, 0x00, 0x12, 0x0D, 0x09 - .byte 0x02, 0x02, 0xA0, 0x00, 0x00, 0x07, 0x10, 0x07, 0x02, 0x02, 0x92, 0x00, 0x00, 0x03, 0x01, 0x0B - .byte 0x02, 0x02, 0xEA, 0x01, 0x00, 0x12, 0x01, 0x0B, 0x02, 0x02, 0xD4, 0x01, 0x00, 0x03, 0x06, 0x0B - .byte 0x02, 0x02, 0xBE, 0x01, 0x00, 0x12, 0x06, 0x0B, 0x02, 0x02, 0xA8, 0x01, 0x00, 0x03, 0x0A, 0x0B - .byte 0x02, 0x02, 0x92, 0x01, 0x00, 0x12, 0x0A, 0x0B, 0x02, 0x02, 0x7C, 0x01, 0x00, 0x03, 0x0E, 0x0B - .byte 0x02, 0x02, 0x66, 0x01, 0x00, 0x12, 0x0E, 0x0B, 0x02, 0x02, 0x50, 0x01, 0x00, 0x03, 0x01, 0x07 - .byte 0x02, 0x02, 0xF2, 0x01, 0x00, 0x0D, 0x01, 0x08, 0x02, 0x02, 0xE2, 0x01, 0x00, 0x15, 0x01, 0x08 - .byte 0x02, 0x02, 0xD2, 0x01, 0x00, 0x00, 0x05, 0x08, 0x02, 0x02, 0xC2, 0x01, 0x00, 0x08, 0x05, 0x08 - .byte 0x02, 0x02, 0xB2, 0x01, 0x00, 0x10, 0x05, 0x08, 0x02, 0x02, 0xA2, 0x01, 0x00, 0x18, 0x05, 0x08 - .byte 0x02, 0x02, 0x92, 0x01, 0x00, 0x00, 0x08, 0x08, 0x02, 0x02, 0x82, 0x01, 0x00, 0x08, 0x08, 0x08 - .byte 0x02, 0x02, 0x72, 0x01, 0x00, 0x10, 0x08, 0x08, 0x02, 0x02, 0x62, 0x01, 0x00, 0x18, 0x08, 0x08 - .byte 0x02, 0x02, 0x52, 0x01, 0x00, 0x00, 0x0B, 0x08, 0x02, 0x02, 0x42, 0x01, 0x00, 0x08, 0x0B, 0x08 - .byte 0x02, 0x02, 0x32, 0x01, 0x00, 0x10, 0x0B, 0x08, 0x02, 0x02, 0x22, 0x01, 0x00, 0x18, 0x0B, 0x08 - .byte 0x02, 0x02, 0x12, 0x01, 0x00, 0x00, 0x0E, 0x08, 0x02, 0x02, 0x02, 0x01, 0x00, 0x08, 0x0E, 0x08 - .byte 0x02, 0x02, 0xF2, 0x00, 0x00, 0x10, 0x0E, 0x08, 0x02, 0x02, 0xE2, 0x00, 0x00, 0x18, 0x0E, 0x08 - .byte 0x02, 0x02, 0xD2, 0x00, 0x00, 0x00, 0x11, 0x08, 0x02, 0x02, 0xC2, 0x00, 0x00, 0x08, 0x11, 0x08 - .byte 0x02, 0x02, 0xB2, 0x00, 0x00, 0x07, 0x01, 0x06, 0x02, 0x02, 0xF4, 0x01, 0x00, 0x0F, 0x01, 0x09 - .byte 0x02, 0x02, 0xE2, 0x01, 0x00, 0x01, 0x05, 0x1D, 0x0E, 0x02, 0x4C, 0x00, 0x00, 0x03, 0x01, 0x05 - .byte 0x02, 0x02, 0xF6, 0x01, 0x00, 0x0A, 0x01, 0x07, 0x02, 0x02, 0xE8, 0x01, 0x00, 0x13, 0x01, 0x07 - .byte 0x02, 0x02, 0xDA, 0x01, 0x00, 0x01, 0x01, 0x06, 0x02, 0x02, 0xF4, 0x01, 0x00, 0x08, 0x01, 0x09 - .byte 0x02, 0x02, 0xE2, 0x01, 0x00, 0x13, 0x01, 0x09, 0x02, 0x02, 0xD0, 0x01, 0x00, 0x07, 0x01, 0x06 - .byte 0x02, 0x02, 0xF4, 0x01, 0x00, 0x10, 0x01, 0x07, 0x02, 0x02, 0xE6, 0x01, 0x00, 0x06, 0x08, 0x07 - .byte 0x02, 0x02, 0xD8, 0x01, 0x00, 0x13, 0x08, 0x07, 0x02, 0x02, 0xCA, 0x01, 0x00, 0x06, 0x0F, 0x07 - .byte 0x02, 0x02, 0xBC, 0x01, 0x00, 0x13, 0x0F, 0x07, 0x02, 0x02, 0xAE, 0x01, 0x00, 0x08, 0x01, 0x06 - .byte 0x03, 0x02, 0xEE, 0x01, 0x05, 0x02, 0x00, 0x08, 0x02, 0x02, 0xF0, 0x03, 0x05, 0x0F, 0x03, 0x04 - .byte 0x02, 0x00, 0xE8, 0x03, 0x05, 0x13, 0x03, 0x09, 0x02, 0x00, 0xD6, 0x03, 0x05, 0x0D, 0x05, 0x12 - .byte 0x02, 0x00, 0xB2, 0x03, 0x05, 0x02, 0x11, 0x1C, 0x06, 0x01, 0x0A, 0x03, 0x05, 0x12, 0x0B, 0x05 - .byte 0x02, 0x01, 0x00, 0x03, 0x05, 0x17, 0x0B, 0x08, 0x02, 0x01, 0xF0, 0x02, 0x05, 0x12, 0x0D, 0x05 - .byte 0x02, 0x01, 0xE6, 0x02, 0x05, 0x17, 0x0D, 0x08, 0x02, 0x01, 0xD6, 0x02, 0x05, 0x10, 0x08, 0x0E - .byte 0x02, 0x01, 0xB6, 0x02, 0x05, 0x10, 0x0B, 0x03, 0x02, 0x01, 0xB0, 0x02, 0x05, 0x14, 0x0B, 0x08 - .byte 0x02, 0x01, 0xA0, 0x02, 0x05, 0x0F, 0x0D, 0x10, 0x02, 0x01, 0x80, 0x02, 0x01, 0x0A, 0x10, 0x0B - .byte 0x02, 0x00, 0xBA, 0x01, 0x00, 0x02, 0x09, 0x0C, 0x02, 0x09, 0xE8, 0x03, 0x00, 0x12, 0x09, 0x0C - .byte 0x02, 0x09, 0xD0, 0x03, 0x00, 0x0B, 0x0B, 0x03, 0x02, 0x09, 0xCA, 0x03, 0x00, 0x0B, 0x0B, 0x03 - .byte 0x02, 0x09, 0xC4, 0x03, 0x00, 0x1B, 0x0B, 0x03, 0x02, 0x09, 0xBE, 0x03, 0x00, 0x1B, 0x0B, 0x03 - .byte 0x02, 0x09, 0xB8, 0x03 -_021FA304: + ; file boundary + .balign 4, 0 + + .global ov18_021F9DB0 + .balign 2, 0 +ov18_021F9DB0: + .byte 0x05, 0x02, 0x00, 0x09, 0x02, 0x02 + .short 0x03EE + .byte 0x01, 0x0A, 0x0A, 0x0F, 0x02, 0x01 + .short 0x01E2 + .size ov18_021F9DB0,.-ov18_021F9DB0 + + .global ov18_021F9DC0 + .balign 2, 0 +ov18_021F9DC0: + .short 0x003A, 0x0032, 0x003C, 0x0038, 0x0036, 0x0030, 0x003F, 0x0035 + .short 0x003B, 0x003D, 0x003E, 0x0033, 0x0037, 0x0031, 0x0034, 0x0039 + .short 0x002F, 0x0040 + .size ov18_021F9DC0,.-ov18_021F9DC0 + + .global ov18_021F9DE4 + .balign 2, 0 +ov18_021F9DE4: + .byte 0x05, 0x02, 0x00, 0x09, 0x02, 0x02 + .short 0x03EE + .byte 0x05, 0x04, 0x03, 0x08, 0x02, 0x01 + .short 0x03DE + .byte 0x05, 0x14, 0x03, 0x08, 0x02, 0x01 + .short 0x03CE + .byte 0x05, 0x0A, 0x06, 0x0C, 0x02, 0x01 + .short 0x03B6 + .byte 0x05, 0x02, 0x15, 0x04, 0x02, 0x02 + .short 0x03AE + .byte 0x05, 0x07, 0x15, 0x08, 0x02, 0x02 + .short 0x039E + .byte 0x05, 0x11, 0x15, 0x04, 0x02, 0x02 + .short 0x0396 + .byte 0x05, 0x16, 0x15, 0x08, 0x02, 0x02 + .short 0x0386 + .byte 0x01, 0x0A, 0x01, 0x0C, 0x02, 0x01 + .short 0x01E8 + .byte 0x01, 0x02, 0x11, 0x04, 0x02, 0x01 + .short 0x01E0 + .byte 0x01, 0x07, 0x11, 0x08, 0x02, 0x01 + .short 0x01D0 + .byte 0x01, 0x11, 0x11, 0x04, 0x02, 0x01 + .short 0x01C8 + .byte 0x01, 0x16, 0x11, 0x08, 0x02, 0x01 + .short 0x01B0 + .size ov18_021F9DE4,.-ov18_021F9DE4 + + .global ov18_021F9E4C + .balign 2, 0 +ov18_021F9E4C: + .byte 0x05, 0x02, 0x00, 0x09, 0x02, 0x02, 0xEE, 0x01 + .byte 0x05, 0x01, 0x03, 0x07, 0x02, 0x01, 0xE0, 0x01 + .byte 0x05, 0x00, 0x10, 0x09, 0x02, 0x01, 0xCE, 0x01 + .byte 0x05, 0x0D, 0x0C, 0x0E, 0x02, 0x01, 0xB2, 0x01 + .byte 0x01, 0x01, 0x05, 0x06, 0x02, 0x01, 0xF4, 0x01 + .byte 0x01, 0x09, 0x01, 0x07, 0x02, 0x01, 0xE6, 0x01 + .byte 0x01, 0x12, 0x01, 0x07, 0x02, 0x01, 0xE6, 0x01 + .byte 0x01, 0x18, 0x01, 0x07, 0x02, 0x01, 0xD8, 0x01 + .byte 0x02, 0x0A, 0x05, 0x12, 0x02, 0x01, 0xDC, 0x01 + .byte 0x02, 0x0A, 0x08, 0x12, 0x02, 0x01, 0xB8, 0x01 + .byte 0x02, 0x0A, 0x0B, 0x12, 0x02, 0x01, 0x94, 0x01 + .byte 0x02, 0x0A, 0x0E, 0x12, 0x02, 0x01, 0x70, 0x01 + .byte 0x02, 0x0A, 0x11, 0x12, 0x02, 0x01, 0x4C, 0x01 + .byte 0x02, 0x0A, 0x14, 0x12, 0x02, 0x01, 0x28, 0x01 + .size ov18_021F9E4C,.-ov18_021F9E4C + + .global ov18_021F9EBC + .balign 2, 0 +ov18_021F9EBC: + .byte 0x05, 0x02, 0x00, 0x09, 0x02, 0x02, 0xEE, 0x03 + .byte 0x05, 0x04, 0x05, 0x09, 0x02, 0x01, 0xDC, 0x03 + .byte 0x05, 0x0D, 0x05, 0x0F, 0x02, 0x01, 0xBE, 0x03 + .byte 0x05, 0x07, 0x05, 0x12, 0x02, 0x01, 0x9A, 0x03 + .byte 0x01, 0x15, 0x11, 0x0A, 0x02, 0x01, 0xEC, 0x01 + .byte 0x01, 0x0D, 0x02, 0x06, 0x02, 0x01, 0xE0, 0x01 + .byte 0x01, 0x00, 0x0C, 0x10, 0x02, 0x01, 0xC0, 0x01 + .byte 0x01, 0x10, 0x0C, 0x10, 0x02, 0x01, 0xA0, 0x01 + .byte 0x01, 0x03, 0x14, 0x0C, 0x03, 0x01, 0x7C, 0x01 + .byte 0x01, 0x12, 0x14, 0x0C, 0x03, 0x01, 0x58, 0x01 + .byte 0x02, 0x08, 0x01, 0x12, 0x02, 0x01, 0xDC, 0x01 + .byte 0x02, 0x08, 0x04, 0x12, 0x02, 0x01, 0xB8, 0x01 + .byte 0x02, 0x08, 0x07, 0x12, 0x02, 0x01, 0x94, 0x01 + .byte 0x02, 0x08, 0x0A, 0x12, 0x02, 0x01, 0x70, 0x01 + .byte 0x02, 0x08, 0x0D, 0x12, 0x02, 0x01, 0x4C, 0x01 + .byte 0x02, 0x08, 0x10, 0x12, 0x02, 0x01, 0x28, 0x01 + .size ov18_021F9EBC,.-ov18_021F9EBC + + .global ov18_021F9F3C + .balign 2, 0 +ov18_021F9F3C: + .byte 0x00, 0x02, 0x09, 0x0C, 0x02, 0x09 + .short 0x03E8 + .byte 0x00, 0x12, 0x09, 0x0C, 0x02, 0x09 + .short 0x03D0 + .byte 0x00, 0x0B, 0x0B, 0x03, 0x02, 0x09 + .short 0x03CA + .byte 0x00, 0x0B, 0x0B, 0x03, 0x02, 0x09 + .short 0x03C4 + .byte 0x00, 0x1B, 0x0B, 0x03, 0x02, 0x09 + .short 0x03BE + .byte 0x00, 0x1B, 0x0B, 0x03, 0x02, 0x09 + .short 0x03B8 + .byte 0x01, 0x0A, 0x10, 0x0B, 0x02, 0x00 + .short 0x01EA + .byte 0x05, 0x02, 0x00, 0x08, 0x02, 0x02 + .short 0x03F0 + .byte 0x05, 0x0F, 0x03, 0x04, 0x02, 0x00 + .short 0x03E8 + .byte 0x05, 0x13, 0x03, 0x09, 0x02, 0x00 + .short 0x03D6 + .byte 0x05, 0x0D, 0x05, 0x12, 0x02, 0x00 + .short 0x03B2 + .byte 0x05, 0x02, 0x11, 0x1C, 0x06, 0x01 + .short 0x030A + .byte 0x05, 0x12, 0x0B, 0x05, 0x02, 0x01 + .short 0x0300 + .byte 0x05, 0x17, 0x0B, 0x08, 0x02, 0x01 + .short 0x02F0 + .byte 0x05, 0x12, 0x0D, 0x05, 0x02, 0x01 + .short 0x02E6 + .byte 0x05, 0x17, 0x0D, 0x08, 0x02, 0x01 + .short 0x02D6 + .byte 0x05, 0x10, 0x08, 0x0E, 0x02, 0x01 + .short 0x02B6 + .byte 0x05, 0x10, 0x0B, 0x03, 0x02, 0x01 + .short 0x02B0 + .byte 0x05, 0x14, 0x0B, 0x08, 0x02, 0x01 + .short 0x02A0 + .byte 0x05, 0x0F, 0x0D, 0x10, 0x02, 0x01 + .short 0x0280 + .size ov18_021F9F3C,.-ov18_021F9F3C + + .global ov18_021F9FDC + .balign 2, 0 +ov18_021F9FDC: + .byte 0x05, 0x02, 0x13, 0x1C, 0x05, 0x02 + .short 0x0174 + .byte 0x05, 0x04, 0x01, 0x09, 0x02, 0x02 + .short 0x0162 + .byte 0x05, 0x01, 0x04, 0x05, 0x02, 0x02 + .short 0x0158 + .byte 0x05, 0x01, 0x07, 0x05, 0x02, 0x02 + .short 0x014E + .byte 0x05, 0x01, 0x0A, 0x05, 0x02, 0x02 + .short 0x0144 + .byte 0x05, 0x01, 0x0D, 0x05, 0x02, 0x02 + .short 0x013A + .byte 0x05, 0x01, 0x10, 0x05, 0x02, 0x02 + .short 0x0130 + .byte 0x05, 0x19, 0x04, 0x06, 0x02, 0x02 + .short 0x0124 + .byte 0x05, 0x10, 0x01, 0x0B, 0x02, 0x02 + .short 0x010E + .byte 0x05, 0x07, 0x04, 0x09, 0x02, 0x02 + .short 0x00FC + .byte 0x05, 0x07, 0x07, 0x08, 0x02, 0x02 + .short 0x00EC + .byte 0x05, 0x0F, 0x07, 0x08, 0x02, 0x02 + .short 0x00DC + .byte 0x05, 0x07, 0x0A, 0x06, 0x02, 0x02 + .short 0x00D0 + .byte 0x05, 0x0F, 0x0A, 0x06, 0x02, 0x02 + .short 0x00C4 + .byte 0x05, 0x07, 0x0D, 0x09, 0x02, 0x02 + .short 0x00B2 + .byte 0x05, 0x12, 0x0D, 0x09, 0x02, 0x02 + .short 0x00A0 + .byte 0x05, 0x07, 0x10, 0x07, 0x02, 0x02 + .short 0x0092 + .byte 0x01, 0x01, 0x01, 0x08, 0x02, 0x04 + .short 0x01F0 + .byte 0x01, 0x0C, 0x01, 0x08, 0x02, 0x04 + .short 0x01E0 + .byte 0x01, 0x17, 0x01, 0x08, 0x02, 0x04 + .short 0x01D0 + .byte 0x00, 0x04, 0x01, 0x09, 0x02, 0x02 + .short 0x0162 + .byte 0x00, 0x01, 0x04, 0x05, 0x02, 0x02 + .short 0x0158 + .byte 0x00, 0x01, 0x07, 0x05, 0x02, 0x02 + .short 0x014E + .byte 0x00, 0x01, 0x0A, 0x05, 0x02, 0x02 + .short 0x0144 + .byte 0x00, 0x01, 0x0D, 0x05, 0x02, 0x02 + .short 0x013A + .byte 0x00, 0x01, 0x10, 0x05, 0x02, 0x02 + .short 0x0130 + .byte 0x00, 0x19, 0x04, 0x06, 0x02, 0x02 + .short 0x0124 + .byte 0x00, 0x10, 0x01, 0x0B, 0x02, 0x02 + .short 0x010E + .byte 0x00, 0x07, 0x04, 0x09, 0x02, 0x02 + .short 0x00FC + .byte 0x00, 0x07, 0x07, 0x08, 0x02, 0x02 + .short 0x00EC + .byte 0x00, 0x0F, 0x07, 0x08, 0x02, 0x02 + .short 0x00DC + .byte 0x00, 0x07, 0x0A, 0x06, 0x02, 0x02 + .short 0x00D0 + .byte 0x00, 0x0F, 0x0A, 0x06, 0x02, 0x02 + .short 0x00C4 + .byte 0x00, 0x07, 0x0D, 0x09, 0x02, 0x02 + .short 0x00B2 + .byte 0x00, 0x12, 0x0D, 0x09, 0x02, 0x02 + .short 0x00A0 + .byte 0x00, 0x07, 0x10, 0x07, 0x02, 0x02 + .short 0x0092 + .byte 0x00, 0x03, 0x01, 0x0B, 0x02, 0x02 + .short 0x01EA + .byte 0x00, 0x12, 0x01, 0x0B, 0x02, 0x02 + .short 0x01D4 + .byte 0x00, 0x03, 0x06, 0x0B, 0x02, 0x02 + .short 0x01BE + .byte 0x00, 0x12, 0x06, 0x0B, 0x02, 0x02 + .short 0x01A8 + .byte 0x00, 0x03, 0x0A, 0x0B, 0x02, 0x02 + .short 0x0192 + .byte 0x00, 0x12, 0x0A, 0x0B, 0x02, 0x02 + .short 0x017C + .byte 0x00, 0x03, 0x0E, 0x0B, 0x02, 0x02 + .short 0x0166 + .byte 0x00, 0x12, 0x0E, 0x0B, 0x02, 0x02 + .short 0x0150 + .byte 0x00, 0x03, 0x01, 0x07, 0x02, 0x02 + .short 0x01F2 + .byte 0x00, 0x0D, 0x01, 0x08, 0x02, 0x02 + .short 0x01E2 + .byte 0x00, 0x15, 0x01, 0x08, 0x02, 0x02 + .short 0x01D2 + .byte 0x00, 0x00, 0x05, 0x08, 0x02, 0x02 + .short 0x01C2 + .byte 0x00, 0x08, 0x05, 0x08, 0x02, 0x02 + .short 0x01B2 + .byte 0x00, 0x10, 0x05, 0x08, 0x02, 0x02 + .short 0x01A2 + .byte 0x00, 0x18, 0x05, 0x08, 0x02, 0x02 + .short 0x0192 + .byte 0x00, 0x00, 0x08, 0x08, 0x02, 0x02 + .short 0x0182 + .byte 0x00, 0x08, 0x08, 0x08, 0x02, 0x02 + .short 0x0172 + .byte 0x00, 0x10, 0x08, 0x08, 0x02, 0x02 + .short 0x0162 + .byte 0x00, 0x18, 0x08, 0x08, 0x02, 0x02 + .short 0x0152 + .byte 0x00, 0x00, 0x0B, 0x08, 0x02, 0x02 + .short 0x0142 + .byte 0x00, 0x08, 0x0B, 0x08, 0x02, 0x02 + .short 0x0132 + .byte 0x00, 0x10, 0x0B, 0x08, 0x02, 0x02 + .short 0x0122 + .byte 0x00, 0x18, 0x0B, 0x08, 0x02, 0x02 + .short 0x0112 + .byte 0x00, 0x00, 0x0E, 0x08, 0x02, 0x02 + .short 0x0102 + .byte 0x00, 0x08, 0x0E, 0x08, 0x02, 0x02 + .short 0x00F2 + .byte 0x00, 0x10, 0x0E, 0x08, 0x02, 0x02 + .short 0x00E2 + .byte 0x00, 0x18, 0x0E, 0x08, 0x02, 0x02 + .short 0x00D2 + .byte 0x00, 0x00, 0x11, 0x08, 0x02, 0x02 + .short 0x00C2 + .byte 0x00, 0x08, 0x11, 0x08, 0x02, 0x02 + .short 0x00B2 + .byte 0x00, 0x07, 0x01, 0x06, 0x02, 0x02 + .short 0x01F4 + .byte 0x00, 0x0F, 0x01, 0x09, 0x02, 0x02 + .short 0x01E2 + .byte 0x00, 0x01, 0x05, 0x1D, 0x0E, 0x02 + .short 0x004C + .byte 0x00, 0x03, 0x01, 0x05, 0x02, 0x02 + .short 0x01F6 + .byte 0x00, 0x0A, 0x01, 0x07, 0x02, 0x02 + .short 0x01E8 + .byte 0x00, 0x13, 0x01, 0x07, 0x02, 0x02 + .short 0x01DA + .byte 0x00, 0x01, 0x01, 0x06, 0x02, 0x02 + .short 0x01F4 + .byte 0x00, 0x08, 0x01, 0x09, 0x02, 0x02 + .short 0x01E2 + .byte 0x00, 0x13, 0x01, 0x09, 0x02, 0x02 + .short 0x01D0 + .byte 0x00, 0x07, 0x01, 0x06, 0x02, 0x02 + .short 0x01F4 + .byte 0x00, 0x10, 0x01, 0x07, 0x02, 0x02 + .short 0x01E6 + .byte 0x00, 0x06, 0x08, 0x07, 0x02, 0x02 + .short 0x01D8 + .byte 0x00, 0x13, 0x08, 0x07, 0x02, 0x02 + .short 0x01CA + .byte 0x00, 0x06, 0x0F, 0x07, 0x02, 0x02 + .short 0x01BC + .byte 0x00, 0x13, 0x0F, 0x07, 0x02, 0x02 + .short 0x01AE + .byte 0x00, 0x08, 0x01, 0x06, 0x03, 0x02 + .short 0x01EE + .byte 0x05, 0x02, 0x00, 0x08, 0x02, 0x02 + .short 0x03F0 + .byte 0x05, 0x0F, 0x03, 0x04, 0x02, 0x00 + .short 0x03E8 + .byte 0x05, 0x13, 0x03, 0x09, 0x02, 0x00 + .short 0x03D6 + .byte 0x05, 0x0D, 0x05, 0x12, 0x02, 0x00 + .short 0x03B2 + .byte 0x05, 0x02, 0x11, 0x1C, 0x06, 0x01 + .short 0x030A + .byte 0x05, 0x12, 0x0B, 0x05, 0x02, 0x01 + .short 0x0300 + .byte 0x05, 0x17, 0x0B, 0x08, 0x02, 0x01 + .short 0x02F0 + .byte 0x05, 0x12, 0x0D, 0x05, 0x02, 0x01 + .short 0x02E6 + .byte 0x05, 0x17, 0x0D, 0x08, 0x02, 0x01 + .short 0x02D6 + .byte 0x05, 0x10, 0x08, 0x0E, 0x02, 0x01 + .short 0x02B6 + .byte 0x05, 0x10, 0x0B, 0x03, 0x02, 0x01 + .short 0x02B0 + .byte 0x05, 0x14, 0x0B, 0x08, 0x02, 0x01 + .short 0x02A0 + .byte 0x05, 0x0F, 0x0D, 0x10, 0x02, 0x01 + .short 0x0280 + .byte 0x01, 0x0A, 0x10, 0x0B, 0x02, 0x00 + .short 0x01BA + .byte 0x00, 0x02, 0x09, 0x0C, 0x02, 0x09 + .short 0x03E8 + .byte 0x00, 0x12, 0x09, 0x0C, 0x02, 0x09 + .short 0x03D0 + .byte 0x00, 0x0B, 0x0B, 0x03, 0x02, 0x09 + .short 0x03CA + .byte 0x00, 0x0B, 0x0B, 0x03, 0x02, 0x09 + .short 0x03C4 + .byte 0x00, 0x1B, 0x0B, 0x03, 0x02, 0x09 + .short 0x03BE + .byte 0x00, 0x1B, 0x0B, 0x03, 0x02, 0x09 + .short 0x03B8 + .size ov18_021F9FDC,.-ov18_021F9FDC + + ; file boundary + .balign 4, 0 + + .global ov18_021FA304 +ov18_021FA304: + .byte 0x56, 0x4E, 0x46, 0x3E, 0x36, 0x2E, 0x26, 0x1E, 0x16, 0x00, 0x00, 0x00 + .size ov18_021FA304,.-ov18_021FA304 + + .global ov18_021FA310 +ov18_021FA310: .byte 0x56, 0x4E, 0x46, 0x3E, 0x36, 0x2E, 0x26, 0x1E, 0x16, 0x00, 0x00, 0x00 -_021FA310: - .byte 0x56 -_021FA311: - .byte 0x4E, 0x46, 0x3E, 0x36, 0x2E, 0x26, 0x1E, 0x16, 0x00, 0x00, 0x00, 0x6E, 0x66, 0x5E, 0x56 - .byte 0x4E, 0x46, 0x3E, 0x36, 0x2E, 0x26, 0x1E, 0x16 -_021FA328: + .byte 0x6E, 0x66, 0x5E, 0x56, 0x4E, 0x46, 0x3E, 0x36, 0x2E, 0x26, 0x1E, 0x16 + .size ov18_021FA310,.-ov18_021FA310 + + .global ov18_021FA328 +ov18_021FA328: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 -_021FA338: + .size ov18_021FA328,.-ov18_021FA328 + + .global ov18_021FA338 +ov18_021FA338: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 -_021FA348: + .size ov18_021FA338,.-ov18_021FA338 + + .global ov18_021FA348 +ov18_021FA348: .byte 0x01, 0x00, 0x04, 0x00, 0x07, 0x00, 0x0A, 0x00 .byte 0x0D, 0x00, 0x10, 0x00, 0x14, 0x00, 0x18, 0x00, 0x1C, 0x00 -_021FA35A: + .size ov18_021FA348,.-ov18_021FA348 + + .global ov18_021FA35A +ov18_021FA35A: .byte 0x01, 0x00, 0x04, 0x00, 0x07, 0x00 .byte 0x0A, 0x00, 0x0D, 0x00, 0x10, 0x00, 0x14, 0x00, 0x18, 0x00, 0xFF, 0x00 -_021FA36C: + .size ov18_021FA35A,.-ov18_021FA35A + + .global ov18_021FA36C +ov18_021FA36C: .byte 0x00, 0x04, 0x00, 0x00 .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00 -_021FA380: + .size ov18_021FA36C,.-ov18_021FA36C + + .global ov18_021FA380 +ov18_021FA380: .byte 0x51, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FA398: + .size ov18_021FA380,.-ov18_021FA380 + + .global ov18_021FA398 +ov18_021FA398: .byte 0x0F, 0x00, 0x2D, 0x00, 0x5A, 0x00, 0x87, 0x00 .byte 0xB4, 0x00, 0xE1, 0x00, 0x0E, 0x01, 0x3B, 0x01, 0x68, 0x01, 0x95, 0x01, 0xC2, 0x01, 0xEF, 0x01 -_021FA3B0: - .byte 0x08 -_021FA3B1: - .byte 0x08, 0x10, 0x08, 0x18, 0x08, 0x20, 0x08, 0x28, 0x08, 0x30, 0x08, 0x08, 0x10, 0x08, 0x18 - .byte 0x08, 0x20, 0x08, 0x28, 0x10, 0x10, 0x18, 0x10 -_021FA3C8: + .size ov18_021FA398,.-ov18_021FA398 + + .global ov18_021FA3B0 +ov18_021FA3B0: + .byte 0x08, 0x08 + .byte 0x10, 0x08 + .byte 0x18, 0x08 + .byte 0x20, 0x08 + .byte 0x28, 0x08 + .byte 0x30, 0x08 + .byte 0x08, 0x10 + .byte 0x08, 0x18 + .byte 0x08, 0x20 + .byte 0x08, 0x28 + .byte 0x10, 0x10 + .byte 0x18, 0x10 + .size ov18_021FA3B0,.-ov18_021FA3B0 + + .global ov18_021FA3C8 +ov18_021FA3C8: .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 -_021FA3E8: + .size ov18_021FA3C8,.-ov18_021FA3C8 + + .global ov18_021FA3E8 +ov18_021FA3E8: .byte 0x30, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0xC5, 0x00, 0x00 .byte 0x50, 0xC5, 0x00, 0x00, 0x50, 0xC5, 0x00, 0x00, 0x50, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FA41C: + .size ov18_021FA3E8,.-ov18_021FA3E8 + + .global ov18_021FA41C +ov18_021FA41C: .byte 0xA8, 0x00, 0x48, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x93, 0xC5, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x55, 0xC5, 0x00, 0x00, 0x55, 0xC5, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FA450: + .size ov18_021FA41C,.-ov18_021FA41C + + .global ov18_021FA450 +ov18_021FA450: .byte 0x78, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x99, 0xC5, 0x00, 0x00, 0x5B, 0xC5, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00 .byte 0x58, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 -_021FA484: + .size ov18_021FA450,.-ov18_021FA450 + + .global ov18_021FA484 +ov18_021FA484: .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x98, 0xC5, 0x00, 0x00, 0x5A, 0xC5, 0x00, 0x00 .byte 0x57, 0xC5, 0x00, 0x00, 0x57, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FA4B8: + .size ov18_021FA484,.-ov18_021FA484 + + .global ov18_021FA4B8 +ov18_021FA4B8: .byte 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x9A, 0xC5, 0x00, 0x00 .byte 0x5C, 0xC5, 0x00, 0x00, 0x59, 0xC5, 0x00, 0x00, 0x59, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FA4EC: + .size ov18_021FA4B8,.-ov18_021FA4B8 + + .global ov18_021FA4EC +ov18_021FA4EC: .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0xA0, 0xC5, 0x00, 0x00, 0x61, 0xC5, 0x00, 0x00, 0x5E, 0xC5, 0x00, 0x00, 0x5E, 0xC5, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FA520: + .size ov18_021FA4EC,.-ov18_021FA4EC + + .global ov18_021FA520 +ov18_021FA520: .byte 0xE0, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x9F, 0xC5, 0x00, 0x00, 0x60, 0xC5, 0x00, 0x00, 0x5D, 0xC5, 0x00, 0x00 .byte 0x5D, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 -_021FA554: + .size ov18_021FA520,.-ov18_021FA520 + + .global ov18_021FA554 +ov18_021FA554: .byte 0x20, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0xC5, 0x00, 0x00, 0x56, 0xC5, 0x00, 0x00 .byte 0x52, 0xC5, 0x00, 0x00, 0x52, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FA588: + .size ov18_021FA554,.-ov18_021FA554 + + .global ov18_021FA588 +ov18_021FA588: .word ov18_021F51BC .word ov18_021F51CC .word ov18_021F5238 @@ -40081,13 +23109,19 @@ _021FA588: .word ov18_021F5B14 .word ov18_021F5BEC .word ov18_021F5CC4 -_021FA5CC: + .size ov18_021FA588,.-ov18_021FA588 + + .global ov18_021FA5CC +ov18_021FA5CC: .byte 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00 .byte 0x05, 0x00, 0x05, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0x00, 0x07, 0x00, 0x08, 0x00, 0x0F, 0x00 .byte 0x10, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x32, 0x00, 0x33, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x69, 0x00 .byte 0x6A, 0x00, 0x9B, 0x00, 0x9C, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0x5E, 0x01, 0x5F, 0x01, 0xFF, 0xFF -_021FA610: + .size ov18_021FA5CC,.-ov18_021FA5CC + + .global ov18_021FA610 +ov18_021FA610: .byte 0x24, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x50, 0xC5, 0x00, 0x00, 0x51, 0xC5, 0x00, 0x00, 0x50, 0xC5, 0x00, 0x00 .byte 0x50, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 @@ -40114,7 +23148,10 @@ _021FA610: .byte 0x00, 0x00, 0x3F, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x90, 0xC5, 0x00, 0x00, 0x56, 0xC5, 0x00, 0x00, 0x52, 0xC5, 0x00, 0x00, 0x52, 0xC5, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FA7B0: + .size ov18_021FA610,.-ov18_021FA610 + + .global ov18_021FA7B0 +ov18_021FA7B0: .byte 0xB8, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x9D, 0xC5, 0x00, 0x00, 0x5E, 0xC5, 0x00, 0x00, 0x5B, 0xC5, 0x00, 0x00 .byte 0x5B, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00 @@ -40145,7 +23182,10 @@ _021FA7B0: .byte 0x01, 0x00, 0x00, 0x00, 0x90, 0xC5, 0x00, 0x00, 0x56, 0xC5, 0x00, 0x00, 0x52, 0xC5, 0x00, 0x00 .byte 0x52, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 -_021FA984: + .size ov18_021FA7B0,.-ov18_021FA7B0 + + .global ov18_021FA984 +ov18_021FA984: .byte 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x17, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0xC5, 0x00, 0x00, 0x56, 0xC5, 0x00, 0x00 .byte 0x52, 0xC5, 0x00, 0x00, 0x52, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF @@ -40173,32 +23213,50 @@ _021FA984: .byte 0x01, 0x00, 0x00, 0x00, 0x90, 0xC5, 0x00, 0x00, 0x56, 0xC5, 0x00, 0x00, 0x52, 0xC5, 0x00, 0x00 .byte 0x52, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 -_021FAB24: + .size ov18_021FA984,.-ov18_021FA984 + + .global ov18_021FAB24 +ov18_021FAB24: .byte 0x5C, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x97, 0xC5, 0x00, 0x00, 0x59, 0xC5, 0x00, 0x00 .byte 0x56, 0xC5, 0x00, 0x00, 0x56, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FAB58: + .size ov18_021FAB24,.-ov18_021FAB24 + + .global ov18_021FAB58 +ov18_021FAB58: .byte 0x70, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x92, 0xC5, 0x00, 0x00 .byte 0x57, 0xC5, 0x00, 0x00, 0x54, 0xC5, 0x00, 0x00, 0x54, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FAB8C: + .size ov18_021FAB58,.-ov18_021FAB58 + + .global ov18_021FAB8C +ov18_021FAB8C: .byte 0x30, 0x00, 0x48, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x91, 0xC5, 0x00, 0x00, 0x57, 0xC5, 0x00, 0x00, 0x53, 0xC5, 0x00, 0x00, 0x53, 0xC5, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FABC0: + .size ov18_021FAB8C,.-ov18_021FAB8C + + .global ov18_021FABC0 +ov18_021FABC0: .byte 0x30, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x8C, 0xC5, 0x00, 0x00, 0x52, 0xC5, 0x00, 0x00, 0x51, 0xC5, 0x00, 0x00 .byte 0x51, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 -_021FABF4: + .size ov18_021FABC0,.-ov18_021FABC0 + + .global ov18_021FABF4 +ov18_021FABF4: .byte 0x30, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8D, 0xC5, 0x00, 0x00, 0x53, 0xC5, 0x00, 0x00 .byte 0x51, 0xC5, 0x00, 0x00, 0x51, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FAC28: + .size ov18_021FABF4,.-ov18_021FABF4 + + .global ov18_021FAC28 +ov18_021FAC28: .byte 0x40, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8C, 0xC5, 0x00, 0x00 .byte 0x52, 0xC5, 0x00, 0x00, 0x51, 0xC5, 0x00, 0x00, 0x51, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF @@ -40262,7 +23320,10 @@ _021FAC28: .byte 0x01, 0x00, 0x00, 0x00, 0x55, 0xC5, 0x00, 0x00, 0x50, 0xC5, 0x00, 0x00, 0x50, 0xC5, 0x00, 0x00 .byte 0x50, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 -_021FB004: + .size ov18_021FAC28,.-ov18_021FAC28 + + .global ov18_021FB004 +ov18_021FB004: .byte 0xAC, 0x00, 0x10, 0x00, 0x00, 0x00, 0x27, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0xC5, 0x00, 0x00, 0x56, 0xC5, 0x00, 0x00 .byte 0x52, 0xC5, 0x00, 0x00, 0x52, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF @@ -40348,17 +23409,26 @@ _021FB004: .byte 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0xC5, 0x00, 0x00 .byte 0x56, 0xC5, 0x00, 0x00, 0x52, 0xC5, 0x00, 0x00, 0x52, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FB54C: + .size ov18_021FB004,.-ov18_021FB004 + + .global ov18_021FB54C +ov18_021FB54C: .byte 0x80, 0x00, 0x50, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x9E, 0xC5, 0x00, 0x00, 0x5F, 0xC5, 0x00, 0x00, 0x5C, 0xC5, 0x00, 0x00, 0x5C, 0xC5, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FB580: + .size ov18_021FB54C,.-ov18_021FB54C + + .global ov18_021FB580 +ov18_021FB580: .byte 0x80, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x9E, 0xC5, 0x00, 0x00, 0x5F, 0xC5, 0x00, 0x00, 0x5C, 0xC5, 0x00, 0x00 .byte 0x5C, 0xC5, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 -_021FB5B4: + .size ov18_021FB580,.-ov18_021FB580 + + .global ov18_021FB5B4 +ov18_021FB5B4: .byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x41, 0x42, 0x09, 0x0A .byte 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x43, 0x44, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18 .byte 0x45, 0x46, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x47, 0x48, 0x21, 0x22, 0x23, 0x24 @@ -40366,170 +23436,315 @@ _021FB5B4: .byte 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x4D, 0x4E, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E .byte 0x3F, 0x40, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x59, 0x5A, 0x5B, 0x5C, 0x61, 0x62, 0x55, 0x56 .byte 0x57, 0x58, 0x5D, 0x5E, 0x5F, 0x60, 0x63, 0x64 -_021FB618: + .size ov18_021FB5B4,.-ov18_021FB5B4 + + ; file boundary + .balign 4, 0 + + .global ov18_021FB618 +ov18_021FB618: .byte 0x3E, 0x3E, 0x23, 0x23 -_021FB61C: + .size ov18_021FB618,.-ov18_021FB618 + + .global ov18_021FB61C +ov18_021FB61C: .byte 0x3E, 0x3E, 0x23, 0x23 -_021FB620: + .size ov18_021FB61C,.-ov18_021FB61C + + .global ov18_021FB620 +ov18_021FB620: .byte 0x26, 0x26, 0x26, 0x26, 0x23, 0x23, 0x00, 0x00 -_021FB628: + .size ov18_021FB620,.-ov18_021FB620 + + .global ov18_021FB628 +ov18_021FB628: .byte 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x23, 0x23 -_021FB630: + .size ov18_021FB628,.-ov18_021FB628 + + .global ov18_021FB630 +ov18_021FB630: .byte 0x48, 0x67, 0x30, 0xCF, 0xFF, 0x00, 0x00, 0x00 -_021FB638: + .size ov18_021FB630,.-ov18_021FB630 + + .global ov18_021FB638 +ov18_021FB638: .word ov18_021F7B90 .word ov18_021F7B90 .word ov18_021F71DC .word ov18_021F7334 -_021FB648: + .size ov18_021FB638,.-ov18_021FB638 + + .global ov18_021FB648 +ov18_021FB648: .word ov18_021F7B90 .word ov18_021F7B90 .word ov18_021F74B0 .word ov18_021F74C4 -_021FB658: + .size ov18_021FB648,.-ov18_021FB648 + + .global ov18_021FB658 +ov18_021FB658: .word ov18_021F7B90 .word ov18_021F7B90 .word ov18_021F7800 .word ov18_021F7954 -_021FB668: + .size ov18_021FB658,.-ov18_021FB658 + + .global ov18_021FB668 +ov18_021FB668: .word ov18_021F7B90 .word ov18_021F7B90 .word ov18_021F6F78 .word ov18_021F6F8C -_021FB678: + .size ov18_021FB668,.-ov18_021FB668 + + .global ov18_021FB678 +ov18_021FB678: .word ov18_021F7B90 .word ov18_021F7B90 .word ov18_021F7634 .word ov18_021F7648 -_021FB688: + .size ov18_021FB678,.-ov18_021FB678 + + .global ov18_021FB688 +ov18_021FB688: .word ov18_021F7B90 .word ov18_021F7B90 .word ov18_021F6E98 .word ov18_021F6EAC -_021FB698: + .size ov18_021FB688,.-ov18_021FB688 + + .global ov18_021FB698 +ov18_021FB698: .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 -_021FB6A8: + .size ov18_021FB698,.-ov18_021FB698 + + .global ov18_021FB6A8 +ov18_021FB6A8: .word ov18_021F7B90 .word ov18_021F7B90 .word ov18_021F7060 .word ov18_021F7104 -_021FB6B8: + .size ov18_021FB6A8,.-ov18_021FB6A8 + + .global ov18_021FB6B8 +ov18_021FB6B8: .word ov18_021F7B90 .word ov18_021F7B90 .word ov18_021F7720 .word ov18_021F7734 -_021FB6C8: + .size ov18_021FB6B8,.-ov18_021FB6B8 + + .global ov18_021FB6C8 +ov18_021FB6C8: .byte 0x2E, 0x49, 0x1A, 0xE5, 0x76, 0x91, 0x1A, 0xE5 .byte 0xA4, 0xBB, 0x04, 0x4B, 0xA4, 0xBB, 0xB4, 0xFB, 0xFF, 0x00, 0x00, 0x00 -_021FB6DC: + .size ov18_021FB6C8,.-ov18_021FB6C8 + + .global ov18_021FB6DC +ov18_021FB6DC: .byte 0x2E, 0x49, 0x1A, 0xE5 .byte 0x76, 0x91, 0x1A, 0xE5, 0xA4, 0xBB, 0x04, 0x4B, 0xA4, 0xBB, 0xB4, 0xFB, 0xFF, 0x00, 0x00, 0x00 -_021FB6F0: + .size ov18_021FB6DC,.-ov18_021FB6DC + + .global ov18_021FB6F0 +ov18_021FB6F0: .byte 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00 -_021FB704: + .size ov18_021FB6F0,.-ov18_021FB6F0 + + .global ov18_021FB704 +ov18_021FB704: .byte 0xA8, 0xB7, 0x07, 0x39, 0xA8, 0xB7, 0x47, 0x79, 0xA8, 0xB7, 0x87, 0xB9 .byte 0xA8, 0xB7, 0xC7, 0xF9, 0xFF, 0x00, 0x00, 0x00 -_021FB718: + .size ov18_021FB704,.-ov18_021FB704 + + .global ov18_021FB718 +ov18_021FB718: .byte 0x31, 0x46, 0xE6, 0xF5, 0x31, 0x46, 0x0A, 0x19 .byte 0x79, 0x8E, 0xE6, 0xF5, 0x79, 0x8E, 0x0A, 0x19, 0xFF, 0x00, 0x00, 0x00 -_021FB72C: + .size ov18_021FB718,.-ov18_021FB718 + + .global ov18_021FB72C +ov18_021FB72C: .byte 0x70, 0x8F, 0x60, 0xA0 .byte 0x00, 0x97, 0x00, 0xFF, 0x98, 0xBB, 0x00, 0x3F, 0x98, 0xBB, 0x40, 0xBF, 0x98, 0xBB, 0xC0, 0xFF .byte 0xFF, 0x00, 0x00, 0x00 -_021FB744: + .size ov18_021FB72C,.-ov18_021FB72C + + .global ov18_021FB744 +ov18_021FB744: .byte 0x40, 0x4F, 0x30, 0x67, 0x40, 0x4F, 0x98, 0xCF, 0x78, 0x87, 0x30, 0x67 .byte 0x78, 0x87, 0x98, 0xCF, 0xA4, 0xBB, 0x04, 0x4B, 0xA4, 0xBB, 0xB4, 0xFB, 0xFF, 0x00, 0x00, 0x00 -_021FB760: + .size ov18_021FB744,.-ov18_021FB744 + + .global ov18_021FB760 +ov18_021FB760: .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 .byte 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00 -_021FB780: + .size ov18_021FB760,.-ov18_021FB760 + + .global ov18_021FB780 +ov18_021FB780: .byte 0x34, 0x3C, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xCC, 0x84, 0x00, 0x00, 0x00, 0x82, 0x01, 0x01 .byte 0x28, 0xB0, 0x00, 0x00, 0x01, 0x00, 0x03, 0x03, 0xD8, 0xB0, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02 -_021FB7A0: + .size ov18_021FB780,.-ov18_021FB780 + + .global ov18_021FB7A0 +ov18_021FB7A0: .byte 0x34, 0x3C, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xCC, 0x84, 0x00, 0x00, 0x00, 0x82, 0x01, 0x01 .byte 0x28, 0xB0, 0x00, 0x00, 0x01, 0x00, 0x03, 0x03, 0xD8, 0xB0, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02 -_021FB7C0: + .size ov18_021FB7A0,.-ov18_021FB7A0 + + .global ov18_021FB7C0 +ov18_021FB7C0: .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 -_021FB7E0: + .size ov18_021FB7C0,.-ov18_021FB7C0 + + .global ov18_021FB7E0 +ov18_021FB7E0: .byte 0x30, 0x3F, 0x38, 0x47, 0x78, 0x88, 0x38, 0x47, 0x30, 0x3F, 0xB8, 0xC7, 0x78, 0x88, 0xB8, 0xC7 .byte 0xA0, 0xB7, 0x08, 0x77, 0xA0, 0xB7, 0x80, 0xFF, 0x43, 0x74, 0x02, 0x72, 0x43, 0x74, 0x82, 0xFD .byte 0xFF, 0x00, 0x00, 0x00 -_021FB804: + .size ov18_021FB7E0,.-ov18_021FB7E0 + + .global ov18_021FB804 +ov18_021FB804: .byte 0x08, 0x17, 0x22, 0xD5, 0x20, 0x2F, 0x22, 0xD5, 0x68, 0x77, 0x22, 0xD5 .byte 0x50, 0x5F, 0x22, 0xD5, 0x05, 0x14, 0xE7, 0xFC, 0x6B, 0x7A, 0xE7, 0xFC, 0x15, 0x6A, 0xE7, 0xFC .byte 0x86, 0x9A, 0x86, 0xFF, 0xFF, 0x00, 0x00, 0x00 -_021FB828: + .size ov18_021FB804,.-ov18_021FB804 + + .global ov18_021FB828 +ov18_021FB828: .byte 0x30, 0x3F, 0x18, 0x6F, 0x30, 0x3F, 0x90, 0xE7 .byte 0x50, 0x5F, 0x18, 0x6F, 0x50, 0x5F, 0x90, 0xE7, 0x70, 0x7F, 0x18, 0x6F, 0x70, 0x7F, 0x90, 0xE7 .byte 0xA4, 0xBB, 0x04, 0x4B, 0xA4, 0xBB, 0xB4, 0xFB, 0xFF, 0x00, 0x00, 0x00 -_021FB84C: + .size ov18_021FB828,.-ov18_021FB828 + + .global ov18_021FB84C +ov18_021FB84C: .byte 0x00, 0x00, 0x00, 0x00 .byte 0x0E, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00 .byte 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 -_021FB878: + .size ov18_021FB84C,.-ov18_021FB84C + + .global ov18_021FB878 +ov18_021FB878: .byte 0x08, 0x17, 0x80, 0xD7, 0x20, 0x2F, 0x38, 0x7F .byte 0x38, 0x47, 0x38, 0xB1, 0x50, 0x5F, 0x38, 0xB7, 0x68, 0x77, 0x38, 0xEF, 0x80, 0x8F, 0x38, 0x6F .byte 0x38, 0x57, 0xD0, 0xEF, 0xA4, 0xBB, 0x04, 0x4B, 0xA4, 0xBB, 0x5C, 0xA3, 0xA4, 0xBB, 0xB4, 0xFB .byte 0xFF, 0x00, 0x00, 0x00 -_021FB8A4: + .size ov18_021FB878,.-ov18_021FB878 + + .global ov18_021FB8A4 +ov18_021FB8A4: .byte 0x04, 0x7B, 0x1B, 0xE2, 0x00, 0x7C, 0x00, 0x17, 0x05, 0x14, 0xE7, 0xFC .byte 0x83, 0x92, 0xE7, 0xFC, 0x15, 0x82, 0xE7, 0xFC, 0x80, 0x8F, 0x30, 0x4F, 0x80, 0x8F, 0xA8, 0xC7 .byte 0x98, 0xBB, 0x00, 0x3F, 0x98, 0xBB, 0x40, 0x7F, 0x98, 0xBB, 0x80, 0xBF, 0x98, 0xBB, 0xC0, 0xFF .byte 0xFF, 0x00, 0x00, 0x00 -_021FB8D4: + .size ov18_021FB8A4,.-ov18_021FB8A4 + + .global ov18_021FB8D4 +ov18_021FB8D4: .byte 0x4C, 0x48, 0x00, 0x00, 0x04, 0x02, 0x01, 0x01, 0xB4, 0x48, 0x00, 0x00 .byte 0x05, 0x03, 0x00, 0x00, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x04, 0x03, 0x03, 0xB4, 0x80, 0x00, 0x00 .byte 0x01, 0x05, 0x02, 0x02, 0x28, 0xB0, 0x00, 0x00, 0x02, 0x00, 0x05, 0x05, 0xD8, 0xB0, 0x00, 0x00 .byte 0x03, 0x01, 0x04, 0x04 -_021FB904: + .size ov18_021FB8D4,.-ov18_021FB8D4 + + .global ov18_021FB904 +ov18_021FB904: .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 .byte 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00 .byte 0x0F, 0x00, 0x00, 0x00 -_021FB934: + .size ov18_021FB904,.-ov18_021FB904 + + .global ov18_021FB934 +ov18_021FB934: .byte 0x28, 0x37, 0x52, 0xDD, 0x40, 0x4F, 0x52, 0xDD, 0x88, 0x97, 0x52, 0xDD .byte 0x70, 0x7F, 0x52, 0xDD, 0x25, 0x34, 0xE7, 0xFC, 0x8B, 0x9A, 0xE7, 0xFC, 0x35, 0x8A, 0xE7, 0xFC .byte 0x06, 0x19, 0x46, 0x81, 0x06, 0x19, 0xBE, 0xF7, 0xFE, 0x21, 0x4D, 0x0D, 0xFE, 0x21, 0x6D, 0x0D .byte 0xFE, 0x21, 0x8D, 0x0D, 0xFF, 0x00, 0x00, 0x00 -_021FB968: + .size ov18_021FB934,.-ov18_021FB934 + + .global ov18_021FB968 +ov18_021FB968: .byte 0x44, 0x38, 0x00, 0x00, 0x06, 0x02, 0x01, 0x01 .byte 0xBC, 0x38, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x44, 0x58, 0x00, 0x00, 0x00, 0x04, 0x03, 0x03 .byte 0xBC, 0x58, 0x00, 0x00, 0x01, 0x05, 0x02, 0x02, 0x44, 0x78, 0x00, 0x00, 0x02, 0x06, 0x05, 0x05 .byte 0xBC, 0x78, 0x00, 0x00, 0x03, 0x07, 0x04, 0x04, 0x28, 0xB0, 0x00, 0x00, 0x04, 0x00, 0x07, 0x07 .byte 0xD8, 0xB0, 0x00, 0x00, 0x05, 0x01, 0x06, 0x06 -_021FB9A8: + .size ov18_021FB968,.-ov18_021FB968 + + .global ov18_021FB9A8 +ov18_021FB9A8: .byte 0x28, 0x47, 0x10, 0x2F, 0x28, 0x47, 0x40, 0x5F .byte 0x28, 0x47, 0x70, 0x8F, 0x28, 0x47, 0xA0, 0xBF, 0x28, 0x47, 0xD0, 0xEF, 0x50, 0x6F, 0x10, 0x2F .byte 0x50, 0x6F, 0x40, 0x5F, 0x50, 0x6F, 0x70, 0x8F, 0x50, 0x6F, 0xA0, 0xBF, 0x50, 0x6F, 0xD0, 0xEF .byte 0x78, 0x97, 0x10, 0x2F, 0x78, 0x97, 0x40, 0x5F, 0x78, 0x97, 0x70, 0x8F, 0x78, 0x97, 0xA0, 0xBF .byte 0x78, 0x97, 0xD0, 0xEF, 0xA4, 0xBB, 0x04, 0x4B, 0xA4, 0xBB, 0xB4, 0xFB, 0xFF, 0x00, 0x00, 0x00 -_021FB9F0: + .size ov18_021FB9A8,.-ov18_021FB9A8 + + .global ov18_021FB9F0 +ov18_021FB9F0: .byte 0xAC, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x5C, 0x28, 0x00, 0x00, 0x00, 0x02, 0x01, 0x06 .byte 0x74, 0x40, 0x00, 0x00, 0x01, 0x03, 0x02, 0x06, 0x70, 0x58, 0x00, 0x00, 0x02, 0x04, 0x03, 0x06 .byte 0x88, 0x70, 0x00, 0x00, 0x03, 0x05, 0x04, 0x04, 0x54, 0x88, 0x00, 0x00, 0x04, 0x88, 0x05, 0x05 .byte 0xE0, 0x48, 0x00, 0x00, 0x00, 0x04, 0x81, 0x06, 0x28, 0xB0, 0x00, 0x00, 0x05, 0x07, 0x07, 0x08 .byte 0x80, 0xB0, 0x00, 0x00, 0x05, 0x08, 0x07, 0x09, 0xD8, 0xB0, 0x00, 0x00, 0x05, 0x09, 0x08, 0x09 -_021FBA40: + .size ov18_021FB9F0,.-ov18_021FB9F0 + + .global ov18_021FBA40 +ov18_021FBA40: .byte 0x28, 0x37, 0x03, 0x3C, 0x28, 0x37, 0x43, 0x7C, 0x28, 0x37, 0x83, 0xBC, 0x28, 0x37, 0xC3, 0xFC .byte 0x40, 0x4F, 0x03, 0x3C, 0x40, 0x4F, 0x43, 0x7C, 0x40, 0x4F, 0x83, 0xBC, 0x40, 0x4F, 0xC3, 0xFC .byte 0x58, 0x68, 0x03, 0x3C, 0x58, 0x68, 0x43, 0x7C, 0x58, 0x68, 0x83, 0xBC, 0x58, 0x68, 0xC3, 0xFC .byte 0x70, 0x7F, 0x03, 0x3C, 0x70, 0x7F, 0x43, 0x7C, 0x70, 0x7F, 0x83, 0xBC, 0x70, 0x7F, 0xC3, 0xFC .byte 0x88, 0x97, 0x03, 0x3C, 0x88, 0x97, 0x43, 0x7C, 0xA4, 0xBB, 0x04, 0x4B, 0xA4, 0xBB, 0xB4, 0xFB .byte 0xFF, 0x00, 0x00, 0x00 -_021FBA94: - .byte 0x28, 0x37, 0x18, 0x27, 0x28, 0x37, 0x38, 0x47, 0x28, 0x37, 0x58, 0x67 - .byte 0x28, 0x37, 0x78, 0x87, 0x28, 0x37, 0x98, 0xA7, 0x28, 0x37, 0xB8, 0xC7, 0x28, 0x37, 0xD8, 0xE7 - .byte 0x48, 0x57, 0x18, 0x27, 0x48, 0x57, 0x38, 0x47, 0x48, 0x57, 0x58, 0x67, 0x48, 0x57, 0x78, 0x87 - .byte 0x48, 0x57, 0x98, 0xA7, 0x48, 0x57, 0xB8, 0xC7, 0x48, 0x57, 0xD8, 0xE7, 0x68, 0x77, 0x18, 0x27 - .byte 0x68, 0x77, 0x38, 0x47, 0x68, 0x77, 0x58, 0x67, 0x68, 0x77, 0x78, 0x87, 0x68, 0x77, 0x98, 0xA7 - .byte 0x68, 0x77, 0xB8, 0xC7, 0x68, 0x77, 0xD8, 0xE7, 0x88, 0x97, 0x18, 0x27, 0x88, 0x97, 0x38, 0x47 - .byte 0x88, 0x97, 0x58, 0x67, 0x88, 0x97, 0x78, 0x87, 0x88, 0x97, 0x98, 0xA7, 0x88, 0x97, 0xD8, 0xE7 - .byte 0xA4, 0xBB, 0x04, 0x4B, 0xA4, 0xBB, 0xB4, 0xFB, 0xFF, 0x00, 0x00, 0x00 -_021FBB0C: + .size ov18_021FBA40,.-ov18_021FBA40 + + .global ov18_021FBA94 +ov18_021FBA94: + .byte 0x28, 0x37, 0x18, 0x27 + .byte 0x28, 0x37, 0x38, 0x47 + .byte 0x28, 0x37, 0x58, 0x67 + .byte 0x28, 0x37, 0x78, 0x87 + .byte 0x28, 0x37, 0x98, 0xA7 + .byte 0x28, 0x37, 0xB8, 0xC7 + .byte 0x28, 0x37, 0xD8, 0xE7 + .byte 0x48, 0x57, 0x18, 0x27 + .byte 0x48, 0x57, 0x38, 0x47 + .byte 0x48, 0x57, 0x58, 0x67 + .byte 0x48, 0x57, 0x78, 0x87 + .byte 0x48, 0x57, 0x98, 0xA7 + .byte 0x48, 0x57, 0xB8, 0xC7 + .byte 0x48, 0x57, 0xD8, 0xE7 + .byte 0x68, 0x77, 0x18, 0x27 + .byte 0x68, 0x77, 0x38, 0x47 + .byte 0x68, 0x77, 0x58, 0x67 + .byte 0x68, 0x77, 0x78, 0x87 + .byte 0x68, 0x77, 0x98, 0xA7 + .byte 0x68, 0x77, 0xB8, 0xC7 + .byte 0x68, 0x77, 0xD8, 0xE7 + .byte 0x88, 0x97, 0x18, 0x27 + .byte 0x88, 0x97, 0x38, 0x47 + .byte 0x88, 0x97, 0x58, 0x67 + .byte 0x88, 0x97, 0x78, 0x87 + .byte 0x88, 0x97, 0x98, 0xA7 + .byte 0x88, 0x97, 0xD8, 0xE7 + .byte 0xA4, 0xBB, 0x04, 0x4B + .byte 0xA4, 0xBB, 0xB4, 0xFB + .byte 0xFF, 0x00, 0x00, 0x00 + .size ov18_021FBA94,.-ov18_021FBA94 + + .global ov18_021FBB0C +ov18_021FBB0C: .byte 0x20, 0x38, 0x00, 0x00 .byte 0x0F, 0x05, 0x04, 0x01, 0x50, 0x38, 0x00, 0x00, 0x0F, 0x06, 0x00, 0x02, 0x80, 0x38, 0x00, 0x00 .byte 0x0F, 0x07, 0x01, 0x03, 0xB0, 0x38, 0x00, 0x00, 0x10, 0x08, 0x02, 0x04, 0xE0, 0x38, 0x00, 0x00 @@ -40540,7 +23755,10 @@ _021FBB0C: .byte 0x07, 0x0F, 0x0B, 0x0D, 0xB0, 0x88, 0x00, 0x00, 0x08, 0x10, 0x0C, 0x0E, 0xE0, 0x88, 0x00, 0x00 .byte 0x09, 0x10, 0x0D, 0x0A, 0x28, 0xB0, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x10, 0xD8, 0xB0, 0x00, 0x00 .byte 0x0E, 0x04, 0x0F, 0x0F -_021FBB94: + .size ov18_021FBB0C,.-ov18_021FBB0C + + .global ov18_021FBB94 +ov18_021FBB94: .byte 0x20, 0x30, 0x00, 0x00, 0x12, 0x04, 0x03, 0x01, 0x60, 0x30, 0x00, 0x00 .byte 0x12, 0x05, 0x00, 0x02, 0xA0, 0x30, 0x00, 0x00, 0x13, 0x06, 0x01, 0x03, 0xE0, 0x30, 0x00, 0x00 .byte 0x13, 0x07, 0x02, 0x00, 0x20, 0x48, 0x00, 0x00, 0x00, 0x08, 0x07, 0x05, 0x60, 0x48, 0x00, 0x00 @@ -40552,58 +23770,139 @@ _021FBB94: .byte 0x0B, 0x13, 0x0E, 0x0C, 0x20, 0x90, 0x00, 0x00, 0x0C, 0x12, 0x11, 0x11, 0x60, 0x90, 0x00, 0x00 .byte 0x0D, 0x12, 0x10, 0x10, 0x28, 0xB0, 0x00, 0x00, 0x10, 0x00, 0x13, 0x13, 0xD8, 0xB0, 0x00, 0x00 .byte 0x0F, 0x03, 0x12, 0x12 -_021FBC34: - .byte 0x20, 0x30, 0x00, 0x00, 0x1B, 0x07, 0x06, 0x01, 0x40, 0x30, 0x00, 0x00 - .byte 0x1B, 0x08, 0x00, 0x02, 0x60, 0x30, 0x00, 0x00, 0x1B, 0x09, 0x01, 0x03, 0x80, 0x30, 0x00, 0x00 - .byte 0x1B, 0x0A, 0x02, 0x04, 0xA0, 0x30, 0x00, 0x00, 0x1C, 0x0B, 0x03, 0x05, 0xC0, 0x30, 0x00, 0x00 - .byte 0x1C, 0x0C, 0x04, 0x06, 0xE0, 0x30, 0x00, 0x00, 0x1C, 0x0D, 0x05, 0x00, 0x20, 0x50, 0x00, 0x00 - .byte 0x00, 0x0E, 0x0D, 0x08, 0x40, 0x50, 0x00, 0x00, 0x01, 0x0F, 0x07, 0x09, 0x60, 0x50, 0x00, 0x00 - .byte 0x02, 0x10, 0x08, 0x0A, 0x80, 0x50, 0x00, 0x00, 0x03, 0x11, 0x09, 0x0B, 0xA0, 0x50, 0x00, 0x00 - .byte 0x04, 0x12, 0x0A, 0x0C, 0xC0, 0x50, 0x00, 0x00, 0x05, 0x13, 0x0B, 0x0D, 0xE0, 0x50, 0x00, 0x00 - .byte 0x06, 0x14, 0x0C, 0x07, 0x20, 0x70, 0x00, 0x00, 0x07, 0x15, 0x14, 0x0F, 0x40, 0x70, 0x00, 0x00 - .byte 0x08, 0x16, 0x0E, 0x10, 0x60, 0x70, 0x00, 0x00, 0x09, 0x17, 0x0F, 0x11, 0x80, 0x70, 0x00, 0x00 - .byte 0x0A, 0x18, 0x10, 0x12, 0xA0, 0x70, 0x00, 0x00, 0x0B, 0x19, 0x11, 0x13, 0xC0, 0x70, 0x00, 0x00 - .byte 0x0C, 0x1C, 0x12, 0x14, 0xE0, 0x70, 0x00, 0x00, 0x0D, 0x1A, 0x13, 0x0E, 0x20, 0x90, 0x00, 0x00 - .byte 0x0E, 0x1B, 0x1A, 0x16, 0x40, 0x90, 0x00, 0x00, 0x0F, 0x1B, 0x15, 0x17, 0x60, 0x90, 0x00, 0x00 - .byte 0x10, 0x1B, 0x16, 0x18, 0x80, 0x90, 0x00, 0x00, 0x11, 0x1B, 0x17, 0x19, 0xA0, 0x90, 0x00, 0x00 - .byte 0x12, 0x1C, 0x18, 0x1A -_021FBD04: - .byte 0xE0, 0x90, 0x00, 0x00, 0x14, 0x1C, 0x19, 0x15, 0x28, 0xB0, 0x00, 0x00 - .byte 0x15, 0x00, 0x1C, 0x1C, 0xD8, 0xB0, 0x00, 0x00, 0x1A, 0x06, 0x1B, 0x1B -_021FBD1C: + .size ov18_021FBB94,.-ov18_021FBB94 + + .global ov18_021FBC34 +ov18_021FBC34: + .byte 0x20, 0x30, 0x00, 0x00, 0x1B, 0x07, 0x06, 0x01 + .byte 0x40, 0x30, 0x00, 0x00, 0x1B, 0x08, 0x00, 0x02 + .byte 0x60, 0x30, 0x00, 0x00, 0x1B, 0x09, 0x01, 0x03 + .byte 0x80, 0x30, 0x00, 0x00, 0x1B, 0x0A, 0x02, 0x04 + .byte 0xA0, 0x30, 0x00, 0x00, 0x1C, 0x0B, 0x03, 0x05 + .byte 0xC0, 0x30, 0x00, 0x00, 0x1C, 0x0C, 0x04, 0x06 + .byte 0xE0, 0x30, 0x00, 0x00, 0x1C, 0x0D, 0x05, 0x00 + .byte 0x20, 0x50, 0x00, 0x00, 0x00, 0x0E, 0x0D, 0x08 + .byte 0x40, 0x50, 0x00, 0x00, 0x01, 0x0F, 0x07, 0x09 + .byte 0x60, 0x50, 0x00, 0x00, 0x02, 0x10, 0x08, 0x0A + .byte 0x80, 0x50, 0x00, 0x00, 0x03, 0x11, 0x09, 0x0B + .byte 0xA0, 0x50, 0x00, 0x00, 0x04, 0x12, 0x0A, 0x0C + .byte 0xC0, 0x50, 0x00, 0x00, 0x05, 0x13, 0x0B, 0x0D + .byte 0xE0, 0x50, 0x00, 0x00, 0x06, 0x14, 0x0C, 0x07 + .byte 0x20, 0x70, 0x00, 0x00, 0x07, 0x15, 0x14, 0x0F + .byte 0x40, 0x70, 0x00, 0x00, 0x08, 0x16, 0x0E, 0x10 + .byte 0x60, 0x70, 0x00, 0x00, 0x09, 0x17, 0x0F, 0x11 + .byte 0x80, 0x70, 0x00, 0x00, 0x0A, 0x18, 0x10, 0x12 + .byte 0xA0, 0x70, 0x00, 0x00, 0x0B, 0x19, 0x11, 0x13 + .byte 0xC0, 0x70, 0x00, 0x00, 0x0C, 0x1C, 0x12, 0x14 + .byte 0xE0, 0x70, 0x00, 0x00, 0x0D, 0x1A, 0x13, 0x0E + .byte 0x20, 0x90, 0x00, 0x00, 0x0E, 0x1B, 0x1A, 0x16 + .byte 0x40, 0x90, 0x00, 0x00, 0x0F, 0x1B, 0x15, 0x17 + .byte 0x60, 0x90, 0x00, 0x00, 0x10, 0x1B, 0x16, 0x18 + .byte 0x80, 0x90, 0x00, 0x00, 0x11, 0x1B, 0x17, 0x19 + .byte 0xA0, 0x90, 0x00, 0x00, 0x12, 0x1C, 0x18, 0x1A + .byte 0xE0, 0x90, 0x00, 0x00, 0x14, 0x1C, 0x19, 0x15 + .byte 0x28, 0xB0, 0x00, 0x00, 0x15, 0x00, 0x1C, 0x1C + .byte 0xD8, 0xB0, 0x00, 0x00, 0x1A, 0x06, 0x1B, 0x1B + .size ov18_021FBC34,.-ov18_021FBC34 + + ; file boundary + .balign 4, 0 + + .global ov18_021FBD1C +ov18_021FBD1C: .byte 0x27, 0x23, 0x24, 0x3B .byte 0x3C, 0x26, 0x22, 0x23, 0x23, 0x23, 0x00, 0x00 -_021FBD28: + .size ov18_021FBD1C,.-ov18_021FBD1C + + .global ov18_021FBD28 +ov18_021FBD28: .byte 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22 .byte 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x23, 0x23, 0x00, 0x00, 0x00 -_021FBD3C: + .size ov18_021FBD28,.-ov18_021FBD28 + + .global ov18_021FBD3C +ov18_021FBD3C: .byte 0x26, 0x26, 0x26, 0x26 .byte 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x23, 0x23 -_021FBD50: - .byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FBD60: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x1E, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FBD7C: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -_021FBD98: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x04, 0x00, 0x03, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 -_021FBDB4: - .byte 0x01, 0x02, 0x00, 0x1C, 0x02, 0x02, 0xC8, 0x03, 0x01, 0x0F, 0x03, 0x04 - .byte 0x02, 0x00, 0xC0, 0x03, 0x01, 0x13, 0x03, 0x09, 0x02, 0x00, 0xAE, 0x03, 0x01, 0x0D, 0x05, 0x12 - .byte 0x02, 0x00, 0x8A, 0x03, 0x01, 0x02, 0x11, 0x1C, 0x06, 0x01, 0xE2, 0x02, 0x01, 0x12, 0x0B, 0x05 - .byte 0x02, 0x01, 0xD8, 0x02, 0x01, 0x17, 0x0B, 0x08, 0x02, 0x01, 0xC8, 0x02, 0x01, 0x12, 0x0D, 0x05 - .byte 0x02, 0x01, 0xBE, 0x02, 0x01, 0x17, 0x0D, 0x08, 0x02, 0x01, 0xAE, 0x02 -_021FBDFC: + .size ov18_021FBD3C,.-ov18_021FBD3C + + .global ov18_021FBD50 +ov18_021FBD50: + .word 0x00000020, 0x00010000, 0x00004000, 0x00000000 + .size ov18_021FBD50,.-ov18_021FBD50 + + .global ov18_021FBD60 + .balign 4, 0 +ov18_021FBD60: + .word 0x00000000, 0x00000000, 0x00000800, 0x00000000 + .byte 0x01, 0x00, 0x1E, 0x04, 0x00, 0x02, 0x00, 0x00 + .word 0x00000000 + .size ov18_021FBD60,.-ov18_021FBD60 + + .global ov18_021FBD7C + .balign 4, 0 +ov18_021FBD7C: + .word 0x00000000, 0x00000000, 0x00000800, 0x00000000 + .byte 0x01, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x00, 0x00 + .word 0x00000000 + .size ov18_021FBD7C,.-ov18_021FBD7C + + .global ov18_021FBD98 + .balign 4, 0 +ov18_021FBD98: + .word 0x00000000, 0x00000000, 0x00000800, 0x00000000 + .byte 0x01, 0x00, 0x1D, 0x04, 0x00, 0x03, 0x00, 0x00 + .word 0x00000000 + .size ov18_021FBD98,.-ov18_021FBD98 + + .global ov18_021FBDB4 + .balign 2, 0 +ov18_021FBDB4: + .byte 0x01, 0x02, 0x00, 0x1C, 0x02, 0x02 + .short 0x03C8 + .byte 0x01, 0x0F, 0x03, 0x04, 0x02, 0x00 + .short 0x03C0 + .byte 0x01, 0x13, 0x03, 0x09, 0x02, 0x00 + .short 0x03AE + .byte 0x01, 0x0D, 0x05, 0x12, 0x02, 0x00 + .short 0x038A + .byte 0x01, 0x02, 0x11, 0x1C, 0x06, 0x01 + .short 0x02E2 + .byte 0x01, 0x12, 0x0B, 0x05, 0x02, 0x01 + .short 0x02D8 + .byte 0x01, 0x17, 0x0B, 0x08, 0x02, 0x01 + .short 0x02C8 + .byte 0x01, 0x12, 0x0D, 0x05, 0x02, 0x01 + .short 0x02BE + .byte 0x01, 0x17, 0x0D, 0x08, 0x02, 0x01 + .short 0x02AE + .size ov18_021FBDB4,.-ov18_021FBDB4 + + .global ov18_021FBDFC +ov18_021FBDFC: .byte 0x00, 0x02, 0x00, 0x03 .byte 0x01, 0x01, 0x03, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x02, 0x03, 0x00, 0x00 -_021FBE10: - .byte 0x24, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00 - .byte 0x2C, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00 - .byte 0x2D, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00 - .byte 0x26, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00 - .byte 0x34, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00 + .size ov18_021FBDFC,.-ov18_021FBDFC + + .global ov18_021FBE10 + .balign 4, 0 +ov18_021FBE10: + .word 0x00000024 + .word 0x0000002A + .word 0x00000032 + .word 0x0000002E + .word 0x0000002C + .word 0x00000029 + .word 0x0000002F + .word 0x0000002B + .word 0x0000002D + .word 0x00000024 + .word 0x00000025 + .word 0x00000027 + .word 0x00000026 + .word 0x00000028 + .word 0x00000033 + .word 0x00000031 + .word 0x00000034 + .word 0x00000030 + .size ov18_021FBE10,.-ov18_021FBE10 diff --git a/files/.gitignore b/files/.gitignore index ddebc07f72..748890f58d 100644 --- a/files/.gitignore +++ b/files/.gitignore @@ -23,6 +23,8 @@ a/0/4/6 a/0/5/5 a/0/5/6 a/0/5/7 +a/0/6/8 +a/0/6/9 a/0/7/4 a/0/7/5 a/0/8/1 @@ -78,6 +80,12 @@ data/mmodel/mmodel.narc data/mushi/mushi_*.bin fielddata/tsurepoke/tp_param.narc data/resdat.narc +application/zukanlist/zkn_data/zukan_enc_gold.narc +application/zukanlist/zkn_data/zukan_enc_silver.narc +application/zukanlist/zkn_data/zukan_hw_data_gold.narc +application/zukanlist/zkn_data/zukan_hw_data_silver.narc +application/zukanlist/zkn_data/zukan_data.narc +application/zukanlist/zkn_data/zukan_data_gira.narc application/annon/puzzle_gra.narc demo/opening/gs_opening.narc demo/legend.narc diff --git a/files/a/0/6/8 b/files/a/0/6/8 deleted file mode 100644 index b812f225cd..0000000000 Binary files a/files/a/0/6/8 and /dev/null differ diff --git a/files/a/0/6/9 b/files/a/0/6/9 deleted file mode 100644 index 0415b56269..0000000000 Binary files a/files/a/0/6/9 and /dev/null differ diff --git a/files/a/0/7/5.heartgold.us b/files/a/0/7/5.heartgold.us deleted file mode 100644 index 31a8c9c379..0000000000 Binary files a/files/a/0/7/5.heartgold.us and /dev/null differ diff --git a/files/a/0/7/5.soulsilver.us b/files/a/0/7/5.soulsilver.us deleted file mode 100644 index 371ff2baf5..0000000000 Binary files a/files/a/0/7/5.soulsilver.us and /dev/null differ diff --git a/files/application/zukanlist/zkn_data/zukan_data.json b/files/application/zukanlist/zkn_data/zukan_data.json new file mode 100644 index 0000000000..362a67030e --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_data.json @@ -0,0 +1,14828 @@ +{ + "mon_stats": [ + { + "species": "SPECIES_NONE", + "height": 7, + "weight": 69, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 337, + "scale_m": 256, + "mon_scale_m": 337, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_BULBASAUR", + "height": 7, + "weight": 69, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 337, + "scale_m": 256, + "mon_scale_m": 337, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_IVYSAUR", + "height": 10, + "weight": 130, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 287, + "scale_m": 256, + "mon_scale_m": 287, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_VENUSAUR", + "height": 20, + "weight": 1000, + "body_style": 0, + "scale_f": 308, + "mon_scale_f": 241, + "scale_m": 298, + "mon_scale_m": 241, + "ypos_f": 9, + "mon_ypos_f": 1, + "ypos_m": 8, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_CHARMANDER", + "height": 6, + "weight": 85, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 384, + "scale_m": 256, + "mon_scale_m": 384, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_CHARMELEON", + "height": 11, + "weight": 190, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 293, + "scale_m": 256, + "mon_scale_m": 293, + "ypos_f": 8, + "mon_ypos_f": 15, + "ypos_m": 9, + "mon_ypos_m": 15 + }, + { + "species": "SPECIES_CHARIZARD", + "height": 17, + "weight": 905, + "body_style": 2, + "scale_f": 277, + "mon_scale_f": 248, + "scale_m": 261, + "mon_scale_m": 248, + "ypos_f": 8, + "mon_ypos_f": -1, + "ypos_m": 9, + "mon_ypos_m": -1 + }, + { + "species": "SPECIES_SQUIRTLE", + "height": 5, + "weight": 90, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 395, + "scale_m": 256, + "mon_scale_m": 395, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_WARTORTLE", + "height": 10, + "weight": 225, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 339, + "scale_m": 256, + "mon_scale_m": 339, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_BLASTOISE", + "height": 16, + "weight": 855, + "body_style": 2, + "scale_f": 298, + "mon_scale_f": 224, + "scale_m": 292, + "mon_scale_m": 224, + "ypos_f": 7, + "mon_ypos_f": 1, + "ypos_m": 6, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_CATERPIE", + "height": 3, + "weight": 29, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 502, + "scale_m": 256, + "mon_scale_m": 502, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_METAPOD", + "height": 7, + "weight": 99, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 352, + "scale_m": 256, + "mon_scale_m": 352, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_BUTTERFREE", + "height": 11, + "weight": 320, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 296, + "scale_m": 256, + "mon_scale_m": 296, + "ypos_f": 8, + "mon_ypos_f": -4, + "ypos_m": 9, + "mon_ypos_m": -4 + }, + { + "species": "SPECIES_WEEDLE", + "height": 3, + "weight": 32, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 437, + "scale_m": 256, + "mon_scale_m": 437, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_KAKUNA", + "height": 6, + "weight": 100, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 359, + "scale_m": 256, + "mon_scale_m": 359, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_BEEDRILL", + "height": 10, + "weight": 295, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 249, + "scale_m": 256, + "mon_scale_m": 249, + "ypos_f": 8, + "mon_ypos_f": -7, + "ypos_m": 9, + "mon_ypos_m": -7 + }, + { + "species": "SPECIES_PIDGEY", + "height": 3, + "weight": 18, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 560, + "scale_m": 256, + "mon_scale_m": 560, + "ypos_f": 8, + "mon_ypos_f": 31, + "ypos_m": 9, + "mon_ypos_m": 31 + }, + { + "species": "SPECIES_PIDGEOTTO", + "height": 11, + "weight": 300, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 319, + "scale_m": 256, + "mon_scale_m": 319, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_PIDGEOT", + "height": 15, + "weight": 395, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 242, + "scale_m": 256, + "mon_scale_m": 242, + "ypos_f": 8, + "mon_ypos_f": 2, + "ypos_m": 9, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_RATTATA", + "height": 3, + "weight": 35, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 424, + "scale_m": 256, + "mon_scale_m": 424, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_RATICATE", + "height": 7, + "weight": 185, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 351, + "scale_m": 256, + "mon_scale_m": 351, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_SPEAROW", + "height": 3, + "weight": 20, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 507, + "scale_m": 256, + "mon_scale_m": 507, + "ypos_f": 8, + "mon_ypos_f": 30, + "ypos_m": 9, + "mon_ypos_m": 30 + }, + { + "species": "SPECIES_FEAROW", + "height": 12, + "weight": 380, + "body_style": 5, + "scale_f": 256, + "mon_scale_f": 249, + "scale_m": 256, + "mon_scale_m": 249, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_EKANS", + "height": 20, + "weight": 69, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_ARBOK", + "height": 35, + "weight": 650, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 282, + "scale_m": 256, + "mon_scale_m": 282, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_PIKACHU", + "height": 4, + "weight": 60, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 524, + "scale_m": 256, + "mon_scale_m": 524, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_RAICHU", + "height": 8, + "weight": 300, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 395, + "scale_m": 256, + "mon_scale_m": 395, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_SANDSHREW", + "height": 6, + "weight": 120, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 312, + "scale_m": 256, + "mon_scale_m": 312, + "ypos_f": 8, + "mon_ypos_f": 22, + "ypos_m": 9, + "mon_ypos_m": 22 + }, + { + "species": "SPECIES_SANDSLASH", + "height": 10, + "weight": 295, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 279, + "scale_m": 256, + "mon_scale_m": 279, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_NIDORAN_F", + "height": 4, + "weight": 70, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 377, + "scale_m": 256, + "mon_scale_m": 377, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_NIDORINA", + "height": 8, + "weight": 200, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 301, + "scale_m": 256, + "mon_scale_m": 301, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_NIDOQUEEN", + "height": 13, + "weight": 600, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 268, + "scale_m": 256, + "mon_scale_m": 268, + "ypos_f": 8, + "mon_ypos_f": 6, + "ypos_m": 9, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_NIDORAN_M", + "height": 5, + "weight": 90, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 358, + "scale_m": 256, + "mon_scale_m": 358, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_NIDORINO", + "height": 9, + "weight": 195, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 284, + "scale_m": 256, + "mon_scale_m": 284, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_NIDOKING", + "height": 14, + "weight": 620, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 269, + "scale_m": 256, + "mon_scale_m": 269, + "ypos_f": 8, + "mon_ypos_f": 7, + "ypos_m": 9, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_CLEFAIRY", + "height": 6, + "weight": 75, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 293, + "scale_m": 256, + "mon_scale_m": 293, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_CLEFABLE", + "height": 13, + "weight": 400, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 240, + "scale_m": 256, + "mon_scale_m": 240, + "ypos_f": 8, + "mon_ypos_f": 13, + "ypos_m": 9, + "mon_ypos_m": 13 + }, + { + "species": "SPECIES_VULPIX", + "height": 6, + "weight": 99, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 320, + "scale_m": 256, + "mon_scale_m": 320, + "ypos_f": 8, + "mon_ypos_f": 21, + "ypos_m": 9, + "mon_ypos_m": 21 + }, + { + "species": "SPECIES_NINETALES", + "height": 11, + "weight": 199, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 281, + "scale_m": 256, + "mon_scale_m": 281, + "ypos_f": 8, + "mon_ypos_f": 9, + "ypos_m": 9, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "height": 5, + "weight": 55, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 307, + "scale_m": 256, + "mon_scale_m": 307, + "ypos_f": 8, + "mon_ypos_f": 22, + "ypos_m": 9, + "mon_ypos_m": 22 + }, + { + "species": "SPECIES_WIGGLYTUFF", + "height": 10, + "weight": 120, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 300, + "scale_m": 256, + "mon_scale_m": 300, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_ZUBAT", + "height": 8, + "weight": 75, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 290, + "scale_m": 256, + "mon_scale_m": 290, + "ypos_f": 8, + "mon_ypos_f": -11, + "ypos_m": 9, + "mon_ypos_m": -11 + }, + { + "species": "SPECIES_GOLBAT", + "height": 16, + "weight": 550, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 222, + "scale_m": 256, + "mon_scale_m": 222, + "ypos_f": 8, + "mon_ypos_f": -4, + "ypos_m": 9, + "mon_ypos_m": -4 + }, + { + "species": "SPECIES_ODDISH", + "height": 5, + "weight": 54, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 376, + "scale_m": 256, + "mon_scale_m": 376, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_GLOOM", + "height": 8, + "weight": 86, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 307, + "scale_m": 256, + "mon_scale_m": 307, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_VILEPLUME", + "height": 12, + "weight": 186, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 281, + "scale_m": 256, + "mon_scale_m": 281, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_PARAS", + "height": 3, + "weight": 54, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 469, + "scale_m": 256, + "mon_scale_m": 469, + "ypos_f": 8, + "mon_ypos_f": 30, + "ypos_m": 9, + "mon_ypos_m": 30 + }, + { + "species": "SPECIES_PARASECT", + "height": 10, + "weight": 295, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 309, + "scale_m": 256, + "mon_scale_m": 309, + "ypos_f": 8, + "mon_ypos_f": 18, + "ypos_m": 9, + "mon_ypos_m": 18 + }, + { + "species": "SPECIES_VENONAT", + "height": 10, + "weight": 300, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 292, + "scale_m": 256, + "mon_scale_m": 292, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_VENOMOTH", + "height": 15, + "weight": 125, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": -6, + "ypos_m": 9, + "mon_ypos_m": -6 + }, + { + "species": "SPECIES_DIGLETT", + "height": 2, + "weight": 8, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 530, + "scale_m": 256, + "mon_scale_m": 530, + "ypos_f": 8, + "mon_ypos_f": 32, + "ypos_m": 9, + "mon_ypos_m": 32 + }, + { + "species": "SPECIES_DUGTRIO", + "height": 7, + "weight": 333, + "body_style": 13, + "scale_f": 272, + "mon_scale_f": 321, + "scale_m": 256, + "mon_scale_m": 321, + "ypos_f": 8, + "mon_ypos_f": 21, + "ypos_m": 9, + "mon_ypos_m": 21 + }, + { + "species": "SPECIES_MEOWTH", + "height": 4, + "weight": 42, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 546, + "scale_m": 256, + "mon_scale_m": 546, + "ypos_f": 8, + "mon_ypos_f": 26, + "ypos_m": 9, + "mon_ypos_m": 26 + }, + { + "species": "SPECIES_PERSIAN", + "height": 10, + "weight": 320, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 280, + "scale_m": 256, + "mon_scale_m": 280, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_PSYDUCK", + "height": 8, + "weight": 196, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 326, + "scale_m": 256, + "mon_scale_m": 326, + "ypos_f": 8, + "mon_ypos_f": 21, + "ypos_m": 9, + "mon_ypos_m": 21 + }, + { + "species": "SPECIES_GOLDUCK", + "height": 17, + "weight": 766, + "body_style": 2, + "scale_f": 351, + "mon_scale_f": 256, + "scale_m": 333, + "mon_scale_m": 256, + "ypos_f": 16, + "mon_ypos_f": 9, + "ypos_m": 16, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_MANKEY", + "height": 5, + "weight": 280, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 351, + "scale_m": 256, + "mon_scale_m": 351, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_PRIMEAPE", + "height": 10, + "weight": 320, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 297, + "scale_m": 256, + "mon_scale_m": 297, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_GROWLITHE", + "height": 7, + "weight": 190, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 290, + "scale_m": 256, + "mon_scale_m": 290, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_ARCANINE", + "height": 19, + "weight": 1550, + "body_style": 0, + "scale_f": 342, + "mon_scale_f": 256, + "scale_m": 325, + "mon_scale_m": 256, + "ypos_f": 16, + "mon_ypos_f": 6, + "ypos_m": 16, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_POLIWAG", + "height": 6, + "weight": 124, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 319, + "scale_m": 256, + "mon_scale_m": 319, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_POLIWHIRL", + "height": 10, + "weight": 200, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_POLIWRATH", + "height": 13, + "weight": 540, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 227, + "scale_m": 256, + "mon_scale_m": 227, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_ABRA", + "height": 9, + "weight": 195, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 364, + "scale_m": 256, + "mon_scale_m": 364, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_KADABRA", + "height": 13, + "weight": 565, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 247, + "scale_m": 256, + "mon_scale_m": 247, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_ALAKAZAM", + "height": 15, + "weight": 480, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 238, + "scale_m": 256, + "mon_scale_m": 238, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_MACHOP", + "height": 8, + "weight": 195, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 382, + "scale_m": 256, + "mon_scale_m": 382, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_MACHOKE", + "height": 15, + "weight": 705, + "body_style": 1, + "scale_f": 256, + "mon_scale_f": 250, + "scale_m": 256, + "mon_scale_m": 250, + "ypos_f": 8, + "mon_ypos_f": 7, + "ypos_m": 9, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_MACHAMP", + "height": 16, + "weight": 1300, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 235, + "scale_m": 256, + "mon_scale_m": 235, + "ypos_f": 8, + "mon_ypos_f": -3, + "ypos_m": 9, + "mon_ypos_m": -3 + }, + { + "species": "SPECIES_BELLSPROUT", + "height": 7, + "weight": 40, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 305, + "scale_m": 256, + "mon_scale_m": 305, + "ypos_f": 8, + "mon_ypos_f": 22, + "ypos_m": 9, + "mon_ypos_m": 22 + }, + { + "species": "SPECIES_WEEPINBELL", + "height": 10, + "weight": 64, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 300, + "scale_m": 256, + "mon_scale_m": 300, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_VICTREEBEL", + "height": 17, + "weight": 155, + "body_style": 7, + "scale_f": 340, + "mon_scale_f": 256, + "scale_m": 312, + "mon_scale_m": 256, + "ypos_f": 4, + "mon_ypos_f": 4, + "ypos_m": 2, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_TENTACOOL", + "height": 9, + "weight": 455, + "body_style": 10, + "scale_f": 272, + "mon_scale_f": 303, + "scale_m": 256, + "mon_scale_m": 303, + "ypos_f": 8, + "mon_ypos_f": -3, + "ypos_m": 9, + "mon_ypos_m": -3 + }, + { + "species": "SPECIES_TENTACRUEL", + "height": 16, + "weight": 550, + "body_style": 10, + "scale_f": 272, + "mon_scale_f": 245, + "scale_m": 256, + "mon_scale_m": 245, + "ypos_f": 5, + "mon_ypos_f": -1, + "ypos_m": 4, + "mon_ypos_m": -1 + }, + { + "species": "SPECIES_GEODUDE", + "height": 4, + "weight": 200, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 380, + "scale_m": 256, + "mon_scale_m": 380, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_GRAVELER", + "height": 10, + "weight": 1050, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_GOLEM", + "height": 14, + "weight": 3000, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 225, + "scale_m": 256, + "mon_scale_m": 225, + "ypos_f": 8, + "mon_ypos_f": 7, + "ypos_m": 9, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_PONYTA", + "height": 10, + "weight": 300, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 304, + "scale_m": 256, + "mon_scale_m": 304, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_RAPIDASH", + "height": 17, + "weight": 950, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 235, + "scale_m": 256, + "mon_scale_m": 235, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_SLOWPOKE", + "height": 12, + "weight": 360, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_SLOWBRO", + "height": 16, + "weight": 785, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 214, + "scale_m": 256, + "mon_scale_m": 214, + "ypos_f": 8, + "mon_ypos_f": 6, + "ypos_m": 9, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_MAGNEMITE", + "height": 3, + "weight": 60, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 390, + "scale_m": 256, + "mon_scale_m": 390, + "ypos_f": 8, + "mon_ypos_f": -14, + "ypos_m": 9, + "mon_ypos_m": -14 + }, + { + "species": "SPECIES_MAGNETON", + "height": 10, + "weight": 600, + "body_style": 13, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_FARFETCHD", + "height": 8, + "weight": 150, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 314, + "scale_m": 256, + "mon_scale_m": 314, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_DODUO", + "height": 14, + "weight": 392, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 250, + "scale_m": 256, + "mon_scale_m": 250, + "ypos_f": 8, + "mon_ypos_f": 12, + "ypos_m": 9, + "mon_ypos_m": 12 + }, + { + "species": "SPECIES_DODRIO", + "height": 18, + "weight": 852, + "body_style": 9, + "scale_f": 310, + "mon_scale_f": 256, + "scale_m": 303, + "mon_scale_m": 256, + "ypos_f": 13, + "mon_ypos_f": 2, + "ypos_m": 12, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_SEEL", + "height": 11, + "weight": 900, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 244, + "scale_m": 256, + "mon_scale_m": 244, + "ypos_f": 8, + "mon_ypos_f": 13, + "ypos_m": 9, + "mon_ypos_m": 13 + }, + { + "species": "SPECIES_DEWGONG", + "height": 17, + "weight": 1200, + "body_style": 11, + "scale_f": 290, + "mon_scale_f": 256, + "scale_m": 280, + "mon_scale_m": 256, + "ypos_f": 6, + "mon_ypos_f": 1, + "ypos_m": 5, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_GRIMER", + "height": 9, + "weight": 300, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 224, + "scale_m": 256, + "mon_scale_m": 224, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_MUK", + "height": 12, + "weight": 300, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 6, + "ypos_m": 9, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_SHELLDER", + "height": 3, + "weight": 40, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 482, + "scale_m": 256, + "mon_scale_m": 482, + "ypos_f": 8, + "mon_ypos_f": 29, + "ypos_m": 9, + "mon_ypos_m": 29 + }, + { + "species": "SPECIES_CLOYSTER", + "height": 15, + "weight": 1325, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 233, + "scale_m": 256, + "mon_scale_m": 233, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_GASTLY", + "height": 13, + "weight": 1, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 211, + "scale_m": 256, + "mon_scale_m": 211, + "ypos_f": 8, + "mon_ypos_f": -2, + "ypos_m": 9, + "mon_ypos_m": -2 + }, + { + "species": "SPECIES_HAUNTER", + "height": 16, + "weight": 1, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 214, + "scale_m": 256, + "mon_scale_m": 214, + "ypos_f": 8, + "mon_ypos_f": -6, + "ypos_m": 9, + "mon_ypos_m": -6 + }, + { + "species": "SPECIES_GENGAR", + "height": 15, + "weight": 405, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 191, + "scale_m": 256, + "mon_scale_m": 191, + "ypos_f": 8, + "mon_ypos_f": -1, + "ypos_m": 9, + "mon_ypos_m": -1 + }, + { + "species": "SPECIES_ONIX", + "height": 88, + "weight": 2100, + "body_style": 3, + "scale_f": 692, + "mon_scale_f": 256, + "scale_m": 588, + "mon_scale_m": 256, + "ypos_f": 26, + "mon_ypos_f": 1, + "ypos_m": 25, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_DROWZEE", + "height": 10, + "weight": 324, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 319, + "scale_m": 256, + "mon_scale_m": 319, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_HYPNO", + "height": 16, + "weight": 756, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 222, + "scale_m": 256, + "mon_scale_m": 222, + "ypos_f": 8, + "mon_ypos_f": 2, + "ypos_m": 9, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_KRABBY", + "height": 4, + "weight": 65, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 493, + "scale_m": 256, + "mon_scale_m": 493, + "ypos_f": 8, + "mon_ypos_f": 30, + "ypos_m": 9, + "mon_ypos_m": 30 + }, + { + "species": "SPECIES_KINGLER", + "height": 13, + "weight": 600, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 11, + "ypos_m": 9, + "mon_ypos_m": 11 + }, + { + "species": "SPECIES_VOLTORB", + "height": 5, + "weight": 104, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 336, + "scale_m": 256, + "mon_scale_m": 336, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_ELECTRODE", + "height": 12, + "weight": 666, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 222, + "scale_m": 256, + "mon_scale_m": 222, + "ypos_f": 8, + "mon_ypos_f": 11, + "ypos_m": 9, + "mon_ypos_m": 11 + }, + { + "species": "SPECIES_EXEGGCUTE", + "height": 4, + "weight": 25, + "body_style": 13, + "scale_f": 272, + "mon_scale_f": 377, + "scale_m": 256, + "mon_scale_m": 377, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_EXEGGUTOR", + "height": 20, + "weight": 1200, + "body_style": 9, + "scale_f": 357, + "mon_scale_f": 256, + "scale_m": 351, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": 2, + "ypos_m": 14, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_CUBONE", + "height": 4, + "weight": 65, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 461, + "scale_m": 256, + "mon_scale_m": 461, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_MAROWAK", + "height": 10, + "weight": 450, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 284, + "scale_m": 256, + "mon_scale_m": 284, + "ypos_f": 8, + "mon_ypos_f": 13, + "ypos_m": 9, + "mon_ypos_m": 13 + }, + { + "species": "SPECIES_HITMONLEE", + "height": 15, + "weight": 498, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 218, + "scale_m": 256, + "mon_scale_m": 218, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_HITMONCHAN", + "height": 14, + "weight": 502, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 234, + "scale_m": 256, + "mon_scale_m": 234, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_LICKITUNG", + "height": 12, + "weight": 655, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 235, + "scale_m": 256, + "mon_scale_m": 235, + "ypos_f": 8, + "mon_ypos_f": 10, + "ypos_m": 9, + "mon_ypos_m": 10 + }, + { + "species": "SPECIES_KOFFING", + "height": 6, + "weight": 10, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 350, + "scale_m": 256, + "mon_scale_m": 350, + "ypos_f": 8, + "mon_ypos_f": -10, + "ypos_m": 9, + "mon_ypos_m": -10 + }, + { + "species": "SPECIES_WEEZING", + "height": 12, + "weight": 95, + "body_style": 13, + "scale_f": 272, + "mon_scale_f": 285, + "scale_m": 256, + "mon_scale_m": 285, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_RHYHORN", + "height": 10, + "weight": 1150, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 236, + "scale_m": 256, + "mon_scale_m": 236, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_RHYDON", + "height": 19, + "weight": 1200, + "body_style": 2, + "scale_f": 350, + "mon_scale_f": 256, + "scale_m": 333, + "mon_scale_m": 256, + "ypos_f": 16, + "mon_ypos_f": 4, + "ypos_m": 16, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_CHANSEY", + "height": 11, + "weight": 346, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 215, + "scale_m": 256, + "mon_scale_m": 215, + "ypos_f": 8, + "mon_ypos_f": 10, + "ypos_m": 9, + "mon_ypos_m": 10 + }, + { + "species": "SPECIES_TANGELA", + "height": 10, + "weight": 350, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_KANGASKHAN", + "height": 22, + "weight": 800, + "body_style": 2, + "scale_f": 351, + "mon_scale_f": 232, + "scale_m": 333, + "mon_scale_m": 232, + "ypos_f": 15, + "mon_ypos_f": 0, + "ypos_m": 15, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_HORSEA", + "height": 4, + "weight": 80, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 476, + "scale_m": 256, + "mon_scale_m": 476, + "ypos_f": 8, + "mon_ypos_f": -6, + "ypos_m": 9, + "mon_ypos_m": -6 + }, + { + "species": "SPECIES_SEADRA", + "height": 12, + "weight": 250, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 240, + "scale_m": 256, + "mon_scale_m": 240, + "ypos_f": 8, + "mon_ypos_f": -4, + "ypos_m": 9, + "mon_ypos_m": -4 + }, + { + "species": "SPECIES_GOLDEEN", + "height": 6, + "weight": 150, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 266, + "scale_m": 256, + "mon_scale_m": 266, + "ypos_f": 8, + "mon_ypos_f": -5, + "ypos_m": 9, + "mon_ypos_m": -5 + }, + { + "species": "SPECIES_SEAKING", + "height": 13, + "weight": 390, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 239, + "scale_m": 256, + "mon_scale_m": 239, + "ypos_f": 8, + "mon_ypos_f": -3, + "ypos_m": 9, + "mon_ypos_m": -3 + }, + { + "species": "SPECIES_STARYU", + "height": 8, + "weight": 345, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 297, + "scale_m": 256, + "mon_scale_m": 297, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_STARMIE", + "height": 11, + "weight": 800, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 268, + "scale_m": 256, + "mon_scale_m": 268, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_MR_MIME", + "height": 13, + "weight": 545, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 227, + "scale_m": 256, + "mon_scale_m": 227, + "ypos_f": 8, + "mon_ypos_f": 9, + "ypos_m": 9, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_SCYTHER", + "height": 15, + "weight": 560, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 223, + "scale_m": 256, + "mon_scale_m": 223, + "ypos_f": 8, + "mon_ypos_f": 4, + "ypos_m": 9, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_JYNX", + "height": 14, + "weight": 406, + "body_style": 1, + "scale_f": 256, + "mon_scale_f": 219, + "scale_m": 256, + "mon_scale_m": 219, + "ypos_f": 8, + "mon_ypos_f": 7, + "ypos_m": 9, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_ELECTABUZZ", + "height": 11, + "weight": 300, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 273, + "scale_m": 256, + "mon_scale_m": 273, + "ypos_f": 8, + "mon_ypos_f": 6, + "ypos_m": 9, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_MAGMAR", + "height": 13, + "weight": 445, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 10, + "ypos_m": 9, + "mon_ypos_m": 10 + }, + { + "species": "SPECIES_PINSIR", + "height": 15, + "weight": 550, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 227, + "scale_m": 256, + "mon_scale_m": 227, + "ypos_f": 8, + "mon_ypos_f": 4, + "ypos_m": 9, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_TAUROS", + "height": 14, + "weight": 884, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 187, + "scale_m": 256, + "mon_scale_m": 187, + "ypos_f": 8, + "mon_ypos_f": -1, + "ypos_m": 9, + "mon_ypos_m": -1 + }, + { + "species": "SPECIES_MAGIKARP", + "height": 9, + "weight": 100, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 298, + "scale_m": 256, + "mon_scale_m": 298, + "ypos_f": 8, + "mon_ypos_f": -5, + "ypos_m": 9, + "mon_ypos_m": -5 + }, + { + "species": "SPECIES_GYARADOS", + "height": 65, + "weight": 2350, + "body_style": 3, + "scale_f": 512, + "mon_scale_f": 256, + "scale_m": 488, + "mon_scale_m": 256, + "ypos_f": 22, + "mon_ypos_f": 0, + "ypos_m": 22, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_LAPRAS", + "height": 25, + "weight": 2200, + "body_style": 11, + "scale_f": 338, + "mon_scale_f": 230, + "scale_m": 333, + "mon_scale_m": 230, + "ypos_f": 16, + "mon_ypos_f": 5, + "ypos_m": 16, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_DITTO", + "height": 3, + "weight": 40, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 386, + "scale_m": 256, + "mon_scale_m": 386, + "ypos_f": 8, + "mon_ypos_f": 30, + "ypos_m": 9, + "mon_ypos_m": 30 + }, + { + "species": "SPECIES_EEVEE", + "height": 3, + "weight": 65, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 542, + "scale_m": 256, + "mon_scale_m": 542, + "ypos_f": 8, + "mon_ypos_f": 29, + "ypos_m": 9, + "mon_ypos_m": 29 + }, + { + "species": "SPECIES_VAPOREON", + "height": 10, + "weight": 290, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 249, + "scale_m": 256, + "mon_scale_m": 249, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_JOLTEON", + "height": 8, + "weight": 245, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_FLAREON", + "height": 9, + "weight": 250, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 235, + "scale_m": 256, + "mon_scale_m": 235, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_PORYGON", + "height": 8, + "weight": 365, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 316, + "scale_m": 256, + "mon_scale_m": 316, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_OMANYTE", + "height": 4, + "weight": 75, + "body_style": 10, + "scale_f": 272, + "mon_scale_f": 388, + "scale_m": 256, + "mon_scale_m": 388, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_OMASTAR", + "height": 10, + "weight": 350, + "body_style": 10, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_KABUTO", + "height": 5, + "weight": 115, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 319, + "scale_m": 256, + "mon_scale_m": 319, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_KABUTOPS", + "height": 13, + "weight": 405, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 6, + "ypos_m": 9, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_AERODACTYL", + "height": 18, + "weight": 590, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 221, + "scale_m": 256, + "mon_scale_m": 221, + "ypos_f": 8, + "mon_ypos_f": 1, + "ypos_m": 9, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_SNORLAX", + "height": 21, + "weight": 4600, + "body_style": 1, + "scale_f": 350, + "mon_scale_f": 256, + "scale_m": 333, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": 7, + "ypos_m": 16, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_ARTICUNO", + "height": 17, + "weight": 554, + "body_style": 5, + "scale_f": 317, + "mon_scale_f": 256, + "scale_m": 315, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 7, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_ZAPDOS", + "height": 16, + "weight": 526, + "body_style": 5, + "scale_f": 349, + "mon_scale_f": 256, + "scale_m": 333, + "mon_scale_m": 256, + "ypos_f": 6, + "mon_ypos_f": 0, + "ypos_m": 5, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_MOLTRES", + "height": 20, + "weight": 600, + "body_style": 5, + "scale_f": 334, + "mon_scale_f": 256, + "scale_m": 325, + "mon_scale_m": 256, + "ypos_f": 14, + "mon_ypos_f": 1, + "ypos_m": 13, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_DRATINI", + "height": 18, + "weight": 33, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 201, + "scale_m": 256, + "mon_scale_m": 201, + "ypos_f": 6, + "mon_ypos_f": 6, + "ypos_m": 5, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_DRAGONAIR", + "height": 40, + "weight": 165, + "body_style": 3, + "scale_f": 335, + "mon_scale_f": 245, + "scale_m": 335, + "mon_scale_m": 245, + "ypos_f": 16, + "mon_ypos_f": 4, + "ypos_m": 15, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_DRAGONITE", + "height": 22, + "weight": 2100, + "body_style": 2, + "scale_f": 318, + "mon_scale_f": 256, + "scale_m": 307, + "mon_scale_m": 256, + "ypos_f": 9, + "mon_ypos_f": 1, + "ypos_m": 8, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_MEWTWO", + "height": 20, + "weight": 1220, + "body_style": 2, + "scale_f": 335, + "mon_scale_f": 256, + "scale_m": 320, + "mon_scale_m": 256, + "ypos_f": 16, + "mon_ypos_f": 6, + "ypos_m": 16, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_MEW", + "height": 4, + "weight": 40, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 465, + "scale_m": 256, + "mon_scale_m": 465, + "ypos_f": 8, + "mon_ypos_f": -14, + "ypos_m": 9, + "mon_ypos_m": -14 + }, + { + "species": "SPECIES_CHIKORITA", + "height": 9, + "weight": 64, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 315, + "scale_m": 256, + "mon_scale_m": 315, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_BAYLEEF", + "height": 12, + "weight": 158, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 264, + "scale_m": 256, + "mon_scale_m": 264, + "ypos_f": 8, + "mon_ypos_f": 7, + "ypos_m": 9, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_MEGANIUM", + "height": 18, + "weight": 1005, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 234, + "scale_m": 256, + "mon_scale_m": 234, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_CYNDAQUIL", + "height": 5, + "weight": 79, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 357, + "scale_m": 256, + "mon_scale_m": 357, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_QUILAVA", + "height": 9, + "weight": 190, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 300, + "scale_m": 256, + "mon_scale_m": 300, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_TYPHLOSION", + "height": 17, + "weight": 795, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 241, + "scale_m": 256, + "mon_scale_m": 241, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_TOTODILE", + "height": 6, + "weight": 95, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 330, + "scale_m": 256, + "mon_scale_m": 330, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_CROCONAW", + "height": 11, + "weight": 250, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 278, + "scale_m": 256, + "mon_scale_m": 278, + "ypos_f": 8, + "mon_ypos_f": 13, + "ypos_m": 9, + "mon_ypos_m": 13 + }, + { + "species": "SPECIES_FERALIGATR", + "height": 23, + "weight": 888, + "body_style": 2, + "scale_f": 358, + "mon_scale_f": 256, + "scale_m": 333, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": 2, + "ypos_m": 15, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_SENTRET", + "height": 8, + "weight": 60, + "body_style": 0, + "scale_f": 256, + "mon_scale_f": 410, + "scale_m": 256, + "mon_scale_m": 410, + "ypos_f": 8, + "mon_ypos_f": 18, + "ypos_m": 9, + "mon_ypos_m": 18 + }, + { + "species": "SPECIES_FURRET", + "height": 18, + "weight": 325, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 319, + "scale_m": 256, + "mon_scale_m": 319, + "ypos_f": 8, + "mon_ypos_f": 18, + "ypos_m": 9, + "mon_ypos_m": 18 + }, + { + "species": "SPECIES_HOOTHOOT", + "height": 7, + "weight": 212, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 350, + "scale_m": 256, + "mon_scale_m": 350, + "ypos_f": 8, + "mon_ypos_f": 21, + "ypos_m": 9, + "mon_ypos_m": 21 + }, + { + "species": "SPECIES_NOCTOWL", + "height": 16, + "weight": 408, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 239, + "scale_m": 256, + "mon_scale_m": 239, + "ypos_f": 8, + "mon_ypos_f": 3, + "ypos_m": 9, + "mon_ypos_m": 3 + }, + { + "species": "SPECIES_LEDYBA", + "height": 10, + "weight": 108, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 259, + "scale_m": 256, + "mon_scale_m": 259, + "ypos_f": 8, + "mon_ypos_f": -5, + "ypos_m": 9, + "mon_ypos_m": -5 + }, + { + "species": "SPECIES_LEDIAN", + "height": 14, + "weight": 356, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 238, + "scale_m": 256, + "mon_scale_m": 238, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_SPINARAK", + "height": 5, + "weight": 85, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 274, + "scale_m": 256, + "mon_scale_m": 274, + "ypos_f": 8, + "mon_ypos_f": 26, + "ypos_m": 9, + "mon_ypos_m": 26 + }, + { + "species": "SPECIES_ARIADOS", + "height": 11, + "weight": 335, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 227, + "scale_m": 256, + "mon_scale_m": 227, + "ypos_f": 8, + "mon_ypos_f": 12, + "ypos_m": 9, + "mon_ypos_m": 12 + }, + { + "species": "SPECIES_CROBAT", + "height": 18, + "weight": 750, + "body_style": 4, + "scale_f": 315, + "mon_scale_f": 256, + "scale_m": 303, + "mon_scale_m": 256, + "ypos_f": 13, + "mon_ypos_f": -3, + "ypos_m": 13, + "mon_ypos_m": -3 + }, + { + "species": "SPECIES_CHINCHOU", + "height": 5, + "weight": 120, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 348, + "scale_m": 256, + "mon_scale_m": 348, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_LANTURN", + "height": 12, + "weight": 225, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 304, + "scale_m": 256, + "mon_scale_m": 304, + "ypos_f": 8, + "mon_ypos_f": 2, + "ypos_m": 9, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_PICHU", + "height": 3, + "weight": 20, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 475, + "scale_m": 256, + "mon_scale_m": 475, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_CLEFFA", + "height": 3, + "weight": 30, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 427, + "scale_m": 256, + "mon_scale_m": 427, + "ypos_f": 8, + "mon_ypos_f": 29, + "ypos_m": 9, + "mon_ypos_m": 29 + }, + { + "species": "SPECIES_IGGLYBUFF", + "height": 3, + "weight": 10, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 462, + "scale_m": 256, + "mon_scale_m": 462, + "ypos_f": 8, + "mon_ypos_f": 29, + "ypos_m": 9, + "mon_ypos_m": 29 + }, + { + "species": "SPECIES_TOGEPI", + "height": 3, + "weight": 15, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 451, + "scale_m": 256, + "mon_scale_m": 451, + "ypos_f": 8, + "mon_ypos_f": 31, + "ypos_m": 9, + "mon_ypos_m": 31 + }, + { + "species": "SPECIES_TOGETIC", + "height": 6, + "weight": 32, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 387, + "scale_m": 256, + "mon_scale_m": 387, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_NATU", + "height": 2, + "weight": 20, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 479, + "scale_m": 256, + "mon_scale_m": 479, + "ypos_f": 8, + "mon_ypos_f": 31, + "ypos_m": 9, + "mon_ypos_m": 31 + }, + { + "species": "SPECIES_XATU", + "height": 15, + "weight": 150, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 206, + "scale_m": 256, + "mon_scale_m": 206, + "ypos_f": 8, + "mon_ypos_f": 4, + "ypos_m": 9, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_MAREEP", + "height": 6, + "weight": 78, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 278, + "scale_m": 256, + "mon_scale_m": 278, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_FLAAFFY", + "height": 8, + "weight": 133, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 309, + "scale_m": 256, + "mon_scale_m": 309, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_AMPHAROS", + "height": 14, + "weight": 615, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 243, + "scale_m": 256, + "mon_scale_m": 243, + "ypos_f": 8, + "mon_ypos_f": 7, + "ypos_m": 9, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_BELLOSSOM", + "height": 4, + "weight": 58, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 417, + "scale_m": 256, + "mon_scale_m": 417, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_MARILL", + "height": 4, + "weight": 85, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 401, + "scale_m": 256, + "mon_scale_m": 401, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_AZUMARILL", + "height": 8, + "weight": 285, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 337, + "scale_m": 256, + "mon_scale_m": 337, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_SUDOWOODO", + "height": 12, + "weight": 380, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 235, + "scale_m": 256, + "mon_scale_m": 235, + "ypos_f": 8, + "mon_ypos_f": 11, + "ypos_m": 9, + "mon_ypos_m": 11 + }, + { + "species": "SPECIES_POLITOED", + "height": 11, + "weight": 339, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 273, + "scale_m": 256, + "mon_scale_m": 273, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_HOPPIP", + "height": 4, + "weight": 5, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 438, + "scale_m": 256, + "mon_scale_m": 438, + "ypos_f": 8, + "mon_ypos_f": -6, + "ypos_m": 9, + "mon_ypos_m": -6 + }, + { + "species": "SPECIES_SKIPLOOM", + "height": 6, + "weight": 10, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 281, + "scale_m": 256, + "mon_scale_m": 281, + "ypos_f": 8, + "mon_ypos_f": 1, + "ypos_m": 9, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_JUMPLUFF", + "height": 8, + "weight": 30, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 354, + "scale_m": 256, + "mon_scale_m": 354, + "ypos_f": 8, + "mon_ypos_f": -7, + "ypos_m": 9, + "mon_ypos_m": -7 + }, + { + "species": "SPECIES_AIPOM", + "height": 8, + "weight": 115, + "body_style": 2, + "scale_f": 256, + "mon_scale_f": 323, + "scale_m": 256, + "mon_scale_m": 323, + "ypos_f": 8, + "mon_ypos_f": 15, + "ypos_m": 9, + "mon_ypos_m": 15 + }, + { + "species": "SPECIES_SUNKERN", + "height": 3, + "weight": 18, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 488, + "scale_m": 256, + "mon_scale_m": 488, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_SUNFLORA", + "height": 8, + "weight": 85, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 310, + "scale_m": 256, + "mon_scale_m": 310, + "ypos_f": 8, + "mon_ypos_f": 18, + "ypos_m": 9, + "mon_ypos_m": 18 + }, + { + "species": "SPECIES_YANMA", + "height": 12, + "weight": 380, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 325, + "scale_m": 256, + "mon_scale_m": 325, + "ypos_f": 8, + "mon_ypos_f": -5, + "ypos_m": 9, + "mon_ypos_m": -5 + }, + { + "species": "SPECIES_WOOPER", + "height": 4, + "weight": 85, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 360, + "scale_m": 256, + "mon_scale_m": 360, + "ypos_f": 8, + "mon_ypos_f": 26, + "ypos_m": 9, + "mon_ypos_m": 26 + }, + { + "species": "SPECIES_QUAGSIRE", + "height": 14, + "weight": 750, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 212, + "scale_m": 256, + "mon_scale_m": 212, + "ypos_f": 8, + "mon_ypos_f": 6, + "ypos_m": 9, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_ESPEON", + "height": 9, + "weight": 265, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 12, + "ypos_m": 9, + "mon_ypos_m": 12 + }, + { + "species": "SPECIES_UMBREON", + "height": 10, + "weight": 270, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 15, + "ypos_m": 9, + "mon_ypos_m": 15 + }, + { + "species": "SPECIES_MURKROW", + "height": 5, + "weight": 21, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 415, + "scale_m": 256, + "mon_scale_m": 415, + "ypos_f": 8, + "mon_ypos_f": -7, + "ypos_m": 9, + "mon_ypos_m": -7 + }, + { + "species": "SPECIES_SLOWKING", + "height": 20, + "weight": 795, + "body_style": 2, + "scale_f": 352, + "mon_scale_f": 256, + "scale_m": 334, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": 5, + "ypos_m": 15, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_MISDREAVUS", + "height": 7, + "weight": 10, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 288, + "scale_m": 256, + "mon_scale_m": 288, + "ypos_f": 8, + "mon_ypos_f": -9, + "ypos_m": 9, + "mon_ypos_m": -9 + }, + { + "species": "SPECIES_UNOWN", + "height": 5, + "weight": 50, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 378, + "scale_m": 256, + "mon_scale_m": 378, + "ypos_f": 8, + "mon_ypos_f": 1, + "ypos_m": 9, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_WOBBUFFET", + "height": 13, + "weight": 285, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 219, + "scale_m": 256, + "mon_scale_m": 219, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_GIRAFARIG", + "height": 15, + "weight": 415, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 244, + "scale_m": 256, + "mon_scale_m": 244, + "ypos_f": 8, + "mon_ypos_f": 4, + "ypos_m": 9, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_PINECO", + "height": 6, + "weight": 72, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 347, + "scale_m": 256, + "mon_scale_m": 347, + "ypos_f": 8, + "mon_ypos_f": 2, + "ypos_m": 9, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_FORRETRESS", + "height": 12, + "weight": 1258, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 230, + "scale_m": 256, + "mon_scale_m": 230, + "ypos_f": 8, + "mon_ypos_f": 9, + "ypos_m": 9, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_DUNSPARCE", + "height": 15, + "weight": 140, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_GLIGAR", + "height": 11, + "weight": 648, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 292, + "scale_m": 256, + "mon_scale_m": 292, + "ypos_f": 8, + "mon_ypos_f": -3, + "ypos_m": 9, + "mon_ypos_m": -3 + }, + { + "species": "SPECIES_STEELIX", + "height": 92, + "weight": 4000, + "body_style": 3, + "scale_f": 604, + "mon_scale_f": 256, + "scale_m": 588, + "mon_scale_m": 256, + "ypos_f": 21, + "mon_ypos_f": 3, + "ypos_m": 21, + "mon_ypos_m": 3 + }, + { + "species": "SPECIES_SNUBBULL", + "height": 6, + "weight": 78, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 351, + "scale_m": 256, + "mon_scale_m": 351, + "ypos_f": 8, + "mon_ypos_f": 22, + "ypos_m": 9, + "mon_ypos_m": 22 + }, + { + "species": "SPECIES_GRANBULL", + "height": 14, + "weight": 487, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 232, + "scale_m": 256, + "mon_scale_m": 232, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_QWILFISH", + "height": 5, + "weight": 39, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 316, + "scale_m": 256, + "mon_scale_m": 316, + "ypos_f": 8, + "mon_ypos_f": 4, + "ypos_m": 9, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_SCIZOR", + "height": 18, + "weight": 1180, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 9, + "ypos_m": 9, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_SHUCKLE", + "height": 6, + "weight": 205, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 386, + "scale_m": 256, + "mon_scale_m": 386, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_HERACROSS", + "height": 15, + "weight": 540, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 229, + "scale_m": 256, + "mon_scale_m": 229, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_SNEASEL", + "height": 9, + "weight": 280, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 315, + "scale_m": 256, + "mon_scale_m": 315, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_TEDDIURSA", + "height": 6, + "weight": 88, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 316, + "scale_m": 256, + "mon_scale_m": 316, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_URSARING", + "height": 18, + "weight": 1258, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 218, + "scale_m": 256, + "mon_scale_m": 218, + "ypos_f": 8, + "mon_ypos_f": 1, + "ypos_m": 9, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_SLUGMA", + "height": 7, + "weight": 350, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 268, + "scale_m": 256, + "mon_scale_m": 268, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_MAGCARGO", + "height": 8, + "weight": 550, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 274, + "scale_m": 256, + "mon_scale_m": 274, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_SWINUB", + "height": 4, + "weight": 65, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 274, + "scale_m": 256, + "mon_scale_m": 274, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_PILOSWINE", + "height": 11, + "weight": 558, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 12, + "ypos_m": 9, + "mon_ypos_m": 12 + }, + { + "species": "SPECIES_CORSOLA", + "height": 6, + "weight": 50, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 341, + "scale_m": 256, + "mon_scale_m": 341, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_REMORAID", + "height": 6, + "weight": 120, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 331, + "scale_m": 256, + "mon_scale_m": 331, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_OCTILLERY", + "height": 9, + "weight": 285, + "body_style": 10, + "scale_f": 272, + "mon_scale_f": 258, + "scale_m": 256, + "mon_scale_m": 258, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_DELIBIRD", + "height": 9, + "weight": 160, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 295, + "scale_m": 256, + "mon_scale_m": 295, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_MANTINE", + "height": 21, + "weight": 2200, + "body_style": 5, + "scale_f": 356, + "mon_scale_f": 256, + "scale_m": 366, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": -1, + "ypos_m": 16, + "mon_ypos_m": -1 + }, + { + "species": "SPECIES_SKARMORY", + "height": 17, + "weight": 505, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 232, + "scale_m": 256, + "mon_scale_m": 232, + "ypos_f": 8, + "mon_ypos_f": 2, + "ypos_m": 9, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_HOUNDOUR", + "height": 6, + "weight": 108, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 337, + "scale_m": 256, + "mon_scale_m": 337, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_HOUNDOOM", + "height": 14, + "weight": 350, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 9, + "ypos_m": 9, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_KINGDRA", + "height": 18, + "weight": 1520, + "body_style": 7, + "scale_f": 322, + "mon_scale_f": 256, + "scale_m": 320, + "mon_scale_m": 256, + "ypos_f": 11, + "mon_ypos_f": 2, + "ypos_m": 12, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_PHANPY", + "height": 5, + "weight": 335, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 358, + "scale_m": 256, + "mon_scale_m": 358, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_DONPHAN", + "height": 11, + "weight": 1200, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 247, + "scale_m": 256, + "mon_scale_m": 247, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_PORYGON2", + "height": 6, + "weight": 325, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 331, + "scale_m": 256, + "mon_scale_m": 331, + "ypos_f": 8, + "mon_ypos_f": -7, + "ypos_m": 9, + "mon_ypos_m": -7 + }, + { + "species": "SPECIES_STANTLER", + "height": 14, + "weight": 712, + "body_style": 0, + "scale_f": 256, + "mon_scale_f": 222, + "scale_m": 256, + "mon_scale_m": 237, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 8, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_SMEARGLE", + "height": 12, + "weight": 580, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 292, + "scale_m": 256, + "mon_scale_m": 292, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_TYROGUE", + "height": 7, + "weight": 210, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 346, + "scale_m": 256, + "mon_scale_m": 346, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_HITMONTOP", + "height": 14, + "weight": 480, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 233, + "scale_m": 256, + "mon_scale_m": 233, + "ypos_f": 8, + "mon_ypos_f": 13, + "ypos_m": 9, + "mon_ypos_m": 13 + }, + { + "species": "SPECIES_SMOOCHUM", + "height": 4, + "weight": 60, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 407, + "scale_m": 256, + "mon_scale_m": 407, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_ELEKID", + "height": 6, + "weight": 235, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 352, + "scale_m": 256, + "mon_scale_m": 352, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_MAGBY", + "height": 7, + "weight": 214, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 282, + "scale_m": 256, + "mon_scale_m": 282, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_MILTANK", + "height": 12, + "weight": 755, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 230, + "scale_m": 256, + "mon_scale_m": 230, + "ypos_f": 8, + "mon_ypos_f": 11, + "ypos_m": 9, + "mon_ypos_m": 11 + }, + { + "species": "SPECIES_BLISSEY", + "height": 15, + "weight": 468, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 197, + "scale_m": 256, + "mon_scale_m": 197, + "ypos_f": 8, + "mon_ypos_f": 2, + "ypos_m": 9, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_RAIKOU", + "height": 19, + "weight": 1780, + "body_style": 0, + "scale_f": 341, + "mon_scale_f": 248, + "scale_m": 327, + "mon_scale_m": 248, + "ypos_f": 15, + "mon_ypos_f": 5, + "ypos_m": 15, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_ENTEI", + "height": 21, + "weight": 1980, + "body_style": 0, + "scale_f": 341, + "mon_scale_f": 245, + "scale_m": 327, + "mon_scale_m": 245, + "ypos_f": 15, + "mon_ypos_f": 3, + "ypos_m": 15, + "mon_ypos_m": 3 + }, + { + "species": "SPECIES_SUICUNE", + "height": 20, + "weight": 1870, + "body_style": 0, + "scale_f": 341, + "mon_scale_f": 251, + "scale_m": 327, + "mon_scale_m": 251, + "ypos_f": 15, + "mon_ypos_f": 5, + "ypos_m": 15, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_LARVITAR", + "height": 6, + "weight": 720, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 409, + "scale_m": 256, + "mon_scale_m": 409, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_PUPITAR", + "height": 12, + "weight": 1520, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 223, + "scale_m": 256, + "mon_scale_m": 223, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_TYRANITAR", + "height": 20, + "weight": 2020, + "body_style": 2, + "scale_f": 342, + "mon_scale_f": 256, + "scale_m": 338, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": 5, + "ypos_m": 16, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_LUGIA", + "height": 52, + "weight": 2160, + "body_style": 5, + "scale_f": 745, + "mon_scale_f": 256, + "scale_m": 697, + "mon_scale_m": 256, + "ypos_f": 27, + "mon_ypos_f": 0, + "ypos_m": 26, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_HO_OH", + "height": 38, + "weight": 1990, + "body_style": 5, + "scale_f": 451, + "mon_scale_f": 256, + "scale_m": 444, + "mon_scale_m": 256, + "ypos_f": 21, + "mon_ypos_f": 0, + "ypos_m": 21, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_CELEBI", + "height": 6, + "weight": 50, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 390, + "scale_m": 256, + "mon_scale_m": 390, + "ypos_f": 8, + "mon_ypos_f": -1, + "ypos_m": 9, + "mon_ypos_m": -1 + }, + { + "species": "SPECIES_TREECKO", + "height": 5, + "weight": 50, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 396, + "scale_m": 256, + "mon_scale_m": 396, + "ypos_f": 8, + "mon_ypos_f": 22, + "ypos_m": 9, + "mon_ypos_m": 22 + }, + { + "species": "SPECIES_GROVYLE", + "height": 9, + "weight": 216, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 324, + "scale_m": 256, + "mon_scale_m": 324, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_SCEPTILE", + "height": 17, + "weight": 522, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 228, + "scale_m": 256, + "mon_scale_m": 228, + "ypos_f": 8, + "mon_ypos_f": 1, + "ypos_m": 9, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_TORCHIC", + "height": 4, + "weight": 25, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 508, + "scale_m": 256, + "mon_scale_m": 508, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_COMBUSKEN", + "height": 9, + "weight": 195, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 336, + "scale_m": 256, + "mon_scale_m": 336, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_BLAZIKEN", + "height": 19, + "weight": 520, + "body_style": 2, + "scale_f": 338, + "mon_scale_f": 272, + "scale_m": 325, + "mon_scale_m": 272, + "ypos_f": 13, + "mon_ypos_f": 5, + "ypos_m": 13, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_MUDKIP", + "height": 4, + "weight": 76, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 423, + "scale_m": 256, + "mon_scale_m": 423, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_MARSHTOMP", + "height": 7, + "weight": 280, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 417, + "scale_m": 256, + "mon_scale_m": 417, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_SWAMPERT", + "height": 15, + "weight": 819, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 242, + "scale_m": 256, + "mon_scale_m": 242, + "ypos_f": 8, + "mon_ypos_f": 4, + "ypos_m": 9, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_POOCHYENA", + "height": 5, + "weight": 136, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 386, + "scale_m": 256, + "mon_scale_m": 386, + "ypos_f": 8, + "mon_ypos_f": 26, + "ypos_m": 9, + "mon_ypos_m": 26 + }, + { + "species": "SPECIES_MIGHTYENA", + "height": 10, + "weight": 370, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 267, + "scale_m": 256, + "mon_scale_m": 267, + "ypos_f": 8, + "mon_ypos_f": 10, + "ypos_m": 9, + "mon_ypos_m": 10 + }, + { + "species": "SPECIES_ZIGZAGOON", + "height": 4, + "weight": 175, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 505, + "scale_m": 256, + "mon_scale_m": 505, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_LINOONE", + "height": 5, + "weight": 325, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 341, + "scale_m": 256, + "mon_scale_m": 341, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_WURMPLE", + "height": 3, + "weight": 36, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 493, + "scale_m": 256, + "mon_scale_m": 493, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_SILCOON", + "height": 6, + "weight": 100, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 341, + "scale_m": 256, + "mon_scale_m": 341, + "ypos_f": 8, + "mon_ypos_f": 22, + "ypos_m": 9, + "mon_ypos_m": 22 + }, + { + "species": "SPECIES_BEAUTIFLY", + "height": 10, + "weight": 284, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": -10, + "ypos_m": 9, + "mon_ypos_m": -10 + }, + { + "species": "SPECIES_CASCOON", + "height": 7, + "weight": 115, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 323, + "scale_m": 256, + "mon_scale_m": 323, + "ypos_f": 8, + "mon_ypos_f": 22, + "ypos_m": 9, + "mon_ypos_m": 22 + }, + { + "species": "SPECIES_DUSTOX", + "height": 12, + "weight": 316, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 237, + "scale_m": 256, + "mon_scale_m": 237, + "ypos_f": 8, + "mon_ypos_f": -9, + "ypos_m": 9, + "mon_ypos_m": -9 + }, + { + "species": "SPECIES_LOTAD", + "height": 5, + "weight": 26, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 322, + "scale_m": 256, + "mon_scale_m": 322, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_LOMBRE", + "height": 12, + "weight": 325, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 258, + "scale_m": 256, + "mon_scale_m": 258, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_LUDICOLO", + "height": 15, + "weight": 550, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_SEEDOT", + "height": 5, + "weight": 40, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 358, + "scale_m": 256, + "mon_scale_m": 358, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_NUZLEAF", + "height": 10, + "weight": 280, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_SHIFTRY", + "height": 13, + "weight": 596, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_TAILLOW", + "height": 3, + "weight": 23, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 483, + "scale_m": 256, + "mon_scale_m": 483, + "ypos_f": 8, + "mon_ypos_f": -17, + "ypos_m": 9, + "mon_ypos_m": -17 + }, + { + "species": "SPECIES_SWELLOW", + "height": 7, + "weight": 198, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 400, + "scale_m": 256, + "mon_scale_m": 400, + "ypos_f": 8, + "mon_ypos_f": -5, + "ypos_m": 9, + "mon_ypos_m": -5 + }, + { + "species": "SPECIES_WINGULL", + "height": 6, + "weight": 95, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 326, + "scale_m": 256, + "mon_scale_m": 326, + "ypos_f": 8, + "mon_ypos_f": -2, + "ypos_m": 9, + "mon_ypos_m": -2 + }, + { + "species": "SPECIES_PELIPPER", + "height": 12, + "weight": 280, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": -5, + "ypos_m": 9, + "mon_ypos_m": -5 + }, + { + "species": "SPECIES_RALTS", + "height": 4, + "weight": 66, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 441, + "scale_m": 256, + "mon_scale_m": 441, + "ypos_f": 8, + "mon_ypos_f": 26, + "ypos_m": 9, + "mon_ypos_m": 26 + }, + { + "species": "SPECIES_KIRLIA", + "height": 8, + "weight": 202, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 378, + "scale_m": 256, + "mon_scale_m": 378, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_GARDEVOIR", + "height": 16, + "weight": 484, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 236, + "scale_m": 256, + "mon_scale_m": 236, + "ypos_f": 8, + "mon_ypos_f": -3, + "ypos_m": 9, + "mon_ypos_m": -3 + }, + { + "species": "SPECIES_SURSKIT", + "height": 5, + "weight": 17, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 434, + "scale_m": 256, + "mon_scale_m": 434, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_MASQUERAIN", + "height": 8, + "weight": 36, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 366, + "scale_m": 256, + "mon_scale_m": 366, + "ypos_f": 8, + "mon_ypos_f": -3, + "ypos_m": 9, + "mon_ypos_m": -3 + }, + { + "species": "SPECIES_SHROOMISH", + "height": 4, + "weight": 45, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 352, + "scale_m": 256, + "mon_scale_m": 352, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_BRELOOM", + "height": 12, + "weight": 392, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 258, + "scale_m": 256, + "mon_scale_m": 258, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_SLAKOTH", + "height": 8, + "weight": 240, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 258, + "scale_m": 256, + "mon_scale_m": 281, + "ypos_f": 8, + "mon_ypos_f": 21, + "ypos_m": 9, + "mon_ypos_m": 22 + }, + { + "species": "SPECIES_VIGOROTH", + "height": 14, + "weight": 465, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 221, + "scale_m": 256, + "mon_scale_m": 221, + "ypos_f": 8, + "mon_ypos_f": 1, + "ypos_m": 9, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_SLAKING", + "height": 20, + "weight": 1305, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 246, + "scale_m": 267, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_NINCADA", + "height": 5, + "weight": 55, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 291, + "scale_m": 256, + "mon_scale_m": 291, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_NINJASK", + "height": 8, + "weight": 120, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 276, + "scale_m": 256, + "mon_scale_m": 276, + "ypos_f": 8, + "mon_ypos_f": -2, + "ypos_m": 9, + "mon_ypos_m": -2 + }, + { + "species": "SPECIES_SHEDINJA", + "height": 8, + "weight": 12, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": -3, + "ypos_m": 9, + "mon_ypos_m": -3 + }, + { + "species": "SPECIES_WHISMUR", + "height": 6, + "weight": 163, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 326, + "scale_m": 256, + "mon_scale_m": 326, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_LOUDRED", + "height": 10, + "weight": 405, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 300, + "scale_m": 256, + "mon_scale_m": 300, + "ypos_f": 8, + "mon_ypos_f": 13, + "ypos_m": 9, + "mon_ypos_m": 13 + }, + { + "species": "SPECIES_EXPLOUD", + "height": 15, + "weight": 840, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 241, + "scale_m": 256, + "mon_scale_m": 241, + "ypos_f": 8, + "mon_ypos_f": 6, + "ypos_m": 9, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_MAKUHITA", + "height": 10, + "weight": 864, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 248, + "scale_m": 256, + "mon_scale_m": 248, + "ypos_f": 8, + "mon_ypos_f": 13, + "ypos_m": 9, + "mon_ypos_m": 13 + }, + { + "species": "SPECIES_HARIYAMA", + "height": 23, + "weight": 2538, + "body_style": 1, + "scale_f": 349, + "mon_scale_f": 240, + "scale_m": 341, + "mon_scale_m": 240, + "ypos_f": 13, + "mon_ypos_f": 4, + "ypos_m": 12, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_AZURILL", + "height": 2, + "weight": 20, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 447, + "scale_m": 256, + "mon_scale_m": 447, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_NOSEPASS", + "height": 10, + "weight": 970, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_SKITTY", + "height": 6, + "weight": 110, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 346, + "scale_m": 256, + "mon_scale_m": 346, + "ypos_f": 8, + "mon_ypos_f": 21, + "ypos_m": 9, + "mon_ypos_m": 21 + }, + { + "species": "SPECIES_DELCATTY", + "height": 11, + "weight": 326, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 282, + "scale_m": 256, + "mon_scale_m": 282, + "ypos_f": 8, + "mon_ypos_f": 12, + "ypos_m": 9, + "mon_ypos_m": 12 + }, + { + "species": "SPECIES_SABLEYE", + "height": 5, + "weight": 110, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 414, + "scale_m": 256, + "mon_scale_m": 414, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_MAWILE", + "height": 6, + "weight": 115, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 392, + "scale_m": 256, + "mon_scale_m": 392, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_ARON", + "height": 4, + "weight": 600, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 329, + "scale_m": 256, + "mon_scale_m": 329, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_LAIRON", + "height": 9, + "weight": 1200, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 263, + "scale_m": 256, + "mon_scale_m": 263, + "ypos_f": 8, + "mon_ypos_f": 18, + "ypos_m": 9, + "mon_ypos_m": 18 + }, + { + "species": "SPECIES_AGGRON", + "height": 21, + "weight": 3600, + "body_style": 2, + "scale_f": 350, + "mon_scale_f": 256, + "scale_m": 355, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": 6, + "ypos_m": 15, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_MEDITITE", + "height": 6, + "weight": 112, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 406, + "scale_m": 256, + "mon_scale_m": 406, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_MEDICHAM", + "height": 13, + "weight": 315, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 268, + "scale_m": 256, + "mon_scale_m": 268, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_ELECTRIKE", + "height": 6, + "weight": 152, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 284, + "scale_m": 256, + "mon_scale_m": 284, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_MANECTRIC", + "height": 15, + "weight": 402, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 238, + "scale_m": 256, + "mon_scale_m": 238, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_PLUSLE", + "height": 4, + "weight": 42, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 479, + "scale_m": 256, + "mon_scale_m": 479, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_MINUN", + "height": 4, + "weight": 42, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 494, + "scale_m": 256, + "mon_scale_m": 494, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_VOLBEAT", + "height": 7, + "weight": 177, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 342, + "scale_m": 256, + "mon_scale_m": 342, + "ypos_f": 8, + "mon_ypos_f": 21, + "ypos_m": 9, + "mon_ypos_m": 21 + }, + { + "species": "SPECIES_ILLUMISE", + "height": 6, + "weight": 177, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 401, + "scale_m": 256, + "mon_scale_m": 401, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_ROSELIA", + "height": 3, + "weight": 20, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 561, + "scale_m": 256, + "mon_scale_m": 561, + "ypos_f": 8, + "mon_ypos_f": 29, + "ypos_m": 9, + "mon_ypos_m": 29 + }, + { + "species": "SPECIES_GULPIN", + "height": 4, + "weight": 103, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 391, + "scale_m": 256, + "mon_scale_m": 391, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_SWALOT", + "height": 17, + "weight": 800, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 186, + "scale_m": 256, + "mon_scale_m": 186, + "ypos_f": 8, + "mon_ypos_f": 1, + "ypos_m": 9, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_CARVANHA", + "height": 8, + "weight": 208, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 331, + "scale_m": 256, + "mon_scale_m": 331, + "ypos_f": 8, + "mon_ypos_f": -12, + "ypos_m": 9, + "mon_ypos_m": -12 + }, + { + "species": "SPECIES_SHARPEDO", + "height": 18, + "weight": 888, + "body_style": 11, + "scale_f": 346, + "mon_scale_f": 256, + "scale_m": 340, + "mon_scale_m": 256, + "ypos_f": 16, + "mon_ypos_f": -1, + "ypos_m": 15, + "mon_ypos_m": -1 + }, + { + "species": "SPECIES_WAILMER", + "height": 20, + "weight": 1300, + "body_style": 11, + "scale_f": 358, + "mon_scale_f": 184, + "scale_m": 334, + "mon_scale_m": 184, + "ypos_f": 16, + "mon_ypos_f": 9, + "ypos_m": 16, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_WAILORD", + "height": 145, + "weight": 3980, + "body_style": 11, + "scale_f": 806, + "mon_scale_f": 256, + "scale_m": 801, + "mon_scale_m": 256, + "ypos_f": 18, + "mon_ypos_f": 0, + "ypos_m": 18, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_NUMEL", + "height": 7, + "weight": 240, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 316, + "scale_m": 256, + "mon_scale_m": 316, + "ypos_f": 8, + "mon_ypos_f": 22, + "ypos_m": 9, + "mon_ypos_m": 22 + }, + { + "species": "SPECIES_CAMERUPT", + "height": 19, + "weight": 2200, + "body_style": 0, + "scale_f": 347, + "mon_scale_f": 209, + "scale_m": 335, + "mon_scale_m": 209, + "ypos_f": 15, + "mon_ypos_f": 3, + "ypos_m": 16, + "mon_ypos_m": 3 + }, + { + "species": "SPECIES_TORKOAL", + "height": 5, + "weight": 804, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 426, + "scale_m": 256, + "mon_scale_m": 426, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_SPOINK", + "height": 7, + "weight": 306, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 378, + "scale_m": 256, + "mon_scale_m": 378, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_GRUMPIG", + "height": 9, + "weight": 715, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 342, + "scale_m": 256, + "mon_scale_m": 342, + "ypos_f": 8, + "mon_ypos_f": 15, + "ypos_m": 9, + "mon_ypos_m": 15 + }, + { + "species": "SPECIES_SPINDA", + "height": 11, + "weight": 50, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 266, + "scale_m": 256, + "mon_scale_m": 266, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_TRAPINCH", + "height": 7, + "weight": 150, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 21, + "ypos_m": 9, + "mon_ypos_m": 21 + }, + { + "species": "SPECIES_VIBRAVA", + "height": 11, + "weight": 153, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": -4, + "ypos_m": 9, + "mon_ypos_m": -4 + }, + { + "species": "SPECIES_FLYGON", + "height": 20, + "weight": 820, + "body_style": 5, + "scale_f": 345, + "mon_scale_f": 251, + "scale_m": 341, + "mon_scale_m": 251, + "ypos_f": 15, + "mon_ypos_f": 1, + "ypos_m": 16, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_CACNEA", + "height": 4, + "weight": 513, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 405, + "scale_m": 256, + "mon_scale_m": 405, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_CACTURNE", + "height": 13, + "weight": 774, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 334, + "scale_m": 256, + "mon_scale_m": 334, + "ypos_f": 8, + "mon_ypos_f": 12, + "ypos_m": 9, + "mon_ypos_m": 12 + }, + { + "species": "SPECIES_SWABLU", + "height": 4, + "weight": 12, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 426, + "scale_m": 256, + "mon_scale_m": 426, + "ypos_f": 8, + "mon_ypos_f": -14, + "ypos_m": 9, + "mon_ypos_m": -14 + }, + { + "species": "SPECIES_ALTARIA", + "height": 11, + "weight": 206, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 320, + "scale_m": 256, + "mon_scale_m": 320, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_ZANGOOSE", + "height": 13, + "weight": 403, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_SEVIPER", + "height": 27, + "weight": 525, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 296, + "scale_m": 256, + "mon_scale_m": 296, + "ypos_f": 5, + "mon_ypos_f": 6, + "ypos_m": 4, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_LUNATONE", + "height": 10, + "weight": 1680, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 271, + "scale_m": 256, + "mon_scale_m": 271, + "ypos_f": 8, + "mon_ypos_f": -4, + "ypos_m": 9, + "mon_ypos_m": -4 + }, + { + "species": "SPECIES_SOLROCK", + "height": 12, + "weight": 1540, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 310, + "scale_m": 256, + "mon_scale_m": 310, + "ypos_f": 8, + "mon_ypos_f": -8, + "ypos_m": 9, + "mon_ypos_m": -8 + }, + { + "species": "SPECIES_BARBOACH", + "height": 4, + "weight": 19, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 464, + "scale_m": 256, + "mon_scale_m": 464, + "ypos_f": 8, + "mon_ypos_f": -5, + "ypos_m": 9, + "mon_ypos_m": -5 + }, + { + "species": "SPECIES_WHISCASH", + "height": 9, + "weight": 236, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 386, + "scale_m": 256, + "mon_scale_m": 386, + "ypos_f": 8, + "mon_ypos_f": 2, + "ypos_m": 9, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_CORPHISH", + "height": 6, + "weight": 115, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 367, + "scale_m": 256, + "mon_scale_m": 367, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_CRAWDAUNT", + "height": 11, + "weight": 328, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 296, + "scale_m": 256, + "mon_scale_m": 296, + "ypos_f": 8, + "mon_ypos_f": 12, + "ypos_m": 9, + "mon_ypos_m": 12 + }, + { + "species": "SPECIES_BALTOY", + "height": 5, + "weight": 215, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 345, + "scale_m": 256, + "mon_scale_m": 345, + "ypos_f": 8, + "mon_ypos_f": 26, + "ypos_m": 9, + "mon_ypos_m": 26 + }, + { + "species": "SPECIES_CLAYDOL", + "height": 15, + "weight": 1080, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 250, + "scale_m": 256, + "mon_scale_m": 250, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_LILEEP", + "height": 10, + "weight": 238, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_CRADILY", + "height": 15, + "weight": 604, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 264, + "scale_m": 256, + "mon_scale_m": 264, + "ypos_f": 8, + "mon_ypos_f": 6, + "ypos_m": 9, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_ANORITH", + "height": 7, + "weight": 125, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 343, + "scale_m": 256, + "mon_scale_m": 343, + "ypos_f": 8, + "mon_ypos_f": 3, + "ypos_m": 9, + "mon_ypos_m": 3 + }, + { + "species": "SPECIES_ARMALDO", + "height": 15, + "weight": 682, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 236, + "scale_m": 256, + "mon_scale_m": 236, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_FEEBAS", + "height": 6, + "weight": 74, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 357, + "scale_m": 256, + "mon_scale_m": 357, + "ypos_f": 8, + "mon_ypos_f": -1, + "ypos_m": 9, + "mon_ypos_m": -1 + }, + { + "species": "SPECIES_MILOTIC", + "height": 62, + "weight": 1620, + "body_style": 3, + "scale_f": 349, + "mon_scale_f": 256, + "scale_m": 357, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": 3, + "ypos_m": 15, + "mon_ypos_m": 3 + }, + { + "species": "SPECIES_CASTFORM", + "height": 3, + "weight": 8, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 471, + "scale_m": 256, + "mon_scale_m": 471, + "ypos_f": 8, + "mon_ypos_f": -13, + "ypos_m": 9, + "mon_ypos_m": -13 + }, + { + "species": "SPECIES_KECLEON", + "height": 10, + "weight": 220, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 276, + "scale_m": 256, + "mon_scale_m": 276, + "ypos_f": 8, + "mon_ypos_f": 15, + "ypos_m": 9, + "mon_ypos_m": 15 + }, + { + "species": "SPECIES_SHUPPET", + "height": 6, + "weight": 23, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 357, + "scale_m": 256, + "mon_scale_m": 357, + "ypos_f": 8, + "mon_ypos_f": -10, + "ypos_m": 9, + "mon_ypos_m": -10 + }, + { + "species": "SPECIES_BANETTE", + "height": 11, + "weight": 125, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 266, + "scale_m": 256, + "mon_scale_m": 266, + "ypos_f": 8, + "mon_ypos_f": 13, + "ypos_m": 9, + "mon_ypos_m": 13 + }, + { + "species": "SPECIES_DUSKULL", + "height": 8, + "weight": 150, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 282, + "scale_m": 256, + "mon_scale_m": 282, + "ypos_f": 8, + "mon_ypos_f": 21, + "ypos_m": 9, + "mon_ypos_m": 21 + }, + { + "species": "SPECIES_DUSCLOPS", + "height": 16, + "weight": 306, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 233, + "scale_m": 256, + "mon_scale_m": 233, + "ypos_f": 8, + "mon_ypos_f": 1, + "ypos_m": 9, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_TROPIUS", + "height": 20, + "weight": 1000, + "body_style": 0, + "scale_f": 349, + "mon_scale_f": 256, + "scale_m": 335, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": 0, + "ypos_m": 15, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_CHIMECHO", + "height": 6, + "weight": 10, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 462, + "scale_m": 256, + "mon_scale_m": 462, + "ypos_f": 8, + "mon_ypos_f": -13, + "ypos_m": 9, + "mon_ypos_m": -13 + }, + { + "species": "SPECIES_ABSOL", + "height": 12, + "weight": 470, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 300, + "scale_m": 256, + "mon_scale_m": 300, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_WYNAUT", + "height": 6, + "weight": 140, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 346, + "scale_m": 256, + "mon_scale_m": 346, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_SNORUNT", + "height": 7, + "weight": 168, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 301, + "scale_m": 256, + "mon_scale_m": 301, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_GLALIE", + "height": 15, + "weight": 2565, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 199, + "scale_m": 256, + "mon_scale_m": 199, + "ypos_f": 8, + "mon_ypos_f": -1, + "ypos_m": 9, + "mon_ypos_m": -1 + }, + { + "species": "SPECIES_SPHEAL", + "height": 8, + "weight": 395, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 239, + "scale_m": 256, + "mon_scale_m": 239, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_SEALEO", + "height": 11, + "weight": 876, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 15, + "ypos_m": 9, + "mon_ypos_m": 15 + }, + { + "species": "SPECIES_WALREIN", + "height": 14, + "weight": 1506, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_CLAMPERL", + "height": 4, + "weight": 525, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 387, + "scale_m": 256, + "mon_scale_m": 387, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_HUNTAIL", + "height": 17, + "weight": 270, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 319, + "scale_m": 256, + "mon_scale_m": 319, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_GOREBYSS", + "height": 18, + "weight": 226, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 346, + "scale_m": 256, + "mon_scale_m": 346, + "ypos_f": 8, + "mon_ypos_f": -5, + "ypos_m": 9, + "mon_ypos_m": -5 + }, + { + "species": "SPECIES_RELICANTH", + "height": 10, + "weight": 234, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 276, + "scale_m": 256, + "mon_scale_m": 276, + "ypos_f": 8, + "mon_ypos_f": -7, + "ypos_m": 9, + "mon_ypos_m": -7 + }, + { + "species": "SPECIES_LUVDISC", + "height": 6, + "weight": 87, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 329, + "scale_m": 256, + "mon_scale_m": 329, + "ypos_f": 8, + "mon_ypos_f": -9, + "ypos_m": 9, + "mon_ypos_m": -9 + }, + { + "species": "SPECIES_BAGON", + "height": 6, + "weight": 421, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 380, + "scale_m": 256, + "mon_scale_m": 380, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_SHELGON", + "height": 11, + "weight": 1105, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 245, + "scale_m": 256, + "mon_scale_m": 245, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_SALAMENCE", + "height": 15, + "weight": 1026, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 5, + "ypos_m": 9, + "mon_ypos_m": 5 + }, + { + "species": "SPECIES_BELDUM", + "height": 6, + "weight": 952, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 378, + "scale_m": 256, + "mon_scale_m": 378, + "ypos_f": 8, + "mon_ypos_f": -7, + "ypos_m": 9, + "mon_ypos_m": -7 + }, + { + "species": "SPECIES_METANG", + "height": 12, + "weight": 2025, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 274, + "scale_m": 256, + "mon_scale_m": 274, + "ypos_f": 8, + "mon_ypos_f": -2, + "ypos_m": 9, + "mon_ypos_m": -2 + }, + { + "species": "SPECIES_METAGROSS", + "height": 16, + "weight": 5500, + "body_style": 13, + "scale_f": 342, + "mon_scale_f": 219, + "scale_m": 335, + "mon_scale_m": 219, + "ypos_f": 14, + "mon_ypos_f": 9, + "ypos_m": 14, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_REGIROCK", + "height": 17, + "weight": 2300, + "body_style": 1, + "scale_f": 296, + "mon_scale_f": 226, + "scale_m": 290, + "mon_scale_m": 226, + "ypos_f": 11, + "mon_ypos_f": 1, + "ypos_m": 12, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_REGICE", + "height": 18, + "weight": 1750, + "body_style": 1, + "scale_f": 308, + "mon_scale_f": 222, + "scale_m": 298, + "mon_scale_m": 222, + "ypos_f": 12, + "mon_ypos_f": 2, + "ypos_m": 12, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_REGISTEEL", + "height": 19, + "weight": 2050, + "body_style": 1, + "scale_f": 342, + "mon_scale_f": 222, + "scale_m": 320, + "mon_scale_m": 222, + "ypos_f": 15, + "mon_ypos_f": 4, + "ypos_m": 14, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_LATIAS", + "height": 14, + "weight": 400, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 283, + "scale_m": 256, + "mon_scale_m": 283, + "ypos_f": 8, + "mon_ypos_f": -2, + "ypos_m": 9, + "mon_ypos_m": -2 + }, + { + "species": "SPECIES_LATIOS", + "height": 20, + "weight": 600, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_KYOGRE", + "height": 45, + "weight": 3520, + "body_style": 11, + "scale_f": 691, + "mon_scale_f": 256, + "scale_m": 623, + "mon_scale_m": 256, + "ypos_f": 26, + "mon_ypos_f": 0, + "ypos_m": 26, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_GROUDON", + "height": 35, + "weight": 9500, + "body_style": 2, + "scale_f": 540, + "mon_scale_f": 241, + "scale_m": 512, + "mon_scale_m": 241, + "ypos_f": 23, + "mon_ypos_f": 1, + "ypos_m": 23, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_RAYQUAZA", + "height": 70, + "weight": 2065, + "body_style": 3, + "scale_f": 545, + "mon_scale_f": 256, + "scale_m": 512, + "mon_scale_m": 256, + "ypos_f": 22, + "mon_ypos_f": 0, + "ypos_m": 22, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_JIRACHI", + "height": 3, + "weight": 11, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 491, + "scale_m": 256, + "mon_scale_m": 491, + "ypos_f": 8, + "mon_ypos_f": -18, + "ypos_m": 9, + "mon_ypos_m": -18 + }, + { + "species": "SPECIES_DEOXYS", + "height": 17, + "weight": 608, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 2, + "ypos_m": 9, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_TURTWIG", + "height": 4, + "weight": 102, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 503, + "scale_m": 256, + "mon_scale_m": 503, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_GROTLE", + "height": 11, + "weight": 970, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 282, + "scale_m": 256, + "mon_scale_m": 282, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_TORTERRA", + "height": 22, + "weight": 3100, + "body_style": 0, + "scale_f": 331, + "mon_scale_f": 256, + "scale_m": 334, + "mon_scale_m": 256, + "ypos_f": 16, + "mon_ypos_f": 0, + "ypos_m": 16, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_CHIMCHAR", + "height": 5, + "weight": 62, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 430, + "scale_m": 256, + "mon_scale_m": 430, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_MONFERNO", + "height": 9, + "weight": 220, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 309, + "scale_m": 256, + "mon_scale_m": 309, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_INFERNAPE", + "height": 12, + "weight": 550, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 298, + "scale_m": 256, + "mon_scale_m": 298, + "ypos_f": 8, + "mon_ypos_f": 13, + "ypos_m": 9, + "mon_ypos_m": 13 + }, + { + "species": "SPECIES_PIPLUP", + "height": 4, + "weight": 52, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 405, + "scale_m": 256, + "mon_scale_m": 405, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_PRINPLUP", + "height": 8, + "weight": 230, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 347, + "scale_m": 256, + "mon_scale_m": 347, + "ypos_f": 8, + "mon_ypos_f": 18, + "ypos_m": 9, + "mon_ypos_m": 18 + }, + { + "species": "SPECIES_EMPOLEON", + "height": 17, + "weight": 845, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 3, + "ypos_m": 9, + "mon_ypos_m": 3 + }, + { + "species": "SPECIES_STARLY", + "height": 3, + "weight": 20, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 557, + "scale_m": 256, + "mon_scale_m": 557, + "ypos_f": 8, + "mon_ypos_f": 29, + "ypos_m": 9, + "mon_ypos_m": 29 + }, + { + "species": "SPECIES_STARAVIA", + "height": 6, + "weight": 155, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 423, + "scale_m": 256, + "mon_scale_m": 423, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_STARAPTOR", + "height": 12, + "weight": 249, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 302, + "scale_m": 256, + "mon_scale_m": 302, + "ypos_f": 8, + "mon_ypos_f": 12, + "ypos_m": 9, + "mon_ypos_m": 12 + }, + { + "species": "SPECIES_BIDOOF", + "height": 5, + "weight": 200, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 353, + "scale_m": 256, + "mon_scale_m": 353, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_BIBAREL", + "height": 10, + "weight": 315, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 309, + "scale_m": 256, + "mon_scale_m": 309, + "ypos_f": 8, + "mon_ypos_f": 15, + "ypos_m": 9, + "mon_ypos_m": 15 + }, + { + "species": "SPECIES_KRICKETOT", + "height": 3, + "weight": 22, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 713, + "scale_m": 256, + "mon_scale_m": 713, + "ypos_f": 8, + "mon_ypos_f": 28, + "ypos_m": 9, + "mon_ypos_m": 28 + }, + { + "species": "SPECIES_KRICKETUNE", + "height": 10, + "weight": 255, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 345, + "scale_m": 256, + "mon_scale_m": 345, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_SHINX", + "height": 5, + "weight": 95, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 346, + "scale_m": 256, + "mon_scale_m": 346, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_LUXIO", + "height": 9, + "weight": 305, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 288, + "scale_m": 256, + "mon_scale_m": 288, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_LUXRAY", + "height": 14, + "weight": 420, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 8, + "ypos_m": 9, + "mon_ypos_m": 8 + }, + { + "species": "SPECIES_BUDEW", + "height": 2, + "weight": 12, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 698, + "scale_m": 256, + "mon_scale_m": 698, + "ypos_f": 8, + "mon_ypos_f": 29, + "ypos_m": 9, + "mon_ypos_m": 29 + }, + { + "species": "SPECIES_ROSERADE", + "height": 9, + "weight": 145, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 351, + "scale_m": 256, + "mon_scale_m": 351, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_CRANIDOS", + "height": 9, + "weight": 315, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 339, + "scale_m": 256, + "mon_scale_m": 339, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_RAMPARDOS", + "height": 16, + "weight": 1025, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 292, + "scale_m": 256, + "mon_scale_m": 292, + "ypos_f": 8, + "mon_ypos_f": 3, + "ypos_m": 9, + "mon_ypos_m": 3 + }, + { + "species": "SPECIES_SHIELDON", + "height": 5, + "weight": 570, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 365, + "scale_m": 256, + "mon_scale_m": 365, + "ypos_f": 8, + "mon_ypos_f": 26, + "ypos_m": 9, + "mon_ypos_m": 26 + }, + { + "species": "SPECIES_BASTIODON", + "height": 13, + "weight": 1495, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 243, + "scale_m": 256, + "mon_scale_m": 243, + "ypos_f": 8, + "mon_ypos_f": 9, + "ypos_m": 9, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_BURMY", + "height": 2, + "weight": 34, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 545, + "scale_m": 256, + "mon_scale_m": 545, + "ypos_f": 8, + "mon_ypos_f": -6, + "ypos_m": 9, + "mon_ypos_m": -6 + }, + { + "species": "SPECIES_WORMADAM", + "height": 5, + "weight": 65, + "body_style": 3, + "scale_f": 272, + "mon_scale_f": 503, + "scale_m": 256, + "mon_scale_m": 503, + "ypos_f": 8, + "mon_ypos_f": -12, + "ypos_m": 9, + "mon_ypos_m": -12 + }, + { + "species": "SPECIES_MOTHIM", + "height": 9, + "weight": 233, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 346, + "scale_m": 256, + "mon_scale_m": 346, + "ypos_f": 8, + "mon_ypos_f": -11, + "ypos_m": 9, + "mon_ypos_m": -11 + }, + { + "species": "SPECIES_COMBEE", + "height": 3, + "weight": 55, + "body_style": 13, + "scale_f": 272, + "mon_scale_f": 502, + "scale_m": 256, + "mon_scale_m": 502, + "ypos_f": 8, + "mon_ypos_f": -8, + "ypos_m": 9, + "mon_ypos_m": -8 + }, + { + "species": "SPECIES_VESPIQUEN", + "height": 12, + "weight": 385, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 268, + "scale_m": 256, + "mon_scale_m": 268, + "ypos_f": 8, + "mon_ypos_f": -4, + "ypos_m": 9, + "mon_ypos_m": -4 + }, + { + "species": "SPECIES_PACHIRISU", + "height": 4, + "weight": 39, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 431, + "scale_m": 256, + "mon_scale_m": 431, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_BUIZEL", + "height": 7, + "weight": 295, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 380, + "scale_m": 256, + "mon_scale_m": 380, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_FLOATZEL", + "height": 11, + "weight": 335, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 334, + "scale_m": 256, + "mon_scale_m": 334, + "ypos_f": 8, + "mon_ypos_f": 10, + "ypos_m": 9, + "mon_ypos_m": 10 + }, + { + "species": "SPECIES_CHERUBI", + "height": 4, + "weight": 33, + "body_style": 13, + "scale_f": 272, + "mon_scale_f": 377, + "scale_m": 256, + "mon_scale_m": 377, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_CHERRIM", + "height": 5, + "weight": 93, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 429, + "scale_m": 256, + "mon_scale_m": 429, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_SHELLOS", + "height": 3, + "weight": 63, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 469, + "scale_m": 256, + "mon_scale_m": 469, + "ypos_f": 8, + "mon_ypos_f": 25, + "ypos_m": 9, + "mon_ypos_m": 25 + }, + { + "species": "SPECIES_GASTRODON", + "height": 9, + "weight": 299, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 307, + "scale_m": 256, + "mon_scale_m": 307, + "ypos_f": 8, + "mon_ypos_f": 17, + "ypos_m": 9, + "mon_ypos_m": 17 + }, + { + "species": "SPECIES_AMBIPOM", + "height": 12, + "weight": 203, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 282, + "scale_m": 256, + "mon_scale_m": 282, + "ypos_f": 8, + "mon_ypos_f": 7, + "ypos_m": 9, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_DRIFLOON", + "height": 4, + "weight": 12, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 383, + "scale_m": 256, + "mon_scale_m": 383, + "ypos_f": 8, + "mon_ypos_f": -14, + "ypos_m": 9, + "mon_ypos_m": -14 + }, + { + "species": "SPECIES_DRIFBLIM", + "height": 12, + "weight": 150, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 284, + "scale_m": 256, + "mon_scale_m": 284, + "ypos_f": 8, + "mon_ypos_f": -8, + "ypos_m": 9, + "mon_ypos_m": -8 + }, + { + "species": "SPECIES_BUNEARY", + "height": 4, + "weight": 55, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 430, + "scale_m": 256, + "mon_scale_m": 430, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_LOPUNNY", + "height": 12, + "weight": 333, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 276, + "scale_m": 256, + "mon_scale_m": 276, + "ypos_f": 8, + "mon_ypos_f": 12, + "ypos_m": 9, + "mon_ypos_m": 12 + }, + { + "species": "SPECIES_MISMAGIUS", + "height": 9, + "weight": 44, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 401, + "scale_m": 256, + "mon_scale_m": 401, + "ypos_f": 8, + "mon_ypos_f": -7, + "ypos_m": 9, + "mon_ypos_m": -7 + }, + { + "species": "SPECIES_HONCHKROW", + "height": 9, + "weight": 273, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 339, + "scale_m": 256, + "mon_scale_m": 339, + "ypos_f": 8, + "mon_ypos_f": 18, + "ypos_m": 9, + "mon_ypos_m": 18 + }, + { + "species": "SPECIES_GLAMEOW", + "height": 5, + "weight": 39, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 512, + "scale_m": 256, + "mon_scale_m": 512, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_PURUGLY", + "height": 10, + "weight": 438, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 324, + "scale_m": 256, + "mon_scale_m": 324, + "ypos_f": 8, + "mon_ypos_f": 15, + "ypos_m": 9, + "mon_ypos_m": 15 + }, + { + "species": "SPECIES_CHINGLING", + "height": 2, + "weight": 6, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 376, + "scale_m": 256, + "mon_scale_m": 376, + "ypos_f": 8, + "mon_ypos_f": -9, + "ypos_m": 9, + "mon_ypos_m": -9 + }, + { + "species": "SPECIES_STUNKY", + "height": 4, + "weight": 192, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 266, + "scale_m": 256, + "mon_scale_m": 266, + "ypos_f": 8, + "mon_ypos_f": 9, + "ypos_m": 9, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_SKUNTANK", + "height": 10, + "weight": 380, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 289, + "scale_m": 256, + "mon_scale_m": 289, + "ypos_f": 8, + "mon_ypos_f": 15, + "ypos_m": 9, + "mon_ypos_m": 15 + }, + { + "species": "SPECIES_BRONZOR", + "height": 5, + "weight": 605, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 382, + "scale_m": 256, + "mon_scale_m": 382, + "ypos_f": 8, + "mon_ypos_f": -8, + "ypos_m": 9, + "mon_ypos_m": -8 + }, + { + "species": "SPECIES_BRONZONG", + "height": 13, + "weight": 1870, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 234, + "scale_m": 256, + "mon_scale_m": 234, + "ypos_f": 8, + "mon_ypos_f": 7, + "ypos_m": 9, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_BONSLY", + "height": 5, + "weight": 150, + "body_style": 9, + "scale_f": 272, + "mon_scale_f": 555, + "scale_m": 256, + "mon_scale_m": 555, + "ypos_f": 8, + "mon_ypos_f": 27, + "ypos_m": 9, + "mon_ypos_m": 27 + }, + { + "species": "SPECIES_MIME_JR", + "height": 6, + "weight": 130, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 508, + "scale_m": 256, + "mon_scale_m": 508, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_HAPPINY", + "height": 6, + "weight": 244, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 369, + "scale_m": 256, + "mon_scale_m": 369, + "ypos_f": 8, + "mon_ypos_f": 24, + "ypos_m": 9, + "mon_ypos_m": 24 + }, + { + "species": "SPECIES_CHATOT", + "height": 5, + "weight": 19, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 420, + "scale_m": 256, + "mon_scale_m": 420, + "ypos_f": 8, + "mon_ypos_f": 23, + "ypos_m": 9, + "mon_ypos_m": 23 + }, + { + "species": "SPECIES_SPIRITOMB", + "height": 10, + "weight": 1080, + "body_style": 7, + "scale_f": 272, + "mon_scale_f": 281, + "scale_m": 256, + "mon_scale_m": 281, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_GIBLE", + "height": 7, + "weight": 205, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 333, + "scale_m": 256, + "mon_scale_m": 333, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_GABITE", + "height": 14, + "weight": 560, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 242, + "scale_m": 256, + "mon_scale_m": 242, + "ypos_f": 8, + "mon_ypos_f": 7, + "ypos_m": 9, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_GARCHOMP", + "height": 19, + "weight": 950, + "body_style": 2, + "scale_f": 325, + "mon_scale_f": 256, + "scale_m": 304, + "mon_scale_m": 256, + "ypos_f": 14, + "mon_ypos_f": 1, + "ypos_m": 14, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_MUNCHLAX", + "height": 6, + "weight": 1050, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 380, + "scale_m": 256, + "mon_scale_m": 380, + "ypos_f": 8, + "mon_ypos_f": 26, + "ypos_m": 9, + "mon_ypos_m": 26 + }, + { + "species": "SPECIES_RIOLU", + "height": 7, + "weight": 202, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 342, + "scale_m": 256, + "mon_scale_m": 342, + "ypos_f": 8, + "mon_ypos_f": 21, + "ypos_m": 9, + "mon_ypos_m": 21 + }, + { + "species": "SPECIES_LUCARIO", + "height": 12, + "weight": 540, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 293, + "scale_m": 256, + "mon_scale_m": 293, + "ypos_f": 8, + "mon_ypos_f": 12, + "ypos_m": 9, + "mon_ypos_m": 12 + }, + { + "species": "SPECIES_HIPPOPOTAS", + "height": 8, + "weight": 495, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 265, + "scale_m": 256, + "mon_scale_m": 265, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_HIPPOWDON", + "height": 20, + "weight": 3000, + "body_style": 0, + "scale_f": 351, + "mon_scale_f": 256, + "scale_m": 351, + "mon_scale_m": 256, + "ypos_f": 10, + "mon_ypos_f": 3, + "ypos_m": 10, + "mon_ypos_m": 3 + }, + { + "species": "SPECIES_SKORUPI", + "height": 8, + "weight": 120, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 377, + "scale_m": 256, + "mon_scale_m": 377, + "ypos_f": 8, + "mon_ypos_f": 20, + "ypos_m": 9, + "mon_ypos_m": 20 + }, + { + "species": "SPECIES_DRAPION", + "height": 13, + "weight": 615, + "body_style": 6, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 10, + "ypos_m": 9, + "mon_ypos_m": 10 + }, + { + "species": "SPECIES_CROAGUNK", + "height": 7, + "weight": 230, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 320, + "scale_m": 256, + "mon_scale_m": 320, + "ypos_f": 8, + "mon_ypos_f": 22, + "ypos_m": 9, + "mon_ypos_m": 22 + }, + { + "species": "SPECIES_TOXICROAK", + "height": 13, + "weight": 444, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 262, + "scale_m": 256, + "mon_scale_m": 262, + "ypos_f": 8, + "mon_ypos_f": 11, + "ypos_m": 9, + "mon_ypos_m": 11 + }, + { + "species": "SPECIES_CARNIVINE", + "height": 14, + "weight": 270, + "body_style": 10, + "scale_f": 272, + "mon_scale_f": 232, + "scale_m": 256, + "mon_scale_m": 232, + "ypos_f": 8, + "mon_ypos_f": -3, + "ypos_m": 9, + "mon_ypos_m": -3 + }, + { + "species": "SPECIES_FINNEON", + "height": 4, + "weight": 70, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 413, + "scale_m": 256, + "mon_scale_m": 413, + "ypos_f": 8, + "mon_ypos_f": -2, + "ypos_m": 9, + "mon_ypos_m": -2 + }, + { + "species": "SPECIES_LUMINEON", + "height": 12, + "weight": 240, + "body_style": 11, + "scale_f": 272, + "mon_scale_f": 282, + "scale_m": 256, + "mon_scale_m": 282, + "ypos_f": 8, + "mon_ypos_f": -5, + "ypos_m": 9, + "mon_ypos_m": -5 + }, + { + "species": "SPECIES_MANTYKE", + "height": 10, + "weight": 650, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 320, + "scale_m": 256, + "mon_scale_m": 320, + "ypos_f": 8, + "mon_ypos_f": -7, + "ypos_m": 9, + "mon_ypos_m": -7 + }, + { + "species": "SPECIES_SNOVER", + "height": 10, + "weight": 505, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 270, + "scale_m": 256, + "mon_scale_m": 270, + "ypos_f": 8, + "mon_ypos_f": 16, + "ypos_m": 9, + "mon_ypos_m": 16 + }, + { + "species": "SPECIES_ABOMASNOW", + "height": 22, + "weight": 1355, + "body_style": 2, + "scale_f": 335, + "mon_scale_f": 256, + "scale_m": 328, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": 4, + "ypos_m": 15, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_WEAVILE", + "height": 11, + "weight": 340, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 313, + "scale_m": 256, + "mon_scale_m": 313, + "ypos_f": 8, + "mon_ypos_f": 13, + "ypos_m": 9, + "mon_ypos_m": 13 + }, + { + "species": "SPECIES_MAGNEZONE", + "height": 12, + "weight": 1800, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 246, + "scale_m": 256, + "mon_scale_m": 246, + "ypos_f": 8, + "mon_ypos_f": -7, + "ypos_m": 9, + "mon_ypos_m": -7 + }, + { + "species": "SPECIES_LICKILICKY", + "height": 17, + "weight": 1400, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 225, + "scale_m": 256, + "mon_scale_m": 225, + "ypos_f": 8, + "mon_ypos_f": -1, + "ypos_m": 9, + "mon_ypos_m": -1 + }, + { + "species": "SPECIES_RHYPERIOR", + "height": 24, + "weight": 2828, + "body_style": 2, + "scale_f": 372, + "mon_scale_f": 240, + "scale_m": 369, + "mon_scale_m": 240, + "ypos_f": 17, + "mon_ypos_f": 1, + "ypos_m": 17, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_TANGROWTH", + "height": 20, + "weight": 1286, + "body_style": 1, + "scale_f": 331, + "mon_scale_f": 256, + "scale_m": 334, + "mon_scale_m": 256, + "ypos_f": 15, + "mon_ypos_f": 2, + "ypos_m": 15, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_ELECTIVIRE", + "height": 18, + "weight": 1386, + "body_style": 2, + "scale_f": 311, + "mon_scale_f": 256, + "scale_m": 310, + "mon_scale_m": 256, + "ypos_f": 14, + "mon_ypos_f": 7, + "ypos_m": 13, + "mon_ypos_m": 7 + }, + { + "species": "SPECIES_MAGMORTAR", + "height": 16, + "weight": 680, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 247, + "scale_m": 256, + "mon_scale_m": 247, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_TOGEKISS", + "height": 15, + "weight": 380, + "body_style": 5, + "scale_f": 272, + "mon_scale_f": 223, + "scale_m": 256, + "mon_scale_m": 223, + "ypos_f": 8, + "mon_ypos_f": -2, + "ypos_m": 9, + "mon_ypos_m": -2 + }, + { + "species": "SPECIES_YANMEGA", + "height": 19, + "weight": 515, + "body_style": 4, + "scale_f": 272, + "mon_scale_f": 276, + "scale_m": 256, + "mon_scale_m": 276, + "ypos_f": 8, + "mon_ypos_f": -4, + "ypos_m": 9, + "mon_ypos_m": -4 + }, + { + "species": "SPECIES_LEAFEON", + "height": 10, + "weight": 255, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 256, + "scale_m": 256, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": 14, + "ypos_m": 9, + "mon_ypos_m": 14 + }, + { + "species": "SPECIES_GLACEON", + "height": 8, + "weight": 259, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 334, + "scale_m": 256, + "mon_scale_m": 334, + "ypos_f": 8, + "mon_ypos_f": 19, + "ypos_m": 9, + "mon_ypos_m": 19 + }, + { + "species": "SPECIES_GLISCOR", + "height": 20, + "weight": 425, + "body_style": 5, + "scale_f": 296, + "mon_scale_f": 256, + "scale_m": 292, + "mon_scale_m": 256, + "ypos_f": 12, + "mon_ypos_f": 0, + "ypos_m": 10, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_MAMOSWINE", + "height": 25, + "weight": 2910, + "body_style": 0, + "scale_f": 432, + "mon_scale_f": 256, + "scale_m": 410, + "mon_scale_m": 256, + "ypos_f": 19, + "mon_ypos_f": 6, + "ypos_m": 18, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_PORYGON_Z", + "height": 9, + "weight": 340, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 325, + "scale_m": 256, + "mon_scale_m": 325, + "ypos_f": 8, + "mon_ypos_f": -5, + "ypos_m": 9, + "mon_ypos_m": -5 + }, + { + "species": "SPECIES_GALLADE", + "height": 16, + "weight": 520, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 248, + "scale_m": 256, + "mon_scale_m": 248, + "ypos_f": 8, + "mon_ypos_f": 3, + "ypos_m": 9, + "mon_ypos_m": 3 + }, + { + "species": "SPECIES_PROBOPASS", + "height": 14, + "weight": 3400, + "body_style": 13, + "scale_f": 272, + "mon_scale_f": 243, + "scale_m": 256, + "mon_scale_m": 243, + "ypos_f": 8, + "mon_ypos_f": 4, + "ypos_m": 9, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_DUSKNOIR", + "height": 22, + "weight": 1066, + "body_style": 8, + "scale_f": 347, + "mon_scale_f": 244, + "scale_m": 335, + "mon_scale_m": 244, + "ypos_f": 15, + "mon_ypos_f": 6, + "ypos_m": 15, + "mon_ypos_m": 6 + }, + { + "species": "SPECIES_FROSLASS", + "height": 13, + "weight": 266, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 243, + "scale_m": 256, + "mon_scale_m": 243, + "ypos_f": 8, + "mon_ypos_f": 9, + "ypos_m": 9, + "mon_ypos_m": 9 + }, + { + "species": "SPECIES_ROTOM", + "height": 3, + "weight": 3, + "body_style": 12, + "scale_f": 272, + "mon_scale_f": 404, + "scale_m": 256, + "mon_scale_m": 404, + "ypos_f": 8, + "mon_ypos_f": -8, + "ypos_m": 9, + "mon_ypos_m": -8 + }, + { + "species": "SPECIES_UXIE", + "height": 3, + "weight": 3, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 461, + "scale_m": 256, + "mon_scale_m": 461, + "ypos_f": 8, + "mon_ypos_f": -10, + "ypos_m": 9, + "mon_ypos_m": -10 + }, + { + "species": "SPECIES_MESPRIT", + "height": 3, + "weight": 3, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 470, + "scale_m": 256, + "mon_scale_m": 470, + "ypos_f": 8, + "mon_ypos_f": -10, + "ypos_m": 9, + "mon_ypos_m": -10 + }, + { + "species": "SPECIES_AZELF", + "height": 3, + "weight": 3, + "body_style": 2, + "scale_f": 272, + "mon_scale_f": 491, + "scale_m": 256, + "mon_scale_m": 491, + "ypos_f": 8, + "mon_ypos_f": -10, + "ypos_m": 9, + "mon_ypos_m": -10 + }, + { + "species": "SPECIES_DIALGA", + "height": 54, + "weight": 6830, + "body_style": 0, + "scale_f": 683, + "mon_scale_f": 256, + "scale_m": 655, + "mon_scale_m": 256, + "ypos_f": 26, + "mon_ypos_f": 1, + "ypos_m": 26, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_PALKIA", + "height": 42, + "weight": 3360, + "body_style": 2, + "scale_f": 603, + "mon_scale_f": 256, + "scale_m": 597, + "mon_scale_m": 256, + "ypos_f": 26, + "mon_ypos_f": 2, + "ypos_m": 26, + "mon_ypos_m": 2 + }, + { + "species": "SPECIES_HEATRAN", + "height": 17, + "weight": 4300, + "body_style": 0, + "scale_f": 356, + "mon_scale_f": 218, + "scale_m": 348, + "mon_scale_m": 218, + "ypos_f": 7, + "mon_ypos_f": 1, + "ypos_m": 7, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_REGIGIGAS", + "height": 37, + "weight": 4200, + "body_style": 1, + "scale_f": 538, + "mon_scale_f": 256, + "scale_m": 512, + "mon_scale_m": 256, + "ypos_f": 23, + "mon_ypos_f": 1, + "ypos_m": 23, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_GIRATINA", + "height": { + "altered": 69, + "origin": 45 + }, + "weight": { + "altered": 6500, + "origin": 7500 + }, + "body_style": { + "altered": 3, + "origin": 10 + }, + "scale_f": 576, + "mon_scale_f": 256, + "scale_m": 554, + "mon_scale_m": 256, + "ypos_f": 24, + "mon_ypos_f": 1, + "ypos_m": 23, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_CRESSELIA", + "height": 15, + "weight": 856, + "body_style": 6, + "scale_f": 296, + "mon_scale_f": 256, + "scale_m": 297, + "mon_scale_m": 256, + "ypos_f": 8, + "mon_ypos_f": -3, + "ypos_m": 7, + "mon_ypos_m": -3 + }, + { + "species": "SPECIES_PHIONE", + "height": 4, + "weight": 31, + "body_style": 8, + "scale_f": 272, + "mon_scale_f": 423, + "scale_m": 256, + "mon_scale_m": 423, + "ypos_f": 8, + "mon_ypos_f": 1, + "ypos_m": 9, + "mon_ypos_m": 1 + }, + { + "species": "SPECIES_MANAPHY", + "height": 3, + "weight": 14, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 504, + "scale_m": 256, + "mon_scale_m": 504, + "ypos_f": 8, + "mon_ypos_f": 0, + "ypos_m": 9, + "mon_ypos_m": 0 + }, + { + "species": "SPECIES_DARKRAI", + "height": 15, + "weight": 505, + "body_style": 1, + "scale_f": 272, + "mon_scale_f": 222, + "scale_m": 256, + "mon_scale_m": 222, + "ypos_f": 8, + "mon_ypos_f": 4, + "ypos_m": 9, + "mon_ypos_m": 4 + }, + { + "species": "SPECIES_SHAYMIN", + "height": 2, + "weight": 21, + "body_style": 0, + "scale_f": 272, + "mon_scale_f": 460, + "scale_m": 256, + "mon_scale_m": 460, + "ypos_f": 8, + "mon_ypos_f": 32, + "ypos_m": 9, + "mon_ypos_m": 32 + }, + { + "species": "SPECIES_ARCEUS", + "height": 32, + "weight": 3200, + "body_style": 0, + "scale_f": 512, + "mon_scale_f": 256, + "scale_m": 487, + "mon_scale_m": 256, + "ypos_f": 23, + "mon_ypos_f": 0, + "ypos_m": 23, + "mon_ypos_m": 0 + } + ], + "sorting": [ + { + "type": "dex_order", + "options": [ + { + "id": "national", + "mons": [ + "SPECIES_BULBASAUR", + "SPECIES_IVYSAUR", + "SPECIES_VENUSAUR", + "SPECIES_CHARMANDER", + "SPECIES_CHARMELEON", + "SPECIES_CHARIZARD", + "SPECIES_SQUIRTLE", + "SPECIES_WARTORTLE", + "SPECIES_BLASTOISE", + "SPECIES_CATERPIE", + "SPECIES_METAPOD", + "SPECIES_BUTTERFREE", + "SPECIES_WEEDLE", + "SPECIES_KAKUNA", + "SPECIES_BEEDRILL", + "SPECIES_PIDGEY", + "SPECIES_PIDGEOTTO", + "SPECIES_PIDGEOT", + "SPECIES_RATTATA", + "SPECIES_RATICATE", + "SPECIES_SPEAROW", + "SPECIES_FEAROW", + "SPECIES_EKANS", + "SPECIES_ARBOK", + "SPECIES_PIKACHU", + "SPECIES_RAICHU", + "SPECIES_SANDSHREW", + "SPECIES_SANDSLASH", + "SPECIES_NIDORAN_F", + "SPECIES_NIDORINA", + "SPECIES_NIDOQUEEN", + "SPECIES_NIDORAN_M", + "SPECIES_NIDORINO", + "SPECIES_NIDOKING", + "SPECIES_CLEFAIRY", + "SPECIES_CLEFABLE", + "SPECIES_VULPIX", + "SPECIES_NINETALES", + "SPECIES_JIGGLYPUFF", + "SPECIES_WIGGLYTUFF", + "SPECIES_ZUBAT", + "SPECIES_GOLBAT", + "SPECIES_ODDISH", + "SPECIES_GLOOM", + "SPECIES_VILEPLUME", + "SPECIES_PARAS", + "SPECIES_PARASECT", + "SPECIES_VENONAT", + "SPECIES_VENOMOTH", + "SPECIES_DIGLETT", + "SPECIES_DUGTRIO", + "SPECIES_MEOWTH", + "SPECIES_PERSIAN", + "SPECIES_PSYDUCK", + "SPECIES_GOLDUCK", + "SPECIES_MANKEY", + "SPECIES_PRIMEAPE", + "SPECIES_GROWLITHE", + "SPECIES_ARCANINE", + "SPECIES_POLIWAG", + "SPECIES_POLIWHIRL", + "SPECIES_POLIWRATH", + "SPECIES_ABRA", + "SPECIES_KADABRA", + "SPECIES_ALAKAZAM", + "SPECIES_MACHOP", + "SPECIES_MACHOKE", + "SPECIES_MACHAMP", + "SPECIES_BELLSPROUT", + "SPECIES_WEEPINBELL", + "SPECIES_VICTREEBEL", + "SPECIES_TENTACOOL", + "SPECIES_TENTACRUEL", + "SPECIES_GEODUDE", + "SPECIES_GRAVELER", + "SPECIES_GOLEM", + "SPECIES_PONYTA", + "SPECIES_RAPIDASH", + "SPECIES_SLOWPOKE", + "SPECIES_SLOWBRO", + "SPECIES_MAGNEMITE", + "SPECIES_MAGNETON", + "SPECIES_FARFETCHD", + "SPECIES_DODUO", + "SPECIES_DODRIO", + "SPECIES_SEEL", + "SPECIES_DEWGONG", + "SPECIES_GRIMER", + "SPECIES_MUK", + "SPECIES_SHELLDER", + "SPECIES_CLOYSTER", + "SPECIES_GASTLY", + "SPECIES_HAUNTER", + "SPECIES_GENGAR", + "SPECIES_ONIX", + "SPECIES_DROWZEE", + "SPECIES_HYPNO", + "SPECIES_KRABBY", + "SPECIES_KINGLER", + "SPECIES_VOLTORB", + "SPECIES_ELECTRODE", + "SPECIES_EXEGGCUTE", + "SPECIES_EXEGGUTOR", + "SPECIES_CUBONE", + "SPECIES_MAROWAK", + "SPECIES_HITMONLEE", + "SPECIES_HITMONCHAN", + "SPECIES_LICKITUNG", + "SPECIES_KOFFING", + "SPECIES_WEEZING", + "SPECIES_RHYHORN", + "SPECIES_RHYDON", + "SPECIES_CHANSEY", + "SPECIES_TANGELA", + "SPECIES_KANGASKHAN", + "SPECIES_HORSEA", + "SPECIES_SEADRA", + "SPECIES_GOLDEEN", + "SPECIES_SEAKING", + "SPECIES_STARYU", + "SPECIES_STARMIE", + "SPECIES_MR_MIME", + "SPECIES_SCYTHER", + "SPECIES_JYNX", + "SPECIES_ELECTABUZZ", + "SPECIES_MAGMAR", + "SPECIES_PINSIR", + "SPECIES_TAUROS", + "SPECIES_MAGIKARP", + "SPECIES_GYARADOS", + "SPECIES_LAPRAS", + "SPECIES_DITTO", + "SPECIES_EEVEE", + "SPECIES_VAPOREON", + "SPECIES_JOLTEON", + "SPECIES_FLAREON", + "SPECIES_PORYGON", + "SPECIES_OMANYTE", + "SPECIES_OMASTAR", + "SPECIES_KABUTO", + "SPECIES_KABUTOPS", + "SPECIES_AERODACTYL", + "SPECIES_SNORLAX", + "SPECIES_ARTICUNO", + "SPECIES_ZAPDOS", + "SPECIES_MOLTRES", + "SPECIES_DRATINI", + "SPECIES_DRAGONAIR", + "SPECIES_DRAGONITE", + "SPECIES_MEWTWO", + "SPECIES_MEW", + "SPECIES_CHIKORITA", + "SPECIES_BAYLEEF", + "SPECIES_MEGANIUM", + "SPECIES_CYNDAQUIL", + "SPECIES_QUILAVA", + "SPECIES_TYPHLOSION", + "SPECIES_TOTODILE", + "SPECIES_CROCONAW", + "SPECIES_FERALIGATR", + "SPECIES_SENTRET", + "SPECIES_FURRET", + "SPECIES_HOOTHOOT", + "SPECIES_NOCTOWL", + "SPECIES_LEDYBA", + "SPECIES_LEDIAN", + "SPECIES_SPINARAK", + "SPECIES_ARIADOS", + "SPECIES_CROBAT", + "SPECIES_CHINCHOU", + "SPECIES_LANTURN", + "SPECIES_PICHU", + "SPECIES_CLEFFA", + "SPECIES_IGGLYBUFF", + "SPECIES_TOGEPI", + "SPECIES_TOGETIC", + "SPECIES_NATU", + "SPECIES_XATU", + "SPECIES_MAREEP", + "SPECIES_FLAAFFY", + "SPECIES_AMPHAROS", + "SPECIES_BELLOSSOM", + "SPECIES_MARILL", + "SPECIES_AZUMARILL", + "SPECIES_SUDOWOODO", + "SPECIES_POLITOED", + "SPECIES_HOPPIP", + "SPECIES_SKIPLOOM", + "SPECIES_JUMPLUFF", + "SPECIES_AIPOM", + "SPECIES_SUNKERN", + "SPECIES_SUNFLORA", + "SPECIES_YANMA", + "SPECIES_WOOPER", + "SPECIES_QUAGSIRE", + "SPECIES_ESPEON", + "SPECIES_UMBREON", + "SPECIES_MURKROW", + "SPECIES_SLOWKING", + "SPECIES_MISDREAVUS", + "SPECIES_UNOWN", + "SPECIES_WOBBUFFET", + "SPECIES_GIRAFARIG", + "SPECIES_PINECO", + "SPECIES_FORRETRESS", + "SPECIES_DUNSPARCE", + "SPECIES_GLIGAR", + "SPECIES_STEELIX", + "SPECIES_SNUBBULL", + "SPECIES_GRANBULL", + "SPECIES_QWILFISH", + "SPECIES_SCIZOR", + "SPECIES_SHUCKLE", + "SPECIES_HERACROSS", + "SPECIES_SNEASEL", + "SPECIES_TEDDIURSA", + "SPECIES_URSARING", + "SPECIES_SLUGMA", + "SPECIES_MAGCARGO", + "SPECIES_SWINUB", + "SPECIES_PILOSWINE", + "SPECIES_CORSOLA", + "SPECIES_REMORAID", + "SPECIES_OCTILLERY", + "SPECIES_DELIBIRD", + "SPECIES_MANTINE", + "SPECIES_SKARMORY", + "SPECIES_HOUNDOUR", + "SPECIES_HOUNDOOM", + "SPECIES_KINGDRA", + "SPECIES_PHANPY", + "SPECIES_DONPHAN", + "SPECIES_PORYGON2", + "SPECIES_STANTLER", + "SPECIES_SMEARGLE", + "SPECIES_TYROGUE", + "SPECIES_HITMONTOP", + "SPECIES_SMOOCHUM", + "SPECIES_ELEKID", + "SPECIES_MAGBY", + "SPECIES_MILTANK", + "SPECIES_BLISSEY", + "SPECIES_RAIKOU", + "SPECIES_ENTEI", + "SPECIES_SUICUNE", + "SPECIES_LARVITAR", + "SPECIES_PUPITAR", + "SPECIES_TYRANITAR", + "SPECIES_LUGIA", + "SPECIES_HO_OH", + "SPECIES_CELEBI", + "SPECIES_TREECKO", + "SPECIES_GROVYLE", + "SPECIES_SCEPTILE", + "SPECIES_TORCHIC", + "SPECIES_COMBUSKEN", + "SPECIES_BLAZIKEN", + "SPECIES_MUDKIP", + "SPECIES_MARSHTOMP", + "SPECIES_SWAMPERT", + "SPECIES_POOCHYENA", + "SPECIES_MIGHTYENA", + "SPECIES_ZIGZAGOON", + "SPECIES_LINOONE", + "SPECIES_WURMPLE", + "SPECIES_SILCOON", + "SPECIES_BEAUTIFLY", + "SPECIES_CASCOON", + "SPECIES_DUSTOX", + "SPECIES_LOTAD", + "SPECIES_LOMBRE", + "SPECIES_LUDICOLO", + "SPECIES_SEEDOT", + "SPECIES_NUZLEAF", + "SPECIES_SHIFTRY", + "SPECIES_TAILLOW", + "SPECIES_SWELLOW", + "SPECIES_WINGULL", + "SPECIES_PELIPPER", + "SPECIES_RALTS", + "SPECIES_KIRLIA", + "SPECIES_GARDEVOIR", + "SPECIES_SURSKIT", + "SPECIES_MASQUERAIN", + "SPECIES_SHROOMISH", + "SPECIES_BRELOOM", + "SPECIES_SLAKOTH", + "SPECIES_VIGOROTH", + "SPECIES_SLAKING", + "SPECIES_NINCADA", + "SPECIES_NINJASK", + "SPECIES_SHEDINJA", + "SPECIES_WHISMUR", + "SPECIES_LOUDRED", + "SPECIES_EXPLOUD", + "SPECIES_MAKUHITA", + "SPECIES_HARIYAMA", + "SPECIES_AZURILL", + "SPECIES_NOSEPASS", + "SPECIES_SKITTY", + "SPECIES_DELCATTY", + "SPECIES_SABLEYE", + "SPECIES_MAWILE", + "SPECIES_ARON", + "SPECIES_LAIRON", + "SPECIES_AGGRON", + "SPECIES_MEDITITE", + "SPECIES_MEDICHAM", + "SPECIES_ELECTRIKE", + "SPECIES_MANECTRIC", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_VOLBEAT", + "SPECIES_ILLUMISE", + "SPECIES_ROSELIA", + "SPECIES_GULPIN", + "SPECIES_SWALOT", + "SPECIES_CARVANHA", + "SPECIES_SHARPEDO", + "SPECIES_WAILMER", + "SPECIES_WAILORD", + "SPECIES_NUMEL", + "SPECIES_CAMERUPT", + "SPECIES_TORKOAL", + "SPECIES_SPOINK", + "SPECIES_GRUMPIG", + "SPECIES_SPINDA", + "SPECIES_TRAPINCH", + "SPECIES_VIBRAVA", + "SPECIES_FLYGON", + "SPECIES_CACNEA", + "SPECIES_CACTURNE", + "SPECIES_SWABLU", + "SPECIES_ALTARIA", + "SPECIES_ZANGOOSE", + "SPECIES_SEVIPER", + "SPECIES_LUNATONE", + "SPECIES_SOLROCK", + "SPECIES_BARBOACH", + "SPECIES_WHISCASH", + "SPECIES_CORPHISH", + "SPECIES_CRAWDAUNT", + "SPECIES_BALTOY", + "SPECIES_CLAYDOL", + "SPECIES_LILEEP", + "SPECIES_CRADILY", + "SPECIES_ANORITH", + "SPECIES_ARMALDO", + "SPECIES_FEEBAS", + "SPECIES_MILOTIC", + "SPECIES_CASTFORM", + "SPECIES_KECLEON", + "SPECIES_SHUPPET", + "SPECIES_BANETTE", + "SPECIES_DUSKULL", + "SPECIES_DUSCLOPS", + "SPECIES_TROPIUS", + "SPECIES_CHIMECHO", + "SPECIES_ABSOL", + "SPECIES_WYNAUT", + "SPECIES_SNORUNT", + "SPECIES_GLALIE", + "SPECIES_SPHEAL", + "SPECIES_SEALEO", + "SPECIES_WALREIN", + "SPECIES_CLAMPERL", + "SPECIES_HUNTAIL", + "SPECIES_GOREBYSS", + "SPECIES_RELICANTH", + "SPECIES_LUVDISC", + "SPECIES_BAGON", + "SPECIES_SHELGON", + "SPECIES_SALAMENCE", + "SPECIES_BELDUM", + "SPECIES_METANG", + "SPECIES_METAGROSS", + "SPECIES_REGIROCK", + "SPECIES_REGICE", + "SPECIES_REGISTEEL", + "SPECIES_LATIAS", + "SPECIES_LATIOS", + "SPECIES_KYOGRE", + "SPECIES_GROUDON", + "SPECIES_RAYQUAZA", + "SPECIES_JIRACHI", + "SPECIES_DEOXYS", + "SPECIES_TURTWIG", + "SPECIES_GROTLE", + "SPECIES_TORTERRA", + "SPECIES_CHIMCHAR", + "SPECIES_MONFERNO", + "SPECIES_INFERNAPE", + "SPECIES_PIPLUP", + "SPECIES_PRINPLUP", + "SPECIES_EMPOLEON", + "SPECIES_STARLY", + "SPECIES_STARAVIA", + "SPECIES_STARAPTOR", + "SPECIES_BIDOOF", + "SPECIES_BIBAREL", + "SPECIES_KRICKETOT", + "SPECIES_KRICKETUNE", + "SPECIES_SHINX", + "SPECIES_LUXIO", + "SPECIES_LUXRAY", + "SPECIES_BUDEW", + "SPECIES_ROSERADE", + "SPECIES_CRANIDOS", + "SPECIES_RAMPARDOS", + "SPECIES_SHIELDON", + "SPECIES_BASTIODON", + "SPECIES_BURMY", + "SPECIES_WORMADAM", + "SPECIES_MOTHIM", + "SPECIES_COMBEE", + "SPECIES_VESPIQUEN", + "SPECIES_PACHIRISU", + "SPECIES_BUIZEL", + "SPECIES_FLOATZEL", + "SPECIES_CHERUBI", + "SPECIES_CHERRIM", + "SPECIES_SHELLOS", + "SPECIES_GASTRODON", + "SPECIES_AMBIPOM", + "SPECIES_DRIFLOON", + "SPECIES_DRIFBLIM", + "SPECIES_BUNEARY", + "SPECIES_LOPUNNY", + "SPECIES_MISMAGIUS", + "SPECIES_HONCHKROW", + "SPECIES_GLAMEOW", + "SPECIES_PURUGLY", + "SPECIES_CHINGLING", + "SPECIES_STUNKY", + "SPECIES_SKUNTANK", + "SPECIES_BRONZOR", + "SPECIES_BRONZONG", + "SPECIES_BONSLY", + "SPECIES_MIME_JR", + "SPECIES_HAPPINY", + "SPECIES_CHATOT", + "SPECIES_SPIRITOMB", + "SPECIES_GIBLE", + "SPECIES_GABITE", + "SPECIES_GARCHOMP", + "SPECIES_MUNCHLAX", + "SPECIES_RIOLU", + "SPECIES_LUCARIO", + "SPECIES_HIPPOPOTAS", + "SPECIES_HIPPOWDON", + "SPECIES_SKORUPI", + "SPECIES_DRAPION", + "SPECIES_CROAGUNK", + "SPECIES_TOXICROAK", + "SPECIES_CARNIVINE", + "SPECIES_FINNEON", + "SPECIES_LUMINEON", + "SPECIES_MANTYKE", + "SPECIES_SNOVER", + "SPECIES_ABOMASNOW", + "SPECIES_WEAVILE", + "SPECIES_MAGNEZONE", + "SPECIES_LICKILICKY", + "SPECIES_RHYPERIOR", + "SPECIES_TANGROWTH", + "SPECIES_ELECTIVIRE", + "SPECIES_MAGMORTAR", + "SPECIES_TOGEKISS", + "SPECIES_YANMEGA", + "SPECIES_LEAFEON", + "SPECIES_GLACEON", + "SPECIES_GLISCOR", + "SPECIES_MAMOSWINE", + "SPECIES_PORYGON_Z", + "SPECIES_GALLADE", + "SPECIES_PROBOPASS", + "SPECIES_DUSKNOIR", + "SPECIES_FROSLASS", + "SPECIES_ROTOM", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_DIALGA", + "SPECIES_PALKIA", + "SPECIES_HEATRAN", + "SPECIES_REGIGIGAS", + "SPECIES_GIRATINA", + "SPECIES_CRESSELIA", + "SPECIES_PHIONE", + "SPECIES_MANAPHY", + "SPECIES_DARKRAI", + "SPECIES_SHAYMIN", + "SPECIES_ARCEUS" + ] + }, + { + "id": "johto", + "mons": [ + "SPECIES_CHIKORITA", + "SPECIES_BAYLEEF", + "SPECIES_MEGANIUM", + "SPECIES_CYNDAQUIL", + "SPECIES_QUILAVA", + "SPECIES_TYPHLOSION", + "SPECIES_TOTODILE", + "SPECIES_CROCONAW", + "SPECIES_FERALIGATR", + "SPECIES_PIDGEY", + "SPECIES_PIDGEOTTO", + "SPECIES_PIDGEOT", + "SPECIES_SPEAROW", + "SPECIES_FEAROW", + "SPECIES_HOOTHOOT", + "SPECIES_NOCTOWL", + "SPECIES_RATTATA", + "SPECIES_RATICATE", + "SPECIES_SENTRET", + "SPECIES_FURRET", + "SPECIES_PICHU", + "SPECIES_PIKACHU", + "SPECIES_RAICHU", + "SPECIES_CATERPIE", + "SPECIES_METAPOD", + "SPECIES_BUTTERFREE", + "SPECIES_WEEDLE", + "SPECIES_KAKUNA", + "SPECIES_BEEDRILL", + "SPECIES_LEDYBA", + "SPECIES_LEDIAN", + "SPECIES_SPINARAK", + "SPECIES_ARIADOS", + "SPECIES_GEODUDE", + "SPECIES_GRAVELER", + "SPECIES_GOLEM", + "SPECIES_ZUBAT", + "SPECIES_GOLBAT", + "SPECIES_CROBAT", + "SPECIES_CLEFFA", + "SPECIES_CLEFAIRY", + "SPECIES_CLEFABLE", + "SPECIES_IGGLYBUFF", + "SPECIES_JIGGLYPUFF", + "SPECIES_WIGGLYTUFF", + "SPECIES_TOGEPI", + "SPECIES_TOGETIC", + "SPECIES_SANDSHREW", + "SPECIES_SANDSLASH", + "SPECIES_EKANS", + "SPECIES_ARBOK", + "SPECIES_DUNSPARCE", + "SPECIES_MAREEP", + "SPECIES_FLAAFFY", + "SPECIES_AMPHAROS", + "SPECIES_WOOPER", + "SPECIES_QUAGSIRE", + "SPECIES_GASTLY", + "SPECIES_HAUNTER", + "SPECIES_GENGAR", + "SPECIES_UNOWN", + "SPECIES_ONIX", + "SPECIES_STEELIX", + "SPECIES_BELLSPROUT", + "SPECIES_WEEPINBELL", + "SPECIES_VICTREEBEL", + "SPECIES_HOPPIP", + "SPECIES_SKIPLOOM", + "SPECIES_JUMPLUFF", + "SPECIES_PARAS", + "SPECIES_PARASECT", + "SPECIES_POLIWAG", + "SPECIES_POLIWHIRL", + "SPECIES_POLIWRATH", + "SPECIES_POLITOED", + "SPECIES_MAGIKARP", + "SPECIES_GYARADOS", + "SPECIES_GOLDEEN", + "SPECIES_SEAKING", + "SPECIES_SLOWPOKE", + "SPECIES_SLOWBRO", + "SPECIES_SLOWKING", + "SPECIES_ODDISH", + "SPECIES_GLOOM", + "SPECIES_VILEPLUME", + "SPECIES_BELLOSSOM", + "SPECIES_DROWZEE", + "SPECIES_HYPNO", + "SPECIES_ABRA", + "SPECIES_KADABRA", + "SPECIES_ALAKAZAM", + "SPECIES_DITTO", + "SPECIES_PINECO", + "SPECIES_FORRETRESS", + "SPECIES_NIDORAN_F", + "SPECIES_NIDORINA", + "SPECIES_NIDOQUEEN", + "SPECIES_NIDORAN_M", + "SPECIES_NIDORINO", + "SPECIES_NIDOKING", + "SPECIES_YANMA", + "SPECIES_YANMEGA", + "SPECIES_SUNKERN", + "SPECIES_SUNFLORA", + "SPECIES_EXEGGCUTE", + "SPECIES_EXEGGUTOR", + "SPECIES_SUDOWOODO", + "SPECIES_WOBBUFFET", + "SPECIES_VENONAT", + "SPECIES_VENOMOTH", + "SPECIES_SCYTHER", + "SPECIES_SCIZOR", + "SPECIES_PINSIR", + "SPECIES_HERACROSS", + "SPECIES_KOFFING", + "SPECIES_WEEZING", + "SPECIES_GRIMER", + "SPECIES_MUK", + "SPECIES_MAGNEMITE", + "SPECIES_MAGNETON", + "SPECIES_VOLTORB", + "SPECIES_ELECTRODE", + "SPECIES_AIPOM", + "SPECIES_AMBIPOM", + "SPECIES_SNUBBULL", + "SPECIES_GRANBULL", + "SPECIES_VULPIX", + "SPECIES_NINETALES", + "SPECIES_GROWLITHE", + "SPECIES_ARCANINE", + "SPECIES_STANTLER", + "SPECIES_MARILL", + "SPECIES_AZUMARILL", + "SPECIES_DIGLETT", + "SPECIES_DUGTRIO", + "SPECIES_MANKEY", + "SPECIES_PRIMEAPE", + "SPECIES_MEOWTH", + "SPECIES_PERSIAN", + "SPECIES_PSYDUCK", + "SPECIES_GOLDUCK", + "SPECIES_MACHOP", + "SPECIES_MACHOKE", + "SPECIES_MACHAMP", + "SPECIES_TYROGUE", + "SPECIES_HITMONLEE", + "SPECIES_HITMONCHAN", + "SPECIES_HITMONTOP", + "SPECIES_GIRAFARIG", + "SPECIES_TAUROS", + "SPECIES_MILTANK", + "SPECIES_MAGBY", + "SPECIES_MAGMAR", + "SPECIES_SMOOCHUM", + "SPECIES_JYNX", + "SPECIES_ELEKID", + "SPECIES_ELECTABUZZ", + "SPECIES_MR_MIME", + "SPECIES_SMEARGLE", + "SPECIES_FARFETCHD", + "SPECIES_NATU", + "SPECIES_XATU", + "SPECIES_QWILFISH", + "SPECIES_TENTACOOL", + "SPECIES_TENTACRUEL", + "SPECIES_KRABBY", + "SPECIES_KINGLER", + "SPECIES_SHUCKLE", + "SPECIES_STARYU", + "SPECIES_STARMIE", + "SPECIES_SHELLDER", + "SPECIES_CLOYSTER", + "SPECIES_CORSOLA", + "SPECIES_REMORAID", + "SPECIES_OCTILLERY", + "SPECIES_CHINCHOU", + "SPECIES_LANTURN", + "SPECIES_SEEL", + "SPECIES_DEWGONG", + "SPECIES_LICKITUNG", + "SPECIES_LICKILICKY", + "SPECIES_TANGELA", + "SPECIES_TANGROWTH", + "SPECIES_EEVEE", + "SPECIES_VAPOREON", + "SPECIES_JOLTEON", + "SPECIES_FLAREON", + "SPECIES_ESPEON", + "SPECIES_UMBREON", + "SPECIES_HORSEA", + "SPECIES_SEADRA", + "SPECIES_KINGDRA", + "SPECIES_GLIGAR", + "SPECIES_DELIBIRD", + "SPECIES_SWINUB", + "SPECIES_PILOSWINE", + "SPECIES_MAMOSWINE", + "SPECIES_TEDDIURSA", + "SPECIES_URSARING", + "SPECIES_PHANPY", + "SPECIES_DONPHAN", + "SPECIES_MANTINE", + "SPECIES_SKARMORY", + "SPECIES_DODUO", + "SPECIES_DODRIO", + "SPECIES_PONYTA", + "SPECIES_RAPIDASH", + "SPECIES_CUBONE", + "SPECIES_MAROWAK", + "SPECIES_KANGASKHAN", + "SPECIES_RHYHORN", + "SPECIES_RHYDON", + "SPECIES_MURKROW", + "SPECIES_HOUNDOUR", + "SPECIES_HOUNDOOM", + "SPECIES_SLUGMA", + "SPECIES_MAGCARGO", + "SPECIES_SNEASEL", + "SPECIES_MISDREAVUS", + "SPECIES_PORYGON", + "SPECIES_PORYGON2", + "SPECIES_CHANSEY", + "SPECIES_BLISSEY", + "SPECIES_LAPRAS", + "SPECIES_OMANYTE", + "SPECIES_OMASTAR", + "SPECIES_KABUTO", + "SPECIES_KABUTOPS", + "SPECIES_AERODACTYL", + "SPECIES_SNORLAX", + "SPECIES_BULBASAUR", + "SPECIES_IVYSAUR", + "SPECIES_VENUSAUR", + "SPECIES_CHARMANDER", + "SPECIES_CHARMELEON", + "SPECIES_CHARIZARD", + "SPECIES_SQUIRTLE", + "SPECIES_WARTORTLE", + "SPECIES_BLASTOISE", + "SPECIES_ARTICUNO", + "SPECIES_ZAPDOS", + "SPECIES_MOLTRES", + "SPECIES_RAIKOU", + "SPECIES_ENTEI", + "SPECIES_SUICUNE", + "SPECIES_DRATINI", + "SPECIES_DRAGONAIR", + "SPECIES_DRAGONITE", + "SPECIES_LARVITAR", + "SPECIES_PUPITAR", + "SPECIES_TYRANITAR", + "SPECIES_LUGIA", + "SPECIES_HO_OH", + "SPECIES_MEWTWO", + "SPECIES_MEW", + "SPECIES_CELEBI" + ] + }, + { + "id": "alphabetical", + "mons": [ + "SPECIES_ABOMASNOW", + "SPECIES_ABRA", + "SPECIES_ABSOL", + "SPECIES_AERODACTYL", + "SPECIES_AGGRON", + "SPECIES_AIPOM", + "SPECIES_ALAKAZAM", + "SPECIES_ALTARIA", + "SPECIES_AMBIPOM", + "SPECIES_AMPHAROS", + "SPECIES_ANORITH", + "SPECIES_ARBOK", + "SPECIES_ARCANINE", + "SPECIES_ARCEUS", + "SPECIES_ARIADOS", + "SPECIES_ARMALDO", + "SPECIES_ARON", + "SPECIES_ARTICUNO", + "SPECIES_AZELF", + "SPECIES_AZUMARILL", + "SPECIES_AZURILL", + "SPECIES_BAGON", + "SPECIES_BALTOY", + "SPECIES_BANETTE", + "SPECIES_BARBOACH", + "SPECIES_BASTIODON", + "SPECIES_BAYLEEF", + "SPECIES_BEAUTIFLY", + "SPECIES_BEEDRILL", + "SPECIES_BELDUM", + "SPECIES_BELLOSSOM", + "SPECIES_BELLSPROUT", + "SPECIES_BIBAREL", + "SPECIES_BIDOOF", + "SPECIES_BLASTOISE", + "SPECIES_BLAZIKEN", + "SPECIES_BLISSEY", + "SPECIES_BONSLY", + "SPECIES_BRELOOM", + "SPECIES_BRONZONG", + "SPECIES_BRONZOR", + "SPECIES_BUDEW", + "SPECIES_BUIZEL", + "SPECIES_BULBASAUR", + "SPECIES_BUNEARY", + "SPECIES_BURMY", + "SPECIES_BUTTERFREE", + "SPECIES_CACNEA", + "SPECIES_CACTURNE", + "SPECIES_CAMERUPT", + "SPECIES_CARNIVINE", + "SPECIES_CARVANHA", + "SPECIES_CASCOON", + "SPECIES_CASTFORM", + "SPECIES_CATERPIE", + "SPECIES_CELEBI", + "SPECIES_CHANSEY", + "SPECIES_CHARIZARD", + "SPECIES_CHARMANDER", + "SPECIES_CHARMELEON", + "SPECIES_CHATOT", + "SPECIES_CHERRIM", + "SPECIES_CHERUBI", + "SPECIES_CHIKORITA", + "SPECIES_CHIMCHAR", + "SPECIES_CHIMECHO", + "SPECIES_CHINCHOU", + "SPECIES_CHINGLING", + "SPECIES_CLAMPERL", + "SPECIES_CLAYDOL", + "SPECIES_CLEFABLE", + "SPECIES_CLEFAIRY", + "SPECIES_CLEFFA", + "SPECIES_CLOYSTER", + "SPECIES_COMBEE", + "SPECIES_COMBUSKEN", + "SPECIES_CORPHISH", + "SPECIES_CORSOLA", + "SPECIES_CRADILY", + "SPECIES_CRANIDOS", + "SPECIES_CRAWDAUNT", + "SPECIES_CRESSELIA", + "SPECIES_CROAGUNK", + "SPECIES_CROBAT", + "SPECIES_CROCONAW", + "SPECIES_CUBONE", + "SPECIES_CYNDAQUIL", + "SPECIES_DARKRAI", + "SPECIES_DELCATTY", + "SPECIES_DELIBIRD", + "SPECIES_DEOXYS", + "SPECIES_DEWGONG", + "SPECIES_DIALGA", + "SPECIES_DIGLETT", + "SPECIES_DITTO", + "SPECIES_DODRIO", + "SPECIES_DODUO", + "SPECIES_DONPHAN", + "SPECIES_DRAGONAIR", + "SPECIES_DRAGONITE", + "SPECIES_DRAPION", + "SPECIES_DRATINI", + "SPECIES_DRIFBLIM", + "SPECIES_DRIFLOON", + "SPECIES_DROWZEE", + "SPECIES_DUGTRIO", + "SPECIES_DUNSPARCE", + "SPECIES_DUSCLOPS", + "SPECIES_DUSKNOIR", + "SPECIES_DUSKULL", + "SPECIES_DUSTOX", + "SPECIES_EEVEE", + "SPECIES_EKANS", + "SPECIES_ELECTABUZZ", + "SPECIES_ELECTIVIRE", + "SPECIES_ELECTRIKE", + "SPECIES_ELECTRODE", + "SPECIES_ELEKID", + "SPECIES_EMPOLEON", + "SPECIES_ENTEI", + "SPECIES_ESPEON", + "SPECIES_EXEGGCUTE", + "SPECIES_EXEGGUTOR", + "SPECIES_EXPLOUD", + "SPECIES_FARFETCHD", + "SPECIES_FEAROW", + "SPECIES_FEEBAS", + "SPECIES_FERALIGATR", + "SPECIES_FINNEON", + "SPECIES_FLAAFFY", + "SPECIES_FLAREON", + "SPECIES_FLOATZEL", + "SPECIES_FLYGON", + "SPECIES_FORRETRESS", + "SPECIES_FROSLASS", + "SPECIES_FURRET", + "SPECIES_GABITE", + "SPECIES_GALLADE", + "SPECIES_GARCHOMP", + "SPECIES_GARDEVOIR", + "SPECIES_GASTLY", + "SPECIES_GASTRODON", + "SPECIES_GENGAR", + "SPECIES_GEODUDE", + "SPECIES_GIBLE", + "SPECIES_GIRAFARIG", + "SPECIES_GIRATINA", + "SPECIES_GLACEON", + "SPECIES_GLALIE", + "SPECIES_GLAMEOW", + "SPECIES_GLIGAR", + "SPECIES_GLISCOR", + "SPECIES_GLOOM", + "SPECIES_GOLBAT", + "SPECIES_GOLDEEN", + "SPECIES_GOLDUCK", + "SPECIES_GOLEM", + "SPECIES_GOREBYSS", + "SPECIES_GRANBULL", + "SPECIES_GRAVELER", + "SPECIES_GRIMER", + "SPECIES_GROTLE", + "SPECIES_GROUDON", + "SPECIES_GROVYLE", + "SPECIES_GROWLITHE", + "SPECIES_GRUMPIG", + "SPECIES_GULPIN", + "SPECIES_GYARADOS", + "SPECIES_HAPPINY", + "SPECIES_HARIYAMA", + "SPECIES_HAUNTER", + "SPECIES_HEATRAN", + "SPECIES_HERACROSS", + "SPECIES_HIPPOPOTAS", + "SPECIES_HIPPOWDON", + "SPECIES_HITMONCHAN", + "SPECIES_HITMONLEE", + "SPECIES_HITMONTOP", + "SPECIES_HO_OH", + "SPECIES_HONCHKROW", + "SPECIES_HOOTHOOT", + "SPECIES_HOPPIP", + "SPECIES_HORSEA", + "SPECIES_HOUNDOOM", + "SPECIES_HOUNDOUR", + "SPECIES_HUNTAIL", + "SPECIES_HYPNO", + "SPECIES_IGGLYBUFF", + "SPECIES_ILLUMISE", + "SPECIES_INFERNAPE", + "SPECIES_IVYSAUR", + "SPECIES_JIGGLYPUFF", + "SPECIES_JIRACHI", + "SPECIES_JOLTEON", + "SPECIES_JUMPLUFF", + "SPECIES_JYNX", + "SPECIES_KABUTO", + "SPECIES_KABUTOPS", + "SPECIES_KADABRA", + "SPECIES_KAKUNA", + "SPECIES_KANGASKHAN", + "SPECIES_KECLEON", + "SPECIES_KINGDRA", + "SPECIES_KINGLER", + "SPECIES_KIRLIA", + "SPECIES_KOFFING", + "SPECIES_KRABBY", + "SPECIES_KRICKETOT", + "SPECIES_KRICKETUNE", + "SPECIES_KYOGRE", + "SPECIES_LAIRON", + "SPECIES_LANTURN", + "SPECIES_LAPRAS", + "SPECIES_LARVITAR", + "SPECIES_LATIAS", + "SPECIES_LATIOS", + "SPECIES_LEAFEON", + "SPECIES_LEDIAN", + "SPECIES_LEDYBA", + "SPECIES_LICKILICKY", + "SPECIES_LICKITUNG", + "SPECIES_LILEEP", + "SPECIES_LINOONE", + "SPECIES_LOMBRE", + "SPECIES_LOPUNNY", + "SPECIES_LOTAD", + "SPECIES_LOUDRED", + "SPECIES_LUCARIO", + "SPECIES_LUDICOLO", + "SPECIES_LUGIA", + "SPECIES_LUMINEON", + "SPECIES_LUNATONE", + "SPECIES_LUVDISC", + "SPECIES_LUXIO", + "SPECIES_LUXRAY", + "SPECIES_MACHAMP", + "SPECIES_MACHOKE", + "SPECIES_MACHOP", + "SPECIES_MAGBY", + "SPECIES_MAGCARGO", + "SPECIES_MAGIKARP", + "SPECIES_MAGMAR", + "SPECIES_MAGMORTAR", + "SPECIES_MAGNEMITE", + "SPECIES_MAGNETON", + "SPECIES_MAGNEZONE", + "SPECIES_MAKUHITA", + "SPECIES_MAMOSWINE", + "SPECIES_MANAPHY", + "SPECIES_MANECTRIC", + "SPECIES_MANKEY", + "SPECIES_MANTINE", + "SPECIES_MANTYKE", + "SPECIES_MAREEP", + "SPECIES_MARILL", + "SPECIES_MAROWAK", + "SPECIES_MARSHTOMP", + "SPECIES_MASQUERAIN", + "SPECIES_MAWILE", + "SPECIES_MEDICHAM", + "SPECIES_MEDITITE", + "SPECIES_MEGANIUM", + "SPECIES_MEOWTH", + "SPECIES_MESPRIT", + "SPECIES_METAGROSS", + "SPECIES_METANG", + "SPECIES_METAPOD", + "SPECIES_MEW", + "SPECIES_MEWTWO", + "SPECIES_MIGHTYENA", + "SPECIES_MILOTIC", + "SPECIES_MILTANK", + "SPECIES_MIME_JR", + "SPECIES_MINUN", + "SPECIES_MISDREAVUS", + "SPECIES_MISMAGIUS", + "SPECIES_MOLTRES", + "SPECIES_MONFERNO", + "SPECIES_MOTHIM", + "SPECIES_MR_MIME", + "SPECIES_MUDKIP", + "SPECIES_MUK", + "SPECIES_MUNCHLAX", + "SPECIES_MURKROW", + "SPECIES_NATU", + "SPECIES_NIDOKING", + "SPECIES_NIDOQUEEN", + "SPECIES_NIDORAN_F", + "SPECIES_NIDORAN_M", + "SPECIES_NIDORINA", + "SPECIES_NIDORINO", + "SPECIES_NINCADA", + "SPECIES_NINETALES", + "SPECIES_NINJASK", + "SPECIES_NOCTOWL", + "SPECIES_NOSEPASS", + "SPECIES_NUMEL", + "SPECIES_NUZLEAF", + "SPECIES_OCTILLERY", + "SPECIES_ODDISH", + "SPECIES_OMANYTE", + "SPECIES_OMASTAR", + "SPECIES_ONIX", + "SPECIES_PACHIRISU", + "SPECIES_PALKIA", + "SPECIES_PARAS", + "SPECIES_PARASECT", + "SPECIES_PELIPPER", + "SPECIES_PERSIAN", + "SPECIES_PHANPY", + "SPECIES_PHIONE", + "SPECIES_PICHU", + "SPECIES_PIDGEOT", + "SPECIES_PIDGEOTTO", + "SPECIES_PIDGEY", + "SPECIES_PIKACHU", + "SPECIES_PILOSWINE", + "SPECIES_PINECO", + "SPECIES_PINSIR", + "SPECIES_PIPLUP", + "SPECIES_PLUSLE", + "SPECIES_POLITOED", + "SPECIES_POLIWAG", + "SPECIES_POLIWHIRL", + "SPECIES_POLIWRATH", + "SPECIES_PONYTA", + "SPECIES_POOCHYENA", + "SPECIES_PORYGON", + "SPECIES_PORYGON_Z", + "SPECIES_PORYGON2", + "SPECIES_PRIMEAPE", + "SPECIES_PRINPLUP", + "SPECIES_PROBOPASS", + "SPECIES_PSYDUCK", + "SPECIES_PUPITAR", + "SPECIES_PURUGLY", + "SPECIES_QUAGSIRE", + "SPECIES_QUILAVA", + "SPECIES_QWILFISH", + "SPECIES_RAICHU", + "SPECIES_RAIKOU", + "SPECIES_RALTS", + "SPECIES_RAMPARDOS", + "SPECIES_RAPIDASH", + "SPECIES_RATICATE", + "SPECIES_RATTATA", + "SPECIES_RAYQUAZA", + "SPECIES_REGICE", + "SPECIES_REGIGIGAS", + "SPECIES_REGIROCK", + "SPECIES_REGISTEEL", + "SPECIES_RELICANTH", + "SPECIES_REMORAID", + "SPECIES_RHYDON", + "SPECIES_RHYHORN", + "SPECIES_RHYPERIOR", + "SPECIES_RIOLU", + "SPECIES_ROSELIA", + "SPECIES_ROSERADE", + "SPECIES_ROTOM", + "SPECIES_SABLEYE", + "SPECIES_SALAMENCE", + "SPECIES_SANDSHREW", + "SPECIES_SANDSLASH", + "SPECIES_SCEPTILE", + "SPECIES_SCIZOR", + "SPECIES_SCYTHER", + "SPECIES_SEADRA", + "SPECIES_SEAKING", + "SPECIES_SEALEO", + "SPECIES_SEEDOT", + "SPECIES_SEEL", + "SPECIES_SENTRET", + "SPECIES_SEVIPER", + "SPECIES_SHARPEDO", + "SPECIES_SHAYMIN", + "SPECIES_SHEDINJA", + "SPECIES_SHELGON", + "SPECIES_SHELLDER", + "SPECIES_SHELLOS", + "SPECIES_SHIELDON", + "SPECIES_SHIFTRY", + "SPECIES_SHINX", + "SPECIES_SHROOMISH", + "SPECIES_SHUCKLE", + "SPECIES_SHUPPET", + "SPECIES_SILCOON", + "SPECIES_SKARMORY", + "SPECIES_SKIPLOOM", + "SPECIES_SKITTY", + "SPECIES_SKORUPI", + "SPECIES_SKUNTANK", + "SPECIES_SLAKING", + "SPECIES_SLAKOTH", + "SPECIES_SLOWBRO", + "SPECIES_SLOWKING", + "SPECIES_SLOWPOKE", + "SPECIES_SLUGMA", + "SPECIES_SMEARGLE", + "SPECIES_SMOOCHUM", + "SPECIES_SNEASEL", + "SPECIES_SNORLAX", + "SPECIES_SNORUNT", + "SPECIES_SNOVER", + "SPECIES_SNUBBULL", + "SPECIES_SOLROCK", + "SPECIES_SPEAROW", + "SPECIES_SPHEAL", + "SPECIES_SPINARAK", + "SPECIES_SPINDA", + "SPECIES_SPIRITOMB", + "SPECIES_SPOINK", + "SPECIES_SQUIRTLE", + "SPECIES_STANTLER", + "SPECIES_STARAPTOR", + "SPECIES_STARAVIA", + "SPECIES_STARLY", + "SPECIES_STARMIE", + "SPECIES_STARYU", + "SPECIES_STEELIX", + "SPECIES_STUNKY", + "SPECIES_SUDOWOODO", + "SPECIES_SUICUNE", + "SPECIES_SUNFLORA", + "SPECIES_SUNKERN", + "SPECIES_SURSKIT", + "SPECIES_SWABLU", + "SPECIES_SWALOT", + "SPECIES_SWAMPERT", + "SPECIES_SWELLOW", + "SPECIES_SWINUB", + "SPECIES_TAILLOW", + "SPECIES_TANGELA", + "SPECIES_TANGROWTH", + "SPECIES_TAUROS", + "SPECIES_TEDDIURSA", + "SPECIES_TENTACOOL", + "SPECIES_TENTACRUEL", + "SPECIES_TOGEKISS", + "SPECIES_TOGEPI", + "SPECIES_TOGETIC", + "SPECIES_TORCHIC", + "SPECIES_TORKOAL", + "SPECIES_TORTERRA", + "SPECIES_TOTODILE", + "SPECIES_TOXICROAK", + "SPECIES_TRAPINCH", + "SPECIES_TREECKO", + "SPECIES_TROPIUS", + "SPECIES_TURTWIG", + "SPECIES_TYPHLOSION", + "SPECIES_TYRANITAR", + "SPECIES_TYROGUE", + "SPECIES_UMBREON", + "SPECIES_UNOWN", + "SPECIES_URSARING", + "SPECIES_UXIE", + "SPECIES_VAPOREON", + "SPECIES_VENOMOTH", + "SPECIES_VENONAT", + "SPECIES_VENUSAUR", + "SPECIES_VESPIQUEN", + "SPECIES_VIBRAVA", + "SPECIES_VICTREEBEL", + "SPECIES_VIGOROTH", + "SPECIES_VILEPLUME", + "SPECIES_VOLBEAT", + "SPECIES_VOLTORB", + "SPECIES_VULPIX", + "SPECIES_WAILMER", + "SPECIES_WAILORD", + "SPECIES_WALREIN", + "SPECIES_WARTORTLE", + "SPECIES_WEAVILE", + "SPECIES_WEEDLE", + "SPECIES_WEEPINBELL", + "SPECIES_WEEZING", + "SPECIES_WHISCASH", + "SPECIES_WHISMUR", + "SPECIES_WIGGLYTUFF", + "SPECIES_WINGULL", + "SPECIES_WOBBUFFET", + "SPECIES_WOOPER", + "SPECIES_WORMADAM", + "SPECIES_WURMPLE", + "SPECIES_WYNAUT", + "SPECIES_XATU", + "SPECIES_YANMA", + "SPECIES_YANMEGA", + "SPECIES_ZANGOOSE", + "SPECIES_ZAPDOS", + "SPECIES_ZIGZAGOON", + "SPECIES_ZUBAT" + ] + }, + { + "id": "heaviest", + "mons": { + "altered": [ + "SPECIES_GROUDON", + "SPECIES_DIALGA", + "SPECIES_GIRATINA", + "SPECIES_METAGROSS", + "SPECIES_SNORLAX", + "SPECIES_HEATRAN", + "SPECIES_REGIGIGAS", + "SPECIES_STEELIX", + "SPECIES_WAILORD", + "SPECIES_AGGRON", + "SPECIES_KYOGRE", + "SPECIES_PROBOPASS", + "SPECIES_PALKIA", + "SPECIES_ARCEUS", + "SPECIES_TORTERRA", + "SPECIES_GOLEM", + "SPECIES_HIPPOWDON", + "SPECIES_MAMOSWINE", + "SPECIES_RHYPERIOR", + "SPECIES_GLALIE", + "SPECIES_HARIYAMA", + "SPECIES_GYARADOS", + "SPECIES_REGIROCK", + "SPECIES_LAPRAS", + "SPECIES_MANTINE", + "SPECIES_CAMERUPT", + "SPECIES_LUGIA", + "SPECIES_ONIX", + "SPECIES_DRAGONITE", + "SPECIES_RAYQUAZA", + "SPECIES_REGISTEEL", + "SPECIES_METANG", + "SPECIES_TYRANITAR", + "SPECIES_HO_OH", + "SPECIES_ENTEI", + "SPECIES_SUICUNE", + "SPECIES_BRONZONG", + "SPECIES_MAGNEZONE", + "SPECIES_RAIKOU", + "SPECIES_REGICE", + "SPECIES_LUNATONE", + "SPECIES_MILOTIC", + "SPECIES_ARCANINE", + "SPECIES_SOLROCK", + "SPECIES_KINGDRA", + "SPECIES_PUPITAR", + "SPECIES_WALREIN", + "SPECIES_BASTIODON", + "SPECIES_LICKILICKY", + "SPECIES_ELECTIVIRE", + "SPECIES_ABOMASNOW", + "SPECIES_CLOYSTER", + "SPECIES_SLAKING", + "SPECIES_MACHAMP", + "SPECIES_WAILMER", + "SPECIES_TANGROWTH", + "SPECIES_FORRETRESS", + "SPECIES_URSARING", + "SPECIES_MEWTWO", + "SPECIES_DEWGONG", + "SPECIES_EXEGGUTOR", + "SPECIES_RHYDON", + "SPECIES_DONPHAN", + "SPECIES_LAIRON", + "SPECIES_SCIZOR", + "SPECIES_RHYHORN", + "SPECIES_SHELGON", + "SPECIES_CLAYDOL", + "SPECIES_SPIRITOMB", + "SPECIES_DUSKNOIR", + "SPECIES_GRAVELER", + "SPECIES_MUNCHLAX", + "SPECIES_SALAMENCE", + "SPECIES_RAMPARDOS", + "SPECIES_MEGANIUM", + "SPECIES_VENUSAUR", + "SPECIES_TROPIUS", + "SPECIES_NOSEPASS", + "SPECIES_GROTLE", + "SPECIES_BELDUM", + "SPECIES_RAPIDASH", + "SPECIES_GARCHOMP", + "SPECIES_CHARIZARD", + "SPECIES_SEEL", + "SPECIES_FERALIGATR", + "SPECIES_SHARPEDO", + "SPECIES_TAUROS", + "SPECIES_SEALEO", + "SPECIES_MAKUHITA", + "SPECIES_CRESSELIA", + "SPECIES_BLASTOISE", + "SPECIES_DODRIO", + "SPECIES_EMPOLEON", + "SPECIES_EXPLOUD", + "SPECIES_FLYGON", + "SPECIES_SWAMPERT", + "SPECIES_TORKOAL", + "SPECIES_KANGASKHAN", + "SPECIES_STARMIE", + "SPECIES_SWALOT", + "SPECIES_TYPHLOSION", + "SPECIES_SLOWKING", + "SPECIES_SLOWBRO", + "SPECIES_CACTURNE", + "SPECIES_GOLDUCK", + "SPECIES_HYPNO", + "SPECIES_MILTANK", + "SPECIES_CROBAT", + "SPECIES_QUAGSIRE", + "SPECIES_LARVITAR", + "SPECIES_GRUMPIG", + "SPECIES_STANTLER", + "SPECIES_MACHOKE", + "SPECIES_ARMALDO", + "SPECIES_MAGMORTAR", + "SPECIES_ELECTRODE", + "SPECIES_LICKITUNG", + "SPECIES_ARBOK", + "SPECIES_MANTYKE", + "SPECIES_GLIGAR", + "SPECIES_NIDOKING", + "SPECIES_AMPHAROS", + "SPECIES_DRAPION", + "SPECIES_DEOXYS", + "SPECIES_BRONZOR", + "SPECIES_CRADILY", + "SPECIES_NIDOQUEEN", + "SPECIES_MAGNETON", + "SPECIES_KINGLER", + "SPECIES_MOLTRES", + "SPECIES_ARON", + "SPECIES_LATIOS", + "SPECIES_SHIFTRY", + "SPECIES_AERODACTYL", + "SPECIES_SMEARGLE", + "SPECIES_SHIELDON", + "SPECIES_KADABRA", + "SPECIES_SCYTHER", + "SPECIES_GABITE", + "SPECIES_PILOSWINE", + "SPECIES_ARTICUNO", + "SPECIES_GOLBAT", + "SPECIES_TENTACRUEL", + "SPECIES_PINSIR", + "SPECIES_MAGCARGO", + "SPECIES_LUDICOLO", + "SPECIES_INFERNAPE", + "SPECIES_MR_MIME", + "SPECIES_POLIWRATH", + "SPECIES_HERACROSS", + "SPECIES_LUCARIO", + "SPECIES_ZAPDOS", + "SPECIES_SEVIPER", + "SPECIES_CLAMPERL", + "SPECIES_SCEPTILE", + "SPECIES_BLAZIKEN", + "SPECIES_GALLADE", + "SPECIES_YANMEGA", + "SPECIES_CACNEA", + "SPECIES_SKARMORY", + "SPECIES_SNOVER", + "SPECIES_DARKRAI", + "SPECIES_HITMONCHAN", + "SPECIES_HITMONLEE", + "SPECIES_HIPPOPOTAS", + "SPECIES_GRANBULL", + "SPECIES_GARDEVOIR", + "SPECIES_ALAKAZAM", + "SPECIES_HITMONTOP", + "SPECIES_ABSOL", + "SPECIES_BLISSEY", + "SPECIES_VIGOROTH", + "SPECIES_TENTACOOL", + "SPECIES_MAROWAK", + "SPECIES_MAGMAR", + "SPECIES_TOXICROAK", + "SPECIES_PURUGLY", + "SPECIES_GLISCOR", + "SPECIES_BAGON", + "SPECIES_LUXRAY", + "SPECIES_GIRAFARIG", + "SPECIES_NOCTOWL", + "SPECIES_JYNX", + "SPECIES_GENGAR", + "SPECIES_KABUTOPS", + "SPECIES_LOUDRED", + "SPECIES_ZANGOOSE", + "SPECIES_MANECTRIC", + "SPECIES_CLEFABLE", + "SPECIES_LATIAS", + "SPECIES_PIDGEOT", + "SPECIES_SPHEAL", + "SPECIES_DODUO", + "SPECIES_BRELOOM", + "SPECIES_SEAKING", + "SPECIES_VESPIQUEN", + "SPECIES_FEAROW", + "SPECIES_SUDOWOODO", + "SPECIES_YANMA", + "SPECIES_SKUNTANK", + "SPECIES_TOGEKISS", + "SPECIES_MIGHTYENA", + "SPECIES_PORYGON", + "SPECIES_SLOWPOKE", + "SPECIES_LEDIAN", + "SPECIES_TANGELA", + "SPECIES_OMASTAR", + "SPECIES_SLUGMA", + "SPECIES_HOUNDOOM", + "SPECIES_CHANSEY", + "SPECIES_STARYU", + "SPECIES_WEAVILE", + "SPECIES_PORYGON_Z", + "SPECIES_POLITOED", + "SPECIES_ARIADOS", + "SPECIES_PHANPY", + "SPECIES_FLOATZEL", + "SPECIES_DUGTRIO", + "SPECIES_LOPUNNY", + "SPECIES_CRAWDAUNT", + "SPECIES_DELCATTY", + "SPECIES_FURRET", + "SPECIES_PORYGON2", + "SPECIES_LINOONE", + "SPECIES_LOMBRE", + "SPECIES_DROWZEE", + "SPECIES_BUTTERFREE", + "SPECIES_PERSIAN", + "SPECIES_PRIMEAPE", + "SPECIES_DUSTOX", + "SPECIES_MEDICHAM", + "SPECIES_BIBAREL", + "SPECIES_CRANIDOS", + "SPECIES_SPOINK", + "SPECIES_DUSCLOPS", + "SPECIES_LUXIO", + "SPECIES_PIDGEOTTO", + "SPECIES_RAICHU", + "SPECIES_VENONAT", + "SPECIES_PONYTA", + "SPECIES_GRIMER", + "SPECIES_MUK", + "SPECIES_ELECTABUZZ", + "SPECIES_GASTRODON", + "SPECIES_BEEDRILL", + "SPECIES_SANDSLASH", + "SPECIES_PARASECT", + "SPECIES_BUIZEL", + "SPECIES_VAPOREON", + "SPECIES_AZUMARILL", + "SPECIES_WOBBUFFET", + "SPECIES_OCTILLERY", + "SPECIES_BEAUTIFLY", + "SPECIES_MANKEY", + "SPECIES_SNEASEL", + "SPECIES_MARSHTOMP", + "SPECIES_NUZLEAF", + "SPECIES_PELIPPER", + "SPECIES_HONCHKROW", + "SPECIES_UMBREON", + "SPECIES_HUNTAIL", + "SPECIES_CARNIVINE", + "SPECIES_FROSLASS", + "SPECIES_ESPEON", + "SPECIES_GLACEON", + "SPECIES_KRICKETUNE", + "SPECIES_LEAFEON", + "SPECIES_SEADRA", + "SPECIES_FLAREON", + "SPECIES_CROCONAW", + "SPECIES_STARAPTOR", + "SPECIES_JOLTEON", + "SPECIES_HAPPINY", + "SPECIES_SLAKOTH", + "SPECIES_NUMEL", + "SPECIES_LUMINEON", + "SPECIES_LILEEP", + "SPECIES_WHISCASH", + "SPECIES_ELEKID", + "SPECIES_RELICANTH", + "SPECIES_MOTHIM", + "SPECIES_PRINPLUP", + "SPECIES_CROAGUNK", + "SPECIES_GOREBYSS", + "SPECIES_WARTORTLE", + "SPECIES_LANTURN", + "SPECIES_KECLEON", + "SPECIES_MONFERNO", + "SPECIES_GROVYLE", + "SPECIES_BALTOY", + "SPECIES_MAGBY", + "SPECIES_HOOTHOOT", + "SPECIES_TYROGUE", + "SPECIES_CARVANHA", + "SPECIES_ALTARIA", + "SPECIES_SHUCKLE", + "SPECIES_GIBLE", + "SPECIES_AMBIPOM", + "SPECIES_KIRLIA", + "SPECIES_RIOLU", + "SPECIES_NIDORINA", + "SPECIES_POLIWHIRL", + "SPECIES_GEODUDE", + "SPECIES_BIDOOF", + "SPECIES_NINETALES", + "SPECIES_SWELLOW", + "SPECIES_PSYDUCK", + "SPECIES_NIDORINO", + "SPECIES_ABRA", + "SPECIES_MACHOP", + "SPECIES_COMBUSKEN", + "SPECIES_STUNKY", + "SPECIES_CHARMELEON", + "SPECIES_GROWLITHE", + "SPECIES_QUILAVA", + "SPECIES_VILEPLUME", + "SPECIES_RATICATE", + "SPECIES_VOLBEAT", + "SPECIES_ILLUMISE", + "SPECIES_ZIGZAGOON", + "SPECIES_SNORUNT", + "SPECIES_DRAGONAIR", + "SPECIES_WHISMUR", + "SPECIES_DELIBIRD", + "SPECIES_BAYLEEF", + "SPECIES_VICTREEBEL", + "SPECIES_STARAVIA", + "SPECIES_VIBRAVA", + "SPECIES_ELECTRIKE", + "SPECIES_FARFETCHD", + "SPECIES_GOLDEEN", + "SPECIES_XATU", + "SPECIES_TRAPINCH", + "SPECIES_DUSKULL", + "SPECIES_DRIFBLIM", + "SPECIES_BONSLY", + "SPECIES_ROSERADE", + "SPECIES_DUNSPARCE", + "SPECIES_WYNAUT", + "SPECIES_POOCHYENA", + "SPECIES_FLAAFFY", + "SPECIES_IVYSAUR", + "SPECIES_MIME_JR", + "SPECIES_VENOMOTH", + "SPECIES_ANORITH", + "SPECIES_BANETTE", + "SPECIES_POLIWAG", + "SPECIES_SANDSHREW", + "SPECIES_WIGGLYTUFF", + "SPECIES_CHINCHOU", + "SPECIES_REMORAID", + "SPECIES_NINJASK", + "SPECIES_SKORUPI", + "SPECIES_KABUTO", + "SPECIES_AIPOM", + "SPECIES_CASCOON", + "SPECIES_MAWILE", + "SPECIES_CORPHISH", + "SPECIES_MEDITITE", + "SPECIES_SKITTY", + "SPECIES_SABLEYE", + "SPECIES_LEDYBA", + "SPECIES_HOUNDOUR", + "SPECIES_VOLTORB", + "SPECIES_GULPIN", + "SPECIES_TURTWIG", + "SPECIES_KAKUNA", + "SPECIES_MAGIKARP", + "SPECIES_SILCOON", + "SPECIES_METAPOD", + "SPECIES_VULPIX", + "SPECIES_WEEZING", + "SPECIES_TOTODILE", + "SPECIES_WINGULL", + "SPECIES_SHINX", + "SPECIES_CHERRIM", + "SPECIES_SQUIRTLE", + "SPECIES_NIDORAN_M", + "SPECIES_TEDDIURSA", + "SPECIES_LUVDISC", + "SPECIES_GLOOM", + "SPECIES_CHARMANDER", + "SPECIES_SPINARAK", + "SPECIES_MARILL", + "SPECIES_SUNFLORA", + "SPECIES_WOOPER", + "SPECIES_HORSEA", + "SPECIES_CYNDAQUIL", + "SPECIES_MAREEP", + "SPECIES_SNUBBULL", + "SPECIES_MUDKIP", + "SPECIES_CLEFAIRY", + "SPECIES_ZUBAT", + "SPECIES_OMANYTE", + "SPECIES_FEEBAS", + "SPECIES_PINECO", + "SPECIES_NIDORAN_F", + "SPECIES_FINNEON", + "SPECIES_BULBASAUR", + "SPECIES_EKANS", + "SPECIES_RALTS", + "SPECIES_KRABBY", + "SPECIES_CUBONE", + "SPECIES_EEVEE", + "SPECIES_SWINUB", + "SPECIES_WORMADAM", + "SPECIES_WEEPINBELL", + "SPECIES_CHIKORITA", + "SPECIES_SHELLOS", + "SPECIES_CHIMCHAR", + "SPECIES_PIKACHU", + "SPECIES_MAGNEMITE", + "SPECIES_SENTRET", + "SPECIES_SMOOCHUM", + "SPECIES_BELLOSSOM", + "SPECIES_JIGGLYPUFF", + "SPECIES_NINCADA", + "SPECIES_COMBEE", + "SPECIES_BUNEARY", + "SPECIES_ODDISH", + "SPECIES_PARAS", + "SPECIES_PIPLUP", + "SPECIES_UNOWN", + "SPECIES_CORSOLA", + "SPECIES_CELEBI", + "SPECIES_TREECKO", + "SPECIES_SPINDA", + "SPECIES_SHROOMISH", + "SPECIES_MISMAGIUS", + "SPECIES_MEOWTH", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_BELLSPROUT", + "SPECIES_SHELLDER", + "SPECIES_DITTO", + "SPECIES_MEW", + "SPECIES_SEEDOT", + "SPECIES_QWILFISH", + "SPECIES_PACHIRISU", + "SPECIES_GLAMEOW", + "SPECIES_WURMPLE", + "SPECIES_MASQUERAIN", + "SPECIES_RATTATA", + "SPECIES_BURMY", + "SPECIES_DRATINI", + "SPECIES_CHERUBI", + "SPECIES_WEEDLE", + "SPECIES_TOGETIC", + "SPECIES_PHIONE", + "SPECIES_CLEFFA", + "SPECIES_JUMPLUFF", + "SPECIES_CATERPIE", + "SPECIES_LOTAD", + "SPECIES_EXEGGCUTE", + "SPECIES_TORCHIC", + "SPECIES_TAILLOW", + "SPECIES_SHUPPET", + "SPECIES_KRICKETOT", + "SPECIES_MURKROW", + "SPECIES_SHAYMIN", + "SPECIES_SPEAROW", + "SPECIES_PICHU", + "SPECIES_NATU", + "SPECIES_AZURILL", + "SPECIES_ROSELIA", + "SPECIES_STARLY", + "SPECIES_BARBOACH", + "SPECIES_CHATOT", + "SPECIES_PIDGEY", + "SPECIES_SUNKERN", + "SPECIES_SURSKIT", + "SPECIES_TOGEPI", + "SPECIES_MANAPHY", + "SPECIES_SHEDINJA", + "SPECIES_SWABLU", + "SPECIES_BUDEW", + "SPECIES_DRIFLOON", + "SPECIES_JIRACHI", + "SPECIES_KOFFING", + "SPECIES_IGGLYBUFF", + "SPECIES_SKIPLOOM", + "SPECIES_MISDREAVUS", + "SPECIES_CHIMECHO", + "SPECIES_DIGLETT", + "SPECIES_CASTFORM", + "SPECIES_CHINGLING", + "SPECIES_HOPPIP", + "SPECIES_ROTOM", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_GASTLY", + "SPECIES_HAUNTER" + ], + "origin": [ + "SPECIES_GROUDON", + "SPECIES_GIRATINA", + "SPECIES_DIALGA", + "SPECIES_METAGROSS", + "SPECIES_SNORLAX", + "SPECIES_HEATRAN", + "SPECIES_REGIGIGAS", + "SPECIES_STEELIX", + "SPECIES_WAILORD", + "SPECIES_AGGRON", + "SPECIES_KYOGRE", + "SPECIES_PROBOPASS", + "SPECIES_PALKIA", + "SPECIES_ARCEUS", + "SPECIES_TORTERRA", + "SPECIES_GOLEM", + "SPECIES_HIPPOWDON", + "SPECIES_MAMOSWINE", + "SPECIES_RHYPERIOR", + "SPECIES_GLALIE", + "SPECIES_HARIYAMA", + "SPECIES_GYARADOS", + "SPECIES_REGIROCK", + "SPECIES_LAPRAS", + "SPECIES_MANTINE", + "SPECIES_CAMERUPT", + "SPECIES_LUGIA", + "SPECIES_ONIX", + "SPECIES_DRAGONITE", + "SPECIES_RAYQUAZA", + "SPECIES_REGISTEEL", + "SPECIES_METANG", + "SPECIES_TYRANITAR", + "SPECIES_HO_OH", + "SPECIES_ENTEI", + "SPECIES_SUICUNE", + "SPECIES_BRONZONG", + "SPECIES_MAGNEZONE", + "SPECIES_RAIKOU", + "SPECIES_REGICE", + "SPECIES_LUNATONE", + "SPECIES_MILOTIC", + "SPECIES_ARCANINE", + "SPECIES_SOLROCK", + "SPECIES_KINGDRA", + "SPECIES_PUPITAR", + "SPECIES_WALREIN", + "SPECIES_BASTIODON", + "SPECIES_LICKILICKY", + "SPECIES_ELECTIVIRE", + "SPECIES_ABOMASNOW", + "SPECIES_CLOYSTER", + "SPECIES_SLAKING", + "SPECIES_MACHAMP", + "SPECIES_WAILMER", + "SPECIES_TANGROWTH", + "SPECIES_FORRETRESS", + "SPECIES_URSARING", + "SPECIES_MEWTWO", + "SPECIES_DEWGONG", + "SPECIES_EXEGGUTOR", + "SPECIES_RHYDON", + "SPECIES_DONPHAN", + "SPECIES_LAIRON", + "SPECIES_SCIZOR", + "SPECIES_RHYHORN", + "SPECIES_SHELGON", + "SPECIES_CLAYDOL", + "SPECIES_SPIRITOMB", + "SPECIES_DUSKNOIR", + "SPECIES_GRAVELER", + "SPECIES_MUNCHLAX", + "SPECIES_SALAMENCE", + "SPECIES_RAMPARDOS", + "SPECIES_MEGANIUM", + "SPECIES_VENUSAUR", + "SPECIES_TROPIUS", + "SPECIES_NOSEPASS", + "SPECIES_GROTLE", + "SPECIES_BELDUM", + "SPECIES_RAPIDASH", + "SPECIES_GARCHOMP", + "SPECIES_CHARIZARD", + "SPECIES_SEEL", + "SPECIES_FERALIGATR", + "SPECIES_SHARPEDO", + "SPECIES_TAUROS", + "SPECIES_SEALEO", + "SPECIES_MAKUHITA", + "SPECIES_CRESSELIA", + "SPECIES_BLASTOISE", + "SPECIES_DODRIO", + "SPECIES_EMPOLEON", + "SPECIES_EXPLOUD", + "SPECIES_FLYGON", + "SPECIES_SWAMPERT", + "SPECIES_TORKOAL", + "SPECIES_KANGASKHAN", + "SPECIES_STARMIE", + "SPECIES_SWALOT", + "SPECIES_TYPHLOSION", + "SPECIES_SLOWKING", + "SPECIES_SLOWBRO", + "SPECIES_CACTURNE", + "SPECIES_GOLDUCK", + "SPECIES_HYPNO", + "SPECIES_MILTANK", + "SPECIES_CROBAT", + "SPECIES_QUAGSIRE", + "SPECIES_LARVITAR", + "SPECIES_GRUMPIG", + "SPECIES_STANTLER", + "SPECIES_MACHOKE", + "SPECIES_ARMALDO", + "SPECIES_MAGMORTAR", + "SPECIES_ELECTRODE", + "SPECIES_LICKITUNG", + "SPECIES_ARBOK", + "SPECIES_MANTYKE", + "SPECIES_GLIGAR", + "SPECIES_NIDOKING", + "SPECIES_AMPHAROS", + "SPECIES_DRAPION", + "SPECIES_DEOXYS", + "SPECIES_BRONZOR", + "SPECIES_CRADILY", + "SPECIES_NIDOQUEEN", + "SPECIES_MAGNETON", + "SPECIES_KINGLER", + "SPECIES_MOLTRES", + "SPECIES_ARON", + "SPECIES_LATIOS", + "SPECIES_SHIFTRY", + "SPECIES_AERODACTYL", + "SPECIES_SMEARGLE", + "SPECIES_SHIELDON", + "SPECIES_KADABRA", + "SPECIES_SCYTHER", + "SPECIES_GABITE", + "SPECIES_PILOSWINE", + "SPECIES_ARTICUNO", + "SPECIES_GOLBAT", + "SPECIES_TENTACRUEL", + "SPECIES_PINSIR", + "SPECIES_MAGCARGO", + "SPECIES_LUDICOLO", + "SPECIES_INFERNAPE", + "SPECIES_MR_MIME", + "SPECIES_POLIWRATH", + "SPECIES_HERACROSS", + "SPECIES_LUCARIO", + "SPECIES_ZAPDOS", + "SPECIES_SEVIPER", + "SPECIES_CLAMPERL", + "SPECIES_SCEPTILE", + "SPECIES_BLAZIKEN", + "SPECIES_GALLADE", + "SPECIES_YANMEGA", + "SPECIES_CACNEA", + "SPECIES_SKARMORY", + "SPECIES_SNOVER", + "SPECIES_DARKRAI", + "SPECIES_HITMONCHAN", + "SPECIES_HITMONLEE", + "SPECIES_HIPPOPOTAS", + "SPECIES_GRANBULL", + "SPECIES_GARDEVOIR", + "SPECIES_ALAKAZAM", + "SPECIES_HITMONTOP", + "SPECIES_ABSOL", + "SPECIES_BLISSEY", + "SPECIES_VIGOROTH", + "SPECIES_TENTACOOL", + "SPECIES_MAROWAK", + "SPECIES_MAGMAR", + "SPECIES_TOXICROAK", + "SPECIES_PURUGLY", + "SPECIES_GLISCOR", + "SPECIES_BAGON", + "SPECIES_LUXRAY", + "SPECIES_GIRAFARIG", + "SPECIES_NOCTOWL", + "SPECIES_JYNX", + "SPECIES_GENGAR", + "SPECIES_KABUTOPS", + "SPECIES_LOUDRED", + "SPECIES_ZANGOOSE", + "SPECIES_MANECTRIC", + "SPECIES_CLEFABLE", + "SPECIES_LATIAS", + "SPECIES_PIDGEOT", + "SPECIES_SPHEAL", + "SPECIES_DODUO", + "SPECIES_BRELOOM", + "SPECIES_SEAKING", + "SPECIES_VESPIQUEN", + "SPECIES_FEAROW", + "SPECIES_SUDOWOODO", + "SPECIES_YANMA", + "SPECIES_SKUNTANK", + "SPECIES_TOGEKISS", + "SPECIES_MIGHTYENA", + "SPECIES_PORYGON", + "SPECIES_SLOWPOKE", + "SPECIES_LEDIAN", + "SPECIES_TANGELA", + "SPECIES_OMASTAR", + "SPECIES_SLUGMA", + "SPECIES_HOUNDOOM", + "SPECIES_CHANSEY", + "SPECIES_STARYU", + "SPECIES_WEAVILE", + "SPECIES_PORYGON_Z", + "SPECIES_POLITOED", + "SPECIES_ARIADOS", + "SPECIES_PHANPY", + "SPECIES_FLOATZEL", + "SPECIES_DUGTRIO", + "SPECIES_LOPUNNY", + "SPECIES_CRAWDAUNT", + "SPECIES_DELCATTY", + "SPECIES_FURRET", + "SPECIES_PORYGON2", + "SPECIES_LINOONE", + "SPECIES_LOMBRE", + "SPECIES_DROWZEE", + "SPECIES_BUTTERFREE", + "SPECIES_PERSIAN", + "SPECIES_PRIMEAPE", + "SPECIES_DUSTOX", + "SPECIES_MEDICHAM", + "SPECIES_BIBAREL", + "SPECIES_CRANIDOS", + "SPECIES_SPOINK", + "SPECIES_DUSCLOPS", + "SPECIES_LUXIO", + "SPECIES_PIDGEOTTO", + "SPECIES_RAICHU", + "SPECIES_VENONAT", + "SPECIES_PONYTA", + "SPECIES_GRIMER", + "SPECIES_MUK", + "SPECIES_ELECTABUZZ", + "SPECIES_GASTRODON", + "SPECIES_BEEDRILL", + "SPECIES_SANDSLASH", + "SPECIES_PARASECT", + "SPECIES_BUIZEL", + "SPECIES_VAPOREON", + "SPECIES_AZUMARILL", + "SPECIES_WOBBUFFET", + "SPECIES_OCTILLERY", + "SPECIES_BEAUTIFLY", + "SPECIES_MANKEY", + "SPECIES_SNEASEL", + "SPECIES_MARSHTOMP", + "SPECIES_NUZLEAF", + "SPECIES_PELIPPER", + "SPECIES_HONCHKROW", + "SPECIES_UMBREON", + "SPECIES_HUNTAIL", + "SPECIES_CARNIVINE", + "SPECIES_FROSLASS", + "SPECIES_ESPEON", + "SPECIES_GLACEON", + "SPECIES_KRICKETUNE", + "SPECIES_LEAFEON", + "SPECIES_SEADRA", + "SPECIES_FLAREON", + "SPECIES_CROCONAW", + "SPECIES_STARAPTOR", + "SPECIES_JOLTEON", + "SPECIES_HAPPINY", + "SPECIES_SLAKOTH", + "SPECIES_NUMEL", + "SPECIES_LUMINEON", + "SPECIES_LILEEP", + "SPECIES_WHISCASH", + "SPECIES_ELEKID", + "SPECIES_RELICANTH", + "SPECIES_MOTHIM", + "SPECIES_PRINPLUP", + "SPECIES_CROAGUNK", + "SPECIES_GOREBYSS", + "SPECIES_WARTORTLE", + "SPECIES_LANTURN", + "SPECIES_KECLEON", + "SPECIES_MONFERNO", + "SPECIES_GROVYLE", + "SPECIES_BALTOY", + "SPECIES_MAGBY", + "SPECIES_HOOTHOOT", + "SPECIES_TYROGUE", + "SPECIES_CARVANHA", + "SPECIES_ALTARIA", + "SPECIES_SHUCKLE", + "SPECIES_GIBLE", + "SPECIES_AMBIPOM", + "SPECIES_KIRLIA", + "SPECIES_RIOLU", + "SPECIES_NIDORINA", + "SPECIES_POLIWHIRL", + "SPECIES_GEODUDE", + "SPECIES_BIDOOF", + "SPECIES_NINETALES", + "SPECIES_SWELLOW", + "SPECIES_PSYDUCK", + "SPECIES_NIDORINO", + "SPECIES_ABRA", + "SPECIES_MACHOP", + "SPECIES_COMBUSKEN", + "SPECIES_STUNKY", + "SPECIES_CHARMELEON", + "SPECIES_GROWLITHE", + "SPECIES_QUILAVA", + "SPECIES_VILEPLUME", + "SPECIES_RATICATE", + "SPECIES_VOLBEAT", + "SPECIES_ILLUMISE", + "SPECIES_ZIGZAGOON", + "SPECIES_SNORUNT", + "SPECIES_DRAGONAIR", + "SPECIES_WHISMUR", + "SPECIES_DELIBIRD", + "SPECIES_BAYLEEF", + "SPECIES_VICTREEBEL", + "SPECIES_STARAVIA", + "SPECIES_VIBRAVA", + "SPECIES_ELECTRIKE", + "SPECIES_FARFETCHD", + "SPECIES_GOLDEEN", + "SPECIES_XATU", + "SPECIES_TRAPINCH", + "SPECIES_DUSKULL", + "SPECIES_DRIFBLIM", + "SPECIES_BONSLY", + "SPECIES_ROSERADE", + "SPECIES_DUNSPARCE", + "SPECIES_WYNAUT", + "SPECIES_POOCHYENA", + "SPECIES_FLAAFFY", + "SPECIES_IVYSAUR", + "SPECIES_MIME_JR", + "SPECIES_VENOMOTH", + "SPECIES_ANORITH", + "SPECIES_BANETTE", + "SPECIES_POLIWAG", + "SPECIES_SANDSHREW", + "SPECIES_WIGGLYTUFF", + "SPECIES_CHINCHOU", + "SPECIES_REMORAID", + "SPECIES_NINJASK", + "SPECIES_SKORUPI", + "SPECIES_KABUTO", + "SPECIES_AIPOM", + "SPECIES_CASCOON", + "SPECIES_MAWILE", + "SPECIES_CORPHISH", + "SPECIES_MEDITITE", + "SPECIES_SKITTY", + "SPECIES_SABLEYE", + "SPECIES_LEDYBA", + "SPECIES_HOUNDOUR", + "SPECIES_VOLTORB", + "SPECIES_GULPIN", + "SPECIES_TURTWIG", + "SPECIES_KAKUNA", + "SPECIES_MAGIKARP", + "SPECIES_SILCOON", + "SPECIES_METAPOD", + "SPECIES_VULPIX", + "SPECIES_WEEZING", + "SPECIES_TOTODILE", + "SPECIES_WINGULL", + "SPECIES_SHINX", + "SPECIES_CHERRIM", + "SPECIES_SQUIRTLE", + "SPECIES_NIDORAN_M", + "SPECIES_TEDDIURSA", + "SPECIES_LUVDISC", + "SPECIES_GLOOM", + "SPECIES_CHARMANDER", + "SPECIES_SPINARAK", + "SPECIES_MARILL", + "SPECIES_SUNFLORA", + "SPECIES_WOOPER", + "SPECIES_HORSEA", + "SPECIES_CYNDAQUIL", + "SPECIES_MAREEP", + "SPECIES_SNUBBULL", + "SPECIES_MUDKIP", + "SPECIES_CLEFAIRY", + "SPECIES_ZUBAT", + "SPECIES_OMANYTE", + "SPECIES_FEEBAS", + "SPECIES_PINECO", + "SPECIES_NIDORAN_F", + "SPECIES_FINNEON", + "SPECIES_BULBASAUR", + "SPECIES_EKANS", + "SPECIES_RALTS", + "SPECIES_KRABBY", + "SPECIES_CUBONE", + "SPECIES_EEVEE", + "SPECIES_SWINUB", + "SPECIES_WORMADAM", + "SPECIES_WEEPINBELL", + "SPECIES_CHIKORITA", + "SPECIES_SHELLOS", + "SPECIES_CHIMCHAR", + "SPECIES_PIKACHU", + "SPECIES_MAGNEMITE", + "SPECIES_SENTRET", + "SPECIES_SMOOCHUM", + "SPECIES_BELLOSSOM", + "SPECIES_JIGGLYPUFF", + "SPECIES_NINCADA", + "SPECIES_COMBEE", + "SPECIES_BUNEARY", + "SPECIES_ODDISH", + "SPECIES_PARAS", + "SPECIES_PIPLUP", + "SPECIES_UNOWN", + "SPECIES_CORSOLA", + "SPECIES_CELEBI", + "SPECIES_TREECKO", + "SPECIES_SPINDA", + "SPECIES_SHROOMISH", + "SPECIES_MISMAGIUS", + "SPECIES_MEOWTH", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_BELLSPROUT", + "SPECIES_SHELLDER", + "SPECIES_DITTO", + "SPECIES_MEW", + "SPECIES_SEEDOT", + "SPECIES_QWILFISH", + "SPECIES_PACHIRISU", + "SPECIES_GLAMEOW", + "SPECIES_WURMPLE", + "SPECIES_MASQUERAIN", + "SPECIES_RATTATA", + "SPECIES_BURMY", + "SPECIES_DRATINI", + "SPECIES_CHERUBI", + "SPECIES_WEEDLE", + "SPECIES_TOGETIC", + "SPECIES_PHIONE", + "SPECIES_CLEFFA", + "SPECIES_JUMPLUFF", + "SPECIES_CATERPIE", + "SPECIES_LOTAD", + "SPECIES_EXEGGCUTE", + "SPECIES_TORCHIC", + "SPECIES_TAILLOW", + "SPECIES_SHUPPET", + "SPECIES_KRICKETOT", + "SPECIES_MURKROW", + "SPECIES_SHAYMIN", + "SPECIES_SPEAROW", + "SPECIES_PICHU", + "SPECIES_NATU", + "SPECIES_AZURILL", + "SPECIES_ROSELIA", + "SPECIES_STARLY", + "SPECIES_BARBOACH", + "SPECIES_CHATOT", + "SPECIES_PIDGEY", + "SPECIES_SUNKERN", + "SPECIES_SURSKIT", + "SPECIES_TOGEPI", + "SPECIES_MANAPHY", + "SPECIES_SHEDINJA", + "SPECIES_SWABLU", + "SPECIES_BUDEW", + "SPECIES_DRIFLOON", + "SPECIES_JIRACHI", + "SPECIES_KOFFING", + "SPECIES_IGGLYBUFF", + "SPECIES_SKIPLOOM", + "SPECIES_MISDREAVUS", + "SPECIES_CHIMECHO", + "SPECIES_DIGLETT", + "SPECIES_CASTFORM", + "SPECIES_CHINGLING", + "SPECIES_HOPPIP", + "SPECIES_ROTOM", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_GASTLY", + "SPECIES_HAUNTER" + ] + } + }, + { + "id": "lightest", + "mons": { + "altered": [ + "SPECIES_GASTLY", + "SPECIES_HAUNTER", + "SPECIES_ROTOM", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_HOPPIP", + "SPECIES_CHINGLING", + "SPECIES_DIGLETT", + "SPECIES_CASTFORM", + "SPECIES_KOFFING", + "SPECIES_IGGLYBUFF", + "SPECIES_SKIPLOOM", + "SPECIES_MISDREAVUS", + "SPECIES_CHIMECHO", + "SPECIES_JIRACHI", + "SPECIES_SHEDINJA", + "SPECIES_SWABLU", + "SPECIES_BUDEW", + "SPECIES_DRIFLOON", + "SPECIES_MANAPHY", + "SPECIES_TOGEPI", + "SPECIES_SURSKIT", + "SPECIES_PIDGEY", + "SPECIES_SUNKERN", + "SPECIES_BARBOACH", + "SPECIES_CHATOT", + "SPECIES_SPEAROW", + "SPECIES_PICHU", + "SPECIES_NATU", + "SPECIES_AZURILL", + "SPECIES_ROSELIA", + "SPECIES_STARLY", + "SPECIES_MURKROW", + "SPECIES_SHAYMIN", + "SPECIES_KRICKETOT", + "SPECIES_TAILLOW", + "SPECIES_SHUPPET", + "SPECIES_EXEGGCUTE", + "SPECIES_TORCHIC", + "SPECIES_LOTAD", + "SPECIES_CATERPIE", + "SPECIES_CLEFFA", + "SPECIES_JUMPLUFF", + "SPECIES_PHIONE", + "SPECIES_WEEDLE", + "SPECIES_TOGETIC", + "SPECIES_DRATINI", + "SPECIES_CHERUBI", + "SPECIES_BURMY", + "SPECIES_RATTATA", + "SPECIES_WURMPLE", + "SPECIES_MASQUERAIN", + "SPECIES_QWILFISH", + "SPECIES_PACHIRISU", + "SPECIES_GLAMEOW", + "SPECIES_BELLSPROUT", + "SPECIES_SHELLDER", + "SPECIES_DITTO", + "SPECIES_MEW", + "SPECIES_SEEDOT", + "SPECIES_MEOWTH", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_MISMAGIUS", + "SPECIES_SHROOMISH", + "SPECIES_UNOWN", + "SPECIES_CORSOLA", + "SPECIES_CELEBI", + "SPECIES_TREECKO", + "SPECIES_SPINDA", + "SPECIES_PIPLUP", + "SPECIES_ODDISH", + "SPECIES_PARAS", + "SPECIES_JIGGLYPUFF", + "SPECIES_NINCADA", + "SPECIES_COMBEE", + "SPECIES_BUNEARY", + "SPECIES_BELLOSSOM", + "SPECIES_PIKACHU", + "SPECIES_MAGNEMITE", + "SPECIES_SENTRET", + "SPECIES_SMOOCHUM", + "SPECIES_CHIMCHAR", + "SPECIES_SHELLOS", + "SPECIES_WEEPINBELL", + "SPECIES_CHIKORITA", + "SPECIES_KRABBY", + "SPECIES_CUBONE", + "SPECIES_EEVEE", + "SPECIES_SWINUB", + "SPECIES_WORMADAM", + "SPECIES_RALTS", + "SPECIES_BULBASAUR", + "SPECIES_EKANS", + "SPECIES_NIDORAN_F", + "SPECIES_FINNEON", + "SPECIES_PINECO", + "SPECIES_FEEBAS", + "SPECIES_CLEFAIRY", + "SPECIES_ZUBAT", + "SPECIES_OMANYTE", + "SPECIES_MUDKIP", + "SPECIES_MAREEP", + "SPECIES_SNUBBULL", + "SPECIES_CYNDAQUIL", + "SPECIES_HORSEA", + "SPECIES_CHARMANDER", + "SPECIES_SPINARAK", + "SPECIES_MARILL", + "SPECIES_SUNFLORA", + "SPECIES_WOOPER", + "SPECIES_GLOOM", + "SPECIES_LUVDISC", + "SPECIES_TEDDIURSA", + "SPECIES_SQUIRTLE", + "SPECIES_NIDORAN_M", + "SPECIES_CHERRIM", + "SPECIES_WEEZING", + "SPECIES_TOTODILE", + "SPECIES_WINGULL", + "SPECIES_SHINX", + "SPECIES_METAPOD", + "SPECIES_VULPIX", + "SPECIES_KAKUNA", + "SPECIES_MAGIKARP", + "SPECIES_SILCOON", + "SPECIES_TURTWIG", + "SPECIES_GULPIN", + "SPECIES_VOLTORB", + "SPECIES_LEDYBA", + "SPECIES_HOUNDOUR", + "SPECIES_SKITTY", + "SPECIES_SABLEYE", + "SPECIES_MEDITITE", + "SPECIES_KABUTO", + "SPECIES_AIPOM", + "SPECIES_CASCOON", + "SPECIES_MAWILE", + "SPECIES_CORPHISH", + "SPECIES_SANDSHREW", + "SPECIES_WIGGLYTUFF", + "SPECIES_CHINCHOU", + "SPECIES_REMORAID", + "SPECIES_NINJASK", + "SPECIES_SKORUPI", + "SPECIES_POLIWAG", + "SPECIES_VENOMOTH", + "SPECIES_ANORITH", + "SPECIES_BANETTE", + "SPECIES_IVYSAUR", + "SPECIES_MIME_JR", + "SPECIES_FLAAFFY", + "SPECIES_POOCHYENA", + "SPECIES_DUNSPARCE", + "SPECIES_WYNAUT", + "SPECIES_ROSERADE", + "SPECIES_FARFETCHD", + "SPECIES_GOLDEEN", + "SPECIES_XATU", + "SPECIES_TRAPINCH", + "SPECIES_DUSKULL", + "SPECIES_DRIFBLIM", + "SPECIES_BONSLY", + "SPECIES_ELECTRIKE", + "SPECIES_VIBRAVA", + "SPECIES_VICTREEBEL", + "SPECIES_STARAVIA", + "SPECIES_BAYLEEF", + "SPECIES_DELIBIRD", + "SPECIES_WHISMUR", + "SPECIES_DRAGONAIR", + "SPECIES_SNORUNT", + "SPECIES_ZIGZAGOON", + "SPECIES_VOLBEAT", + "SPECIES_ILLUMISE", + "SPECIES_RATICATE", + "SPECIES_VILEPLUME", + "SPECIES_CHARMELEON", + "SPECIES_GROWLITHE", + "SPECIES_QUILAVA", + "SPECIES_STUNKY", + "SPECIES_NIDORINO", + "SPECIES_ABRA", + "SPECIES_MACHOP", + "SPECIES_COMBUSKEN", + "SPECIES_PSYDUCK", + "SPECIES_SWELLOW", + "SPECIES_NINETALES", + "SPECIES_NIDORINA", + "SPECIES_POLIWHIRL", + "SPECIES_GEODUDE", + "SPECIES_BIDOOF", + "SPECIES_KIRLIA", + "SPECIES_RIOLU", + "SPECIES_AMBIPOM", + "SPECIES_SHUCKLE", + "SPECIES_GIBLE", + "SPECIES_ALTARIA", + "SPECIES_CARVANHA", + "SPECIES_TYROGUE", + "SPECIES_HOOTHOOT", + "SPECIES_MAGBY", + "SPECIES_BALTOY", + "SPECIES_GROVYLE", + "SPECIES_KECLEON", + "SPECIES_MONFERNO", + "SPECIES_WARTORTLE", + "SPECIES_LANTURN", + "SPECIES_GOREBYSS", + "SPECIES_PRINPLUP", + "SPECIES_CROAGUNK", + "SPECIES_MOTHIM", + "SPECIES_RELICANTH", + "SPECIES_ELEKID", + "SPECIES_WHISCASH", + "SPECIES_LILEEP", + "SPECIES_SLAKOTH", + "SPECIES_NUMEL", + "SPECIES_LUMINEON", + "SPECIES_HAPPINY", + "SPECIES_JOLTEON", + "SPECIES_STARAPTOR", + "SPECIES_SEADRA", + "SPECIES_FLAREON", + "SPECIES_CROCONAW", + "SPECIES_KRICKETUNE", + "SPECIES_LEAFEON", + "SPECIES_GLACEON", + "SPECIES_ESPEON", + "SPECIES_FROSLASS", + "SPECIES_UMBREON", + "SPECIES_HUNTAIL", + "SPECIES_CARNIVINE", + "SPECIES_HONCHKROW", + "SPECIES_MANKEY", + "SPECIES_SNEASEL", + "SPECIES_MARSHTOMP", + "SPECIES_NUZLEAF", + "SPECIES_PELIPPER", + "SPECIES_BEAUTIFLY", + "SPECIES_AZUMARILL", + "SPECIES_WOBBUFFET", + "SPECIES_OCTILLERY", + "SPECIES_VAPOREON", + "SPECIES_BEEDRILL", + "SPECIES_SANDSLASH", + "SPECIES_PARASECT", + "SPECIES_BUIZEL", + "SPECIES_GASTRODON", + "SPECIES_PIDGEOTTO", + "SPECIES_RAICHU", + "SPECIES_VENONAT", + "SPECIES_PONYTA", + "SPECIES_GRIMER", + "SPECIES_MUK", + "SPECIES_ELECTABUZZ", + "SPECIES_LUXIO", + "SPECIES_SPOINK", + "SPECIES_DUSCLOPS", + "SPECIES_MEDICHAM", + "SPECIES_BIBAREL", + "SPECIES_CRANIDOS", + "SPECIES_DUSTOX", + "SPECIES_BUTTERFREE", + "SPECIES_PERSIAN", + "SPECIES_PRIMEAPE", + "SPECIES_DROWZEE", + "SPECIES_FURRET", + "SPECIES_PORYGON2", + "SPECIES_LINOONE", + "SPECIES_LOMBRE", + "SPECIES_DELCATTY", + "SPECIES_CRAWDAUNT", + "SPECIES_DUGTRIO", + "SPECIES_LOPUNNY", + "SPECIES_ARIADOS", + "SPECIES_PHANPY", + "SPECIES_FLOATZEL", + "SPECIES_POLITOED", + "SPECIES_WEAVILE", + "SPECIES_PORYGON_Z", + "SPECIES_STARYU", + "SPECIES_CHANSEY", + "SPECIES_TANGELA", + "SPECIES_OMASTAR", + "SPECIES_SLUGMA", + "SPECIES_HOUNDOOM", + "SPECIES_LEDIAN", + "SPECIES_SLOWPOKE", + "SPECIES_PORYGON", + "SPECIES_MIGHTYENA", + "SPECIES_FEAROW", + "SPECIES_SUDOWOODO", + "SPECIES_YANMA", + "SPECIES_SKUNTANK", + "SPECIES_TOGEKISS", + "SPECIES_VESPIQUEN", + "SPECIES_SEAKING", + "SPECIES_DODUO", + "SPECIES_BRELOOM", + "SPECIES_PIDGEOT", + "SPECIES_SPHEAL", + "SPECIES_CLEFABLE", + "SPECIES_LATIAS", + "SPECIES_MANECTRIC", + "SPECIES_ZANGOOSE", + "SPECIES_GENGAR", + "SPECIES_KABUTOPS", + "SPECIES_LOUDRED", + "SPECIES_JYNX", + "SPECIES_NOCTOWL", + "SPECIES_GIRAFARIG", + "SPECIES_LUXRAY", + "SPECIES_BAGON", + "SPECIES_GLISCOR", + "SPECIES_PURUGLY", + "SPECIES_TOXICROAK", + "SPECIES_MAGMAR", + "SPECIES_MAROWAK", + "SPECIES_TENTACOOL", + "SPECIES_VIGOROTH", + "SPECIES_BLISSEY", + "SPECIES_ABSOL", + "SPECIES_ALAKAZAM", + "SPECIES_HITMONTOP", + "SPECIES_GARDEVOIR", + "SPECIES_GRANBULL", + "SPECIES_HIPPOPOTAS", + "SPECIES_HITMONLEE", + "SPECIES_HITMONCHAN", + "SPECIES_SKARMORY", + "SPECIES_SNOVER", + "SPECIES_DARKRAI", + "SPECIES_CACNEA", + "SPECIES_YANMEGA", + "SPECIES_BLAZIKEN", + "SPECIES_GALLADE", + "SPECIES_SCEPTILE", + "SPECIES_SEVIPER", + "SPECIES_CLAMPERL", + "SPECIES_ZAPDOS", + "SPECIES_POLIWRATH", + "SPECIES_HERACROSS", + "SPECIES_LUCARIO", + "SPECIES_MR_MIME", + "SPECIES_GOLBAT", + "SPECIES_TENTACRUEL", + "SPECIES_PINSIR", + "SPECIES_MAGCARGO", + "SPECIES_LUDICOLO", + "SPECIES_INFERNAPE", + "SPECIES_ARTICUNO", + "SPECIES_PILOSWINE", + "SPECIES_SCYTHER", + "SPECIES_GABITE", + "SPECIES_KADABRA", + "SPECIES_SHIELDON", + "SPECIES_SMEARGLE", + "SPECIES_AERODACTYL", + "SPECIES_SHIFTRY", + "SPECIES_NIDOQUEEN", + "SPECIES_MAGNETON", + "SPECIES_KINGLER", + "SPECIES_MOLTRES", + "SPECIES_ARON", + "SPECIES_LATIOS", + "SPECIES_CRADILY", + "SPECIES_BRONZOR", + "SPECIES_DEOXYS", + "SPECIES_AMPHAROS", + "SPECIES_DRAPION", + "SPECIES_NIDOKING", + "SPECIES_GLIGAR", + "SPECIES_ARBOK", + "SPECIES_MANTYKE", + "SPECIES_LICKITUNG", + "SPECIES_ELECTRODE", + "SPECIES_MAGMORTAR", + "SPECIES_ARMALDO", + "SPECIES_MACHOKE", + "SPECIES_STANTLER", + "SPECIES_GRUMPIG", + "SPECIES_LARVITAR", + "SPECIES_CROBAT", + "SPECIES_QUAGSIRE", + "SPECIES_MILTANK", + "SPECIES_HYPNO", + "SPECIES_GOLDUCK", + "SPECIES_CACTURNE", + "SPECIES_SLOWBRO", + "SPECIES_TYPHLOSION", + "SPECIES_SLOWKING", + "SPECIES_KANGASKHAN", + "SPECIES_STARMIE", + "SPECIES_SWALOT", + "SPECIES_TORKOAL", + "SPECIES_SWAMPERT", + "SPECIES_FLYGON", + "SPECIES_EXPLOUD", + "SPECIES_EMPOLEON", + "SPECIES_DODRIO", + "SPECIES_BLASTOISE", + "SPECIES_CRESSELIA", + "SPECIES_MAKUHITA", + "SPECIES_SEALEO", + "SPECIES_TAUROS", + "SPECIES_FERALIGATR", + "SPECIES_SHARPEDO", + "SPECIES_SEEL", + "SPECIES_CHARIZARD", + "SPECIES_RAPIDASH", + "SPECIES_GARCHOMP", + "SPECIES_BELDUM", + "SPECIES_NOSEPASS", + "SPECIES_GROTLE", + "SPECIES_VENUSAUR", + "SPECIES_TROPIUS", + "SPECIES_MEGANIUM", + "SPECIES_RAMPARDOS", + "SPECIES_SALAMENCE", + "SPECIES_GRAVELER", + "SPECIES_MUNCHLAX", + "SPECIES_DUSKNOIR", + "SPECIES_CLAYDOL", + "SPECIES_SPIRITOMB", + "SPECIES_SHELGON", + "SPECIES_RHYHORN", + "SPECIES_SCIZOR", + "SPECIES_DEWGONG", + "SPECIES_EXEGGUTOR", + "SPECIES_RHYDON", + "SPECIES_DONPHAN", + "SPECIES_LAIRON", + "SPECIES_MEWTWO", + "SPECIES_FORRETRESS", + "SPECIES_URSARING", + "SPECIES_TANGROWTH", + "SPECIES_MACHAMP", + "SPECIES_WAILMER", + "SPECIES_SLAKING", + "SPECIES_CLOYSTER", + "SPECIES_ABOMASNOW", + "SPECIES_ELECTIVIRE", + "SPECIES_LICKILICKY", + "SPECIES_BASTIODON", + "SPECIES_WALREIN", + "SPECIES_KINGDRA", + "SPECIES_PUPITAR", + "SPECIES_SOLROCK", + "SPECIES_ARCANINE", + "SPECIES_MILOTIC", + "SPECIES_LUNATONE", + "SPECIES_REGICE", + "SPECIES_RAIKOU", + "SPECIES_MAGNEZONE", + "SPECIES_SUICUNE", + "SPECIES_BRONZONG", + "SPECIES_ENTEI", + "SPECIES_HO_OH", + "SPECIES_TYRANITAR", + "SPECIES_METANG", + "SPECIES_REGISTEEL", + "SPECIES_RAYQUAZA", + "SPECIES_ONIX", + "SPECIES_DRAGONITE", + "SPECIES_LUGIA", + "SPECIES_LAPRAS", + "SPECIES_MANTINE", + "SPECIES_CAMERUPT", + "SPECIES_REGIROCK", + "SPECIES_GYARADOS", + "SPECIES_HARIYAMA", + "SPECIES_GLALIE", + "SPECIES_RHYPERIOR", + "SPECIES_MAMOSWINE", + "SPECIES_GOLEM", + "SPECIES_HIPPOWDON", + "SPECIES_TORTERRA", + "SPECIES_ARCEUS", + "SPECIES_PALKIA", + "SPECIES_PROBOPASS", + "SPECIES_KYOGRE", + "SPECIES_AGGRON", + "SPECIES_WAILORD", + "SPECIES_STEELIX", + "SPECIES_REGIGIGAS", + "SPECIES_HEATRAN", + "SPECIES_SNORLAX", + "SPECIES_METAGROSS", + "SPECIES_GIRATINA", + "SPECIES_DIALGA", + "SPECIES_GROUDON" + ], + "origin": [ + "SPECIES_GASTLY", + "SPECIES_HAUNTER", + "SPECIES_ROTOM", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_HOPPIP", + "SPECIES_CHINGLING", + "SPECIES_DIGLETT", + "SPECIES_CASTFORM", + "SPECIES_KOFFING", + "SPECIES_IGGLYBUFF", + "SPECIES_SKIPLOOM", + "SPECIES_MISDREAVUS", + "SPECIES_CHIMECHO", + "SPECIES_JIRACHI", + "SPECIES_SHEDINJA", + "SPECIES_SWABLU", + "SPECIES_BUDEW", + "SPECIES_DRIFLOON", + "SPECIES_MANAPHY", + "SPECIES_TOGEPI", + "SPECIES_SURSKIT", + "SPECIES_PIDGEY", + "SPECIES_SUNKERN", + "SPECIES_BARBOACH", + "SPECIES_CHATOT", + "SPECIES_SPEAROW", + "SPECIES_PICHU", + "SPECIES_NATU", + "SPECIES_AZURILL", + "SPECIES_ROSELIA", + "SPECIES_STARLY", + "SPECIES_MURKROW", + "SPECIES_SHAYMIN", + "SPECIES_KRICKETOT", + "SPECIES_TAILLOW", + "SPECIES_SHUPPET", + "SPECIES_EXEGGCUTE", + "SPECIES_TORCHIC", + "SPECIES_LOTAD", + "SPECIES_CATERPIE", + "SPECIES_CLEFFA", + "SPECIES_JUMPLUFF", + "SPECIES_PHIONE", + "SPECIES_WEEDLE", + "SPECIES_TOGETIC", + "SPECIES_DRATINI", + "SPECIES_CHERUBI", + "SPECIES_BURMY", + "SPECIES_RATTATA", + "SPECIES_WURMPLE", + "SPECIES_MASQUERAIN", + "SPECIES_QWILFISH", + "SPECIES_PACHIRISU", + "SPECIES_GLAMEOW", + "SPECIES_BELLSPROUT", + "SPECIES_SHELLDER", + "SPECIES_DITTO", + "SPECIES_MEW", + "SPECIES_SEEDOT", + "SPECIES_MEOWTH", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_MISMAGIUS", + "SPECIES_SHROOMISH", + "SPECIES_UNOWN", + "SPECIES_CORSOLA", + "SPECIES_CELEBI", + "SPECIES_TREECKO", + "SPECIES_SPINDA", + "SPECIES_PIPLUP", + "SPECIES_ODDISH", + "SPECIES_PARAS", + "SPECIES_JIGGLYPUFF", + "SPECIES_NINCADA", + "SPECIES_COMBEE", + "SPECIES_BUNEARY", + "SPECIES_BELLOSSOM", + "SPECIES_PIKACHU", + "SPECIES_MAGNEMITE", + "SPECIES_SENTRET", + "SPECIES_SMOOCHUM", + "SPECIES_CHIMCHAR", + "SPECIES_SHELLOS", + "SPECIES_WEEPINBELL", + "SPECIES_CHIKORITA", + "SPECIES_KRABBY", + "SPECIES_CUBONE", + "SPECIES_EEVEE", + "SPECIES_SWINUB", + "SPECIES_WORMADAM", + "SPECIES_RALTS", + "SPECIES_BULBASAUR", + "SPECIES_EKANS", + "SPECIES_NIDORAN_F", + "SPECIES_FINNEON", + "SPECIES_PINECO", + "SPECIES_FEEBAS", + "SPECIES_CLEFAIRY", + "SPECIES_ZUBAT", + "SPECIES_OMANYTE", + "SPECIES_MUDKIP", + "SPECIES_MAREEP", + "SPECIES_SNUBBULL", + "SPECIES_CYNDAQUIL", + "SPECIES_HORSEA", + "SPECIES_CHARMANDER", + "SPECIES_SPINARAK", + "SPECIES_MARILL", + "SPECIES_SUNFLORA", + "SPECIES_WOOPER", + "SPECIES_GLOOM", + "SPECIES_LUVDISC", + "SPECIES_TEDDIURSA", + "SPECIES_SQUIRTLE", + "SPECIES_NIDORAN_M", + "SPECIES_CHERRIM", + "SPECIES_WEEZING", + "SPECIES_TOTODILE", + "SPECIES_WINGULL", + "SPECIES_SHINX", + "SPECIES_METAPOD", + "SPECIES_VULPIX", + "SPECIES_KAKUNA", + "SPECIES_MAGIKARP", + "SPECIES_SILCOON", + "SPECIES_TURTWIG", + "SPECIES_GULPIN", + "SPECIES_VOLTORB", + "SPECIES_LEDYBA", + "SPECIES_HOUNDOUR", + "SPECIES_SKITTY", + "SPECIES_SABLEYE", + "SPECIES_MEDITITE", + "SPECIES_KABUTO", + "SPECIES_AIPOM", + "SPECIES_CASCOON", + "SPECIES_MAWILE", + "SPECIES_CORPHISH", + "SPECIES_SANDSHREW", + "SPECIES_WIGGLYTUFF", + "SPECIES_CHINCHOU", + "SPECIES_REMORAID", + "SPECIES_NINJASK", + "SPECIES_SKORUPI", + "SPECIES_POLIWAG", + "SPECIES_VENOMOTH", + "SPECIES_ANORITH", + "SPECIES_BANETTE", + "SPECIES_IVYSAUR", + "SPECIES_MIME_JR", + "SPECIES_FLAAFFY", + "SPECIES_POOCHYENA", + "SPECIES_DUNSPARCE", + "SPECIES_WYNAUT", + "SPECIES_ROSERADE", + "SPECIES_FARFETCHD", + "SPECIES_GOLDEEN", + "SPECIES_XATU", + "SPECIES_TRAPINCH", + "SPECIES_DUSKULL", + "SPECIES_DRIFBLIM", + "SPECIES_BONSLY", + "SPECIES_ELECTRIKE", + "SPECIES_VIBRAVA", + "SPECIES_VICTREEBEL", + "SPECIES_STARAVIA", + "SPECIES_BAYLEEF", + "SPECIES_DELIBIRD", + "SPECIES_WHISMUR", + "SPECIES_DRAGONAIR", + "SPECIES_SNORUNT", + "SPECIES_ZIGZAGOON", + "SPECIES_VOLBEAT", + "SPECIES_ILLUMISE", + "SPECIES_RATICATE", + "SPECIES_VILEPLUME", + "SPECIES_CHARMELEON", + "SPECIES_GROWLITHE", + "SPECIES_QUILAVA", + "SPECIES_STUNKY", + "SPECIES_NIDORINO", + "SPECIES_ABRA", + "SPECIES_MACHOP", + "SPECIES_COMBUSKEN", + "SPECIES_PSYDUCK", + "SPECIES_SWELLOW", + "SPECIES_NINETALES", + "SPECIES_NIDORINA", + "SPECIES_POLIWHIRL", + "SPECIES_GEODUDE", + "SPECIES_BIDOOF", + "SPECIES_KIRLIA", + "SPECIES_RIOLU", + "SPECIES_AMBIPOM", + "SPECIES_SHUCKLE", + "SPECIES_GIBLE", + "SPECIES_ALTARIA", + "SPECIES_CARVANHA", + "SPECIES_TYROGUE", + "SPECIES_HOOTHOOT", + "SPECIES_MAGBY", + "SPECIES_BALTOY", + "SPECIES_GROVYLE", + "SPECIES_KECLEON", + "SPECIES_MONFERNO", + "SPECIES_WARTORTLE", + "SPECIES_LANTURN", + "SPECIES_GOREBYSS", + "SPECIES_PRINPLUP", + "SPECIES_CROAGUNK", + "SPECIES_MOTHIM", + "SPECIES_RELICANTH", + "SPECIES_ELEKID", + "SPECIES_WHISCASH", + "SPECIES_LILEEP", + "SPECIES_SLAKOTH", + "SPECIES_NUMEL", + "SPECIES_LUMINEON", + "SPECIES_HAPPINY", + "SPECIES_JOLTEON", + "SPECIES_STARAPTOR", + "SPECIES_SEADRA", + "SPECIES_FLAREON", + "SPECIES_CROCONAW", + "SPECIES_KRICKETUNE", + "SPECIES_LEAFEON", + "SPECIES_GLACEON", + "SPECIES_ESPEON", + "SPECIES_FROSLASS", + "SPECIES_UMBREON", + "SPECIES_HUNTAIL", + "SPECIES_CARNIVINE", + "SPECIES_HONCHKROW", + "SPECIES_MANKEY", + "SPECIES_SNEASEL", + "SPECIES_MARSHTOMP", + "SPECIES_NUZLEAF", + "SPECIES_PELIPPER", + "SPECIES_BEAUTIFLY", + "SPECIES_AZUMARILL", + "SPECIES_WOBBUFFET", + "SPECIES_OCTILLERY", + "SPECIES_VAPOREON", + "SPECIES_BEEDRILL", + "SPECIES_SANDSLASH", + "SPECIES_PARASECT", + "SPECIES_BUIZEL", + "SPECIES_GASTRODON", + "SPECIES_PIDGEOTTO", + "SPECIES_RAICHU", + "SPECIES_VENONAT", + "SPECIES_PONYTA", + "SPECIES_GRIMER", + "SPECIES_MUK", + "SPECIES_ELECTABUZZ", + "SPECIES_LUXIO", + "SPECIES_SPOINK", + "SPECIES_DUSCLOPS", + "SPECIES_MEDICHAM", + "SPECIES_BIBAREL", + "SPECIES_CRANIDOS", + "SPECIES_DUSTOX", + "SPECIES_BUTTERFREE", + "SPECIES_PERSIAN", + "SPECIES_PRIMEAPE", + "SPECIES_DROWZEE", + "SPECIES_FURRET", + "SPECIES_PORYGON2", + "SPECIES_LINOONE", + "SPECIES_LOMBRE", + "SPECIES_DELCATTY", + "SPECIES_CRAWDAUNT", + "SPECIES_DUGTRIO", + "SPECIES_LOPUNNY", + "SPECIES_ARIADOS", + "SPECIES_PHANPY", + "SPECIES_FLOATZEL", + "SPECIES_POLITOED", + "SPECIES_WEAVILE", + "SPECIES_PORYGON_Z", + "SPECIES_STARYU", + "SPECIES_CHANSEY", + "SPECIES_TANGELA", + "SPECIES_OMASTAR", + "SPECIES_SLUGMA", + "SPECIES_HOUNDOOM", + "SPECIES_LEDIAN", + "SPECIES_SLOWPOKE", + "SPECIES_PORYGON", + "SPECIES_MIGHTYENA", + "SPECIES_FEAROW", + "SPECIES_SUDOWOODO", + "SPECIES_YANMA", + "SPECIES_SKUNTANK", + "SPECIES_TOGEKISS", + "SPECIES_VESPIQUEN", + "SPECIES_SEAKING", + "SPECIES_DODUO", + "SPECIES_BRELOOM", + "SPECIES_PIDGEOT", + "SPECIES_SPHEAL", + "SPECIES_CLEFABLE", + "SPECIES_LATIAS", + "SPECIES_MANECTRIC", + "SPECIES_ZANGOOSE", + "SPECIES_GENGAR", + "SPECIES_KABUTOPS", + "SPECIES_LOUDRED", + "SPECIES_JYNX", + "SPECIES_NOCTOWL", + "SPECIES_GIRAFARIG", + "SPECIES_LUXRAY", + "SPECIES_BAGON", + "SPECIES_GLISCOR", + "SPECIES_PURUGLY", + "SPECIES_TOXICROAK", + "SPECIES_MAGMAR", + "SPECIES_MAROWAK", + "SPECIES_TENTACOOL", + "SPECIES_VIGOROTH", + "SPECIES_BLISSEY", + "SPECIES_ABSOL", + "SPECIES_ALAKAZAM", + "SPECIES_HITMONTOP", + "SPECIES_GARDEVOIR", + "SPECIES_GRANBULL", + "SPECIES_HIPPOPOTAS", + "SPECIES_HITMONLEE", + "SPECIES_HITMONCHAN", + "SPECIES_SKARMORY", + "SPECIES_SNOVER", + "SPECIES_DARKRAI", + "SPECIES_CACNEA", + "SPECIES_YANMEGA", + "SPECIES_BLAZIKEN", + "SPECIES_GALLADE", + "SPECIES_SCEPTILE", + "SPECIES_SEVIPER", + "SPECIES_CLAMPERL", + "SPECIES_ZAPDOS", + "SPECIES_POLIWRATH", + "SPECIES_HERACROSS", + "SPECIES_LUCARIO", + "SPECIES_MR_MIME", + "SPECIES_GOLBAT", + "SPECIES_TENTACRUEL", + "SPECIES_PINSIR", + "SPECIES_MAGCARGO", + "SPECIES_LUDICOLO", + "SPECIES_INFERNAPE", + "SPECIES_ARTICUNO", + "SPECIES_PILOSWINE", + "SPECIES_SCYTHER", + "SPECIES_GABITE", + "SPECIES_KADABRA", + "SPECIES_SHIELDON", + "SPECIES_SMEARGLE", + "SPECIES_AERODACTYL", + "SPECIES_SHIFTRY", + "SPECIES_NIDOQUEEN", + "SPECIES_MAGNETON", + "SPECIES_KINGLER", + "SPECIES_MOLTRES", + "SPECIES_ARON", + "SPECIES_LATIOS", + "SPECIES_CRADILY", + "SPECIES_BRONZOR", + "SPECIES_DEOXYS", + "SPECIES_AMPHAROS", + "SPECIES_DRAPION", + "SPECIES_NIDOKING", + "SPECIES_GLIGAR", + "SPECIES_ARBOK", + "SPECIES_MANTYKE", + "SPECIES_LICKITUNG", + "SPECIES_ELECTRODE", + "SPECIES_MAGMORTAR", + "SPECIES_ARMALDO", + "SPECIES_MACHOKE", + "SPECIES_STANTLER", + "SPECIES_GRUMPIG", + "SPECIES_LARVITAR", + "SPECIES_CROBAT", + "SPECIES_QUAGSIRE", + "SPECIES_MILTANK", + "SPECIES_HYPNO", + "SPECIES_GOLDUCK", + "SPECIES_CACTURNE", + "SPECIES_SLOWBRO", + "SPECIES_TYPHLOSION", + "SPECIES_SLOWKING", + "SPECIES_KANGASKHAN", + "SPECIES_STARMIE", + "SPECIES_SWALOT", + "SPECIES_TORKOAL", + "SPECIES_SWAMPERT", + "SPECIES_FLYGON", + "SPECIES_EXPLOUD", + "SPECIES_EMPOLEON", + "SPECIES_DODRIO", + "SPECIES_BLASTOISE", + "SPECIES_CRESSELIA", + "SPECIES_MAKUHITA", + "SPECIES_SEALEO", + "SPECIES_TAUROS", + "SPECIES_FERALIGATR", + "SPECIES_SHARPEDO", + "SPECIES_SEEL", + "SPECIES_CHARIZARD", + "SPECIES_RAPIDASH", + "SPECIES_GARCHOMP", + "SPECIES_BELDUM", + "SPECIES_NOSEPASS", + "SPECIES_GROTLE", + "SPECIES_VENUSAUR", + "SPECIES_TROPIUS", + "SPECIES_MEGANIUM", + "SPECIES_RAMPARDOS", + "SPECIES_SALAMENCE", + "SPECIES_GRAVELER", + "SPECIES_MUNCHLAX", + "SPECIES_DUSKNOIR", + "SPECIES_CLAYDOL", + "SPECIES_SPIRITOMB", + "SPECIES_SHELGON", + "SPECIES_RHYHORN", + "SPECIES_SCIZOR", + "SPECIES_DEWGONG", + "SPECIES_EXEGGUTOR", + "SPECIES_RHYDON", + "SPECIES_DONPHAN", + "SPECIES_LAIRON", + "SPECIES_MEWTWO", + "SPECIES_FORRETRESS", + "SPECIES_URSARING", + "SPECIES_TANGROWTH", + "SPECIES_MACHAMP", + "SPECIES_WAILMER", + "SPECIES_SLAKING", + "SPECIES_CLOYSTER", + "SPECIES_ABOMASNOW", + "SPECIES_ELECTIVIRE", + "SPECIES_LICKILICKY", + "SPECIES_BASTIODON", + "SPECIES_WALREIN", + "SPECIES_KINGDRA", + "SPECIES_PUPITAR", + "SPECIES_SOLROCK", + "SPECIES_ARCANINE", + "SPECIES_MILOTIC", + "SPECIES_LUNATONE", + "SPECIES_REGICE", + "SPECIES_RAIKOU", + "SPECIES_MAGNEZONE", + "SPECIES_SUICUNE", + "SPECIES_BRONZONG", + "SPECIES_ENTEI", + "SPECIES_HO_OH", + "SPECIES_TYRANITAR", + "SPECIES_METANG", + "SPECIES_REGISTEEL", + "SPECIES_RAYQUAZA", + "SPECIES_ONIX", + "SPECIES_DRAGONITE", + "SPECIES_LUGIA", + "SPECIES_LAPRAS", + "SPECIES_MANTINE", + "SPECIES_CAMERUPT", + "SPECIES_REGIROCK", + "SPECIES_GYARADOS", + "SPECIES_HARIYAMA", + "SPECIES_GLALIE", + "SPECIES_RHYPERIOR", + "SPECIES_MAMOSWINE", + "SPECIES_GOLEM", + "SPECIES_HIPPOWDON", + "SPECIES_TORTERRA", + "SPECIES_ARCEUS", + "SPECIES_PALKIA", + "SPECIES_PROBOPASS", + "SPECIES_KYOGRE", + "SPECIES_AGGRON", + "SPECIES_WAILORD", + "SPECIES_STEELIX", + "SPECIES_REGIGIGAS", + "SPECIES_HEATRAN", + "SPECIES_SNORLAX", + "SPECIES_METAGROSS", + "SPECIES_DIALGA", + "SPECIES_GIRATINA", + "SPECIES_GROUDON" + ] + } + }, + { + "id": "tallest", + "mons": { + "altered": [ + "SPECIES_WAILORD", + "SPECIES_STEELIX", + "SPECIES_ONIX", + "SPECIES_RAYQUAZA", + "SPECIES_GIRATINA", + "SPECIES_GYARADOS", + "SPECIES_MILOTIC", + "SPECIES_DIALGA", + "SPECIES_LUGIA", + "SPECIES_KYOGRE", + "SPECIES_PALKIA", + "SPECIES_DRAGONAIR", + "SPECIES_HO_OH", + "SPECIES_REGIGIGAS", + "SPECIES_ARBOK", + "SPECIES_GROUDON", + "SPECIES_ARCEUS", + "SPECIES_SEVIPER", + "SPECIES_LAPRAS", + "SPECIES_MAMOSWINE", + "SPECIES_RHYPERIOR", + "SPECIES_FERALIGATR", + "SPECIES_HARIYAMA", + "SPECIES_KANGASKHAN", + "SPECIES_DRAGONITE", + "SPECIES_TORTERRA", + "SPECIES_ABOMASNOW", + "SPECIES_DUSKNOIR", + "SPECIES_SNORLAX", + "SPECIES_MANTINE", + "SPECIES_ENTEI", + "SPECIES_AGGRON", + "SPECIES_VENUSAUR", + "SPECIES_EKANS", + "SPECIES_EXEGGUTOR", + "SPECIES_MOLTRES", + "SPECIES_MEWTWO", + "SPECIES_SLOWKING", + "SPECIES_SUICUNE", + "SPECIES_TYRANITAR", + "SPECIES_SLAKING", + "SPECIES_WAILMER", + "SPECIES_FLYGON", + "SPECIES_TROPIUS", + "SPECIES_LATIOS", + "SPECIES_HIPPOWDON", + "SPECIES_TANGROWTH", + "SPECIES_GLISCOR", + "SPECIES_ARCANINE", + "SPECIES_RHYDON", + "SPECIES_RAIKOU", + "SPECIES_BLAZIKEN", + "SPECIES_CAMERUPT", + "SPECIES_REGISTEEL", + "SPECIES_GARCHOMP", + "SPECIES_YANMEGA", + "SPECIES_DODRIO", + "SPECIES_AERODACTYL", + "SPECIES_DRATINI", + "SPECIES_MEGANIUM", + "SPECIES_FURRET", + "SPECIES_CROBAT", + "SPECIES_SCIZOR", + "SPECIES_URSARING", + "SPECIES_KINGDRA", + "SPECIES_SHARPEDO", + "SPECIES_GOREBYSS", + "SPECIES_REGICE", + "SPECIES_ELECTIVIRE", + "SPECIES_CHARIZARD", + "SPECIES_GOLDUCK", + "SPECIES_VICTREEBEL", + "SPECIES_RAPIDASH", + "SPECIES_DEWGONG", + "SPECIES_ARTICUNO", + "SPECIES_TYPHLOSION", + "SPECIES_SKARMORY", + "SPECIES_SCEPTILE", + "SPECIES_SWALOT", + "SPECIES_HUNTAIL", + "SPECIES_REGIROCK", + "SPECIES_DEOXYS", + "SPECIES_EMPOLEON", + "SPECIES_LICKILICKY", + "SPECIES_HEATRAN", + "SPECIES_BLASTOISE", + "SPECIES_GOLBAT", + "SPECIES_MACHAMP", + "SPECIES_TENTACRUEL", + "SPECIES_SLOWBRO", + "SPECIES_HAUNTER", + "SPECIES_HYPNO", + "SPECIES_ZAPDOS", + "SPECIES_NOCTOWL", + "SPECIES_GARDEVOIR", + "SPECIES_DUSCLOPS", + "SPECIES_METAGROSS", + "SPECIES_RAMPARDOS", + "SPECIES_MAGMORTAR", + "SPECIES_GALLADE", + "SPECIES_PIDGEOT", + "SPECIES_VENOMOTH", + "SPECIES_ALAKAZAM", + "SPECIES_MACHOKE", + "SPECIES_CLOYSTER", + "SPECIES_GENGAR", + "SPECIES_HITMONLEE", + "SPECIES_SCYTHER", + "SPECIES_PINSIR", + "SPECIES_XATU", + "SPECIES_GIRAFARIG", + "SPECIES_DUNSPARCE", + "SPECIES_HERACROSS", + "SPECIES_BLISSEY", + "SPECIES_SWAMPERT", + "SPECIES_LUDICOLO", + "SPECIES_EXPLOUD", + "SPECIES_MANECTRIC", + "SPECIES_CLAYDOL", + "SPECIES_CRADILY", + "SPECIES_ARMALDO", + "SPECIES_GLALIE", + "SPECIES_SALAMENCE", + "SPECIES_TOGEKISS", + "SPECIES_CRESSELIA", + "SPECIES_DARKRAI", + "SPECIES_NIDOKING", + "SPECIES_GOLEM", + "SPECIES_DODUO", + "SPECIES_HITMONCHAN", + "SPECIES_JYNX", + "SPECIES_TAUROS", + "SPECIES_LEDIAN", + "SPECIES_AMPHAROS", + "SPECIES_QUAGSIRE", + "SPECIES_GRANBULL", + "SPECIES_HOUNDOOM", + "SPECIES_STANTLER", + "SPECIES_HITMONTOP", + "SPECIES_VIGOROTH", + "SPECIES_WALREIN", + "SPECIES_LATIAS", + "SPECIES_LUXRAY", + "SPECIES_GABITE", + "SPECIES_CARNIVINE", + "SPECIES_PROBOPASS", + "SPECIES_NIDOQUEEN", + "SPECIES_CLEFABLE", + "SPECIES_POLIWRATH", + "SPECIES_KADABRA", + "SPECIES_GASTLY", + "SPECIES_KINGLER", + "SPECIES_SEAKING", + "SPECIES_MR_MIME", + "SPECIES_MAGMAR", + "SPECIES_KABUTOPS", + "SPECIES_WOBBUFFET", + "SPECIES_SHIFTRY", + "SPECIES_MEDICHAM", + "SPECIES_CACTURNE", + "SPECIES_ZANGOOSE", + "SPECIES_BASTIODON", + "SPECIES_BRONZONG", + "SPECIES_DRAPION", + "SPECIES_TOXICROAK", + "SPECIES_FROSLASS", + "SPECIES_FEAROW", + "SPECIES_VILEPLUME", + "SPECIES_SLOWPOKE", + "SPECIES_MUK", + "SPECIES_ELECTRODE", + "SPECIES_LICKITUNG", + "SPECIES_WEEZING", + "SPECIES_SEADRA", + "SPECIES_BAYLEEF", + "SPECIES_LANTURN", + "SPECIES_SUDOWOODO", + "SPECIES_YANMA", + "SPECIES_FORRETRESS", + "SPECIES_SMEARGLE", + "SPECIES_MILTANK", + "SPECIES_PUPITAR", + "SPECIES_DUSTOX", + "SPECIES_LOMBRE", + "SPECIES_PELIPPER", + "SPECIES_BRELOOM", + "SPECIES_SOLROCK", + "SPECIES_ABSOL", + "SPECIES_METANG", + "SPECIES_INFERNAPE", + "SPECIES_STARAPTOR", + "SPECIES_VESPIQUEN", + "SPECIES_AMBIPOM", + "SPECIES_DRIFBLIM", + "SPECIES_LOPUNNY", + "SPECIES_LUCARIO", + "SPECIES_LUMINEON", + "SPECIES_MAGNEZONE", + "SPECIES_CHARMELEON", + "SPECIES_BUTTERFREE", + "SPECIES_PIDGEOTTO", + "SPECIES_NINETALES", + "SPECIES_SEEL", + "SPECIES_CHANSEY", + "SPECIES_STARMIE", + "SPECIES_ELECTABUZZ", + "SPECIES_CROCONAW", + "SPECIES_ARIADOS", + "SPECIES_POLITOED", + "SPECIES_GLIGAR", + "SPECIES_PILOSWINE", + "SPECIES_DONPHAN", + "SPECIES_DELCATTY", + "SPECIES_SPINDA", + "SPECIES_VIBRAVA", + "SPECIES_ALTARIA", + "SPECIES_CRAWDAUNT", + "SPECIES_BANETTE", + "SPECIES_SEALEO", + "SPECIES_SHELGON", + "SPECIES_GROTLE", + "SPECIES_FLOATZEL", + "SPECIES_WEAVILE", + "SPECIES_IVYSAUR", + "SPECIES_WARTORTLE", + "SPECIES_BEEDRILL", + "SPECIES_SANDSLASH", + "SPECIES_WIGGLYTUFF", + "SPECIES_PARASECT", + "SPECIES_VENONAT", + "SPECIES_PERSIAN", + "SPECIES_PRIMEAPE", + "SPECIES_POLIWHIRL", + "SPECIES_WEEPINBELL", + "SPECIES_GRAVELER", + "SPECIES_PONYTA", + "SPECIES_MAGNETON", + "SPECIES_DROWZEE", + "SPECIES_MAROWAK", + "SPECIES_RHYHORN", + "SPECIES_TANGELA", + "SPECIES_VAPOREON", + "SPECIES_OMASTAR", + "SPECIES_LEDYBA", + "SPECIES_UMBREON", + "SPECIES_MIGHTYENA", + "SPECIES_BEAUTIFLY", + "SPECIES_NUZLEAF", + "SPECIES_LOUDRED", + "SPECIES_MAKUHITA", + "SPECIES_NOSEPASS", + "SPECIES_LUNATONE", + "SPECIES_LILEEP", + "SPECIES_KECLEON", + "SPECIES_RELICANTH", + "SPECIES_BIBAREL", + "SPECIES_KRICKETUNE", + "SPECIES_PURUGLY", + "SPECIES_SKUNTANK", + "SPECIES_SPIRITOMB", + "SPECIES_MANTYKE", + "SPECIES_SNOVER", + "SPECIES_LEAFEON", + "SPECIES_NIDORINO", + "SPECIES_ABRA", + "SPECIES_TENTACOOL", + "SPECIES_GRIMER", + "SPECIES_MAGIKARP", + "SPECIES_FLAREON", + "SPECIES_CHIKORITA", + "SPECIES_QUILAVA", + "SPECIES_ESPEON", + "SPECIES_SNEASEL", + "SPECIES_OCTILLERY", + "SPECIES_DELIBIRD", + "SPECIES_GROVYLE", + "SPECIES_COMBUSKEN", + "SPECIES_LAIRON", + "SPECIES_GRUMPIG", + "SPECIES_WHISCASH", + "SPECIES_MONFERNO", + "SPECIES_LUXIO", + "SPECIES_ROSERADE", + "SPECIES_CRANIDOS", + "SPECIES_MOTHIM", + "SPECIES_GASTRODON", + "SPECIES_MISMAGIUS", + "SPECIES_HONCHKROW", + "SPECIES_PORYGON_Z", + "SPECIES_RAICHU", + "SPECIES_NIDORINA", + "SPECIES_ZUBAT", + "SPECIES_GLOOM", + "SPECIES_PSYDUCK", + "SPECIES_MACHOP", + "SPECIES_FARFETCHD", + "SPECIES_STARYU", + "SPECIES_JOLTEON", + "SPECIES_PORYGON", + "SPECIES_SENTRET", + "SPECIES_FLAAFFY", + "SPECIES_AZUMARILL", + "SPECIES_JUMPLUFF", + "SPECIES_AIPOM", + "SPECIES_SUNFLORA", + "SPECIES_MAGCARGO", + "SPECIES_KIRLIA", + "SPECIES_MASQUERAIN", + "SPECIES_SLAKOTH", + "SPECIES_NINJASK", + "SPECIES_SHEDINJA", + "SPECIES_CARVANHA", + "SPECIES_DUSKULL", + "SPECIES_SPHEAL", + "SPECIES_PRINPLUP", + "SPECIES_HIPPOPOTAS", + "SPECIES_SKORUPI", + "SPECIES_GLACEON", + "SPECIES_BULBASAUR", + "SPECIES_METAPOD", + "SPECIES_RATICATE", + "SPECIES_DUGTRIO", + "SPECIES_GROWLITHE", + "SPECIES_BELLSPROUT", + "SPECIES_HOOTHOOT", + "SPECIES_MISDREAVUS", + "SPECIES_SLUGMA", + "SPECIES_TYROGUE", + "SPECIES_MAGBY", + "SPECIES_MARSHTOMP", + "SPECIES_CASCOON", + "SPECIES_SWELLOW", + "SPECIES_VOLBEAT", + "SPECIES_NUMEL", + "SPECIES_SPOINK", + "SPECIES_TRAPINCH", + "SPECIES_ANORITH", + "SPECIES_SNORUNT", + "SPECIES_BUIZEL", + "SPECIES_GIBLE", + "SPECIES_RIOLU", + "SPECIES_CROAGUNK", + "SPECIES_CHARMANDER", + "SPECIES_KAKUNA", + "SPECIES_SANDSHREW", + "SPECIES_CLEFAIRY", + "SPECIES_VULPIX", + "SPECIES_POLIWAG", + "SPECIES_KOFFING", + "SPECIES_GOLDEEN", + "SPECIES_TOTODILE", + "SPECIES_TOGETIC", + "SPECIES_MAREEP", + "SPECIES_SKIPLOOM", + "SPECIES_PINECO", + "SPECIES_SNUBBULL", + "SPECIES_SHUCKLE", + "SPECIES_TEDDIURSA", + "SPECIES_CORSOLA", + "SPECIES_REMORAID", + "SPECIES_HOUNDOUR", + "SPECIES_PORYGON2", + "SPECIES_ELEKID", + "SPECIES_LARVITAR", + "SPECIES_CELEBI", + "SPECIES_SILCOON", + "SPECIES_WINGULL", + "SPECIES_WHISMUR", + "SPECIES_SKITTY", + "SPECIES_MAWILE", + "SPECIES_MEDITITE", + "SPECIES_ELECTRIKE", + "SPECIES_ILLUMISE", + "SPECIES_CORPHISH", + "SPECIES_FEEBAS", + "SPECIES_SHUPPET", + "SPECIES_CHIMECHO", + "SPECIES_WYNAUT", + "SPECIES_LUVDISC", + "SPECIES_BAGON", + "SPECIES_BELDUM", + "SPECIES_STARAVIA", + "SPECIES_MIME_JR", + "SPECIES_HAPPINY", + "SPECIES_MUNCHLAX", + "SPECIES_SQUIRTLE", + "SPECIES_NIDORAN_M", + "SPECIES_JIGGLYPUFF", + "SPECIES_ODDISH", + "SPECIES_MANKEY", + "SPECIES_VOLTORB", + "SPECIES_KABUTO", + "SPECIES_CYNDAQUIL", + "SPECIES_SPINARAK", + "SPECIES_CHINCHOU", + "SPECIES_MURKROW", + "SPECIES_UNOWN", + "SPECIES_QWILFISH", + "SPECIES_PHANPY", + "SPECIES_TREECKO", + "SPECIES_POOCHYENA", + "SPECIES_LINOONE", + "SPECIES_LOTAD", + "SPECIES_SEEDOT", + "SPECIES_SURSKIT", + "SPECIES_NINCADA", + "SPECIES_SABLEYE", + "SPECIES_TORKOAL", + "SPECIES_BALTOY", + "SPECIES_CHIMCHAR", + "SPECIES_BIDOOF", + "SPECIES_SHINX", + "SPECIES_SHIELDON", + "SPECIES_WORMADAM", + "SPECIES_CHERRIM", + "SPECIES_GLAMEOW", + "SPECIES_BRONZOR", + "SPECIES_BONSLY", + "SPECIES_CHATOT", + "SPECIES_PIKACHU", + "SPECIES_NIDORAN_F", + "SPECIES_MEOWTH", + "SPECIES_GEODUDE", + "SPECIES_KRABBY", + "SPECIES_EXEGGCUTE", + "SPECIES_CUBONE", + "SPECIES_HORSEA", + "SPECIES_OMANYTE", + "SPECIES_MEW", + "SPECIES_BELLOSSOM", + "SPECIES_MARILL", + "SPECIES_HOPPIP", + "SPECIES_WOOPER", + "SPECIES_SWINUB", + "SPECIES_SMOOCHUM", + "SPECIES_TORCHIC", + "SPECIES_MUDKIP", + "SPECIES_ZIGZAGOON", + "SPECIES_RALTS", + "SPECIES_SHROOMISH", + "SPECIES_ARON", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_GULPIN", + "SPECIES_CACNEA", + "SPECIES_SWABLU", + "SPECIES_BARBOACH", + "SPECIES_CLAMPERL", + "SPECIES_TURTWIG", + "SPECIES_PIPLUP", + "SPECIES_PACHIRISU", + "SPECIES_CHERUBI", + "SPECIES_DRIFLOON", + "SPECIES_BUNEARY", + "SPECIES_STUNKY", + "SPECIES_FINNEON", + "SPECIES_PHIONE", + "SPECIES_CATERPIE", + "SPECIES_WEEDLE", + "SPECIES_PIDGEY", + "SPECIES_RATTATA", + "SPECIES_SPEAROW", + "SPECIES_PARAS", + "SPECIES_MAGNEMITE", + "SPECIES_SHELLDER", + "SPECIES_DITTO", + "SPECIES_EEVEE", + "SPECIES_PICHU", + "SPECIES_CLEFFA", + "SPECIES_IGGLYBUFF", + "SPECIES_TOGEPI", + "SPECIES_SUNKERN", + "SPECIES_WURMPLE", + "SPECIES_TAILLOW", + "SPECIES_ROSELIA", + "SPECIES_CASTFORM", + "SPECIES_JIRACHI", + "SPECIES_STARLY", + "SPECIES_KRICKETOT", + "SPECIES_COMBEE", + "SPECIES_SHELLOS", + "SPECIES_ROTOM", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_MANAPHY", + "SPECIES_DIGLETT", + "SPECIES_NATU", + "SPECIES_AZURILL", + "SPECIES_BUDEW", + "SPECIES_BURMY", + "SPECIES_CHINGLING", + "SPECIES_SHAYMIN" + ], + "origin": [ + "SPECIES_WAILORD", + "SPECIES_STEELIX", + "SPECIES_ONIX", + "SPECIES_RAYQUAZA", + "SPECIES_GYARADOS", + "SPECIES_MILOTIC", + "SPECIES_DIALGA", + "SPECIES_LUGIA", + "SPECIES_KYOGRE", + "SPECIES_GIRATINA", + "SPECIES_PALKIA", + "SPECIES_DRAGONAIR", + "SPECIES_HO_OH", + "SPECIES_REGIGIGAS", + "SPECIES_ARBOK", + "SPECIES_GROUDON", + "SPECIES_ARCEUS", + "SPECIES_SEVIPER", + "SPECIES_LAPRAS", + "SPECIES_MAMOSWINE", + "SPECIES_RHYPERIOR", + "SPECIES_FERALIGATR", + "SPECIES_HARIYAMA", + "SPECIES_KANGASKHAN", + "SPECIES_DRAGONITE", + "SPECIES_TORTERRA", + "SPECIES_ABOMASNOW", + "SPECIES_DUSKNOIR", + "SPECIES_SNORLAX", + "SPECIES_MANTINE", + "SPECIES_ENTEI", + "SPECIES_AGGRON", + "SPECIES_VENUSAUR", + "SPECIES_EKANS", + "SPECIES_EXEGGUTOR", + "SPECIES_MOLTRES", + "SPECIES_MEWTWO", + "SPECIES_SLOWKING", + "SPECIES_SUICUNE", + "SPECIES_TYRANITAR", + "SPECIES_SLAKING", + "SPECIES_WAILMER", + "SPECIES_FLYGON", + "SPECIES_TROPIUS", + "SPECIES_LATIOS", + "SPECIES_HIPPOWDON", + "SPECIES_TANGROWTH", + "SPECIES_GLISCOR", + "SPECIES_ARCANINE", + "SPECIES_RHYDON", + "SPECIES_RAIKOU", + "SPECIES_BLAZIKEN", + "SPECIES_CAMERUPT", + "SPECIES_REGISTEEL", + "SPECIES_GARCHOMP", + "SPECIES_YANMEGA", + "SPECIES_DODRIO", + "SPECIES_AERODACTYL", + "SPECIES_DRATINI", + "SPECIES_MEGANIUM", + "SPECIES_FURRET", + "SPECIES_CROBAT", + "SPECIES_SCIZOR", + "SPECIES_URSARING", + "SPECIES_KINGDRA", + "SPECIES_SHARPEDO", + "SPECIES_GOREBYSS", + "SPECIES_REGICE", + "SPECIES_ELECTIVIRE", + "SPECIES_CHARIZARD", + "SPECIES_GOLDUCK", + "SPECIES_VICTREEBEL", + "SPECIES_RAPIDASH", + "SPECIES_DEWGONG", + "SPECIES_ARTICUNO", + "SPECIES_TYPHLOSION", + "SPECIES_SKARMORY", + "SPECIES_SCEPTILE", + "SPECIES_SWALOT", + "SPECIES_HUNTAIL", + "SPECIES_REGIROCK", + "SPECIES_DEOXYS", + "SPECIES_EMPOLEON", + "SPECIES_LICKILICKY", + "SPECIES_HEATRAN", + "SPECIES_BLASTOISE", + "SPECIES_GOLBAT", + "SPECIES_MACHAMP", + "SPECIES_TENTACRUEL", + "SPECIES_SLOWBRO", + "SPECIES_HAUNTER", + "SPECIES_HYPNO", + "SPECIES_ZAPDOS", + "SPECIES_NOCTOWL", + "SPECIES_GARDEVOIR", + "SPECIES_DUSCLOPS", + "SPECIES_METAGROSS", + "SPECIES_RAMPARDOS", + "SPECIES_MAGMORTAR", + "SPECIES_GALLADE", + "SPECIES_PIDGEOT", + "SPECIES_VENOMOTH", + "SPECIES_ALAKAZAM", + "SPECIES_MACHOKE", + "SPECIES_CLOYSTER", + "SPECIES_GENGAR", + "SPECIES_HITMONLEE", + "SPECIES_SCYTHER", + "SPECIES_PINSIR", + "SPECIES_XATU", + "SPECIES_GIRAFARIG", + "SPECIES_DUNSPARCE", + "SPECIES_HERACROSS", + "SPECIES_BLISSEY", + "SPECIES_SWAMPERT", + "SPECIES_LUDICOLO", + "SPECIES_EXPLOUD", + "SPECIES_MANECTRIC", + "SPECIES_CLAYDOL", + "SPECIES_CRADILY", + "SPECIES_ARMALDO", + "SPECIES_GLALIE", + "SPECIES_SALAMENCE", + "SPECIES_TOGEKISS", + "SPECIES_CRESSELIA", + "SPECIES_DARKRAI", + "SPECIES_NIDOKING", + "SPECIES_GOLEM", + "SPECIES_DODUO", + "SPECIES_HITMONCHAN", + "SPECIES_JYNX", + "SPECIES_TAUROS", + "SPECIES_LEDIAN", + "SPECIES_AMPHAROS", + "SPECIES_QUAGSIRE", + "SPECIES_GRANBULL", + "SPECIES_HOUNDOOM", + "SPECIES_STANTLER", + "SPECIES_HITMONTOP", + "SPECIES_VIGOROTH", + "SPECIES_WALREIN", + "SPECIES_LATIAS", + "SPECIES_LUXRAY", + "SPECIES_GABITE", + "SPECIES_CARNIVINE", + "SPECIES_PROBOPASS", + "SPECIES_NIDOQUEEN", + "SPECIES_CLEFABLE", + "SPECIES_POLIWRATH", + "SPECIES_KADABRA", + "SPECIES_GASTLY", + "SPECIES_KINGLER", + "SPECIES_SEAKING", + "SPECIES_MR_MIME", + "SPECIES_MAGMAR", + "SPECIES_KABUTOPS", + "SPECIES_WOBBUFFET", + "SPECIES_SHIFTRY", + "SPECIES_MEDICHAM", + "SPECIES_CACTURNE", + "SPECIES_ZANGOOSE", + "SPECIES_BASTIODON", + "SPECIES_BRONZONG", + "SPECIES_DRAPION", + "SPECIES_TOXICROAK", + "SPECIES_FROSLASS", + "SPECIES_FEAROW", + "SPECIES_VILEPLUME", + "SPECIES_SLOWPOKE", + "SPECIES_MUK", + "SPECIES_ELECTRODE", + "SPECIES_LICKITUNG", + "SPECIES_WEEZING", + "SPECIES_SEADRA", + "SPECIES_BAYLEEF", + "SPECIES_LANTURN", + "SPECIES_SUDOWOODO", + "SPECIES_YANMA", + "SPECIES_FORRETRESS", + "SPECIES_SMEARGLE", + "SPECIES_MILTANK", + "SPECIES_PUPITAR", + "SPECIES_DUSTOX", + "SPECIES_LOMBRE", + "SPECIES_PELIPPER", + "SPECIES_BRELOOM", + "SPECIES_SOLROCK", + "SPECIES_ABSOL", + "SPECIES_METANG", + "SPECIES_INFERNAPE", + "SPECIES_STARAPTOR", + "SPECIES_VESPIQUEN", + "SPECIES_AMBIPOM", + "SPECIES_DRIFBLIM", + "SPECIES_LOPUNNY", + "SPECIES_LUCARIO", + "SPECIES_LUMINEON", + "SPECIES_MAGNEZONE", + "SPECIES_CHARMELEON", + "SPECIES_BUTTERFREE", + "SPECIES_PIDGEOTTO", + "SPECIES_NINETALES", + "SPECIES_SEEL", + "SPECIES_CHANSEY", + "SPECIES_STARMIE", + "SPECIES_ELECTABUZZ", + "SPECIES_CROCONAW", + "SPECIES_ARIADOS", + "SPECIES_POLITOED", + "SPECIES_GLIGAR", + "SPECIES_PILOSWINE", + "SPECIES_DONPHAN", + "SPECIES_DELCATTY", + "SPECIES_SPINDA", + "SPECIES_VIBRAVA", + "SPECIES_ALTARIA", + "SPECIES_CRAWDAUNT", + "SPECIES_BANETTE", + "SPECIES_SEALEO", + "SPECIES_SHELGON", + "SPECIES_GROTLE", + "SPECIES_FLOATZEL", + "SPECIES_WEAVILE", + "SPECIES_IVYSAUR", + "SPECIES_WARTORTLE", + "SPECIES_BEEDRILL", + "SPECIES_SANDSLASH", + "SPECIES_WIGGLYTUFF", + "SPECIES_PARASECT", + "SPECIES_VENONAT", + "SPECIES_PERSIAN", + "SPECIES_PRIMEAPE", + "SPECIES_POLIWHIRL", + "SPECIES_WEEPINBELL", + "SPECIES_GRAVELER", + "SPECIES_PONYTA", + "SPECIES_MAGNETON", + "SPECIES_DROWZEE", + "SPECIES_MAROWAK", + "SPECIES_RHYHORN", + "SPECIES_TANGELA", + "SPECIES_VAPOREON", + "SPECIES_OMASTAR", + "SPECIES_LEDYBA", + "SPECIES_UMBREON", + "SPECIES_MIGHTYENA", + "SPECIES_BEAUTIFLY", + "SPECIES_NUZLEAF", + "SPECIES_LOUDRED", + "SPECIES_MAKUHITA", + "SPECIES_NOSEPASS", + "SPECIES_LUNATONE", + "SPECIES_LILEEP", + "SPECIES_KECLEON", + "SPECIES_RELICANTH", + "SPECIES_BIBAREL", + "SPECIES_KRICKETUNE", + "SPECIES_PURUGLY", + "SPECIES_SKUNTANK", + "SPECIES_SPIRITOMB", + "SPECIES_MANTYKE", + "SPECIES_SNOVER", + "SPECIES_LEAFEON", + "SPECIES_NIDORINO", + "SPECIES_ABRA", + "SPECIES_TENTACOOL", + "SPECIES_GRIMER", + "SPECIES_MAGIKARP", + "SPECIES_FLAREON", + "SPECIES_CHIKORITA", + "SPECIES_QUILAVA", + "SPECIES_ESPEON", + "SPECIES_SNEASEL", + "SPECIES_OCTILLERY", + "SPECIES_DELIBIRD", + "SPECIES_GROVYLE", + "SPECIES_COMBUSKEN", + "SPECIES_LAIRON", + "SPECIES_GRUMPIG", + "SPECIES_WHISCASH", + "SPECIES_MONFERNO", + "SPECIES_LUXIO", + "SPECIES_ROSERADE", + "SPECIES_CRANIDOS", + "SPECIES_MOTHIM", + "SPECIES_GASTRODON", + "SPECIES_MISMAGIUS", + "SPECIES_HONCHKROW", + "SPECIES_PORYGON_Z", + "SPECIES_RAICHU", + "SPECIES_NIDORINA", + "SPECIES_ZUBAT", + "SPECIES_GLOOM", + "SPECIES_PSYDUCK", + "SPECIES_MACHOP", + "SPECIES_FARFETCHD", + "SPECIES_STARYU", + "SPECIES_JOLTEON", + "SPECIES_PORYGON", + "SPECIES_SENTRET", + "SPECIES_FLAAFFY", + "SPECIES_AZUMARILL", + "SPECIES_JUMPLUFF", + "SPECIES_AIPOM", + "SPECIES_SUNFLORA", + "SPECIES_MAGCARGO", + "SPECIES_KIRLIA", + "SPECIES_MASQUERAIN", + "SPECIES_SLAKOTH", + "SPECIES_NINJASK", + "SPECIES_SHEDINJA", + "SPECIES_CARVANHA", + "SPECIES_DUSKULL", + "SPECIES_SPHEAL", + "SPECIES_PRINPLUP", + "SPECIES_HIPPOPOTAS", + "SPECIES_SKORUPI", + "SPECIES_GLACEON", + "SPECIES_BULBASAUR", + "SPECIES_METAPOD", + "SPECIES_RATICATE", + "SPECIES_DUGTRIO", + "SPECIES_GROWLITHE", + "SPECIES_BELLSPROUT", + "SPECIES_HOOTHOOT", + "SPECIES_MISDREAVUS", + "SPECIES_SLUGMA", + "SPECIES_TYROGUE", + "SPECIES_MAGBY", + "SPECIES_MARSHTOMP", + "SPECIES_CASCOON", + "SPECIES_SWELLOW", + "SPECIES_VOLBEAT", + "SPECIES_NUMEL", + "SPECIES_SPOINK", + "SPECIES_TRAPINCH", + "SPECIES_ANORITH", + "SPECIES_SNORUNT", + "SPECIES_BUIZEL", + "SPECIES_GIBLE", + "SPECIES_RIOLU", + "SPECIES_CROAGUNK", + "SPECIES_CHARMANDER", + "SPECIES_KAKUNA", + "SPECIES_SANDSHREW", + "SPECIES_CLEFAIRY", + "SPECIES_VULPIX", + "SPECIES_POLIWAG", + "SPECIES_KOFFING", + "SPECIES_GOLDEEN", + "SPECIES_TOTODILE", + "SPECIES_TOGETIC", + "SPECIES_MAREEP", + "SPECIES_SKIPLOOM", + "SPECIES_PINECO", + "SPECIES_SNUBBULL", + "SPECIES_SHUCKLE", + "SPECIES_TEDDIURSA", + "SPECIES_CORSOLA", + "SPECIES_REMORAID", + "SPECIES_HOUNDOUR", + "SPECIES_PORYGON2", + "SPECIES_ELEKID", + "SPECIES_LARVITAR", + "SPECIES_CELEBI", + "SPECIES_SILCOON", + "SPECIES_WINGULL", + "SPECIES_WHISMUR", + "SPECIES_SKITTY", + "SPECIES_MAWILE", + "SPECIES_MEDITITE", + "SPECIES_ELECTRIKE", + "SPECIES_ILLUMISE", + "SPECIES_CORPHISH", + "SPECIES_FEEBAS", + "SPECIES_SHUPPET", + "SPECIES_CHIMECHO", + "SPECIES_WYNAUT", + "SPECIES_LUVDISC", + "SPECIES_BAGON", + "SPECIES_BELDUM", + "SPECIES_STARAVIA", + "SPECIES_MIME_JR", + "SPECIES_HAPPINY", + "SPECIES_MUNCHLAX", + "SPECIES_SQUIRTLE", + "SPECIES_NIDORAN_M", + "SPECIES_JIGGLYPUFF", + "SPECIES_ODDISH", + "SPECIES_MANKEY", + "SPECIES_VOLTORB", + "SPECIES_KABUTO", + "SPECIES_CYNDAQUIL", + "SPECIES_SPINARAK", + "SPECIES_CHINCHOU", + "SPECIES_MURKROW", + "SPECIES_UNOWN", + "SPECIES_QWILFISH", + "SPECIES_PHANPY", + "SPECIES_TREECKO", + "SPECIES_POOCHYENA", + "SPECIES_LINOONE", + "SPECIES_LOTAD", + "SPECIES_SEEDOT", + "SPECIES_SURSKIT", + "SPECIES_NINCADA", + "SPECIES_SABLEYE", + "SPECIES_TORKOAL", + "SPECIES_BALTOY", + "SPECIES_CHIMCHAR", + "SPECIES_BIDOOF", + "SPECIES_SHINX", + "SPECIES_SHIELDON", + "SPECIES_WORMADAM", + "SPECIES_CHERRIM", + "SPECIES_GLAMEOW", + "SPECIES_BRONZOR", + "SPECIES_BONSLY", + "SPECIES_CHATOT", + "SPECIES_PIKACHU", + "SPECIES_NIDORAN_F", + "SPECIES_MEOWTH", + "SPECIES_GEODUDE", + "SPECIES_KRABBY", + "SPECIES_EXEGGCUTE", + "SPECIES_CUBONE", + "SPECIES_HORSEA", + "SPECIES_OMANYTE", + "SPECIES_MEW", + "SPECIES_BELLOSSOM", + "SPECIES_MARILL", + "SPECIES_HOPPIP", + "SPECIES_WOOPER", + "SPECIES_SWINUB", + "SPECIES_SMOOCHUM", + "SPECIES_TORCHIC", + "SPECIES_MUDKIP", + "SPECIES_ZIGZAGOON", + "SPECIES_RALTS", + "SPECIES_SHROOMISH", + "SPECIES_ARON", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_GULPIN", + "SPECIES_CACNEA", + "SPECIES_SWABLU", + "SPECIES_BARBOACH", + "SPECIES_CLAMPERL", + "SPECIES_TURTWIG", + "SPECIES_PIPLUP", + "SPECIES_PACHIRISU", + "SPECIES_CHERUBI", + "SPECIES_DRIFLOON", + "SPECIES_BUNEARY", + "SPECIES_STUNKY", + "SPECIES_FINNEON", + "SPECIES_PHIONE", + "SPECIES_CATERPIE", + "SPECIES_WEEDLE", + "SPECIES_PIDGEY", + "SPECIES_RATTATA", + "SPECIES_SPEAROW", + "SPECIES_PARAS", + "SPECIES_MAGNEMITE", + "SPECIES_SHELLDER", + "SPECIES_DITTO", + "SPECIES_EEVEE", + "SPECIES_PICHU", + "SPECIES_CLEFFA", + "SPECIES_IGGLYBUFF", + "SPECIES_TOGEPI", + "SPECIES_SUNKERN", + "SPECIES_WURMPLE", + "SPECIES_TAILLOW", + "SPECIES_ROSELIA", + "SPECIES_CASTFORM", + "SPECIES_JIRACHI", + "SPECIES_STARLY", + "SPECIES_KRICKETOT", + "SPECIES_COMBEE", + "SPECIES_SHELLOS", + "SPECIES_ROTOM", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_MANAPHY", + "SPECIES_DIGLETT", + "SPECIES_NATU", + "SPECIES_AZURILL", + "SPECIES_BUDEW", + "SPECIES_BURMY", + "SPECIES_CHINGLING", + "SPECIES_SHAYMIN" + ] + } + }, + { + "id": "shortest", + "mons": { + "altered": [ + "SPECIES_DIGLETT", + "SPECIES_NATU", + "SPECIES_AZURILL", + "SPECIES_BUDEW", + "SPECIES_BURMY", + "SPECIES_CHINGLING", + "SPECIES_SHAYMIN", + "SPECIES_CATERPIE", + "SPECIES_WEEDLE", + "SPECIES_PIDGEY", + "SPECIES_RATTATA", + "SPECIES_SPEAROW", + "SPECIES_PARAS", + "SPECIES_MAGNEMITE", + "SPECIES_SHELLDER", + "SPECIES_DITTO", + "SPECIES_EEVEE", + "SPECIES_PICHU", + "SPECIES_CLEFFA", + "SPECIES_IGGLYBUFF", + "SPECIES_TOGEPI", + "SPECIES_SUNKERN", + "SPECIES_WURMPLE", + "SPECIES_TAILLOW", + "SPECIES_ROSELIA", + "SPECIES_CASTFORM", + "SPECIES_JIRACHI", + "SPECIES_STARLY", + "SPECIES_KRICKETOT", + "SPECIES_COMBEE", + "SPECIES_SHELLOS", + "SPECIES_ROTOM", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_MANAPHY", + "SPECIES_PIKACHU", + "SPECIES_NIDORAN_F", + "SPECIES_MEOWTH", + "SPECIES_GEODUDE", + "SPECIES_KRABBY", + "SPECIES_EXEGGCUTE", + "SPECIES_CUBONE", + "SPECIES_HORSEA", + "SPECIES_OMANYTE", + "SPECIES_MEW", + "SPECIES_BELLOSSOM", + "SPECIES_MARILL", + "SPECIES_HOPPIP", + "SPECIES_WOOPER", + "SPECIES_SWINUB", + "SPECIES_SMOOCHUM", + "SPECIES_TORCHIC", + "SPECIES_MUDKIP", + "SPECIES_ZIGZAGOON", + "SPECIES_RALTS", + "SPECIES_SHROOMISH", + "SPECIES_ARON", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_GULPIN", + "SPECIES_CACNEA", + "SPECIES_SWABLU", + "SPECIES_BARBOACH", + "SPECIES_CLAMPERL", + "SPECIES_TURTWIG", + "SPECIES_PIPLUP", + "SPECIES_PACHIRISU", + "SPECIES_CHERUBI", + "SPECIES_DRIFLOON", + "SPECIES_BUNEARY", + "SPECIES_STUNKY", + "SPECIES_FINNEON", + "SPECIES_PHIONE", + "SPECIES_SQUIRTLE", + "SPECIES_NIDORAN_M", + "SPECIES_JIGGLYPUFF", + "SPECIES_ODDISH", + "SPECIES_MANKEY", + "SPECIES_VOLTORB", + "SPECIES_KABUTO", + "SPECIES_CYNDAQUIL", + "SPECIES_SPINARAK", + "SPECIES_CHINCHOU", + "SPECIES_MURKROW", + "SPECIES_UNOWN", + "SPECIES_QWILFISH", + "SPECIES_PHANPY", + "SPECIES_TREECKO", + "SPECIES_POOCHYENA", + "SPECIES_LINOONE", + "SPECIES_LOTAD", + "SPECIES_SEEDOT", + "SPECIES_SURSKIT", + "SPECIES_NINCADA", + "SPECIES_SABLEYE", + "SPECIES_TORKOAL", + "SPECIES_BALTOY", + "SPECIES_CHIMCHAR", + "SPECIES_BIDOOF", + "SPECIES_SHINX", + "SPECIES_SHIELDON", + "SPECIES_WORMADAM", + "SPECIES_CHERRIM", + "SPECIES_GLAMEOW", + "SPECIES_BRONZOR", + "SPECIES_BONSLY", + "SPECIES_CHATOT", + "SPECIES_CHARMANDER", + "SPECIES_KAKUNA", + "SPECIES_SANDSHREW", + "SPECIES_CLEFAIRY", + "SPECIES_VULPIX", + "SPECIES_POLIWAG", + "SPECIES_KOFFING", + "SPECIES_GOLDEEN", + "SPECIES_TOTODILE", + "SPECIES_TOGETIC", + "SPECIES_MAREEP", + "SPECIES_SKIPLOOM", + "SPECIES_PINECO", + "SPECIES_SNUBBULL", + "SPECIES_SHUCKLE", + "SPECIES_TEDDIURSA", + "SPECIES_CORSOLA", + "SPECIES_REMORAID", + "SPECIES_HOUNDOUR", + "SPECIES_PORYGON2", + "SPECIES_ELEKID", + "SPECIES_LARVITAR", + "SPECIES_CELEBI", + "SPECIES_SILCOON", + "SPECIES_WINGULL", + "SPECIES_WHISMUR", + "SPECIES_SKITTY", + "SPECIES_MAWILE", + "SPECIES_MEDITITE", + "SPECIES_ELECTRIKE", + "SPECIES_ILLUMISE", + "SPECIES_CORPHISH", + "SPECIES_FEEBAS", + "SPECIES_SHUPPET", + "SPECIES_CHIMECHO", + "SPECIES_WYNAUT", + "SPECIES_LUVDISC", + "SPECIES_BAGON", + "SPECIES_BELDUM", + "SPECIES_STARAVIA", + "SPECIES_MIME_JR", + "SPECIES_HAPPINY", + "SPECIES_MUNCHLAX", + "SPECIES_BULBASAUR", + "SPECIES_METAPOD", + "SPECIES_RATICATE", + "SPECIES_DUGTRIO", + "SPECIES_GROWLITHE", + "SPECIES_BELLSPROUT", + "SPECIES_HOOTHOOT", + "SPECIES_MISDREAVUS", + "SPECIES_SLUGMA", + "SPECIES_TYROGUE", + "SPECIES_MAGBY", + "SPECIES_MARSHTOMP", + "SPECIES_CASCOON", + "SPECIES_SWELLOW", + "SPECIES_VOLBEAT", + "SPECIES_NUMEL", + "SPECIES_SPOINK", + "SPECIES_TRAPINCH", + "SPECIES_ANORITH", + "SPECIES_SNORUNT", + "SPECIES_BUIZEL", + "SPECIES_GIBLE", + "SPECIES_RIOLU", + "SPECIES_CROAGUNK", + "SPECIES_RAICHU", + "SPECIES_NIDORINA", + "SPECIES_ZUBAT", + "SPECIES_GLOOM", + "SPECIES_PSYDUCK", + "SPECIES_MACHOP", + "SPECIES_FARFETCHD", + "SPECIES_STARYU", + "SPECIES_JOLTEON", + "SPECIES_PORYGON", + "SPECIES_SENTRET", + "SPECIES_FLAAFFY", + "SPECIES_AZUMARILL", + "SPECIES_JUMPLUFF", + "SPECIES_AIPOM", + "SPECIES_SUNFLORA", + "SPECIES_MAGCARGO", + "SPECIES_KIRLIA", + "SPECIES_MASQUERAIN", + "SPECIES_SLAKOTH", + "SPECIES_NINJASK", + "SPECIES_SHEDINJA", + "SPECIES_CARVANHA", + "SPECIES_DUSKULL", + "SPECIES_SPHEAL", + "SPECIES_PRINPLUP", + "SPECIES_HIPPOPOTAS", + "SPECIES_SKORUPI", + "SPECIES_GLACEON", + "SPECIES_NIDORINO", + "SPECIES_ABRA", + "SPECIES_TENTACOOL", + "SPECIES_GRIMER", + "SPECIES_MAGIKARP", + "SPECIES_FLAREON", + "SPECIES_CHIKORITA", + "SPECIES_QUILAVA", + "SPECIES_ESPEON", + "SPECIES_SNEASEL", + "SPECIES_OCTILLERY", + "SPECIES_DELIBIRD", + "SPECIES_GROVYLE", + "SPECIES_COMBUSKEN", + "SPECIES_LAIRON", + "SPECIES_GRUMPIG", + "SPECIES_WHISCASH", + "SPECIES_MONFERNO", + "SPECIES_LUXIO", + "SPECIES_ROSERADE", + "SPECIES_CRANIDOS", + "SPECIES_MOTHIM", + "SPECIES_GASTRODON", + "SPECIES_MISMAGIUS", + "SPECIES_HONCHKROW", + "SPECIES_PORYGON_Z", + "SPECIES_IVYSAUR", + "SPECIES_WARTORTLE", + "SPECIES_BEEDRILL", + "SPECIES_SANDSLASH", + "SPECIES_WIGGLYTUFF", + "SPECIES_PARASECT", + "SPECIES_VENONAT", + "SPECIES_PERSIAN", + "SPECIES_PRIMEAPE", + "SPECIES_POLIWHIRL", + "SPECIES_WEEPINBELL", + "SPECIES_GRAVELER", + "SPECIES_PONYTA", + "SPECIES_MAGNETON", + "SPECIES_DROWZEE", + "SPECIES_MAROWAK", + "SPECIES_RHYHORN", + "SPECIES_TANGELA", + "SPECIES_VAPOREON", + "SPECIES_OMASTAR", + "SPECIES_LEDYBA", + "SPECIES_UMBREON", + "SPECIES_MIGHTYENA", + "SPECIES_BEAUTIFLY", + "SPECIES_NUZLEAF", + "SPECIES_LOUDRED", + "SPECIES_MAKUHITA", + "SPECIES_NOSEPASS", + "SPECIES_LUNATONE", + "SPECIES_LILEEP", + "SPECIES_KECLEON", + "SPECIES_RELICANTH", + "SPECIES_BIBAREL", + "SPECIES_KRICKETUNE", + "SPECIES_PURUGLY", + "SPECIES_SKUNTANK", + "SPECIES_SPIRITOMB", + "SPECIES_MANTYKE", + "SPECIES_SNOVER", + "SPECIES_LEAFEON", + "SPECIES_CHARMELEON", + "SPECIES_BUTTERFREE", + "SPECIES_PIDGEOTTO", + "SPECIES_NINETALES", + "SPECIES_SEEL", + "SPECIES_CHANSEY", + "SPECIES_STARMIE", + "SPECIES_ELECTABUZZ", + "SPECIES_CROCONAW", + "SPECIES_ARIADOS", + "SPECIES_POLITOED", + "SPECIES_GLIGAR", + "SPECIES_PILOSWINE", + "SPECIES_DONPHAN", + "SPECIES_DELCATTY", + "SPECIES_SPINDA", + "SPECIES_VIBRAVA", + "SPECIES_ALTARIA", + "SPECIES_CRAWDAUNT", + "SPECIES_BANETTE", + "SPECIES_SEALEO", + "SPECIES_SHELGON", + "SPECIES_GROTLE", + "SPECIES_FLOATZEL", + "SPECIES_WEAVILE", + "SPECIES_FEAROW", + "SPECIES_VILEPLUME", + "SPECIES_SLOWPOKE", + "SPECIES_MUK", + "SPECIES_ELECTRODE", + "SPECIES_LICKITUNG", + "SPECIES_WEEZING", + "SPECIES_SEADRA", + "SPECIES_BAYLEEF", + "SPECIES_LANTURN", + "SPECIES_SUDOWOODO", + "SPECIES_YANMA", + "SPECIES_FORRETRESS", + "SPECIES_SMEARGLE", + "SPECIES_MILTANK", + "SPECIES_PUPITAR", + "SPECIES_DUSTOX", + "SPECIES_LOMBRE", + "SPECIES_PELIPPER", + "SPECIES_BRELOOM", + "SPECIES_SOLROCK", + "SPECIES_ABSOL", + "SPECIES_METANG", + "SPECIES_INFERNAPE", + "SPECIES_STARAPTOR", + "SPECIES_VESPIQUEN", + "SPECIES_AMBIPOM", + "SPECIES_DRIFBLIM", + "SPECIES_LOPUNNY", + "SPECIES_LUCARIO", + "SPECIES_LUMINEON", + "SPECIES_MAGNEZONE", + "SPECIES_NIDOQUEEN", + "SPECIES_CLEFABLE", + "SPECIES_POLIWRATH", + "SPECIES_KADABRA", + "SPECIES_GASTLY", + "SPECIES_KINGLER", + "SPECIES_SEAKING", + "SPECIES_MR_MIME", + "SPECIES_MAGMAR", + "SPECIES_KABUTOPS", + "SPECIES_WOBBUFFET", + "SPECIES_SHIFTRY", + "SPECIES_MEDICHAM", + "SPECIES_CACTURNE", + "SPECIES_ZANGOOSE", + "SPECIES_BASTIODON", + "SPECIES_BRONZONG", + "SPECIES_DRAPION", + "SPECIES_TOXICROAK", + "SPECIES_FROSLASS", + "SPECIES_NIDOKING", + "SPECIES_GOLEM", + "SPECIES_DODUO", + "SPECIES_HITMONCHAN", + "SPECIES_JYNX", + "SPECIES_TAUROS", + "SPECIES_LEDIAN", + "SPECIES_AMPHAROS", + "SPECIES_QUAGSIRE", + "SPECIES_GRANBULL", + "SPECIES_HOUNDOOM", + "SPECIES_STANTLER", + "SPECIES_HITMONTOP", + "SPECIES_VIGOROTH", + "SPECIES_WALREIN", + "SPECIES_LATIAS", + "SPECIES_LUXRAY", + "SPECIES_GABITE", + "SPECIES_CARNIVINE", + "SPECIES_PROBOPASS", + "SPECIES_PIDGEOT", + "SPECIES_VENOMOTH", + "SPECIES_ALAKAZAM", + "SPECIES_MACHOKE", + "SPECIES_CLOYSTER", + "SPECIES_GENGAR", + "SPECIES_HITMONLEE", + "SPECIES_SCYTHER", + "SPECIES_PINSIR", + "SPECIES_XATU", + "SPECIES_GIRAFARIG", + "SPECIES_DUNSPARCE", + "SPECIES_HERACROSS", + "SPECIES_BLISSEY", + "SPECIES_SWAMPERT", + "SPECIES_LUDICOLO", + "SPECIES_EXPLOUD", + "SPECIES_MANECTRIC", + "SPECIES_CLAYDOL", + "SPECIES_CRADILY", + "SPECIES_ARMALDO", + "SPECIES_GLALIE", + "SPECIES_SALAMENCE", + "SPECIES_TOGEKISS", + "SPECIES_CRESSELIA", + "SPECIES_DARKRAI", + "SPECIES_BLASTOISE", + "SPECIES_GOLBAT", + "SPECIES_MACHAMP", + "SPECIES_TENTACRUEL", + "SPECIES_SLOWBRO", + "SPECIES_HAUNTER", + "SPECIES_HYPNO", + "SPECIES_ZAPDOS", + "SPECIES_NOCTOWL", + "SPECIES_GARDEVOIR", + "SPECIES_DUSCLOPS", + "SPECIES_METAGROSS", + "SPECIES_RAMPARDOS", + "SPECIES_MAGMORTAR", + "SPECIES_GALLADE", + "SPECIES_CHARIZARD", + "SPECIES_GOLDUCK", + "SPECIES_VICTREEBEL", + "SPECIES_RAPIDASH", + "SPECIES_DEWGONG", + "SPECIES_ARTICUNO", + "SPECIES_TYPHLOSION", + "SPECIES_SKARMORY", + "SPECIES_SCEPTILE", + "SPECIES_SWALOT", + "SPECIES_HUNTAIL", + "SPECIES_REGIROCK", + "SPECIES_DEOXYS", + "SPECIES_EMPOLEON", + "SPECIES_LICKILICKY", + "SPECIES_HEATRAN", + "SPECIES_DODRIO", + "SPECIES_AERODACTYL", + "SPECIES_DRATINI", + "SPECIES_MEGANIUM", + "SPECIES_FURRET", + "SPECIES_CROBAT", + "SPECIES_SCIZOR", + "SPECIES_URSARING", + "SPECIES_KINGDRA", + "SPECIES_SHARPEDO", + "SPECIES_GOREBYSS", + "SPECIES_REGICE", + "SPECIES_ELECTIVIRE", + "SPECIES_ARCANINE", + "SPECIES_RHYDON", + "SPECIES_RAIKOU", + "SPECIES_BLAZIKEN", + "SPECIES_CAMERUPT", + "SPECIES_REGISTEEL", + "SPECIES_GARCHOMP", + "SPECIES_YANMEGA", + "SPECIES_VENUSAUR", + "SPECIES_EKANS", + "SPECIES_EXEGGUTOR", + "SPECIES_MOLTRES", + "SPECIES_MEWTWO", + "SPECIES_SLOWKING", + "SPECIES_SUICUNE", + "SPECIES_TYRANITAR", + "SPECIES_SLAKING", + "SPECIES_WAILMER", + "SPECIES_FLYGON", + "SPECIES_TROPIUS", + "SPECIES_LATIOS", + "SPECIES_HIPPOWDON", + "SPECIES_TANGROWTH", + "SPECIES_GLISCOR", + "SPECIES_SNORLAX", + "SPECIES_MANTINE", + "SPECIES_ENTEI", + "SPECIES_AGGRON", + "SPECIES_KANGASKHAN", + "SPECIES_DRAGONITE", + "SPECIES_TORTERRA", + "SPECIES_ABOMASNOW", + "SPECIES_DUSKNOIR", + "SPECIES_FERALIGATR", + "SPECIES_HARIYAMA", + "SPECIES_RHYPERIOR", + "SPECIES_LAPRAS", + "SPECIES_MAMOSWINE", + "SPECIES_SEVIPER", + "SPECIES_ARCEUS", + "SPECIES_ARBOK", + "SPECIES_GROUDON", + "SPECIES_REGIGIGAS", + "SPECIES_HO_OH", + "SPECIES_DRAGONAIR", + "SPECIES_PALKIA", + "SPECIES_KYOGRE", + "SPECIES_LUGIA", + "SPECIES_DIALGA", + "SPECIES_MILOTIC", + "SPECIES_GYARADOS", + "SPECIES_GIRATINA", + "SPECIES_RAYQUAZA", + "SPECIES_ONIX", + "SPECIES_STEELIX", + "SPECIES_WAILORD" + ], + "origin": [ + "SPECIES_DIGLETT", + "SPECIES_NATU", + "SPECIES_AZURILL", + "SPECIES_BUDEW", + "SPECIES_BURMY", + "SPECIES_CHINGLING", + "SPECIES_SHAYMIN", + "SPECIES_CATERPIE", + "SPECIES_WEEDLE", + "SPECIES_PIDGEY", + "SPECIES_RATTATA", + "SPECIES_SPEAROW", + "SPECIES_PARAS", + "SPECIES_MAGNEMITE", + "SPECIES_SHELLDER", + "SPECIES_DITTO", + "SPECIES_EEVEE", + "SPECIES_PICHU", + "SPECIES_CLEFFA", + "SPECIES_IGGLYBUFF", + "SPECIES_TOGEPI", + "SPECIES_SUNKERN", + "SPECIES_WURMPLE", + "SPECIES_TAILLOW", + "SPECIES_ROSELIA", + "SPECIES_CASTFORM", + "SPECIES_JIRACHI", + "SPECIES_STARLY", + "SPECIES_KRICKETOT", + "SPECIES_COMBEE", + "SPECIES_SHELLOS", + "SPECIES_ROTOM", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_MANAPHY", + "SPECIES_PIKACHU", + "SPECIES_NIDORAN_F", + "SPECIES_MEOWTH", + "SPECIES_GEODUDE", + "SPECIES_KRABBY", + "SPECIES_EXEGGCUTE", + "SPECIES_CUBONE", + "SPECIES_HORSEA", + "SPECIES_OMANYTE", + "SPECIES_MEW", + "SPECIES_BELLOSSOM", + "SPECIES_MARILL", + "SPECIES_HOPPIP", + "SPECIES_WOOPER", + "SPECIES_SWINUB", + "SPECIES_SMOOCHUM", + "SPECIES_TORCHIC", + "SPECIES_MUDKIP", + "SPECIES_ZIGZAGOON", + "SPECIES_RALTS", + "SPECIES_SHROOMISH", + "SPECIES_ARON", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_GULPIN", + "SPECIES_CACNEA", + "SPECIES_SWABLU", + "SPECIES_BARBOACH", + "SPECIES_CLAMPERL", + "SPECIES_TURTWIG", + "SPECIES_PIPLUP", + "SPECIES_PACHIRISU", + "SPECIES_CHERUBI", + "SPECIES_DRIFLOON", + "SPECIES_BUNEARY", + "SPECIES_STUNKY", + "SPECIES_FINNEON", + "SPECIES_PHIONE", + "SPECIES_SQUIRTLE", + "SPECIES_NIDORAN_M", + "SPECIES_JIGGLYPUFF", + "SPECIES_ODDISH", + "SPECIES_MANKEY", + "SPECIES_VOLTORB", + "SPECIES_KABUTO", + "SPECIES_CYNDAQUIL", + "SPECIES_SPINARAK", + "SPECIES_CHINCHOU", + "SPECIES_MURKROW", + "SPECIES_UNOWN", + "SPECIES_QWILFISH", + "SPECIES_PHANPY", + "SPECIES_TREECKO", + "SPECIES_POOCHYENA", + "SPECIES_LINOONE", + "SPECIES_LOTAD", + "SPECIES_SEEDOT", + "SPECIES_SURSKIT", + "SPECIES_NINCADA", + "SPECIES_SABLEYE", + "SPECIES_TORKOAL", + "SPECIES_BALTOY", + "SPECIES_CHIMCHAR", + "SPECIES_BIDOOF", + "SPECIES_SHINX", + "SPECIES_SHIELDON", + "SPECIES_WORMADAM", + "SPECIES_CHERRIM", + "SPECIES_GLAMEOW", + "SPECIES_BRONZOR", + "SPECIES_BONSLY", + "SPECIES_CHATOT", + "SPECIES_CHARMANDER", + "SPECIES_KAKUNA", + "SPECIES_SANDSHREW", + "SPECIES_CLEFAIRY", + "SPECIES_VULPIX", + "SPECIES_POLIWAG", + "SPECIES_KOFFING", + "SPECIES_GOLDEEN", + "SPECIES_TOTODILE", + "SPECIES_TOGETIC", + "SPECIES_MAREEP", + "SPECIES_SKIPLOOM", + "SPECIES_PINECO", + "SPECIES_SNUBBULL", + "SPECIES_SHUCKLE", + "SPECIES_TEDDIURSA", + "SPECIES_CORSOLA", + "SPECIES_REMORAID", + "SPECIES_HOUNDOUR", + "SPECIES_PORYGON2", + "SPECIES_ELEKID", + "SPECIES_LARVITAR", + "SPECIES_CELEBI", + "SPECIES_SILCOON", + "SPECIES_WINGULL", + "SPECIES_WHISMUR", + "SPECIES_SKITTY", + "SPECIES_MAWILE", + "SPECIES_MEDITITE", + "SPECIES_ELECTRIKE", + "SPECIES_ILLUMISE", + "SPECIES_CORPHISH", + "SPECIES_FEEBAS", + "SPECIES_SHUPPET", + "SPECIES_CHIMECHO", + "SPECIES_WYNAUT", + "SPECIES_LUVDISC", + "SPECIES_BAGON", + "SPECIES_BELDUM", + "SPECIES_STARAVIA", + "SPECIES_MIME_JR", + "SPECIES_HAPPINY", + "SPECIES_MUNCHLAX", + "SPECIES_BULBASAUR", + "SPECIES_METAPOD", + "SPECIES_RATICATE", + "SPECIES_DUGTRIO", + "SPECIES_GROWLITHE", + "SPECIES_BELLSPROUT", + "SPECIES_HOOTHOOT", + "SPECIES_MISDREAVUS", + "SPECIES_SLUGMA", + "SPECIES_TYROGUE", + "SPECIES_MAGBY", + "SPECIES_MARSHTOMP", + "SPECIES_CASCOON", + "SPECIES_SWELLOW", + "SPECIES_VOLBEAT", + "SPECIES_NUMEL", + "SPECIES_SPOINK", + "SPECIES_TRAPINCH", + "SPECIES_ANORITH", + "SPECIES_SNORUNT", + "SPECIES_BUIZEL", + "SPECIES_GIBLE", + "SPECIES_RIOLU", + "SPECIES_CROAGUNK", + "SPECIES_RAICHU", + "SPECIES_NIDORINA", + "SPECIES_ZUBAT", + "SPECIES_GLOOM", + "SPECIES_PSYDUCK", + "SPECIES_MACHOP", + "SPECIES_FARFETCHD", + "SPECIES_STARYU", + "SPECIES_JOLTEON", + "SPECIES_PORYGON", + "SPECIES_SENTRET", + "SPECIES_FLAAFFY", + "SPECIES_AZUMARILL", + "SPECIES_JUMPLUFF", + "SPECIES_AIPOM", + "SPECIES_SUNFLORA", + "SPECIES_MAGCARGO", + "SPECIES_KIRLIA", + "SPECIES_MASQUERAIN", + "SPECIES_SLAKOTH", + "SPECIES_NINJASK", + "SPECIES_SHEDINJA", + "SPECIES_CARVANHA", + "SPECIES_DUSKULL", + "SPECIES_SPHEAL", + "SPECIES_PRINPLUP", + "SPECIES_HIPPOPOTAS", + "SPECIES_SKORUPI", + "SPECIES_GLACEON", + "SPECIES_NIDORINO", + "SPECIES_ABRA", + "SPECIES_TENTACOOL", + "SPECIES_GRIMER", + "SPECIES_MAGIKARP", + "SPECIES_FLAREON", + "SPECIES_CHIKORITA", + "SPECIES_QUILAVA", + "SPECIES_ESPEON", + "SPECIES_SNEASEL", + "SPECIES_OCTILLERY", + "SPECIES_DELIBIRD", + "SPECIES_GROVYLE", + "SPECIES_COMBUSKEN", + "SPECIES_LAIRON", + "SPECIES_GRUMPIG", + "SPECIES_WHISCASH", + "SPECIES_MONFERNO", + "SPECIES_LUXIO", + "SPECIES_ROSERADE", + "SPECIES_CRANIDOS", + "SPECIES_MOTHIM", + "SPECIES_GASTRODON", + "SPECIES_MISMAGIUS", + "SPECIES_HONCHKROW", + "SPECIES_PORYGON_Z", + "SPECIES_IVYSAUR", + "SPECIES_WARTORTLE", + "SPECIES_BEEDRILL", + "SPECIES_SANDSLASH", + "SPECIES_WIGGLYTUFF", + "SPECIES_PARASECT", + "SPECIES_VENONAT", + "SPECIES_PERSIAN", + "SPECIES_PRIMEAPE", + "SPECIES_POLIWHIRL", + "SPECIES_WEEPINBELL", + "SPECIES_GRAVELER", + "SPECIES_PONYTA", + "SPECIES_MAGNETON", + "SPECIES_DROWZEE", + "SPECIES_MAROWAK", + "SPECIES_RHYHORN", + "SPECIES_TANGELA", + "SPECIES_VAPOREON", + "SPECIES_OMASTAR", + "SPECIES_LEDYBA", + "SPECIES_UMBREON", + "SPECIES_MIGHTYENA", + "SPECIES_BEAUTIFLY", + "SPECIES_NUZLEAF", + "SPECIES_LOUDRED", + "SPECIES_MAKUHITA", + "SPECIES_NOSEPASS", + "SPECIES_LUNATONE", + "SPECIES_LILEEP", + "SPECIES_KECLEON", + "SPECIES_RELICANTH", + "SPECIES_BIBAREL", + "SPECIES_KRICKETUNE", + "SPECIES_PURUGLY", + "SPECIES_SKUNTANK", + "SPECIES_SPIRITOMB", + "SPECIES_MANTYKE", + "SPECIES_SNOVER", + "SPECIES_LEAFEON", + "SPECIES_CHARMELEON", + "SPECIES_BUTTERFREE", + "SPECIES_PIDGEOTTO", + "SPECIES_NINETALES", + "SPECIES_SEEL", + "SPECIES_CHANSEY", + "SPECIES_STARMIE", + "SPECIES_ELECTABUZZ", + "SPECIES_CROCONAW", + "SPECIES_ARIADOS", + "SPECIES_POLITOED", + "SPECIES_GLIGAR", + "SPECIES_PILOSWINE", + "SPECIES_DONPHAN", + "SPECIES_DELCATTY", + "SPECIES_SPINDA", + "SPECIES_VIBRAVA", + "SPECIES_ALTARIA", + "SPECIES_CRAWDAUNT", + "SPECIES_BANETTE", + "SPECIES_SEALEO", + "SPECIES_SHELGON", + "SPECIES_GROTLE", + "SPECIES_FLOATZEL", + "SPECIES_WEAVILE", + "SPECIES_FEAROW", + "SPECIES_VILEPLUME", + "SPECIES_SLOWPOKE", + "SPECIES_MUK", + "SPECIES_ELECTRODE", + "SPECIES_LICKITUNG", + "SPECIES_WEEZING", + "SPECIES_SEADRA", + "SPECIES_BAYLEEF", + "SPECIES_LANTURN", + "SPECIES_SUDOWOODO", + "SPECIES_YANMA", + "SPECIES_FORRETRESS", + "SPECIES_SMEARGLE", + "SPECIES_MILTANK", + "SPECIES_PUPITAR", + "SPECIES_DUSTOX", + "SPECIES_LOMBRE", + "SPECIES_PELIPPER", + "SPECIES_BRELOOM", + "SPECIES_SOLROCK", + "SPECIES_ABSOL", + "SPECIES_METANG", + "SPECIES_INFERNAPE", + "SPECIES_STARAPTOR", + "SPECIES_VESPIQUEN", + "SPECIES_AMBIPOM", + "SPECIES_DRIFBLIM", + "SPECIES_LOPUNNY", + "SPECIES_LUCARIO", + "SPECIES_LUMINEON", + "SPECIES_MAGNEZONE", + "SPECIES_NIDOQUEEN", + "SPECIES_CLEFABLE", + "SPECIES_POLIWRATH", + "SPECIES_KADABRA", + "SPECIES_GASTLY", + "SPECIES_KINGLER", + "SPECIES_SEAKING", + "SPECIES_MR_MIME", + "SPECIES_MAGMAR", + "SPECIES_KABUTOPS", + "SPECIES_WOBBUFFET", + "SPECIES_SHIFTRY", + "SPECIES_MEDICHAM", + "SPECIES_CACTURNE", + "SPECIES_ZANGOOSE", + "SPECIES_BASTIODON", + "SPECIES_BRONZONG", + "SPECIES_DRAPION", + "SPECIES_TOXICROAK", + "SPECIES_FROSLASS", + "SPECIES_NIDOKING", + "SPECIES_GOLEM", + "SPECIES_DODUO", + "SPECIES_HITMONCHAN", + "SPECIES_JYNX", + "SPECIES_TAUROS", + "SPECIES_LEDIAN", + "SPECIES_AMPHAROS", + "SPECIES_QUAGSIRE", + "SPECIES_GRANBULL", + "SPECIES_HOUNDOOM", + "SPECIES_STANTLER", + "SPECIES_HITMONTOP", + "SPECIES_VIGOROTH", + "SPECIES_WALREIN", + "SPECIES_LATIAS", + "SPECIES_LUXRAY", + "SPECIES_GABITE", + "SPECIES_CARNIVINE", + "SPECIES_PROBOPASS", + "SPECIES_PIDGEOT", + "SPECIES_VENOMOTH", + "SPECIES_ALAKAZAM", + "SPECIES_MACHOKE", + "SPECIES_CLOYSTER", + "SPECIES_GENGAR", + "SPECIES_HITMONLEE", + "SPECIES_SCYTHER", + "SPECIES_PINSIR", + "SPECIES_XATU", + "SPECIES_GIRAFARIG", + "SPECIES_DUNSPARCE", + "SPECIES_HERACROSS", + "SPECIES_BLISSEY", + "SPECIES_SWAMPERT", + "SPECIES_LUDICOLO", + "SPECIES_EXPLOUD", + "SPECIES_MANECTRIC", + "SPECIES_CLAYDOL", + "SPECIES_CRADILY", + "SPECIES_ARMALDO", + "SPECIES_GLALIE", + "SPECIES_SALAMENCE", + "SPECIES_TOGEKISS", + "SPECIES_CRESSELIA", + "SPECIES_DARKRAI", + "SPECIES_BLASTOISE", + "SPECIES_GOLBAT", + "SPECIES_MACHAMP", + "SPECIES_TENTACRUEL", + "SPECIES_SLOWBRO", + "SPECIES_HAUNTER", + "SPECIES_HYPNO", + "SPECIES_ZAPDOS", + "SPECIES_NOCTOWL", + "SPECIES_GARDEVOIR", + "SPECIES_DUSCLOPS", + "SPECIES_METAGROSS", + "SPECIES_RAMPARDOS", + "SPECIES_MAGMORTAR", + "SPECIES_GALLADE", + "SPECIES_CHARIZARD", + "SPECIES_GOLDUCK", + "SPECIES_VICTREEBEL", + "SPECIES_RAPIDASH", + "SPECIES_DEWGONG", + "SPECIES_ARTICUNO", + "SPECIES_TYPHLOSION", + "SPECIES_SKARMORY", + "SPECIES_SCEPTILE", + "SPECIES_SWALOT", + "SPECIES_HUNTAIL", + "SPECIES_REGIROCK", + "SPECIES_DEOXYS", + "SPECIES_EMPOLEON", + "SPECIES_LICKILICKY", + "SPECIES_HEATRAN", + "SPECIES_DODRIO", + "SPECIES_AERODACTYL", + "SPECIES_DRATINI", + "SPECIES_MEGANIUM", + "SPECIES_FURRET", + "SPECIES_CROBAT", + "SPECIES_SCIZOR", + "SPECIES_URSARING", + "SPECIES_KINGDRA", + "SPECIES_SHARPEDO", + "SPECIES_GOREBYSS", + "SPECIES_REGICE", + "SPECIES_ELECTIVIRE", + "SPECIES_ARCANINE", + "SPECIES_RHYDON", + "SPECIES_RAIKOU", + "SPECIES_BLAZIKEN", + "SPECIES_CAMERUPT", + "SPECIES_REGISTEEL", + "SPECIES_GARCHOMP", + "SPECIES_YANMEGA", + "SPECIES_VENUSAUR", + "SPECIES_EKANS", + "SPECIES_EXEGGUTOR", + "SPECIES_MOLTRES", + "SPECIES_MEWTWO", + "SPECIES_SLOWKING", + "SPECIES_SUICUNE", + "SPECIES_TYRANITAR", + "SPECIES_SLAKING", + "SPECIES_WAILMER", + "SPECIES_FLYGON", + "SPECIES_TROPIUS", + "SPECIES_LATIOS", + "SPECIES_HIPPOWDON", + "SPECIES_TANGROWTH", + "SPECIES_GLISCOR", + "SPECIES_SNORLAX", + "SPECIES_MANTINE", + "SPECIES_ENTEI", + "SPECIES_AGGRON", + "SPECIES_KANGASKHAN", + "SPECIES_DRAGONITE", + "SPECIES_TORTERRA", + "SPECIES_ABOMASNOW", + "SPECIES_DUSKNOIR", + "SPECIES_FERALIGATR", + "SPECIES_HARIYAMA", + "SPECIES_RHYPERIOR", + "SPECIES_LAPRAS", + "SPECIES_MAMOSWINE", + "SPECIES_SEVIPER", + "SPECIES_ARCEUS", + "SPECIES_ARBOK", + "SPECIES_GROUDON", + "SPECIES_REGIGIGAS", + "SPECIES_HO_OH", + "SPECIES_DRAGONAIR", + "SPECIES_PALKIA", + "SPECIES_KYOGRE", + "SPECIES_GIRATINA", + "SPECIES_LUGIA", + "SPECIES_DIALGA", + "SPECIES_MILOTIC", + "SPECIES_GYARADOS", + "SPECIES_RAYQUAZA", + "SPECIES_ONIX", + "SPECIES_STEELIX", + "SPECIES_WAILORD" + ] + } + } + ] + }, + { + "type": "letters", + "options": [ + { + "id": "a", + "mons": [ + "SPECIES_ABOMASNOW", + "SPECIES_ABRA", + "SPECIES_ABSOL", + "SPECIES_AERODACTYL", + "SPECIES_AGGRON", + "SPECIES_AIPOM", + "SPECIES_ALAKAZAM", + "SPECIES_ALTARIA", + "SPECIES_AMBIPOM", + "SPECIES_AMPHAROS", + "SPECIES_ANORITH", + "SPECIES_ARBOK", + "SPECIES_ARCANINE", + "SPECIES_ARCEUS", + "SPECIES_ARIADOS", + "SPECIES_ARMALDO", + "SPECIES_ARON", + "SPECIES_ARTICUNO", + "SPECIES_AZELF", + "SPECIES_AZUMARILL", + "SPECIES_AZURILL" + ] + }, + { + "id": "b", + "mons": [ + "SPECIES_BAGON", + "SPECIES_BALTOY", + "SPECIES_BANETTE", + "SPECIES_BARBOACH", + "SPECIES_BASTIODON", + "SPECIES_BAYLEEF", + "SPECIES_BEAUTIFLY", + "SPECIES_BEEDRILL", + "SPECIES_BELDUM", + "SPECIES_BELLOSSOM", + "SPECIES_BELLSPROUT", + "SPECIES_BIBAREL", + "SPECIES_BIDOOF", + "SPECIES_BLASTOISE", + "SPECIES_BLAZIKEN", + "SPECIES_BLISSEY", + "SPECIES_BONSLY", + "SPECIES_BRELOOM", + "SPECIES_BRONZONG", + "SPECIES_BRONZOR", + "SPECIES_BUDEW", + "SPECIES_BUIZEL", + "SPECIES_BULBASAUR", + "SPECIES_BUNEARY", + "SPECIES_BURMY", + "SPECIES_BUTTERFREE" + ] + }, + { + "id": "c", + "mons": [ + "SPECIES_CACNEA", + "SPECIES_CACTURNE", + "SPECIES_CAMERUPT", + "SPECIES_CARNIVINE", + "SPECIES_CARVANHA", + "SPECIES_CASCOON", + "SPECIES_CASTFORM", + "SPECIES_CATERPIE", + "SPECIES_CELEBI", + "SPECIES_CHANSEY", + "SPECIES_CHARIZARD", + "SPECIES_CHARMANDER", + "SPECIES_CHARMELEON", + "SPECIES_CHATOT", + "SPECIES_CHERRIM", + "SPECIES_CHERUBI", + "SPECIES_CHIKORITA", + "SPECIES_CHIMCHAR", + "SPECIES_CHIMECHO", + "SPECIES_CHINCHOU", + "SPECIES_CHINGLING", + "SPECIES_CLAMPERL", + "SPECIES_CLAYDOL", + "SPECIES_CLEFABLE", + "SPECIES_CLEFAIRY", + "SPECIES_CLEFFA", + "SPECIES_CLOYSTER", + "SPECIES_COMBEE", + "SPECIES_COMBUSKEN", + "SPECIES_CORPHISH", + "SPECIES_CORSOLA", + "SPECIES_CRADILY", + "SPECIES_CRANIDOS", + "SPECIES_CRAWDAUNT", + "SPECIES_CRESSELIA", + "SPECIES_CROAGUNK", + "SPECIES_CROBAT", + "SPECIES_CROCONAW", + "SPECIES_CUBONE", + "SPECIES_CYNDAQUIL" + ] + }, + { + "id": "d", + "mons": [ + "SPECIES_DARKRAI", + "SPECIES_DELCATTY", + "SPECIES_DELIBIRD", + "SPECIES_DEOXYS", + "SPECIES_DEWGONG", + "SPECIES_DIALGA", + "SPECIES_DIGLETT", + "SPECIES_DITTO", + "SPECIES_DODRIO", + "SPECIES_DODUO", + "SPECIES_DONPHAN", + "SPECIES_DRAGONAIR", + "SPECIES_DRAGONITE", + "SPECIES_DRAPION", + "SPECIES_DRATINI", + "SPECIES_DRIFBLIM", + "SPECIES_DRIFLOON", + "SPECIES_DROWZEE", + "SPECIES_DUGTRIO", + "SPECIES_DUNSPARCE", + "SPECIES_DUSCLOPS", + "SPECIES_DUSKNOIR", + "SPECIES_DUSKULL", + "SPECIES_DUSTOX" + ] + }, + { + "id": "e", + "mons": [ + "SPECIES_EEVEE", + "SPECIES_EKANS", + "SPECIES_ELECTABUZZ", + "SPECIES_ELECTIVIRE", + "SPECIES_ELECTRIKE", + "SPECIES_ELECTRODE", + "SPECIES_ELEKID", + "SPECIES_EMPOLEON", + "SPECIES_ENTEI", + "SPECIES_ESPEON", + "SPECIES_EXEGGCUTE", + "SPECIES_EXEGGUTOR", + "SPECIES_EXPLOUD" + ] + }, + { + "id": "f", + "mons": [ + "SPECIES_FARFETCHD", + "SPECIES_FEAROW", + "SPECIES_FEEBAS", + "SPECIES_FERALIGATR", + "SPECIES_FINNEON", + "SPECIES_FLAAFFY", + "SPECIES_FLAREON", + "SPECIES_FLOATZEL", + "SPECIES_FLYGON", + "SPECIES_FORRETRESS", + "SPECIES_FROSLASS", + "SPECIES_FURRET" + ] + }, + { + "id": "g", + "mons": [ + "SPECIES_GABITE", + "SPECIES_GALLADE", + "SPECIES_GARCHOMP", + "SPECIES_GARDEVOIR", + "SPECIES_GASTLY", + "SPECIES_GASTRODON", + "SPECIES_GENGAR", + "SPECIES_GEODUDE", + "SPECIES_GIBLE", + "SPECIES_GIRAFARIG", + "SPECIES_GIRATINA", + "SPECIES_GLACEON", + "SPECIES_GLALIE", + "SPECIES_GLAMEOW", + "SPECIES_GLIGAR", + "SPECIES_GLISCOR", + "SPECIES_GLOOM", + "SPECIES_GOLBAT", + "SPECIES_GOLDEEN", + "SPECIES_GOLDUCK", + "SPECIES_GOLEM", + "SPECIES_GOREBYSS", + "SPECIES_GRANBULL", + "SPECIES_GRAVELER", + "SPECIES_GRIMER", + "SPECIES_GROTLE", + "SPECIES_GROUDON", + "SPECIES_GROVYLE", + "SPECIES_GROWLITHE", + "SPECIES_GRUMPIG", + "SPECIES_GULPIN", + "SPECIES_GYARADOS" + ] + }, + { + "id": "h", + "mons": [ + "SPECIES_HAPPINY", + "SPECIES_HARIYAMA", + "SPECIES_HAUNTER", + "SPECIES_HEATRAN", + "SPECIES_HERACROSS", + "SPECIES_HIPPOPOTAS", + "SPECIES_HIPPOWDON", + "SPECIES_HITMONCHAN", + "SPECIES_HITMONLEE", + "SPECIES_HITMONTOP", + "SPECIES_HO_OH", + "SPECIES_HONCHKROW", + "SPECIES_HOOTHOOT", + "SPECIES_HOPPIP", + "SPECIES_HORSEA", + "SPECIES_HOUNDOOM", + "SPECIES_HOUNDOUR", + "SPECIES_HUNTAIL", + "SPECIES_HYPNO" + ] + }, + { + "id": "i", + "mons": [ + "SPECIES_IGGLYBUFF", + "SPECIES_ILLUMISE", + "SPECIES_INFERNAPE", + "SPECIES_IVYSAUR" + ] + }, + { + "id": "j", + "mons": [ + "SPECIES_JIGGLYPUFF", + "SPECIES_JIRACHI", + "SPECIES_JOLTEON", + "SPECIES_JUMPLUFF", + "SPECIES_JYNX" + ] + }, + { + "id": "k", + "mons": [ + "SPECIES_KABUTO", + "SPECIES_KABUTOPS", + "SPECIES_KADABRA", + "SPECIES_KAKUNA", + "SPECIES_KANGASKHAN", + "SPECIES_KECLEON", + "SPECIES_KINGDRA", + "SPECIES_KINGLER", + "SPECIES_KIRLIA", + "SPECIES_KOFFING", + "SPECIES_KRABBY", + "SPECIES_KRICKETOT", + "SPECIES_KRICKETUNE", + "SPECIES_KYOGRE" + ] + }, + { + "id": "l", + "mons": [ + "SPECIES_LAIRON", + "SPECIES_LANTURN", + "SPECIES_LAPRAS", + "SPECIES_LARVITAR", + "SPECIES_LATIAS", + "SPECIES_LATIOS", + "SPECIES_LEAFEON", + "SPECIES_LEDIAN", + "SPECIES_LEDYBA", + "SPECIES_LICKILICKY", + "SPECIES_LICKITUNG", + "SPECIES_LILEEP", + "SPECIES_LINOONE", + "SPECIES_LOMBRE", + "SPECIES_LOPUNNY", + "SPECIES_LOTAD", + "SPECIES_LOUDRED", + "SPECIES_LUCARIO", + "SPECIES_LUDICOLO", + "SPECIES_LUGIA", + "SPECIES_LUMINEON", + "SPECIES_LUNATONE", + "SPECIES_LUVDISC", + "SPECIES_LUXIO", + "SPECIES_LUXRAY" + ] + }, + { + "id": "m", + "mons": [ + "SPECIES_MACHAMP", + "SPECIES_MACHOKE", + "SPECIES_MACHOP", + "SPECIES_MAGBY", + "SPECIES_MAGCARGO", + "SPECIES_MAGIKARP", + "SPECIES_MAGMAR", + "SPECIES_MAGMORTAR", + "SPECIES_MAGNEMITE", + "SPECIES_MAGNETON", + "SPECIES_MAGNEZONE", + "SPECIES_MAKUHITA", + "SPECIES_MAMOSWINE", + "SPECIES_MANAPHY", + "SPECIES_MANECTRIC", + "SPECIES_MANKEY", + "SPECIES_MANTINE", + "SPECIES_MANTYKE", + "SPECIES_MAREEP", + "SPECIES_MARILL", + "SPECIES_MAROWAK", + "SPECIES_MARSHTOMP", + "SPECIES_MASQUERAIN", + "SPECIES_MAWILE", + "SPECIES_MEDICHAM", + "SPECIES_MEDITITE", + "SPECIES_MEGANIUM", + "SPECIES_MEOWTH", + "SPECIES_MESPRIT", + "SPECIES_METAGROSS", + "SPECIES_METANG", + "SPECIES_METAPOD", + "SPECIES_MEW", + "SPECIES_MEWTWO", + "SPECIES_MIGHTYENA", + "SPECIES_MILOTIC", + "SPECIES_MILTANK", + "SPECIES_MIME_JR", + "SPECIES_MINUN", + "SPECIES_MISDREAVUS", + "SPECIES_MISMAGIUS", + "SPECIES_MOLTRES", + "SPECIES_MONFERNO", + "SPECIES_MOTHIM", + "SPECIES_MR_MIME", + "SPECIES_MUDKIP", + "SPECIES_MUK", + "SPECIES_MUNCHLAX", + "SPECIES_MURKROW" + ] + }, + { + "id": "n", + "mons": [ + "SPECIES_NATU", + "SPECIES_NIDOKING", + "SPECIES_NIDOQUEEN", + "SPECIES_NIDORAN_M", + "SPECIES_NIDORAN_F", + "SPECIES_NIDORINA", + "SPECIES_NIDORINO", + "SPECIES_NINCADA", + "SPECIES_NINETALES", + "SPECIES_NINJASK", + "SPECIES_NOCTOWL", + "SPECIES_NOSEPASS", + "SPECIES_NUMEL", + "SPECIES_NUZLEAF" + ] + }, + { + "id": "o", + "mons": [ + "SPECIES_OCTILLERY", + "SPECIES_ODDISH", + "SPECIES_OMANYTE", + "SPECIES_OMASTAR", + "SPECIES_ONIX" + ] + }, + { + "id": "p", + "mons": [ + "SPECIES_PACHIRISU", + "SPECIES_PALKIA", + "SPECIES_PARAS", + "SPECIES_PARASECT", + "SPECIES_PELIPPER", + "SPECIES_PERSIAN", + "SPECIES_PHANPY", + "SPECIES_PHIONE", + "SPECIES_PICHU", + "SPECIES_PIDGEOT", + "SPECIES_PIDGEOTTO", + "SPECIES_PIDGEY", + "SPECIES_PIKACHU", + "SPECIES_PILOSWINE", + "SPECIES_PINECO", + "SPECIES_PINSIR", + "SPECIES_PIPLUP", + "SPECIES_PLUSLE", + "SPECIES_POLITOED", + "SPECIES_POLIWAG", + "SPECIES_POLIWHIRL", + "SPECIES_POLIWRATH", + "SPECIES_PONYTA", + "SPECIES_POOCHYENA", + "SPECIES_PORYGON", + "SPECIES_PORYGON_Z", + "SPECIES_PORYGON2", + "SPECIES_PRIMEAPE", + "SPECIES_PRINPLUP", + "SPECIES_PROBOPASS", + "SPECIES_PSYDUCK", + "SPECIES_PUPITAR", + "SPECIES_PURUGLY" + ] + }, + { + "id": "q", + "mons": [ + "SPECIES_QUAGSIRE", + "SPECIES_QUILAVA", + "SPECIES_QWILFISH" + ] + }, + { + "id": "r", + "mons": [ + "SPECIES_RAICHU", + "SPECIES_RAIKOU", + "SPECIES_RALTS", + "SPECIES_RAMPARDOS", + "SPECIES_RAPIDASH", + "SPECIES_RATICATE", + "SPECIES_RATTATA", + "SPECIES_RAYQUAZA", + "SPECIES_REGICE", + "SPECIES_REGIGIGAS", + "SPECIES_REGIROCK", + "SPECIES_REGISTEEL", + "SPECIES_RELICANTH", + "SPECIES_REMORAID", + "SPECIES_RHYDON", + "SPECIES_RHYHORN", + "SPECIES_RHYPERIOR", + "SPECIES_RIOLU", + "SPECIES_ROSELIA", + "SPECIES_ROSERADE", + "SPECIES_ROTOM" + ] + }, + { + "id": "s", + "mons": [ + "SPECIES_SABLEYE", + "SPECIES_SALAMENCE", + "SPECIES_SANDSHREW", + "SPECIES_SANDSLASH", + "SPECIES_SCEPTILE", + "SPECIES_SCIZOR", + "SPECIES_SCYTHER", + "SPECIES_SEADRA", + "SPECIES_SEAKING", + "SPECIES_SEALEO", + "SPECIES_SEEDOT", + "SPECIES_SEEL", + "SPECIES_SENTRET", + "SPECIES_SEVIPER", + "SPECIES_SHARPEDO", + "SPECIES_SHAYMIN", + "SPECIES_SHEDINJA", + "SPECIES_SHELGON", + "SPECIES_SHELLDER", + "SPECIES_SHELLOS", + "SPECIES_SHIELDON", + "SPECIES_SHIFTRY", + "SPECIES_SHINX", + "SPECIES_SHROOMISH", + "SPECIES_SHUCKLE", + "SPECIES_SHUPPET", + "SPECIES_SILCOON", + "SPECIES_SKARMORY", + "SPECIES_SKIPLOOM", + "SPECIES_SKITTY", + "SPECIES_SKORUPI", + "SPECIES_SKUNTANK", + "SPECIES_SLAKING", + "SPECIES_SLAKOTH", + "SPECIES_SLOWBRO", + "SPECIES_SLOWKING", + "SPECIES_SLOWPOKE", + "SPECIES_SLUGMA", + "SPECIES_SMEARGLE", + "SPECIES_SMOOCHUM", + "SPECIES_SNEASEL", + "SPECIES_SNORLAX", + "SPECIES_SNORUNT", + "SPECIES_SNOVER", + "SPECIES_SNUBBULL", + "SPECIES_SOLROCK", + "SPECIES_SPEAROW", + "SPECIES_SPHEAL", + "SPECIES_SPINARAK", + "SPECIES_SPINDA", + "SPECIES_SPIRITOMB", + "SPECIES_SPOINK", + "SPECIES_SQUIRTLE", + "SPECIES_STANTLER", + "SPECIES_STARAPTOR", + "SPECIES_STARAVIA", + "SPECIES_STARLY", + "SPECIES_STARMIE", + "SPECIES_STARYU", + "SPECIES_STEELIX", + "SPECIES_STUNKY", + "SPECIES_SUDOWOODO", + "SPECIES_SUICUNE", + "SPECIES_SUNFLORA", + "SPECIES_SUNKERN", + "SPECIES_SURSKIT", + "SPECIES_SWABLU", + "SPECIES_SWALOT", + "SPECIES_SWAMPERT", + "SPECIES_SWELLOW", + "SPECIES_SWINUB" + ] + }, + { + "id": "t", + "mons": [ + "SPECIES_TAILLOW", + "SPECIES_TANGELA", + "SPECIES_TANGROWTH", + "SPECIES_TAUROS", + "SPECIES_TEDDIURSA", + "SPECIES_TENTACOOL", + "SPECIES_TENTACRUEL", + "SPECIES_TOGEKISS", + "SPECIES_TOGEPI", + "SPECIES_TOGETIC", + "SPECIES_TORCHIC", + "SPECIES_TORKOAL", + "SPECIES_TORTERRA", + "SPECIES_TOTODILE", + "SPECIES_TOXICROAK", + "SPECIES_TRAPINCH", + "SPECIES_TREECKO", + "SPECIES_TROPIUS", + "SPECIES_TURTWIG", + "SPECIES_TYPHLOSION", + "SPECIES_TYRANITAR", + "SPECIES_TYROGUE" + ] + }, + { + "id": "u", + "mons": [ + "SPECIES_UMBREON", + "SPECIES_UNOWN", + "SPECIES_URSARING", + "SPECIES_UXIE" + ] + }, + { + "id": "v", + "mons": [ + "SPECIES_VAPOREON", + "SPECIES_VENOMOTH", + "SPECIES_VENONAT", + "SPECIES_VENUSAUR", + "SPECIES_VESPIQUEN", + "SPECIES_VIBRAVA", + "SPECIES_VICTREEBEL", + "SPECIES_VIGOROTH", + "SPECIES_VILEPLUME", + "SPECIES_VOLBEAT", + "SPECIES_VOLTORB", + "SPECIES_VULPIX" + ] + }, + { + "id": "w", + "mons": [ + "SPECIES_WAILMER", + "SPECIES_WAILORD", + "SPECIES_WALREIN", + "SPECIES_WARTORTLE", + "SPECIES_WEAVILE", + "SPECIES_WEEDLE", + "SPECIES_WEEPINBELL", + "SPECIES_WEEZING", + "SPECIES_WHISCASH", + "SPECIES_WHISMUR", + "SPECIES_WIGGLYTUFF", + "SPECIES_WINGULL", + "SPECIES_WOBBUFFET", + "SPECIES_WOOPER", + "SPECIES_WORMADAM", + "SPECIES_WURMPLE", + "SPECIES_WYNAUT" + ] + }, + { + "id": "x", + "mons": [ + "SPECIES_XATU" + ] + }, + { + "id": "y", + "mons": [ + "SPECIES_YANMA", + "SPECIES_YANMEGA" + ] + }, + { + "id": "z", + "mons": [ + "SPECIES_ZANGOOSE", + "SPECIES_ZAPDOS", + "SPECIES_ZIGZAGOON", + "SPECIES_ZUBAT" + ] + }, + { + "id": "extra_00", + "mons": [] + }, + { + "id": "extra_01", + "mons": [] + }, + { + "id": "extra_02", + "mons": [] + }, + { + "id": "extra_03", + "mons": [] + }, + { + "id": "extra_04", + "mons": [] + }, + { + "id": "extra_05", + "mons": [] + }, + { + "id": "extra_06", + "mons": [] + }, + { + "id": "extra_07", + "mons": [] + }, + { + "id": "extra_08", + "mons": [] + }, + { + "id": "extra_09", + "mons": [] + }, + { + "id": "extra_10", + "mons": [] + }, + { + "id": "extra_11", + "mons": [] + }, + { + "id": "extra_12", + "mons": [] + }, + { + "id": "extra_13", + "mons": [] + }, + { + "id": "extra_14", + "mons": [] + }, + { + "id": "extra_15", + "mons": [] + }, + { + "id": "extra_16", + "mons": [] + }, + { + "id": "extra_17", + "mons": [] + } + ] + }, + { + "type": "types", + "options": [ + { + "id": "normal", + "mons": [ + "SPECIES_PIDGEY", + "SPECIES_PIDGEOTTO", + "SPECIES_PIDGEOT", + "SPECIES_RATTATA", + "SPECIES_RATICATE", + "SPECIES_SPEAROW", + "SPECIES_FEAROW", + "SPECIES_CLEFAIRY", + "SPECIES_CLEFABLE", + "SPECIES_JIGGLYPUFF", + "SPECIES_WIGGLYTUFF", + "SPECIES_MEOWTH", + "SPECIES_PERSIAN", + "SPECIES_FARFETCHD", + "SPECIES_DODUO", + "SPECIES_DODRIO", + "SPECIES_LICKITUNG", + "SPECIES_CHANSEY", + "SPECIES_KANGASKHAN", + "SPECIES_TAUROS", + "SPECIES_DITTO", + "SPECIES_EEVEE", + "SPECIES_PORYGON", + "SPECIES_SNORLAX", + "SPECIES_SENTRET", + "SPECIES_FURRET", + "SPECIES_HOOTHOOT", + "SPECIES_NOCTOWL", + "SPECIES_CLEFFA", + "SPECIES_IGGLYBUFF", + "SPECIES_TOGEPI", + "SPECIES_TOGETIC", + "SPECIES_AIPOM", + "SPECIES_GIRAFARIG", + "SPECIES_DUNSPARCE", + "SPECIES_SNUBBULL", + "SPECIES_GRANBULL", + "SPECIES_TEDDIURSA", + "SPECIES_URSARING", + "SPECIES_PORYGON2", + "SPECIES_STANTLER", + "SPECIES_SMEARGLE", + "SPECIES_MILTANK", + "SPECIES_BLISSEY", + "SPECIES_ZIGZAGOON", + "SPECIES_LINOONE", + "SPECIES_TAILLOW", + "SPECIES_SWELLOW", + "SPECIES_SLAKOTH", + "SPECIES_VIGOROTH", + "SPECIES_SLAKING", + "SPECIES_WHISMUR", + "SPECIES_LOUDRED", + "SPECIES_EXPLOUD", + "SPECIES_AZURILL", + "SPECIES_SKITTY", + "SPECIES_DELCATTY", + "SPECIES_SPINDA", + "SPECIES_SWABLU", + "SPECIES_ZANGOOSE", + "SPECIES_CASTFORM", + "SPECIES_KECLEON", + "SPECIES_STARLY", + "SPECIES_STARAVIA", + "SPECIES_STARAPTOR", + "SPECIES_BIDOOF", + "SPECIES_BIBAREL", + "SPECIES_AMBIPOM", + "SPECIES_BUNEARY", + "SPECIES_LOPUNNY", + "SPECIES_GLAMEOW", + "SPECIES_PURUGLY", + "SPECIES_HAPPINY", + "SPECIES_CHATOT", + "SPECIES_MUNCHLAX", + "SPECIES_LICKILICKY", + "SPECIES_TOGEKISS", + "SPECIES_PORYGON_Z", + "SPECIES_REGIGIGAS", + "SPECIES_ARCEUS" + ] + }, + { + "id": "fighting", + "mons": [ + "SPECIES_MANKEY", + "SPECIES_PRIMEAPE", + "SPECIES_POLIWRATH", + "SPECIES_MACHOP", + "SPECIES_MACHOKE", + "SPECIES_MACHAMP", + "SPECIES_HITMONLEE", + "SPECIES_HITMONCHAN", + "SPECIES_HERACROSS", + "SPECIES_TYROGUE", + "SPECIES_HITMONTOP", + "SPECIES_COMBUSKEN", + "SPECIES_BLAZIKEN", + "SPECIES_BRELOOM", + "SPECIES_MAKUHITA", + "SPECIES_HARIYAMA", + "SPECIES_MEDITITE", + "SPECIES_MEDICHAM", + "SPECIES_MONFERNO", + "SPECIES_INFERNAPE", + "SPECIES_RIOLU", + "SPECIES_LUCARIO", + "SPECIES_CROAGUNK", + "SPECIES_TOXICROAK", + "SPECIES_GALLADE" + ] + }, + { + "id": "flying", + "mons": [ + "SPECIES_CHARIZARD", + "SPECIES_BUTTERFREE", + "SPECIES_PIDGEY", + "SPECIES_PIDGEOTTO", + "SPECIES_PIDGEOT", + "SPECIES_SPEAROW", + "SPECIES_FEAROW", + "SPECIES_ZUBAT", + "SPECIES_GOLBAT", + "SPECIES_FARFETCHD", + "SPECIES_DODUO", + "SPECIES_DODRIO", + "SPECIES_SCYTHER", + "SPECIES_GYARADOS", + "SPECIES_AERODACTYL", + "SPECIES_ARTICUNO", + "SPECIES_ZAPDOS", + "SPECIES_MOLTRES", + "SPECIES_DRAGONITE", + "SPECIES_HOOTHOOT", + "SPECIES_NOCTOWL", + "SPECIES_LEDYBA", + "SPECIES_LEDIAN", + "SPECIES_CROBAT", + "SPECIES_TOGETIC", + "SPECIES_NATU", + "SPECIES_XATU", + "SPECIES_HOPPIP", + "SPECIES_SKIPLOOM", + "SPECIES_JUMPLUFF", + "SPECIES_YANMA", + "SPECIES_MURKROW", + "SPECIES_GLIGAR", + "SPECIES_DELIBIRD", + "SPECIES_MANTINE", + "SPECIES_SKARMORY", + "SPECIES_LUGIA", + "SPECIES_HO_OH", + "SPECIES_BEAUTIFLY", + "SPECIES_TAILLOW", + "SPECIES_SWELLOW", + "SPECIES_WINGULL", + "SPECIES_PELIPPER", + "SPECIES_MASQUERAIN", + "SPECIES_NINJASK", + "SPECIES_SWABLU", + "SPECIES_ALTARIA", + "SPECIES_TROPIUS", + "SPECIES_SALAMENCE", + "SPECIES_RAYQUAZA", + "SPECIES_STARLY", + "SPECIES_STARAVIA", + "SPECIES_STARAPTOR", + "SPECIES_MOTHIM", + "SPECIES_COMBEE", + "SPECIES_VESPIQUEN", + "SPECIES_DRIFLOON", + "SPECIES_DRIFBLIM", + "SPECIES_HONCHKROW", + "SPECIES_CHATOT", + "SPECIES_MANTYKE", + "SPECIES_TOGEKISS", + "SPECIES_YANMEGA", + "SPECIES_GLISCOR" + ] + }, + { + "id": "poison", + "mons": [ + "SPECIES_BULBASAUR", + "SPECIES_IVYSAUR", + "SPECIES_VENUSAUR", + "SPECIES_WEEDLE", + "SPECIES_KAKUNA", + "SPECIES_BEEDRILL", + "SPECIES_EKANS", + "SPECIES_ARBOK", + "SPECIES_NIDORAN_F", + "SPECIES_NIDORINA", + "SPECIES_NIDOQUEEN", + "SPECIES_NIDORAN_M", + "SPECIES_NIDORINO", + "SPECIES_NIDOKING", + "SPECIES_ZUBAT", + "SPECIES_GOLBAT", + "SPECIES_ODDISH", + "SPECIES_GLOOM", + "SPECIES_VILEPLUME", + "SPECIES_VENONAT", + "SPECIES_VENOMOTH", + "SPECIES_BELLSPROUT", + "SPECIES_WEEPINBELL", + "SPECIES_VICTREEBEL", + "SPECIES_TENTACOOL", + "SPECIES_TENTACRUEL", + "SPECIES_GRIMER", + "SPECIES_MUK", + "SPECIES_GASTLY", + "SPECIES_HAUNTER", + "SPECIES_GENGAR", + "SPECIES_KOFFING", + "SPECIES_WEEZING", + "SPECIES_SPINARAK", + "SPECIES_ARIADOS", + "SPECIES_CROBAT", + "SPECIES_QWILFISH", + "SPECIES_DUSTOX", + "SPECIES_ROSELIA", + "SPECIES_GULPIN", + "SPECIES_SWALOT", + "SPECIES_SEVIPER", + "SPECIES_BUDEW", + "SPECIES_ROSERADE", + "SPECIES_STUNKY", + "SPECIES_SKUNTANK", + "SPECIES_SKORUPI", + "SPECIES_DRAPION", + "SPECIES_CROAGUNK", + "SPECIES_TOXICROAK" + ] + }, + { + "id": "ground", + "mons": [ + "SPECIES_SANDSHREW", + "SPECIES_SANDSLASH", + "SPECIES_NIDOQUEEN", + "SPECIES_NIDOKING", + "SPECIES_DIGLETT", + "SPECIES_DUGTRIO", + "SPECIES_GEODUDE", + "SPECIES_GRAVELER", + "SPECIES_GOLEM", + "SPECIES_ONIX", + "SPECIES_CUBONE", + "SPECIES_MAROWAK", + "SPECIES_RHYHORN", + "SPECIES_RHYDON", + "SPECIES_WOOPER", + "SPECIES_QUAGSIRE", + "SPECIES_GLIGAR", + "SPECIES_STEELIX", + "SPECIES_SWINUB", + "SPECIES_PILOSWINE", + "SPECIES_PHANPY", + "SPECIES_DONPHAN", + "SPECIES_LARVITAR", + "SPECIES_PUPITAR", + "SPECIES_MARSHTOMP", + "SPECIES_SWAMPERT", + "SPECIES_NINCADA", + "SPECIES_NUMEL", + "SPECIES_CAMERUPT", + "SPECIES_TRAPINCH", + "SPECIES_VIBRAVA", + "SPECIES_FLYGON", + "SPECIES_BARBOACH", + "SPECIES_WHISCASH", + "SPECIES_BALTOY", + "SPECIES_CLAYDOL", + "SPECIES_GROUDON", + "SPECIES_TORTERRA", + "SPECIES_GASTRODON", + "SPECIES_GIBLE", + "SPECIES_GABITE", + "SPECIES_GARCHOMP", + "SPECIES_HIPPOPOTAS", + "SPECIES_HIPPOWDON", + "SPECIES_RHYPERIOR", + "SPECIES_GLISCOR", + "SPECIES_MAMOSWINE" + ] + }, + { + "id": "rock", + "mons": [ + "SPECIES_GEODUDE", + "SPECIES_GRAVELER", + "SPECIES_GOLEM", + "SPECIES_ONIX", + "SPECIES_RHYHORN", + "SPECIES_RHYDON", + "SPECIES_OMANYTE", + "SPECIES_OMASTAR", + "SPECIES_KABUTO", + "SPECIES_KABUTOPS", + "SPECIES_AERODACTYL", + "SPECIES_SUDOWOODO", + "SPECIES_SHUCKLE", + "SPECIES_MAGCARGO", + "SPECIES_CORSOLA", + "SPECIES_LARVITAR", + "SPECIES_PUPITAR", + "SPECIES_TYRANITAR", + "SPECIES_NOSEPASS", + "SPECIES_ARON", + "SPECIES_LAIRON", + "SPECIES_AGGRON", + "SPECIES_LUNATONE", + "SPECIES_SOLROCK", + "SPECIES_LILEEP", + "SPECIES_CRADILY", + "SPECIES_ANORITH", + "SPECIES_ARMALDO", + "SPECIES_RELICANTH", + "SPECIES_REGIROCK", + "SPECIES_CRANIDOS", + "SPECIES_RAMPARDOS", + "SPECIES_SHIELDON", + "SPECIES_BASTIODON", + "SPECIES_BONSLY", + "SPECIES_RHYPERIOR", + "SPECIES_PROBOPASS" + ] + }, + { + "id": "bug", + "mons": [ + "SPECIES_CATERPIE", + "SPECIES_METAPOD", + "SPECIES_BUTTERFREE", + "SPECIES_WEEDLE", + "SPECIES_KAKUNA", + "SPECIES_BEEDRILL", + "SPECIES_PARAS", + "SPECIES_PARASECT", + "SPECIES_VENONAT", + "SPECIES_VENOMOTH", + "SPECIES_SCYTHER", + "SPECIES_PINSIR", + "SPECIES_LEDYBA", + "SPECIES_LEDIAN", + "SPECIES_SPINARAK", + "SPECIES_ARIADOS", + "SPECIES_YANMA", + "SPECIES_PINECO", + "SPECIES_FORRETRESS", + "SPECIES_SCIZOR", + "SPECIES_SHUCKLE", + "SPECIES_HERACROSS", + "SPECIES_WURMPLE", + "SPECIES_SILCOON", + "SPECIES_BEAUTIFLY", + "SPECIES_CASCOON", + "SPECIES_DUSTOX", + "SPECIES_SURSKIT", + "SPECIES_MASQUERAIN", + "SPECIES_NINCADA", + "SPECIES_NINJASK", + "SPECIES_SHEDINJA", + "SPECIES_VOLBEAT", + "SPECIES_ILLUMISE", + "SPECIES_ANORITH", + "SPECIES_ARMALDO", + "SPECIES_KRICKETOT", + "SPECIES_KRICKETUNE", + "SPECIES_BURMY", + "SPECIES_WORMADAM", + "SPECIES_MOTHIM", + "SPECIES_COMBEE", + "SPECIES_VESPIQUEN", + "SPECIES_SKORUPI", + "SPECIES_YANMEGA" + ] + }, + { + "id": "ghost", + "mons": [ + "SPECIES_GASTLY", + "SPECIES_HAUNTER", + "SPECIES_GENGAR", + "SPECIES_MISDREAVUS", + "SPECIES_SHEDINJA", + "SPECIES_SABLEYE", + "SPECIES_SHUPPET", + "SPECIES_BANETTE", + "SPECIES_DUSKULL", + "SPECIES_DUSCLOPS", + "SPECIES_DRIFLOON", + "SPECIES_DRIFBLIM", + "SPECIES_MISMAGIUS", + "SPECIES_SPIRITOMB", + "SPECIES_DUSKNOIR", + "SPECIES_FROSLASS", + "SPECIES_ROTOM", + "SPECIES_GIRATINA" + ] + }, + { + "id": "steel", + "mons": [ + "SPECIES_MAGNEMITE", + "SPECIES_MAGNETON", + "SPECIES_FORRETRESS", + "SPECIES_STEELIX", + "SPECIES_SCIZOR", + "SPECIES_SKARMORY", + "SPECIES_MAWILE", + "SPECIES_ARON", + "SPECIES_LAIRON", + "SPECIES_AGGRON", + "SPECIES_BELDUM", + "SPECIES_METANG", + "SPECIES_METAGROSS", + "SPECIES_REGISTEEL", + "SPECIES_JIRACHI", + "SPECIES_EMPOLEON", + "SPECIES_SHIELDON", + "SPECIES_BASTIODON", + "SPECIES_BRONZOR", + "SPECIES_BRONZONG", + "SPECIES_LUCARIO", + "SPECIES_MAGNEZONE", + "SPECIES_PROBOPASS", + "SPECIES_DIALGA", + "SPECIES_HEATRAN" + ] + }, + { + "id": "fire", + "mons": [ + "SPECIES_CHARMANDER", + "SPECIES_CHARMELEON", + "SPECIES_CHARIZARD", + "SPECIES_VULPIX", + "SPECIES_NINETALES", + "SPECIES_GROWLITHE", + "SPECIES_ARCANINE", + "SPECIES_PONYTA", + "SPECIES_RAPIDASH", + "SPECIES_MAGMAR", + "SPECIES_FLAREON", + "SPECIES_MOLTRES", + "SPECIES_CYNDAQUIL", + "SPECIES_QUILAVA", + "SPECIES_TYPHLOSION", + "SPECIES_SLUGMA", + "SPECIES_MAGCARGO", + "SPECIES_HOUNDOUR", + "SPECIES_HOUNDOOM", + "SPECIES_MAGBY", + "SPECIES_ENTEI", + "SPECIES_HO_OH", + "SPECIES_TORCHIC", + "SPECIES_COMBUSKEN", + "SPECIES_BLAZIKEN", + "SPECIES_NUMEL", + "SPECIES_CAMERUPT", + "SPECIES_TORKOAL", + "SPECIES_CHIMCHAR", + "SPECIES_MONFERNO", + "SPECIES_INFERNAPE", + "SPECIES_MAGMORTAR", + "SPECIES_HEATRAN" + ] + }, + { + "id": "water", + "mons": [ + "SPECIES_SQUIRTLE", + "SPECIES_WARTORTLE", + "SPECIES_BLASTOISE", + "SPECIES_PSYDUCK", + "SPECIES_GOLDUCK", + "SPECIES_POLIWAG", + "SPECIES_POLIWHIRL", + "SPECIES_POLIWRATH", + "SPECIES_TENTACOOL", + "SPECIES_TENTACRUEL", + "SPECIES_SLOWPOKE", + "SPECIES_SLOWBRO", + "SPECIES_SEEL", + "SPECIES_DEWGONG", + "SPECIES_SHELLDER", + "SPECIES_CLOYSTER", + "SPECIES_KRABBY", + "SPECIES_KINGLER", + "SPECIES_HORSEA", + "SPECIES_SEADRA", + "SPECIES_GOLDEEN", + "SPECIES_SEAKING", + "SPECIES_STARYU", + "SPECIES_STARMIE", + "SPECIES_MAGIKARP", + "SPECIES_GYARADOS", + "SPECIES_LAPRAS", + "SPECIES_VAPOREON", + "SPECIES_OMANYTE", + "SPECIES_OMASTAR", + "SPECIES_KABUTO", + "SPECIES_KABUTOPS", + "SPECIES_TOTODILE", + "SPECIES_CROCONAW", + "SPECIES_FERALIGATR", + "SPECIES_CHINCHOU", + "SPECIES_LANTURN", + "SPECIES_MARILL", + "SPECIES_AZUMARILL", + "SPECIES_POLITOED", + "SPECIES_WOOPER", + "SPECIES_QUAGSIRE", + "SPECIES_SLOWKING", + "SPECIES_QWILFISH", + "SPECIES_CORSOLA", + "SPECIES_REMORAID", + "SPECIES_OCTILLERY", + "SPECIES_MANTINE", + "SPECIES_KINGDRA", + "SPECIES_SUICUNE", + "SPECIES_MUDKIP", + "SPECIES_MARSHTOMP", + "SPECIES_SWAMPERT", + "SPECIES_LOTAD", + "SPECIES_LOMBRE", + "SPECIES_LUDICOLO", + "SPECIES_WINGULL", + "SPECIES_PELIPPER", + "SPECIES_SURSKIT", + "SPECIES_CARVANHA", + "SPECIES_SHARPEDO", + "SPECIES_WAILMER", + "SPECIES_WAILORD", + "SPECIES_BARBOACH", + "SPECIES_WHISCASH", + "SPECIES_CORPHISH", + "SPECIES_CRAWDAUNT", + "SPECIES_FEEBAS", + "SPECIES_MILOTIC", + "SPECIES_SPHEAL", + "SPECIES_SEALEO", + "SPECIES_WALREIN", + "SPECIES_CLAMPERL", + "SPECIES_HUNTAIL", + "SPECIES_GOREBYSS", + "SPECIES_RELICANTH", + "SPECIES_LUVDISC", + "SPECIES_KYOGRE", + "SPECIES_PIPLUP", + "SPECIES_PRINPLUP", + "SPECIES_EMPOLEON", + "SPECIES_BIBAREL", + "SPECIES_BUIZEL", + "SPECIES_FLOATZEL", + "SPECIES_SHELLOS", + "SPECIES_GASTRODON", + "SPECIES_FINNEON", + "SPECIES_LUMINEON", + "SPECIES_MANTYKE", + "SPECIES_PALKIA", + "SPECIES_PHIONE", + "SPECIES_MANAPHY" + ] + }, + { + "id": "grass", + "mons": [ + "SPECIES_BULBASAUR", + "SPECIES_IVYSAUR", + "SPECIES_VENUSAUR", + "SPECIES_ODDISH", + "SPECIES_GLOOM", + "SPECIES_VILEPLUME", + "SPECIES_PARAS", + "SPECIES_PARASECT", + "SPECIES_BELLSPROUT", + "SPECIES_WEEPINBELL", + "SPECIES_VICTREEBEL", + "SPECIES_EXEGGCUTE", + "SPECIES_EXEGGUTOR", + "SPECIES_TANGELA", + "SPECIES_CHIKORITA", + "SPECIES_BAYLEEF", + "SPECIES_MEGANIUM", + "SPECIES_BELLOSSOM", + "SPECIES_HOPPIP", + "SPECIES_SKIPLOOM", + "SPECIES_JUMPLUFF", + "SPECIES_SUNKERN", + "SPECIES_SUNFLORA", + "SPECIES_CELEBI", + "SPECIES_TREECKO", + "SPECIES_GROVYLE", + "SPECIES_SCEPTILE", + "SPECIES_LOTAD", + "SPECIES_LOMBRE", + "SPECIES_LUDICOLO", + "SPECIES_SEEDOT", + "SPECIES_NUZLEAF", + "SPECIES_SHIFTRY", + "SPECIES_SHROOMISH", + "SPECIES_BRELOOM", + "SPECIES_ROSELIA", + "SPECIES_CACNEA", + "SPECIES_CACTURNE", + "SPECIES_LILEEP", + "SPECIES_CRADILY", + "SPECIES_TROPIUS", + "SPECIES_TURTWIG", + "SPECIES_GROTLE", + "SPECIES_TORTERRA", + "SPECIES_BUDEW", + "SPECIES_ROSERADE", + "SPECIES_WORMADAM", + "SPECIES_CHERUBI", + "SPECIES_CHERRIM", + "SPECIES_CARNIVINE", + "SPECIES_SNOVER", + "SPECIES_ABOMASNOW", + "SPECIES_TANGROWTH", + "SPECIES_LEAFEON", + "SPECIES_SHAYMIN" + ] + }, + { + "id": "electric", + "mons": [ + "SPECIES_PIKACHU", + "SPECIES_RAICHU", + "SPECIES_MAGNEMITE", + "SPECIES_MAGNETON", + "SPECIES_VOLTORB", + "SPECIES_ELECTRODE", + "SPECIES_ELECTABUZZ", + "SPECIES_JOLTEON", + "SPECIES_ZAPDOS", + "SPECIES_CHINCHOU", + "SPECIES_LANTURN", + "SPECIES_PICHU", + "SPECIES_MAREEP", + "SPECIES_FLAAFFY", + "SPECIES_AMPHAROS", + "SPECIES_ELEKID", + "SPECIES_RAIKOU", + "SPECIES_ELECTRIKE", + "SPECIES_MANECTRIC", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_SHINX", + "SPECIES_LUXIO", + "SPECIES_LUXRAY", + "SPECIES_PACHIRISU", + "SPECIES_MAGNEZONE", + "SPECIES_ELECTIVIRE", + "SPECIES_ROTOM" + ] + }, + { + "id": "psychic", + "mons": [ + "SPECIES_ABRA", + "SPECIES_KADABRA", + "SPECIES_ALAKAZAM", + "SPECIES_SLOWPOKE", + "SPECIES_SLOWBRO", + "SPECIES_DROWZEE", + "SPECIES_HYPNO", + "SPECIES_EXEGGCUTE", + "SPECIES_EXEGGUTOR", + "SPECIES_STARMIE", + "SPECIES_MR_MIME", + "SPECIES_JYNX", + "SPECIES_MEWTWO", + "SPECIES_MEW", + "SPECIES_NATU", + "SPECIES_XATU", + "SPECIES_ESPEON", + "SPECIES_SLOWKING", + "SPECIES_UNOWN", + "SPECIES_WOBBUFFET", + "SPECIES_GIRAFARIG", + "SPECIES_SMOOCHUM", + "SPECIES_LUGIA", + "SPECIES_CELEBI", + "SPECIES_RALTS", + "SPECIES_KIRLIA", + "SPECIES_GARDEVOIR", + "SPECIES_MEDITITE", + "SPECIES_MEDICHAM", + "SPECIES_SPOINK", + "SPECIES_GRUMPIG", + "SPECIES_LUNATONE", + "SPECIES_SOLROCK", + "SPECIES_BALTOY", + "SPECIES_CLAYDOL", + "SPECIES_CHIMECHO", + "SPECIES_WYNAUT", + "SPECIES_BELDUM", + "SPECIES_METANG", + "SPECIES_METAGROSS", + "SPECIES_LATIAS", + "SPECIES_LATIOS", + "SPECIES_JIRACHI", + "SPECIES_DEOXYS", + "SPECIES_CHINGLING", + "SPECIES_BRONZOR", + "SPECIES_BRONZONG", + "SPECIES_MIME_JR", + "SPECIES_GALLADE", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_CRESSELIA" + ] + }, + { + "id": "ice", + "mons": [ + "SPECIES_DEWGONG", + "SPECIES_CLOYSTER", + "SPECIES_JYNX", + "SPECIES_LAPRAS", + "SPECIES_ARTICUNO", + "SPECIES_SNEASEL", + "SPECIES_SWINUB", + "SPECIES_PILOSWINE", + "SPECIES_DELIBIRD", + "SPECIES_SMOOCHUM", + "SPECIES_SNORUNT", + "SPECIES_GLALIE", + "SPECIES_SPHEAL", + "SPECIES_SEALEO", + "SPECIES_WALREIN", + "SPECIES_REGICE", + "SPECIES_SNOVER", + "SPECIES_ABOMASNOW", + "SPECIES_WEAVILE", + "SPECIES_GLACEON", + "SPECIES_MAMOSWINE", + "SPECIES_FROSLASS" + ] + }, + { + "id": "dragon", + "mons": [ + "SPECIES_DRATINI", + "SPECIES_DRAGONAIR", + "SPECIES_DRAGONITE", + "SPECIES_KINGDRA", + "SPECIES_VIBRAVA", + "SPECIES_FLYGON", + "SPECIES_ALTARIA", + "SPECIES_BAGON", + "SPECIES_SHELGON", + "SPECIES_SALAMENCE", + "SPECIES_LATIAS", + "SPECIES_LATIOS", + "SPECIES_RAYQUAZA", + "SPECIES_GIBLE", + "SPECIES_GABITE", + "SPECIES_GARCHOMP", + "SPECIES_DIALGA", + "SPECIES_PALKIA", + "SPECIES_GIRATINA" + ] + }, + { + "id": "dark", + "mons": [ + "SPECIES_UMBREON", + "SPECIES_MURKROW", + "SPECIES_SNEASEL", + "SPECIES_HOUNDOUR", + "SPECIES_HOUNDOOM", + "SPECIES_TYRANITAR", + "SPECIES_POOCHYENA", + "SPECIES_MIGHTYENA", + "SPECIES_NUZLEAF", + "SPECIES_SHIFTRY", + "SPECIES_SABLEYE", + "SPECIES_CARVANHA", + "SPECIES_SHARPEDO", + "SPECIES_CACTURNE", + "SPECIES_CRAWDAUNT", + "SPECIES_ABSOL", + "SPECIES_HONCHKROW", + "SPECIES_STUNKY", + "SPECIES_SKUNTANK", + "SPECIES_SPIRITOMB", + "SPECIES_DRAPION", + "SPECIES_WEAVILE", + "SPECIES_DARKRAI" + ] + } + ] + }, + { + "type": "body_style", + "options": [ + { + "id": "quadruped", + "mons": [ + "SPECIES_BULBASAUR", + "SPECIES_IVYSAUR", + "SPECIES_VENUSAUR", + "SPECIES_RATTATA", + "SPECIES_RATICATE", + "SPECIES_PIKACHU", + "SPECIES_NIDORAN_F", + "SPECIES_NIDORINA", + "SPECIES_NIDORAN_M", + "SPECIES_NIDORINO", + "SPECIES_VULPIX", + "SPECIES_NINETALES", + "SPECIES_MEOWTH", + "SPECIES_PERSIAN", + "SPECIES_GROWLITHE", + "SPECIES_ARCANINE", + "SPECIES_PONYTA", + "SPECIES_RAPIDASH", + "SPECIES_SLOWPOKE", + "SPECIES_RHYHORN", + "SPECIES_TAUROS", + "SPECIES_EEVEE", + "SPECIES_VAPOREON", + "SPECIES_JOLTEON", + "SPECIES_FLAREON", + "SPECIES_CHIKORITA", + "SPECIES_BAYLEEF", + "SPECIES_MEGANIUM", + "SPECIES_QUILAVA", + "SPECIES_TYPHLOSION", + "SPECIES_SENTRET", + "SPECIES_FURRET", + "SPECIES_PICHU", + "SPECIES_MAREEP", + "SPECIES_ESPEON", + "SPECIES_UMBREON", + "SPECIES_GIRAFARIG", + "SPECIES_SWINUB", + "SPECIES_PILOSWINE", + "SPECIES_HOUNDOUR", + "SPECIES_HOUNDOOM", + "SPECIES_PHANPY", + "SPECIES_DONPHAN", + "SPECIES_STANTLER", + "SPECIES_RAIKOU", + "SPECIES_ENTEI", + "SPECIES_SUICUNE", + "SPECIES_MUDKIP", + "SPECIES_POOCHYENA", + "SPECIES_MIGHTYENA", + "SPECIES_ZIGZAGOON", + "SPECIES_LINOONE", + "SPECIES_SLAKOTH", + "SPECIES_SKITTY", + "SPECIES_DELCATTY", + "SPECIES_ARON", + "SPECIES_LAIRON", + "SPECIES_ELECTRIKE", + "SPECIES_MANECTRIC", + "SPECIES_NUMEL", + "SPECIES_CAMERUPT", + "SPECIES_TORKOAL", + "SPECIES_TROPIUS", + "SPECIES_ABSOL", + "SPECIES_WALREIN", + "SPECIES_SHELGON", + "SPECIES_SALAMENCE", + "SPECIES_TURTWIG", + "SPECIES_GROTLE", + "SPECIES_TORTERRA", + "SPECIES_BIDOOF", + "SPECIES_SHINX", + "SPECIES_LUXIO", + "SPECIES_LUXRAY", + "SPECIES_SHIELDON", + "SPECIES_BASTIODON", + "SPECIES_PACHIRISU", + "SPECIES_BUIZEL", + "SPECIES_FLOATZEL", + "SPECIES_GLAMEOW", + "SPECIES_PURUGLY", + "SPECIES_STUNKY", + "SPECIES_SKUNTANK", + "SPECIES_HIPPOPOTAS", + "SPECIES_HIPPOWDON", + "SPECIES_LEAFEON", + "SPECIES_GLACEON", + "SPECIES_MAMOSWINE", + "SPECIES_DIALGA", + "SPECIES_HEATRAN", + "SPECIES_SHAYMIN", + "SPECIES_ARCEUS" + ] + }, + { + "id": "bipedal_tailless", + "mons": [ + "SPECIES_JIGGLYPUFF", + "SPECIES_WIGGLYTUFF", + "SPECIES_GLOOM", + "SPECIES_VILEPLUME", + "SPECIES_VENONAT", + "SPECIES_POLIWHIRL", + "SPECIES_POLIWRATH", + "SPECIES_ALAKAZAM", + "SPECIES_MACHOKE", + "SPECIES_MACHAMP", + "SPECIES_BELLSPROUT", + "SPECIES_GRAVELER", + "SPECIES_GOLEM", + "SPECIES_DROWZEE", + "SPECIES_HYPNO", + "SPECIES_HITMONLEE", + "SPECIES_HITMONCHAN", + "SPECIES_MR_MIME", + "SPECIES_JYNX", + "SPECIES_PINSIR", + "SPECIES_SNORLAX", + "SPECIES_CYNDAQUIL", + "SPECIES_IGGLYBUFF", + "SPECIES_TOGEPI", + "SPECIES_TOGETIC", + "SPECIES_BELLOSSOM", + "SPECIES_SUDOWOODO", + "SPECIES_POLITOED", + "SPECIES_SUNFLORA", + "SPECIES_SNUBBULL", + "SPECIES_HERACROSS", + "SPECIES_TYROGUE", + "SPECIES_SMOOCHUM", + "SPECIES_ELEKID", + "SPECIES_BLISSEY", + "SPECIES_CELEBI", + "SPECIES_LOMBRE", + "SPECIES_LUDICOLO", + "SPECIES_NUZLEAF", + "SPECIES_SHIFTRY", + "SPECIES_RALTS", + "SPECIES_KIRLIA", + "SPECIES_GARDEVOIR", + "SPECIES_SLAKING", + "SPECIES_MAKUHITA", + "SPECIES_HARIYAMA", + "SPECIES_NOSEPASS", + "SPECIES_SABLEYE", + "SPECIES_MAWILE", + "SPECIES_MEDITITE", + "SPECIES_MEDICHAM", + "SPECIES_ILLUMISE", + "SPECIES_ROSELIA", + "SPECIES_CACNEA", + "SPECIES_CACTURNE", + "SPECIES_DUSCLOPS", + "SPECIES_SNORUNT", + "SPECIES_BAGON", + "SPECIES_REGIROCK", + "SPECIES_REGICE", + "SPECIES_REGISTEEL", + "SPECIES_JIRACHI", + "SPECIES_DEOXYS", + "SPECIES_PIPLUP", + "SPECIES_KRICKETOT", + "SPECIES_BUDEW", + "SPECIES_ROSERADE", + "SPECIES_CHINGLING", + "SPECIES_MIME_JR", + "SPECIES_HAPPINY", + "SPECIES_MUNCHLAX", + "SPECIES_CROAGUNK", + "SPECIES_TOXICROAK", + "SPECIES_LICKILICKY", + "SPECIES_TANGROWTH", + "SPECIES_GALLADE", + "SPECIES_REGIGIGAS", + "SPECIES_MANAPHY", + "SPECIES_DARKRAI" + ] + }, + { + "id": "bipedal_tail", + "mons": [ + "SPECIES_CHARMANDER", + "SPECIES_CHARMELEON", + "SPECIES_CHARIZARD", + "SPECIES_SQUIRTLE", + "SPECIES_WARTORTLE", + "SPECIES_BLASTOISE", + "SPECIES_RAICHU", + "SPECIES_SANDSHREW", + "SPECIES_SANDSLASH", + "SPECIES_NIDOQUEEN", + "SPECIES_NIDOKING", + "SPECIES_CLEFAIRY", + "SPECIES_CLEFABLE", + "SPECIES_PSYDUCK", + "SPECIES_GOLDUCK", + "SPECIES_MANKEY", + "SPECIES_PRIMEAPE", + "SPECIES_ABRA", + "SPECIES_KADABRA", + "SPECIES_MACHOP", + "SPECIES_SLOWBRO", + "SPECIES_GENGAR", + "SPECIES_CUBONE", + "SPECIES_MAROWAK", + "SPECIES_LICKITUNG", + "SPECIES_RHYDON", + "SPECIES_CHANSEY", + "SPECIES_KANGASKHAN", + "SPECIES_ELECTABUZZ", + "SPECIES_MAGMAR", + "SPECIES_KABUTOPS", + "SPECIES_DRAGONITE", + "SPECIES_MEWTWO", + "SPECIES_MEW", + "SPECIES_TOTODILE", + "SPECIES_CROCONAW", + "SPECIES_FERALIGATR", + "SPECIES_CLEFFA", + "SPECIES_FLAAFFY", + "SPECIES_AMPHAROS", + "SPECIES_MARILL", + "SPECIES_AZUMARILL", + "SPECIES_HOPPIP", + "SPECIES_SKIPLOOM", + "SPECIES_JUMPLUFF", + "SPECIES_AIPOM", + "SPECIES_QUAGSIRE", + "SPECIES_SLOWKING", + "SPECIES_GRANBULL", + "SPECIES_SNEASEL", + "SPECIES_TEDDIURSA", + "SPECIES_URSARING", + "SPECIES_SMEARGLE", + "SPECIES_HITMONTOP", + "SPECIES_MAGBY", + "SPECIES_MILTANK", + "SPECIES_LARVITAR", + "SPECIES_TYRANITAR", + "SPECIES_TREECKO", + "SPECIES_GROVYLE", + "SPECIES_SCEPTILE", + "SPECIES_COMBUSKEN", + "SPECIES_BLAZIKEN", + "SPECIES_MARSHTOMP", + "SPECIES_SWAMPERT", + "SPECIES_BRELOOM", + "SPECIES_VIGOROTH", + "SPECIES_WHISMUR", + "SPECIES_LOUDRED", + "SPECIES_EXPLOUD", + "SPECIES_AGGRON", + "SPECIES_PLUSLE", + "SPECIES_MINUN", + "SPECIES_VOLBEAT", + "SPECIES_GRUMPIG", + "SPECIES_SPINDA", + "SPECIES_ZANGOOSE", + "SPECIES_ARMALDO", + "SPECIES_KECLEON", + "SPECIES_BANETTE", + "SPECIES_WYNAUT", + "SPECIES_GROUDON", + "SPECIES_CHIMCHAR", + "SPECIES_MONFERNO", + "SPECIES_INFERNAPE", + "SPECIES_PRINPLUP", + "SPECIES_EMPOLEON", + "SPECIES_BIBAREL", + "SPECIES_CRANIDOS", + "SPECIES_RAMPARDOS", + "SPECIES_AMBIPOM", + "SPECIES_BUNEARY", + "SPECIES_LOPUNNY", + "SPECIES_GIBLE", + "SPECIES_GABITE", + "SPECIES_GARCHOMP", + "SPECIES_RIOLU", + "SPECIES_LUCARIO", + "SPECIES_SNOVER", + "SPECIES_ABOMASNOW", + "SPECIES_WEAVILE", + "SPECIES_RHYPERIOR", + "SPECIES_ELECTIVIRE", + "SPECIES_MAGMORTAR", + "SPECIES_UXIE", + "SPECIES_MESPRIT", + "SPECIES_AZELF", + "SPECIES_PALKIA" + ] + }, + { + "id": "serpentine", + "mons": { + "altered": [ + "SPECIES_CATERPIE", + "SPECIES_METAPOD", + "SPECIES_WEEDLE", + "SPECIES_KAKUNA", + "SPECIES_EKANS", + "SPECIES_ARBOK", + "SPECIES_ONIX", + "SPECIES_GYARADOS", + "SPECIES_DRATINI", + "SPECIES_DRAGONAIR", + "SPECIES_DUNSPARCE", + "SPECIES_STEELIX", + "SPECIES_SLUGMA", + "SPECIES_MAGCARGO", + "SPECIES_PUPITAR", + "SPECIES_WURMPLE", + "SPECIES_SEVIPER", + "SPECIES_MILOTIC", + "SPECIES_HUNTAIL", + "SPECIES_GOREBYSS", + "SPECIES_RAYQUAZA", + "SPECIES_BURMY", + "SPECIES_WORMADAM", + "SPECIES_GIRATINA" + ], + "origin": [ + "SPECIES_CATERPIE", + "SPECIES_METAPOD", + "SPECIES_WEEDLE", + "SPECIES_KAKUNA", + "SPECIES_EKANS", + "SPECIES_ARBOK", + "SPECIES_ONIX", + "SPECIES_GYARADOS", + "SPECIES_DRATINI", + "SPECIES_DRAGONAIR", + "SPECIES_DUNSPARCE", + "SPECIES_STEELIX", + "SPECIES_SLUGMA", + "SPECIES_MAGCARGO", + "SPECIES_PUPITAR", + "SPECIES_WURMPLE", + "SPECIES_SEVIPER", + "SPECIES_MILOTIC", + "SPECIES_HUNTAIL", + "SPECIES_GOREBYSS", + "SPECIES_RAYQUAZA", + "SPECIES_BURMY", + "SPECIES_WORMADAM" + ] + } + }, + { + "id": "multiwing", + "mons": [ + "SPECIES_BUTTERFREE", + "SPECIES_BEEDRILL", + "SPECIES_VENOMOTH", + "SPECIES_SCYTHER", + "SPECIES_CROBAT", + "SPECIES_YANMA", + "SPECIES_SCIZOR", + "SPECIES_BEAUTIFLY", + "SPECIES_DUSTOX", + "SPECIES_MASQUERAIN", + "SPECIES_NINJASK", + "SPECIES_VIBRAVA", + "SPECIES_KRICKETUNE", + "SPECIES_MOTHIM", + "SPECIES_YANMEGA" + ] + }, + { + "id": "biwing", + "mons": [ + "SPECIES_PIDGEY", + "SPECIES_PIDGEOTTO", + "SPECIES_PIDGEOT", + "SPECIES_SPEAROW", + "SPECIES_FEAROW", + "SPECIES_ZUBAT", + "SPECIES_GOLBAT", + "SPECIES_FARFETCHD", + "SPECIES_AERODACTYL", + "SPECIES_ARTICUNO", + "SPECIES_ZAPDOS", + "SPECIES_MOLTRES", + "SPECIES_HOOTHOOT", + "SPECIES_NOCTOWL", + "SPECIES_LEDYBA", + "SPECIES_LEDIAN", + "SPECIES_NATU", + "SPECIES_XATU", + "SPECIES_MURKROW", + "SPECIES_GLIGAR", + "SPECIES_DELIBIRD", + "SPECIES_MANTINE", + "SPECIES_SKARMORY", + "SPECIES_LUGIA", + "SPECIES_HO_OH", + "SPECIES_TAILLOW", + "SPECIES_SWELLOW", + "SPECIES_WINGULL", + "SPECIES_PELIPPER", + "SPECIES_FLYGON", + "SPECIES_SWABLU", + "SPECIES_ALTARIA", + "SPECIES_LATIAS", + "SPECIES_LATIOS", + "SPECIES_STARLY", + "SPECIES_STARAVIA", + "SPECIES_STARAPTOR", + "SPECIES_VESPIQUEN", + "SPECIES_HONCHKROW", + "SPECIES_CHATOT", + "SPECIES_MANTYKE", + "SPECIES_TOGEKISS", + "SPECIES_GLISCOR" + ] + }, + { + "id": "insectoid", + "mons": [ + "SPECIES_PARAS", + "SPECIES_PARASECT", + "SPECIES_KRABBY", + "SPECIES_KINGLER", + "SPECIES_KABUTO", + "SPECIES_SPINARAK", + "SPECIES_ARIADOS", + "SPECIES_SHUCKLE", + "SPECIES_CORSOLA", + "SPECIES_LOTAD", + "SPECIES_SURSKIT", + "SPECIES_NINCADA", + "SPECIES_TRAPINCH", + "SPECIES_CORPHISH", + "SPECIES_CRAWDAUNT", + "SPECIES_ANORITH", + "SPECIES_SHELLOS", + "SPECIES_GASTRODON", + "SPECIES_SKORUPI", + "SPECIES_DRAPION", + "SPECIES_CRESSELIA" + ] + }, + { + "id": "head_torso", + "mons": [ + "SPECIES_DIGLETT", + "SPECIES_WEEPINBELL", + "SPECIES_VICTREEBEL", + "SPECIES_HORSEA", + "SPECIES_SEADRA", + "SPECIES_STARYU", + "SPECIES_STARMIE", + "SPECIES_WOBBUFFET", + "SPECIES_KINGDRA", + "SPECIES_SHEDINJA", + "SPECIES_LILEEP", + "SPECIES_CRADILY", + "SPECIES_BELDUM", + "SPECIES_SPIRITOMB" + ] + }, + { + "id": "head_arms", + "mons": [ + "SPECIES_GEODUDE", + "SPECIES_MAGNEMITE", + "SPECIES_GRIMER", + "SPECIES_MUK", + "SPECIES_HAUNTER", + "SPECIES_GULPIN", + "SPECIES_SWALOT", + "SPECIES_SPOINK", + "SPECIES_BALTOY", + "SPECIES_CLAYDOL", + "SPECIES_DUSKULL", + "SPECIES_CHIMECHO", + "SPECIES_METANG", + "SPECIES_DRIFLOON", + "SPECIES_DRIFBLIM", + "SPECIES_BRONZONG", + "SPECIES_MAGNEZONE", + "SPECIES_PORYGON_Z", + "SPECIES_DUSKNOIR", + "SPECIES_FROSLASS", + "SPECIES_PHIONE" + ] + }, + { + "id": "head_legs", + "mons": [ + "SPECIES_ODDISH", + "SPECIES_POLIWAG", + "SPECIES_DODUO", + "SPECIES_DODRIO", + "SPECIES_EXEGGUTOR", + "SPECIES_TANGELA", + "SPECIES_PORYGON", + "SPECIES_WOOPER", + "SPECIES_PORYGON2", + "SPECIES_TORCHIC", + "SPECIES_SEEDOT", + "SPECIES_SHROOMISH", + "SPECIES_AZURILL", + "SPECIES_CHERRIM", + "SPECIES_BONSLY" + ] + }, + { + "id": "tentacles", + "mons": { + "altered": [ + "SPECIES_TENTACOOL", + "SPECIES_TENTACRUEL", + "SPECIES_OMANYTE", + "SPECIES_OMASTAR", + "SPECIES_OCTILLERY", + "SPECIES_CARNIVINE" + ], + "origin": [ + "SPECIES_TENTACOOL", + "SPECIES_TENTACRUEL", + "SPECIES_OMANYTE", + "SPECIES_OMASTAR", + "SPECIES_OCTILLERY", + "SPECIES_CARNIVINE", + "SPECIES_GIRATINA" + ] + } + }, + { + "id": "fins", + "mons": [ + "SPECIES_SEEL", + "SPECIES_DEWGONG", + "SPECIES_GOLDEEN", + "SPECIES_SEAKING", + "SPECIES_MAGIKARP", + "SPECIES_LAPRAS", + "SPECIES_CHINCHOU", + "SPECIES_LANTURN", + "SPECIES_QWILFISH", + "SPECIES_REMORAID", + "SPECIES_CARVANHA", + "SPECIES_SHARPEDO", + "SPECIES_WAILMER", + "SPECIES_WAILORD", + "SPECIES_BARBOACH", + "SPECIES_WHISCASH", + "SPECIES_FEEBAS", + "SPECIES_SPHEAL", + "SPECIES_SEALEO", + "SPECIES_RELICANTH", + "SPECIES_LUVDISC", + "SPECIES_KYOGRE", + "SPECIES_FINNEON", + "SPECIES_LUMINEON" + ] + }, + { + "id": "head_only", + "mons": [ + "SPECIES_SHELLDER", + "SPECIES_CLOYSTER", + "SPECIES_GASTLY", + "SPECIES_VOLTORB", + "SPECIES_ELECTRODE", + "SPECIES_KOFFING", + "SPECIES_DITTO", + "SPECIES_SUNKERN", + "SPECIES_MISDREAVUS", + "SPECIES_UNOWN", + "SPECIES_PINECO", + "SPECIES_FORRETRESS", + "SPECIES_SILCOON", + "SPECIES_CASCOON", + "SPECIES_LUNATONE", + "SPECIES_SOLROCK", + "SPECIES_CASTFORM", + "SPECIES_SHUPPET", + "SPECIES_GLALIE", + "SPECIES_CLAMPERL", + "SPECIES_MISMAGIUS", + "SPECIES_BRONZOR", + "SPECIES_ROTOM" + ] + }, + { + "id": "multibody", + "mons": [ + "SPECIES_DUGTRIO", + "SPECIES_MAGNETON", + "SPECIES_EXEGGCUTE", + "SPECIES_WEEZING", + "SPECIES_METAGROSS", + "SPECIES_COMBEE", + "SPECIES_CHERUBI", + "SPECIES_PROBOPASS" + ] + } + ] + }, + { + "type": "letter_groups", + "options": [ + { + "id": "abc", + "mons": [ + "SPECIES_ABOMASNOW", + "SPECIES_ABRA", + "SPECIES_ABSOL", + "SPECIES_AERODACTYL", + "SPECIES_AGGRON", + "SPECIES_AIPOM", + "SPECIES_ALAKAZAM", + "SPECIES_ALTARIA", + "SPECIES_AMBIPOM", + "SPECIES_AMPHAROS", + "SPECIES_ANORITH", + "SPECIES_ARBOK", + "SPECIES_ARCANINE", + "SPECIES_ARCEUS", + "SPECIES_ARIADOS", + "SPECIES_ARMALDO", + "SPECIES_ARON", + "SPECIES_ARTICUNO", + "SPECIES_AZELF", + "SPECIES_AZUMARILL", + "SPECIES_AZURILL", + "SPECIES_BAGON", + "SPECIES_BALTOY", + "SPECIES_BANETTE", + "SPECIES_BARBOACH", + "SPECIES_BASTIODON", + "SPECIES_BAYLEEF", + "SPECIES_BEAUTIFLY", + "SPECIES_BEEDRILL", + "SPECIES_BELDUM", + "SPECIES_BELLOSSOM", + "SPECIES_BELLSPROUT", + "SPECIES_BIBAREL", + "SPECIES_BIDOOF", + "SPECIES_BLASTOISE", + "SPECIES_BLAZIKEN", + "SPECIES_BLISSEY", + "SPECIES_BONSLY", + "SPECIES_BRELOOM", + "SPECIES_BRONZONG", + "SPECIES_BRONZOR", + "SPECIES_BUDEW", + "SPECIES_BUIZEL", + "SPECIES_BULBASAUR", + "SPECIES_BUNEARY", + "SPECIES_BURMY", + "SPECIES_BUTTERFREE", + "SPECIES_CACNEA", + "SPECIES_CACTURNE", + "SPECIES_CAMERUPT", + "SPECIES_CARNIVINE", + "SPECIES_CARVANHA", + "SPECIES_CASCOON", + "SPECIES_CASTFORM", + "SPECIES_CATERPIE", + "SPECIES_CELEBI", + "SPECIES_CHANSEY", + "SPECIES_CHARIZARD", + "SPECIES_CHARMANDER", + "SPECIES_CHARMELEON", + "SPECIES_CHATOT", + "SPECIES_CHERRIM", + "SPECIES_CHERUBI", + "SPECIES_CHIKORITA", + "SPECIES_CHIMCHAR", + "SPECIES_CHIMECHO", + "SPECIES_CHINCHOU", + "SPECIES_CHINGLING", + "SPECIES_CLAMPERL", + "SPECIES_CLAYDOL", + "SPECIES_CLEFABLE", + "SPECIES_CLEFAIRY", + "SPECIES_CLEFFA", + "SPECIES_CLOYSTER", + "SPECIES_COMBEE", + "SPECIES_COMBUSKEN", + "SPECIES_CORPHISH", + "SPECIES_CORSOLA", + "SPECIES_CRADILY", + "SPECIES_CRANIDOS", + "SPECIES_CRAWDAUNT", + "SPECIES_CRESSELIA", + "SPECIES_CROAGUNK", + "SPECIES_CROBAT", + "SPECIES_CROCONAW", + "SPECIES_CUBONE", + "SPECIES_CYNDAQUIL" + ] + }, + { + "id": "def", + "mons": [ + "SPECIES_DARKRAI", + "SPECIES_DELCATTY", + "SPECIES_DELIBIRD", + "SPECIES_DEOXYS", + "SPECIES_DEWGONG", + "SPECIES_DIALGA", + "SPECIES_DIGLETT", + "SPECIES_DITTO", + "SPECIES_DODRIO", + "SPECIES_DODUO", + "SPECIES_DONPHAN", + "SPECIES_DRAGONAIR", + "SPECIES_DRAGONITE", + "SPECIES_DRAPION", + "SPECIES_DRATINI", + "SPECIES_DRIFBLIM", + "SPECIES_DRIFLOON", + "SPECIES_DROWZEE", + "SPECIES_DUGTRIO", + "SPECIES_DUNSPARCE", + "SPECIES_DUSCLOPS", + "SPECIES_DUSKNOIR", + "SPECIES_DUSKULL", + "SPECIES_DUSTOX", + "SPECIES_EEVEE", + "SPECIES_EKANS", + "SPECIES_ELECTABUZZ", + "SPECIES_ELECTIVIRE", + "SPECIES_ELECTRIKE", + "SPECIES_ELECTRODE", + "SPECIES_ELEKID", + "SPECIES_EMPOLEON", + "SPECIES_ENTEI", + "SPECIES_ESPEON", + "SPECIES_EXEGGCUTE", + "SPECIES_EXEGGUTOR", + "SPECIES_EXPLOUD", + "SPECIES_FARFETCHD", + "SPECIES_FEAROW", + "SPECIES_FEEBAS", + "SPECIES_FERALIGATR", + "SPECIES_FINNEON", + "SPECIES_FLAAFFY", + "SPECIES_FLAREON", + "SPECIES_FLOATZEL", + "SPECIES_FLYGON", + "SPECIES_FORRETRESS", + "SPECIES_FROSLASS", + "SPECIES_FURRET" + ] + }, + { + "id": "ghi", + "mons": [ + "SPECIES_GABITE", + "SPECIES_GALLADE", + "SPECIES_GARCHOMP", + "SPECIES_GARDEVOIR", + "SPECIES_GASTLY", + "SPECIES_GASTRODON", + "SPECIES_GENGAR", + "SPECIES_GEODUDE", + "SPECIES_GIBLE", + "SPECIES_GIRAFARIG", + "SPECIES_GIRATINA", + "SPECIES_GLACEON", + "SPECIES_GLALIE", + "SPECIES_GLAMEOW", + "SPECIES_GLIGAR", + "SPECIES_GLISCOR", + "SPECIES_GLOOM", + "SPECIES_GOLBAT", + "SPECIES_GOLDEEN", + "SPECIES_GOLDUCK", + "SPECIES_GOLEM", + "SPECIES_GOREBYSS", + "SPECIES_GRANBULL", + "SPECIES_GRAVELER", + "SPECIES_GRIMER", + "SPECIES_GROTLE", + "SPECIES_GROUDON", + "SPECIES_GROVYLE", + "SPECIES_GROWLITHE", + "SPECIES_GRUMPIG", + "SPECIES_GULPIN", + "SPECIES_GYARADOS", + "SPECIES_HAPPINY", + "SPECIES_HARIYAMA", + "SPECIES_HAUNTER", + "SPECIES_HEATRAN", + "SPECIES_HERACROSS", + "SPECIES_HIPPOPOTAS", + "SPECIES_HIPPOWDON", + "SPECIES_HITMONCHAN", + "SPECIES_HITMONLEE", + "SPECIES_HITMONTOP", + "SPECIES_HO_OH", + "SPECIES_HONCHKROW", + "SPECIES_HOOTHOOT", + "SPECIES_HOPPIP", + "SPECIES_HORSEA", + "SPECIES_HOUNDOOM", + "SPECIES_HOUNDOUR", + "SPECIES_HUNTAIL", + "SPECIES_HYPNO", + "SPECIES_IGGLYBUFF", + "SPECIES_ILLUMISE", + "SPECIES_INFERNAPE", + "SPECIES_IVYSAUR" + ] + }, + { + "id": "jkl", + "mons": [ + "SPECIES_JIGGLYPUFF", + "SPECIES_JIRACHI", + "SPECIES_JOLTEON", + "SPECIES_JUMPLUFF", + "SPECIES_JYNX", + "SPECIES_KABUTO", + "SPECIES_KABUTOPS", + "SPECIES_KADABRA", + "SPECIES_KAKUNA", + "SPECIES_KANGASKHAN", + "SPECIES_KECLEON", + "SPECIES_KINGDRA", + "SPECIES_KINGLER", + "SPECIES_KIRLIA", + "SPECIES_KOFFING", + "SPECIES_KRABBY", + "SPECIES_KRICKETOT", + "SPECIES_KRICKETUNE", + "SPECIES_KYOGRE", + "SPECIES_LAIRON", + "SPECIES_LANTURN", + "SPECIES_LAPRAS", + "SPECIES_LARVITAR", + "SPECIES_LATIAS", + "SPECIES_LATIOS", + "SPECIES_LEAFEON", + "SPECIES_LEDIAN", + "SPECIES_LEDYBA", + "SPECIES_LICKILICKY", + "SPECIES_LICKITUNG", + "SPECIES_LILEEP", + "SPECIES_LINOONE", + "SPECIES_LOMBRE", + "SPECIES_LOPUNNY", + "SPECIES_LOTAD", + "SPECIES_LOUDRED", + "SPECIES_LUCARIO", + "SPECIES_LUDICOLO", + "SPECIES_LUGIA", + "SPECIES_LUMINEON", + "SPECIES_LUNATONE", + "SPECIES_LUVDISC", + "SPECIES_LUXIO", + "SPECIES_LUXRAY" + ] + }, + { + "id": "mno", + "mons": [ + "SPECIES_MACHAMP", + "SPECIES_MACHOKE", + "SPECIES_MACHOP", + "SPECIES_MAGBY", + "SPECIES_MAGCARGO", + "SPECIES_MAGIKARP", + "SPECIES_MAGMAR", + "SPECIES_MAGMORTAR", + "SPECIES_MAGNEMITE", + "SPECIES_MAGNETON", + "SPECIES_MAGNEZONE", + "SPECIES_MAKUHITA", + "SPECIES_MAMOSWINE", + "SPECIES_MANAPHY", + "SPECIES_MANECTRIC", + "SPECIES_MANKEY", + "SPECIES_MANTINE", + "SPECIES_MANTYKE", + "SPECIES_MAREEP", + "SPECIES_MARILL", + "SPECIES_MAROWAK", + "SPECIES_MARSHTOMP", + "SPECIES_MASQUERAIN", + "SPECIES_MAWILE", + "SPECIES_MEDICHAM", + "SPECIES_MEDITITE", + "SPECIES_MEGANIUM", + "SPECIES_MEOWTH", + "SPECIES_MESPRIT", + "SPECIES_METAGROSS", + "SPECIES_METANG", + "SPECIES_METAPOD", + "SPECIES_MEW", + "SPECIES_MEWTWO", + "SPECIES_MIGHTYENA", + "SPECIES_MILOTIC", + "SPECIES_MILTANK", + "SPECIES_MIME_JR", + "SPECIES_MINUN", + "SPECIES_MISDREAVUS", + "SPECIES_MISMAGIUS", + "SPECIES_MOLTRES", + "SPECIES_MONFERNO", + "SPECIES_MOTHIM", + "SPECIES_MR_MIME", + "SPECIES_MUDKIP", + "SPECIES_MUK", + "SPECIES_MUNCHLAX", + "SPECIES_MURKROW", + "SPECIES_NATU", + "SPECIES_NIDOKING", + "SPECIES_NIDOQUEEN", + "SPECIES_NIDORAN_F", + "SPECIES_NIDORAN_M", + "SPECIES_NIDORINA", + "SPECIES_NIDORINO", + "SPECIES_NINCADA", + "SPECIES_NINETALES", + "SPECIES_NINJASK", + "SPECIES_NOCTOWL", + "SPECIES_NOSEPASS", + "SPECIES_NUMEL", + "SPECIES_NUZLEAF", + "SPECIES_OCTILLERY", + "SPECIES_ODDISH", + "SPECIES_OMANYTE", + "SPECIES_OMASTAR", + "SPECIES_ONIX" + ] + }, + { + "id": "pqr", + "mons": [ + "SPECIES_PACHIRISU", + "SPECIES_PALKIA", + "SPECIES_PARAS", + "SPECIES_PARASECT", + "SPECIES_PELIPPER", + "SPECIES_PERSIAN", + "SPECIES_PHANPY", + "SPECIES_PHIONE", + "SPECIES_PICHU", + "SPECIES_PIDGEOT", + "SPECIES_PIDGEOTTO", + "SPECIES_PIDGEY", + "SPECIES_PIKACHU", + "SPECIES_PILOSWINE", + "SPECIES_PINECO", + "SPECIES_PINSIR", + "SPECIES_PIPLUP", + "SPECIES_PLUSLE", + "SPECIES_POLITOED", + "SPECIES_POLIWAG", + "SPECIES_POLIWHIRL", + "SPECIES_POLIWRATH", + "SPECIES_PONYTA", + "SPECIES_POOCHYENA", + "SPECIES_PORYGON", + "SPECIES_PORYGON_Z", + "SPECIES_PORYGON2", + "SPECIES_PRIMEAPE", + "SPECIES_PRINPLUP", + "SPECIES_PROBOPASS", + "SPECIES_PSYDUCK", + "SPECIES_PUPITAR", + "SPECIES_PURUGLY", + "SPECIES_QUAGSIRE", + "SPECIES_QUILAVA", + "SPECIES_QWILFISH", + "SPECIES_RAICHU", + "SPECIES_RAIKOU", + "SPECIES_RALTS", + "SPECIES_RAMPARDOS", + "SPECIES_RAPIDASH", + "SPECIES_RATICATE", + "SPECIES_RATTATA", + "SPECIES_RAYQUAZA", + "SPECIES_REGICE", + "SPECIES_REGIGIGAS", + "SPECIES_REGIROCK", + "SPECIES_REGISTEEL", + "SPECIES_RELICANTH", + "SPECIES_REMORAID", + "SPECIES_RHYDON", + "SPECIES_RHYHORN", + "SPECIES_RHYPERIOR", + "SPECIES_RIOLU", + "SPECIES_ROSELIA", + "SPECIES_ROSERADE", + "SPECIES_ROTOM" + ] + }, + { + "id": "stu", + "mons": [ + "SPECIES_SABLEYE", + "SPECIES_SALAMENCE", + "SPECIES_SANDSHREW", + "SPECIES_SANDSLASH", + "SPECIES_SCEPTILE", + "SPECIES_SCIZOR", + "SPECIES_SCYTHER", + "SPECIES_SEADRA", + "SPECIES_SEAKING", + "SPECIES_SEALEO", + "SPECIES_SEEDOT", + "SPECIES_SEEL", + "SPECIES_SENTRET", + "SPECIES_SEVIPER", + "SPECIES_SHARPEDO", + "SPECIES_SHAYMIN", + "SPECIES_SHEDINJA", + "SPECIES_SHELGON", + "SPECIES_SHELLDER", + "SPECIES_SHELLOS", + "SPECIES_SHIELDON", + "SPECIES_SHIFTRY", + "SPECIES_SHINX", + "SPECIES_SHROOMISH", + "SPECIES_SHUCKLE", + "SPECIES_SHUPPET", + "SPECIES_SILCOON", + "SPECIES_SKARMORY", + "SPECIES_SKIPLOOM", + "SPECIES_SKITTY", + "SPECIES_SKORUPI", + "SPECIES_SKUNTANK", + "SPECIES_SLAKING", + "SPECIES_SLAKOTH", + "SPECIES_SLOWBRO", + "SPECIES_SLOWKING", + "SPECIES_SLOWPOKE", + "SPECIES_SLUGMA", + "SPECIES_SMEARGLE", + "SPECIES_SMOOCHUM", + "SPECIES_SNEASEL", + "SPECIES_SNORLAX", + "SPECIES_SNORUNT", + "SPECIES_SNOVER", + "SPECIES_SNUBBULL", + "SPECIES_SOLROCK", + "SPECIES_SPEAROW", + "SPECIES_SPHEAL", + "SPECIES_SPINARAK", + "SPECIES_SPINDA", + "SPECIES_SPIRITOMB", + "SPECIES_SPOINK", + "SPECIES_SQUIRTLE", + "SPECIES_STANTLER", + "SPECIES_STARAPTOR", + "SPECIES_STARAVIA", + "SPECIES_STARLY", + "SPECIES_STARMIE", + "SPECIES_STARYU", + "SPECIES_STEELIX", + "SPECIES_STUNKY", + "SPECIES_SUDOWOODO", + "SPECIES_SUICUNE", + "SPECIES_SUNFLORA", + "SPECIES_SUNKERN", + "SPECIES_SURSKIT", + "SPECIES_SWABLU", + "SPECIES_SWALOT", + "SPECIES_SWAMPERT", + "SPECIES_SWELLOW", + "SPECIES_SWINUB", + "SPECIES_TAILLOW", + "SPECIES_TANGELA", + "SPECIES_TANGROWTH", + "SPECIES_TAUROS", + "SPECIES_TEDDIURSA", + "SPECIES_TENTACOOL", + "SPECIES_TENTACRUEL", + "SPECIES_TOGEKISS", + "SPECIES_TOGEPI", + "SPECIES_TOGETIC", + "SPECIES_TORCHIC", + "SPECIES_TORKOAL", + "SPECIES_TORTERRA", + "SPECIES_TOTODILE", + "SPECIES_TOXICROAK", + "SPECIES_TRAPINCH", + "SPECIES_TREECKO", + "SPECIES_TROPIUS", + "SPECIES_TURTWIG", + "SPECIES_TYPHLOSION", + "SPECIES_TYRANITAR", + "SPECIES_TYROGUE", + "SPECIES_UMBREON", + "SPECIES_UNOWN", + "SPECIES_URSARING", + "SPECIES_UXIE" + ] + }, + { + "id": "vwx", + "mons": [ + "SPECIES_VAPOREON", + "SPECIES_VENOMOTH", + "SPECIES_VENONAT", + "SPECIES_VENUSAUR", + "SPECIES_VESPIQUEN", + "SPECIES_VIBRAVA", + "SPECIES_VICTREEBEL", + "SPECIES_VIGOROTH", + "SPECIES_VILEPLUME", + "SPECIES_VOLBEAT", + "SPECIES_VOLTORB", + "SPECIES_VULPIX", + "SPECIES_WAILMER", + "SPECIES_WAILORD", + "SPECIES_WALREIN", + "SPECIES_WARTORTLE", + "SPECIES_WEAVILE", + "SPECIES_WEEDLE", + "SPECIES_WEEPINBELL", + "SPECIES_WEEZING", + "SPECIES_WHISCASH", + "SPECIES_WHISMUR", + "SPECIES_WIGGLYTUFF", + "SPECIES_WINGULL", + "SPECIES_WOBBUFFET", + "SPECIES_WOOPER", + "SPECIES_WORMADAM", + "SPECIES_WURMPLE", + "SPECIES_WYNAUT", + "SPECIES_XATU" + ] + }, + { + "id": "yz", + "mons": [ + "SPECIES_YANMA", + "SPECIES_YANMEGA", + "SPECIES_ZANGOOSE", + "SPECIES_ZAPDOS", + "SPECIES_ZIGZAGOON", + "SPECIES_ZUBAT" + ] + } + ] + } + ] +} diff --git a/files/application/zukanlist/zkn_data/zukan_data.json.txt b/files/application/zukanlist/zkn_data/zukan_data.json.txt new file mode 100644 index 0000000000..fde2b5ae04 --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_data.json.txt @@ -0,0 +1,143 @@ +{{ doNotModifyHeader }} + +#include "constants/species.h" + + .rodata + .balign 4, 0 + + .type mon_stats_height, @object + .balign 4, 255 +mon_stats_height: +## for mon in mon_stats +## if isInteger(mon.height) + .word {{ mon.height }} // {{ mon.species }} +## else +#ifdef GIRA + .word {{ mon.height.origin }} // {{ mon.species }} origin +#else + .word {{ mon.height.altered }} // {{ mon.species }} altered +#endif +## endif +## endfor + .size mon_stats_height,.-mon_stats_height + + .type mon_stats_weight, @object + .balign 4, 255 +mon_stats_weight: +## for mon in mon_stats +## if isInteger(mon.weight) + .word {{ mon.weight }} // {{ mon.species }} +## else +#ifdef GIRA + .word {{ mon.weight.origin }} // {{ mon.species }} origin +#else + .word {{ mon.weight.altered }} // {{ mon.species }} altered +#endif +## endif +## endfor + .size mon_stats_weight,.-mon_stats_weight + + .type mon_stats_body_style, @object + .balign 4, 255 +mon_stats_body_style: +## for mon in mon_stats +## if isInteger(mon.body_style) + .byte {{ mon.body_style }} // {{ mon.species }} +## else +#ifdef GIRA + .byte {{ mon.body_style.origin }} // {{ mon.species }} origin +#else + .byte {{ mon.body_style.altered }} // {{ mon.species }} altered +#endif +## endif +## endfor + .size mon_stats_body_style,.-mon_stats_body_style + + .type mon_stats_player_scale_f, @object + .balign 4, 255 +mon_stats_player_scale_f: +## for mon in mon_stats + .short {{ mon.scale_f }} // {{ mon.species }} +## endfor + .size mon_stats_player_scale_f,.-mon_stats_player_scale_f + + .type mon_stats_mon_scale_f, @object + .balign 4, 255 +mon_stats_mon_scale_f: +## for mon in mon_stats + .short {{ mon.mon_scale_f }} // {{ mon.species }} +## endfor + .size mon_stats_mon_scale_f,.-mon_stats_mon_scale_f + + .type mon_stats_player_scale_m, @object + .balign 4, 255 +mon_stats_player_scale_m: +## for mon in mon_stats + .short {{ mon.scale_m }} // {{ mon.species }} +## endfor + .size mon_stats_player_scale_m,.-mon_stats_player_scale_m + + .type mon_stats_mon_scale_m, @object + .balign 4, 255 +mon_stats_mon_scale_m: +## for mon in mon_stats + .short {{ mon.mon_scale_m }} // {{ mon.species }} +## endfor + .size mon_stats_mon_scale_m,.-mon_stats_mon_scale_m + + .type mon_stats_player_ypos_f, @object + .balign 4, 255 +mon_stats_player_ypos_f: +## for mon in mon_stats + .short {{ mon.ypos_f }} // {{ mon.species }} +## endfor + .size mon_stats_player_ypos_f,.-mon_stats_player_ypos_f + + .type mon_stats_mon_ypos_f, @object + .balign 4, 255 +mon_stats_mon_ypos_f: +## for mon in mon_stats + .short {{ mon.mon_ypos_f }} // {{ mon.species }} +## endfor + .size mon_stats_mon_ypos_f,.-mon_stats_mon_ypos_f + + .type mon_stats_player_ypos_m, @object + .balign 4, 255 +mon_stats_player_ypos_m: +## for mon in mon_stats + .short {{ mon.ypos_m }} // {{ mon.species }} +## endfor + .size mon_stats_player_ypos_m,.-mon_stats_player_ypos_m + + .type mon_stats_mon_ypos_m, @object + .balign 4, 255 +mon_stats_mon_ypos_m: +## for mon in mon_stats + .short {{ mon.mon_ypos_m }} // {{ mon.species }} +## endfor + .size mon_stats_mon_ypos_m,.-mon_stats_mon_ypos_m + +## for group in sorting +## for subgroup in group.options + .type sort_order_{{ group.type }}_{{ subgroup.id }}, @object + .balign 4, 255 +sort_order_{{ group.type }}_{{ subgroup.id }}: +## if isArray(subgroup.mons) +## for mon in subgroup.mons + .short {{ mon }} +## endfor +## else +#ifdef GIRA +## for mon in subgroup.mons.origin + .short {{ mon }} +## endfor +#else +## for mon in subgroup.mons.altered + .short {{ mon }} +## endfor +#endif +##endif + .size sort_order_{{ group.type }}_{{ subgroup.id }},.-sort_order_{{ group.type }}_{{ subgroup.id }} + +## endfor +## endfor diff --git a/files/application/zukanlist/zkn_data/zukan_data.mk b/files/application/zukanlist/zkn_data/zukan_data.mk new file mode 100644 index 0000000000..a0f0a62cde --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_data.mk @@ -0,0 +1,19 @@ +ZUKAN_DATA_PREF := files/application/zukanlist/zkn_data/zukan_data +ZUKAN_DATA_NARC := $(ZUKAN_DATA_PREF).narc +ZUKAN_DATA_GIRA_NARC := $(ZUKAN_DATA_PREF)_gira.narc +ZUKAN_DATA_JSON := $(ZUKAN_DATA_PREF).json +ZUKAN_DATA_JSON_TXT := $(ZUKAN_DATA_PREF).json.txt + +$(ZUKAN_DATA_GIRA_NARC): %_gira.narc: %.narc ; +$(ZUKAN_DATA_NARC): %.narc: $(ZUKAN_DATA_JSON) $(ZUKAN_DATA_JSON_TXT) + $(JSONPROC) $^ $*.s + $(WINE) $(MWAS) $(MWASFLAGS) -DPM_ASM -o $*.o $*.s + $(O2NARC) $*.o $@ -N -p 0xFF + $(WINE) $(MWAS) $(MWASFLAGS) -DGIRA -DPM_ASM -o $*_gira.o $*.s + $(O2NARC) $*_gira.o $*_gira.narc -N -p 0xFF + @$(RM) $*.o $*_gira.o $*.s + +clean-zukan-data: + $(RM) $(ZUKAN_DATA_NARC) $(ZUKAN_DATA_GIRA_NARC) +.PHONY: clean-zukan-data +clean-filesystem: clean-zukan-data diff --git a/files/application/zukanlist/zkn_data/zukan_enc.json b/files/application/zukanlist/zkn_data/zukan_enc.json new file mode 100644 index 0000000000..dec53cc8d0 --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_enc.json @@ -0,0 +1,18206 @@ +{ + "dungeons": [ + { + "unk_0": 0, + "unk_1": 0, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 15, + "unk_1": 7, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 13, + "unk_1": 8, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 14, + "unk_1": 13, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 13, + "unk_1": 14, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 11, + "unk_1": 14, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 10, + "unk_1": 6, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 11, + "unk_1": 4, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 12, + "unk_1": 4, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 7, + "unk_1": 11, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 14, + "unk_1": 5, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 19, + "unk_1": 5, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 20, + "unk_1": 4, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 17, + "unk_1": 8, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 36, + "unk_1": 3, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 35, + "unk_1": 15, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 25, + "unk_1": 8, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 5, + "unk_1": 10, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 4, + "unk_1": 12, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 20, + "unk_1": 14, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 44, + "unk_1": 4, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 28, + "unk_1": 7, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 23, + "unk_1": 12, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 42, + "unk_1": 9, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 32, + "unk_1": 5, + "unk_2": 0, + "unk_3": 0 + }, + { + "unk_0": 40, + "unk_1": 3, + "unk_2": 0, + "unk_3": 0 + } + ], + "overworlds": [ + { + "unk_0": 0, + "unk_1": 0, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 21, + "unk_1": 12, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 18, + "unk_1": 12, + "unk_2": 3, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 16, + "unk_1": 12, + "unk_2": 2, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 17, + "unk_1": 9, + "unk_2": 1, + "unk_3": 3, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 16, + "unk_1": 8, + "unk_2": 2, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 14, + "unk_1": 7, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 14, + "unk_1": 9, + "unk_2": 1, + "unk_3": 5, + "unk_4": [ + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 14, + "unk_1": 14, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 11, + "unk_1": 12, + "unk_2": 1, + "unk_3": 3, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 11, + "unk_1": 8, + "unk_2": 1, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 11, + "unk_1": 7, + "unk_2": 3, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 12, + "unk_1": 6, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 11, + "unk_1": 4, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 9, + "unk_1": 5, + "unk_2": 2, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 8, + "unk_1": 5, + "unk_2": 1, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 8, + "unk_1": 7, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 7, + "unk_1": 8, + "unk_2": 1, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 6, + "unk_1": 10, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 5, + "unk_1": 10, + "unk_2": 1, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 13, + "unk_1": 5, + "unk_2": 3, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 16, + "unk_1": 3, + "unk_2": 1, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 15, + "unk_1": 1, + "unk_2": 3, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 17, + "unk_1": 5, + "unk_2": 3, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 20, + "unk_1": 4, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 20, + "unk_1": 6, + "unk_2": 1, + "unk_3": 5, + "unk_4": [ + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 19, + "unk_1": 10, + "unk_2": 1, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 2, + "unk_1": 11, + "unk_2": 3, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 25, + "unk_1": 8, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 44, + "unk_1": 8, + "unk_2": 1, + "unk_3": 3, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 37, + "unk_1": 14, + "unk_2": 1, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 33, + "unk_1": 15, + "unk_2": 4, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 32, + "unk_1": 11, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 31, + "unk_1": 7, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 40, + "unk_1": 3, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 40, + "unk_1": 9, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 37, + "unk_1": 7, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 37, + "unk_1": 12, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 32, + "unk_1": 15, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 2, + "unk_1": 10, + "unk_2": 2, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 28, + "unk_1": 9, + "unk_2": 1, + "unk_3": 4, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 22, + "unk_1": 12, + "unk_2": 6, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 26, + "unk_1": 8, + "unk_2": 2, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 32, + "unk_1": 9, + "unk_2": 1, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 32, + "unk_1": 6, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 34, + "unk_1": 3, + "unk_2": 3, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 37, + "unk_1": 3, + "unk_2": 3, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 40, + "unk_1": 5, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 40, + "unk_1": 8, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 39, + "unk_1": 7, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 42, + "unk_1": 7, + "unk_2": 2, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 42, + "unk_1": 4, + "unk_2": 3, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 44, + "unk_1": 5, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 42, + "unk_1": 9, + "unk_2": 2, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 42, + "unk_1": 11, + "unk_2": 3, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 42, + "unk_1": 12, + "unk_2": 1, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 39, + "unk_1": 13, + "unk_2": 3, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 36, + "unk_1": 8, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 35, + "unk_1": 9, + "unk_2": 1, + "unk_3": 4, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 35, + "unk_1": 13, + "unk_2": 2, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 32, + "unk_1": 12, + "unk_2": 1, + "unk_3": 3, + "unk_4": [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 29, + "unk_1": 8, + "unk_2": 2, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 41, + "unk_1": 2, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 41, + "unk_1": 1, + "unk_2": 4, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 32, + "unk_1": 4, + "unk_2": 1, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 32, + "unk_1": 2, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 12, + "unk_1": 14, + "unk_2": 2, + "unk_3": 1, + "unk_4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 2, + "unk_1": 8, + "unk_2": 2, + "unk_3": 2, + "unk_4": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 35, + "unk_1": 8, + "unk_2": 1, + "unk_3": 1, + "unk_4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "unk_0": 0, + "unk_1": 0, + "unk_2": 0, + "unk_3": 0, + "unk_4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "encounters": { + "method_0": { + "mon_000_none": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 0 + ], + "mon_001_bulbasaur": [ + 0 + ], + "mon_002_ivysaur": [ + 0 + ], + "mon_003_venusaur": [ + 0 + ], + "mon_004_charmander": [ + 0 + ], + "mon_005_charmeleon": [ + 0 + ], + "mon_006_charizard": [ + 0 + ], + "mon_007_squirtle": [ + 0 + ], + "mon_008_wartortle": [ + 0 + ], + "mon_009_blastoise": [ + 0 + ], + "mon_010_caterpie": { + "GOLD": [ + 5, + 6, + 24, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_011_metapod": { + "GOLD": [ + 5, + 6, + 24, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_012_butterfree": { + "GOLD": [ + 24, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_013_weedle": { + "GOLD": [ + 0 + ], + "SILVER": [ + 5, + 6, + 24, + 0 + ] + }, + "mon_014_kakuna": { + "GOLD": [ + 0 + ], + "SILVER": [ + 5, + 6, + 24, + 0 + ] + }, + "mon_015_beedrill": { + "GOLD": [ + 0 + ], + "SILVER": [ + 24, + 0 + ] + }, + "mon_016_pidgey": [ + 6, + 24, + 0 + ], + "mon_017_pidgeotto": [ + 24, + 0 + ], + "mon_018_pidgeot": [ + 0 + ], + "mon_019_rattata": [ + 1, + 3, + 7, + 8, + 10, + 22, + 0 + ], + "mon_020_raticate": [ + 3, + 7, + 10, + 22, + 0 + ], + "mon_021_spearow": [ + 0 + ], + "mon_022_fearow": [ + 0 + ], + "mon_023_ekans": [ + 0 + ], + "mon_024_arbok": [ + 0 + ], + "mon_025_pikachu": [ + 24, + 0 + ], + "mon_026_raichu": [ + 0 + ], + "mon_027_sandshrew": { + "GOLD": [ + 3, + 14, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_028_sandslash": { + "GOLD": [ + 14, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_029_nidoran_f": [ + 0 + ], + "mon_030_nidorina": [ + 0 + ], + "mon_031_nidoqueen": [ + 0 + ], + "mon_032_nidoran_m": [ + 0 + ], + "mon_033_nidorino": [ + 0 + ], + "mon_034_nidoking": [ + 0 + ], + "mon_035_clefairy": [ + 14, + 0 + ], + "mon_036_clefable": [ + 0 + ], + "mon_037_vulpix": [ + 0 + ], + "mon_038_ninetales": [ + 0 + ], + "mon_039_jigglypuff": [ + 0 + ], + "mon_040_wigglytuff": [ + 0 + ], + "mon_041_zubat": [ + 3, + 4, + 5, + 7, + 9, + 10, + 11, + 13, + 15, + 14, + 20, + 22, + 0 + ], + "mon_042_golbat": [ + 3, + 4, + 9, + 10, + 11, + 13, + 15, + 16, + 18, + 21, + 22, + 25, + 0 + ], + "mon_043_oddish": [ + 0 + ], + "mon_044_gloom": [ + 0 + ], + "mon_045_vileplume": [ + 0 + ], + "mon_046_paras": [ + 5, + 14, + 0 + ], + "mon_047_parasect": [ + 25, + 0 + ], + "mon_048_venonat": [ + 0 + ], + "mon_049_venomoth": [ + 0 + ], + "mon_050_diglett": [ + 23, + 0 + ], + "mon_051_dugtrio": [ + 23, + 0 + ], + "mon_052_meowth": [ + 0 + ], + "mon_053_persian": { + "GOLD": [ + 0 + ], + "SILVER": [ + 25, + 0 + ] + }, + "mon_054_psyduck": [ + 5, + 15, + 25, + 0 + ], + "mon_055_golduck": [ + 5, + 15, + 16, + 25, + 0 + ], + "mon_056_mankey": [ + 0 + ], + "mon_057_primeape": { + "GOLD": [ + 25, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_058_growlithe": [ + 0 + ], + "mon_059_arcanine": [ + 0 + ], + "mon_060_poliwag": [ + 2, + 5, + 14, + 17, + 25, + 0 + ], + "mon_061_poliwhirl": [ + 25, + 0 + ], + "mon_062_poliwrath": [ + 0 + ], + "mon_063_abra": [ + 0 + ], + "mon_064_kadabra": [ + 25, + 0 + ], + "mon_065_alakazam": [ + 0 + ], + "mon_066_machop": [ + 10, + 18, + 20, + 0 + ], + "mon_067_machoke": [ + 10, + 18, + 20, + 25, + 0 + ], + "mon_068_machamp": [ + 0 + ], + "mon_069_bellsprout": [ + 0 + ], + "mon_070_weepinbell": [ + 0 + ], + "mon_071_victreebel": [ + 0 + ], + "mon_072_tentacool": [ + 3, + 9, + 0 + ], + "mon_073_tentacruel": [ + 3, + 9, + 0 + ], + "mon_074_geodude": [ + 2, + 3, + 10, + 13, + 18, + 14, + 20, + 21, + 25, + 0 + ], + "mon_075_graveler": [ + 10, + 13, + 18, + 16, + 21, + 25, + 0 + ], + "mon_076_golem": [ + 0 + ], + "mon_077_ponyta": [ + 0 + ], + "mon_078_rapidash": [ + 0 + ], + "mon_079_slowpoke": [ + 4, + 22, + 0 + ], + "mon_080_slowbro": [ + 4, + 15, + 0 + ], + "mon_081_magnemite": [ + 0 + ], + "mon_082_magneton": [ + 25, + 0 + ], + "mon_083_farfetchd": [ + 0 + ], + "mon_084_doduo": [ + 0 + ], + "mon_085_dodrio": [ + 0 + ], + "mon_086_seel": [ + 9, + 15, + 0 + ], + "mon_087_dewgong": [ + 15, + 0 + ], + "mon_088_grimer": [ + 0 + ], + "mon_089_muk": [ + 0 + ], + "mon_090_shellder": [ + 0 + ], + "mon_091_cloyster": [ + 0 + ], + "mon_092_gastly": [ + 0 + ], + "mon_093_haunter": [ + 0 + ], + "mon_094_gengar": [ + 0 + ], + "mon_095_onix": [ + 3, + 18, + 16, + 20, + 21, + 0 + ], + "mon_096_drowzee": [ + 0 + ], + "mon_097_hypno": [ + 0 + ], + "mon_098_krabby": [ + 3, + 9, + 15, + 18, + 0 + ], + "mon_099_kingler": [ + 3, + 9, + 15, + 18, + 0 + ], + "mon_100_voltorb": [ + 0 + ], + "mon_101_electrode": [ + 25, + 0 + ], + "mon_102_exeggcute": [ + 0 + ], + "mon_103_exeggutor": [ + 0 + ], + "mon_104_cubone": [ + 20, + 0 + ], + "mon_105_marowak": [ + 20, + 0 + ], + "mon_106_hitmonlee": [ + 0 + ], + "mon_107_hitmonchan": [ + 0 + ], + "mon_108_lickitung": [ + 0 + ], + "mon_109_koffing": [ + 7, + 0 + ], + "mon_110_weezing": [ + 0 + ], + "mon_111_rhyhorn": [ + 21, + 0 + ], + "mon_112_rhydon": [ + 0 + ], + "mon_113_chansey": [ + 0 + ], + "mon_114_tangela": [ + 0 + ], + "mon_115_kangaskhan": [ + 20, + 0 + ], + "mon_116_horsea": [ + 9, + 15, + 0 + ], + "mon_117_seadra": [ + 9, + 15, + 0 + ], + "mon_118_goldeen": [ + 3, + 4, + 10, + 13, + 16, + 22, + 25, + 0 + ], + "mon_119_seaking": [ + 3, + 4, + 10, + 13, + 16, + 22, + 0 + ], + "mon_120_staryu": [ + 0 + ], + "mon_121_starmie": [ + 0 + ], + "mon_122_mr_mime": [ + 0 + ], + "mon_123_scyther": [ + 0 + ], + "mon_124_jynx": [ + 11, + 15, + 0 + ], + "mon_125_electabuzz": [ + 0 + ], + "mon_126_magmar": [ + 7, + 0 + ], + "mon_127_pinsir": [ + 0 + ], + "mon_128_tauros": [ + 0 + ], + "mon_129_magikarp": [ + 2, + 3, + 4, + 5, + 9, + 10, + 12, + 13, + 14, + 15, + 16, + 17, + 22, + 25, + 0 + ], + "mon_130_gyarados": [ + 15, + 16, + 25, + 0 + ], + "mon_131_lapras": [ + 0 + ], + "mon_132_ditto": [ + 25, + 0 + ], + "mon_133_eevee": [ + 0 + ], + "mon_134_vaporeon": [ + 0 + ], + "mon_135_jolteon": [ + 0 + ], + "mon_136_flareon": [ + 0 + ], + "mon_137_porygon": [ + 0 + ], + "mon_138_omanyte": [ + 0 + ], + "mon_139_omastar": [ + 0 + ], + "mon_140_kabuto": [ + 0 + ], + "mon_141_kabutops": [ + 0 + ], + "mon_142_aerodactyl": [ + 0 + ], + "mon_143_snorlax": [ + 0 + ], + "mon_144_articuno": [ + 0 + ], + "mon_145_zapdos": [ + 0 + ], + "mon_146_moltres": [ + 0 + ], + "mon_147_dratini": [ + 12, + 0 + ], + "mon_148_dragonair": [ + 12, + 0 + ], + "mon_149_dragonite": [ + 0 + ], + "mon_150_mewtwo": [ + 0 + ], + "mon_151_mew": [ + 0 + ], + "mon_152_chikorita": [ + 0 + ], + "mon_153_bayleef": [ + 0 + ], + "mon_154_meganium": [ + 0 + ], + "mon_155_cyndaquil": [ + 0 + ], + "mon_156_quilava": [ + 0 + ], + "mon_157_typhlosion": [ + 0 + ], + "mon_158_totodile": [ + 0 + ], + "mon_159_croconaw": [ + 0 + ], + "mon_160_feraligatr": [ + 0 + ], + "mon_161_sentret": [ + 0 + ], + "mon_162_furret": [ + 0 + ], + "mon_163_hoothoot": [ + 0 + ], + "mon_164_noctowl": [ + 0 + ], + "mon_165_ledyba": [ + 0 + ], + "mon_166_ledian": [ + 0 + ], + "mon_167_spinarak": [ + 0 + ], + "mon_168_ariados": [ + 0 + ], + "mon_169_crobat": [ + 0 + ], + "mon_170_chinchou": [ + 0 + ], + "mon_171_lanturn": [ + 0 + ], + "mon_172_pichu": [ + 0 + ], + "mon_173_cleffa": [ + 0 + ], + "mon_174_igglybuff": [ + 0 + ], + "mon_175_togepi": [ + 0 + ], + "mon_176_togetic": [ + 0 + ], + "mon_177_natu": [ + 2, + 0 + ], + "mon_178_xatu": [ + 0 + ], + "mon_179_mareep": [ + 0 + ], + "mon_180_flaaffy": [ + 0 + ], + "mon_181_ampharos": [ + 0 + ], + "mon_182_bellossom": [ + 0 + ], + "mon_183_marill": [ + 10, + 0 + ], + "mon_184_azumarill": [ + 0 + ], + "mon_185_sudowoodo": [ + 0 + ], + "mon_186_politoed": [ + 0 + ], + "mon_187_hoppip": [ + 0 + ], + "mon_188_skiploom": [ + 0 + ], + "mon_189_jumpluff": [ + 0 + ], + "mon_190_aipom": [ + 0 + ], + "mon_191_sunkern": [ + 0 + ], + "mon_192_sunflora": [ + 0 + ], + "mon_193_yanma": [ + 0 + ], + "mon_194_wooper": [ + 2, + 3, + 17, + 18, + 0 + ], + "mon_195_quagsire": [ + 2, + 3, + 16, + 17, + 18, + 0 + ], + "mon_196_espeon": [ + 0 + ], + "mon_197_umbreon": [ + 0 + ], + "mon_198_murkrow": [ + 0 + ], + "mon_199_slowking": [ + 0 + ], + "mon_200_misdreavus": [ + 0 + ], + "mon_201_unown": [ + 2, + 0 + ], + "mon_202_wobbuffet": [ + 13, + 25, + 0 + ], + "mon_203_girafarig": [ + 0 + ], + "mon_204_pineco": [ + 0 + ], + "mon_205_forretress": [ + 0 + ], + "mon_206_dunsparce": [ + 13, + 0 + ], + "mon_207_gligar": [ + 0 + ], + "mon_208_steelix": [ + 16, + 18, + 0 + ], + "mon_209_snubbull": [ + 0 + ], + "mon_210_granbull": [ + 0 + ], + "mon_211_qwilfish": [ + 0 + ], + "mon_212_scizor": [ + 0 + ], + "mon_213_shuckle": [ + 0 + ], + "mon_214_heracross": [ + 0 + ], + "mon_215_sneasel": [ + 16, + 0 + ], + "mon_216_teddiursa": { + "GOLD": [ + 0 + ], + "SILVER": [ + 16, + 0 + ] + }, + "mon_217_ursaring": { + "GOLD": [ + 0 + ], + "SILVER": [ + 16, + 21, + 0 + ] + }, + "mon_218_slugma": [ + 0 + ], + "mon_219_magcargo": [ + 0 + ], + "mon_220_swinub": [ + 11, + 0 + ], + "mon_221_piloswine": [ + 0 + ], + "mon_222_corsola": [ + 3, + 0 + ], + "mon_223_remoraid": [ + 0 + ], + "mon_224_octillery": [ + 0 + ], + "mon_225_delibird": { + "GOLD": [ + 0 + ], + "SILVER": [ + 11, + 0 + ] + }, + "mon_226_mantine": [ + 0 + ], + "mon_227_skarmory": [ + 0 + ], + "mon_228_houndour": [ + 0 + ], + "mon_229_houndoom": [ + 0 + ], + "mon_230_kingdra": [ + 0 + ], + "mon_231_phanpy": { + "GOLD": [ + 16, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_232_donphan": { + "GOLD": [ + 16, + 21, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_233_porygon2": [ + 0 + ], + "mon_234_stantler": [ + 0 + ], + "mon_235_smeargle": [ + 2, + 0 + ], + "mon_236_tyrogue": [ + 0 + ], + "mon_237_hitmontop": [ + 0 + ], + "mon_238_smoochum": [ + 0 + ], + "mon_239_elekid": [ + 0 + ], + "mon_240_magby": [ + 0 + ], + "mon_241_miltank": [ + 0 + ], + "mon_242_blissey": [ + 0 + ], + "mon_243_raikou": [ + 0 + ], + "mon_244_entei": [ + 0 + ], + "mon_245_suicune": [ + 0 + ], + "mon_246_larvitar": [ + 16, + 0 + ], + "mon_247_pupitar": [ + 16, + 0 + ], + "mon_248_tyranitar": [ + 0 + ], + "mon_249_lugia": [ + 0 + ], + "mon_250_ho_oh": [ + 0 + ], + "mon_251_celebi": [ + 0 + ], + "mon_252_treecko": [ + 0 + ], + "mon_253_grovyle": [ + 0 + ], + "mon_254_sceptile": [ + 0 + ], + "mon_255_torchic": [ + 0 + ], + "mon_256_combusken": [ + 0 + ], + "mon_257_blaziken": [ + 0 + ], + "mon_258_mudkip": [ + 0 + ], + "mon_259_marshtomp": [ + 0 + ], + "mon_260_swampert": [ + 0 + ], + "mon_261_poochyena": [ + 0 + ], + "mon_262_mightyena": [ + 0 + ], + "mon_263_zigzagoon": [ + 0 + ], + "mon_264_linoone": [ + 0 + ], + "mon_265_wurmple": [ + 0 + ], + "mon_266_silcoon": [ + 0 + ], + "mon_267_beautifly": [ + 0 + ], + "mon_268_cascoon": [ + 0 + ], + "mon_269_dustox": [ + 0 + ], + "mon_270_lotad": [ + 0 + ], + "mon_271_lombre": [ + 0 + ], + "mon_272_ludicolo": [ + 0 + ], + "mon_273_seedot": [ + 0 + ], + "mon_274_nuzleaf": [ + 0 + ], + "mon_275_shiftry": [ + 0 + ], + "mon_276_taillow": [ + 0 + ], + "mon_277_swellow": [ + 0 + ], + "mon_278_wingull": [ + 0 + ], + "mon_279_pelipper": [ + 0 + ], + "mon_280_ralts": [ + 0 + ], + "mon_281_kirlia": [ + 0 + ], + "mon_282_gardevoir": [ + 0 + ], + "mon_283_surskit": [ + 0 + ], + "mon_284_masquerain": [ + 0 + ], + "mon_285_shroomish": [ + 0 + ], + "mon_286_breloom": [ + 0 + ], + "mon_287_slakoth": [ + 0 + ], + "mon_288_vigoroth": [ + 0 + ], + "mon_289_slaking": [ + 0 + ], + "mon_290_nincada": [ + 0 + ], + "mon_291_ninjask": [ + 0 + ], + "mon_292_shedinja": [ + 0 + ], + "mon_293_whismur": [ + 0 + ], + "mon_294_loudred": [ + 0 + ], + "mon_295_exploud": [ + 0 + ], + "mon_296_makuhita": [ + 0 + ], + "mon_297_hariyama": [ + 0 + ], + "mon_298_azurill": [ + 0 + ], + "mon_299_nosepass": [ + 0 + ], + "mon_300_skitty": [ + 0 + ], + "mon_301_delcatty": [ + 0 + ], + "mon_302_sableye": [ + 0 + ], + "mon_303_mawile": [ + 0 + ], + "mon_304_aron": [ + 0 + ], + "mon_305_lairon": [ + 0 + ], + "mon_306_aggron": [ + 0 + ], + "mon_307_meditite": [ + 0 + ], + "mon_308_medicham": [ + 0 + ], + "mon_309_electrike": [ + 0 + ], + "mon_310_manectric": [ + 0 + ], + "mon_311_plusle": [ + 0 + ], + "mon_312_minun": [ + 0 + ], + "mon_313_volbeat": [ + 0 + ], + "mon_314_illumise": [ + 0 + ], + "mon_315_roselia": [ + 0 + ], + "mon_316_gulpin": [ + 0 + ], + "mon_317_swalot": [ + 0 + ], + "mon_318_carvanha": [ + 0 + ], + "mon_319_sharpedo": [ + 0 + ], + "mon_320_wailmer": [ + 0 + ], + "mon_321_wailord": [ + 0 + ], + "mon_322_numel": [ + 0 + ], + "mon_323_camerupt": [ + 0 + ], + "mon_324_torkoal": [ + 0 + ], + "mon_325_spoink": [ + 0 + ], + "mon_326_grumpig": [ + 0 + ], + "mon_327_spinda": [ + 0 + ], + "mon_328_trapinch": [ + 0 + ], + "mon_329_vibrava": [ + 0 + ], + "mon_330_flygon": [ + 0 + ], + "mon_331_cacnea": [ + 0 + ], + "mon_332_cacturne": [ + 0 + ], + "mon_333_swablu": [ + 0 + ], + "mon_334_altaria": [ + 0 + ], + "mon_335_zangoose": [ + 0 + ], + "mon_336_seviper": [ + 0 + ], + "mon_337_lunatone": [ + 0 + ], + "mon_338_solrock": [ + 0 + ], + "mon_339_barboach": [ + 0 + ], + "mon_340_whiscash": [ + 0 + ], + "mon_341_corphish": [ + 0 + ], + "mon_342_crawdaunt": [ + 0 + ], + "mon_343_baltoy": [ + 0 + ], + "mon_344_claydol": [ + 0 + ], + "mon_345_lileep": [ + 0 + ], + "mon_346_cradily": [ + 0 + ], + "mon_347_anorith": [ + 0 + ], + "mon_348_armaldo": [ + 0 + ], + "mon_349_feebas": [ + 0 + ], + "mon_350_milotic": [ + 0 + ], + "mon_351_castform": [ + 0 + ], + "mon_352_kecleon": [ + 0 + ], + "mon_353_shuppet": [ + 0 + ], + "mon_354_banette": [ + 0 + ], + "mon_355_duskull": [ + 0 + ], + "mon_356_dusclops": [ + 0 + ], + "mon_357_tropius": [ + 0 + ], + "mon_358_chimecho": [ + 0 + ], + "mon_359_absol": [ + 0 + ], + "mon_360_wynaut": [ + 0 + ], + "mon_361_snorunt": [ + 0 + ], + "mon_362_glalie": [ + 0 + ], + "mon_363_spheal": [ + 0 + ], + "mon_364_sealeo": [ + 0 + ], + "mon_365_walrein": [ + 0 + ], + "mon_366_clamperl": [ + 0 + ], + "mon_367_huntail": [ + 0 + ], + "mon_368_gorebyss": [ + 0 + ], + "mon_369_relicanth": [ + 0 + ], + "mon_370_luvdisc": [ + 0 + ], + "mon_371_bagon": [ + 0 + ], + "mon_372_shelgon": [ + 0 + ], + "mon_373_salamence": [ + 0 + ], + "mon_374_beldum": [ + 0 + ], + "mon_375_metang": [ + 0 + ], + "mon_376_metagross": [ + 0 + ], + "mon_377_regirock": [ + 0 + ], + "mon_378_regice": [ + 0 + ], + "mon_379_registeel": [ + 0 + ], + "mon_380_latias": [ + 0 + ], + "mon_381_latios": [ + 0 + ], + "mon_382_kyogre": [ + 0 + ], + "mon_383_groudon": [ + 0 + ], + "mon_384_rayquaza": [ + 0 + ], + "mon_385_jirachi": [ + 0 + ], + "mon_386_deoxys": [ + 0 + ], + "mon_387_turtwig": [ + 0 + ], + "mon_388_grotle": [ + 0 + ], + "mon_389_torterra": [ + 0 + ], + "mon_390_chimchar": [ + 0 + ], + "mon_391_monferno": [ + 0 + ], + "mon_392_infernape": [ + 0 + ], + "mon_393_piplup": [ + 0 + ], + "mon_394_prinplup": [ + 0 + ], + "mon_395_empoleon": [ + 0 + ], + "mon_396_starly": [ + 0 + ], + "mon_397_staravia": [ + 0 + ], + "mon_398_staraptor": [ + 0 + ], + "mon_399_bidoof": [ + 0 + ], + "mon_400_bibarel": [ + 0 + ], + "mon_401_kricketot": [ + 0 + ], + "mon_402_kricketune": [ + 0 + ], + "mon_403_shinx": [ + 0 + ], + "mon_404_luxio": [ + 0 + ], + "mon_405_luxray": [ + 0 + ], + "mon_406_budew": [ + 0 + ], + "mon_407_roserade": [ + 0 + ], + "mon_408_cranidos": [ + 0 + ], + "mon_409_rampardos": [ + 0 + ], + "mon_410_shieldon": [ + 0 + ], + "mon_411_bastiodon": [ + 0 + ], + "mon_412_burmy": [ + 0 + ], + "mon_413_wormadam": [ + 0 + ], + "mon_414_mothim": [ + 0 + ], + "mon_415_combee": [ + 0 + ], + "mon_416_vespiquen": [ + 0 + ], + "mon_417_pachirisu": [ + 0 + ], + "mon_418_buizel": [ + 0 + ], + "mon_419_floatzel": [ + 0 + ], + "mon_420_cherubi": [ + 0 + ], + "mon_421_cherrim": [ + 0 + ], + "mon_422_shellos": [ + 0 + ], + "mon_423_gastrodon": [ + 0 + ], + "mon_424_ambipom": [ + 0 + ], + "mon_425_drifloon": [ + 0 + ], + "mon_426_drifblim": [ + 0 + ], + "mon_427_buneary": [ + 0 + ], + "mon_428_lopunny": [ + 0 + ], + "mon_429_mismagius": [ + 0 + ], + "mon_430_honchkrow": [ + 0 + ], + "mon_431_glameow": [ + 0 + ], + "mon_432_purugly": [ + 0 + ], + "mon_433_chingling": [ + 0 + ], + "mon_434_stunky": [ + 0 + ], + "mon_435_skuntank": [ + 0 + ], + "mon_436_bronzor": [ + 0 + ], + "mon_437_bronzong": [ + 0 + ], + "mon_438_bonsly": [ + 0 + ], + "mon_439_mime_jr": [ + 0 + ], + "mon_440_happiny": [ + 0 + ], + "mon_441_chatot": [ + 0 + ], + "mon_442_spiritomb": [ + 0 + ], + "mon_443_gible": [ + 0 + ], + "mon_444_gabite": [ + 0 + ], + "mon_445_garchomp": [ + 0 + ], + "mon_446_munchlax": [ + 0 + ], + "mon_447_riolu": [ + 0 + ], + "mon_448_lucario": [ + 0 + ], + "mon_449_hippopotas": [ + 0 + ], + "mon_450_hippowdon": [ + 0 + ], + "mon_451_skorupi": [ + 0 + ], + "mon_452_drapion": [ + 0 + ], + "mon_453_croagunk": [ + 0 + ], + "mon_454_toxicroak": [ + 0 + ], + "mon_455_carnivine": [ + 0 + ], + "mon_456_finneon": [ + 0 + ], + "mon_457_lumineon": [ + 0 + ], + "mon_458_mantyke": [ + 0 + ], + "mon_459_snover": [ + 0 + ], + "mon_460_abomasnow": [ + 0 + ], + "mon_461_weavile": [ + 0 + ], + "mon_462_magnezone": [ + 0 + ], + "mon_463_lickilicky": [ + 0 + ], + "mon_464_rhyperior": [ + 0 + ], + "mon_465_tangrowth": [ + 0 + ], + "mon_466_electivire": [ + 0 + ], + "mon_467_magmortar": [ + 0 + ], + "mon_468_togekiss": [ + 0 + ], + "mon_469_yanmega": [ + 0 + ], + "mon_470_leafeon": [ + 0 + ], + "mon_471_glaceon": [ + 0 + ], + "mon_472_gliscor": [ + 0 + ], + "mon_473_mamoswine": [ + 0 + ], + "mon_474_porygon_z": [ + 0 + ], + "mon_475_gallade": [ + 0 + ], + "mon_476_probopass": [ + 0 + ], + "mon_477_dusknoir": [ + 0 + ], + "mon_478_froslass": [ + 0 + ], + "mon_479_rotom": [ + 0 + ], + "mon_480_uxie": [ + 0 + ], + "mon_481_mesprit": [ + 0 + ], + "mon_482_azelf": [ + 0 + ], + "mon_483_dialga": [ + 0 + ], + "mon_484_palkia": [ + 0 + ], + "mon_485_heatran": [ + 0 + ], + "mon_486_regigigas": [ + 0 + ], + "mon_487_giratina": [ + 0 + ], + "mon_488_cresselia": [ + 0 + ], + "mon_489_phione": [ + 0 + ], + "mon_490_manaphy": [ + 0 + ], + "mon_491_darkrai": [ + 0 + ], + "mon_492_shaymin": [ + 0 + ], + "mon_493_arceus": [ + 0 + ], + "mon_494_egg": [ + 0 + ] + }, + "method_1": { + "mon_000_none": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 0 + ], + "mon_001_bulbasaur": [ + 0 + ], + "mon_002_ivysaur": [ + 0 + ], + "mon_003_venusaur": [ + 0 + ], + "mon_004_charmander": [ + 0 + ], + "mon_005_charmeleon": [ + 0 + ], + "mon_006_charizard": [ + 0 + ], + "mon_007_squirtle": [ + 0 + ], + "mon_008_wartortle": [ + 0 + ], + "mon_009_blastoise": [ + 0 + ], + "mon_010_caterpie": { + "GOLD": [ + 5, + 6, + 24, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_011_metapod": { + "GOLD": [ + 5, + 6, + 24, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_012_butterfree": [ + 0 + ], + "mon_013_weedle": { + "GOLD": [ + 0 + ], + "SILVER": [ + 5, + 6, + 24, + 0 + ] + }, + "mon_014_kakuna": { + "GOLD": [ + 0 + ], + "SILVER": [ + 5, + 6, + 24, + 0 + ] + }, + "mon_015_beedrill": [ + 0 + ], + "mon_016_pidgey": [ + 6, + 24, + 0 + ], + "mon_017_pidgeotto": [ + 24, + 0 + ], + "mon_018_pidgeot": [ + 0 + ], + "mon_019_rattata": [ + 1, + 3, + 7, + 8, + 10, + 22, + 0 + ], + "mon_020_raticate": [ + 3, + 7, + 10, + 22, + 0 + ], + "mon_021_spearow": [ + 0 + ], + "mon_022_fearow": [ + 0 + ], + "mon_023_ekans": [ + 0 + ], + "mon_024_arbok": [ + 0 + ], + "mon_025_pikachu": [ + 24, + 0 + ], + "mon_026_raichu": [ + 0 + ], + "mon_027_sandshrew": { + "GOLD": [ + 3, + 14, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_028_sandslash": { + "GOLD": [ + 14, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_029_nidoran_f": [ + 0 + ], + "mon_030_nidorina": [ + 0 + ], + "mon_031_nidoqueen": [ + 0 + ], + "mon_032_nidoran_m": [ + 0 + ], + "mon_033_nidorino": [ + 0 + ], + "mon_034_nidoking": [ + 0 + ], + "mon_035_clefairy": [ + 14, + 0 + ], + "mon_036_clefable": [ + 0 + ], + "mon_037_vulpix": [ + 0 + ], + "mon_038_ninetales": [ + 0 + ], + "mon_039_jigglypuff": [ + 0 + ], + "mon_040_wigglytuff": [ + 0 + ], + "mon_041_zubat": { + "GOLD": [ + 3, + 4, + 5, + 7, + 9, + 10, + 11, + 13, + 15, + 14, + 20, + 22, + 0 + ], + "SILVER": [ + 3, + 4, + 5, + 7, + 9, + 10, + 13, + 15, + 14, + 20, + 22, + 0 + ] + }, + "mon_042_golbat": [ + 3, + 4, + 9, + 10, + 11, + 13, + 15, + 16, + 18, + 21, + 22, + 25, + 0 + ], + "mon_043_oddish": [ + 0 + ], + "mon_044_gloom": [ + 0 + ], + "mon_045_vileplume": [ + 0 + ], + "mon_046_paras": [ + 5, + 14, + 0 + ], + "mon_047_parasect": [ + 25, + 0 + ], + "mon_048_venonat": [ + 0 + ], + "mon_049_venomoth": [ + 0 + ], + "mon_050_diglett": [ + 23, + 0 + ], + "mon_051_dugtrio": [ + 23, + 0 + ], + "mon_052_meowth": [ + 0 + ], + "mon_053_persian": { + "GOLD": [ + 0 + ], + "SILVER": [ + 25, + 0 + ] + }, + "mon_054_psyduck": [ + 5, + 15, + 25, + 0 + ], + "mon_055_golduck": [ + 5, + 15, + 16, + 25, + 0 + ], + "mon_056_mankey": [ + 0 + ], + "mon_057_primeape": { + "GOLD": [ + 25, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_058_growlithe": [ + 0 + ], + "mon_059_arcanine": [ + 0 + ], + "mon_060_poliwag": [ + 2, + 5, + 14, + 17, + 25, + 0 + ], + "mon_061_poliwhirl": [ + 25, + 0 + ], + "mon_062_poliwrath": [ + 0 + ], + "mon_063_abra": [ + 0 + ], + "mon_064_kadabra": [ + 25, + 0 + ], + "mon_065_alakazam": [ + 0 + ], + "mon_066_machop": [ + 10, + 18, + 20, + 0 + ], + "mon_067_machoke": [ + 10, + 18, + 20, + 25, + 0 + ], + "mon_068_machamp": [ + 0 + ], + "mon_069_bellsprout": [ + 0 + ], + "mon_070_weepinbell": [ + 0 + ], + "mon_071_victreebel": [ + 0 + ], + "mon_072_tentacool": [ + 3, + 9, + 0 + ], + "mon_073_tentacruel": [ + 3, + 9, + 0 + ], + "mon_074_geodude": [ + 2, + 3, + 10, + 13, + 18, + 14, + 20, + 21, + 25, + 0 + ], + "mon_075_graveler": [ + 10, + 13, + 18, + 16, + 21, + 25, + 0 + ], + "mon_076_golem": [ + 0 + ], + "mon_077_ponyta": [ + 0 + ], + "mon_078_rapidash": [ + 0 + ], + "mon_079_slowpoke": [ + 4, + 22, + 0 + ], + "mon_080_slowbro": [ + 4, + 15, + 0 + ], + "mon_081_magnemite": [ + 0 + ], + "mon_082_magneton": [ + 25, + 0 + ], + "mon_083_farfetchd": [ + 0 + ], + "mon_084_doduo": [ + 0 + ], + "mon_085_dodrio": [ + 0 + ], + "mon_086_seel": [ + 9, + 15, + 0 + ], + "mon_087_dewgong": [ + 15, + 0 + ], + "mon_088_grimer": [ + 0 + ], + "mon_089_muk": [ + 0 + ], + "mon_090_shellder": [ + 0 + ], + "mon_091_cloyster": [ + 0 + ], + "mon_092_gastly": [ + 0 + ], + "mon_093_haunter": [ + 0 + ], + "mon_094_gengar": [ + 0 + ], + "mon_095_onix": [ + 3, + 18, + 16, + 20, + 21, + 0 + ], + "mon_096_drowzee": [ + 0 + ], + "mon_097_hypno": [ + 0 + ], + "mon_098_krabby": [ + 3, + 9, + 15, + 18, + 0 + ], + "mon_099_kingler": [ + 3, + 9, + 15, + 18, + 0 + ], + "mon_100_voltorb": [ + 0 + ], + "mon_101_electrode": [ + 25, + 0 + ], + "mon_102_exeggcute": [ + 0 + ], + "mon_103_exeggutor": [ + 0 + ], + "mon_104_cubone": [ + 20, + 0 + ], + "mon_105_marowak": [ + 20, + 0 + ], + "mon_106_hitmonlee": [ + 0 + ], + "mon_107_hitmonchan": [ + 0 + ], + "mon_108_lickitung": [ + 0 + ], + "mon_109_koffing": [ + 7, + 0 + ], + "mon_110_weezing": [ + 0 + ], + "mon_111_rhyhorn": [ + 21, + 0 + ], + "mon_112_rhydon": [ + 0 + ], + "mon_113_chansey": [ + 0 + ], + "mon_114_tangela": [ + 0 + ], + "mon_115_kangaskhan": [ + 20, + 0 + ], + "mon_116_horsea": [ + 9, + 15, + 0 + ], + "mon_117_seadra": [ + 9, + 15, + 0 + ], + "mon_118_goldeen": [ + 3, + 4, + 10, + 13, + 16, + 22, + 25, + 0 + ], + "mon_119_seaking": [ + 3, + 4, + 10, + 13, + 16, + 22, + 0 + ], + "mon_120_staryu": [ + 0 + ], + "mon_121_starmie": [ + 0 + ], + "mon_122_mr_mime": [ + 0 + ], + "mon_123_scyther": [ + 0 + ], + "mon_124_jynx": [ + 11, + 15, + 0 + ], + "mon_125_electabuzz": [ + 0 + ], + "mon_126_magmar": [ + 7, + 0 + ], + "mon_127_pinsir": [ + 0 + ], + "mon_128_tauros": [ + 0 + ], + "mon_129_magikarp": [ + 2, + 3, + 4, + 5, + 9, + 10, + 12, + 13, + 14, + 15, + 16, + 17, + 22, + 25, + 0 + ], + "mon_130_gyarados": [ + 15, + 16, + 25, + 0 + ], + "mon_131_lapras": [ + 0 + ], + "mon_132_ditto": [ + 25, + 0 + ], + "mon_133_eevee": [ + 0 + ], + "mon_134_vaporeon": [ + 0 + ], + "mon_135_jolteon": [ + 0 + ], + "mon_136_flareon": [ + 0 + ], + "mon_137_porygon": [ + 0 + ], + "mon_138_omanyte": [ + 0 + ], + "mon_139_omastar": [ + 0 + ], + "mon_140_kabuto": [ + 0 + ], + "mon_141_kabutops": [ + 0 + ], + "mon_142_aerodactyl": [ + 0 + ], + "mon_143_snorlax": [ + 0 + ], + "mon_144_articuno": [ + 0 + ], + "mon_145_zapdos": [ + 0 + ], + "mon_146_moltres": [ + 0 + ], + "mon_147_dratini": [ + 12, + 0 + ], + "mon_148_dragonair": [ + 12, + 0 + ], + "mon_149_dragonite": [ + 0 + ], + "mon_150_mewtwo": [ + 0 + ], + "mon_151_mew": [ + 0 + ], + "mon_152_chikorita": [ + 0 + ], + "mon_153_bayleef": [ + 0 + ], + "mon_154_meganium": [ + 0 + ], + "mon_155_cyndaquil": [ + 0 + ], + "mon_156_quilava": [ + 0 + ], + "mon_157_typhlosion": [ + 0 + ], + "mon_158_totodile": [ + 0 + ], + "mon_159_croconaw": [ + 0 + ], + "mon_160_feraligatr": [ + 0 + ], + "mon_161_sentret": [ + 0 + ], + "mon_162_furret": [ + 0 + ], + "mon_163_hoothoot": [ + 0 + ], + "mon_164_noctowl": [ + 0 + ], + "mon_165_ledyba": [ + 0 + ], + "mon_166_ledian": [ + 0 + ], + "mon_167_spinarak": [ + 0 + ], + "mon_168_ariados": [ + 0 + ], + "mon_169_crobat": [ + 0 + ], + "mon_170_chinchou": [ + 0 + ], + "mon_171_lanturn": [ + 0 + ], + "mon_172_pichu": [ + 0 + ], + "mon_173_cleffa": [ + 0 + ], + "mon_174_igglybuff": [ + 0 + ], + "mon_175_togepi": [ + 0 + ], + "mon_176_togetic": [ + 0 + ], + "mon_177_natu": [ + 2, + 0 + ], + "mon_178_xatu": [ + 0 + ], + "mon_179_mareep": [ + 0 + ], + "mon_180_flaaffy": [ + 0 + ], + "mon_181_ampharos": [ + 0 + ], + "mon_182_bellossom": [ + 0 + ], + "mon_183_marill": [ + 10, + 0 + ], + "mon_184_azumarill": [ + 0 + ], + "mon_185_sudowoodo": [ + 0 + ], + "mon_186_politoed": [ + 0 + ], + "mon_187_hoppip": [ + 0 + ], + "mon_188_skiploom": [ + 0 + ], + "mon_189_jumpluff": [ + 0 + ], + "mon_190_aipom": [ + 0 + ], + "mon_191_sunkern": [ + 6, + 0 + ], + "mon_192_sunflora": [ + 0 + ], + "mon_193_yanma": [ + 0 + ], + "mon_194_wooper": [ + 2, + 3, + 17, + 18, + 0 + ], + "mon_195_quagsire": [ + 2, + 3, + 16, + 17, + 18, + 0 + ], + "mon_196_espeon": [ + 0 + ], + "mon_197_umbreon": [ + 0 + ], + "mon_198_murkrow": [ + 0 + ], + "mon_199_slowking": [ + 0 + ], + "mon_200_misdreavus": [ + 0 + ], + "mon_201_unown": [ + 2, + 0 + ], + "mon_202_wobbuffet": [ + 13, + 25, + 0 + ], + "mon_203_girafarig": [ + 0 + ], + "mon_204_pineco": [ + 0 + ], + "mon_205_forretress": [ + 0 + ], + "mon_206_dunsparce": [ + 13, + 0 + ], + "mon_207_gligar": [ + 0 + ], + "mon_208_steelix": [ + 16, + 18, + 0 + ], + "mon_209_snubbull": [ + 0 + ], + "mon_210_granbull": [ + 0 + ], + "mon_211_qwilfish": [ + 0 + ], + "mon_212_scizor": [ + 0 + ], + "mon_213_shuckle": [ + 0 + ], + "mon_214_heracross": [ + 0 + ], + "mon_215_sneasel": [ + 16, + 0 + ], + "mon_216_teddiursa": { + "GOLD": [ + 0 + ], + "SILVER": [ + 16, + 0 + ] + }, + "mon_217_ursaring": { + "GOLD": [ + 0 + ], + "SILVER": [ + 16, + 21, + 0 + ] + }, + "mon_218_slugma": [ + 0 + ], + "mon_219_magcargo": [ + 0 + ], + "mon_220_swinub": [ + 11, + 0 + ], + "mon_221_piloswine": [ + 0 + ], + "mon_222_corsola": [ + 3, + 0 + ], + "mon_223_remoraid": [ + 0 + ], + "mon_224_octillery": [ + 0 + ], + "mon_225_delibird": { + "GOLD": [ + 0 + ], + "SILVER": [ + 11, + 0 + ] + }, + "mon_226_mantine": [ + 0 + ], + "mon_227_skarmory": [ + 0 + ], + "mon_228_houndour": [ + 0 + ], + "mon_229_houndoom": [ + 0 + ], + "mon_230_kingdra": [ + 0 + ], + "mon_231_phanpy": { + "GOLD": [ + 16, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_232_donphan": { + "GOLD": [ + 16, + 21, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_233_porygon2": [ + 0 + ], + "mon_234_stantler": [ + 0 + ], + "mon_235_smeargle": [ + 2, + 0 + ], + "mon_236_tyrogue": [ + 0 + ], + "mon_237_hitmontop": [ + 0 + ], + "mon_238_smoochum": [ + 0 + ], + "mon_239_elekid": [ + 0 + ], + "mon_240_magby": [ + 0 + ], + "mon_241_miltank": [ + 0 + ], + "mon_242_blissey": [ + 0 + ], + "mon_243_raikou": [ + 0 + ], + "mon_244_entei": [ + 0 + ], + "mon_245_suicune": [ + 0 + ], + "mon_246_larvitar": [ + 16, + 0 + ], + "mon_247_pupitar": [ + 16, + 0 + ], + "mon_248_tyranitar": [ + 0 + ], + "mon_249_lugia": [ + 0 + ], + "mon_250_ho_oh": [ + 0 + ], + "mon_251_celebi": [ + 0 + ], + "mon_252_treecko": [ + 0 + ], + "mon_253_grovyle": [ + 0 + ], + "mon_254_sceptile": [ + 0 + ], + "mon_255_torchic": [ + 0 + ], + "mon_256_combusken": [ + 0 + ], + "mon_257_blaziken": [ + 0 + ], + "mon_258_mudkip": [ + 0 + ], + "mon_259_marshtomp": [ + 0 + ], + "mon_260_swampert": [ + 0 + ], + "mon_261_poochyena": [ + 0 + ], + "mon_262_mightyena": [ + 0 + ], + "mon_263_zigzagoon": [ + 0 + ], + "mon_264_linoone": [ + 0 + ], + "mon_265_wurmple": [ + 0 + ], + "mon_266_silcoon": [ + 0 + ], + "mon_267_beautifly": [ + 0 + ], + "mon_268_cascoon": [ + 0 + ], + "mon_269_dustox": [ + 0 + ], + "mon_270_lotad": [ + 0 + ], + "mon_271_lombre": [ + 0 + ], + "mon_272_ludicolo": [ + 0 + ], + "mon_273_seedot": [ + 0 + ], + "mon_274_nuzleaf": [ + 0 + ], + "mon_275_shiftry": [ + 0 + ], + "mon_276_taillow": [ + 0 + ], + "mon_277_swellow": [ + 0 + ], + "mon_278_wingull": [ + 0 + ], + "mon_279_pelipper": [ + 0 + ], + "mon_280_ralts": [ + 0 + ], + "mon_281_kirlia": [ + 0 + ], + "mon_282_gardevoir": [ + 0 + ], + "mon_283_surskit": [ + 0 + ], + "mon_284_masquerain": [ + 0 + ], + "mon_285_shroomish": [ + 0 + ], + "mon_286_breloom": [ + 0 + ], + "mon_287_slakoth": [ + 0 + ], + "mon_288_vigoroth": [ + 0 + ], + "mon_289_slaking": [ + 0 + ], + "mon_290_nincada": [ + 0 + ], + "mon_291_ninjask": [ + 0 + ], + "mon_292_shedinja": [ + 0 + ], + "mon_293_whismur": [ + 0 + ], + "mon_294_loudred": [ + 0 + ], + "mon_295_exploud": [ + 0 + ], + "mon_296_makuhita": [ + 0 + ], + "mon_297_hariyama": [ + 0 + ], + "mon_298_azurill": [ + 0 + ], + "mon_299_nosepass": [ + 0 + ], + "mon_300_skitty": [ + 0 + ], + "mon_301_delcatty": [ + 0 + ], + "mon_302_sableye": [ + 0 + ], + "mon_303_mawile": [ + 0 + ], + "mon_304_aron": [ + 0 + ], + "mon_305_lairon": [ + 0 + ], + "mon_306_aggron": [ + 0 + ], + "mon_307_meditite": [ + 0 + ], + "mon_308_medicham": [ + 0 + ], + "mon_309_electrike": [ + 0 + ], + "mon_310_manectric": [ + 0 + ], + "mon_311_plusle": [ + 0 + ], + "mon_312_minun": [ + 0 + ], + "mon_313_volbeat": [ + 0 + ], + "mon_314_illumise": [ + 0 + ], + "mon_315_roselia": [ + 0 + ], + "mon_316_gulpin": [ + 0 + ], + "mon_317_swalot": [ + 0 + ], + "mon_318_carvanha": [ + 0 + ], + "mon_319_sharpedo": [ + 0 + ], + "mon_320_wailmer": [ + 0 + ], + "mon_321_wailord": [ + 0 + ], + "mon_322_numel": [ + 0 + ], + "mon_323_camerupt": [ + 0 + ], + "mon_324_torkoal": [ + 0 + ], + "mon_325_spoink": [ + 0 + ], + "mon_326_grumpig": [ + 0 + ], + "mon_327_spinda": [ + 0 + ], + "mon_328_trapinch": [ + 0 + ], + "mon_329_vibrava": [ + 0 + ], + "mon_330_flygon": [ + 0 + ], + "mon_331_cacnea": [ + 0 + ], + "mon_332_cacturne": [ + 0 + ], + "mon_333_swablu": [ + 0 + ], + "mon_334_altaria": [ + 0 + ], + "mon_335_zangoose": [ + 0 + ], + "mon_336_seviper": [ + 0 + ], + "mon_337_lunatone": [ + 0 + ], + "mon_338_solrock": [ + 0 + ], + "mon_339_barboach": [ + 0 + ], + "mon_340_whiscash": [ + 0 + ], + "mon_341_corphish": [ + 0 + ], + "mon_342_crawdaunt": [ + 0 + ], + "mon_343_baltoy": [ + 0 + ], + "mon_344_claydol": [ + 0 + ], + "mon_345_lileep": [ + 0 + ], + "mon_346_cradily": [ + 0 + ], + "mon_347_anorith": [ + 0 + ], + "mon_348_armaldo": [ + 0 + ], + "mon_349_feebas": [ + 0 + ], + "mon_350_milotic": [ + 0 + ], + "mon_351_castform": [ + 0 + ], + "mon_352_kecleon": [ + 0 + ], + "mon_353_shuppet": [ + 0 + ], + "mon_354_banette": [ + 0 + ], + "mon_355_duskull": [ + 0 + ], + "mon_356_dusclops": [ + 0 + ], + "mon_357_tropius": [ + 0 + ], + "mon_358_chimecho": [ + 0 + ], + "mon_359_absol": [ + 0 + ], + "mon_360_wynaut": [ + 0 + ], + "mon_361_snorunt": [ + 0 + ], + "mon_362_glalie": [ + 0 + ], + "mon_363_spheal": [ + 0 + ], + "mon_364_sealeo": [ + 0 + ], + "mon_365_walrein": [ + 0 + ], + "mon_366_clamperl": [ + 0 + ], + "mon_367_huntail": [ + 0 + ], + "mon_368_gorebyss": [ + 0 + ], + "mon_369_relicanth": [ + 0 + ], + "mon_370_luvdisc": [ + 0 + ], + "mon_371_bagon": [ + 0 + ], + "mon_372_shelgon": [ + 0 + ], + "mon_373_salamence": [ + 0 + ], + "mon_374_beldum": [ + 0 + ], + "mon_375_metang": [ + 0 + ], + "mon_376_metagross": [ + 0 + ], + "mon_377_regirock": [ + 0 + ], + "mon_378_regice": [ + 0 + ], + "mon_379_registeel": [ + 0 + ], + "mon_380_latias": [ + 0 + ], + "mon_381_latios": [ + 0 + ], + "mon_382_kyogre": [ + 0 + ], + "mon_383_groudon": [ + 0 + ], + "mon_384_rayquaza": [ + 0 + ], + "mon_385_jirachi": [ + 0 + ], + "mon_386_deoxys": [ + 0 + ], + "mon_387_turtwig": [ + 0 + ], + "mon_388_grotle": [ + 0 + ], + "mon_389_torterra": [ + 0 + ], + "mon_390_chimchar": [ + 0 + ], + "mon_391_monferno": [ + 0 + ], + "mon_392_infernape": [ + 0 + ], + "mon_393_piplup": [ + 0 + ], + "mon_394_prinplup": [ + 0 + ], + "mon_395_empoleon": [ + 0 + ], + "mon_396_starly": [ + 0 + ], + "mon_397_staravia": [ + 0 + ], + "mon_398_staraptor": [ + 0 + ], + "mon_399_bidoof": [ + 0 + ], + "mon_400_bibarel": [ + 0 + ], + "mon_401_kricketot": [ + 0 + ], + "mon_402_kricketune": [ + 0 + ], + "mon_403_shinx": [ + 0 + ], + "mon_404_luxio": [ + 0 + ], + "mon_405_luxray": [ + 0 + ], + "mon_406_budew": [ + 0 + ], + "mon_407_roserade": [ + 0 + ], + "mon_408_cranidos": [ + 0 + ], + "mon_409_rampardos": [ + 0 + ], + "mon_410_shieldon": [ + 0 + ], + "mon_411_bastiodon": [ + 0 + ], + "mon_412_burmy": [ + 0 + ], + "mon_413_wormadam": [ + 0 + ], + "mon_414_mothim": [ + 0 + ], + "mon_415_combee": [ + 0 + ], + "mon_416_vespiquen": [ + 0 + ], + "mon_417_pachirisu": [ + 0 + ], + "mon_418_buizel": [ + 0 + ], + "mon_419_floatzel": [ + 0 + ], + "mon_420_cherubi": [ + 0 + ], + "mon_421_cherrim": [ + 0 + ], + "mon_422_shellos": [ + 0 + ], + "mon_423_gastrodon": [ + 0 + ], + "mon_424_ambipom": [ + 0 + ], + "mon_425_drifloon": [ + 0 + ], + "mon_426_drifblim": [ + 0 + ], + "mon_427_buneary": [ + 0 + ], + "mon_428_lopunny": [ + 0 + ], + "mon_429_mismagius": [ + 0 + ], + "mon_430_honchkrow": [ + 0 + ], + "mon_431_glameow": [ + 0 + ], + "mon_432_purugly": [ + 0 + ], + "mon_433_chingling": [ + 0 + ], + "mon_434_stunky": [ + 0 + ], + "mon_435_skuntank": [ + 0 + ], + "mon_436_bronzor": [ + 0 + ], + "mon_437_bronzong": [ + 0 + ], + "mon_438_bonsly": [ + 0 + ], + "mon_439_mime_jr": [ + 0 + ], + "mon_440_happiny": [ + 0 + ], + "mon_441_chatot": [ + 0 + ], + "mon_442_spiritomb": [ + 0 + ], + "mon_443_gible": [ + 0 + ], + "mon_444_gabite": [ + 0 + ], + "mon_445_garchomp": [ + 0 + ], + "mon_446_munchlax": [ + 0 + ], + "mon_447_riolu": [ + 0 + ], + "mon_448_lucario": [ + 0 + ], + "mon_449_hippopotas": [ + 0 + ], + "mon_450_hippowdon": [ + 0 + ], + "mon_451_skorupi": [ + 0 + ], + "mon_452_drapion": [ + 0 + ], + "mon_453_croagunk": [ + 0 + ], + "mon_454_toxicroak": [ + 0 + ], + "mon_455_carnivine": [ + 0 + ], + "mon_456_finneon": [ + 0 + ], + "mon_457_lumineon": [ + 0 + ], + "mon_458_mantyke": [ + 0 + ], + "mon_459_snover": [ + 0 + ], + "mon_460_abomasnow": [ + 0 + ], + "mon_461_weavile": [ + 0 + ], + "mon_462_magnezone": [ + 0 + ], + "mon_463_lickilicky": [ + 0 + ], + "mon_464_rhyperior": [ + 0 + ], + "mon_465_tangrowth": [ + 0 + ], + "mon_466_electivire": [ + 0 + ], + "mon_467_magmortar": [ + 0 + ], + "mon_468_togekiss": [ + 0 + ], + "mon_469_yanmega": [ + 0 + ], + "mon_470_leafeon": [ + 0 + ], + "mon_471_glaceon": [ + 0 + ], + "mon_472_gliscor": [ + 0 + ], + "mon_473_mamoswine": [ + 0 + ], + "mon_474_porygon_z": [ + 0 + ], + "mon_475_gallade": [ + 0 + ], + "mon_476_probopass": [ + 0 + ], + "mon_477_dusknoir": [ + 0 + ], + "mon_478_froslass": [ + 0 + ], + "mon_479_rotom": [ + 0 + ], + "mon_480_uxie": [ + 0 + ], + "mon_481_mesprit": [ + 0 + ], + "mon_482_azelf": [ + 0 + ], + "mon_483_dialga": [ + 0 + ], + "mon_484_palkia": [ + 0 + ], + "mon_485_heatran": [ + 0 + ], + "mon_486_regigigas": [ + 0 + ], + "mon_487_giratina": [ + 0 + ], + "mon_488_cresselia": [ + 0 + ], + "mon_489_phione": [ + 0 + ], + "mon_490_manaphy": [ + 0 + ], + "mon_491_darkrai": [ + 0 + ], + "mon_492_shaymin": [ + 0 + ], + "mon_493_arceus": [ + 0 + ], + "mon_494_egg": [ + 0 + ] + }, + "method_2": { + "mon_000_none": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 0 + ], + "mon_001_bulbasaur": [ + 0 + ], + "mon_002_ivysaur": [ + 0 + ], + "mon_003_venusaur": [ + 0 + ], + "mon_004_charmander": [ + 0 + ], + "mon_005_charmeleon": [ + 0 + ], + "mon_006_charizard": [ + 0 + ], + "mon_007_squirtle": [ + 0 + ], + "mon_008_wartortle": [ + 0 + ], + "mon_009_blastoise": [ + 0 + ], + "mon_010_caterpie": [ + 0 + ], + "mon_011_metapod": [ + 0 + ], + "mon_012_butterfree": [ + 0 + ], + "mon_013_weedle": [ + 0 + ], + "mon_014_kakuna": [ + 0 + ], + "mon_015_beedrill": [ + 0 + ], + "mon_016_pidgey": [ + 0 + ], + "mon_017_pidgeotto": [ + 0 + ], + "mon_018_pidgeot": [ + 0 + ], + "mon_019_rattata": [ + 1, + 3, + 7, + 8, + 10, + 22, + 0 + ], + "mon_020_raticate": [ + 3, + 7, + 10, + 22, + 0 + ], + "mon_021_spearow": [ + 0 + ], + "mon_022_fearow": [ + 0 + ], + "mon_023_ekans": [ + 0 + ], + "mon_024_arbok": [ + 0 + ], + "mon_025_pikachu": [ + 24, + 0 + ], + "mon_026_raichu": [ + 0 + ], + "mon_027_sandshrew": { + "GOLD": [ + 3, + 14, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_028_sandslash": { + "GOLD": [ + 14, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_029_nidoran_f": [ + 0 + ], + "mon_030_nidorina": [ + 0 + ], + "mon_031_nidoqueen": [ + 0 + ], + "mon_032_nidoran_m": [ + 0 + ], + "mon_033_nidorino": [ + 0 + ], + "mon_034_nidoking": [ + 0 + ], + "mon_035_clefairy": [ + 14, + 0 + ], + "mon_036_clefable": [ + 0 + ], + "mon_037_vulpix": [ + 0 + ], + "mon_038_ninetales": [ + 0 + ], + "mon_039_jigglypuff": [ + 0 + ], + "mon_040_wigglytuff": [ + 0 + ], + "mon_041_zubat": [ + 3, + 4, + 5, + 7, + 9, + 10, + 11, + 13, + 15, + 18, + 14, + 20, + 22, + 0 + ], + "mon_042_golbat": [ + 3, + 4, + 9, + 10, + 11, + 13, + 15, + 16, + 18, + 21, + 22, + 25, + 0 + ], + "mon_043_oddish": [ + 5, + 0 + ], + "mon_044_gloom": [ + 0 + ], + "mon_045_vileplume": [ + 0 + ], + "mon_046_paras": [ + 5, + 14, + 0 + ], + "mon_047_parasect": [ + 25, + 0 + ], + "mon_048_venonat": [ + 0 + ], + "mon_049_venomoth": [ + 0 + ], + "mon_050_diglett": [ + 23, + 0 + ], + "mon_051_dugtrio": [ + 23, + 0 + ], + "mon_052_meowth": [ + 0 + ], + "mon_053_persian": { + "GOLD": [ + 0 + ], + "SILVER": [ + 25, + 0 + ] + }, + "mon_054_psyduck": [ + 5, + 15, + 25, + 0 + ], + "mon_055_golduck": [ + 5, + 15, + 16, + 25, + 0 + ], + "mon_056_mankey": [ + 0 + ], + "mon_057_primeape": { + "GOLD": [ + 25, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_058_growlithe": [ + 0 + ], + "mon_059_arcanine": [ + 0 + ], + "mon_060_poliwag": [ + 2, + 5, + 14, + 17, + 25, + 0 + ], + "mon_061_poliwhirl": [ + 0 + ], + "mon_062_poliwrath": [ + 0 + ], + "mon_063_abra": [ + 0 + ], + "mon_064_kadabra": [ + 25, + 0 + ], + "mon_065_alakazam": [ + 0 + ], + "mon_066_machop": [ + 10, + 18, + 20, + 0 + ], + "mon_067_machoke": [ + 10, + 18, + 20, + 25, + 0 + ], + "mon_068_machamp": [ + 0 + ], + "mon_069_bellsprout": [ + 0 + ], + "mon_070_weepinbell": [ + 0 + ], + "mon_071_victreebel": [ + 0 + ], + "mon_072_tentacool": [ + 3, + 9, + 0 + ], + "mon_073_tentacruel": [ + 3, + 9, + 0 + ], + "mon_074_geodude": [ + 2, + 3, + 10, + 13, + 18, + 14, + 20, + 21, + 25, + 0 + ], + "mon_075_graveler": [ + 10, + 13, + 16, + 21, + 25, + 0 + ], + "mon_076_golem": [ + 0 + ], + "mon_077_ponyta": [ + 0 + ], + "mon_078_rapidash": [ + 0 + ], + "mon_079_slowpoke": [ + 4, + 22, + 0 + ], + "mon_080_slowbro": [ + 4, + 15, + 0 + ], + "mon_081_magnemite": [ + 0 + ], + "mon_082_magneton": [ + 25, + 0 + ], + "mon_083_farfetchd": [ + 0 + ], + "mon_084_doduo": [ + 0 + ], + "mon_085_dodrio": [ + 0 + ], + "mon_086_seel": [ + 9, + 15, + 0 + ], + "mon_087_dewgong": [ + 15, + 0 + ], + "mon_088_grimer": [ + 0 + ], + "mon_089_muk": [ + 0 + ], + "mon_090_shellder": [ + 0 + ], + "mon_091_cloyster": [ + 0 + ], + "mon_092_gastly": [ + 1, + 8, + 0 + ], + "mon_093_haunter": [ + 0 + ], + "mon_094_gengar": [ + 0 + ], + "mon_095_onix": [ + 3, + 18, + 16, + 20, + 21, + 0 + ], + "mon_096_drowzee": [ + 0 + ], + "mon_097_hypno": [ + 0 + ], + "mon_098_krabby": [ + 3, + 9, + 15, + 18, + 0 + ], + "mon_099_kingler": [ + 3, + 9, + 15, + 18, + 0 + ], + "mon_100_voltorb": [ + 0 + ], + "mon_101_electrode": [ + 25, + 0 + ], + "mon_102_exeggcute": [ + 0 + ], + "mon_103_exeggutor": [ + 0 + ], + "mon_104_cubone": [ + 20, + 0 + ], + "mon_105_marowak": [ + 20, + 0 + ], + "mon_106_hitmonlee": [ + 0 + ], + "mon_107_hitmonchan": [ + 0 + ], + "mon_108_lickitung": [ + 0 + ], + "mon_109_koffing": [ + 7, + 0 + ], + "mon_110_weezing": [ + 0 + ], + "mon_111_rhyhorn": [ + 21, + 0 + ], + "mon_112_rhydon": [ + 0 + ], + "mon_113_chansey": [ + 0 + ], + "mon_114_tangela": [ + 0 + ], + "mon_115_kangaskhan": [ + 20, + 0 + ], + "mon_116_horsea": [ + 9, + 15, + 0 + ], + "mon_117_seadra": [ + 9, + 15, + 0 + ], + "mon_118_goldeen": [ + 3, + 4, + 10, + 13, + 16, + 22, + 25, + 0 + ], + "mon_119_seaking": [ + 3, + 4, + 10, + 13, + 16, + 22, + 0 + ], + "mon_120_staryu": [ + 3, + 0 + ], + "mon_121_starmie": [ + 0 + ], + "mon_122_mr_mime": [ + 0 + ], + "mon_123_scyther": [ + 0 + ], + "mon_124_jynx": [ + 11, + 15, + 0 + ], + "mon_125_electabuzz": [ + 0 + ], + "mon_126_magmar": [ + 7, + 0 + ], + "mon_127_pinsir": [ + 0 + ], + "mon_128_tauros": [ + 0 + ], + "mon_129_magikarp": [ + 2, + 3, + 4, + 5, + 9, + 10, + 12, + 13, + 14, + 15, + 16, + 17, + 22, + 25, + 0 + ], + "mon_130_gyarados": [ + 15, + 16, + 25, + 0 + ], + "mon_131_lapras": [ + 0 + ], + "mon_132_ditto": [ + 25, + 0 + ], + "mon_133_eevee": [ + 0 + ], + "mon_134_vaporeon": [ + 0 + ], + "mon_135_jolteon": [ + 0 + ], + "mon_136_flareon": [ + 0 + ], + "mon_137_porygon": [ + 0 + ], + "mon_138_omanyte": [ + 0 + ], + "mon_139_omastar": [ + 0 + ], + "mon_140_kabuto": [ + 0 + ], + "mon_141_kabutops": [ + 0 + ], + "mon_142_aerodactyl": [ + 0 + ], + "mon_143_snorlax": [ + 0 + ], + "mon_144_articuno": [ + 0 + ], + "mon_145_zapdos": [ + 0 + ], + "mon_146_moltres": [ + 0 + ], + "mon_147_dratini": [ + 12, + 0 + ], + "mon_148_dragonair": [ + 12, + 0 + ], + "mon_149_dragonite": [ + 0 + ], + "mon_150_mewtwo": [ + 0 + ], + "mon_151_mew": [ + 0 + ], + "mon_152_chikorita": [ + 0 + ], + "mon_153_bayleef": [ + 0 + ], + "mon_154_meganium": [ + 0 + ], + "mon_155_cyndaquil": [ + 0 + ], + "mon_156_quilava": [ + 0 + ], + "mon_157_typhlosion": [ + 0 + ], + "mon_158_totodile": [ + 0 + ], + "mon_159_croconaw": [ + 0 + ], + "mon_160_feraligatr": [ + 0 + ], + "mon_161_sentret": [ + 0 + ], + "mon_162_furret": [ + 0 + ], + "mon_163_hoothoot": [ + 6, + 24, + 0 + ], + "mon_164_noctowl": [ + 24, + 0 + ], + "mon_165_ledyba": [ + 0 + ], + "mon_166_ledian": [ + 0 + ], + "mon_167_spinarak": [ + 0 + ], + "mon_168_ariados": [ + 0 + ], + "mon_169_crobat": [ + 0 + ], + "mon_170_chinchou": [ + 0 + ], + "mon_171_lanturn": [ + 0 + ], + "mon_172_pichu": [ + 0 + ], + "mon_173_cleffa": [ + 0 + ], + "mon_174_igglybuff": [ + 0 + ], + "mon_175_togepi": [ + 0 + ], + "mon_176_togetic": [ + 0 + ], + "mon_177_natu": [ + 2, + 0 + ], + "mon_178_xatu": [ + 0 + ], + "mon_179_mareep": [ + 0 + ], + "mon_180_flaaffy": [ + 0 + ], + "mon_181_ampharos": [ + 0 + ], + "mon_182_bellossom": [ + 0 + ], + "mon_183_marill": [ + 10, + 0 + ], + "mon_184_azumarill": [ + 0 + ], + "mon_185_sudowoodo": [ + 0 + ], + "mon_186_politoed": [ + 0 + ], + "mon_187_hoppip": [ + 0 + ], + "mon_188_skiploom": [ + 0 + ], + "mon_189_jumpluff": [ + 0 + ], + "mon_190_aipom": [ + 0 + ], + "mon_191_sunkern": [ + 0 + ], + "mon_192_sunflora": [ + 0 + ], + "mon_193_yanma": [ + 0 + ], + "mon_194_wooper": [ + 2, + 3, + 17, + 0 + ], + "mon_195_quagsire": [ + 2, + 3, + 16, + 17, + 0 + ], + "mon_196_espeon": [ + 0 + ], + "mon_197_umbreon": [ + 0 + ], + "mon_198_murkrow": [ + 0 + ], + "mon_199_slowking": [ + 0 + ], + "mon_200_misdreavus": [ + 16, + 18, + 0 + ], + "mon_201_unown": [ + 2, + 0 + ], + "mon_202_wobbuffet": [ + 13, + 25, + 0 + ], + "mon_203_girafarig": [ + 0 + ], + "mon_204_pineco": [ + 0 + ], + "mon_205_forretress": [ + 0 + ], + "mon_206_dunsparce": [ + 13, + 0 + ], + "mon_207_gligar": [ + 0 + ], + "mon_208_steelix": [ + 16, + 18, + 0 + ], + "mon_209_snubbull": [ + 0 + ], + "mon_210_granbull": [ + 0 + ], + "mon_211_qwilfish": [ + 0 + ], + "mon_212_scizor": [ + 0 + ], + "mon_213_shuckle": [ + 0 + ], + "mon_214_heracross": [ + 0 + ], + "mon_215_sneasel": [ + 16, + 0 + ], + "mon_216_teddiursa": { + "GOLD": [ + 0 + ], + "SILVER": [ + 16, + 0 + ] + }, + "mon_217_ursaring": { + "GOLD": [ + 0 + ], + "SILVER": [ + 16, + 21, + 0 + ] + }, + "mon_218_slugma": [ + 0 + ], + "mon_219_magcargo": [ + 0 + ], + "mon_220_swinub": [ + 11, + 0 + ], + "mon_221_piloswine": [ + 0 + ], + "mon_222_corsola": [ + 0 + ], + "mon_223_remoraid": [ + 0 + ], + "mon_224_octillery": [ + 0 + ], + "mon_225_delibird": { + "GOLD": [ + 0 + ], + "SILVER": [ + 11, + 0 + ] + }, + "mon_226_mantine": [ + 0 + ], + "mon_227_skarmory": [ + 0 + ], + "mon_228_houndour": [ + 0 + ], + "mon_229_houndoom": [ + 0 + ], + "mon_230_kingdra": [ + 0 + ], + "mon_231_phanpy": { + "GOLD": [ + 16, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_232_donphan": { + "GOLD": [ + 16, + 21, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_233_porygon2": [ + 0 + ], + "mon_234_stantler": [ + 0 + ], + "mon_235_smeargle": [ + 2, + 0 + ], + "mon_236_tyrogue": [ + 0 + ], + "mon_237_hitmontop": [ + 0 + ], + "mon_238_smoochum": [ + 0 + ], + "mon_239_elekid": [ + 0 + ], + "mon_240_magby": [ + 0 + ], + "mon_241_miltank": [ + 0 + ], + "mon_242_blissey": [ + 0 + ], + "mon_243_raikou": [ + 0 + ], + "mon_244_entei": [ + 0 + ], + "mon_245_suicune": [ + 0 + ], + "mon_246_larvitar": [ + 16, + 0 + ], + "mon_247_pupitar": [ + 16, + 0 + ], + "mon_248_tyranitar": [ + 0 + ], + "mon_249_lugia": [ + 0 + ], + "mon_250_ho_oh": [ + 0 + ], + "mon_251_celebi": [ + 0 + ], + "mon_252_treecko": [ + 0 + ], + "mon_253_grovyle": [ + 0 + ], + "mon_254_sceptile": [ + 0 + ], + "mon_255_torchic": [ + 0 + ], + "mon_256_combusken": [ + 0 + ], + "mon_257_blaziken": [ + 0 + ], + "mon_258_mudkip": [ + 0 + ], + "mon_259_marshtomp": [ + 0 + ], + "mon_260_swampert": [ + 0 + ], + "mon_261_poochyena": [ + 0 + ], + "mon_262_mightyena": [ + 0 + ], + "mon_263_zigzagoon": [ + 0 + ], + "mon_264_linoone": [ + 0 + ], + "mon_265_wurmple": [ + 0 + ], + "mon_266_silcoon": [ + 0 + ], + "mon_267_beautifly": [ + 0 + ], + "mon_268_cascoon": [ + 0 + ], + "mon_269_dustox": [ + 0 + ], + "mon_270_lotad": [ + 0 + ], + "mon_271_lombre": [ + 0 + ], + "mon_272_ludicolo": [ + 0 + ], + "mon_273_seedot": [ + 0 + ], + "mon_274_nuzleaf": [ + 0 + ], + "mon_275_shiftry": [ + 0 + ], + "mon_276_taillow": [ + 0 + ], + "mon_277_swellow": [ + 0 + ], + "mon_278_wingull": [ + 0 + ], + "mon_279_pelipper": [ + 0 + ], + "mon_280_ralts": [ + 0 + ], + "mon_281_kirlia": [ + 0 + ], + "mon_282_gardevoir": [ + 0 + ], + "mon_283_surskit": [ + 0 + ], + "mon_284_masquerain": [ + 0 + ], + "mon_285_shroomish": [ + 0 + ], + "mon_286_breloom": [ + 0 + ], + "mon_287_slakoth": [ + 0 + ], + "mon_288_vigoroth": [ + 0 + ], + "mon_289_slaking": [ + 0 + ], + "mon_290_nincada": [ + 0 + ], + "mon_291_ninjask": [ + 0 + ], + "mon_292_shedinja": [ + 0 + ], + "mon_293_whismur": [ + 0 + ], + "mon_294_loudred": [ + 0 + ], + "mon_295_exploud": [ + 0 + ], + "mon_296_makuhita": [ + 0 + ], + "mon_297_hariyama": [ + 0 + ], + "mon_298_azurill": [ + 0 + ], + "mon_299_nosepass": [ + 0 + ], + "mon_300_skitty": [ + 0 + ], + "mon_301_delcatty": [ + 0 + ], + "mon_302_sableye": [ + 0 + ], + "mon_303_mawile": [ + 0 + ], + "mon_304_aron": [ + 0 + ], + "mon_305_lairon": [ + 0 + ], + "mon_306_aggron": [ + 0 + ], + "mon_307_meditite": [ + 0 + ], + "mon_308_medicham": [ + 0 + ], + "mon_309_electrike": [ + 0 + ], + "mon_310_manectric": [ + 0 + ], + "mon_311_plusle": [ + 0 + ], + "mon_312_minun": [ + 0 + ], + "mon_313_volbeat": [ + 0 + ], + "mon_314_illumise": [ + 0 + ], + "mon_315_roselia": [ + 0 + ], + "mon_316_gulpin": [ + 0 + ], + "mon_317_swalot": [ + 0 + ], + "mon_318_carvanha": [ + 0 + ], + "mon_319_sharpedo": [ + 0 + ], + "mon_320_wailmer": [ + 0 + ], + "mon_321_wailord": [ + 0 + ], + "mon_322_numel": [ + 0 + ], + "mon_323_camerupt": [ + 0 + ], + "mon_324_torkoal": [ + 0 + ], + "mon_325_spoink": [ + 0 + ], + "mon_326_grumpig": [ + 0 + ], + "mon_327_spinda": [ + 0 + ], + "mon_328_trapinch": [ + 0 + ], + "mon_329_vibrava": [ + 0 + ], + "mon_330_flygon": [ + 0 + ], + "mon_331_cacnea": [ + 0 + ], + "mon_332_cacturne": [ + 0 + ], + "mon_333_swablu": [ + 0 + ], + "mon_334_altaria": [ + 0 + ], + "mon_335_zangoose": [ + 0 + ], + "mon_336_seviper": [ + 0 + ], + "mon_337_lunatone": [ + 0 + ], + "mon_338_solrock": [ + 0 + ], + "mon_339_barboach": [ + 0 + ], + "mon_340_whiscash": [ + 0 + ], + "mon_341_corphish": [ + 0 + ], + "mon_342_crawdaunt": [ + 0 + ], + "mon_343_baltoy": [ + 0 + ], + "mon_344_claydol": [ + 0 + ], + "mon_345_lileep": [ + 0 + ], + "mon_346_cradily": [ + 0 + ], + "mon_347_anorith": [ + 0 + ], + "mon_348_armaldo": [ + 0 + ], + "mon_349_feebas": [ + 0 + ], + "mon_350_milotic": [ + 0 + ], + "mon_351_castform": [ + 0 + ], + "mon_352_kecleon": [ + 0 + ], + "mon_353_shuppet": [ + 0 + ], + "mon_354_banette": [ + 0 + ], + "mon_355_duskull": [ + 0 + ], + "mon_356_dusclops": [ + 0 + ], + "mon_357_tropius": [ + 0 + ], + "mon_358_chimecho": [ + 0 + ], + "mon_359_absol": [ + 0 + ], + "mon_360_wynaut": [ + 0 + ], + "mon_361_snorunt": [ + 0 + ], + "mon_362_glalie": [ + 0 + ], + "mon_363_spheal": [ + 0 + ], + "mon_364_sealeo": [ + 0 + ], + "mon_365_walrein": [ + 0 + ], + "mon_366_clamperl": [ + 0 + ], + "mon_367_huntail": [ + 0 + ], + "mon_368_gorebyss": [ + 0 + ], + "mon_369_relicanth": [ + 0 + ], + "mon_370_luvdisc": [ + 0 + ], + "mon_371_bagon": [ + 0 + ], + "mon_372_shelgon": [ + 0 + ], + "mon_373_salamence": [ + 0 + ], + "mon_374_beldum": [ + 0 + ], + "mon_375_metang": [ + 0 + ], + "mon_376_metagross": [ + 0 + ], + "mon_377_regirock": [ + 0 + ], + "mon_378_regice": [ + 0 + ], + "mon_379_registeel": [ + 0 + ], + "mon_380_latias": [ + 0 + ], + "mon_381_latios": [ + 0 + ], + "mon_382_kyogre": [ + 0 + ], + "mon_383_groudon": [ + 0 + ], + "mon_384_rayquaza": [ + 0 + ], + "mon_385_jirachi": [ + 0 + ], + "mon_386_deoxys": [ + 0 + ], + "mon_387_turtwig": [ + 0 + ], + "mon_388_grotle": [ + 0 + ], + "mon_389_torterra": [ + 0 + ], + "mon_390_chimchar": [ + 0 + ], + "mon_391_monferno": [ + 0 + ], + "mon_392_infernape": [ + 0 + ], + "mon_393_piplup": [ + 0 + ], + "mon_394_prinplup": [ + 0 + ], + "mon_395_empoleon": [ + 0 + ], + "mon_396_starly": [ + 0 + ], + "mon_397_staravia": [ + 0 + ], + "mon_398_staraptor": [ + 0 + ], + "mon_399_bidoof": [ + 0 + ], + "mon_400_bibarel": [ + 0 + ], + "mon_401_kricketot": [ + 0 + ], + "mon_402_kricketune": [ + 0 + ], + "mon_403_shinx": [ + 0 + ], + "mon_404_luxio": [ + 0 + ], + "mon_405_luxray": [ + 0 + ], + "mon_406_budew": [ + 0 + ], + "mon_407_roserade": [ + 0 + ], + "mon_408_cranidos": [ + 0 + ], + "mon_409_rampardos": [ + 0 + ], + "mon_410_shieldon": [ + 0 + ], + "mon_411_bastiodon": [ + 0 + ], + "mon_412_burmy": [ + 0 + ], + "mon_413_wormadam": [ + 0 + ], + "mon_414_mothim": [ + 0 + ], + "mon_415_combee": [ + 0 + ], + "mon_416_vespiquen": [ + 0 + ], + "mon_417_pachirisu": [ + 0 + ], + "mon_418_buizel": [ + 0 + ], + "mon_419_floatzel": [ + 0 + ], + "mon_420_cherubi": [ + 0 + ], + "mon_421_cherrim": [ + 0 + ], + "mon_422_shellos": [ + 0 + ], + "mon_423_gastrodon": [ + 0 + ], + "mon_424_ambipom": [ + 0 + ], + "mon_425_drifloon": [ + 0 + ], + "mon_426_drifblim": [ + 0 + ], + "mon_427_buneary": [ + 0 + ], + "mon_428_lopunny": [ + 0 + ], + "mon_429_mismagius": [ + 0 + ], + "mon_430_honchkrow": [ + 0 + ], + "mon_431_glameow": [ + 0 + ], + "mon_432_purugly": [ + 0 + ], + "mon_433_chingling": [ + 0 + ], + "mon_434_stunky": [ + 0 + ], + "mon_435_skuntank": [ + 0 + ], + "mon_436_bronzor": [ + 0 + ], + "mon_437_bronzong": [ + 0 + ], + "mon_438_bonsly": [ + 0 + ], + "mon_439_mime_jr": [ + 0 + ], + "mon_440_happiny": [ + 0 + ], + "mon_441_chatot": [ + 0 + ], + "mon_442_spiritomb": [ + 0 + ], + "mon_443_gible": [ + 0 + ], + "mon_444_gabite": [ + 0 + ], + "mon_445_garchomp": [ + 0 + ], + "mon_446_munchlax": [ + 0 + ], + "mon_447_riolu": [ + 0 + ], + "mon_448_lucario": [ + 0 + ], + "mon_449_hippopotas": [ + 0 + ], + "mon_450_hippowdon": [ + 0 + ], + "mon_451_skorupi": [ + 0 + ], + "mon_452_drapion": [ + 0 + ], + "mon_453_croagunk": [ + 0 + ], + "mon_454_toxicroak": [ + 0 + ], + "mon_455_carnivine": [ + 0 + ], + "mon_456_finneon": [ + 0 + ], + "mon_457_lumineon": [ + 0 + ], + "mon_458_mantyke": [ + 0 + ], + "mon_459_snover": [ + 0 + ], + "mon_460_abomasnow": [ + 0 + ], + "mon_461_weavile": [ + 0 + ], + "mon_462_magnezone": [ + 0 + ], + "mon_463_lickilicky": [ + 0 + ], + "mon_464_rhyperior": [ + 0 + ], + "mon_465_tangrowth": [ + 0 + ], + "mon_466_electivire": [ + 0 + ], + "mon_467_magmortar": [ + 0 + ], + "mon_468_togekiss": [ + 0 + ], + "mon_469_yanmega": [ + 0 + ], + "mon_470_leafeon": [ + 0 + ], + "mon_471_glaceon": [ + 0 + ], + "mon_472_gliscor": [ + 0 + ], + "mon_473_mamoswine": [ + 0 + ], + "mon_474_porygon_z": [ + 0 + ], + "mon_475_gallade": [ + 0 + ], + "mon_476_probopass": [ + 0 + ], + "mon_477_dusknoir": [ + 0 + ], + "mon_478_froslass": [ + 0 + ], + "mon_479_rotom": [ + 0 + ], + "mon_480_uxie": [ + 0 + ], + "mon_481_mesprit": [ + 0 + ], + "mon_482_azelf": [ + 0 + ], + "mon_483_dialga": [ + 0 + ], + "mon_484_palkia": [ + 0 + ], + "mon_485_heatran": [ + 0 + ], + "mon_486_regigigas": [ + 0 + ], + "mon_487_giratina": [ + 0 + ], + "mon_488_cresselia": [ + 0 + ], + "mon_489_phione": [ + 0 + ], + "mon_490_manaphy": [ + 0 + ], + "mon_491_darkrai": [ + 0 + ], + "mon_492_shaymin": [ + 0 + ], + "mon_493_arceus": [ + 0 + ], + "mon_494_egg": [ + 0 + ] + }, + "method_3": { + "mon_000_none": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 0 + ], + "mon_001_bulbasaur": [ + 0 + ], + "mon_002_ivysaur": [ + 0 + ], + "mon_003_venusaur": [ + 0 + ], + "mon_004_charmander": [ + 0 + ], + "mon_005_charmeleon": [ + 0 + ], + "mon_006_charizard": [ + 0 + ], + "mon_007_squirtle": [ + 0 + ], + "mon_008_wartortle": [ + 0 + ], + "mon_009_blastoise": [ + 0 + ], + "mon_010_caterpie": { + "GOLD": [ + 4, + 5, + 44, + 64, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_011_metapod": { + "GOLD": [ + 4, + 5, + 44, + 64, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_012_butterfree": { + "GOLD": [ + 44, + 64, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_013_weedle": { + "GOLD": [ + 0 + ], + "SILVER": [ + 4, + 5, + 44, + 64, + 0 + ] + }, + "mon_014_kakuna": { + "GOLD": [ + 0 + ], + "SILVER": [ + 4, + 5, + 44, + 64, + 0 + ] + }, + "mon_015_beedrill": { + "GOLD": [ + 0 + ], + "SILVER": [ + 44, + 64, + 0 + ] + }, + "mon_016_pidgey": [ + 2, + 4, + 5, + 10, + 11, + 12, + 43, + 44, + 47, + 48, + 63, + 64, + 0 + ], + "mon_017_pidgeotto": { + "GOLD": [ + 21, + 44, + 50, + 54, + 55, + 56, + 63, + 64, + 0 + ], + "SILVER": [ + 21, + 50, + 54, + 55, + 56, + 63, + 0 + ] + }, + "mon_018_pidgeot": [ + 0 + ], + "mon_019_rattata": { + "GOLD": [ + 2, + 7, + 8, + 9, + 14, + 15, + 26, + 43, + 45, + 46, + 49, + 51, + 53, + 61, + 0 + ], + "SILVER": [ + 2, + 7, + 8, + 9, + 26, + 43, + 45, + 46, + 49, + 51, + 53, + 61, + 0 + ] + }, + "mon_020_raticate": [ + 14, + 15, + 27, + 40, + 41, + 49, + 51, + 52, + 0 + ], + "mon_021_spearow": [ + 8, + 20, + 26, + 27, + 45, + 46, + 49, + 51, + 52, + 61, + 0 + ], + "mon_022_fearow": [ + 27, + 39, + 51, + 52, + 57, + 58, + 59, + 61, + 0 + ], + "mon_023_ekans": { + "GOLD": [ + 0 + ], + "SILVER": [ + 7, + 8, + 45, + 46, + 0 + ] + }, + "mon_024_arbok": { + "GOLD": [ + 0 + ], + "SILVER": [ + 40, + 41, + 45, + 46, + 0 + ] + }, + "mon_025_pikachu": [ + 0 + ], + "mon_026_raichu": [ + 0 + ], + "mon_027_sandshrew": [ + 0 + ], + "mon_028_sandslash": { + "GOLD": [ + 40, + 41, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_029_nidoran_f": [ + 10, + 11, + 0 + ], + "mon_030_nidorina": [ + 54, + 55, + 56, + 0 + ], + "mon_031_nidoqueen": [ + 0 + ], + "mon_032_nidoran_m": [ + 10, + 11, + 0 + ], + "mon_033_nidorino": [ + 54, + 55, + 56, + 0 + ], + "mon_034_nidoking": [ + 0 + ], + "mon_035_clefairy": [ + 0 + ], + "mon_036_clefable": [ + 0 + ], + "mon_037_vulpix": { + "GOLD": [ + 0 + ], + "SILVER": [ + 11, + 12, + 39, + 49, + 50, + 0 + ] + }, + "mon_038_ninetales": [ + 0 + ], + "mon_039_jigglypuff": [ + 45, + 46, + 0 + ], + "mon_040_wigglytuff": [ + 0 + ], + "mon_041_zubat": [ + 7, + 8, + 0 + ], + "mon_042_golbat": [ + 0 + ], + "mon_043_oddish": [ + 0 + ], + "mon_044_gloom": [ + 27, + 39, + 0 + ], + "mon_045_vileplume": [ + 0 + ], + "mon_046_paras": [ + 0 + ], + "mon_047_parasect": [ + 0 + ], + "mon_048_venonat": [ + 21, + 62, + 63, + 0 + ], + "mon_049_venomoth": [ + 0 + ], + "mon_050_diglett": [ + 35, + 39, + 0 + ], + "mon_051_dugtrio": [ + 0 + ], + "mon_052_meowth": { + "GOLD": [ + 0 + ], + "SILVER": [ + 14, + 15, + 47, + 48, + 49, + 50, + 0 + ] + }, + "mon_053_persian": { + "GOLD": [ + 0 + ], + "SILVER": [ + 49, + 0 + ] + }, + "mon_054_psyduck": [ + 10, + 48, + 0 + ], + "mon_055_golduck": [ + 10, + 48, + 0 + ], + "mon_056_mankey": { + "GOLD": [ + 20, + 51, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_057_primeape": { + "GOLD": [ + 51, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_058_growlithe": { + "GOLD": [ + 11, + 12, + 39, + 49, + 50, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_059_arcanine": [ + 0 + ], + "mon_060_poliwag": [ + 4, + 5, + 6, + 10, + 13, + 21, + 23, + 24, + 25, + 28, + 33, + 42, + 48, + 61, + 0 + ], + "mon_061_poliwhirl": [ + 4, + 5, + 6, + 13, + 23, + 28, + 33, + 42, + 61, + 0 + ], + "mon_062_poliwrath": [ + 0 + ], + "mon_063_abra": [ + 9, + 10, + 47, + 48, + 50, + 62, + 63, + 0 + ], + "mon_064_kadabra": [ + 50, + 0 + ], + "mon_065_alakazam": [ + 0 + ], + "mon_066_machop": [ + 0 + ], + "mon_067_machoke": [ + 0 + ], + "mon_068_machamp": [ + 0 + ], + "mon_069_bellsprout": [ + 5, + 7, + 23, + 47, + 48, + 62, + 63, + 0 + ], + "mon_070_weepinbell": [ + 23, + 62, + 63, + 0 + ], + "mon_071_victreebel": [ + 0 + ], + "mon_072_tentacool": [ + 1, + 3, + 7, + 9, + 16, + 17, + 18, + 19, + 27, + 29, + 30, + 31, + 32, + 35, + 38, + 40, + 41, + 54, + 60, + 0 + ], + "mon_073_tentacruel": [ + 1, + 3, + 7, + 9, + 16, + 17, + 18, + 19, + 27, + 29, + 30, + 31, + 32, + 35, + 38, + 40, + 41, + 54, + 60, + 0 + ], + "mon_074_geodude": [ + 25, + 26, + 0 + ], + "mon_075_graveler": [ + 25, + 0 + ], + "mon_076_golem": [ + 0 + ], + "mon_077_ponyta": [ + 28, + 40, + 41, + 42, + 61, + 0 + ], + "mon_078_rapidash": [ + 28, + 42, + 0 + ], + "mon_079_slowpoke": [ + 0 + ], + "mon_080_slowbro": [ + 0 + ], + "mon_081_magnemite": [ + 14, + 15, + 48, + 53, + 0 + ], + "mon_082_magneton": [ + 0 + ], + "mon_083_farfetchd": [ + 14, + 15, + 27, + 39, + 0 + ], + "mon_084_doduo": [ + 28, + 40, + 41, + 42, + 61, + 0 + ], + "mon_085_dodrio": { + "GOLD": [ + 28, + 40, + 42, + 0 + ], + "SILVER": [ + 28, + 41, + 42, + 0 + ] + }, + "mon_086_seel": [ + 27, + 0 + ], + "mon_087_dewgong": [ + 0 + ], + "mon_088_grimer": [ + 36, + 57, + 58, + 59, + 0 + ], + "mon_089_muk": [ + 36, + 57, + 58, + 59, + 0 + ], + "mon_090_shellder": [ + 1, + 18, + 27, + 31, + 32, + 35, + 38, + 40, + 41, + 60, + 0 + ], + "mon_091_cloyster": [ + 0 + ], + "mon_092_gastly": [ + 0 + ], + "mon_093_haunter": [ + 0 + ], + "mon_094_gengar": [ + 0 + ], + "mon_095_onix": [ + 0 + ], + "mon_096_drowzee": [ + 9, + 10, + 53, + 0 + ], + "mon_097_hypno": [ + 53, + 0 + ], + "mon_098_krabby": [ + 3, + 9, + 16, + 17, + 19, + 30, + 0 + ], + "mon_099_kingler": [ + 3, + 9, + 16, + 17, + 19, + 30, + 0 + ], + "mon_100_voltorb": [ + 52, + 0 + ], + "mon_101_electrode": [ + 0 + ], + "mon_102_exeggcute": [ + 0 + ], + "mon_103_exeggutor": [ + 0 + ], + "mon_104_cubone": [ + 0 + ], + "mon_105_marowak": [ + 0 + ], + "mon_106_hitmonlee": [ + 0 + ], + "mon_107_hitmonchan": [ + 0 + ], + "mon_108_lickitung": [ + 23, + 0 + ], + "mon_109_koffing": [ + 0 + ], + "mon_110_weezing": [ + 0 + ], + "mon_111_rhyhorn": [ + 0 + ], + "mon_112_rhydon": [ + 0 + ], + "mon_113_chansey": [ + 54, + 55, + 56, + 0 + ], + "mon_114_tangela": [ + 23, + 28, + 42, + 60, + 0 + ], + "mon_115_kangaskhan": [ + 0 + ], + "mon_116_horsea": [ + 0 + ], + "mon_117_seadra": [ + 0 + ], + "mon_118_goldeen": [ + 20, + 34, + 46, + 51, + 52, + 62, + 63, + 0 + ], + "mon_119_seaking": [ + 20, + 34, + 46, + 51, + 52, + 62, + 63, + 0 + ], + "mon_120_staryu": [ + 27, + 0 + ], + "mon_121_starmie": [ + 0 + ], + "mon_122_mr_mime": [ + 60, + 0 + ], + "mon_123_scyther": [ + 0 + ], + "mon_124_jynx": [ + 0 + ], + "mon_125_electabuzz": [ + 52, + 0 + ], + "mon_126_magmar": [ + 0 + ], + "mon_127_pinsir": [ + 0 + ], + "mon_128_tauros": [ + 14, + 15, + 39, + 0 + ], + "mon_129_magikarp": [ + 1, + 3, + 4, + 5, + 6, + 7, + 9, + 10, + 13, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 37, + 38, + 40, + 41, + 42, + 46, + 48, + 51, + 52, + 54, + 60, + 61, + 62, + 63, + 0 + ], + "mon_130_gyarados": [ + 22, + 37, + 0 + ], + "mon_131_lapras": [ + 0 + ], + "mon_132_ditto": [ + 9, + 10, + 27, + 0 + ], + "mon_133_eevee": [ + 0 + ], + "mon_134_vaporeon": [ + 0 + ], + "mon_135_jolteon": [ + 0 + ], + "mon_136_flareon": [ + 0 + ], + "mon_137_porygon": [ + 0 + ], + "mon_138_omanyte": [ + 0 + ], + "mon_139_omastar": [ + 0 + ], + "mon_140_kabuto": [ + 0 + ], + "mon_141_kabutops": [ + 0 + ], + "mon_142_aerodactyl": [ + 0 + ], + "mon_143_snorlax": [ + 0 + ], + "mon_144_articuno": [ + 0 + ], + "mon_145_zapdos": [ + 0 + ], + "mon_146_moltres": [ + 0 + ], + "mon_147_dratini": [ + 0 + ], + "mon_148_dragonair": [ + 0 + ], + "mon_149_dragonite": [ + 0 + ], + "mon_150_mewtwo": [ + 0 + ], + "mon_151_mew": [ + 0 + ], + "mon_152_chikorita": [ + 0 + ], + "mon_153_bayleef": [ + 0 + ], + "mon_154_meganium": [ + 0 + ], + "mon_155_cyndaquil": [ + 0 + ], + "mon_156_quilava": [ + 0 + ], + "mon_157_typhlosion": [ + 0 + ], + "mon_158_totodile": [ + 0 + ], + "mon_159_croconaw": [ + 0 + ], + "mon_160_feraligatr": [ + 0 + ], + "mon_161_sentret": [ + 2, + 43, + 0 + ], + "mon_162_furret": [ + 43, + 0 + ], + "mon_163_hoothoot": [ + 0 + ], + "mon_164_noctowl": [ + 0 + ], + "mon_165_ledyba": { + "GOLD": [ + 0 + ], + "SILVER": [ + 4, + 5, + 12, + 44, + 64, + 0 + ] + }, + "mon_166_ledian": { + "GOLD": [ + 0 + ], + "SILVER": [ + 44, + 64, + 0 + ] + }, + "mon_167_spinarak": { + "GOLD": [ + 44, + 64, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_168_ariados": [ + 0 + ], + "mon_169_crobat": [ + 0 + ], + "mon_170_chinchou": [ + 1, + 18, + 27, + 31, + 32, + 35, + 38, + 40, + 41, + 60, + 0 + ], + "mon_171_lanturn": [ + 1, + 18, + 27, + 31, + 32, + 35, + 38, + 40, + 41, + 60, + 0 + ], + "mon_172_pichu": [ + 0 + ], + "mon_173_cleffa": [ + 0 + ], + "mon_174_igglybuff": [ + 0 + ], + "mon_175_togepi": [ + 0 + ], + "mon_176_togetic": [ + 0 + ], + "mon_177_natu": [ + 0 + ], + "mon_178_xatu": [ + 0 + ], + "mon_179_mareep": [ + 7, + 20, + 21, + 0 + ], + "mon_180_flaaffy": [ + 20, + 21, + 0 + ], + "mon_181_ampharos": [ + 0 + ], + "mon_182_bellossom": [ + 0 + ], + "mon_183_marill": [ + 0 + ], + "mon_184_azumarill": [ + 0 + ], + "mon_185_sudowoodo": [ + 0 + ], + "mon_186_politoed": [ + 0 + ], + "mon_187_hoppip": [ + 7, + 8, + 39, + 54, + 55, + 56, + 0 + ], + "mon_188_skiploom": [ + 55, + 0 + ], + "mon_189_jumpluff": [ + 0 + ], + "mon_190_aipom": [ + 0 + ], + "mon_191_sunkern": [ + 0 + ], + "mon_192_sunflora": [ + 0 + ], + "mon_193_yanma": [ + 10, + 0 + ], + "mon_194_wooper": [ + 0 + ], + "mon_195_quagsire": [ + 7, + 29, + 54, + 0 + ], + "mon_196_espeon": [ + 0 + ], + "mon_197_umbreon": [ + 0 + ], + "mon_198_murkrow": [ + 0 + ], + "mon_199_slowking": [ + 0 + ], + "mon_200_misdreavus": [ + 0 + ], + "mon_201_unown": [ + 0 + ], + "mon_202_wobbuffet": [ + 0 + ], + "mon_203_girafarig": [ + 21, + 39, + 0 + ], + "mon_204_pineco": [ + 0 + ], + "mon_205_forretress": [ + 0 + ], + "mon_206_dunsparce": [ + 0 + ], + "mon_207_gligar": { + "GOLD": [ + 25, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_208_steelix": [ + 0 + ], + "mon_209_snubbull": [ + 14, + 0 + ], + "mon_210_granbull": [ + 0 + ], + "mon_211_qwilfish": [ + 7, + 29, + 54, + 0 + ], + "mon_212_scizor": [ + 0 + ], + "mon_213_shuckle": [ + 19, + 35, + 0 + ], + "mon_214_heracross": [ + 0 + ], + "mon_215_sneasel": [ + 0 + ], + "mon_216_teddiursa": { + "GOLD": [ + 0 + ], + "SILVER": [ + 25, + 0 + ] + }, + "mon_217_ursaring": { + "GOLD": [ + 0 + ], + "SILVER": [ + 28, + 42, + 0 + ] + }, + "mon_218_slugma": [ + 57, + 58, + 59, + 0 + ], + "mon_219_magcargo": [ + 0 + ], + "mon_220_swinub": [ + 0 + ], + "mon_221_piloswine": [ + 0 + ], + "mon_222_corsola": [ + 3, + 9, + 16, + 17, + 19, + 30, + 0 + ], + "mon_223_remoraid": [ + 23, + 0 + ], + "mon_224_octillery": [ + 0 + ], + "mon_225_delibird": [ + 0 + ], + "mon_226_mantine": { + "GOLD": [ + 18, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_227_skarmory": { + "GOLD": [ + 0 + ], + "SILVER": [ + 25, + 0 + ] + }, + "mon_228_houndour": [ + 0 + ], + "mon_229_houndoom": [ + 0 + ], + "mon_230_kingdra": [ + 0 + ], + "mon_231_phanpy": { + "GOLD": [ + 25, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_232_donphan": { + "GOLD": [ + 28, + 42, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_233_porygon2": [ + 0 + ], + "mon_234_stantler": [ + 11, + 12, + 0 + ], + "mon_235_smeargle": [ + 0 + ], + "mon_236_tyrogue": [ + 0 + ], + "mon_237_hitmontop": [ + 0 + ], + "mon_238_smoochum": [ + 0 + ], + "mon_239_elekid": [ + 0 + ], + "mon_240_magby": [ + 0 + ], + "mon_241_miltank": [ + 14, + 15, + 27, + 0 + ], + "mon_242_blissey": [ + 0 + ], + "mon_243_raikou": [ + 0 + ], + "mon_244_entei": [ + 0 + ], + "mon_245_suicune": [ + 0 + ], + "mon_246_larvitar": [ + 0 + ], + "mon_247_pupitar": [ + 0 + ], + "mon_248_tyranitar": [ + 0 + ], + "mon_249_lugia": [ + 0 + ], + "mon_250_ho_oh": [ + 0 + ], + "mon_251_celebi": [ + 0 + ], + "mon_252_treecko": [ + 0 + ], + "mon_253_grovyle": [ + 0 + ], + "mon_254_sceptile": [ + 0 + ], + "mon_255_torchic": [ + 0 + ], + "mon_256_combusken": [ + 0 + ], + "mon_257_blaziken": [ + 0 + ], + "mon_258_mudkip": [ + 0 + ], + "mon_259_marshtomp": [ + 0 + ], + "mon_260_swampert": [ + 0 + ], + "mon_261_poochyena": [ + 0 + ], + "mon_262_mightyena": [ + 0 + ], + "mon_263_zigzagoon": [ + 0 + ], + "mon_264_linoone": [ + 0 + ], + "mon_265_wurmple": [ + 0 + ], + "mon_266_silcoon": [ + 0 + ], + "mon_267_beautifly": [ + 0 + ], + "mon_268_cascoon": [ + 0 + ], + "mon_269_dustox": [ + 0 + ], + "mon_270_lotad": [ + 0 + ], + "mon_271_lombre": [ + 0 + ], + "mon_272_ludicolo": [ + 0 + ], + "mon_273_seedot": [ + 0 + ], + "mon_274_nuzleaf": [ + 0 + ], + "mon_275_shiftry": [ + 0 + ], + "mon_276_taillow": [ + 0 + ], + "mon_277_swellow": [ + 0 + ], + "mon_278_wingull": [ + 0 + ], + "mon_279_pelipper": [ + 0 + ], + "mon_280_ralts": [ + 0 + ], + "mon_281_kirlia": [ + 0 + ], + "mon_282_gardevoir": [ + 0 + ], + "mon_283_surskit": [ + 0 + ], + "mon_284_masquerain": [ + 0 + ], + "mon_285_shroomish": [ + 0 + ], + "mon_286_breloom": [ + 0 + ], + "mon_287_slakoth": [ + 0 + ], + "mon_288_vigoroth": [ + 0 + ], + "mon_289_slaking": [ + 0 + ], + "mon_290_nincada": [ + 0 + ], + "mon_291_ninjask": [ + 0 + ], + "mon_292_shedinja": [ + 0 + ], + "mon_293_whismur": [ + 0 + ], + "mon_294_loudred": [ + 0 + ], + "mon_295_exploud": [ + 0 + ], + "mon_296_makuhita": [ + 0 + ], + "mon_297_hariyama": [ + 0 + ], + "mon_298_azurill": [ + 0 + ], + "mon_299_nosepass": [ + 0 + ], + "mon_300_skitty": [ + 0 + ], + "mon_301_delcatty": [ + 0 + ], + "mon_302_sableye": [ + 0 + ], + "mon_303_mawile": [ + 0 + ], + "mon_304_aron": [ + 0 + ], + "mon_305_lairon": [ + 0 + ], + "mon_306_aggron": [ + 0 + ], + "mon_307_meditite": [ + 0 + ], + "mon_308_medicham": [ + 0 + ], + "mon_309_electrike": [ + 0 + ], + "mon_310_manectric": [ + 0 + ], + "mon_311_plusle": [ + 0 + ], + "mon_312_minun": [ + 0 + ], + "mon_313_volbeat": [ + 0 + ], + "mon_314_illumise": [ + 0 + ], + "mon_315_roselia": [ + 0 + ], + "mon_316_gulpin": [ + 0 + ], + "mon_317_swalot": [ + 0 + ], + "mon_318_carvanha": [ + 0 + ], + "mon_319_sharpedo": [ + 0 + ], + "mon_320_wailmer": [ + 0 + ], + "mon_321_wailord": [ + 0 + ], + "mon_322_numel": [ + 0 + ], + "mon_323_camerupt": [ + 0 + ], + "mon_324_torkoal": [ + 0 + ], + "mon_325_spoink": [ + 0 + ], + "mon_326_grumpig": [ + 0 + ], + "mon_327_spinda": [ + 0 + ], + "mon_328_trapinch": [ + 0 + ], + "mon_329_vibrava": [ + 0 + ], + "mon_330_flygon": [ + 0 + ], + "mon_331_cacnea": [ + 0 + ], + "mon_332_cacturne": [ + 0 + ], + "mon_333_swablu": [ + 0 + ], + "mon_334_altaria": [ + 0 + ], + "mon_335_zangoose": [ + 0 + ], + "mon_336_seviper": [ + 0 + ], + "mon_337_lunatone": [ + 0 + ], + "mon_338_solrock": [ + 0 + ], + "mon_339_barboach": [ + 0 + ], + "mon_340_whiscash": [ + 0 + ], + "mon_341_corphish": [ + 0 + ], + "mon_342_crawdaunt": [ + 0 + ], + "mon_343_baltoy": [ + 0 + ], + "mon_344_claydol": [ + 0 + ], + "mon_345_lileep": [ + 0 + ], + "mon_346_cradily": [ + 0 + ], + "mon_347_anorith": [ + 0 + ], + "mon_348_armaldo": [ + 0 + ], + "mon_349_feebas": [ + 0 + ], + "mon_350_milotic": [ + 0 + ], + "mon_351_castform": [ + 0 + ], + "mon_352_kecleon": [ + 0 + ], + "mon_353_shuppet": [ + 0 + ], + "mon_354_banette": [ + 0 + ], + "mon_355_duskull": [ + 0 + ], + "mon_356_dusclops": [ + 0 + ], + "mon_357_tropius": [ + 0 + ], + "mon_358_chimecho": [ + 0 + ], + "mon_359_absol": [ + 0 + ], + "mon_360_wynaut": [ + 0 + ], + "mon_361_snorunt": [ + 0 + ], + "mon_362_glalie": [ + 0 + ], + "mon_363_spheal": [ + 0 + ], + "mon_364_sealeo": [ + 0 + ], + "mon_365_walrein": [ + 0 + ], + "mon_366_clamperl": [ + 0 + ], + "mon_367_huntail": [ + 0 + ], + "mon_368_gorebyss": [ + 0 + ], + "mon_369_relicanth": [ + 0 + ], + "mon_370_luvdisc": [ + 0 + ], + "mon_371_bagon": [ + 0 + ], + "mon_372_shelgon": [ + 0 + ], + "mon_373_salamence": [ + 0 + ], + "mon_374_beldum": [ + 0 + ], + "mon_375_metang": [ + 0 + ], + "mon_376_metagross": [ + 0 + ], + "mon_377_regirock": [ + 0 + ], + "mon_378_regice": [ + 0 + ], + "mon_379_registeel": [ + 0 + ], + "mon_380_latias": [ + 0 + ], + "mon_381_latios": [ + 0 + ], + "mon_382_kyogre": [ + 0 + ], + "mon_383_groudon": [ + 0 + ], + "mon_384_rayquaza": [ + 0 + ], + "mon_385_jirachi": [ + 0 + ], + "mon_386_deoxys": [ + 0 + ], + "mon_387_turtwig": [ + 0 + ], + "mon_388_grotle": [ + 0 + ], + "mon_389_torterra": [ + 0 + ], + "mon_390_chimchar": [ + 0 + ], + "mon_391_monferno": [ + 0 + ], + "mon_392_infernape": [ + 0 + ], + "mon_393_piplup": [ + 0 + ], + "mon_394_prinplup": [ + 0 + ], + "mon_395_empoleon": [ + 0 + ], + "mon_396_starly": [ + 0 + ], + "mon_397_staravia": [ + 0 + ], + "mon_398_staraptor": [ + 0 + ], + "mon_399_bidoof": [ + 0 + ], + "mon_400_bibarel": [ + 0 + ], + "mon_401_kricketot": [ + 0 + ], + "mon_402_kricketune": [ + 0 + ], + "mon_403_shinx": [ + 0 + ], + "mon_404_luxio": [ + 0 + ], + "mon_405_luxray": [ + 0 + ], + "mon_406_budew": [ + 0 + ], + "mon_407_roserade": [ + 0 + ], + "mon_408_cranidos": [ + 0 + ], + "mon_409_rampardos": [ + 0 + ], + "mon_410_shieldon": [ + 0 + ], + "mon_411_bastiodon": [ + 0 + ], + "mon_412_burmy": [ + 0 + ], + "mon_413_wormadam": [ + 0 + ], + "mon_414_mothim": [ + 0 + ], + "mon_415_combee": [ + 0 + ], + "mon_416_vespiquen": [ + 0 + ], + "mon_417_pachirisu": [ + 0 + ], + "mon_418_buizel": [ + 0 + ], + "mon_419_floatzel": [ + 0 + ], + "mon_420_cherubi": [ + 0 + ], + "mon_421_cherrim": [ + 0 + ], + "mon_422_shellos": [ + 0 + ], + "mon_423_gastrodon": [ + 0 + ], + "mon_424_ambipom": [ + 0 + ], + "mon_425_drifloon": [ + 0 + ], + "mon_426_drifblim": [ + 0 + ], + "mon_427_buneary": [ + 0 + ], + "mon_428_lopunny": [ + 0 + ], + "mon_429_mismagius": [ + 0 + ], + "mon_430_honchkrow": [ + 0 + ], + "mon_431_glameow": [ + 0 + ], + "mon_432_purugly": [ + 0 + ], + "mon_433_chingling": [ + 0 + ], + "mon_434_stunky": [ + 0 + ], + "mon_435_skuntank": [ + 0 + ], + "mon_436_bronzor": [ + 0 + ], + "mon_437_bronzong": [ + 0 + ], + "mon_438_bonsly": [ + 0 + ], + "mon_439_mime_jr": [ + 0 + ], + "mon_440_happiny": [ + 0 + ], + "mon_441_chatot": [ + 0 + ], + "mon_442_spiritomb": [ + 0 + ], + "mon_443_gible": [ + 0 + ], + "mon_444_gabite": [ + 0 + ], + "mon_445_garchomp": [ + 0 + ], + "mon_446_munchlax": [ + 0 + ], + "mon_447_riolu": [ + 0 + ], + "mon_448_lucario": [ + 0 + ], + "mon_449_hippopotas": [ + 0 + ], + "mon_450_hippowdon": [ + 0 + ], + "mon_451_skorupi": [ + 0 + ], + "mon_452_drapion": [ + 0 + ], + "mon_453_croagunk": [ + 0 + ], + "mon_454_toxicroak": [ + 0 + ], + "mon_455_carnivine": [ + 0 + ], + "mon_456_finneon": [ + 0 + ], + "mon_457_lumineon": [ + 0 + ], + "mon_458_mantyke": [ + 0 + ], + "mon_459_snover": [ + 0 + ], + "mon_460_abomasnow": [ + 0 + ], + "mon_461_weavile": [ + 0 + ], + "mon_462_magnezone": [ + 0 + ], + "mon_463_lickilicky": [ + 0 + ], + "mon_464_rhyperior": [ + 0 + ], + "mon_465_tangrowth": [ + 0 + ], + "mon_466_electivire": [ + 0 + ], + "mon_467_magmortar": [ + 0 + ], + "mon_468_togekiss": [ + 0 + ], + "mon_469_yanmega": [ + 0 + ], + "mon_470_leafeon": [ + 0 + ], + "mon_471_glaceon": [ + 0 + ], + "mon_472_gliscor": [ + 0 + ], + "mon_473_mamoswine": [ + 0 + ], + "mon_474_porygon_z": [ + 0 + ], + "mon_475_gallade": [ + 0 + ], + "mon_476_probopass": [ + 0 + ], + "mon_477_dusknoir": [ + 0 + ], + "mon_478_froslass": [ + 0 + ], + "mon_479_rotom": [ + 0 + ], + "mon_480_uxie": [ + 0 + ], + "mon_481_mesprit": [ + 0 + ], + "mon_482_azelf": [ + 0 + ], + "mon_483_dialga": [ + 0 + ], + "mon_484_palkia": [ + 0 + ], + "mon_485_heatran": [ + 0 + ], + "mon_486_regigigas": [ + 0 + ], + "mon_487_giratina": [ + 0 + ], + "mon_488_cresselia": [ + 0 + ], + "mon_489_phione": [ + 0 + ], + "mon_490_manaphy": [ + 0 + ], + "mon_491_darkrai": [ + 0 + ], + "mon_492_shaymin": [ + 0 + ], + "mon_493_arceus": [ + 0 + ], + "mon_494_egg": [ + 0 + ] + }, + "method_4": { + "mon_000_none": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 0 + ], + "mon_001_bulbasaur": [ + 0 + ], + "mon_002_ivysaur": [ + 0 + ], + "mon_003_venusaur": [ + 0 + ], + "mon_004_charmander": [ + 0 + ], + "mon_005_charmeleon": [ + 0 + ], + "mon_006_charizard": [ + 0 + ], + "mon_007_squirtle": [ + 0 + ], + "mon_008_wartortle": [ + 0 + ], + "mon_009_blastoise": [ + 0 + ], + "mon_010_caterpie": { + "GOLD": [ + 4, + 5, + 44, + 64, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_011_metapod": { + "GOLD": [ + 4, + 5, + 44, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_012_butterfree": { + "GOLD": [ + 64, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_013_weedle": { + "GOLD": [ + 0 + ], + "SILVER": [ + 4, + 5, + 44, + 64, + 0 + ] + }, + "mon_014_kakuna": { + "GOLD": [ + 0 + ], + "SILVER": [ + 4, + 5, + 44, + 64, + 0 + ] + }, + "mon_015_beedrill": [ + 0 + ], + "mon_016_pidgey": [ + 2, + 4, + 5, + 10, + 11, + 12, + 43, + 44, + 47, + 48, + 63, + 64, + 0 + ], + "mon_017_pidgeotto": [ + 12, + 21, + 44, + 50, + 54, + 55, + 56, + 63, + 64, + 0 + ], + "mon_018_pidgeot": [ + 0 + ], + "mon_019_rattata": { + "GOLD": [ + 2, + 7, + 8, + 9, + 14, + 15, + 26, + 43, + 45, + 46, + 49, + 51, + 53, + 61, + 0 + ], + "SILVER": [ + 2, + 7, + 8, + 9, + 26, + 43, + 45, + 46, + 51, + 53, + 61, + 0 + ] + }, + "mon_020_raticate": [ + 14, + 15, + 27, + 40, + 41, + 49, + 51, + 52, + 0 + ], + "mon_021_spearow": [ + 8, + 20, + 26, + 27, + 45, + 46, + 49, + 51, + 52, + 61, + 0 + ], + "mon_022_fearow": [ + 27, + 39, + 51, + 52, + 57, + 58, + 59, + 61, + 0 + ], + "mon_023_ekans": { + "GOLD": [ + 0 + ], + "SILVER": [ + 7, + 8, + 45, + 46, + 0 + ] + }, + "mon_024_arbok": { + "GOLD": [ + 0 + ], + "SILVER": [ + 40, + 41, + 45, + 46, + 0 + ] + }, + "mon_025_pikachu": [ + 0 + ], + "mon_026_raichu": [ + 0 + ], + "mon_027_sandshrew": [ + 0 + ], + "mon_028_sandslash": { + "GOLD": [ + 40, + 41, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_029_nidoran_f": [ + 10, + 11, + 0 + ], + "mon_030_nidorina": [ + 54, + 55, + 56, + 0 + ], + "mon_031_nidoqueen": [ + 0 + ], + "mon_032_nidoran_m": [ + 10, + 11, + 0 + ], + "mon_033_nidorino": [ + 54, + 55, + 56, + 0 + ], + "mon_034_nidoking": [ + 0 + ], + "mon_035_clefairy": [ + 0 + ], + "mon_036_clefable": [ + 0 + ], + "mon_037_vulpix": { + "GOLD": [ + 0 + ], + "SILVER": [ + 11, + 12, + 39, + 49, + 50, + 0 + ] + }, + "mon_038_ninetales": [ + 0 + ], + "mon_039_jigglypuff": [ + 45, + 46, + 0 + ], + "mon_040_wigglytuff": [ + 0 + ], + "mon_041_zubat": [ + 0 + ], + "mon_042_golbat": [ + 0 + ], + "mon_043_oddish": [ + 0 + ], + "mon_044_gloom": [ + 27, + 39, + 0 + ], + "mon_045_vileplume": [ + 0 + ], + "mon_046_paras": [ + 0 + ], + "mon_047_parasect": [ + 0 + ], + "mon_048_venonat": [ + 0 + ], + "mon_049_venomoth": [ + 0 + ], + "mon_050_diglett": [ + 35, + 39, + 0 + ], + "mon_051_dugtrio": [ + 0 + ], + "mon_052_meowth": { + "GOLD": [ + 0 + ], + "SILVER": [ + 14, + 15, + 47, + 48, + 49, + 50, + 0 + ] + }, + "mon_053_persian": { + "GOLD": [ + 0 + ], + "SILVER": [ + 49, + 0 + ] + }, + "mon_054_psyduck": [ + 10, + 48, + 0 + ], + "mon_055_golduck": [ + 10, + 48, + 0 + ], + "mon_056_mankey": { + "GOLD": [ + 20, + 51, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_057_primeape": { + "GOLD": [ + 51, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_058_growlithe": { + "GOLD": [ + 11, + 12, + 39, + 49, + 50, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_059_arcanine": [ + 0 + ], + "mon_060_poliwag": [ + 4, + 5, + 6, + 10, + 13, + 21, + 23, + 24, + 25, + 28, + 33, + 42, + 48, + 61, + 0 + ], + "mon_061_poliwhirl": [ + 4, + 5, + 6, + 13, + 23, + 28, + 33, + 42, + 61, + 0 + ], + "mon_062_poliwrath": [ + 0 + ], + "mon_063_abra": [ + 9, + 10, + 47, + 48, + 50, + 62, + 63, + 0 + ], + "mon_064_kadabra": [ + 50, + 0 + ], + "mon_065_alakazam": [ + 0 + ], + "mon_066_machop": [ + 0 + ], + "mon_067_machoke": [ + 0 + ], + "mon_068_machamp": [ + 0 + ], + "mon_069_bellsprout": [ + 5, + 7, + 23, + 47, + 48, + 62, + 63, + 0 + ], + "mon_070_weepinbell": [ + 23, + 62, + 63, + 0 + ], + "mon_071_victreebel": [ + 0 + ], + "mon_072_tentacool": [ + 1, + 3, + 7, + 9, + 16, + 17, + 18, + 19, + 27, + 29, + 30, + 31, + 32, + 35, + 38, + 40, + 41, + 54, + 60, + 0 + ], + "mon_073_tentacruel": [ + 1, + 3, + 7, + 9, + 16, + 17, + 18, + 19, + 27, + 29, + 30, + 31, + 32, + 35, + 38, + 40, + 41, + 54, + 60, + 0 + ], + "mon_074_geodude": [ + 25, + 26, + 0 + ], + "mon_075_graveler": [ + 25, + 0 + ], + "mon_076_golem": [ + 0 + ], + "mon_077_ponyta": [ + 28, + 40, + 41, + 42, + 61, + 0 + ], + "mon_078_rapidash": [ + 28, + 42, + 0 + ], + "mon_079_slowpoke": [ + 0 + ], + "mon_080_slowbro": [ + 0 + ], + "mon_081_magnemite": [ + 14, + 15, + 48, + 53, + 0 + ], + "mon_082_magneton": [ + 0 + ], + "mon_083_farfetchd": [ + 14, + 15, + 27, + 39, + 0 + ], + "mon_084_doduo": [ + 28, + 40, + 41, + 42, + 61, + 0 + ], + "mon_085_dodrio": { + "GOLD": [ + 28, + 40, + 42, + 0 + ], + "SILVER": [ + 28, + 41, + 42, + 0 + ] + }, + "mon_086_seel": [ + 27, + 0 + ], + "mon_087_dewgong": [ + 0 + ], + "mon_088_grimer": [ + 36, + 57, + 58, + 59, + 0 + ], + "mon_089_muk": [ + 36, + 57, + 58, + 59, + 0 + ], + "mon_090_shellder": [ + 1, + 18, + 27, + 31, + 32, + 35, + 38, + 40, + 41, + 60, + 0 + ], + "mon_091_cloyster": [ + 0 + ], + "mon_092_gastly": [ + 0 + ], + "mon_093_haunter": [ + 0 + ], + "mon_094_gengar": [ + 0 + ], + "mon_095_onix": [ + 0 + ], + "mon_096_drowzee": [ + 9, + 10, + 53, + 0 + ], + "mon_097_hypno": [ + 53, + 0 + ], + "mon_098_krabby": [ + 3, + 9, + 16, + 17, + 19, + 30, + 0 + ], + "mon_099_kingler": [ + 3, + 9, + 16, + 17, + 19, + 30, + 0 + ], + "mon_100_voltorb": [ + 52, + 0 + ], + "mon_101_electrode": [ + 0 + ], + "mon_102_exeggcute": [ + 0 + ], + "mon_103_exeggutor": [ + 0 + ], + "mon_104_cubone": [ + 0 + ], + "mon_105_marowak": [ + 0 + ], + "mon_106_hitmonlee": [ + 0 + ], + "mon_107_hitmonchan": [ + 0 + ], + "mon_108_lickitung": [ + 23, + 0 + ], + "mon_109_koffing": [ + 0 + ], + "mon_110_weezing": [ + 0 + ], + "mon_111_rhyhorn": [ + 0 + ], + "mon_112_rhydon": [ + 0 + ], + "mon_113_chansey": [ + 54, + 55, + 56, + 0 + ], + "mon_114_tangela": [ + 23, + 28, + 42, + 60, + 0 + ], + "mon_115_kangaskhan": [ + 0 + ], + "mon_116_horsea": [ + 0 + ], + "mon_117_seadra": [ + 0 + ], + "mon_118_goldeen": [ + 20, + 34, + 46, + 51, + 52, + 62, + 63, + 0 + ], + "mon_119_seaking": [ + 20, + 34, + 46, + 51, + 52, + 62, + 63, + 0 + ], + "mon_120_staryu": [ + 27, + 0 + ], + "mon_121_starmie": [ + 0 + ], + "mon_122_mr_mime": [ + 60, + 0 + ], + "mon_123_scyther": [ + 0 + ], + "mon_124_jynx": [ + 0 + ], + "mon_125_electabuzz": [ + 52, + 0 + ], + "mon_126_magmar": [ + 0 + ], + "mon_127_pinsir": [ + 0 + ], + "mon_128_tauros": [ + 14, + 15, + 39, + 0 + ], + "mon_129_magikarp": [ + 1, + 3, + 4, + 5, + 6, + 7, + 9, + 10, + 13, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 37, + 38, + 40, + 41, + 42, + 46, + 48, + 51, + 52, + 54, + 60, + 61, + 62, + 63, + 0 + ], + "mon_130_gyarados": [ + 22, + 37, + 0 + ], + "mon_131_lapras": [ + 0 + ], + "mon_132_ditto": [ + 9, + 10, + 27, + 0 + ], + "mon_133_eevee": [ + 0 + ], + "mon_134_vaporeon": [ + 0 + ], + "mon_135_jolteon": [ + 0 + ], + "mon_136_flareon": [ + 0 + ], + "mon_137_porygon": [ + 0 + ], + "mon_138_omanyte": [ + 0 + ], + "mon_139_omastar": [ + 0 + ], + "mon_140_kabuto": [ + 0 + ], + "mon_141_kabutops": [ + 0 + ], + "mon_142_aerodactyl": [ + 0 + ], + "mon_143_snorlax": [ + 0 + ], + "mon_144_articuno": [ + 0 + ], + "mon_145_zapdos": [ + 0 + ], + "mon_146_moltres": [ + 0 + ], + "mon_147_dratini": [ + 0 + ], + "mon_148_dragonair": [ + 0 + ], + "mon_149_dragonite": [ + 0 + ], + "mon_150_mewtwo": [ + 0 + ], + "mon_151_mew": [ + 0 + ], + "mon_152_chikorita": [ + 0 + ], + "mon_153_bayleef": [ + 0 + ], + "mon_154_meganium": [ + 0 + ], + "mon_155_cyndaquil": [ + 0 + ], + "mon_156_quilava": [ + 0 + ], + "mon_157_typhlosion": [ + 0 + ], + "mon_158_totodile": [ + 0 + ], + "mon_159_croconaw": [ + 0 + ], + "mon_160_feraligatr": [ + 0 + ], + "mon_161_sentret": [ + 2, + 43, + 0 + ], + "mon_162_furret": [ + 43, + 0 + ], + "mon_163_hoothoot": [ + 0 + ], + "mon_164_noctowl": [ + 0 + ], + "mon_165_ledyba": { + "GOLD": [ + 0 + ], + "SILVER": [ + 44, + 64, + 0 + ] + }, + "mon_166_ledian": [ + 0 + ], + "mon_167_spinarak": [ + 0 + ], + "mon_168_ariados": [ + 0 + ], + "mon_169_crobat": [ + 0 + ], + "mon_170_chinchou": [ + 1, + 18, + 27, + 31, + 32, + 35, + 38, + 40, + 41, + 60, + 0 + ], + "mon_171_lanturn": [ + 1, + 18, + 27, + 31, + 32, + 35, + 38, + 40, + 41, + 60, + 0 + ], + "mon_172_pichu": [ + 0 + ], + "mon_173_cleffa": [ + 0 + ], + "mon_174_igglybuff": [ + 0 + ], + "mon_175_togepi": [ + 0 + ], + "mon_176_togetic": [ + 0 + ], + "mon_177_natu": [ + 0 + ], + "mon_178_xatu": [ + 0 + ], + "mon_179_mareep": [ + 7, + 20, + 21, + 0 + ], + "mon_180_flaaffy": [ + 20, + 21, + 0 + ], + "mon_181_ampharos": [ + 0 + ], + "mon_182_bellossom": [ + 0 + ], + "mon_183_marill": [ + 0 + ], + "mon_184_azumarill": [ + 0 + ], + "mon_185_sudowoodo": [ + 0 + ], + "mon_186_politoed": [ + 0 + ], + "mon_187_hoppip": [ + 7, + 8, + 39, + 54, + 55, + 56, + 0 + ], + "mon_188_skiploom": [ + 55, + 0 + ], + "mon_189_jumpluff": [ + 0 + ], + "mon_190_aipom": [ + 0 + ], + "mon_191_sunkern": [ + 62, + 0 + ], + "mon_192_sunflora": [ + 0 + ], + "mon_193_yanma": [ + 10, + 0 + ], + "mon_194_wooper": [ + 0 + ], + "mon_195_quagsire": [ + 7, + 29, + 54, + 0 + ], + "mon_196_espeon": [ + 0 + ], + "mon_197_umbreon": [ + 0 + ], + "mon_198_murkrow": [ + 0 + ], + "mon_199_slowking": [ + 0 + ], + "mon_200_misdreavus": [ + 0 + ], + "mon_201_unown": [ + 0 + ], + "mon_202_wobbuffet": [ + 0 + ], + "mon_203_girafarig": [ + 21, + 39, + 0 + ], + "mon_204_pineco": [ + 0 + ], + "mon_205_forretress": [ + 0 + ], + "mon_206_dunsparce": [ + 0 + ], + "mon_207_gligar": { + "GOLD": [ + 25, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_208_steelix": [ + 0 + ], + "mon_209_snubbull": [ + 14, + 0 + ], + "mon_210_granbull": [ + 0 + ], + "mon_211_qwilfish": [ + 7, + 29, + 54, + 0 + ], + "mon_212_scizor": [ + 0 + ], + "mon_213_shuckle": [ + 19, + 35, + 0 + ], + "mon_214_heracross": [ + 0 + ], + "mon_215_sneasel": [ + 0 + ], + "mon_216_teddiursa": { + "GOLD": [ + 0 + ], + "SILVER": [ + 25, + 0 + ] + }, + "mon_217_ursaring": { + "GOLD": [ + 0 + ], + "SILVER": [ + 28, + 42, + 0 + ] + }, + "mon_218_slugma": [ + 57, + 58, + 59, + 0 + ], + "mon_219_magcargo": [ + 0 + ], + "mon_220_swinub": [ + 0 + ], + "mon_221_piloswine": [ + 0 + ], + "mon_222_corsola": [ + 3, + 9, + 16, + 17, + 19, + 30, + 0 + ], + "mon_223_remoraid": [ + 23, + 0 + ], + "mon_224_octillery": [ + 0 + ], + "mon_225_delibird": [ + 0 + ], + "mon_226_mantine": { + "GOLD": [ + 18, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_227_skarmory": { + "GOLD": [ + 0 + ], + "SILVER": [ + 25, + 0 + ] + }, + "mon_228_houndour": [ + 0 + ], + "mon_229_houndoom": [ + 0 + ], + "mon_230_kingdra": [ + 0 + ], + "mon_231_phanpy": { + "GOLD": [ + 25, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_232_donphan": { + "GOLD": [ + 28, + 42, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_233_porygon2": [ + 0 + ], + "mon_234_stantler": [ + 11, + 12, + 0 + ], + "mon_235_smeargle": [ + 0 + ], + "mon_236_tyrogue": [ + 0 + ], + "mon_237_hitmontop": [ + 0 + ], + "mon_238_smoochum": [ + 0 + ], + "mon_239_elekid": [ + 0 + ], + "mon_240_magby": [ + 0 + ], + "mon_241_miltank": [ + 14, + 15, + 27, + 0 + ], + "mon_242_blissey": [ + 0 + ], + "mon_243_raikou": [ + 0 + ], + "mon_244_entei": [ + 0 + ], + "mon_245_suicune": [ + 0 + ], + "mon_246_larvitar": [ + 0 + ], + "mon_247_pupitar": [ + 0 + ], + "mon_248_tyranitar": [ + 0 + ], + "mon_249_lugia": [ + 0 + ], + "mon_250_ho_oh": [ + 0 + ], + "mon_251_celebi": [ + 0 + ], + "mon_252_treecko": [ + 0 + ], + "mon_253_grovyle": [ + 0 + ], + "mon_254_sceptile": [ + 0 + ], + "mon_255_torchic": [ + 0 + ], + "mon_256_combusken": [ + 0 + ], + "mon_257_blaziken": [ + 0 + ], + "mon_258_mudkip": [ + 0 + ], + "mon_259_marshtomp": [ + 0 + ], + "mon_260_swampert": [ + 0 + ], + "mon_261_poochyena": [ + 0 + ], + "mon_262_mightyena": [ + 0 + ], + "mon_263_zigzagoon": [ + 0 + ], + "mon_264_linoone": [ + 0 + ], + "mon_265_wurmple": [ + 0 + ], + "mon_266_silcoon": [ + 0 + ], + "mon_267_beautifly": [ + 0 + ], + "mon_268_cascoon": [ + 0 + ], + "mon_269_dustox": [ + 0 + ], + "mon_270_lotad": [ + 0 + ], + "mon_271_lombre": [ + 0 + ], + "mon_272_ludicolo": [ + 0 + ], + "mon_273_seedot": [ + 0 + ], + "mon_274_nuzleaf": [ + 0 + ], + "mon_275_shiftry": [ + 0 + ], + "mon_276_taillow": [ + 0 + ], + "mon_277_swellow": [ + 0 + ], + "mon_278_wingull": [ + 0 + ], + "mon_279_pelipper": [ + 0 + ], + "mon_280_ralts": [ + 0 + ], + "mon_281_kirlia": [ + 0 + ], + "mon_282_gardevoir": [ + 0 + ], + "mon_283_surskit": [ + 0 + ], + "mon_284_masquerain": [ + 0 + ], + "mon_285_shroomish": [ + 0 + ], + "mon_286_breloom": [ + 0 + ], + "mon_287_slakoth": [ + 0 + ], + "mon_288_vigoroth": [ + 0 + ], + "mon_289_slaking": [ + 0 + ], + "mon_290_nincada": [ + 0 + ], + "mon_291_ninjask": [ + 0 + ], + "mon_292_shedinja": [ + 0 + ], + "mon_293_whismur": [ + 0 + ], + "mon_294_loudred": [ + 0 + ], + "mon_295_exploud": [ + 0 + ], + "mon_296_makuhita": [ + 0 + ], + "mon_297_hariyama": [ + 0 + ], + "mon_298_azurill": [ + 0 + ], + "mon_299_nosepass": [ + 0 + ], + "mon_300_skitty": [ + 0 + ], + "mon_301_delcatty": [ + 0 + ], + "mon_302_sableye": [ + 0 + ], + "mon_303_mawile": [ + 0 + ], + "mon_304_aron": [ + 0 + ], + "mon_305_lairon": [ + 0 + ], + "mon_306_aggron": [ + 0 + ], + "mon_307_meditite": [ + 0 + ], + "mon_308_medicham": [ + 0 + ], + "mon_309_electrike": [ + 0 + ], + "mon_310_manectric": [ + 0 + ], + "mon_311_plusle": [ + 0 + ], + "mon_312_minun": [ + 0 + ], + "mon_313_volbeat": [ + 0 + ], + "mon_314_illumise": [ + 0 + ], + "mon_315_roselia": [ + 0 + ], + "mon_316_gulpin": [ + 0 + ], + "mon_317_swalot": [ + 0 + ], + "mon_318_carvanha": [ + 0 + ], + "mon_319_sharpedo": [ + 0 + ], + "mon_320_wailmer": [ + 0 + ], + "mon_321_wailord": [ + 0 + ], + "mon_322_numel": [ + 0 + ], + "mon_323_camerupt": [ + 0 + ], + "mon_324_torkoal": [ + 0 + ], + "mon_325_spoink": [ + 0 + ], + "mon_326_grumpig": [ + 0 + ], + "mon_327_spinda": [ + 0 + ], + "mon_328_trapinch": [ + 0 + ], + "mon_329_vibrava": [ + 0 + ], + "mon_330_flygon": [ + 0 + ], + "mon_331_cacnea": [ + 0 + ], + "mon_332_cacturne": [ + 0 + ], + "mon_333_swablu": [ + 0 + ], + "mon_334_altaria": [ + 0 + ], + "mon_335_zangoose": [ + 0 + ], + "mon_336_seviper": [ + 0 + ], + "mon_337_lunatone": [ + 0 + ], + "mon_338_solrock": [ + 0 + ], + "mon_339_barboach": [ + 0 + ], + "mon_340_whiscash": [ + 0 + ], + "mon_341_corphish": [ + 0 + ], + "mon_342_crawdaunt": [ + 0 + ], + "mon_343_baltoy": [ + 0 + ], + "mon_344_claydol": [ + 0 + ], + "mon_345_lileep": [ + 0 + ], + "mon_346_cradily": [ + 0 + ], + "mon_347_anorith": [ + 0 + ], + "mon_348_armaldo": [ + 0 + ], + "mon_349_feebas": [ + 0 + ], + "mon_350_milotic": [ + 0 + ], + "mon_351_castform": [ + 0 + ], + "mon_352_kecleon": [ + 0 + ], + "mon_353_shuppet": [ + 0 + ], + "mon_354_banette": [ + 0 + ], + "mon_355_duskull": [ + 0 + ], + "mon_356_dusclops": [ + 0 + ], + "mon_357_tropius": [ + 0 + ], + "mon_358_chimecho": [ + 0 + ], + "mon_359_absol": [ + 0 + ], + "mon_360_wynaut": [ + 0 + ], + "mon_361_snorunt": [ + 0 + ], + "mon_362_glalie": [ + 0 + ], + "mon_363_spheal": [ + 0 + ], + "mon_364_sealeo": [ + 0 + ], + "mon_365_walrein": [ + 0 + ], + "mon_366_clamperl": [ + 0 + ], + "mon_367_huntail": [ + 0 + ], + "mon_368_gorebyss": [ + 0 + ], + "mon_369_relicanth": [ + 0 + ], + "mon_370_luvdisc": [ + 0 + ], + "mon_371_bagon": [ + 0 + ], + "mon_372_shelgon": [ + 0 + ], + "mon_373_salamence": [ + 0 + ], + "mon_374_beldum": [ + 0 + ], + "mon_375_metang": [ + 0 + ], + "mon_376_metagross": [ + 0 + ], + "mon_377_regirock": [ + 0 + ], + "mon_378_regice": [ + 0 + ], + "mon_379_registeel": [ + 0 + ], + "mon_380_latias": [ + 0 + ], + "mon_381_latios": [ + 0 + ], + "mon_382_kyogre": [ + 0 + ], + "mon_383_groudon": [ + 0 + ], + "mon_384_rayquaza": [ + 0 + ], + "mon_385_jirachi": [ + 0 + ], + "mon_386_deoxys": [ + 0 + ], + "mon_387_turtwig": [ + 0 + ], + "mon_388_grotle": [ + 0 + ], + "mon_389_torterra": [ + 0 + ], + "mon_390_chimchar": [ + 0 + ], + "mon_391_monferno": [ + 0 + ], + "mon_392_infernape": [ + 0 + ], + "mon_393_piplup": [ + 0 + ], + "mon_394_prinplup": [ + 0 + ], + "mon_395_empoleon": [ + 0 + ], + "mon_396_starly": [ + 0 + ], + "mon_397_staravia": [ + 0 + ], + "mon_398_staraptor": [ + 0 + ], + "mon_399_bidoof": [ + 0 + ], + "mon_400_bibarel": [ + 0 + ], + "mon_401_kricketot": [ + 0 + ], + "mon_402_kricketune": [ + 0 + ], + "mon_403_shinx": [ + 0 + ], + "mon_404_luxio": [ + 0 + ], + "mon_405_luxray": [ + 0 + ], + "mon_406_budew": [ + 0 + ], + "mon_407_roserade": [ + 0 + ], + "mon_408_cranidos": [ + 0 + ], + "mon_409_rampardos": [ + 0 + ], + "mon_410_shieldon": [ + 0 + ], + "mon_411_bastiodon": [ + 0 + ], + "mon_412_burmy": [ + 0 + ], + "mon_413_wormadam": [ + 0 + ], + "mon_414_mothim": [ + 0 + ], + "mon_415_combee": [ + 0 + ], + "mon_416_vespiquen": [ + 0 + ], + "mon_417_pachirisu": [ + 0 + ], + "mon_418_buizel": [ + 0 + ], + "mon_419_floatzel": [ + 0 + ], + "mon_420_cherubi": [ + 0 + ], + "mon_421_cherrim": [ + 0 + ], + "mon_422_shellos": [ + 0 + ], + "mon_423_gastrodon": [ + 0 + ], + "mon_424_ambipom": [ + 0 + ], + "mon_425_drifloon": [ + 0 + ], + "mon_426_drifblim": [ + 0 + ], + "mon_427_buneary": [ + 0 + ], + "mon_428_lopunny": [ + 0 + ], + "mon_429_mismagius": [ + 0 + ], + "mon_430_honchkrow": [ + 0 + ], + "mon_431_glameow": [ + 0 + ], + "mon_432_purugly": [ + 0 + ], + "mon_433_chingling": [ + 0 + ], + "mon_434_stunky": [ + 0 + ], + "mon_435_skuntank": [ + 0 + ], + "mon_436_bronzor": [ + 0 + ], + "mon_437_bronzong": [ + 0 + ], + "mon_438_bonsly": [ + 0 + ], + "mon_439_mime_jr": [ + 0 + ], + "mon_440_happiny": [ + 0 + ], + "mon_441_chatot": [ + 0 + ], + "mon_442_spiritomb": [ + 0 + ], + "mon_443_gible": [ + 0 + ], + "mon_444_gabite": [ + 0 + ], + "mon_445_garchomp": [ + 0 + ], + "mon_446_munchlax": [ + 0 + ], + "mon_447_riolu": [ + 0 + ], + "mon_448_lucario": [ + 0 + ], + "mon_449_hippopotas": [ + 0 + ], + "mon_450_hippowdon": [ + 0 + ], + "mon_451_skorupi": [ + 0 + ], + "mon_452_drapion": [ + 0 + ], + "mon_453_croagunk": [ + 0 + ], + "mon_454_toxicroak": [ + 0 + ], + "mon_455_carnivine": [ + 0 + ], + "mon_456_finneon": [ + 0 + ], + "mon_457_lumineon": [ + 0 + ], + "mon_458_mantyke": [ + 0 + ], + "mon_459_snover": [ + 0 + ], + "mon_460_abomasnow": [ + 0 + ], + "mon_461_weavile": [ + 0 + ], + "mon_462_magnezone": [ + 0 + ], + "mon_463_lickilicky": [ + 0 + ], + "mon_464_rhyperior": [ + 0 + ], + "mon_465_tangrowth": [ + 0 + ], + "mon_466_electivire": [ + 0 + ], + "mon_467_magmortar": [ + 0 + ], + "mon_468_togekiss": [ + 0 + ], + "mon_469_yanmega": [ + 0 + ], + "mon_470_leafeon": [ + 0 + ], + "mon_471_glaceon": [ + 0 + ], + "mon_472_gliscor": [ + 0 + ], + "mon_473_mamoswine": [ + 0 + ], + "mon_474_porygon_z": [ + 0 + ], + "mon_475_gallade": [ + 0 + ], + "mon_476_probopass": [ + 0 + ], + "mon_477_dusknoir": [ + 0 + ], + "mon_478_froslass": [ + 0 + ], + "mon_479_rotom": [ + 0 + ], + "mon_480_uxie": [ + 0 + ], + "mon_481_mesprit": [ + 0 + ], + "mon_482_azelf": [ + 0 + ], + "mon_483_dialga": [ + 0 + ], + "mon_484_palkia": [ + 0 + ], + "mon_485_heatran": [ + 0 + ], + "mon_486_regigigas": [ + 0 + ], + "mon_487_giratina": [ + 0 + ], + "mon_488_cresselia": [ + 0 + ], + "mon_489_phione": [ + 0 + ], + "mon_490_manaphy": [ + 0 + ], + "mon_491_darkrai": [ + 0 + ], + "mon_492_shaymin": [ + 0 + ], + "mon_493_arceus": [ + 0 + ], + "mon_494_egg": [ + 0 + ] + }, + "method_5": { + "mon_000_none": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 0 + ], + "mon_001_bulbasaur": [ + 0 + ], + "mon_002_ivysaur": [ + 0 + ], + "mon_003_venusaur": [ + 0 + ], + "mon_004_charmander": [ + 0 + ], + "mon_005_charmeleon": [ + 0 + ], + "mon_006_charizard": [ + 0 + ], + "mon_007_squirtle": [ + 0 + ], + "mon_008_wartortle": [ + 0 + ], + "mon_009_blastoise": [ + 0 + ], + "mon_010_caterpie": [ + 0 + ], + "mon_011_metapod": [ + 0 + ], + "mon_012_butterfree": [ + 0 + ], + "mon_013_weedle": { + "GOLD": [ + 0 + ], + "SILVER": [ + 44, + 64, + 0 + ] + }, + "mon_014_kakuna": { + "GOLD": [ + 0 + ], + "SILVER": [ + 44, + 64, + 0 + ] + }, + "mon_015_beedrill": { + "GOLD": [ + 0 + ], + "SILVER": [ + 44, + 64, + 0 + ] + }, + "mon_016_pidgey": [ + 0 + ], + "mon_017_pidgeotto": [ + 0 + ], + "mon_018_pidgeot": [ + 0 + ], + "mon_019_rattata": { + "GOLD": [ + 2, + 4, + 5, + 7, + 8, + 9, + 14, + 15, + 26, + 43, + 45, + 46, + 49, + 51, + 53, + 61, + 0 + ], + "SILVER": [ + 2, + 4, + 5, + 8, + 9, + 26, + 43, + 45, + 46, + 51, + 53, + 61, + 0 + ] + }, + "mon_020_raticate": [ + 14, + 15, + 27, + 40, + 41, + 49, + 51, + 52, + 0 + ], + "mon_021_spearow": { + "GOLD": [ + 27, + 46, + 0 + ], + "SILVER": [ + 27, + 0 + ] + }, + "mon_022_fearow": [ + 27, + 39, + 0 + ], + "mon_023_ekans": { + "GOLD": [ + 0 + ], + "SILVER": [ + 7, + 8, + 45, + 46, + 0 + ] + }, + "mon_024_arbok": { + "GOLD": [ + 0 + ], + "SILVER": [ + 40, + 41, + 45, + 46, + 0 + ] + }, + "mon_025_pikachu": [ + 0 + ], + "mon_026_raichu": [ + 0 + ], + "mon_027_sandshrew": [ + 0 + ], + "mon_028_sandslash": { + "GOLD": [ + 40, + 41, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_029_nidoran_f": [ + 10, + 11, + 0 + ], + "mon_030_nidorina": [ + 54, + 55, + 56, + 0 + ], + "mon_031_nidoqueen": [ + 0 + ], + "mon_032_nidoran_m": [ + 10, + 11, + 0 + ], + "mon_033_nidorino": [ + 54, + 55, + 56, + 0 + ], + "mon_034_nidoking": [ + 0 + ], + "mon_035_clefairy": [ + 0 + ], + "mon_036_clefable": [ + 0 + ], + "mon_037_vulpix": { + "GOLD": [ + 0 + ], + "SILVER": [ + 11, + 12, + 39, + 49, + 50, + 0 + ] + }, + "mon_038_ninetales": [ + 0 + ], + "mon_039_jigglypuff": [ + 45, + 46, + 0 + ], + "mon_040_wigglytuff": [ + 0 + ], + "mon_041_zubat": [ + 7, + 8, + 20, + 45, + 46, + 0 + ], + "mon_042_golbat": [ + 0 + ], + "mon_043_oddish": [ + 47, + 48, + 62, + 63, + 0 + ], + "mon_044_gloom": [ + 27, + 39, + 47, + 0 + ], + "mon_045_vileplume": [ + 0 + ], + "mon_046_paras": [ + 0 + ], + "mon_047_parasect": [ + 0 + ], + "mon_048_venonat": [ + 21, + 62, + 63, + 0 + ], + "mon_049_venomoth": [ + 62, + 63, + 0 + ], + "mon_050_diglett": [ + 35, + 39, + 0 + ], + "mon_051_dugtrio": [ + 0 + ], + "mon_052_meowth": { + "GOLD": [ + 0 + ], + "SILVER": [ + 14, + 15, + 47, + 48, + 49, + 50, + 0 + ] + }, + "mon_053_persian": { + "GOLD": [ + 0 + ], + "SILVER": [ + 49, + 0 + ] + }, + "mon_054_psyduck": [ + 10, + 48, + 0 + ], + "mon_055_golduck": [ + 10, + 48, + 0 + ], + "mon_056_mankey": { + "GOLD": [ + 20, + 51, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_057_primeape": { + "GOLD": [ + 51, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_058_growlithe": { + "GOLD": [ + 11, + 12, + 39, + 49, + 50, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_059_arcanine": [ + 0 + ], + "mon_060_poliwag": [ + 4, + 5, + 6, + 10, + 13, + 21, + 23, + 24, + 25, + 28, + 33, + 42, + 48, + 61, + 0 + ], + "mon_061_poliwhirl": [ + 4, + 5, + 6, + 13, + 23, + 28, + 33, + 42, + 61, + 0 + ], + "mon_062_poliwrath": [ + 0 + ], + "mon_063_abra": [ + 9, + 10, + 47, + 48, + 50, + 62, + 63, + 0 + ], + "mon_064_kadabra": [ + 50, + 0 + ], + "mon_065_alakazam": [ + 0 + ], + "mon_066_machop": [ + 0 + ], + "mon_067_machoke": [ + 0 + ], + "mon_068_machamp": [ + 0 + ], + "mon_069_bellsprout": [ + 5, + 7, + 23, + 47, + 48, + 62, + 63, + 0 + ], + "mon_070_weepinbell": [ + 23, + 62, + 63, + 0 + ], + "mon_071_victreebel": [ + 0 + ], + "mon_072_tentacool": [ + 1, + 3, + 7, + 9, + 16, + 17, + 18, + 19, + 27, + 29, + 30, + 31, + 32, + 35, + 38, + 40, + 41, + 54, + 60, + 0 + ], + "mon_073_tentacruel": [ + 1, + 3, + 7, + 9, + 16, + 17, + 18, + 19, + 27, + 29, + 30, + 31, + 32, + 35, + 38, + 40, + 41, + 54, + 60, + 0 + ], + "mon_074_geodude": [ + 25, + 26, + 0 + ], + "mon_075_graveler": [ + 25, + 0 + ], + "mon_076_golem": [ + 0 + ], + "mon_077_ponyta": [ + 28, + 40, + 41, + 42, + 61, + 0 + ], + "mon_078_rapidash": [ + 28, + 42, + 0 + ], + "mon_079_slowpoke": [ + 0 + ], + "mon_080_slowbro": [ + 0 + ], + "mon_081_magnemite": [ + 14, + 15, + 48, + 53, + 0 + ], + "mon_082_magneton": [ + 0 + ], + "mon_083_farfetchd": [ + 0 + ], + "mon_084_doduo": { + "GOLD": [ + 0 + ], + "SILVER": [ + 40, + 0 + ] + }, + "mon_085_dodrio": [ + 0 + ], + "mon_086_seel": [ + 27, + 0 + ], + "mon_087_dewgong": [ + 0 + ], + "mon_088_grimer": [ + 36, + 57, + 58, + 59, + 0 + ], + "mon_089_muk": [ + 36, + 57, + 58, + 59, + 0 + ], + "mon_090_shellder": [ + 1, + 18, + 27, + 31, + 32, + 35, + 38, + 40, + 41, + 60, + 0 + ], + "mon_091_cloyster": [ + 0 + ], + "mon_092_gastly": [ + 0 + ], + "mon_093_haunter": [ + 50, + 0 + ], + "mon_094_gengar": [ + 0 + ], + "mon_095_onix": [ + 0 + ], + "mon_096_drowzee": [ + 9, + 10, + 53, + 0 + ], + "mon_097_hypno": [ + 53, + 0 + ], + "mon_098_krabby": [ + 3, + 9, + 16, + 17, + 19, + 30, + 0 + ], + "mon_099_kingler": [ + 3, + 9, + 16, + 17, + 19, + 30, + 0 + ], + "mon_100_voltorb": [ + 52, + 0 + ], + "mon_101_electrode": [ + 0 + ], + "mon_102_exeggcute": [ + 0 + ], + "mon_103_exeggutor": [ + 0 + ], + "mon_104_cubone": [ + 0 + ], + "mon_105_marowak": [ + 0 + ], + "mon_106_hitmonlee": [ + 0 + ], + "mon_107_hitmonchan": [ + 0 + ], + "mon_108_lickitung": [ + 23, + 0 + ], + "mon_109_koffing": [ + 0 + ], + "mon_110_weezing": [ + 0 + ], + "mon_111_rhyhorn": [ + 0 + ], + "mon_112_rhydon": [ + 0 + ], + "mon_113_chansey": [ + 54, + 55, + 56, + 0 + ], + "mon_114_tangela": [ + 23, + 28, + 42, + 60, + 0 + ], + "mon_115_kangaskhan": [ + 0 + ], + "mon_116_horsea": [ + 0 + ], + "mon_117_seadra": [ + 0 + ], + "mon_118_goldeen": [ + 20, + 34, + 46, + 51, + 52, + 62, + 63, + 0 + ], + "mon_119_seaking": [ + 20, + 34, + 46, + 51, + 52, + 62, + 63, + 0 + ], + "mon_120_staryu": [ + 3, + 9, + 16, + 17, + 19, + 27, + 30, + 0 + ], + "mon_121_starmie": [ + 0 + ], + "mon_122_mr_mime": [ + 60, + 0 + ], + "mon_123_scyther": [ + 0 + ], + "mon_124_jynx": [ + 0 + ], + "mon_125_electabuzz": [ + 52, + 0 + ], + "mon_126_magmar": [ + 0 + ], + "mon_127_pinsir": [ + 0 + ], + "mon_128_tauros": [ + 14, + 15, + 39, + 0 + ], + "mon_129_magikarp": [ + 1, + 3, + 4, + 5, + 6, + 7, + 9, + 10, + 13, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 37, + 38, + 40, + 41, + 42, + 46, + 48, + 51, + 52, + 54, + 60, + 61, + 62, + 63, + 0 + ], + "mon_130_gyarados": [ + 22, + 37, + 0 + ], + "mon_131_lapras": [ + 0 + ], + "mon_132_ditto": [ + 9, + 10, + 27, + 0 + ], + "mon_133_eevee": [ + 0 + ], + "mon_134_vaporeon": [ + 0 + ], + "mon_135_jolteon": [ + 0 + ], + "mon_136_flareon": [ + 0 + ], + "mon_137_porygon": [ + 0 + ], + "mon_138_omanyte": [ + 0 + ], + "mon_139_omastar": [ + 0 + ], + "mon_140_kabuto": [ + 0 + ], + "mon_141_kabutops": [ + 0 + ], + "mon_142_aerodactyl": [ + 0 + ], + "mon_143_snorlax": [ + 0 + ], + "mon_144_articuno": [ + 0 + ], + "mon_145_zapdos": [ + 0 + ], + "mon_146_moltres": [ + 0 + ], + "mon_147_dratini": [ + 0 + ], + "mon_148_dragonair": [ + 0 + ], + "mon_149_dragonite": [ + 0 + ], + "mon_150_mewtwo": [ + 0 + ], + "mon_151_mew": [ + 0 + ], + "mon_152_chikorita": [ + 0 + ], + "mon_153_bayleef": [ + 0 + ], + "mon_154_meganium": [ + 0 + ], + "mon_155_cyndaquil": [ + 0 + ], + "mon_156_quilava": [ + 0 + ], + "mon_157_typhlosion": [ + 0 + ], + "mon_158_totodile": [ + 0 + ], + "mon_159_croconaw": [ + 0 + ], + "mon_160_feraligatr": [ + 0 + ], + "mon_161_sentret": [ + 0 + ], + "mon_162_furret": [ + 0 + ], + "mon_163_hoothoot": [ + 2, + 4, + 5, + 10, + 11, + 12, + 43, + 44, + 64, + 0 + ], + "mon_164_noctowl": [ + 21, + 27, + 44, + 50, + 54, + 55, + 56, + 64, + 0 + ], + "mon_165_ledyba": [ + 0 + ], + "mon_166_ledian": [ + 0 + ], + "mon_167_spinarak": { + "GOLD": [ + 4, + 5, + 12, + 44, + 64, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_168_ariados": { + "GOLD": [ + 44, + 64, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_169_crobat": [ + 0 + ], + "mon_170_chinchou": [ + 1, + 18, + 27, + 31, + 32, + 35, + 38, + 40, + 41, + 60, + 0 + ], + "mon_171_lanturn": [ + 1, + 18, + 27, + 31, + 32, + 35, + 38, + 40, + 41, + 60, + 0 + ], + "mon_172_pichu": [ + 0 + ], + "mon_173_cleffa": [ + 0 + ], + "mon_174_igglybuff": [ + 0 + ], + "mon_175_togepi": [ + 0 + ], + "mon_176_togetic": [ + 0 + ], + "mon_177_natu": [ + 0 + ], + "mon_178_xatu": [ + 0 + ], + "mon_179_mareep": [ + 7, + 20, + 21, + 0 + ], + "mon_180_flaaffy": [ + 20, + 21, + 0 + ], + "mon_181_ampharos": [ + 0 + ], + "mon_182_bellossom": [ + 0 + ], + "mon_183_marill": [ + 0 + ], + "mon_184_azumarill": [ + 0 + ], + "mon_185_sudowoodo": [ + 0 + ], + "mon_186_politoed": [ + 0 + ], + "mon_187_hoppip": [ + 39, + 0 + ], + "mon_188_skiploom": [ + 0 + ], + "mon_189_jumpluff": [ + 0 + ], + "mon_190_aipom": [ + 0 + ], + "mon_191_sunkern": [ + 0 + ], + "mon_192_sunflora": [ + 0 + ], + "mon_193_yanma": [ + 10, + 0 + ], + "mon_194_wooper": [ + 7, + 0 + ], + "mon_195_quagsire": [ + 7, + 29, + 40, + 41, + 52, + 54, + 55, + 56, + 0 + ], + "mon_196_espeon": [ + 0 + ], + "mon_197_umbreon": [ + 0 + ], + "mon_198_murkrow": [ + 49, + 57, + 0 + ], + "mon_199_slowking": [ + 0 + ], + "mon_200_misdreavus": [ + 0 + ], + "mon_201_unown": [ + 0 + ], + "mon_202_wobbuffet": [ + 0 + ], + "mon_203_girafarig": [ + 21, + 39, + 0 + ], + "mon_204_pineco": [ + 0 + ], + "mon_205_forretress": [ + 0 + ], + "mon_206_dunsparce": [ + 0 + ], + "mon_207_gligar": { + "GOLD": [ + 25, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_208_steelix": [ + 0 + ], + "mon_209_snubbull": [ + 14, + 0 + ], + "mon_210_granbull": [ + 0 + ], + "mon_211_qwilfish": [ + 7, + 29, + 54, + 0 + ], + "mon_212_scizor": [ + 0 + ], + "mon_213_shuckle": [ + 19, + 35, + 0 + ], + "mon_214_heracross": [ + 0 + ], + "mon_215_sneasel": [ + 28, + 42, + 0 + ], + "mon_216_teddiursa": { + "GOLD": [ + 0 + ], + "SILVER": [ + 25, + 0 + ] + }, + "mon_217_ursaring": { + "GOLD": [ + 0 + ], + "SILVER": [ + 28, + 42, + 0 + ] + }, + "mon_218_slugma": [ + 57, + 58, + 59, + 0 + ], + "mon_219_magcargo": [ + 0 + ], + "mon_220_swinub": [ + 0 + ], + "mon_221_piloswine": [ + 0 + ], + "mon_222_corsola": [ + 0 + ], + "mon_223_remoraid": [ + 23, + 0 + ], + "mon_224_octillery": [ + 0 + ], + "mon_225_delibird": [ + 0 + ], + "mon_226_mantine": { + "GOLD": [ + 18, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_227_skarmory": { + "GOLD": [ + 0 + ], + "SILVER": [ + 25, + 0 + ] + }, + "mon_228_houndour": [ + 49, + 0 + ], + "mon_229_houndoom": [ + 0 + ], + "mon_230_kingdra": [ + 0 + ], + "mon_231_phanpy": { + "GOLD": [ + 25, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_232_donphan": { + "GOLD": [ + 28, + 42, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_233_porygon2": [ + 0 + ], + "mon_234_stantler": [ + 11, + 12, + 0 + ], + "mon_235_smeargle": [ + 0 + ], + "mon_236_tyrogue": [ + 0 + ], + "mon_237_hitmontop": [ + 0 + ], + "mon_238_smoochum": [ + 0 + ], + "mon_239_elekid": [ + 0 + ], + "mon_240_magby": [ + 0 + ], + "mon_241_miltank": [ + 14, + 15, + 27, + 0 + ], + "mon_242_blissey": [ + 0 + ], + "mon_243_raikou": [ + 0 + ], + "mon_244_entei": [ + 0 + ], + "mon_245_suicune": [ + 0 + ], + "mon_246_larvitar": [ + 0 + ], + "mon_247_pupitar": [ + 0 + ], + "mon_248_tyranitar": [ + 0 + ], + "mon_249_lugia": [ + 0 + ], + "mon_250_ho_oh": [ + 0 + ], + "mon_251_celebi": [ + 0 + ], + "mon_252_treecko": [ + 0 + ], + "mon_253_grovyle": [ + 0 + ], + "mon_254_sceptile": [ + 0 + ], + "mon_255_torchic": [ + 0 + ], + "mon_256_combusken": [ + 0 + ], + "mon_257_blaziken": [ + 0 + ], + "mon_258_mudkip": [ + 0 + ], + "mon_259_marshtomp": [ + 0 + ], + "mon_260_swampert": [ + 0 + ], + "mon_261_poochyena": [ + 0 + ], + "mon_262_mightyena": [ + 0 + ], + "mon_263_zigzagoon": [ + 0 + ], + "mon_264_linoone": [ + 0 + ], + "mon_265_wurmple": [ + 0 + ], + "mon_266_silcoon": [ + 0 + ], + "mon_267_beautifly": [ + 0 + ], + "mon_268_cascoon": [ + 0 + ], + "mon_269_dustox": [ + 0 + ], + "mon_270_lotad": [ + 0 + ], + "mon_271_lombre": [ + 0 + ], + "mon_272_ludicolo": [ + 0 + ], + "mon_273_seedot": [ + 0 + ], + "mon_274_nuzleaf": [ + 0 + ], + "mon_275_shiftry": [ + 0 + ], + "mon_276_taillow": [ + 0 + ], + "mon_277_swellow": [ + 0 + ], + "mon_278_wingull": [ + 0 + ], + "mon_279_pelipper": [ + 0 + ], + "mon_280_ralts": [ + 0 + ], + "mon_281_kirlia": [ + 0 + ], + "mon_282_gardevoir": [ + 0 + ], + "mon_283_surskit": [ + 0 + ], + "mon_284_masquerain": [ + 0 + ], + "mon_285_shroomish": [ + 0 + ], + "mon_286_breloom": [ + 0 + ], + "mon_287_slakoth": [ + 0 + ], + "mon_288_vigoroth": [ + 0 + ], + "mon_289_slaking": [ + 0 + ], + "mon_290_nincada": [ + 0 + ], + "mon_291_ninjask": [ + 0 + ], + "mon_292_shedinja": [ + 0 + ], + "mon_293_whismur": [ + 0 + ], + "mon_294_loudred": [ + 0 + ], + "mon_295_exploud": [ + 0 + ], + "mon_296_makuhita": [ + 0 + ], + "mon_297_hariyama": [ + 0 + ], + "mon_298_azurill": [ + 0 + ], + "mon_299_nosepass": [ + 0 + ], + "mon_300_skitty": [ + 0 + ], + "mon_301_delcatty": [ + 0 + ], + "mon_302_sableye": [ + 0 + ], + "mon_303_mawile": [ + 0 + ], + "mon_304_aron": [ + 0 + ], + "mon_305_lairon": [ + 0 + ], + "mon_306_aggron": [ + 0 + ], + "mon_307_meditite": [ + 0 + ], + "mon_308_medicham": [ + 0 + ], + "mon_309_electrike": [ + 0 + ], + "mon_310_manectric": [ + 0 + ], + "mon_311_plusle": [ + 0 + ], + "mon_312_minun": [ + 0 + ], + "mon_313_volbeat": [ + 0 + ], + "mon_314_illumise": [ + 0 + ], + "mon_315_roselia": [ + 0 + ], + "mon_316_gulpin": [ + 0 + ], + "mon_317_swalot": [ + 0 + ], + "mon_318_carvanha": [ + 0 + ], + "mon_319_sharpedo": [ + 0 + ], + "mon_320_wailmer": [ + 0 + ], + "mon_321_wailord": [ + 0 + ], + "mon_322_numel": [ + 0 + ], + "mon_323_camerupt": [ + 0 + ], + "mon_324_torkoal": [ + 0 + ], + "mon_325_spoink": [ + 0 + ], + "mon_326_grumpig": [ + 0 + ], + "mon_327_spinda": [ + 0 + ], + "mon_328_trapinch": [ + 0 + ], + "mon_329_vibrava": [ + 0 + ], + "mon_330_flygon": [ + 0 + ], + "mon_331_cacnea": [ + 0 + ], + "mon_332_cacturne": [ + 0 + ], + "mon_333_swablu": [ + 0 + ], + "mon_334_altaria": [ + 0 + ], + "mon_335_zangoose": [ + 0 + ], + "mon_336_seviper": [ + 0 + ], + "mon_337_lunatone": [ + 0 + ], + "mon_338_solrock": [ + 0 + ], + "mon_339_barboach": [ + 0 + ], + "mon_340_whiscash": [ + 0 + ], + "mon_341_corphish": [ + 0 + ], + "mon_342_crawdaunt": [ + 0 + ], + "mon_343_baltoy": [ + 0 + ], + "mon_344_claydol": [ + 0 + ], + "mon_345_lileep": [ + 0 + ], + "mon_346_cradily": [ + 0 + ], + "mon_347_anorith": [ + 0 + ], + "mon_348_armaldo": [ + 0 + ], + "mon_349_feebas": [ + 0 + ], + "mon_350_milotic": [ + 0 + ], + "mon_351_castform": [ + 0 + ], + "mon_352_kecleon": [ + 0 + ], + "mon_353_shuppet": [ + 0 + ], + "mon_354_banette": [ + 0 + ], + "mon_355_duskull": [ + 0 + ], + "mon_356_dusclops": [ + 0 + ], + "mon_357_tropius": [ + 0 + ], + "mon_358_chimecho": [ + 0 + ], + "mon_359_absol": [ + 0 + ], + "mon_360_wynaut": [ + 0 + ], + "mon_361_snorunt": [ + 0 + ], + "mon_362_glalie": [ + 0 + ], + "mon_363_spheal": [ + 0 + ], + "mon_364_sealeo": [ + 0 + ], + "mon_365_walrein": [ + 0 + ], + "mon_366_clamperl": [ + 0 + ], + "mon_367_huntail": [ + 0 + ], + "mon_368_gorebyss": [ + 0 + ], + "mon_369_relicanth": [ + 0 + ], + "mon_370_luvdisc": [ + 0 + ], + "mon_371_bagon": [ + 0 + ], + "mon_372_shelgon": [ + 0 + ], + "mon_373_salamence": [ + 0 + ], + "mon_374_beldum": [ + 0 + ], + "mon_375_metang": [ + 0 + ], + "mon_376_metagross": [ + 0 + ], + "mon_377_regirock": [ + 0 + ], + "mon_378_regice": [ + 0 + ], + "mon_379_registeel": [ + 0 + ], + "mon_380_latias": [ + 0 + ], + "mon_381_latios": [ + 0 + ], + "mon_382_kyogre": [ + 0 + ], + "mon_383_groudon": [ + 0 + ], + "mon_384_rayquaza": [ + 0 + ], + "mon_385_jirachi": [ + 0 + ], + "mon_386_deoxys": [ + 0 + ], + "mon_387_turtwig": [ + 0 + ], + "mon_388_grotle": [ + 0 + ], + "mon_389_torterra": [ + 0 + ], + "mon_390_chimchar": [ + 0 + ], + "mon_391_monferno": [ + 0 + ], + "mon_392_infernape": [ + 0 + ], + "mon_393_piplup": [ + 0 + ], + "mon_394_prinplup": [ + 0 + ], + "mon_395_empoleon": [ + 0 + ], + "mon_396_starly": [ + 0 + ], + "mon_397_staravia": [ + 0 + ], + "mon_398_staraptor": [ + 0 + ], + "mon_399_bidoof": [ + 0 + ], + "mon_400_bibarel": [ + 0 + ], + "mon_401_kricketot": [ + 0 + ], + "mon_402_kricketune": [ + 0 + ], + "mon_403_shinx": [ + 0 + ], + "mon_404_luxio": [ + 0 + ], + "mon_405_luxray": [ + 0 + ], + "mon_406_budew": [ + 0 + ], + "mon_407_roserade": [ + 0 + ], + "mon_408_cranidos": [ + 0 + ], + "mon_409_rampardos": [ + 0 + ], + "mon_410_shieldon": [ + 0 + ], + "mon_411_bastiodon": [ + 0 + ], + "mon_412_burmy": [ + 0 + ], + "mon_413_wormadam": [ + 0 + ], + "mon_414_mothim": [ + 0 + ], + "mon_415_combee": [ + 0 + ], + "mon_416_vespiquen": [ + 0 + ], + "mon_417_pachirisu": [ + 0 + ], + "mon_418_buizel": [ + 0 + ], + "mon_419_floatzel": [ + 0 + ], + "mon_420_cherubi": [ + 0 + ], + "mon_421_cherrim": [ + 0 + ], + "mon_422_shellos": [ + 0 + ], + "mon_423_gastrodon": [ + 0 + ], + "mon_424_ambipom": [ + 0 + ], + "mon_425_drifloon": [ + 0 + ], + "mon_426_drifblim": [ + 0 + ], + "mon_427_buneary": [ + 0 + ], + "mon_428_lopunny": [ + 0 + ], + "mon_429_mismagius": [ + 0 + ], + "mon_430_honchkrow": [ + 0 + ], + "mon_431_glameow": [ + 0 + ], + "mon_432_purugly": [ + 0 + ], + "mon_433_chingling": [ + 0 + ], + "mon_434_stunky": [ + 0 + ], + "mon_435_skuntank": [ + 0 + ], + "mon_436_bronzor": [ + 0 + ], + "mon_437_bronzong": [ + 0 + ], + "mon_438_bonsly": [ + 0 + ], + "mon_439_mime_jr": [ + 0 + ], + "mon_440_happiny": [ + 0 + ], + "mon_441_chatot": [ + 0 + ], + "mon_442_spiritomb": [ + 0 + ], + "mon_443_gible": [ + 0 + ], + "mon_444_gabite": [ + 0 + ], + "mon_445_garchomp": [ + 0 + ], + "mon_446_munchlax": [ + 0 + ], + "mon_447_riolu": [ + 0 + ], + "mon_448_lucario": [ + 0 + ], + "mon_449_hippopotas": [ + 0 + ], + "mon_450_hippowdon": [ + 0 + ], + "mon_451_skorupi": [ + 0 + ], + "mon_452_drapion": [ + 0 + ], + "mon_453_croagunk": [ + 0 + ], + "mon_454_toxicroak": [ + 0 + ], + "mon_455_carnivine": [ + 0 + ], + "mon_456_finneon": [ + 0 + ], + "mon_457_lumineon": [ + 0 + ], + "mon_458_mantyke": [ + 0 + ], + "mon_459_snover": [ + 0 + ], + "mon_460_abomasnow": [ + 0 + ], + "mon_461_weavile": [ + 0 + ], + "mon_462_magnezone": [ + 0 + ], + "mon_463_lickilicky": [ + 0 + ], + "mon_464_rhyperior": [ + 0 + ], + "mon_465_tangrowth": [ + 0 + ], + "mon_466_electivire": [ + 0 + ], + "mon_467_magmortar": [ + 0 + ], + "mon_468_togekiss": [ + 0 + ], + "mon_469_yanmega": [ + 0 + ], + "mon_470_leafeon": [ + 0 + ], + "mon_471_glaceon": [ + 0 + ], + "mon_472_gliscor": [ + 0 + ], + "mon_473_mamoswine": [ + 0 + ], + "mon_474_porygon_z": [ + 0 + ], + "mon_475_gallade": [ + 0 + ], + "mon_476_probopass": [ + 0 + ], + "mon_477_dusknoir": [ + 0 + ], + "mon_478_froslass": [ + 0 + ], + "mon_479_rotom": [ + 0 + ], + "mon_480_uxie": [ + 0 + ], + "mon_481_mesprit": [ + 0 + ], + "mon_482_azelf": [ + 0 + ], + "mon_483_dialga": [ + 0 + ], + "mon_484_palkia": [ + 0 + ], + "mon_485_heatran": [ + 0 + ], + "mon_486_regigigas": [ + 0 + ], + "mon_487_giratina": [ + 0 + ], + "mon_488_cresselia": [ + 0 + ], + "mon_489_phione": [ + 0 + ], + "mon_490_manaphy": [ + 0 + ], + "mon_491_darkrai": [ + 0 + ], + "mon_492_shaymin": [ + 0 + ], + "mon_493_arceus": [ + 0 + ], + "mon_494_egg": [ + 0 + ] + }, + "method_6": { + "mon_000_none": [ + 9, + 12, + 14, + 17, + 19, + 22, + 0 + ], + "mon_001_bulbasaur": [ + 0 + ], + "mon_002_ivysaur": [ + 0 + ], + "mon_003_venusaur": [ + 0 + ], + "mon_004_charmander": [ + 0 + ], + "mon_005_charmeleon": [ + 0 + ], + "mon_006_charizard": [ + 0 + ], + "mon_007_squirtle": [ + 0 + ], + "mon_008_wartortle": [ + 0 + ], + "mon_009_blastoise": [ + 0 + ], + "mon_010_caterpie": { + "GOLD": [ + 5, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_011_metapod": { + "GOLD": [ + 5, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_012_butterfree": { + "GOLD": [ + 5, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_013_weedle": { + "GOLD": [ + 0 + ], + "SILVER": [ + 5, + 0 + ] + }, + "mon_014_kakuna": { + "GOLD": [ + 0 + ], + "SILVER": [ + 5, + 0 + ] + }, + "mon_015_beedrill": { + "GOLD": [ + 0 + ], + "SILVER": [ + 5, + 0 + ] + }, + "mon_016_pidgey": [ + 0 + ], + "mon_017_pidgeotto": [ + 0 + ], + "mon_018_pidgeot": [ + 0 + ], + "mon_019_rattata": [ + 0 + ], + "mon_020_raticate": [ + 0 + ], + "mon_021_spearow": [ + 0 + ], + "mon_022_fearow": [ + 0 + ], + "mon_023_ekans": [ + 0 + ], + "mon_024_arbok": [ + 0 + ], + "mon_025_pikachu": [ + 0 + ], + "mon_026_raichu": [ + 0 + ], + "mon_027_sandshrew": [ + 0 + ], + "mon_028_sandslash": [ + 0 + ], + "mon_029_nidoran_f": [ + 0 + ], + "mon_030_nidorina": [ + 0 + ], + "mon_031_nidoqueen": [ + 0 + ], + "mon_032_nidoran_m": [ + 0 + ], + "mon_033_nidorino": [ + 0 + ], + "mon_034_nidoking": [ + 0 + ], + "mon_035_clefairy": [ + 0 + ], + "mon_036_clefable": [ + 0 + ], + "mon_037_vulpix": [ + 0 + ], + "mon_038_ninetales": [ + 0 + ], + "mon_039_jigglypuff": [ + 0 + ], + "mon_040_wigglytuff": [ + 0 + ], + "mon_041_zubat": [ + 0 + ], + "mon_042_golbat": [ + 0 + ], + "mon_043_oddish": [ + 0 + ], + "mon_044_gloom": [ + 0 + ], + "mon_045_vileplume": [ + 0 + ], + "mon_046_paras": [ + 0 + ], + "mon_047_parasect": [ + 0 + ], + "mon_048_venonat": [ + 0 + ], + "mon_049_venomoth": [ + 0 + ], + "mon_050_diglett": [ + 0 + ], + "mon_051_dugtrio": [ + 0 + ], + "mon_052_meowth": [ + 0 + ], + "mon_053_persian": [ + 0 + ], + "mon_054_psyduck": [ + 0 + ], + "mon_055_golduck": [ + 0 + ], + "mon_056_mankey": [ + 0 + ], + "mon_057_primeape": [ + 0 + ], + "mon_058_growlithe": [ + 0 + ], + "mon_059_arcanine": [ + 0 + ], + "mon_060_poliwag": [ + 0 + ], + "mon_061_poliwhirl": [ + 0 + ], + "mon_062_poliwrath": [ + 0 + ], + "mon_063_abra": [ + 0 + ], + "mon_064_kadabra": [ + 0 + ], + "mon_065_alakazam": [ + 0 + ], + "mon_066_machop": [ + 0 + ], + "mon_067_machoke": [ + 0 + ], + "mon_068_machamp": [ + 0 + ], + "mon_069_bellsprout": [ + 0 + ], + "mon_070_weepinbell": [ + 0 + ], + "mon_071_victreebel": [ + 0 + ], + "mon_072_tentacool": [ + 0 + ], + "mon_073_tentacruel": [ + 0 + ], + "mon_074_geodude": [ + 0 + ], + "mon_075_graveler": [ + 0 + ], + "mon_076_golem": [ + 0 + ], + "mon_077_ponyta": [ + 0 + ], + "mon_078_rapidash": [ + 0 + ], + "mon_079_slowpoke": [ + 0 + ], + "mon_080_slowbro": [ + 0 + ], + "mon_081_magnemite": [ + 0 + ], + "mon_082_magneton": [ + 0 + ], + "mon_083_farfetchd": [ + 0 + ], + "mon_084_doduo": [ + 0 + ], + "mon_085_dodrio": [ + 0 + ], + "mon_086_seel": [ + 0 + ], + "mon_087_dewgong": [ + 0 + ], + "mon_088_grimer": [ + 0 + ], + "mon_089_muk": [ + 0 + ], + "mon_090_shellder": [ + 0 + ], + "mon_091_cloyster": [ + 0 + ], + "mon_092_gastly": [ + 0 + ], + "mon_093_haunter": [ + 0 + ], + "mon_094_gengar": [ + 0 + ], + "mon_095_onix": [ + 0 + ], + "mon_096_drowzee": [ + 0 + ], + "mon_097_hypno": [ + 0 + ], + "mon_098_krabby": [ + 0 + ], + "mon_099_kingler": [ + 0 + ], + "mon_100_voltorb": [ + 0 + ], + "mon_101_electrode": [ + 0 + ], + "mon_102_exeggcute": [ + 6, + 0 + ], + "mon_103_exeggutor": [ + 0 + ], + "mon_104_cubone": [ + 0 + ], + "mon_105_marowak": [ + 0 + ], + "mon_106_hitmonlee": [ + 0 + ], + "mon_107_hitmonchan": [ + 0 + ], + "mon_108_lickitung": [ + 0 + ], + "mon_109_koffing": [ + 0 + ], + "mon_110_weezing": [ + 0 + ], + "mon_111_rhyhorn": [ + 0 + ], + "mon_112_rhydon": [ + 0 + ], + "mon_113_chansey": [ + 0 + ], + "mon_114_tangela": [ + 0 + ], + "mon_115_kangaskhan": [ + 0 + ], + "mon_116_horsea": [ + 0 + ], + "mon_117_seadra": [ + 0 + ], + "mon_118_goldeen": [ + 0 + ], + "mon_119_seaking": [ + 0 + ], + "mon_120_staryu": [ + 0 + ], + "mon_121_starmie": [ + 0 + ], + "mon_122_mr_mime": [ + 0 + ], + "mon_123_scyther": [ + 0 + ], + "mon_124_jynx": [ + 0 + ], + "mon_125_electabuzz": [ + 0 + ], + "mon_126_magmar": [ + 0 + ], + "mon_127_pinsir": [ + 0 + ], + "mon_128_tauros": [ + 0 + ], + "mon_129_magikarp": [ + 0 + ], + "mon_130_gyarados": [ + 0 + ], + "mon_131_lapras": [ + 0 + ], + "mon_132_ditto": [ + 0 + ], + "mon_133_eevee": [ + 0 + ], + "mon_134_vaporeon": [ + 0 + ], + "mon_135_jolteon": [ + 0 + ], + "mon_136_flareon": [ + 0 + ], + "mon_137_porygon": [ + 0 + ], + "mon_138_omanyte": [ + 0 + ], + "mon_139_omastar": [ + 0 + ], + "mon_140_kabuto": [ + 0 + ], + "mon_141_kabutops": [ + 0 + ], + "mon_142_aerodactyl": [ + 0 + ], + "mon_143_snorlax": [ + 0 + ], + "mon_144_articuno": [ + 0 + ], + "mon_145_zapdos": [ + 0 + ], + "mon_146_moltres": [ + 0 + ], + "mon_147_dratini": [ + 0 + ], + "mon_148_dragonair": [ + 0 + ], + "mon_149_dragonite": [ + 0 + ], + "mon_150_mewtwo": [ + 0 + ], + "mon_151_mew": [ + 0 + ], + "mon_152_chikorita": [ + 0 + ], + "mon_153_bayleef": [ + 0 + ], + "mon_154_meganium": [ + 0 + ], + "mon_155_cyndaquil": [ + 0 + ], + "mon_156_quilava": [ + 0 + ], + "mon_157_typhlosion": [ + 0 + ], + "mon_158_totodile": [ + 0 + ], + "mon_159_croconaw": [ + 0 + ], + "mon_160_feraligatr": [ + 0 + ], + "mon_161_sentret": [ + 0 + ], + "mon_162_furret": [ + 0 + ], + "mon_163_hoothoot": [ + 5, + 6, + 24, + 0 + ], + "mon_164_noctowl": [ + 5, + 24, + 0 + ], + "mon_165_ledyba": { + "GOLD": [ + 0 + ], + "SILVER": [ + 6, + 24, + 0 + ] + }, + "mon_166_ledian": { + "GOLD": [ + 0 + ], + "SILVER": [ + 24, + 0 + ] + }, + "mon_167_spinarak": { + "GOLD": [ + 6, + 24, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_168_ariados": { + "GOLD": [ + 24, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_169_crobat": [ + 0 + ], + "mon_170_chinchou": [ + 0 + ], + "mon_171_lanturn": [ + 0 + ], + "mon_172_pichu": [ + 0 + ], + "mon_173_cleffa": [ + 0 + ], + "mon_174_igglybuff": [ + 0 + ], + "mon_175_togepi": [ + 0 + ], + "mon_176_togetic": [ + 0 + ], + "mon_177_natu": [ + 16, + 0 + ], + "mon_178_xatu": [ + 0 + ], + "mon_179_mareep": [ + 0 + ], + "mon_180_flaaffy": [ + 0 + ], + "mon_181_ampharos": [ + 0 + ], + "mon_182_bellossom": [ + 0 + ], + "mon_183_marill": [ + 0 + ], + "mon_184_azumarill": [ + 0 + ], + "mon_185_sudowoodo": [ + 0 + ], + "mon_186_politoed": [ + 0 + ], + "mon_187_hoppip": [ + 0 + ], + "mon_188_skiploom": [ + 0 + ], + "mon_189_jumpluff": [ + 0 + ], + "mon_190_aipom": [ + 16, + 0 + ], + "mon_191_sunkern": [ + 0 + ], + "mon_192_sunflora": [ + 0 + ], + "mon_193_yanma": [ + 0 + ], + "mon_194_wooper": [ + 0 + ], + "mon_195_quagsire": [ + 0 + ], + "mon_196_espeon": [ + 0 + ], + "mon_197_umbreon": [ + 0 + ], + "mon_198_murkrow": [ + 0 + ], + "mon_199_slowking": [ + 0 + ], + "mon_200_misdreavus": [ + 0 + ], + "mon_201_unown": [ + 0 + ], + "mon_202_wobbuffet": [ + 0 + ], + "mon_203_girafarig": [ + 0 + ], + "mon_204_pineco": [ + 5, + 6, + 0 + ], + "mon_205_forretress": [ + 0 + ], + "mon_206_dunsparce": [ + 0 + ], + "mon_207_gligar": [ + 0 + ], + "mon_208_steelix": [ + 0 + ], + "mon_209_snubbull": [ + 0 + ], + "mon_210_granbull": [ + 0 + ], + "mon_211_qwilfish": [ + 0 + ], + "mon_212_scizor": [ + 0 + ], + "mon_213_shuckle": [ + 0 + ], + "mon_214_heracross": [ + 16, + 0 + ], + "mon_215_sneasel": [ + 0 + ], + "mon_216_teddiursa": [ + 0 + ], + "mon_217_ursaring": [ + 0 + ], + "mon_218_slugma": [ + 0 + ], + "mon_219_magcargo": [ + 0 + ], + "mon_220_swinub": [ + 0 + ], + "mon_221_piloswine": [ + 0 + ], + "mon_222_corsola": [ + 0 + ], + "mon_223_remoraid": [ + 0 + ], + "mon_224_octillery": [ + 0 + ], + "mon_225_delibird": [ + 0 + ], + "mon_226_mantine": [ + 0 + ], + "mon_227_skarmory": [ + 0 + ], + "mon_228_houndour": [ + 0 + ], + "mon_229_houndoom": [ + 0 + ], + "mon_230_kingdra": [ + 0 + ], + "mon_231_phanpy": [ + 0 + ], + "mon_232_donphan": [ + 0 + ], + "mon_233_porygon2": [ + 0 + ], + "mon_234_stantler": [ + 0 + ], + "mon_235_smeargle": [ + 0 + ], + "mon_236_tyrogue": [ + 0 + ], + "mon_237_hitmontop": [ + 0 + ], + "mon_238_smoochum": [ + 0 + ], + "mon_239_elekid": [ + 0 + ], + "mon_240_magby": [ + 0 + ], + "mon_241_miltank": [ + 0 + ], + "mon_242_blissey": [ + 0 + ], + "mon_243_raikou": [ + 0 + ], + "mon_244_entei": [ + 0 + ], + "mon_245_suicune": [ + 0 + ], + "mon_246_larvitar": [ + 0 + ], + "mon_247_pupitar": [ + 0 + ], + "mon_248_tyranitar": [ + 0 + ], + "mon_249_lugia": [ + 0 + ], + "mon_250_ho_oh": [ + 0 + ], + "mon_251_celebi": [ + 0 + ], + "mon_252_treecko": [ + 0 + ], + "mon_253_grovyle": [ + 0 + ], + "mon_254_sceptile": [ + 0 + ], + "mon_255_torchic": [ + 0 + ], + "mon_256_combusken": [ + 0 + ], + "mon_257_blaziken": [ + 0 + ], + "mon_258_mudkip": [ + 0 + ], + "mon_259_marshtomp": [ + 0 + ], + "mon_260_swampert": [ + 0 + ], + "mon_261_poochyena": [ + 0 + ], + "mon_262_mightyena": [ + 0 + ], + "mon_263_zigzagoon": [ + 1, + 7, + 8, + 0 + ], + "mon_264_linoone": [ + 2, + 0 + ], + "mon_265_wurmple": [ + 0 + ], + "mon_266_silcoon": [ + 0 + ], + "mon_267_beautifly": [ + 0 + ], + "mon_268_cascoon": [ + 0 + ], + "mon_269_dustox": [ + 0 + ], + "mon_270_lotad": [ + 0 + ], + "mon_271_lombre": [ + 0 + ], + "mon_272_ludicolo": [ + 0 + ], + "mon_273_seedot": [ + 24, + 0 + ], + "mon_274_nuzleaf": [ + 0 + ], + "mon_275_shiftry": [ + 0 + ], + "mon_276_taillow": [ + 0 + ], + "mon_277_swellow": [ + 0 + ], + "mon_278_wingull": [ + 0 + ], + "mon_279_pelipper": [ + 0 + ], + "mon_280_ralts": [ + 0 + ], + "mon_281_kirlia": [ + 0 + ], + "mon_282_gardevoir": [ + 0 + ], + "mon_283_surskit": [ + 0 + ], + "mon_284_masquerain": [ + 0 + ], + "mon_285_shroomish": [ + 24, + 0 + ], + "mon_286_breloom": [ + 0 + ], + "mon_287_slakoth": [ + 0 + ], + "mon_288_vigoroth": [ + 0 + ], + "mon_289_slaking": [ + 0 + ], + "mon_290_nincada": [ + 0 + ], + "mon_291_ninjask": [ + 0 + ], + "mon_292_shedinja": [ + 0 + ], + "mon_293_whismur": [ + 2, + 0 + ], + "mon_294_loudred": [ + 0 + ], + "mon_295_exploud": [ + 0 + ], + "mon_296_makuhita": [ + 3, + 4, + 9, + 10, + 11, + 13, + 15, + 16, + 18, + 14, + 20, + 21, + 22, + 23, + 25, + 0 + ], + "mon_297_hariyama": [ + 0 + ], + "mon_298_azurill": [ + 0 + ], + "mon_299_nosepass": [ + 0 + ], + "mon_300_skitty": [ + 0 + ], + "mon_301_delcatty": [ + 0 + ], + "mon_302_sableye": [ + 0 + ], + "mon_303_mawile": [ + 0 + ], + "mon_304_aron": [ + 0 + ], + "mon_305_lairon": [ + 0 + ], + "mon_306_aggron": [ + 0 + ], + "mon_307_meditite": [ + 1, + 7, + 8, + 0 + ], + "mon_308_medicham": [ + 0 + ], + "mon_309_electrike": [ + 0 + ], + "mon_310_manectric": [ + 0 + ], + "mon_311_plusle": [ + 6, + 0 + ], + "mon_312_minun": [ + 6, + 0 + ], + "mon_313_volbeat": [ + 0 + ], + "mon_314_illumise": [ + 0 + ], + "mon_315_roselia": [ + 0 + ], + "mon_316_gulpin": [ + 0 + ], + "mon_317_swalot": [ + 0 + ], + "mon_318_carvanha": [ + 0 + ], + "mon_319_sharpedo": [ + 0 + ], + "mon_320_wailmer": [ + 0 + ], + "mon_321_wailord": [ + 0 + ], + "mon_322_numel": [ + 5, + 24, + 0 + ], + "mon_323_camerupt": [ + 0 + ], + "mon_324_torkoal": [ + 0 + ], + "mon_325_spoink": [ + 5, + 24, + 0 + ], + "mon_326_grumpig": [ + 0 + ], + "mon_327_spinda": [ + 1, + 7, + 8, + 0 + ], + "mon_328_trapinch": [ + 0 + ], + "mon_329_vibrava": [ + 0 + ], + "mon_330_flygon": [ + 0 + ], + "mon_331_cacnea": [ + 0 + ], + "mon_332_cacturne": [ + 0 + ], + "mon_333_swablu": [ + 0 + ], + "mon_334_altaria": [ + 0 + ], + "mon_335_zangoose": [ + 0 + ], + "mon_336_seviper": [ + 0 + ], + "mon_337_lunatone": [ + 0 + ], + "mon_338_solrock": [ + 0 + ], + "mon_339_barboach": [ + 0 + ], + "mon_340_whiscash": [ + 0 + ], + "mon_341_corphish": [ + 0 + ], + "mon_342_crawdaunt": [ + 0 + ], + "mon_343_baltoy": [ + 0 + ], + "mon_344_claydol": [ + 0 + ], + "mon_345_lileep": [ + 0 + ], + "mon_346_cradily": [ + 0 + ], + "mon_347_anorith": [ + 0 + ], + "mon_348_armaldo": [ + 0 + ], + "mon_349_feebas": [ + 0 + ], + "mon_350_milotic": [ + 0 + ], + "mon_351_castform": [ + 0 + ], + "mon_352_kecleon": [ + 0 + ], + "mon_353_shuppet": [ + 0 + ], + "mon_354_banette": [ + 0 + ], + "mon_355_duskull": [ + 0 + ], + "mon_356_dusclops": [ + 0 + ], + "mon_357_tropius": [ + 0 + ], + "mon_358_chimecho": [ + 0 + ], + "mon_359_absol": [ + 3, + 4, + 9, + 10, + 11, + 13, + 15, + 16, + 18, + 14, + 20, + 21, + 22, + 23, + 25, + 0 + ], + "mon_360_wynaut": [ + 0 + ], + "mon_361_snorunt": [ + 0 + ], + "mon_362_glalie": [ + 0 + ], + "mon_363_spheal": [ + 0 + ], + "mon_364_sealeo": [ + 0 + ], + "mon_365_walrein": [ + 0 + ], + "mon_366_clamperl": [ + 0 + ], + "mon_367_huntail": [ + 0 + ], + "mon_368_gorebyss": [ + 0 + ], + "mon_369_relicanth": [ + 0 + ], + "mon_370_luvdisc": [ + 0 + ], + "mon_371_bagon": [ + 0 + ], + "mon_372_shelgon": [ + 0 + ], + "mon_373_salamence": [ + 0 + ], + "mon_374_beldum": [ + 0 + ], + "mon_375_metang": [ + 0 + ], + "mon_376_metagross": [ + 0 + ], + "mon_377_regirock": [ + 0 + ], + "mon_378_regice": [ + 0 + ], + "mon_379_registeel": [ + 0 + ], + "mon_380_latias": [ + 0 + ], + "mon_381_latios": [ + 0 + ], + "mon_382_kyogre": [ + 0 + ], + "mon_383_groudon": [ + 0 + ], + "mon_384_rayquaza": [ + 0 + ], + "mon_385_jirachi": [ + 0 + ], + "mon_386_deoxys": [ + 0 + ], + "mon_387_turtwig": [ + 0 + ], + "mon_388_grotle": [ + 0 + ], + "mon_389_torterra": [ + 0 + ], + "mon_390_chimchar": [ + 0 + ], + "mon_391_monferno": [ + 0 + ], + "mon_392_infernape": [ + 0 + ], + "mon_393_piplup": [ + 0 + ], + "mon_394_prinplup": [ + 0 + ], + "mon_395_empoleon": [ + 0 + ], + "mon_396_starly": [ + 0 + ], + "mon_397_staravia": [ + 0 + ], + "mon_398_staraptor": [ + 0 + ], + "mon_399_bidoof": [ + 2, + 0 + ], + "mon_400_bibarel": [ + 0 + ], + "mon_401_kricketot": [ + 0 + ], + "mon_402_kricketune": [ + 0 + ], + "mon_403_shinx": [ + 6, + 0 + ], + "mon_404_luxio": [ + 0 + ], + "mon_405_luxray": [ + 0 + ], + "mon_406_budew": [ + 5, + 24, + 0 + ], + "mon_407_roserade": [ + 0 + ], + "mon_408_cranidos": [ + 0 + ], + "mon_409_rampardos": [ + 0 + ], + "mon_410_shieldon": [ + 0 + ], + "mon_411_bastiodon": [ + 0 + ], + "mon_412_burmy": [ + 0 + ], + "mon_413_wormadam": [ + 0 + ], + "mon_414_mothim": [ + 0 + ], + "mon_415_combee": [ + 0 + ], + "mon_416_vespiquen": [ + 0 + ], + "mon_417_pachirisu": [ + 0 + ], + "mon_418_buizel": [ + 2, + 0 + ], + "mon_419_floatzel": [ + 0 + ], + "mon_420_cherubi": [ + 6, + 0 + ], + "mon_421_cherrim": [ + 0 + ], + "mon_422_shellos": [ + 0 + ], + "mon_423_gastrodon": [ + 0 + ], + "mon_424_ambipom": [ + 0 + ], + "mon_425_drifloon": [ + 0 + ], + "mon_426_drifblim": [ + 0 + ], + "mon_427_buneary": [ + 0 + ], + "mon_428_lopunny": [ + 0 + ], + "mon_429_mismagius": [ + 0 + ], + "mon_430_honchkrow": [ + 0 + ], + "mon_431_glameow": [ + 0 + ], + "mon_432_purugly": [ + 0 + ], + "mon_433_chingling": [ + 3, + 4, + 9, + 10, + 11, + 13, + 15, + 16, + 18, + 14, + 20, + 21, + 22, + 23, + 25, + 0 + ], + "mon_434_stunky": [ + 0 + ], + "mon_435_skuntank": [ + 0 + ], + "mon_436_bronzor": [ + 3, + 4, + 9, + 10, + 11, + 13, + 15, + 16, + 18, + 14, + 20, + 21, + 22, + 23, + 25, + 0 + ], + "mon_437_bronzong": [ + 0 + ], + "mon_438_bonsly": [ + 0 + ], + "mon_439_mime_jr": [ + 0 + ], + "mon_440_happiny": [ + 0 + ], + "mon_441_chatot": [ + 1, + 7, + 8, + 0 + ], + "mon_442_spiritomb": [ + 0 + ], + "mon_443_gible": [ + 0 + ], + "mon_444_gabite": [ + 0 + ], + "mon_445_garchomp": [ + 0 + ], + "mon_446_munchlax": [ + 0 + ], + "mon_447_riolu": [ + 0 + ], + "mon_448_lucario": [ + 0 + ], + "mon_449_hippopotas": [ + 0 + ], + "mon_450_hippowdon": [ + 0 + ], + "mon_451_skorupi": [ + 0 + ], + "mon_452_drapion": [ + 0 + ], + "mon_453_croagunk": [ + 0 + ], + "mon_454_toxicroak": [ + 0 + ], + "mon_455_carnivine": [ + 5, + 24, + 0 + ], + "mon_456_finneon": [ + 0 + ], + "mon_457_lumineon": [ + 0 + ], + "mon_458_mantyke": [ + 0 + ], + "mon_459_snover": [ + 0 + ], + "mon_460_abomasnow": [ + 0 + ], + "mon_461_weavile": [ + 0 + ], + "mon_462_magnezone": [ + 0 + ], + "mon_463_lickilicky": [ + 0 + ], + "mon_464_rhyperior": [ + 0 + ], + "mon_465_tangrowth": [ + 0 + ], + "mon_466_electivire": [ + 0 + ], + "mon_467_magmortar": [ + 0 + ], + "mon_468_togekiss": [ + 0 + ], + "mon_469_yanmega": [ + 0 + ], + "mon_470_leafeon": [ + 0 + ], + "mon_471_glaceon": [ + 0 + ], + "mon_472_gliscor": [ + 0 + ], + "mon_473_mamoswine": [ + 0 + ], + "mon_474_porygon_z": [ + 0 + ], + "mon_475_gallade": [ + 0 + ], + "mon_476_probopass": [ + 0 + ], + "mon_477_dusknoir": [ + 0 + ], + "mon_478_froslass": [ + 0 + ], + "mon_479_rotom": [ + 0 + ], + "mon_480_uxie": [ + 0 + ], + "mon_481_mesprit": [ + 0 + ], + "mon_482_azelf": [ + 0 + ], + "mon_483_dialga": [ + 0 + ], + "mon_484_palkia": [ + 0 + ], + "mon_485_heatran": [ + 0 + ], + "mon_486_regigigas": [ + 0 + ], + "mon_487_giratina": [ + 0 + ], + "mon_488_cresselia": [ + 0 + ], + "mon_489_phione": [ + 0 + ], + "mon_490_manaphy": [ + 0 + ], + "mon_491_darkrai": [ + 0 + ], + "mon_492_shaymin": [ + 0 + ], + "mon_493_arceus": [ + 0 + ], + "mon_494_egg": [ + 0 + ] + }, + "method_7": { + "mon_000_none": [ + 1, + 3, + 6, + 13, + 16, + 17, + 18, + 19, + 22, + 24, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 0 + ], + "mon_001_bulbasaur": [ + 0 + ], + "mon_002_ivysaur": [ + 0 + ], + "mon_003_venusaur": [ + 0 + ], + "mon_004_charmander": [ + 0 + ], + "mon_005_charmeleon": [ + 0 + ], + "mon_006_charizard": [ + 0 + ], + "mon_007_squirtle": [ + 0 + ], + "mon_008_wartortle": [ + 0 + ], + "mon_009_blastoise": [ + 0 + ], + "mon_010_caterpie": [ + 0 + ], + "mon_011_metapod": { + "GOLD": [ + 27, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_012_butterfree": { + "GOLD": [ + 27, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_013_weedle": [ + 0 + ], + "mon_014_kakuna": { + "GOLD": [ + 0 + ], + "SILVER": [ + 27, + 0 + ] + }, + "mon_015_beedrill": { + "GOLD": [ + 0 + ], + "SILVER": [ + 27, + 0 + ] + }, + "mon_016_pidgey": [ + 0 + ], + "mon_017_pidgeotto": [ + 0 + ], + "mon_018_pidgeot": [ + 0 + ], + "mon_019_rattata": [ + 0 + ], + "mon_020_raticate": [ + 0 + ], + "mon_021_spearow": [ + 8, + 20, + 23, + 25, + 26, + 35, + 36, + 49, + 53, + 57, + 66, + 68, + 0 + ], + "mon_022_fearow": [ + 0 + ], + "mon_023_ekans": [ + 0 + ], + "mon_024_arbok": [ + 0 + ], + "mon_025_pikachu": [ + 0 + ], + "mon_026_raichu": [ + 0 + ], + "mon_027_sandshrew": [ + 0 + ], + "mon_028_sandslash": [ + 0 + ], + "mon_029_nidoran_f": [ + 0 + ], + "mon_030_nidorina": [ + 0 + ], + "mon_031_nidoqueen": [ + 0 + ], + "mon_032_nidoran_m": [ + 0 + ], + "mon_033_nidorino": [ + 0 + ], + "mon_034_nidoking": [ + 0 + ], + "mon_035_clefairy": [ + 0 + ], + "mon_036_clefable": [ + 0 + ], + "mon_037_vulpix": [ + 0 + ], + "mon_038_ninetales": [ + 0 + ], + "mon_039_jigglypuff": [ + 0 + ], + "mon_040_wigglytuff": [ + 0 + ], + "mon_041_zubat": [ + 0 + ], + "mon_042_golbat": [ + 0 + ], + "mon_043_oddish": [ + 0 + ], + "mon_044_gloom": [ + 0 + ], + "mon_045_vileplume": [ + 0 + ], + "mon_046_paras": [ + 0 + ], + "mon_047_parasect": [ + 0 + ], + "mon_048_venonat": [ + 21, + 22, + 0 + ], + "mon_049_venomoth": [ + 0 + ], + "mon_050_diglett": [ + 0 + ], + "mon_051_dugtrio": [ + 0 + ], + "mon_052_meowth": [ + 0 + ], + "mon_053_persian": [ + 0 + ], + "mon_054_psyduck": [ + 0 + ], + "mon_055_golduck": [ + 0 + ], + "mon_056_mankey": [ + 0 + ], + "mon_057_primeape": [ + 0 + ], + "mon_058_growlithe": [ + 0 + ], + "mon_059_arcanine": [ + 0 + ], + "mon_060_poliwag": [ + 0 + ], + "mon_061_poliwhirl": [ + 0 + ], + "mon_062_poliwrath": [ + 0 + ], + "mon_063_abra": [ + 0 + ], + "mon_064_kadabra": [ + 0 + ], + "mon_065_alakazam": [ + 0 + ], + "mon_066_machop": [ + 0 + ], + "mon_067_machoke": [ + 0 + ], + "mon_068_machamp": [ + 0 + ], + "mon_069_bellsprout": [ + 0 + ], + "mon_070_weepinbell": [ + 0 + ], + "mon_071_victreebel": [ + 0 + ], + "mon_072_tentacool": [ + 0 + ], + "mon_073_tentacruel": [ + 0 + ], + "mon_074_geodude": [ + 0 + ], + "mon_075_graveler": [ + 0 + ], + "mon_076_golem": [ + 0 + ], + "mon_077_ponyta": [ + 0 + ], + "mon_078_rapidash": [ + 0 + ], + "mon_079_slowpoke": [ + 0 + ], + "mon_080_slowbro": [ + 0 + ], + "mon_081_magnemite": [ + 0 + ], + "mon_082_magneton": [ + 0 + ], + "mon_083_farfetchd": [ + 0 + ], + "mon_084_doduo": [ + 0 + ], + "mon_085_dodrio": [ + 0 + ], + "mon_086_seel": [ + 0 + ], + "mon_087_dewgong": [ + 0 + ], + "mon_088_grimer": [ + 0 + ], + "mon_089_muk": [ + 0 + ], + "mon_090_shellder": [ + 0 + ], + "mon_091_cloyster": [ + 0 + ], + "mon_092_gastly": [ + 0 + ], + "mon_093_haunter": [ + 0 + ], + "mon_094_gengar": [ + 0 + ], + "mon_095_onix": [ + 0 + ], + "mon_096_drowzee": [ + 0 + ], + "mon_097_hypno": [ + 0 + ], + "mon_098_krabby": [ + 0 + ], + "mon_099_kingler": [ + 0 + ], + "mon_100_voltorb": [ + 0 + ], + "mon_101_electrode": [ + 0 + ], + "mon_102_exeggcute": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 21, + 22, + 27, + 39, + 40, + 41, + 67, + 0 + ], + "mon_103_exeggutor": [ + 0 + ], + "mon_104_cubone": [ + 0 + ], + "mon_105_marowak": [ + 0 + ], + "mon_106_hitmonlee": [ + 0 + ], + "mon_107_hitmonchan": [ + 0 + ], + "mon_108_lickitung": [ + 0 + ], + "mon_109_koffing": [ + 0 + ], + "mon_110_weezing": [ + 0 + ], + "mon_111_rhyhorn": [ + 0 + ], + "mon_112_rhydon": [ + 0 + ], + "mon_113_chansey": [ + 0 + ], + "mon_114_tangela": [ + 29, + 37, + 54, + 55, + 56, + 59, + 60, + 0 + ], + "mon_115_kangaskhan": [ + 0 + ], + "mon_116_horsea": [ + 0 + ], + "mon_117_seadra": [ + 0 + ], + "mon_118_goldeen": [ + 0 + ], + "mon_119_seaking": [ + 0 + ], + "mon_120_staryu": [ + 0 + ], + "mon_121_starmie": [ + 0 + ], + "mon_122_mr_mime": [ + 0 + ], + "mon_123_scyther": [ + 0 + ], + "mon_124_jynx": [ + 0 + ], + "mon_125_electabuzz": [ + 0 + ], + "mon_126_magmar": [ + 0 + ], + "mon_127_pinsir": [ + 0 + ], + "mon_128_tauros": [ + 0 + ], + "mon_129_magikarp": [ + 0 + ], + "mon_130_gyarados": [ + 0 + ], + "mon_131_lapras": [ + 0 + ], + "mon_132_ditto": [ + 0 + ], + "mon_133_eevee": [ + 0 + ], + "mon_134_vaporeon": [ + 0 + ], + "mon_135_jolteon": [ + 0 + ], + "mon_136_flareon": [ + 0 + ], + "mon_137_porygon": [ + 0 + ], + "mon_138_omanyte": [ + 0 + ], + "mon_139_omastar": [ + 0 + ], + "mon_140_kabuto": [ + 0 + ], + "mon_141_kabutops": [ + 0 + ], + "mon_142_aerodactyl": [ + 0 + ], + "mon_143_snorlax": [ + 0 + ], + "mon_144_articuno": [ + 0 + ], + "mon_145_zapdos": [ + 0 + ], + "mon_146_moltres": [ + 0 + ], + "mon_147_dratini": [ + 0 + ], + "mon_148_dragonair": [ + 0 + ], + "mon_149_dragonite": [ + 0 + ], + "mon_150_mewtwo": [ + 0 + ], + "mon_151_mew": [ + 0 + ], + "mon_152_chikorita": [ + 0 + ], + "mon_153_bayleef": [ + 0 + ], + "mon_154_meganium": [ + 0 + ], + "mon_155_cyndaquil": [ + 0 + ], + "mon_156_quilava": [ + 0 + ], + "mon_157_typhlosion": [ + 0 + ], + "mon_158_totodile": [ + 0 + ], + "mon_159_croconaw": [ + 0 + ], + "mon_160_feraligatr": [ + 0 + ], + "mon_161_sentret": [ + 0 + ], + "mon_162_furret": [ + 0 + ], + "mon_163_hoothoot": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 21, + 22, + 27, + 29, + 32, + 33, + 34, + 37, + 39, + 40, + 41, + 43, + 44, + 45, + 46, + 47, + 48, + 50, + 54, + 55, + 56, + 59, + 60, + 61, + 63, + 64, + 65, + 67, + 0 + ], + "mon_164_noctowl": [ + 0 + ], + "mon_165_ledyba": { + "GOLD": [ + 0 + ], + "SILVER": [ + 1, + 2, + 3, + 4, + 5, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 27, + 29, + 32, + 33, + 37, + 39, + 40, + 41, + 43, + 44, + 54, + 55, + 56, + 59, + 60, + 61, + 64, + 67, + 0 + ] + }, + "mon_166_ledian": [ + 0 + ], + "mon_167_spinarak": { + "GOLD": [ + 1, + 2, + 3, + 4, + 5, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 27, + 29, + 32, + 33, + 37, + 39, + 40, + 41, + 43, + 44, + 54, + 55, + 56, + 59, + 60, + 61, + 64, + 67, + 0 + ], + "SILVER": [ + 0 + ] + }, + "mon_168_ariados": [ + 0 + ], + "mon_169_crobat": [ + 0 + ], + "mon_170_chinchou": [ + 0 + ], + "mon_171_lanturn": [ + 0 + ], + "mon_172_pichu": [ + 0 + ], + "mon_173_cleffa": [ + 0 + ], + "mon_174_igglybuff": [ + 0 + ], + "mon_175_togepi": [ + 0 + ], + "mon_176_togetic": [ + 0 + ], + "mon_177_natu": [ + 28, + 42, + 0 + ], + "mon_178_xatu": [ + 0 + ], + "mon_179_mareep": [ + 0 + ], + "mon_180_flaaffy": [ + 0 + ], + "mon_181_ampharos": [ + 0 + ], + "mon_182_bellossom": [ + 0 + ], + "mon_183_marill": [ + 0 + ], + "mon_184_azumarill": [ + 0 + ], + "mon_185_sudowoodo": [ + 0 + ], + "mon_186_politoed": [ + 0 + ], + "mon_187_hoppip": [ + 0 + ], + "mon_188_skiploom": [ + 0 + ], + "mon_189_jumpluff": [ + 0 + ], + "mon_190_aipom": [ + 8, + 20, + 23, + 25, + 26, + 28, + 42, + 66, + 0 + ], + "mon_191_sunkern": [ + 0 + ], + "mon_192_sunflora": [ + 0 + ], + "mon_193_yanma": [ + 0 + ], + "mon_194_wooper": [ + 0 + ], + "mon_195_quagsire": [ + 0 + ], + "mon_196_espeon": [ + 0 + ], + "mon_197_umbreon": [ + 0 + ], + "mon_198_murkrow": [ + 0 + ], + "mon_199_slowking": [ + 0 + ], + "mon_200_misdreavus": [ + 0 + ], + "mon_201_unown": [ + 0 + ], + "mon_202_wobbuffet": [ + 0 + ], + "mon_203_girafarig": [ + 0 + ], + "mon_204_pineco": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 21, + 22, + 27, + 32, + 33, + 34, + 39, + 40, + 41, + 43, + 44, + 45, + 46, + 47, + 48, + 50, + 61, + 63, + 64, + 65, + 67, + 0 + ], + "mon_205_forretress": [ + 0 + ], + "mon_206_dunsparce": [ + 0 + ], + "mon_207_gligar": [ + 0 + ], + "mon_208_steelix": [ + 0 + ], + "mon_209_snubbull": [ + 0 + ], + "mon_210_granbull": [ + 0 + ], + "mon_211_qwilfish": [ + 0 + ], + "mon_212_scizor": [ + 0 + ], + "mon_213_shuckle": [ + 0 + ], + "mon_214_heracross": [ + 8, + 20, + 23, + 25, + 26, + 27, + 28, + 35, + 36, + 42, + 49, + 53, + 57, + 66, + 68, + 0 + ], + "mon_215_sneasel": [ + 0 + ], + "mon_216_teddiursa": [ + 0 + ], + "mon_217_ursaring": [ + 0 + ], + "mon_218_slugma": [ + 0 + ], + "mon_219_magcargo": [ + 0 + ], + "mon_220_swinub": [ + 0 + ], + "mon_221_piloswine": [ + 0 + ], + "mon_222_corsola": [ + 0 + ], + "mon_223_remoraid": [ + 0 + ], + "mon_224_octillery": [ + 0 + ], + "mon_225_delibird": [ + 0 + ], + "mon_226_mantine": [ + 0 + ], + "mon_227_skarmory": [ + 0 + ], + "mon_228_houndour": [ + 0 + ], + "mon_229_houndoom": [ + 0 + ], + "mon_230_kingdra": [ + 0 + ], + "mon_231_phanpy": [ + 0 + ], + "mon_232_donphan": [ + 0 + ], + "mon_233_porygon2": [ + 0 + ], + "mon_234_stantler": [ + 0 + ], + "mon_235_smeargle": [ + 0 + ], + "mon_236_tyrogue": [ + 0 + ], + "mon_237_hitmontop": [ + 0 + ], + "mon_238_smoochum": [ + 0 + ], + "mon_239_elekid": [ + 0 + ], + "mon_240_magby": [ + 0 + ], + "mon_241_miltank": [ + 0 + ], + "mon_242_blissey": [ + 0 + ], + "mon_243_raikou": [ + 0 + ], + "mon_244_entei": [ + 0 + ], + "mon_245_suicune": [ + 0 + ], + "mon_246_larvitar": [ + 0 + ], + "mon_247_pupitar": [ + 0 + ], + "mon_248_tyranitar": [ + 0 + ], + "mon_249_lugia": [ + 0 + ], + "mon_250_ho_oh": [ + 0 + ], + "mon_251_celebi": [ + 0 + ], + "mon_252_treecko": [ + 0 + ], + "mon_253_grovyle": [ + 0 + ], + "mon_254_sceptile": [ + 0 + ], + "mon_255_torchic": [ + 0 + ], + "mon_256_combusken": [ + 0 + ], + "mon_257_blaziken": [ + 0 + ], + "mon_258_mudkip": [ + 0 + ], + "mon_259_marshtomp": [ + 0 + ], + "mon_260_swampert": [ + 0 + ], + "mon_261_poochyena": [ + 0 + ], + "mon_262_mightyena": [ + 0 + ], + "mon_263_zigzagoon": [ + 0 + ], + "mon_264_linoone": [ + 4, + 5, + 7, + 9, + 10, + 20, + 21, + 23, + 25, + 27, + 28, + 40, + 41, + 42, + 46, + 48, + 51, + 52, + 54, + 60, + 61, + 62, + 63, + 0 + ], + "mon_265_wurmple": [ + 29, + 32, + 33, + 37, + 43, + 44, + 45, + 46, + 54, + 55, + 56, + 59, + 60, + 61, + 64, + 65, + 0 + ], + "mon_266_silcoon": [ + 0 + ], + "mon_267_beautifly": [ + 0 + ], + "mon_268_cascoon": [ + 0 + ], + "mon_269_dustox": [ + 0 + ], + "mon_270_lotad": [ + 0 + ], + "mon_271_lombre": [ + 0 + ], + "mon_272_ludicolo": [ + 0 + ], + "mon_273_seedot": [ + 0 + ], + "mon_274_nuzleaf": [ + 0 + ], + "mon_275_shiftry": [ + 0 + ], + "mon_276_taillow": [ + 3, + 0 + ], + "mon_277_swellow": [ + 0 + ], + "mon_278_wingull": [ + 0 + ], + "mon_279_pelipper": [ + 0 + ], + "mon_280_ralts": [ + 0 + ], + "mon_281_kirlia": [ + 0 + ], + "mon_282_gardevoir": [ + 0 + ], + "mon_283_surskit": [ + 0 + ], + "mon_284_masquerain": [ + 0 + ], + "mon_285_shroomish": [ + 0 + ], + "mon_286_breloom": [ + 0 + ], + "mon_287_slakoth": [ + 63, + 0 + ], + "mon_288_vigoroth": [ + 0 + ], + "mon_289_slaking": [ + 0 + ], + "mon_290_nincada": [ + 0 + ], + "mon_291_ninjask": [ + 0 + ], + "mon_292_shedinja": [ + 0 + ], + "mon_293_whismur": [ + 4, + 5, + 7, + 9, + 10, + 20, + 21, + 23, + 25, + 27, + 28, + 40, + 41, + 42, + 46, + 48, + 51, + 52, + 54, + 60, + 61, + 62, + 63, + 0 + ], + "mon_294_loudred": [ + 0 + ], + "mon_295_exploud": [ + 0 + ], + "mon_296_makuhita": [ + 0 + ], + "mon_297_hariyama": [ + 0 + ], + "mon_298_azurill": [ + 0 + ], + "mon_299_nosepass": [ + 0 + ], + "mon_300_skitty": [ + 0 + ], + "mon_301_delcatty": [ + 0 + ], + "mon_302_sableye": [ + 0 + ], + "mon_303_mawile": [ + 0 + ], + "mon_304_aron": [ + 0 + ], + "mon_305_lairon": [ + 0 + ], + "mon_306_aggron": [ + 0 + ], + "mon_307_meditite": [ + 0 + ], + "mon_308_medicham": [ + 0 + ], + "mon_309_electrike": [ + 0 + ], + "mon_310_manectric": [ + 0 + ], + "mon_311_plusle": [ + 2, + 8, + 11, + 12, + 14, + 15, + 26, + 39, + 43, + 44, + 45, + 47, + 49, + 50, + 53, + 55, + 56, + 57, + 58, + 59, + 64, + 0 + ], + "mon_312_minun": [ + 2, + 8, + 11, + 12, + 14, + 15, + 26, + 39, + 43, + 44, + 45, + 47, + 49, + 50, + 53, + 55, + 56, + 57, + 58, + 59, + 64, + 0 + ], + "mon_313_volbeat": [ + 0 + ], + "mon_314_illumise": [ + 0 + ], + "mon_315_roselia": [ + 0 + ], + "mon_316_gulpin": [ + 0 + ], + "mon_317_swalot": [ + 0 + ], + "mon_318_carvanha": [ + 0 + ], + "mon_319_sharpedo": [ + 0 + ], + "mon_320_wailmer": [ + 0 + ], + "mon_321_wailord": [ + 0 + ], + "mon_322_numel": [ + 0 + ], + "mon_323_camerupt": [ + 0 + ], + "mon_324_torkoal": [ + 0 + ], + "mon_325_spoink": [ + 0 + ], + "mon_326_grumpig": [ + 0 + ], + "mon_327_spinda": [ + 0 + ], + "mon_328_trapinch": [ + 0 + ], + "mon_329_vibrava": [ + 0 + ], + "mon_330_flygon": [ + 0 + ], + "mon_331_cacnea": [ + 0 + ], + "mon_332_cacturne": [ + 0 + ], + "mon_333_swablu": [ + 0 + ], + "mon_334_altaria": [ + 0 + ], + "mon_335_zangoose": [ + 0 + ], + "mon_336_seviper": [ + 0 + ], + "mon_337_lunatone": [ + 0 + ], + "mon_338_solrock": [ + 0 + ], + "mon_339_barboach": [ + 0 + ], + "mon_340_whiscash": [ + 0 + ], + "mon_341_corphish": [ + 0 + ], + "mon_342_crawdaunt": [ + 0 + ], + "mon_343_baltoy": [ + 0 + ], + "mon_344_claydol": [ + 0 + ], + "mon_345_lileep": [ + 0 + ], + "mon_346_cradily": [ + 0 + ], + "mon_347_anorith": [ + 0 + ], + "mon_348_armaldo": [ + 0 + ], + "mon_349_feebas": [ + 0 + ], + "mon_350_milotic": [ + 0 + ], + "mon_351_castform": [ + 0 + ], + "mon_352_kecleon": [ + 0 + ], + "mon_353_shuppet": [ + 0 + ], + "mon_354_banette": [ + 0 + ], + "mon_355_duskull": [ + 0 + ], + "mon_356_dusclops": [ + 0 + ], + "mon_357_tropius": [ + 0 + ], + "mon_358_chimecho": [ + 0 + ], + "mon_359_absol": [ + 0 + ], + "mon_360_wynaut": [ + 0 + ], + "mon_361_snorunt": [ + 0 + ], + "mon_362_glalie": [ + 0 + ], + "mon_363_spheal": [ + 0 + ], + "mon_364_sealeo": [ + 0 + ], + "mon_365_walrein": [ + 0 + ], + "mon_366_clamperl": [ + 0 + ], + "mon_367_huntail": [ + 0 + ], + "mon_368_gorebyss": [ + 0 + ], + "mon_369_relicanth": [ + 0 + ], + "mon_370_luvdisc": [ + 0 + ], + "mon_371_bagon": [ + 0 + ], + "mon_372_shelgon": [ + 0 + ], + "mon_373_salamence": [ + 0 + ], + "mon_374_beldum": [ + 0 + ], + "mon_375_metang": [ + 0 + ], + "mon_376_metagross": [ + 0 + ], + "mon_377_regirock": [ + 0 + ], + "mon_378_regice": [ + 0 + ], + "mon_379_registeel": [ + 0 + ], + "mon_380_latias": [ + 0 + ], + "mon_381_latios": [ + 0 + ], + "mon_382_kyogre": [ + 0 + ], + "mon_383_groudon": [ + 0 + ], + "mon_384_rayquaza": [ + 0 + ], + "mon_385_jirachi": [ + 0 + ], + "mon_386_deoxys": [ + 0 + ], + "mon_387_turtwig": [ + 0 + ], + "mon_388_grotle": [ + 0 + ], + "mon_389_torterra": [ + 0 + ], + "mon_390_chimchar": [ + 0 + ], + "mon_391_monferno": [ + 0 + ], + "mon_392_infernape": [ + 0 + ], + "mon_393_piplup": [ + 0 + ], + "mon_394_prinplup": [ + 0 + ], + "mon_395_empoleon": [ + 0 + ], + "mon_396_starly": [ + 65, + 0 + ], + "mon_397_staravia": [ + 0 + ], + "mon_398_staraptor": [ + 0 + ], + "mon_399_bidoof": [ + 4, + 5, + 7, + 9, + 10, + 20, + 21, + 23, + 25, + 27, + 28, + 40, + 41, + 42, + 46, + 48, + 51, + 52, + 54, + 60, + 61, + 62, + 63, + 0 + ], + "mon_400_bibarel": [ + 0 + ], + "mon_401_kricketot": [ + 0 + ], + "mon_402_kricketune": [ + 0 + ], + "mon_403_shinx": [ + 2, + 8, + 11, + 12, + 14, + 15, + 26, + 39, + 43, + 44, + 45, + 47, + 49, + 50, + 53, + 55, + 56, + 57, + 58, + 59, + 64, + 0 + ], + "mon_404_luxio": [ + 0 + ], + "mon_405_luxray": [ + 0 + ], + "mon_406_budew": [ + 0 + ], + "mon_407_roserade": [ + 0 + ], + "mon_408_cranidos": [ + 0 + ], + "mon_409_rampardos": [ + 0 + ], + "mon_410_shieldon": [ + 0 + ], + "mon_411_bastiodon": [ + 0 + ], + "mon_412_burmy": [ + 14, + 0 + ], + "mon_413_wormadam": [ + 0 + ], + "mon_414_mothim": [ + 0 + ], + "mon_415_combee": [ + 34, + 35, + 36, + 47, + 48, + 49, + 50, + 53, + 57, + 63, + 68, + 0 + ], + "mon_416_vespiquen": [ + 0 + ], + "mon_417_pachirisu": [ + 0 + ], + "mon_418_buizel": [ + 4, + 5, + 7, + 9, + 10, + 20, + 21, + 23, + 25, + 27, + 28, + 40, + 41, + 42, + 46, + 48, + 51, + 52, + 54, + 60, + 61, + 62, + 63, + 0 + ], + "mon_419_floatzel": [ + 0 + ], + "mon_420_cherubi": [ + 0 + ], + "mon_421_cherrim": [ + 0 + ], + "mon_422_shellos": [ + 0 + ], + "mon_423_gastrodon": [ + 0 + ], + "mon_424_ambipom": [ + 0 + ], + "mon_425_drifloon": [ + 0 + ], + "mon_426_drifblim": [ + 0 + ], + "mon_427_buneary": [ + 0 + ], + "mon_428_lopunny": [ + 0 + ], + "mon_429_mismagius": [ + 0 + ], + "mon_430_honchkrow": [ + 0 + ], + "mon_431_glameow": [ + 0 + ], + "mon_432_purugly": [ + 0 + ], + "mon_433_chingling": [ + 0 + ], + "mon_434_stunky": [ + 0 + ], + "mon_435_skuntank": [ + 0 + ], + "mon_436_bronzor": [ + 0 + ], + "mon_437_bronzong": [ + 0 + ], + "mon_438_bonsly": [ + 0 + ], + "mon_439_mime_jr": [ + 0 + ], + "mon_440_happiny": [ + 0 + ], + "mon_441_chatot": [ + 0 + ], + "mon_442_spiritomb": [ + 0 + ], + "mon_443_gible": [ + 0 + ], + "mon_444_gabite": [ + 0 + ], + "mon_445_garchomp": [ + 0 + ], + "mon_446_munchlax": [ + 0 + ], + "mon_447_riolu": [ + 0 + ], + "mon_448_lucario": [ + 0 + ], + "mon_449_hippopotas": [ + 0 + ], + "mon_450_hippowdon": [ + 0 + ], + "mon_451_skorupi": [ + 0 + ], + "mon_452_drapion": [ + 0 + ], + "mon_453_croagunk": [ + 0 + ], + "mon_454_toxicroak": [ + 0 + ], + "mon_455_carnivine": [ + 0 + ], + "mon_456_finneon": [ + 0 + ], + "mon_457_lumineon": [ + 0 + ], + "mon_458_mantyke": [ + 0 + ], + "mon_459_snover": [ + 0 + ], + "mon_460_abomasnow": [ + 0 + ], + "mon_461_weavile": [ + 0 + ], + "mon_462_magnezone": [ + 0 + ], + "mon_463_lickilicky": [ + 0 + ], + "mon_464_rhyperior": [ + 0 + ], + "mon_465_tangrowth": [ + 0 + ], + "mon_466_electivire": [ + 0 + ], + "mon_467_magmortar": [ + 0 + ], + "mon_468_togekiss": [ + 0 + ], + "mon_469_yanmega": [ + 0 + ], + "mon_470_leafeon": [ + 0 + ], + "mon_471_glaceon": [ + 0 + ], + "mon_472_gliscor": [ + 0 + ], + "mon_473_mamoswine": [ + 0 + ], + "mon_474_porygon_z": [ + 0 + ], + "mon_475_gallade": [ + 0 + ], + "mon_476_probopass": [ + 0 + ], + "mon_477_dusknoir": [ + 0 + ], + "mon_478_froslass": [ + 0 + ], + "mon_479_rotom": [ + 0 + ], + "mon_480_uxie": [ + 0 + ], + "mon_481_mesprit": [ + 0 + ], + "mon_482_azelf": [ + 0 + ], + "mon_483_dialga": [ + 0 + ], + "mon_484_palkia": [ + 0 + ], + "mon_485_heatran": [ + 0 + ], + "mon_486_regigigas": [ + 0 + ], + "mon_487_giratina": [ + 0 + ], + "mon_488_cresselia": [ + 0 + ], + "mon_489_phione": [ + 0 + ], + "mon_490_manaphy": [ + 0 + ], + "mon_491_darkrai": [ + 0 + ], + "mon_492_shaymin": [ + 0 + ], + "mon_493_arceus": [ + 0 + ], + "mon_494_egg": [ + 0 + ] + } + } +} \ No newline at end of file diff --git a/files/application/zukanlist/zkn_data/zukan_enc.json.txt b/files/application/zukanlist/zkn_data/zukan_enc.json.txt new file mode 100644 index 0000000000..ded80afd93 --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_enc.json.txt @@ -0,0 +1,55 @@ +{{ doNotModifyHeader }} + + .rodata + + .type gDungeons, @object + .balign 4, 0 +gDungeons: +## for dungeon in dungeons + .byte {{ dungeon.unk_0 }} + .byte {{ dungeon.unk_1 }} + .byte {{ dungeon.unk_2 }} + .byte {{ dungeon.unk_3 }} + +## endfor + .size gDungeons,.-gDungeons + + .type gOverworlds, @object + .balign 4, 0 +gOverworlds: +## for overworld in overworlds + .byte {{ overworld.unk_0 }} + .byte {{ overworld.unk_1 }} + .byte {{ overworld.unk_2 }} + .byte {{ overworld.unk_3 }} +## for x in overworld.unk_4 + .byte {{ x }} +## endfor + +## endfor + .size gOverworlds,.-gOverworlds + +## for method, mons in encounters +## for mon, maps in mons + .type gEncounters_{{ method }}_{{ mon }}, @object + .balign 4, 0 +gEncounters_{{ method }}_{{ mon }}: +## if isArray(maps) +## for map in maps + .word {{ map }} +## endfor +## else +#ifdef SOULSILVER +## for map in maps.SILVER + .word {{ map }} +## endfor +#else +## for map in maps.GOLD + .word {{ map }} +## endfor +#endif +## endif + .size gEncounters_{{ method }}_{{ mon }},.-gEncounters_{{ method }}_{{ mon }} + +## endfor +## endfor diff --git a/files/application/zukanlist/zkn_data/zukan_enc.mk b/files/application/zukanlist/zkn_data/zukan_enc.mk new file mode 100644 index 0000000000..2e28e6cc52 --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_enc.mk @@ -0,0 +1,25 @@ +ZUKAN_ENC_PREF := files/application/zukanlist/zkn_data/zukan_enc +ZUKAN_ENC_NARC := $(ZUKAN_ENC_PREF)_$(shortname).narc +ZUKAN_ENC_NAIX := $(ZUKAN_ENC_PREF).naix +ZUKAN_ENC_JSON := $(ZUKAN_ENC_PREF).json +ZUKAN_ENC_JSON_TXT := $(ZUKAN_ENC_PREF).json.txt + +# Normalize the NAIX to version-agnostic enums +$(ZUKAN_ENC_NAIX): %.naix: %_$(shortname).naix + $(SED) 's/_$(shortname)//g' $< > $@ +filesystem: $(ZUKAN_ENC_NAIX) + +# This explicit dependency is required for multi-core builds +$(ZUKAN_ENC_NARC:%.narc=%.naix): $(ZUKAN_ENC_NARC) ; + +$(ZUKAN_ENC_NARC): %.narc: $(ZUKAN_ENC_JSON) $(ZUKAN_ENC_JSON_TXT) + $(JSONPROC) $^ $*.s + $(WINE) $(MWAS) $(MWASFLAGS) -DPM_ASM -o $*.o $*.s + $(O2NARC) $*.o $@ -n -p 0x00 + @$(RM) $*.o $*.s + +clean-zukan-enc: + $(RM) $(ZUKAN_ENC_PREF)_gold.narc $(ZUKAN_ENC_PREF)_silver.narc $(ZUKAN_ENC_NAIX) + +.PHONY: clean-zukan-enc +clean-filesystem: clean-zukan-enc diff --git a/files/application/zukanlist/zkn_data/zukan_hw_data.mk b/files/application/zukanlist/zkn_data/zukan_hw_data.mk new file mode 100644 index 0000000000..bea0f83e17 --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_hw_data.mk @@ -0,0 +1,20 @@ +ZUKAN_HW_DATA_DIR := files/application/zukanlist/zkn_data/zukan_hw_data +ZUKAN_HW_DATA_NARC := $(ZUKAN_HW_DATA_DIR)_$(shortname).narc +ZUKAN_HW_DATA_NAIX := $(ZUKAN_HW_DATA_DIR).naix + +$(ZUKAN_HW_DATA_NARC): \ + $(ZUKAN_HW_DATA_DIR)/zukan_hw_data_0.bin \ + $(ZUKAN_HW_DATA_DIR)/zukan_hw_data_1_$(shortname).bin + grep -v $(shortname) $(ZUKAN_HW_DATA_DIR)/.knarcignore-template > $(ZUKAN_HW_DATA_DIR)/.knarcignore + $(KNARC) -p $@ -d $(ZUKAN_HW_DATA_DIR) -i + +# Normalize the NAIX to version-agnostic enums +$(ZUKAN_HW_DATA_NAIX): %.naix: %_$(shortname).naix + $(SED) 's/_$(shortname)//g' $< > $@ +filesystem: $(ZUKAN_HW_DATA_NAIX) + +clean-zukan-hw-data: + $(RM) $(ZUKAN_HW_DATA_NARC) $(ZUKAN_HW_DATA_DIR)/.knarcignore $(ZUKAN_HW_DATA_NAIX) + +.PHONY: clean-zukan-hw-data +clean-filesystem: clean-zukan-hw-data diff --git a/files/application/zukanlist/zkn_data/zukan_hw_data/.gitignore b/files/application/zukanlist/zkn_data/zukan_hw_data/.gitignore new file mode 100644 index 0000000000..e2b6c9f363 --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_hw_data/.gitignore @@ -0,0 +1 @@ +.knarcignore diff --git a/files/application/zukanlist/zkn_data/zukan_hw_data/.knarcignore-template b/files/application/zukanlist/zkn_data/zukan_hw_data/.knarcignore-template new file mode 100644 index 0000000000..09bf3e16b7 --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_hw_data/.knarcignore-template @@ -0,0 +1,3 @@ +zukan_hw_data_1_silver.bin +zukan_hw_data_1_gold.bin +.knarcignore-template diff --git a/files/application/zukanlist/zkn_data/zukan_hw_data/zukan_hw_data_0.bin b/files/application/zukanlist/zkn_data/zukan_hw_data/zukan_hw_data_0.bin new file mode 100644 index 0000000000..bf04b42307 Binary files /dev/null and b/files/application/zukanlist/zkn_data/zukan_hw_data/zukan_hw_data_0.bin differ diff --git a/files/application/zukanlist/zkn_data/zukan_hw_data/zukan_hw_data_1_gold.bin b/files/application/zukanlist/zkn_data/zukan_hw_data/zukan_hw_data_1_gold.bin new file mode 100644 index 0000000000..7e55bd5b61 --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_hw_data/zukan_hw_data_1_gold.bin @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/files/application/zukanlist/zkn_data/zukan_hw_data/zukan_hw_data_1_silver.bin b/files/application/zukanlist/zkn_data/zukan_hw_data/zukan_hw_data_1_silver.bin new file mode 100644 index 0000000000..e871f27224 --- /dev/null +++ b/files/application/zukanlist/zkn_data/zukan_hw_data/zukan_hw_data_1_silver.bin @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/files/application/zukanlist/zukan_data/zukan_data.narc b/files/application/zukanlist/zukan_data/zukan_data.narc deleted file mode 100644 index f879a2549d..0000000000 Binary files a/files/application/zukanlist/zukan_data/zukan_data.narc and /dev/null differ diff --git a/files/application/zukanlist/zukan_data/zukan_data_gira.narc b/files/application/zukanlist/zukan_data/zukan_data_gira.narc deleted file mode 100644 index dfb8575035..0000000000 Binary files a/files/application/zukanlist/zukan_data/zukan_data_gira.narc and /dev/null differ diff --git a/files/application/zukanlist/zukan_data/zukan_enc_gold.narc b/files/application/zukanlist/zukan_data/zukan_enc_gold.narc deleted file mode 100644 index dfb5711941..0000000000 Binary files a/files/application/zukanlist/zukan_data/zukan_enc_gold.narc and /dev/null differ diff --git a/files/application/zukanlist/zukan_data/zukan_enc_silver.narc b/files/application/zukanlist/zukan_data/zukan_enc_silver.narc deleted file mode 100644 index 4326893e04..0000000000 Binary files a/files/application/zukanlist/zukan_data/zukan_enc_silver.narc and /dev/null differ diff --git a/files/arc/headbutt.json.txt b/files/arc/headbutt.json.txt index 9168783c53..66bf862800 100644 --- a/files/arc/headbutt.json.txt +++ b/files/arc/headbutt.json.txt @@ -5,6 +5,7 @@ .section .rodata {% for table in tables %} + .type gHeadbuttMons_{{table.Map}}, @object gHeadbuttMons_{{table.Map}}: .short {{length(table.Trees)}} .short {{length(table.SecretTrees)}} diff --git a/files/graphic/zukan_gra.mk b/files/graphic/zukan_gra.mk new file mode 100644 index 0000000000..48c915de1b --- /dev/null +++ b/files/graphic/zukan_gra.mk @@ -0,0 +1,184 @@ +ZUKAN_GRA_DIR := files/graphic/zukan_gra +ZUKAN_GRA_NARC := $(ZUKAN_GRA_DIR).narc + +ZUKAN_GRA_FILES := \ + zukan_gra_00000000.NSCR.lz \ + zukan_gra_00000001.NCGR.lz \ + zukan_gra_00000002.NCLR \ + zukan_gra_00000003.NCGR.lz \ + zukan_gra_00000004.NCGR.lz \ + zukan_gra_00000005.NSCR.lz \ + zukan_gra_00000006.NSCR.lz \ + zukan_gra_00000007.NSCR.lz \ + zukan_gra_00000008.NSCR.lz \ + zukan_gra_00000009.NSCR.lz \ + zukan_gra_00000010.NSCR.lz \ + zukan_gra_00000011.NSCR.lz \ + zukan_gra_00000012.NCGR.lz \ + zukan_gra_00000013.NCER.lz \ + zukan_gra_00000014.NANR.lz \ + zukan_gra_00000015.NCLR \ + zukan_gra_00000016.NSCR.lz \ + zukan_gra_00000017.NCGR.lz \ + zukan_gra_00000018.NCLR \ + zukan_gra_00000019.NCGR.lz \ + zukan_gra_00000020.NSCR.lz \ + zukan_gra_00000021.NSCR.lz \ + zukan_gra_00000022.NSCR.lz \ + zukan_gra_00000023.NCGR.lz \ + zukan_gra_00000024.NCER.lz \ + zukan_gra_00000025.NANR.lz \ + zukan_gra_00000026.NCGR.lz \ + zukan_gra_00000027.NCER.lz \ + zukan_gra_00000028.NANR.lz \ + zukan_gra_00000029.NCGR.lz \ + zukan_gra_00000030.NCER.lz \ + zukan_gra_00000031.NANR.lz \ + zukan_gra_00000032.NCLR \ + zukan_gra_00000033.NCER.lz \ + zukan_gra_00000034.NANR.lz \ + zukan_gra_00000035.NCLR \ + zukan_gra_00000036.NCGR.lz \ + zukan_gra_00000037.NCGR.lz \ + zukan_gra_00000038.NCGR.lz \ + zukan_gra_00000039.NCGR.lz \ + zukan_gra_00000040.NCGR.lz \ + zukan_gra_00000041.NCGR.lz \ + zukan_gra_00000042.NCGR.lz \ + zukan_gra_00000043.NCGR.lz \ + zukan_gra_00000044.NCGR.lz \ + zukan_gra_00000045.NCGR.lz \ + zukan_gra_00000046.NCGR.lz \ + zukan_gra_00000047.NCGR.lz \ + zukan_gra_00000048.NCGR.lz \ + zukan_gra_00000049.NCGR.lz \ + zukan_gra_00000050.NCGR.lz \ + zukan_gra_00000051.NCGR.lz \ + zukan_gra_00000052.NCGR.lz \ + zukan_gra_00000053.NCGR.lz \ + zukan_gra_00000054.NCER.lz \ + zukan_gra_00000055.NANR.lz \ + zukan_gra_00000056.NCLR \ + zukan_gra_00000057.NSCR.lz \ + zukan_gra_00000058.NCGR.lz \ + zukan_gra_00000059.NSCR.lz \ + zukan_gra_00000060.NSCR.lz \ + zukan_gra_00000061.NSCR.lz \ + zukan_gra_00000062.NSCR.lz \ + zukan_gra_00000063.NSCR.lz \ + zukan_gra_00000064.NSCR.lz \ + zukan_gra_00000065.NSCR.lz \ + zukan_gra_00000066.NSCR.lz \ + zukan_gra_00000067.NSCR.lz \ + zukan_gra_00000068.NSCR.lz \ + zukan_gra_00000069.NSCR.lz \ + zukan_gra_00000070.NSCR.lz \ + zukan_gra_00000071.NSCR.lz \ + zukan_gra_00000072.NCGR.lz \ + zukan_gra_00000073.NCER.lz \ + zukan_gra_00000074.NANR.lz \ + zukan_gra_00000075.NCLR \ + zukan_gra_00000076.NCGR.lz \ + zukan_gra_00000077.NCGR.lz \ + zukan_gra_00000078.NCER.lz \ + zukan_gra_00000079.NANR.lz \ + zukan_gra_00000080.NSCR.lz \ + zukan_gra_00000081.NSCR.lz \ + zukan_gra_00000082.NSCR.lz \ + zukan_gra_00000083.NCGR.lz \ + zukan_gra_00000084.NSCR.lz \ + zukan_gra_00000085.NCGR.lz \ + zukan_gra_00000086.NSCR.lz \ + zukan_gra_00000087.NCGR.lz \ + zukan_gra_00000088.NSCR.lz \ + zukan_gra_00000089.NSCR.lz \ + zukan_gra_00000090.NCGR.lz \ + zukan_gra_00000091.NSCR.lz \ + zukan_gra_00000092.NCGR.lz \ + zukan_gra_00000093.NCGR.lz \ + zukan_gra_00000094.NCGR.lz \ + zukan_gra_00000095.NSCR.lz \ + zukan_gra_00000096.NSCR.lz \ + zukan_gra_00000097.NSCR.lz \ + zukan_gra_00000098.NSCR.lz \ + zukan_gra_00000099.NSCR.lz \ + zukan_gra_00000100.NSCR.lz \ + zukan_gra_00000101.NSCR.lz \ + zukan_gra_00000102.NCGR.lz \ + zukan_gra_00000103.NSCR.lz \ + zukan_gra_00000104.NCGR.lz \ + zukan_gra_00000105.NCGR.lz \ + zukan_gra_00000106.NCER.lz \ + zukan_gra_00000107.NANR.lz \ + zukan_gra_00000108.NCLR \ + zukan_gra_00000109.NCGR.lz \ + zukan_gra_00000110.NCLR \ + zukan_gra_00000111.NCGR.lz \ + zukan_gra_00000112.NCER.lz \ + zukan_gra_00000113.NANR.lz \ + zukan_gra_00000114.NCGR.lz \ + zukan_gra_00000115.NCGR.lz \ + zukan_gra_00000116.NCER.lz \ + zukan_gra_00000117.NANR.lz \ + zukan_gra_00000118.NCLR \ + zukan_gra_00000119.NCGR.lz \ + zukan_gra_00000120.NCER.lz \ + zukan_gra_00000121.NANR.lz \ + zukan_gra_00000122.NCLR + +$(ZUKAN_GRA_NARC): $(addprefix $(ZUKAN_GRA_DIR)/,$(ZUKAN_GRA_FILES)) + +CLOBBER_SIZE_VERSION101_64K_NCGR_FILES += \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000012.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000023.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000026.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000029.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000036.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000037.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000038.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000039.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000040.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000041.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000042.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000043.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000044.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000045.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000046.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000047.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000048.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000049.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000050.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000051.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000052.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000053.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000072.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000076.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000077.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000105.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000109.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000111.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000114.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000115.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000119.NCGR + +VERSION101_SOPC_NCGR_FILES += \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000001.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000003.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000004.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000017.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000019.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000058.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000083.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000085.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000087.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000090.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000092.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000093.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000094.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000102.NCGR \ + $(ZUKAN_GRA_DIR)/zukan_gra_00000104.NCGR + +clean-zukan-gra: + $(RM) $(ZUKAN_GRA_NARC) $(addprefix $(ZUKAN_GRA_DIR)/,$(filter %.lz %.NCGR,$(ZUKAN_GRA_FILES)) $(patsubst %.lz,%,$(filter %.NCGR.lz,$(ZUKAN_GRA_FILES)))) +.PHONY: clean-zukan-gra +clean-filesystem: clean-zukan-gra diff --git a/files/graphic/zukan_gra/.gitignore b/files/graphic/zukan_gra/.gitignore new file mode 100644 index 0000000000..2d911ec064 --- /dev/null +++ b/files/graphic/zukan_gra/.gitignore @@ -0,0 +1,2 @@ +*.lz +*.NCGR diff --git a/files/graphic/zukan_gra/.knarcignore b/files/graphic/zukan_gra/.knarcignore new file mode 100644 index 0000000000..9d6b782080 --- /dev/null +++ b/files/graphic/zukan_gra/.knarcignore @@ -0,0 +1,6 @@ +*.png +*.pal +*.NSCR +*.NCGR +*.NANR +*.NCER diff --git a/files/graphic/zukan_gra/zukan_gra_00000000.NSCR b/files/graphic/zukan_gra/zukan_gra_00000000.NSCR new file mode 100644 index 0000000000..cea4f4e3c5 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000000.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000001.png b/files/graphic/zukan_gra/zukan_gra_00000001.png new file mode 100644 index 0000000000..7a5fdd2bbe Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000001.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000002.NCLR b/files/graphic/zukan_gra/zukan_gra_00000002.NCLR new file mode 100644 index 0000000000..bd57fcd7e2 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000002.NCLR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000003.png b/files/graphic/zukan_gra/zukan_gra_00000003.png new file mode 100644 index 0000000000..5750a84db6 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000003.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000004.png b/files/graphic/zukan_gra/zukan_gra_00000004.png new file mode 100644 index 0000000000..6ef8abd9b9 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000004.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000005.NSCR b/files/graphic/zukan_gra/zukan_gra_00000005.NSCR new file mode 100644 index 0000000000..826e41a307 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000005.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000006.NSCR b/files/graphic/zukan_gra/zukan_gra_00000006.NSCR new file mode 100644 index 0000000000..a1bf7c508c Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000006.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000007.NSCR b/files/graphic/zukan_gra/zukan_gra_00000007.NSCR new file mode 100644 index 0000000000..e13b4793f2 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000007.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000008.NSCR b/files/graphic/zukan_gra/zukan_gra_00000008.NSCR new file mode 100644 index 0000000000..5a29caa2b2 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000008.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000009.NSCR b/files/graphic/zukan_gra/zukan_gra_00000009.NSCR new file mode 100644 index 0000000000..c2b1dfe93c Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000009.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000010.NSCR b/files/graphic/zukan_gra/zukan_gra_00000010.NSCR new file mode 100644 index 0000000000..d80cb43298 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000010.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000011.NSCR b/files/graphic/zukan_gra/zukan_gra_00000011.NSCR new file mode 100644 index 0000000000..897ac92c27 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000011.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000012.png b/files/graphic/zukan_gra/zukan_gra_00000012.png new file mode 100644 index 0000000000..6d7a1662ed Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000012.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000013.NCER b/files/graphic/zukan_gra/zukan_gra_00000013.NCER new file mode 100644 index 0000000000..9c8a83e3d0 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000013.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000014.NANR b/files/graphic/zukan_gra/zukan_gra_00000014.NANR new file mode 100644 index 0000000000..9b290025c4 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000014.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000015.NCLR b/files/graphic/zukan_gra/zukan_gra_00000015.NCLR new file mode 100644 index 0000000000..f0b31c9c6a Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000015.NCLR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000016.NSCR b/files/graphic/zukan_gra/zukan_gra_00000016.NSCR new file mode 100644 index 0000000000..e175d277bf Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000016.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000017.png b/files/graphic/zukan_gra/zukan_gra_00000017.png new file mode 100644 index 0000000000..cf8a1cd14b Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000017.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000018.NCLR b/files/graphic/zukan_gra/zukan_gra_00000018.NCLR new file mode 100644 index 0000000000..acd76eb229 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000018.NCLR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000019.png b/files/graphic/zukan_gra/zukan_gra_00000019.png new file mode 100644 index 0000000000..5cdbb18950 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000019.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000020.NSCR b/files/graphic/zukan_gra/zukan_gra_00000020.NSCR new file mode 100644 index 0000000000..a214656fbc Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000020.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000021.NSCR b/files/graphic/zukan_gra/zukan_gra_00000021.NSCR new file mode 100644 index 0000000000..4aee725f7d Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000021.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000022.NSCR b/files/graphic/zukan_gra/zukan_gra_00000022.NSCR new file mode 100644 index 0000000000..8ad46b2c39 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000022.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000023.png b/files/graphic/zukan_gra/zukan_gra_00000023.png new file mode 100644 index 0000000000..fa81a6ed74 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000023.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000024.NCER b/files/graphic/zukan_gra/zukan_gra_00000024.NCER new file mode 100644 index 0000000000..37c6170973 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000024.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000025.NANR b/files/graphic/zukan_gra/zukan_gra_00000025.NANR new file mode 100644 index 0000000000..8644313bc6 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000025.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000026.png b/files/graphic/zukan_gra/zukan_gra_00000026.png new file mode 100644 index 0000000000..03c90cb39d Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000026.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000027.NCER b/files/graphic/zukan_gra/zukan_gra_00000027.NCER new file mode 100644 index 0000000000..9e28537682 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000027.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000028.NANR b/files/graphic/zukan_gra/zukan_gra_00000028.NANR new file mode 100644 index 0000000000..02bd85c641 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000028.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000029.png b/files/graphic/zukan_gra/zukan_gra_00000029.png new file mode 100644 index 0000000000..fb9dbdd0cf Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000029.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000030.NCER b/files/graphic/zukan_gra/zukan_gra_00000030.NCER new file mode 100644 index 0000000000..6373644f04 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000030.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000031.NANR b/files/graphic/zukan_gra/zukan_gra_00000031.NANR new file mode 100644 index 0000000000..02bd85c641 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000031.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000032.NCLR b/files/graphic/zukan_gra/zukan_gra_00000032.NCLR new file mode 100644 index 0000000000..082fa96785 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000032.NCLR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000033.NCER b/files/graphic/zukan_gra/zukan_gra_00000033.NCER new file mode 100644 index 0000000000..a0fa6765a6 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000033.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000034.NANR b/files/graphic/zukan_gra/zukan_gra_00000034.NANR new file mode 100644 index 0000000000..a066aec11a Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000034.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000035.NCLR b/files/graphic/zukan_gra/zukan_gra_00000035.NCLR new file mode 100644 index 0000000000..18acac617e Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000035.NCLR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000036.png b/files/graphic/zukan_gra/zukan_gra_00000036.png new file mode 100644 index 0000000000..00835bdb9d Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000036.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000037.png b/files/graphic/zukan_gra/zukan_gra_00000037.png new file mode 100644 index 0000000000..e5d8ccba51 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000037.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000038.png b/files/graphic/zukan_gra/zukan_gra_00000038.png new file mode 100644 index 0000000000..00d5e9290f Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000038.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000039.png b/files/graphic/zukan_gra/zukan_gra_00000039.png new file mode 100644 index 0000000000..ab1a6e2fcc Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000039.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000040.png b/files/graphic/zukan_gra/zukan_gra_00000040.png new file mode 100644 index 0000000000..798171181d Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000040.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000041.png b/files/graphic/zukan_gra/zukan_gra_00000041.png new file mode 100644 index 0000000000..4bb88976f4 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000041.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000042.png b/files/graphic/zukan_gra/zukan_gra_00000042.png new file mode 100644 index 0000000000..849303fa31 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000042.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000043.png b/files/graphic/zukan_gra/zukan_gra_00000043.png new file mode 100644 index 0000000000..2fbfd646b8 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000043.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000044.png b/files/graphic/zukan_gra/zukan_gra_00000044.png new file mode 100644 index 0000000000..4c2b2b8fc1 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000044.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000045.png b/files/graphic/zukan_gra/zukan_gra_00000045.png new file mode 100644 index 0000000000..3e96b61286 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000045.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000046.png b/files/graphic/zukan_gra/zukan_gra_00000046.png new file mode 100644 index 0000000000..07b60ed717 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000046.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000047.png b/files/graphic/zukan_gra/zukan_gra_00000047.png new file mode 100644 index 0000000000..d7ff2de4a7 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000047.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000048.png b/files/graphic/zukan_gra/zukan_gra_00000048.png new file mode 100644 index 0000000000..57aa28366a Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000048.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000049.png b/files/graphic/zukan_gra/zukan_gra_00000049.png new file mode 100644 index 0000000000..445fff800c Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000049.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000050.png b/files/graphic/zukan_gra/zukan_gra_00000050.png new file mode 100644 index 0000000000..d0c1dac3f2 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000050.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000051.png b/files/graphic/zukan_gra/zukan_gra_00000051.png new file mode 100644 index 0000000000..fe795063be Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000051.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000052.png b/files/graphic/zukan_gra/zukan_gra_00000052.png new file mode 100644 index 0000000000..2606323e2c Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000052.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000053.png b/files/graphic/zukan_gra/zukan_gra_00000053.png new file mode 100644 index 0000000000..27a92b4be7 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000053.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000054.NCER b/files/graphic/zukan_gra/zukan_gra_00000054.NCER new file mode 100644 index 0000000000..4c41680901 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000054.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000055.NANR b/files/graphic/zukan_gra/zukan_gra_00000055.NANR new file mode 100644 index 0000000000..0bfc64974b Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000055.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000056.NCLR b/files/graphic/zukan_gra/zukan_gra_00000056.NCLR new file mode 100644 index 0000000000..e1bcb0698f Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000056.NCLR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000057.NSCR b/files/graphic/zukan_gra/zukan_gra_00000057.NSCR new file mode 100644 index 0000000000..d1f89471cf Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000057.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000058.png b/files/graphic/zukan_gra/zukan_gra_00000058.png new file mode 100644 index 0000000000..1b7d0a21ce Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000058.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000059.NSCR b/files/graphic/zukan_gra/zukan_gra_00000059.NSCR new file mode 100644 index 0000000000..fbe45720c4 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000059.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000060.NSCR b/files/graphic/zukan_gra/zukan_gra_00000060.NSCR new file mode 100644 index 0000000000..be264f5c28 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000060.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000061.NSCR b/files/graphic/zukan_gra/zukan_gra_00000061.NSCR new file mode 100644 index 0000000000..6529921873 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000061.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000062.NSCR b/files/graphic/zukan_gra/zukan_gra_00000062.NSCR new file mode 100644 index 0000000000..d883c17d7c Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000062.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000063.NSCR b/files/graphic/zukan_gra/zukan_gra_00000063.NSCR new file mode 100644 index 0000000000..e7a81fe34f Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000063.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000064.NSCR b/files/graphic/zukan_gra/zukan_gra_00000064.NSCR new file mode 100644 index 0000000000..b885605a00 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000064.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000065.NSCR b/files/graphic/zukan_gra/zukan_gra_00000065.NSCR new file mode 100644 index 0000000000..95b344b774 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000065.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000066.NSCR b/files/graphic/zukan_gra/zukan_gra_00000066.NSCR new file mode 100644 index 0000000000..b6e8422b4e Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000066.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000067.NSCR b/files/graphic/zukan_gra/zukan_gra_00000067.NSCR new file mode 100644 index 0000000000..69cd5ad6f5 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000067.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000068.NSCR b/files/graphic/zukan_gra/zukan_gra_00000068.NSCR new file mode 100644 index 0000000000..1d17cab5fa Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000068.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000069.NSCR b/files/graphic/zukan_gra/zukan_gra_00000069.NSCR new file mode 100644 index 0000000000..f1313a8c48 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000069.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000070.NSCR b/files/graphic/zukan_gra/zukan_gra_00000070.NSCR new file mode 100644 index 0000000000..3f8d206121 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000070.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000071.NSCR b/files/graphic/zukan_gra/zukan_gra_00000071.NSCR new file mode 100644 index 0000000000..4ca19c215c Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000071.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000072.png b/files/graphic/zukan_gra/zukan_gra_00000072.png new file mode 100644 index 0000000000..c539169b59 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000072.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000073.NCER b/files/graphic/zukan_gra/zukan_gra_00000073.NCER new file mode 100644 index 0000000000..ded9252c32 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000073.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000074.NANR b/files/graphic/zukan_gra/zukan_gra_00000074.NANR new file mode 100644 index 0000000000..3a96f55b94 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000074.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000075.NCLR b/files/graphic/zukan_gra/zukan_gra_00000075.NCLR new file mode 100644 index 0000000000..e1a1d80b9f Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000075.NCLR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000076.png b/files/graphic/zukan_gra/zukan_gra_00000076.png new file mode 100644 index 0000000000..e47f01e8cd Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000076.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000077.png b/files/graphic/zukan_gra/zukan_gra_00000077.png new file mode 100644 index 0000000000..7d38dc476d Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000077.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000078.NCER b/files/graphic/zukan_gra/zukan_gra_00000078.NCER new file mode 100644 index 0000000000..6373644f04 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000078.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000079.NANR b/files/graphic/zukan_gra/zukan_gra_00000079.NANR new file mode 100644 index 0000000000..02bd85c641 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000079.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000080.NSCR b/files/graphic/zukan_gra/zukan_gra_00000080.NSCR new file mode 100644 index 0000000000..6dd17b5ba7 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000080.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000081.NSCR b/files/graphic/zukan_gra/zukan_gra_00000081.NSCR new file mode 100644 index 0000000000..ab193b391d Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000081.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000082.NSCR b/files/graphic/zukan_gra/zukan_gra_00000082.NSCR new file mode 100644 index 0000000000..af7710f40c Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000082.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000083.png b/files/graphic/zukan_gra/zukan_gra_00000083.png new file mode 100644 index 0000000000..25f6439693 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000083.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000084.NSCR b/files/graphic/zukan_gra/zukan_gra_00000084.NSCR new file mode 100644 index 0000000000..b392b6decf Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000084.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000085.png b/files/graphic/zukan_gra/zukan_gra_00000085.png new file mode 100644 index 0000000000..96d30e648b Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000085.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000086.NSCR b/files/graphic/zukan_gra/zukan_gra_00000086.NSCR new file mode 100644 index 0000000000..abcfd1f7ac Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000086.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000087.png b/files/graphic/zukan_gra/zukan_gra_00000087.png new file mode 100644 index 0000000000..74c9557ada Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000087.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000088.NSCR b/files/graphic/zukan_gra/zukan_gra_00000088.NSCR new file mode 100644 index 0000000000..987ed37942 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000088.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000089.NSCR b/files/graphic/zukan_gra/zukan_gra_00000089.NSCR new file mode 100644 index 0000000000..8dd25190ff Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000089.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000090.png b/files/graphic/zukan_gra/zukan_gra_00000090.png new file mode 100644 index 0000000000..c7c240539e Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000090.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000091.NSCR b/files/graphic/zukan_gra/zukan_gra_00000091.NSCR new file mode 100644 index 0000000000..902bd15399 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000091.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000092.png b/files/graphic/zukan_gra/zukan_gra_00000092.png new file mode 100644 index 0000000000..cd0019b722 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000092.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000093.png b/files/graphic/zukan_gra/zukan_gra_00000093.png new file mode 100644 index 0000000000..12fb04870d Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000093.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000094.png b/files/graphic/zukan_gra/zukan_gra_00000094.png new file mode 100644 index 0000000000..c69862585b Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000094.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000095.NSCR b/files/graphic/zukan_gra/zukan_gra_00000095.NSCR new file mode 100644 index 0000000000..dc52e13246 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000095.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000096.NSCR b/files/graphic/zukan_gra/zukan_gra_00000096.NSCR new file mode 100644 index 0000000000..af7710f40c Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000096.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000097.NSCR b/files/graphic/zukan_gra/zukan_gra_00000097.NSCR new file mode 100644 index 0000000000..be9d648f79 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000097.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000098.NSCR b/files/graphic/zukan_gra/zukan_gra_00000098.NSCR new file mode 100644 index 0000000000..b61d868268 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000098.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000099.NSCR b/files/graphic/zukan_gra/zukan_gra_00000099.NSCR new file mode 100644 index 0000000000..be9d648f79 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000099.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000100.NSCR b/files/graphic/zukan_gra/zukan_gra_00000100.NSCR new file mode 100644 index 0000000000..9ad06b967d Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000100.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000101.NSCR b/files/graphic/zukan_gra/zukan_gra_00000101.NSCR new file mode 100644 index 0000000000..75c4d538ed Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000101.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000102.png b/files/graphic/zukan_gra/zukan_gra_00000102.png new file mode 100644 index 0000000000..2dbeb04e52 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000102.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000103.NSCR b/files/graphic/zukan_gra/zukan_gra_00000103.NSCR new file mode 100644 index 0000000000..279f2707b8 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000103.NSCR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000104.png b/files/graphic/zukan_gra/zukan_gra_00000104.png new file mode 100644 index 0000000000..cbb0537d5a Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000104.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000105.png b/files/graphic/zukan_gra/zukan_gra_00000105.png new file mode 100644 index 0000000000..e59bc234d7 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000105.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000106.NCER b/files/graphic/zukan_gra/zukan_gra_00000106.NCER new file mode 100644 index 0000000000..acda2357ee Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000106.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000107.NANR b/files/graphic/zukan_gra/zukan_gra_00000107.NANR new file mode 100644 index 0000000000..02bd85c641 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000107.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000108.NCLR b/files/graphic/zukan_gra/zukan_gra_00000108.NCLR new file mode 100644 index 0000000000..198267087b Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000108.NCLR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000109.png b/files/graphic/zukan_gra/zukan_gra_00000109.png new file mode 100644 index 0000000000..7ce07420a6 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000109.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000110.NCLR b/files/graphic/zukan_gra/zukan_gra_00000110.NCLR new file mode 100644 index 0000000000..f0f90c7887 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000110.NCLR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000111.png b/files/graphic/zukan_gra/zukan_gra_00000111.png new file mode 100644 index 0000000000..e4872ec27f Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000111.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000112.NCER b/files/graphic/zukan_gra/zukan_gra_00000112.NCER new file mode 100644 index 0000000000..5d0cdc1daf Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000112.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000113.NANR b/files/graphic/zukan_gra/zukan_gra_00000113.NANR new file mode 100644 index 0000000000..a066aec11a Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000113.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000114.png b/files/graphic/zukan_gra/zukan_gra_00000114.png new file mode 100644 index 0000000000..ee3c62f3fe Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000114.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000115.png b/files/graphic/zukan_gra/zukan_gra_00000115.png new file mode 100644 index 0000000000..eaa090a608 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000115.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000116.NCER b/files/graphic/zukan_gra/zukan_gra_00000116.NCER new file mode 100644 index 0000000000..3222967b29 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000116.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000117.NANR b/files/graphic/zukan_gra/zukan_gra_00000117.NANR new file mode 100644 index 0000000000..4f8542e902 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000117.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000118.NCLR b/files/graphic/zukan_gra/zukan_gra_00000118.NCLR new file mode 100644 index 0000000000..298fbf77c4 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000118.NCLR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000119.png b/files/graphic/zukan_gra/zukan_gra_00000119.png new file mode 100644 index 0000000000..e601e18724 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000119.png differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000120.NCER b/files/graphic/zukan_gra/zukan_gra_00000120.NCER new file mode 100644 index 0000000000..d3dcdbd662 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000120.NCER differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000121.NANR b/files/graphic/zukan_gra/zukan_gra_00000121.NANR new file mode 100644 index 0000000000..649f76e9e2 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000121.NANR differ diff --git a/files/graphic/zukan_gra/zukan_gra_00000122.NCLR b/files/graphic/zukan_gra/zukan_gra_00000122.NCLR new file mode 100644 index 0000000000..4a8f9dc939 Binary files /dev/null and b/files/graphic/zukan_gra/zukan_gra_00000122.NCLR differ diff --git a/files/poketool/pokefoot/pokefoot.mk b/files/poketool/pokefoot/pokefoot.mk new file mode 100644 index 0000000000..b43dd03cd0 --- /dev/null +++ b/files/poketool/pokefoot/pokefoot.mk @@ -0,0 +1,19 @@ +POKEFOOT_DIR := files/poketool/pokefoot/pokefoot +POKEFOOT_NARC := $(POKEFOOT_DIR).narc + +POKEFOOT_PNGS := $(wildcard $(POKEFOOT_DIR)/pokefoot_*.png) +POKEFOOT_NCGRS := $(POKEFOOT_PNGS:%.png=%.NCGR) +POKEFOOT_FILES := \ + pokefoot_00000000.NCLR \ + pokefoot_00000001.NANR.lz \ + pokefoot_00000002.NCER.lz \ + $(notdir $(POKEFOOT_NCGRS:%=%.lz)) + +CLOBBER_SIZE_VERSION101_128K_NCGR_FILES += $(POKEFOOT_NCGRS) +$(POKEFOOT_NARC): $(addprefix $(POKEFOOT_DIR)/,$(POKEFOOT_FILES)) + +.PHONY: clean-pokefoot +clean-filesystem: clean-pokefoot + +clean-pokefoot: + $(RM) $(POKEFOOT_NCGRS) $(POKEFOOT_NARC) diff --git a/files/poketool/pokefoot/pokefoot/.gitignore b/files/poketool/pokefoot/pokefoot/.gitignore new file mode 100644 index 0000000000..258232e922 --- /dev/null +++ b/files/poketool/pokefoot/pokefoot/.gitignore @@ -0,0 +1,2 @@ +*.NCGR +!*.NCLR \ No newline at end of file diff --git a/files/poketool/pokefoot/pokefoot/.knarcignore b/files/poketool/pokefoot/pokefoot/.knarcignore new file mode 100644 index 0000000000..bcd8e26a9f --- /dev/null +++ b/files/poketool/pokefoot/pokefoot/.knarcignore @@ -0,0 +1,4 @@ +*.png +*.NCGR +*.NANR +*.NCER diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000000.NCLR b/files/poketool/pokefoot/pokefoot/pokefoot_00000000.NCLR new file mode 100644 index 0000000000..adf108c233 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000000.NCLR differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000001.NANR b/files/poketool/pokefoot/pokefoot/pokefoot_00000001.NANR new file mode 100644 index 0000000000..a066aec11a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000001.NANR differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000002.NCER b/files/poketool/pokefoot/pokefoot/pokefoot_00000002.NCER new file mode 100644 index 0000000000..372a78e594 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000002.NCER differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000003.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000003.png new file mode 100644 index 0000000000..aaf934afab Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000003.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000004.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000004.png new file mode 100644 index 0000000000..aaf934afab Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000004.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000005.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000005.png new file mode 100644 index 0000000000..ce837cb41e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000005.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000006.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000006.png new file mode 100644 index 0000000000..6ff6af74ea Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000006.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000007.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000007.png new file mode 100644 index 0000000000..9dd1630e96 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000007.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000008.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000008.png new file mode 100644 index 0000000000..b3401b6772 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000008.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000009.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000009.png new file mode 100644 index 0000000000..712bbf307c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000009.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000010.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000010.png new file mode 100644 index 0000000000..22036a16c5 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000010.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000011.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000011.png new file mode 100644 index 0000000000..3b94098a0b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000011.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000012.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000012.png new file mode 100644 index 0000000000..02b96af1b5 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000012.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000013.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000013.png new file mode 100644 index 0000000000..dd058a416c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000013.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000014.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000014.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000014.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000015.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000015.png new file mode 100644 index 0000000000..0586bb2227 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000015.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000016.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000016.png new file mode 100644 index 0000000000..dd058a416c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000016.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000017.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000017.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000017.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000018.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000018.png new file mode 100644 index 0000000000..a1549dd9c5 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000018.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000019.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000019.png new file mode 100644 index 0000000000..d44dc051d9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000019.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000020.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000020.png new file mode 100644 index 0000000000..9acffdc264 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000020.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000021.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000021.png new file mode 100644 index 0000000000..c7496dc7da Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000021.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000022.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000022.png new file mode 100644 index 0000000000..f0285b5938 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000022.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000023.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000023.png new file mode 100644 index 0000000000..39870c272b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000023.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000024.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000024.png new file mode 100644 index 0000000000..d44dc051d9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000024.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000025.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000025.png new file mode 100644 index 0000000000..2657c43c5d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000025.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000026.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000026.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000026.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000027.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000027.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000027.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000028.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000028.png new file mode 100644 index 0000000000..e2e5db8a6d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000028.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000029.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000029.png new file mode 100644 index 0000000000..4c94c10880 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000029.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000030.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000030.png new file mode 100644 index 0000000000..256d5325d1 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000030.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000031.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000031.png new file mode 100644 index 0000000000..e6eaeeb62b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000031.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000032.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000032.png new file mode 100644 index 0000000000..8359806f70 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000032.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000033.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000033.png new file mode 100644 index 0000000000..ae9545ecdf Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000033.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000034.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000034.png new file mode 100644 index 0000000000..b81fbee093 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000034.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000035.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000035.png new file mode 100644 index 0000000000..b008b5f884 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000035.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000036.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000036.png new file mode 100644 index 0000000000..9efaaeb022 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000036.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000037.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000037.png new file mode 100644 index 0000000000..fc3bf5591a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000037.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000038.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000038.png new file mode 100644 index 0000000000..178f345c43 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000038.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000039.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000039.png new file mode 100644 index 0000000000..550d212fa4 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000039.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000040.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000040.png new file mode 100644 index 0000000000..22dd9e4851 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000040.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000041.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000041.png new file mode 100644 index 0000000000..6a83477187 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000041.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000042.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000042.png new file mode 100644 index 0000000000..97a08761f9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000042.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000043.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000043.png new file mode 100644 index 0000000000..14290c16df Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000043.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000044.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000044.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000044.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000045.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000045.png new file mode 100644 index 0000000000..5bd7760337 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000045.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000046.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000046.png new file mode 100644 index 0000000000..0826c9d0ba Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000046.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000047.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000047.png new file mode 100644 index 0000000000..8ee4186ad7 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000047.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000048.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000048.png new file mode 100644 index 0000000000..42d058b405 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000048.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000049.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000049.png new file mode 100644 index 0000000000..c407b894c1 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000049.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000050.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000050.png new file mode 100644 index 0000000000..1d01fc02d0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000050.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000051.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000051.png new file mode 100644 index 0000000000..96d8890f01 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000051.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000052.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000052.png new file mode 100644 index 0000000000..e5ec5c1eeb Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000052.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000053.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000053.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000053.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000054.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000054.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000054.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000055.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000055.png new file mode 100644 index 0000000000..a2f6d963c3 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000055.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000056.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000056.png new file mode 100644 index 0000000000..47fb6b058a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000056.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000057.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000057.png new file mode 100644 index 0000000000..308ec4632d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000057.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000058.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000058.png new file mode 100644 index 0000000000..c758e5af26 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000058.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000059.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000059.png new file mode 100644 index 0000000000..4106d143fb Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000059.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000060.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000060.png new file mode 100644 index 0000000000..f895ca573e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000060.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000061.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000061.png new file mode 100644 index 0000000000..bcd8b14c5b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000061.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000062.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000062.png new file mode 100644 index 0000000000..07dd177190 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000062.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000063.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000063.png new file mode 100644 index 0000000000..b208bc2f87 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000063.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000064.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000064.png new file mode 100644 index 0000000000..7d19ad252a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000064.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000065.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000065.png new file mode 100644 index 0000000000..ff967996a0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000065.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000066.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000066.png new file mode 100644 index 0000000000..15919a50a6 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000066.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000067.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000067.png new file mode 100644 index 0000000000..9375b38895 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000067.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000068.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000068.png new file mode 100644 index 0000000000..fc92874dbf Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000068.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000069.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000069.png new file mode 100644 index 0000000000..8d18568f74 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000069.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000070.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000070.png new file mode 100644 index 0000000000..5439177164 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000070.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000071.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000071.png new file mode 100644 index 0000000000..334ca98f61 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000071.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000072.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000072.png new file mode 100644 index 0000000000..3dc607abbc Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000072.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000073.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000073.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000073.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000074.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000074.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000074.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000075.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000075.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000075.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000076.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000076.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000076.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000077.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000077.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000077.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000078.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000078.png new file mode 100644 index 0000000000..9eb65d7ea5 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000078.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000079.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000079.png new file mode 100644 index 0000000000..1dca054ab0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000079.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000080.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000080.png new file mode 100644 index 0000000000..edb108e2d2 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000080.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000081.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000081.png new file mode 100644 index 0000000000..505f2d8301 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000081.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000082.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000082.png new file mode 100644 index 0000000000..4b4f4d8d64 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000082.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000083.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000083.png new file mode 100644 index 0000000000..b90ca4f712 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000083.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000084.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000084.png new file mode 100644 index 0000000000..c7401bc285 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000084.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000085.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000085.png new file mode 100644 index 0000000000..97094f4df3 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000085.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000086.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000086.png new file mode 100644 index 0000000000..16acabdf40 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000086.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000087.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000087.png new file mode 100644 index 0000000000..2822e298d6 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000087.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000088.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000088.png new file mode 100644 index 0000000000..b5168052bd Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000088.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000089.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000089.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000089.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000090.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000090.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000090.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000091.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000091.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000091.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000092.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000092.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000092.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000093.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000093.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000093.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000094.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000094.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000094.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000095.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000095.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000095.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000096.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000096.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000096.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000097.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000097.png new file mode 100644 index 0000000000..a1a68a1d15 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000097.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000098.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000098.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000098.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000099.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000099.png new file mode 100644 index 0000000000..212c24db2f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000099.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000100.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000100.png new file mode 100644 index 0000000000..29c5901e81 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000100.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000101.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000101.png new file mode 100644 index 0000000000..b15db6de91 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000101.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000102.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000102.png new file mode 100644 index 0000000000..72cb376de0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000102.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000103.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000103.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000103.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000104.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000104.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000104.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000105.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000105.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000105.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000106.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000106.png new file mode 100644 index 0000000000..382f704d26 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000106.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000107.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000107.png new file mode 100644 index 0000000000..8908f2d099 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000107.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000108.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000108.png new file mode 100644 index 0000000000..75cce26849 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000108.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000109.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000109.png new file mode 100644 index 0000000000..d7725072f3 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000109.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000110.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000110.png new file mode 100644 index 0000000000..7061a4c295 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000110.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000111.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000111.png new file mode 100644 index 0000000000..1b60ce8ca9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000111.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000112.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000112.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000112.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000113.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000113.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000113.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000114.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000114.png new file mode 100644 index 0000000000..ba0bdc373b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000114.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000115.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000115.png new file mode 100644 index 0000000000..8e06df749b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000115.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000116.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000116.png new file mode 100644 index 0000000000..d89dea3a64 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000116.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000117.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000117.png new file mode 100644 index 0000000000..84d50d39d9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000117.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000118.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000118.png new file mode 100644 index 0000000000..894a25057a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000118.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000119.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000119.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000119.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000120.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000120.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000120.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000121.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000121.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000121.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000122.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000122.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000122.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000123.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000123.png new file mode 100644 index 0000000000..dd058a416c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000123.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000124.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000124.png new file mode 100644 index 0000000000..dd058a416c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000124.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000125.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000125.png new file mode 100644 index 0000000000..2be447bf8b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000125.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000126.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000126.png new file mode 100644 index 0000000000..2f0174ab61 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000126.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000127.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000127.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000127.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000128.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000128.png new file mode 100644 index 0000000000..e72eececdc Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000128.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000129.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000129.png new file mode 100644 index 0000000000..3af578ccc8 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000129.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000130.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000130.png new file mode 100644 index 0000000000..e3f6e6bc80 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000130.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000131.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000131.png new file mode 100644 index 0000000000..bef2a21180 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000131.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000132.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000132.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000132.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000133.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000133.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000133.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000134.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000134.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000134.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000135.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000135.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000135.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000136.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000136.png new file mode 100644 index 0000000000..5adf8a3067 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000136.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000137.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000137.png new file mode 100644 index 0000000000..e042918160 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000137.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000138.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000138.png new file mode 100644 index 0000000000..882e1fd65b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000138.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000139.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000139.png new file mode 100644 index 0000000000..81824b3055 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000139.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000140.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000140.png new file mode 100644 index 0000000000..372b87e92f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000140.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000141.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000141.png new file mode 100644 index 0000000000..49b620d073 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000141.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000142.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000142.png new file mode 100644 index 0000000000..853c625e77 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000142.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000143.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000143.png new file mode 100644 index 0000000000..e5ec5c1eeb Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000143.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000144.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000144.png new file mode 100644 index 0000000000..1aee056871 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000144.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000145.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000145.png new file mode 100644 index 0000000000..ec66051af6 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000145.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000146.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000146.png new file mode 100644 index 0000000000..821e8f8896 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000146.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000147.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000147.png new file mode 100644 index 0000000000..c051b2eb0d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000147.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000148.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000148.png new file mode 100644 index 0000000000..8fd6eae95e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000148.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000149.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000149.png new file mode 100644 index 0000000000..7a9c56c4b7 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000149.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000150.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000150.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000150.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000151.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000151.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000151.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000152.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000152.png new file mode 100644 index 0000000000..f9835ac33c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000152.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000153.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000153.png new file mode 100644 index 0000000000..e28788a63e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000153.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000154.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000154.png new file mode 100644 index 0000000000..42fceda337 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000154.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000155.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000155.png new file mode 100644 index 0000000000..29f5fc3716 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000155.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000156.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000156.png new file mode 100644 index 0000000000..6c96e30f8f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000156.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000157.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000157.png new file mode 100644 index 0000000000..b7142c1b9e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000157.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000158.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000158.png new file mode 100644 index 0000000000..8582500c66 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000158.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000159.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000159.png new file mode 100644 index 0000000000..2b27976e97 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000159.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000160.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000160.png new file mode 100644 index 0000000000..b10faeae2e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000160.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000161.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000161.png new file mode 100644 index 0000000000..1f6fee037d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000161.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000162.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000162.png new file mode 100644 index 0000000000..8b56931f46 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000162.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000163.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000163.png new file mode 100644 index 0000000000..a8757c813b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000163.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000164.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000164.png new file mode 100644 index 0000000000..844296acbf Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000164.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000165.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000165.png new file mode 100644 index 0000000000..a8f81f1b07 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000165.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000166.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000166.png new file mode 100644 index 0000000000..82c8e03e73 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000166.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000167.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000167.png new file mode 100644 index 0000000000..d796973fe0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000167.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000168.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000168.png new file mode 100644 index 0000000000..e8b64aa321 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000168.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000169.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000169.png new file mode 100644 index 0000000000..0a683f4fb0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000169.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000170.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000170.png new file mode 100644 index 0000000000..e5ec5c1eeb Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000170.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000171.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000171.png new file mode 100644 index 0000000000..4c2fbdf540 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000171.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000172.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000172.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000172.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000173.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000173.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000173.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000174.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000174.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000174.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000175.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000175.png new file mode 100644 index 0000000000..4b1deada5a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000175.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000176.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000176.png new file mode 100644 index 0000000000..d9b88912f3 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000176.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000177.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000177.png new file mode 100644 index 0000000000..9b8e797e6b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000177.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000178.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000178.png new file mode 100644 index 0000000000..5cf4f3f4b9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000178.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000179.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000179.png new file mode 100644 index 0000000000..aad935c432 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000179.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000180.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000180.png new file mode 100644 index 0000000000..39e99b84d9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000180.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000181.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000181.png new file mode 100644 index 0000000000..5938f355c8 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000181.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000182.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000182.png new file mode 100644 index 0000000000..ad0379f18d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000182.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000183.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000183.png new file mode 100644 index 0000000000..141a976e67 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000183.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000184.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000184.png new file mode 100644 index 0000000000..ed14589f69 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000184.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000185.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000185.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000185.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000186.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000186.png new file mode 100644 index 0000000000..3cf3f77f2e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000186.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000187.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000187.png new file mode 100644 index 0000000000..f34773283e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000187.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000188.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000188.png new file mode 100644 index 0000000000..5f2a181a9c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000188.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000189.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000189.png new file mode 100644 index 0000000000..1ec4feb7c9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000189.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000190.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000190.png new file mode 100644 index 0000000000..b01719d577 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000190.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000191.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000191.png new file mode 100644 index 0000000000..43c52e30ca Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000191.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000192.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000192.png new file mode 100644 index 0000000000..f23b0d78b2 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000192.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000193.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000193.png new file mode 100644 index 0000000000..4b07e20719 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000193.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000194.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000194.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000194.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000195.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000195.png new file mode 100644 index 0000000000..bba0adb69f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000195.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000196.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000196.png new file mode 100644 index 0000000000..60bafc9ae0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000196.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000197.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000197.png new file mode 100644 index 0000000000..cfe7618a10 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000197.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000198.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000198.png new file mode 100644 index 0000000000..ee6a854a65 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000198.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000199.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000199.png new file mode 100644 index 0000000000..b466d73028 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000199.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000200.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000200.png new file mode 100644 index 0000000000..a18a2830c1 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000200.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000201.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000201.png new file mode 100644 index 0000000000..7dc0e919eb Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000201.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000202.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000202.png new file mode 100644 index 0000000000..1a03a47176 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000202.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000203.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000203.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000203.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000204.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000204.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000204.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000205.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000205.png new file mode 100644 index 0000000000..85401dd458 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000205.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000206.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000206.png new file mode 100644 index 0000000000..3ca72556d4 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000206.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000207.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000207.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000207.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000208.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000208.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000208.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000209.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000209.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000209.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000210.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000210.png new file mode 100644 index 0000000000..f283a36400 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000210.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000211.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000211.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000211.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000212.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000212.png new file mode 100644 index 0000000000..7db4c44477 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000212.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000213.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000213.png new file mode 100644 index 0000000000..19ef3d82de Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000213.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000214.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000214.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000214.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000215.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000215.png new file mode 100644 index 0000000000..0926a8f364 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000215.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000216.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000216.png new file mode 100644 index 0000000000..596df2b7b3 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000216.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000217.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000217.png new file mode 100644 index 0000000000..a4ccc172cf Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000217.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000218.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000218.png new file mode 100644 index 0000000000..9cb235de28 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000218.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000219.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000219.png new file mode 100644 index 0000000000..4eb3ac8e9f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000219.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000220.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000220.png new file mode 100644 index 0000000000..4febf049d9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000220.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000221.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000221.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000221.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000222.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000222.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000222.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000223.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000223.png new file mode 100644 index 0000000000..6c797c9d5f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000223.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000224.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000224.png new file mode 100644 index 0000000000..d24f38c003 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000224.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000225.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000225.png new file mode 100644 index 0000000000..fdc41cf99f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000225.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000226.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000226.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000226.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000227.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000227.png new file mode 100644 index 0000000000..7a47eb82a7 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000227.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000228.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000228.png new file mode 100644 index 0000000000..a5a6ca917c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000228.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000229.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000229.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000229.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000230.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000230.png new file mode 100644 index 0000000000..9cbe9efedf Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000230.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000231.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000231.png new file mode 100644 index 0000000000..fe768f2d3b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000231.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000232.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000232.png new file mode 100644 index 0000000000..67af2108a4 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000232.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000233.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000233.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000233.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000234.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000234.png new file mode 100644 index 0000000000..208facba0e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000234.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000235.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000235.png new file mode 100644 index 0000000000..713149a8ae Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000235.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000236.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000236.png new file mode 100644 index 0000000000..018b1b01dd Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000236.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000237.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000237.png new file mode 100644 index 0000000000..f7125e9015 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000237.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000238.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000238.png new file mode 100644 index 0000000000..f252985f94 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000238.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000239.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000239.png new file mode 100644 index 0000000000..d5d0263b63 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000239.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000240.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000240.png new file mode 100644 index 0000000000..893ac2f1d2 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000240.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000241.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000241.png new file mode 100644 index 0000000000..fde7f55dae Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000241.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000242.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000242.png new file mode 100644 index 0000000000..a3118bf208 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000242.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000243.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000243.png new file mode 100644 index 0000000000..70fe804810 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000243.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000244.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000244.png new file mode 100644 index 0000000000..95898ab48d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000244.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000245.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000245.png new file mode 100644 index 0000000000..e847010611 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000245.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000246.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000246.png new file mode 100644 index 0000000000..e4779f6102 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000246.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000247.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000247.png new file mode 100644 index 0000000000..aef682c1aa Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000247.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000248.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000248.png new file mode 100644 index 0000000000..68b3adb2ed Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000248.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000249.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000249.png new file mode 100644 index 0000000000..1f5ae43d58 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000249.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000250.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000250.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000250.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000251.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000251.png new file mode 100644 index 0000000000..64e234ea78 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000251.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000252.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000252.png new file mode 100644 index 0000000000..7c11975d90 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000252.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000253.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000253.png new file mode 100644 index 0000000000..74b855adbf Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000253.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000254.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000254.png new file mode 100644 index 0000000000..4cd5cc1dab Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000254.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000255.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000255.png new file mode 100644 index 0000000000..43c7dfde88 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000255.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000256.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000256.png new file mode 100644 index 0000000000..17c9bc24b1 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000256.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000257.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000257.png new file mode 100644 index 0000000000..9cebb9e201 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000257.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000258.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000258.png new file mode 100644 index 0000000000..60efeeb32d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000258.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000259.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000259.png new file mode 100644 index 0000000000..bf720dba0e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000259.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000260.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000260.png new file mode 100644 index 0000000000..ef52490982 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000260.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000261.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000261.png new file mode 100644 index 0000000000..f75fa5bfd7 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000261.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000262.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000262.png new file mode 100644 index 0000000000..3258752abe Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000262.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000263.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000263.png new file mode 100644 index 0000000000..b333902b18 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000263.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000264.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000264.png new file mode 100644 index 0000000000..0422341b1d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000264.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000265.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000265.png new file mode 100644 index 0000000000..a990d5e9d1 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000265.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000266.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000266.png new file mode 100644 index 0000000000..a35958d166 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000266.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000267.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000267.png new file mode 100644 index 0000000000..28d4930e65 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000267.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000268.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000268.png new file mode 100644 index 0000000000..b74fda2a57 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000268.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000269.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000269.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000269.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000270.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000270.png new file mode 100644 index 0000000000..bf1d6535be Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000270.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000271.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000271.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000271.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000272.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000272.png new file mode 100644 index 0000000000..f613b6a472 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000272.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000273.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000273.png new file mode 100644 index 0000000000..3990fe301e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000273.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000274.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000274.png new file mode 100644 index 0000000000..26902c3eca Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000274.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000275.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000275.png new file mode 100644 index 0000000000..5e899a4412 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000275.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000276.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000276.png new file mode 100644 index 0000000000..ec548ce0c3 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000276.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000277.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000277.png new file mode 100644 index 0000000000..dae0543cba Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000277.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000278.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000278.png new file mode 100644 index 0000000000..a6001d90b0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000278.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000279.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000279.png new file mode 100644 index 0000000000..69ad9a17ba Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000279.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000280.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000280.png new file mode 100644 index 0000000000..a4e007fc5d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000280.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000281.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000281.png new file mode 100644 index 0000000000..cf59522b9b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000281.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000282.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000282.png new file mode 100644 index 0000000000..33199b28dc Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000282.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000283.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000283.png new file mode 100644 index 0000000000..52693a4482 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000283.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000284.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000284.png new file mode 100644 index 0000000000..3979257a1a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000284.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000285.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000285.png new file mode 100644 index 0000000000..e75a9d3840 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000285.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000286.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000286.png new file mode 100644 index 0000000000..a403b5f9f4 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000286.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000287.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000287.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000287.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000288.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000288.png new file mode 100644 index 0000000000..a30fc34d78 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000288.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000289.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000289.png new file mode 100644 index 0000000000..2645c76c4a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000289.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000290.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000290.png new file mode 100644 index 0000000000..0afdad336d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000290.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000291.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000291.png new file mode 100644 index 0000000000..a1717e3601 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000291.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000292.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000292.png new file mode 100644 index 0000000000..33776c9589 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000292.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000293.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000293.png new file mode 100644 index 0000000000..f4bb4a7dbe Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000293.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000294.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000294.png new file mode 100644 index 0000000000..bdb1b3314b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000294.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000295.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000295.png new file mode 100644 index 0000000000..cc33c8bf3a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000295.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000296.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000296.png new file mode 100644 index 0000000000..3d618bdb02 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000296.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000297.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000297.png new file mode 100644 index 0000000000..a4c7a4f121 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000297.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000298.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000298.png new file mode 100644 index 0000000000..0c94727a3c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000298.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000299.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000299.png new file mode 100644 index 0000000000..c9fafe3476 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000299.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000300.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000300.png new file mode 100644 index 0000000000..b8f37d1805 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000300.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000301.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000301.png new file mode 100644 index 0000000000..27facaf8af Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000301.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000302.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000302.png new file mode 100644 index 0000000000..ffbc39a23c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000302.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000303.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000303.png new file mode 100644 index 0000000000..8a628409bd Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000303.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000304.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000304.png new file mode 100644 index 0000000000..59cd029132 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000304.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000305.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000305.png new file mode 100644 index 0000000000..2ca3f22fc3 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000305.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000306.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000306.png new file mode 100644 index 0000000000..1676afab35 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000306.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000307.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000307.png new file mode 100644 index 0000000000..cdb228543a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000307.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000308.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000308.png new file mode 100644 index 0000000000..45e022b99c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000308.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000309.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000309.png new file mode 100644 index 0000000000..002701487e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000309.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000310.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000310.png new file mode 100644 index 0000000000..86d8fab204 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000310.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000311.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000311.png new file mode 100644 index 0000000000..8ddf0f83a6 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000311.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000312.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000312.png new file mode 100644 index 0000000000..316cc8b1a9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000312.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000313.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000313.png new file mode 100644 index 0000000000..a784ac49c7 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000313.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000314.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000314.png new file mode 100644 index 0000000000..23f99803fd Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000314.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000315.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000315.png new file mode 100644 index 0000000000..23f99803fd Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000315.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000316.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000316.png new file mode 100644 index 0000000000..e6da9a5f2f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000316.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000317.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000317.png new file mode 100644 index 0000000000..f065f9241b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000317.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000318.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000318.png new file mode 100644 index 0000000000..61b138c1a0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000318.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000319.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000319.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000319.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000320.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000320.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000320.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000321.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000321.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000321.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000322.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000322.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000322.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000323.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000323.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000323.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000324.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000324.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000324.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000325.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000325.png new file mode 100644 index 0000000000..f5c12fdb01 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000325.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000326.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000326.png new file mode 100644 index 0000000000..451372106a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000326.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000327.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000327.png new file mode 100644 index 0000000000..f2c2636c27 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000327.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000328.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000328.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000328.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000329.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000329.png new file mode 100644 index 0000000000..948bfab72f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000329.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000330.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000330.png new file mode 100644 index 0000000000..145f689e45 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000330.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000331.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000331.png new file mode 100644 index 0000000000..47321011d6 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000331.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000332.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000332.png new file mode 100644 index 0000000000..c5cd80a534 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000332.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000333.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000333.png new file mode 100644 index 0000000000..e614d7ea53 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000333.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000334.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000334.png new file mode 100644 index 0000000000..38c2c02850 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000334.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000335.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000335.png new file mode 100644 index 0000000000..fa5c1d7d02 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000335.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000336.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000336.png new file mode 100644 index 0000000000..016d2877d5 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000336.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000337.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000337.png new file mode 100644 index 0000000000..0ef76fd5a5 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000337.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000338.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000338.png new file mode 100644 index 0000000000..63174c4bf5 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000338.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000339.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000339.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000339.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000340.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000340.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000340.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000341.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000341.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000341.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000342.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000342.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000342.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000343.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000343.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000343.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000344.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000344.png new file mode 100644 index 0000000000..e2f35c664a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000344.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000345.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000345.png new file mode 100644 index 0000000000..30ce07b38f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000345.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000346.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000346.png new file mode 100644 index 0000000000..52693a4482 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000346.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000347.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000347.png new file mode 100644 index 0000000000..90d56cee1a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000347.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000348.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000348.png new file mode 100644 index 0000000000..60b46755c9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000348.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000349.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000349.png new file mode 100644 index 0000000000..36854f81e7 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000349.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000350.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000350.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000350.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000351.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000351.png new file mode 100644 index 0000000000..df03b2aaad Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000351.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000352.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000352.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000352.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000353.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000353.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000353.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000354.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000354.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000354.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000355.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000355.png new file mode 100644 index 0000000000..fd04593977 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000355.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000356.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000356.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000356.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000357.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000357.png new file mode 100644 index 0000000000..34aa486650 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000357.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000358.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000358.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000358.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000359.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000359.png new file mode 100644 index 0000000000..8835cf1145 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000359.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000360.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000360.png new file mode 100644 index 0000000000..52372a9eb7 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000360.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000361.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000361.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000361.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000362.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000362.png new file mode 100644 index 0000000000..ba520aa275 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000362.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000363.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000363.png new file mode 100644 index 0000000000..4332cc711a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000363.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000364.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000364.png new file mode 100644 index 0000000000..a862b9eda9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000364.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000365.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000365.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000365.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000366.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000366.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000366.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000367.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000367.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000367.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000368.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000368.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000368.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000369.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000369.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000369.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000370.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000370.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000370.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000371.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000371.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000371.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000372.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000372.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000372.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000373.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000373.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000373.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000374.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000374.png new file mode 100644 index 0000000000..2bc8d98e61 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000374.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000375.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000375.png new file mode 100644 index 0000000000..f8cf1be11c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000375.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000376.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000376.png new file mode 100644 index 0000000000..122f747803 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000376.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000377.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000377.png new file mode 100644 index 0000000000..4515145885 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000377.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000378.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000378.png new file mode 100644 index 0000000000..737d8ab164 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000378.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000379.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000379.png new file mode 100644 index 0000000000..060e2264be Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000379.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000380.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000380.png new file mode 100644 index 0000000000..912c12e731 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000380.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000381.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000381.png new file mode 100644 index 0000000000..52693a4482 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000381.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000382.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000382.png new file mode 100644 index 0000000000..b9ba4b42ac Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000382.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000383.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000383.png new file mode 100644 index 0000000000..0cb89bd51e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000383.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000384.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000384.png new file mode 100644 index 0000000000..9c426832ad Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000384.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000385.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000385.png new file mode 100644 index 0000000000..4d24650539 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000385.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000386.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000386.png new file mode 100644 index 0000000000..d079e5e0a7 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000386.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000387.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000387.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000387.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000388.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000388.png new file mode 100644 index 0000000000..883d83c68c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000388.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000389.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000389.png new file mode 100644 index 0000000000..1fcb457415 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000389.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000390.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000390.png new file mode 100644 index 0000000000..206b647bdc Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000390.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000391.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000391.png new file mode 100644 index 0000000000..60b8e1c665 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000391.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000392.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000392.png new file mode 100644 index 0000000000..861f9d40b9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000392.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000393.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000393.png new file mode 100644 index 0000000000..b5d80fd4f4 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000393.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000394.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000394.png new file mode 100644 index 0000000000..5ba08f67c4 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000394.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000395.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000395.png new file mode 100644 index 0000000000..68e4adf892 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000395.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000396.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000396.png new file mode 100644 index 0000000000..9ccb602092 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000396.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000397.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000397.png new file mode 100644 index 0000000000..3d2e1461b5 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000397.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000398.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000398.png new file mode 100644 index 0000000000..67a64b9146 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000398.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000399.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000399.png new file mode 100644 index 0000000000..7720e68e9b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000399.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000400.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000400.png new file mode 100644 index 0000000000..b2c3ba5347 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000400.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000401.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000401.png new file mode 100644 index 0000000000..938456fb59 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000401.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000402.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000402.png new file mode 100644 index 0000000000..bf75349dcd Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000402.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000403.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000403.png new file mode 100644 index 0000000000..e3ff5e47d0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000403.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000404.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000404.png new file mode 100644 index 0000000000..94e0927808 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000404.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000405.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000405.png new file mode 100644 index 0000000000..e5ec5c1eeb Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000405.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000406.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000406.png new file mode 100644 index 0000000000..542e45fc2b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000406.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000407.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000407.png new file mode 100644 index 0000000000..24884f2fd0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000407.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000408.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000408.png new file mode 100644 index 0000000000..660263c4e3 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000408.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000409.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000409.png new file mode 100644 index 0000000000..dd058a416c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000409.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000410.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000410.png new file mode 100644 index 0000000000..c5f640f79f Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000410.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000411.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000411.png new file mode 100644 index 0000000000..69ed8507d0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000411.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000412.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000412.png new file mode 100644 index 0000000000..e4b13de38a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000412.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000413.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000413.png new file mode 100644 index 0000000000..bca57860b2 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000413.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000414.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000414.png new file mode 100644 index 0000000000..76a4338f53 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000414.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000415.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000415.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000415.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000416.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000416.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000416.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000417.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000417.png new file mode 100644 index 0000000000..e5ec5c1eeb Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000417.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000418.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000418.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000418.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000419.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000419.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000419.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000420.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000420.png new file mode 100644 index 0000000000..42031df4d6 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000420.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000421.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000421.png new file mode 100644 index 0000000000..7c2e17627d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000421.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000422.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000422.png new file mode 100644 index 0000000000..e2dbf8158b Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000422.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000423.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000423.png new file mode 100644 index 0000000000..dd058a416c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000423.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000424.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000424.png new file mode 100644 index 0000000000..dd058a416c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000424.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000425.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000425.png new file mode 100644 index 0000000000..cb1cc026b6 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000425.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000426.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000426.png new file mode 100644 index 0000000000..d8f182998e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000426.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000427.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000427.png new file mode 100644 index 0000000000..31847c528c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000427.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000428.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000428.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000428.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000429.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000429.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000429.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000430.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000430.png new file mode 100644 index 0000000000..edba44880d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000430.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000431.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000431.png new file mode 100644 index 0000000000..465460e56a Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000431.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000432.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000432.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000432.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000433.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000433.png new file mode 100644 index 0000000000..3239944446 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000433.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000434.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000434.png new file mode 100644 index 0000000000..b974dda856 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000434.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000435.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000435.png new file mode 100644 index 0000000000..1c55d813b0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000435.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000436.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000436.png new file mode 100644 index 0000000000..a7cbe4e579 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000436.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000437.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000437.png new file mode 100644 index 0000000000..f4241d8c21 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000437.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000438.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000438.png new file mode 100644 index 0000000000..5345f46617 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000438.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000439.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000439.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000439.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000440.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000440.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000440.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000441.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000441.png new file mode 100644 index 0000000000..2b0d5387f9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000441.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000442.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000442.png new file mode 100644 index 0000000000..37accfd657 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000442.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000443.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000443.png new file mode 100644 index 0000000000..832d77e0c5 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000443.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000444.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000444.png new file mode 100644 index 0000000000..7e8ce91181 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000444.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000445.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000445.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000445.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000446.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000446.png new file mode 100644 index 0000000000..7b1e8138ad Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000446.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000447.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000447.png new file mode 100644 index 0000000000..7feca6eab2 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000447.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000448.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000448.png new file mode 100644 index 0000000000..8f46aba2d8 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000448.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000449.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000449.png new file mode 100644 index 0000000000..7b9403d1d9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000449.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000450.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000450.png new file mode 100644 index 0000000000..0c40ad4715 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000450.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000451.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000451.png new file mode 100644 index 0000000000..4f6ee366f6 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000451.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000452.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000452.png new file mode 100644 index 0000000000..7b006edeba Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000452.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000453.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000453.png new file mode 100644 index 0000000000..d61d3d367e Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000453.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000454.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000454.png new file mode 100644 index 0000000000..e5ec5c1eeb Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000454.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000455.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000455.png new file mode 100644 index 0000000000..e5ec5c1eeb Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000455.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000456.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000456.png new file mode 100644 index 0000000000..69f71a2cf9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000456.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000457.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000457.png new file mode 100644 index 0000000000..e6eb3d7274 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000457.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000458.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000458.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000458.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000459.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000459.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000459.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000460.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000460.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000460.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000461.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000461.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000461.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000462.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000462.png new file mode 100644 index 0000000000..15b710cbf0 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000462.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000463.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000463.png new file mode 100644 index 0000000000..f6b4a17661 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000463.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000464.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000464.png new file mode 100644 index 0000000000..c70a96775d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000464.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000465.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000465.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000465.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000466.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000466.png new file mode 100644 index 0000000000..4c2c2f53f9 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000466.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000467.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000467.png new file mode 100644 index 0000000000..fade532fb2 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000467.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000468.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000468.png new file mode 100644 index 0000000000..3d0b06f010 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000468.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000469.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000469.png new file mode 100644 index 0000000000..90270b78a4 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000469.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000470.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000470.png new file mode 100644 index 0000000000..cfd46b4a33 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000470.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000471.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000471.png new file mode 100644 index 0000000000..ff5771e160 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000471.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000472.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000472.png new file mode 100644 index 0000000000..a6fe5fdcee Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000472.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000473.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000473.png new file mode 100644 index 0000000000..a18a2830c1 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000473.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000474.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000474.png new file mode 100644 index 0000000000..a18a2830c1 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000474.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000475.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000475.png new file mode 100644 index 0000000000..42b63dc6d5 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000475.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000476.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000476.png new file mode 100644 index 0000000000..419b5bcb67 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000476.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000477.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000477.png new file mode 100644 index 0000000000..dd058a416c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000477.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000478.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000478.png new file mode 100644 index 0000000000..024d801c51 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000478.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000479.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000479.png new file mode 100644 index 0000000000..ceca657c96 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000479.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000480.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000480.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000480.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000481.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000481.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000481.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000482.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000482.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000482.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000483.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000483.png new file mode 100644 index 0000000000..445dc83b20 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000483.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000484.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000484.png new file mode 100644 index 0000000000..445dc83b20 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000484.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000485.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000485.png new file mode 100644 index 0000000000..445dc83b20 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000485.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000486.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000486.png new file mode 100644 index 0000000000..86b9653276 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000486.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000487.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000487.png new file mode 100644 index 0000000000..13ec49500d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000487.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000488.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000488.png new file mode 100644 index 0000000000..e614fe2fd7 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000488.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000489.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000489.png new file mode 100644 index 0000000000..8888474288 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000489.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000490.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000490.png new file mode 100644 index 0000000000..d8d282a3ed Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000490.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000491.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000491.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000491.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000492.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000492.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000492.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000493.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000493.png new file mode 100644 index 0000000000..6e4494a41d Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000493.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000494.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000494.png new file mode 100644 index 0000000000..dd058a416c Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000494.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000495.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000495.png new file mode 100644 index 0000000000..7afb8bfd86 Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000495.png differ diff --git a/files/poketool/pokefoot/pokefoot/pokefoot_00000496.png b/files/poketool/pokefoot/pokefoot/pokefoot_00000496.png new file mode 100644 index 0000000000..28ee9544ab Binary files /dev/null and b/files/poketool/pokefoot/pokefoot/pokefoot_00000496.png differ diff --git a/filesystem.mk b/filesystem.mk index 60a931bdde..a61b9a22d4 100644 --- a/filesystem.mk +++ b/filesystem.mk @@ -420,8 +420,10 @@ $(eval $(call arc_strip_name,files/demo/title/titledemo.narc,files/a/0/4/6)) $(eval $(call arc_strip_name,files/poketool/trainer/trdata.narc,files/a/0/5/5)) $(eval $(call arc_strip_name,files/poketool/trainer/trpoke.narc,files/a/0/5/6)) $(eval $(call arc_strip_name,files/poketool/trmsg/trtbl.narc,files/a/0/5/7)) -$(eval $(call arc_strip_name,files/application/zukanlist/zukan_data/zukan_data.narc,files/a/0/7/4)) -$(eval $(call arc_strip_name,files/a/0/7/5.$(buildname),files/a/0/7/5)) +$(eval $(call arc_strip_name,files/graphic/zukan_gra.narc,files/a/0/6/8)) +$(eval $(call arc_strip_name,files/poketool/pokefoot/pokefoot.narc,files/a/0/6/9)) +$(eval $(call arc_strip_name,files/application/zukanlist/zkn_data/zukan_data.narc,files/a/0/7/4)) +$(eval $(call arc_strip_name,files/application/zukanlist/zkn_data/zukan_hw_data_$(shortname).narc,files/a/0/7/5)) $(eval $(call arc_strip_name,files/data/mmodel/mmodel.narc,files/a/0/8/1)) $(eval $(call arc_strip_name,files/application/choose_starter/choose_starter_main_res.narc,files/a/0/8/2)) $(eval $(call arc_strip_name,files/application/record/record.narc,files/a/0/8/4)) @@ -431,7 +433,7 @@ $(eval $(call arc_strip_name,files/poketool/pokegra/height_o.narc,files/a/1/1/7) $(eval $(call arc_strip_name,files/demo/intro/intro.narc,files/a/1/2/0)) $(eval $(call arc_strip_name,files/arc/ppark.narc,files/a/1/2/5)) $(eval $(call arc_strip_name,files/poketool/trmsg/trtblofs.narc,files/a/1/3/1)) -$(eval $(call arc_strip_name,files/application/zukanlist/zukan_data/zukan_enc_$(shortname).narc,files/a/1/3/3)) +$(eval $(call arc_strip_name,files/application/zukanlist/zkn_data/zukan_enc_$(shortname).narc,files/a/1/3/3)) $(eval $(call arc_strip_name,files/fielddata/encountdata/s_enc_data.narc,files/a/1/3/6)) $(eval $(call arc_strip_name,files/poketool/johtozukan.narc,files/a/1/3/8)) $(eval $(call arc_strip_name,files/fielddata/tsurepoke/tp_param.narc,files/a/1/4/1)) @@ -452,7 +454,7 @@ $(eval $(call arc_strip_name,files/application/custom_ball/edit/gs_cb_data.narc, $(eval $(call arc_strip_name,files/pbr/dp_height.narc,files/a/1/9/4)) $(eval $(call arc_strip_name,files/pbr/dp_height_o.narc,files/a/1/9/5)) $(eval $(call arc_strip_name,files/resource/eng/pms_aikotoba/pms_aikotoba.narc,files/a/2/1/2)) -$(eval $(call arc_strip_name,files/application/zukanlist/zukan_data/zukan_data_gira.narc,files/a/2/1/4)) +$(eval $(call arc_strip_name,files/application/zukanlist/zkn_data/zukan_data_gira.narc,files/a/2/1/4)) $(eval $(call arc_strip_name,files/fielddata/sodateya/kowaza_list.narc,files/a/2/2/9)) $(eval $(call arc_strip_name,files/arc/headbutt.$(buildname).narc,files/a/2/5/2)) $(eval $(call arc_strip_name,files/demo/opening/gs_opening.narc,files/a/2/6/2)) @@ -503,7 +505,9 @@ include files/poketool/personal/evo.mk include files/poketool/personal/growtbl.mk include files/poketool/pokegra/otherpoke.mk include files/poketool/pokegra/pokegra.mk +include files/graphic/zukan_gra.mk include files/poketool/trainer/trainer.mk +include files/poketool/pokefoot/pokefoot.mk include files/fielddata/mapmatrix/map_matrix.mk include files/resource/eng/pms_aikotoba/pms_aikotoba.mk include files/data/mmodel/mmodel.mk @@ -527,6 +531,9 @@ include files/demo/legend.mk include files/arc/headbutt.mk include files/poketool/personal/personal.mk include files/fielddata/graphic/preview_graphic/preview_graphic.mk +include files/application/zukanlist/zkn_data/zukan_enc.mk +include files/application/zukanlist/zkn_data/zukan_data.mk +include files/application/zukanlist/zkn_data/zukan_hw_data.mk include files/data/photo_data.mk include files/tel/pmtel_book.mk include files/graphic/camera_viewfinder.mk diff --git a/graphics_files_rules.mk b/graphics_files_rules.mk index c1e9999195..7678acee22 100644 --- a/graphics_files_rules.mk +++ b/graphics_files_rules.mk @@ -1,5 +1,7 @@ $(CLOBBER_SIZE_NCGR_FILES): GFX_FLAGS = -clobbersize $(CLOBBER_SIZE_VERSION101_NCGR_FILES): GFX_FLAGS = -clobbersize -version101 +$(CLOBBER_SIZE_VERSION101_64K_NCGR_FILES): GFX_FLAGS = -clobbersize -version101 -mappingtype 64 +$(CLOBBER_SIZE_VERSION101_128K_NCGR_FILES): GFX_FLAGS = -clobbersize -version101 -mappingtype 128 $(VERSION101_SOPC_8BPP_NCGR_FILES): GFX_FLAGS = -version101 -sopc -bitdepth 8 $(VERSION101_SOPC_NCGR_FILES): GFX_FLAGS = -version101 -sopc $(SCANNED_NCGR_FILES): GFX_FLAGS = -scanned diff --git a/include/application/pokedex/pokedex_internal.h b/include/application/pokedex/pokedex_internal.h new file mode 100644 index 0000000000..4afaad061e --- /dev/null +++ b/include/application/pokedex/pokedex_internal.h @@ -0,0 +1,587 @@ +#ifndef GUARD_POKEHEARTGOLD_APPLICATION_POKEDEX_POKEDEX_INTERNAL_H +#define GUARD_POKEHEARTGOLD_APPLICATION_POKEDEX_POKEDEX_INTERNAL_H + +#include "global.h" + +#include "application/pokedex/pokedex_internal_constants.h" + +#include "bg_window.h" +#include "msgdata.h" +#include "overlay_18.h" +#include "palette.h" +#include "sprite_system.h" +#include "unk_0201956C.h" // 0x0201956C +#include "unk_02019BA4.h" // 0x02019BA4 + +enum { + POKEDEXAPP_MAINSEQ_00 = 0, + POKEDEXAPP_MAINSEQ_01 = 1, + POKEDEXAPP_MAINSEQ_02 = 2, + POKEDEXAPP_MAINSEQ_03 = 3, + POKEDEXAPP_MAINSEQ_04 = 4, + POKEDEXAPP_MAINSEQ_05 = 5, + POKEDEXAPP_MAINSEQ_06 = 6, + POKEDEXAPP_MAINSEQ_07 = 7, + POKEDEXAPP_MAINSEQ_08 = 8, + POKEDEXAPP_MAINSEQ_09 = 9, + POKEDEXAPP_MAINSEQ_10 = 10, + POKEDEXAPP_MAINSEQ_11 = 11, + POKEDEXAPP_MAINSEQ_12 = 12, + POKEDEXAPP_MAINSEQ_13 = 13, + POKEDEXAPP_MAINSEQ_14 = 14, + POKEDEXAPP_MAINSEQ_15 = 15, + POKEDEXAPP_MAINSEQ_16 = 16, + POKEDEXAPP_MAINSEQ_17 = 17, + POKEDEXAPP_MAINSEQ_18 = 18, + POKEDEXAPP_MAINSEQ_19 = 19, + POKEDEXAPP_MAINSEQ_20 = 20, + POKEDEXAPP_MAINSEQ_21 = 21, + POKEDEXAPP_MAINSEQ_22 = 22, + POKEDEXAPP_MAINSEQ_23 = 23, + POKEDEXAPP_MAINSEQ_24 = 24, + POKEDEXAPP_MAINSEQ_25 = 25, + POKEDEXAPP_MAINSEQ_26 = 26, + POKEDEXAPP_MAINSEQ_27 = 27, + POKEDEXAPP_MAINSEQ_28 = 28, + POKEDEXAPP_MAINSEQ_29 = 29, + POKEDEXAPP_MAINSEQ_30 = 30, + POKEDEXAPP_MAINSEQ_31 = 31, + POKEDEXAPP_MAINSEQ_32 = 32, + POKEDEXAPP_MAINSEQ_33 = 33, + POKEDEXAPP_MAINSEQ_34 = 34, + POKEDEXAPP_MAINSEQ_35 = 35, + POKEDEXAPP_MAINSEQ_36 = 36, + POKEDEXAPP_MAINSEQ_37 = 37, + POKEDEXAPP_MAINSEQ_38 = 38, + POKEDEXAPP_MAINSEQ_39 = 39, + POKEDEXAPP_MAINSEQ_40 = 40, + POKEDEXAPP_MAINSEQ_41 = 41, + POKEDEXAPP_MAINSEQ_42 = 42, + POKEDEXAPP_MAINSEQ_43 = 43, + POKEDEXAPP_MAINSEQ_44 = 44, + POKEDEXAPP_MAINSEQ_45 = 45, + POKEDEXAPP_MAINSEQ_46 = 46, + POKEDEXAPP_MAINSEQ_47 = 47, + POKEDEXAPP_MAINSEQ_48 = 48, + POKEDEXAPP_MAINSEQ_49 = 49, + POKEDEXAPP_MAINSEQ_50 = 50, + POKEDEXAPP_MAINSEQ_51 = 51, + POKEDEXAPP_MAINSEQ_52 = 52, + POKEDEXAPP_MAINSEQ_53 = 53, + POKEDEXAPP_MAINSEQ_54 = 54, + POKEDEXAPP_MAINSEQ_55 = 55, + POKEDEXAPP_MAINSEQ_56 = 56, + POKEDEXAPP_MAINSEQ_57 = 57, + POKEDEXAPP_MAINSEQ_58 = 58, + POKEDEXAPP_MAINSEQ_59 = 59, + POKEDEXAPP_MAINSEQ_60 = 60, + POKEDEXAPP_MAINSEQ_61 = 61, + POKEDEXAPP_MAINSEQ_62 = 62, + POKEDEXAPP_MAINSEQ_63 = 63, + POKEDEXAPP_MAINSEQ_64 = 64, + POKEDEXAPP_MAINSEQ_65 = 65, + POKEDEXAPP_MAINSEQ_66 = 66, + POKEDEXAPP_MAINSEQ_67 = 67, + POKEDEXAPP_MAINSEQ_68 = 68, + POKEDEXAPP_MAINSEQ_69 = 69, + POKEDEXAPP_MAINSEQ_70 = 70, + POKEDEXAPP_MAINSEQ_71 = 71, + POKEDEXAPP_MAINSEQ_72 = 72, + POKEDEXAPP_MAINSEQ_73 = 73, + POKEDEXAPP_MAINSEQ_74 = 74, + POKEDEXAPP_MAINSEQ_75 = 75, + POKEDEXAPP_MAINSEQ_76 = 76, + POKEDEXAPP_MAINSEQ_77 = 77, + POKEDEXAPP_MAINSEQ_78 = 78, + POKEDEXAPP_MAINSEQ_79 = 79, + POKEDEXAPP_MAINSEQ_80 = 80, + POKEDEXAPP_MAINSEQ_81 = 81, + POKEDEXAPP_MAINSEQ_82 = 82, + POKEDEXAPP_MAINSEQ_83 = 83, + POKEDEXAPP_MAINSEQ_84 = 84, + POKEDEXAPP_MAINSEQ_85 = 85, + POKEDEXAPP_MAINSEQ_86 = 86, + POKEDEXAPP_MAINSEQ_87 = 87, + POKEDEXAPP_MAINSEQ_88 = 88, + POKEDEXAPP_MAINSEQ_89 = 89, + POKEDEXAPP_MAINSEQ_90 = 90, + POKEDEXAPP_MAINSEQ_91 = 91, + POKEDEXAPP_MAINSEQ_92 = 92, + POKEDEXAPP_MAINSEQ_MAX = 93, +}; + +typedef struct PokedexAppData PokedexAppData; + +typedef struct PokedexAppData_UnkSub0868_State04 { + u8 unk_0; + u8 unk_1; + u8 unk_2; + u8 unk_3; + u8 unk_4; + u8 unk_5; + u8 unk_6; + u8 unk_7_0 : 4; + u8 unk_7_4 : 4; +} PokedexAppData_UnkSub0868_State04; + +typedef struct PokedexAppData_UnkSub0868_State06 { + u32 unk_0; + u32 unk_4; + s16 unk_8; + u16 unk_A; +} PokedexAppData_UnkSub0868_State06; + +typedef struct PokedexAppData_UnkSub0868_State09 { + u16 unk_0; + u8 unk_2; + u8 unk_3; +} PokedexAppData_UnkSub0868_State09; + +typedef struct PokedexAppData_UnkSub0868_State10 { + u8 unk_0; +} PokedexAppData_UnkSub0868_State10; + +typedef struct PokedexAppData_UnkSub0868_State13 { + u16 *unk_0; + u8 unk_4; + u8 unk_5; + u8 unk_6; + u8 unk_7; +} PokedexAppData_UnkSub0868_State13; + +typedef struct PokedexAppData_UnkSub0868_State16 { + u16 unk_0; + u16 unk_2; +} PokedexAppData_UnkSub0868_State16; + +typedef struct PokedexAppData_UnkSub0868_State17 { + u32 unk_0; + u32 unk_4; + u8 filler_8[2]; + u16 unk_A; +} PokedexAppData_UnkSub0868_State17; + +typedef struct PokedexAppData_UnkSub0868_State26 { + u8 unk_0; + u8 unk_1; + u8 unk_2; + u8 unk_3; +} PokedexAppData_UnkSub0868_State26; + +typedef struct PokedexAppData_UnkSub0868_State38 { + u32 unk_0; + u32 unk_4; + u16 unk_8; + s16 unk_A; +} PokedexAppData_UnkSub0868_State38; + +typedef struct PokedexAppData_UnkSub0868_State69 { + u16 unk_0; + u8 unk_2; +} PokedexAppData_UnkSub0868_State69; + +typedef struct PokedexAppData_UnkSub0868_State77_Sub4 { + PokedexAppData *pokedexApp; + u8 filler_04[0x1C]; +} PokedexAppData_UnkSub0868_State77_Sub4; + +typedef struct PokedexAppData_UnkSub0868_State77 { + int unk_0; + PokedexAppData_UnkSub0868_State77_Sub4 *unk_4; +} PokedexAppData_UnkSub0868_State77; + +typedef union PokedexAppData_UnkSub0868 { + PokedexAppData_UnkSub0868_State04 state_04; + PokedexAppData_UnkSub0868_State06 state_06; + PokedexAppData_UnkSub0868_State09 state_09; + PokedexAppData_UnkSub0868_State10 state_10; + PokedexAppData_UnkSub0868_State13 state_13; + PokedexAppData_UnkSub0868_State16 state_16; + PokedexAppData_UnkSub0868_State17 state_17; + PokedexAppData_UnkSub0868_State26 state_26; + PokedexAppData_UnkSub0868_State38 state_38; + PokedexAppData_UnkSub0868_State69 state_69; + PokedexAppData_UnkSub0868_State77 state_77; + u8 padding[16]; +} PokedexAppData_UnkSub0868; + +typedef struct PokedexAppData_UnkSub0878 { + u16 unk_000[NATIONAL_DEX_COUNT][2]; + u16 unk_7B4; + u16 unk_7B6; +} PokedexAppData_UnkSub0878; + +typedef struct PokedexAppData_UnkSub1030 { + u16 unk_0; // 0x0 + u16 unk_2; // 0x2 +} PokedexAppData_UnkSub1030; + +typedef struct PokedexAppData_UnkSub18CC { + s16 *player_ypos; // 0x0 + s16 *player_scale; // 0x4 + s16 *mon_ypos; // 0x8 + s16 *mon_scale; // 0xC +} PokedexAppData_UnkSub18CC; + +typedef struct PokedexAppData_UnkSub18DC_0 { + s32 *maps; + s32 nMaps; +} PokedexAppData_UnkSub18DC_0; + +typedef struct PokedexAppData_UnkSub18DC { + PokedexAppData_UnkSub18DC_0 unk_00; // 0x00 + PokedexAppData_UnkSub18DC_0 unk_08; // 0x08 + PokedexAppData_UnkSub18DC_0 unk_10; // 0x10 + PokedexAppData_UnkSub18DC_0 unk_18; // 0x18 + PokedexAppData_UnkSub18DC_0 unk_20; // 0x20 + u32 *unk_28; // 0x28 +} PokedexAppData_UnkSub18DC; + +typedef struct PokedexAppData_UnkSub1908 { + u8 unk_00; // 0x00 + u8 unk_01; // 0x01 + u8 unk_02; // 0x02 + u8 unk_03; // 0x03 +} PokedexAppData_UnkSub1908; + +typedef struct PokedexAppData_UnkSub190C { + u8 unk_00; // 0x00 + u8 unk_01; // 0x01 + u8 unk_02; // 0x02 + u8 unk_03; // 0x03 + u8 unk_04[32]; // 0x04 +} PokedexAppData_UnkSub190C; + +typedef struct UnkStruct_ov18_021F9780 { + u8 x; + u8 y; + u8 width; + u8 height; +} UnkStruct_ov18_021F9780; + +typedef struct PokedexAppData_UnkSub1850 { + u16 unk_0; + u16 unk_2; +} PokedexAppData_UnkSub1850; + +struct PokedexAppData { + PokedexArgs *args; // 0x0000 + BgConfig *bgConfig; // 0x0004 + UnkStruct_0201956C *unk_0008; // 0x0008 + Window windows[101]; // 0x000C + MsgData *msgData; // 0x065C + MessageFormat *msgFormat; // 0x0660 + String *strBufFormatted; // 0x0664 + u8 filler_0668[4]; // 0x0668 + SpriteManager *unk_066C; // 0x066C + u8 filler_0770[0x1E0]; // 0x0770 + PaletteData *paletteData; // 0x0850 + NARC *gfxNarc; // 0x0854 + u8 filler_0858[4]; // 0x0858 + int unk_085C; // 0x085C + int unk_0860; // 0x0860 + u32 unk_0864; // 0x0864 + PokedexAppData_UnkSub0868 unk_0868; // 0x0868 + PokedexAppData_UnkSub0878 unk_0878; // 0x0878 + PokedexAppData_UnkSub1030 unk_1030[518]; // 0x1030 + void *heights; // 0x1848 + void *weights; // 0x184C + PokedexAppData_UnkSub1850 *unk_1850; // 0x1850 + u8 *unk_1854; // 0x1854 + u8 unk_1858; // 0x1858 + u8 unk_1859; // 0x1859 + u8 unk_185A; // 0x185A + u8 unk_185B; // 0x185B + u8 unk_185C; // 0x185C + u8 unk_185D; // 0x185D + u8 unk_185E; // 0x185E + int unk_1860; // 0x1860 + GridInputHandler *unk_1864; // 0x1864 + u32 dexSearchCriteria[DEX_SEARCH_CRITERIA_NUM]; // 0x1868 + u32 dexSearchCriteriaBak[2]; // 0x1890 + int unk_1898; // 0x1898 + u8 filler_189C[4]; // 0x189C + u8 unk_18A0; // 0x18A0 + u8 unk_18A1; // 0x18A1 + u16 curSpecies; // 0x18A2 + u8 seenForms[0x20]; // 0x18A4 + s8 numSeenForms; // 0x18C4 + s8 unk_18C5; // 0x18C5 + s8 unk_18C6; // 0x18C6 + u8 unk_18C7_0 : 5; // 0x18C7 + u8 unk_18C7_5 : 2; // 0x18C7 + u8 unk_18C7_7 : 1; // 0x18C7 + s8 unk_18C8; // 0x18C8 + s8 unk_18C9; // 0x18C9 + s8 unk_18CA; // 0x18CA + u8 unk_18CB_0 : 6; // 0x18CB + u8 unk_18CB_6 : 1; // 0x18CB + u8 unk_18CB_7 : 1; // 0x18CB + PokedexAppData_UnkSub18CC unk_18CC; // 0x18CC + PokedexAppData_UnkSub18DC unk_18DC; // 0x18DC + PokedexAppData_UnkSub1908 *unk_1908; // 0x1908 + PokedexAppData_UnkSub190C *unk_190C; // 0x190C +}; // size: 0x1910 + +String *ov18_021E590C(u16 species, int language, enum HeapID heapId); +String *ov18_021E595C(u16 species, int language, enum HeapID heapId); +String *ov18_021E59A8(u16 species, int language, int a2, enum HeapID heapId); + +void ov18_021E5C40(void *cb_arg); +void ov18_021E5C74(void); +void ov18_021E5C84(PokedexAppData *pokedexApp); +void ov18_021E5E70(PokedexAppData *pokedexApp, BOOL a1); +void ov18_021E5F58(PokedexAppData *pokedexApp); +void ov18_021E613C(PokedexAppData *pokedexApp, u8 bgId); +void ov18_021E6174(void); +void ov18_021E618C(u8 ev1, u8 ev2); +void ov18_021E61A4(PokedexAppData *appData); +void ov18_021E6204(PokedexAppData *pokedexApp); +void ov18_021E6244(PokedexAppData *pokedexApp); +void ov18_021E6280(PokedexAppData *pokedexApp); +void ov18_021E62A8(PokedexAppData *pokedexApp); +void ov18_021E62E8(PokedexAppData *pokedexApp); +void ov18_021E6308(PokedexAppData *pokedexApp); +void ov18_021E6540(PokedexAppData *pokedexApp); +void ov18_021E654C(PokedexAppData *pokedexApp); +void ov18_021E6574(PokedexAppData *pokedexApp); +void ov18_021E659C(PokedexAppData *pokedexApp); +void ov18_021E65AC(PokedexAppData *pokedexApp); +void ov18_021E65D4(PokedexAppData *pokedexApp); +void ov18_021E65FC(PokedexAppData *pokedexApp); +void ov18_021E6624(PokedexAppData *pokedexApp); +void ov18_021E664C(PokedexAppData *pokedexApp); +void ov18_021E6674(PokedexAppData *pokedexApp); +void ov18_021E669C(PokedexAppData *pokedexApp); +void ov18_021E66C4(PokedexAppData *pokedexApp); +void ov18_021E66EC(PokedexAppData *pokedexApp); +void ov18_021E6714(PokedexAppData *pokedexApp); +void ov18_021E673C(PokedexAppData *pokedexApp); +void ov18_021E6794(PokedexAppData *pokedexApp); +void ov18_021E67B0(PokedexAppData *pokedexApp); +void ov18_021E67C8(PokedexAppData *pokedexApp, int a1); +void ov18_021E6A70(PokedexAppData *pokedexApp); +u16 *ov18_021E6AEC(PokedexAppData *pokedexApp, u32 a1); +u16 *ov18_021E6BB8(PokedexAppData *pokedexApp, u32 a1); +void ov18_021E6C90(u16 *a0); +void ov18_021E6C98(PokedexAppData *pokedexApp); +void ov18_021E6CC0(PokedexAppData *pokedexApp); +void ov18_021E6CE8(PokedexAppData *pokedexApp, u16 *a1); +BOOL ov18_021E6D10(PokedexAppData *pokedexApp, u16 species, u16 language); +BOOL ov18_021E6D38(PokedexAppData *pokedexApp, u16 species); +void ov18_021E6D68(PokedexAppData *pokedexApp, u16 species, s16 a2); +void ov18_021E6E44(PokedexAppData *pokedexApp); +void ov18_021E6F6C(BgConfig *bgConfig, u8 bgId, u8 language, NARC *narc, enum HeapID heapId); +void ov18_021E6FB8(BgConfig *bgConfig, u8 bgId, NARC *narc, enum HeapID heapId); +void ov18_021E6FFC(PokedexAppData *pokedexApp); +void ov18_021E71D0(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021E74B8(PokedexAppData *pokedexApp, int a1); +void ov18_021E74E4(PokedexAppData *pokedexApp); +void ov18_021E7534(PokedexAppData *pokedexApp, int a1); +void ov18_021E766C(PokedexAppData *pokedexApp, u32 a1); +u8 ov18_021E7698(int a0); +void ov18_021E76EC(PokedexAppData *pokedexApp, u32 a1); +void ov18_021E7724(PokedexAppData *pokedexApp); +void ov18_021E78AC(PokedexAppData *pokedexApp); +void ov18_021E7A80(PokedexAppData *pokedexApp, u16 species, s16 a2); +void ov18_021E7B6C(BOOL a0); +void ov18_021E800C(PokedexAppData *pokedexApp); +void ov18_021E81A8(PokedexAppData *pokedexApp); +void ov18_021E8254(PokedexAppData *pokedexApp); +void ov18_021E8410(PokedexAppData *pokedexApp); +void ov18_021E84EC(PokedexAppData *pokedexApp); +void ov18_021E8528(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021E8648(PokedexAppData *pokedexApp); +BOOL ov18_021E8AB0(PokedexAppData *pokedexApp, u32 a1); +u32 ov18_021E8ACC(PokedexAppData *pokedexApp, u32 a1, u32 a2); +u32 ov18_021E8AE0(PokedexAppData *pokedexApp, u32 a1); +u32 ov18_021E8B0C(u32 a0); +u32 ov18_021E8B18(u32 a0); +BOOL ov18_021E8B24(u32 a0); +BOOL ov18_021E8B5C(u32 a0); +void ov18_021E8B94(PokedexAppData *pokedexApp); +void ov18_021E8BD4(PokedexAppData *pokedexApp); + +BOOL PokedexApp_RunMainSeq(PokedexAppData *pokedexApp, int *pState); + +void ov18_021EE388(PokedexAppData *pokedexApp); +void ov18_021EE3FC(PokedexAppData *pokedexApp); +void ov18_021EE5FC(PokedexAppData *pokedexApp); +void ov18_021EE638(PokedexAppData *pokedexApp, u32 species, int a2); +void ov18_021EE6BC(PokedexAppData *pokedexApp, int species, int a2); +void ov18_021EE6EC(PokedexAppData *pokedexApp, int species, int a2); +void ov18_021EE8B8(PokedexAppData *pokedexApp, u32 species, int a2); +void ov18_021EED70(PokedexAppData *pokedexApp, int species, int a2); +void ov18_021EEE58(PokedexAppData *pokedexApp); +void ov18_021EEED0(PokedexAppData *pokedexApp, int a1); +void ov18_021EF45C(PokedexAppData *pokedexApp); +void ov18_021EF528(PokedexAppData *pokedexApp); +void ov18_021EF5D8(PokedexAppData *pokedexApp); +void ov18_021EF764(PokedexAppData *pokedexApp); +void ov18_021EF848(PokedexAppData *pokedexApp); +void ov18_021EF91C(PokedexAppData *pokedexApp); +void ov18_021EF9B4(PokedexAppData *pokedexApp); +void ov18_021EFA50(PokedexAppData *pokedexApp); +void ov18_021EFB88(PokedexAppData *pokedexApp); +void ov18_021EFBE8(PokedexAppData *pokedexApp, int a1); +void ov18_021EFC3C(PokedexAppData *pokedexApp, int windowId); +void ov18_021EFC9C(PokedexAppData *pokedexApp, u32 type, int windowId, int a3); +void ov18_021EFD00(PokedexAppData *pokedexApp, u16 a1, int a2); +void ov18_021EFDB4(PokedexAppData *pokedexApp, u16 a1, int a2); +void ov18_021EFE70(PokedexAppData *pokedexApp, int a1); +void ov18_021EFEC4(PokedexAppData *pokedexApp); +void ov18_021EFFEC(PokedexAppData *pokedexApp); +void ov18_021F0118(PokedexAppData *pokedexApp, int a1); +void ov18_021F014C(PokedexAppData *pokedexApp); +void ov18_021F0168(PokedexAppData *pokedexApp); +void ov18_021F018C(PokedexAppData *pokedexApp); +void ov18_021F01D4(PokedexAppData *pokedexApp); +void ov18_021F021C(PokedexAppData *pokedexApp); +void ov18_021F0D2C(PokedexAppData *pokedexApp); +void ov18_021F03C0(PokedexAppData *pokedexApp); +void ov18_021F03E0(PokedexAppData *pokedexApp); +void ov18_021F0428(PokedexAppData *pokedexApp); +void ov18_021F0504(PokedexAppData *pokedexApp, int a1); +void ov18_021F05E8(PokedexAppData *pokedexApp); +void ov18_021F0838(PokedexAppData *pokedexApp); +void ov18_021F0858(PokedexAppData *pokedexApp); +void ov18_021F08E0(PokedexAppData *pokedexApp); +void ov18_021F0900(PokedexAppData *pokedexApp); +void ov18_021F0918(PokedexAppData *pokedexApp); +void ov18_021F0928(PokedexAppData *pokedexApp); +void ov18_021F0940(PokedexAppData *pokedexApp); +void ov18_021F0B70(PokedexAppData *pokedexApp, int a1); +void ov18_021F0DD0(PokedexAppData *pokedexApp); +void ov18_021F0F2C(PokedexAppData *pokedexApp); +void ov18_021F0F68(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F0FC8(PokedexAppData *pokedexApp); +void ov18_021F0FEC(PokedexAppData *pokedexApp); +void ov18_021F1004(PokedexAppData *pokedexApp); +void ov18_021F118C(PokedexAppData *pokedexApp, int a1, int a2); +int ov18_021F11AC(PokedexAppData *pokedexApp, int a1); +void ov18_021F11C0(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F1620(PokedexAppData *pokedexApp, int a1); +void ov18_021F16C4(PokedexAppData *pokedexApp, int a1, int a2, u8 a3); +void ov18_021F1760(PokedexAppData *pokedexApp, int a1, int a2, u8 a3); +void ov18_021F1CAC(PokedexAppData *pokedexApp, int species, int a2, int a3); +void ov18_021F1DE4(PokedexAppData *pokedexApp, u32 species, int a2, int a3); +void ov18_021F209C(PokedexAppData *pokedexApp, u32 species, int a2, int a3); +void ov18_021F24E0(PokedexAppData *pokedexApp, u32 species, int a2); +void ov18_021F2530(PokedexAppData *pokedexApp, u32 species, int a2); +void ov18_021F2880(PokedexAppData *pokedexApp); +void ov18_021F2A2C(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F2A84(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F2AC0(PokedexAppData *pokedexApp, int a1); +BOOL ov18_021F2AF8(PokedexAppData *pokedexApp, u32 x, u32 y); +void ov18_021F2B3C(PokedexAppData *pokedexApp, int a1, s16 a2); +void ov18_021F2B70(PokedexAppData *pokedexApp, int a1, s16 a2); +s16 ov18_021F2B9C(PokedexAppData *pokedexApp); +void ov18_021F2BB0(PokedexAppData *pokedexApp, int a1); +void ov18_021F2BFC(PokedexAppData *pokedexApp); +void ov18_021F2C10(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F2C5C(PokedexAppData *pokedexApp, int a1, int a2); +int ov18_021F2CD0(PokedexAppData *pokedexApp, int a1, u32 x, u32 y); +int ov18_021F2D24(PokedexAppData *pokedexApp, int a1, u32 x, u32 y, int a4); +int ov18_021F2DD4(PokedexAppData *pokedexApp, int a1, int a2, int a3); +u8 ov18_021F2E14(PokedexAppData *pokedexApp, int a1, int a2, int a3); +void ov18_021F2E4C(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F2E80(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F2EC8(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F2F00(PokedexAppData *pokedexApp); +void ov18_021F2F3C(PokedexAppData *pokedexApp); +void ov18_021F3190(PokedexAppData *pokedexApp); +void ov18_021F3294(PokedexAppData *pokedexApp); +void ov18_021F3438(PokedexAppData *pokedexApp); +void ov18_021F3448(PokedexAppData *pokedexApp); +void ov18_021F3494(PokedexAppData *pokedexApp); +void ov18_021F3618(PokedexAppData *pokedexApp, int a1); +void ov18_021F36D4(PokedexAppData *pokedexApp, int a1, int a2, int a3); +void ov18_021F37D4(PokedexAppData *pokedexApp, int a1, int a2, int a3); +void ov18_021F38F0(PokedexAppData *pokedexApp, int a1, u16 a2); +void ov18_021F39C4(PokedexAppData *pokedexApp, int a1, u16 a2); +void ov18_021F3A64(PokedexAppData *pokedexApp, u32 a1, int a2); +u32 ov18_021F3AB0(PokedexAppData *pokedexApp, int a1); +int ov18_021F3AD0(PokedexAppData *pokedexApp, int a1); +void ov18_021F3AD8(PokedexAppData *pokedexApp); +void ov18_021F3B2C(PokedexAppData *pokedexApp, int a1); +void ov18_021F3B60(PokedexAppData *pokedexApp, int a1); +void ov18_021F3BA4(PokedexAppData *pokedexApp); +void ov18_021F3BD4(PokedexAppData *pokedexApp, int a1); +void ov18_021F3C30(PokedexAppData *pokedexApp); +void ov18_021F3C54(PokedexAppData *pokedexApp, int a1); +void ov18_021F3C88(PokedexAppData *pokedexApp); +void ov18_021F3D34(PokedexAppData *pokedexApp); +void ov18_021F3D6C(PokedexAppData *pokedexApp); +void ov18_021F3D80(PokedexAppData *pokedexApp, int a1); +void ov18_021F3D98(PokedexAppData *pokedexApp); +void ov18_021F3E08(PokedexAppData *pokedexApp); +void ov18_021F40A0(PokedexAppData *pokedexApp); +void ov18_021F4080(PokedexAppData *pokedexApp); +void ov18_021F4134(PokedexAppData *pokedexApp); +void ov18_021F4384(PokedexAppData *pokedexApp); +void ov18_021F4620(PokedexAppData *pokedexApp); +void ov18_021F463C(PokedexAppData *pokedexApp); +void ov18_021F49F8(PokedexAppData *pokedexApp); +void ov18_021F4A50(PokedexAppData *pokedexApp); +void ov18_021F504C(PokedexAppData *pokedexApp, PokedexAppData_UnkSub0868_State77_Sub4 *a1); +BOOL ov18_021F50C0(PokedexAppData_UnkSub0868_State77_Sub4 *a0); +BOOL ov18_021F516C(PokedexAppData_UnkSub0868_State77_Sub4 *a0); +void ov18_021F5DC0(PokedexAppData *pokedexApp); +void ov18_021F5DE0(PokedexAppData *pokedexApp); +void ov18_021F5EF0(PokedexAppData *pokedexApp, int a1); +void ov18_021F6038(PokedexAppData *pokedexApp); +void ov18_021F609C(PokedexAppData *pokedexApp, int a1); +void ov18_021F6178(PokedexAppData *pokedexApp, int a1); +void ov18_021F619C(PokedexAppData *pokedexApp, s8 a1, s8 a2, int a3); +int ov18_021F6258(PokedexAppData *pokedexApp, int a1, int a2); +int ov18_021F62B4(PokedexAppData *pokedexApp, u32 x, u32 y); +BOOL ov18_021F6310(PokedexAppData *pokedexApp, u32 x, u32 y); +BOOL ov18_021F63DC(PokedexAppData *pokedexApp, u32 x, u32 y); +int ov18_021F64A4(PokedexAppData *pokedexApp, int a1); +int ov18_021F64F4(PokedexAppData *pokedexApp, int a1); +int ov18_021F6540(PokedexAppData *pokedexApp, int a1, int a2, int a3); +void ov18_021F6578(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F65AC(PokedexAppData *pokedexApp); +void ov18_021F65EC(PokedexAppData *pokedexApp); +void ov18_021F662C(PokedexAppData *pokedexApp); +void ov18_021F6684(PokedexAppData *pokedexApp); +void ov18_021F6714(PokedexAppData *pokedexApp); +void ov18_021F67D0(PokedexAppData *pokedexApp); +void ov18_021F6844(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F6984(PokedexAppData *pokedexApp, int a1, int a2); +void ov18_021F6990(PokedexAppData *pokedexApp); +int ov18_021F6B00(PokedexAppData *pokedexApp); +int ov18_021F6BBC(PokedexAppData *pokedexApp, int a1); +void ov18_021F6DE0(PokedexAppData *pokedexApp, int a1); +u32 ov18_021F6E2C(PokedexAppData *pokedexApp); +void ov18_021F6EC0(PokedexAppData *pokedexApp); +u32 ov18_021F6F08(PokedexAppData *pokedexApp); +void ov18_021F6FA0(PokedexAppData *pokedexApp); +u32 ov18_021F6FE8(PokedexAppData *pokedexApp); +void ov18_021F7124(PokedexAppData *pokedexApp); +u32 ov18_021F716C(PokedexAppData *pokedexApp); +void ov18_021F7354(PokedexAppData *pokedexApp); +u32 ov18_021F739C(PokedexAppData *pokedexApp); +void ov18_021F74D8(PokedexAppData *pokedexApp); +u32 ov18_021F7520(PokedexAppData *pokedexApp); +u32 ov18_021F765C(u32 *a1); +void ov18_021F7668(PokedexAppData *pokedexApp); +u32 ov18_021F76B0(PokedexAppData *pokedexApp); +void ov18_021F7748(PokedexAppData *pokedexApp); +u32 ov18_021F7790(PokedexAppData *pokedexApp); +u32 ov18_021F7974(PokedexAppData *pokedexApp, int a1); +void ov18_021F7B74(PokedexAppData *pokedexApp); +u32 ov18_021F7C14(PokedexAppData *pokedexApp, u32 *a1); +u32 ov18_021F7D00(PokedexAppData *pokedexApp, u32 *a1); +u32 ov18_021F7D30(PokedexAppData *pokedexApp, u32 *a1); +u32 ov18_021F7DCC(PokedexAppData *pokedexApp, u32 *a1); +u32 ov18_021F7E70(PokedexAppData *pokedexApp, u32 *a1); +void ov18_021F7ED4(PokedexAppData *pokedexApp, u8 a1, u32 a2, u32 a3, u32 a4, u32 a5, u32 a6, u32 a7, u32 a8, u32 a9, u32 a10, u32 a11); +u32 ov18_021F8824(PokedexAppData *pokedexApp); +u16 ov18_021F8838(PokedexAppData *pokedexApp); +u32 ov18_021F8850(PokedexAppData_UnkSub0878 *a0, u16 a1); +void ov18_021F8884(PokedexAppData *pokedexApp, int a1); +u16 ov18_021F891C(PokedexAppData *pokedexApp, BOOL a1); +u32 ov18_021F8950(PokedexAppData *pokedexApp, int a1); + +#endif // GUARD_POKEHEARTGOLD_APPLICATION_POKEDEX_POKEDEX_INTERNAL_H diff --git a/include/application/pokedex/pokedex_internal_constants.h b/include/application/pokedex/pokedex_internal_constants.h new file mode 100644 index 0000000000..07c4bcc9e4 --- /dev/null +++ b/include/application/pokedex/pokedex_internal_constants.h @@ -0,0 +1,113 @@ +#ifndef GUARD_POKEHEARTGOLD_APPLICATION_POKEDEX_POKEDEX_INTERNAL_CONSTANTS_H +#define GUARD_POKEHEARTGOLD_APPLICATION_POKEDEX_POKEDEX_INTERNAL_CONSTANTS_H + +#include "application/zukanlist/zkn_data/zukan_data.naix" + +#define DEX_SEARCH_CRITERIA_SORT_ORDER 0 +#define DEX_SEARCH_CRITERIA_LETTER 1 +#define DEX_SEARCH_CRITERIA_TYPE1 2 +#define DEX_SEARCH_CRITERIA_TYPE2 3 +#define DEX_SEARCH_CRITERIA_HEIGHT_MIN 4 +#define DEX_SEARCH_CRITERIA_HEIGHT_MAX 5 +#define DEX_SEARCH_CRITERIA_WEIGHT_MIN 6 +#define DEX_SEARCH_CRITERIA_WEIGHT_MAX 7 +#define DEX_SEARCH_CRITERIA_AREA 8 +#define DEX_SEARCH_CRITERIA_BODY_TYPE 9 +#define DEX_SEARCH_CRITERIA_NUM 10 + +#define DEX_ORDER_NATIONAL (NARC_zukan_data_sort_order_dex_order_national - NARC_zukan_data_sort_order_dex_order_national) +#define DEX_ORDER_JOHTO (NARC_zukan_data_sort_order_dex_order_johto - NARC_zukan_data_sort_order_dex_order_national) +#define DEX_ORDER_ALPHABETICAL (NARC_zukan_data_sort_order_dex_order_alphabetical - NARC_zukan_data_sort_order_dex_order_national) +#define DEX_ORDER_HEAVIEST (NARC_zukan_data_sort_order_dex_order_heaviest - NARC_zukan_data_sort_order_dex_order_national) +#define DEX_ORDER_LIGHTEST (NARC_zukan_data_sort_order_dex_order_lightest - NARC_zukan_data_sort_order_dex_order_national) +#define DEX_ORDER_TALLEST (NARC_zukan_data_sort_order_dex_order_tallest - NARC_zukan_data_sort_order_dex_order_national) +#define DEX_ORDER_SHORTEST (NARC_zukan_data_sort_order_dex_order_shortest - NARC_zukan_data_sort_order_dex_order_national) +#define DEX_ORDER_QUIT ((DEX_ORDER_SHORTEST) + 1) + +#define DEX_SEARCH_LETTERS_A (NARC_zukan_data_sort_order_letters_a - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_B (NARC_zukan_data_sort_order_letters_b - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_C (NARC_zukan_data_sort_order_letters_c - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_D (NARC_zukan_data_sort_order_letters_d - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_E (NARC_zukan_data_sort_order_letters_e - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_F (NARC_zukan_data_sort_order_letters_f - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_G (NARC_zukan_data_sort_order_letters_g - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_H (NARC_zukan_data_sort_order_letters_h - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_I (NARC_zukan_data_sort_order_letters_i - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_J (NARC_zukan_data_sort_order_letters_j - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_K (NARC_zukan_data_sort_order_letters_k - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_L (NARC_zukan_data_sort_order_letters_l - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_M (NARC_zukan_data_sort_order_letters_m - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_N (NARC_zukan_data_sort_order_letters_n - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_O (NARC_zukan_data_sort_order_letters_o - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_P (NARC_zukan_data_sort_order_letters_p - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_Q (NARC_zukan_data_sort_order_letters_q - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_R (NARC_zukan_data_sort_order_letters_r - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_S (NARC_zukan_data_sort_order_letters_s - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_T (NARC_zukan_data_sort_order_letters_t - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_U (NARC_zukan_data_sort_order_letters_u - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_V (NARC_zukan_data_sort_order_letters_v - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_W (NARC_zukan_data_sort_order_letters_w - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_X (NARC_zukan_data_sort_order_letters_x - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_Y (NARC_zukan_data_sort_order_letters_y - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_Z (NARC_zukan_data_sort_order_letters_z - NARC_zukan_data_sort_order_letters_a) +#define DEX_SEARCH_LETTERS_ALL ((DEX_SEARCH_LETTERS_Z) + 1) +#define DEX_SEARCH_LETTERS_SUBMIT ((DEX_SEARCH_LETTERS_Z) + 2) +#define DEX_SEARCH_LETTERS_CANCEL ((DEX_SEARCH_LETTERS_Z) + 3) + +#define DEX_SEARCH_TYPE_NORMAL (NARC_zukan_data_sort_order_types_normal - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_FIGHTING (NARC_zukan_data_sort_order_types_fighting - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_FLYING (NARC_zukan_data_sort_order_types_flying - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_POISON (NARC_zukan_data_sort_order_types_poison - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_GROUND (NARC_zukan_data_sort_order_types_ground - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_ROCK (NARC_zukan_data_sort_order_types_rock - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_BUG (NARC_zukan_data_sort_order_types_bug - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_GHOST (NARC_zukan_data_sort_order_types_ghost - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_STEEL (NARC_zukan_data_sort_order_types_steel - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_FIRE (NARC_zukan_data_sort_order_types_fire - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_WATER (NARC_zukan_data_sort_order_types_water - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_GRASS (NARC_zukan_data_sort_order_types_grass - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_ELECTRIC (NARC_zukan_data_sort_order_types_electric - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_PSYCHIC (NARC_zukan_data_sort_order_types_psychic - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_ICE (NARC_zukan_data_sort_order_types_ice - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_DRAGON (NARC_zukan_data_sort_order_types_dragon - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_DARK (NARC_zukan_data_sort_order_types_dark - NARC_zukan_data_sort_order_types_normal) +#define DEX_SEARCH_TYPE_ALL ((DEX_SEARCH_TYPE_DARK) + 1) +#define DEX_SEARCH_TYPE_SUBMIT ((DEX_SEARCH_TYPE_DARK) + 2) +#define DEX_SEARCH_TYPE_CANCEL ((DEX_SEARCH_TYPE_DARK) + 3) + +#define DEX_SEARCH_BODYTYPE_QUADRUPED (NARC_zukan_data_sort_order_body_style_quadruped - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_BIPEDAL_TAILLESS (NARC_zukan_data_sort_order_body_style_bipedal_tailless - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_BIPEDAL_TAIL (NARC_zukan_data_sort_order_body_style_bipedal_tail - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_SERPENTINE (NARC_zukan_data_sort_order_body_style_serpentine - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_MULTIWING (NARC_zukan_data_sort_order_body_style_multiwing - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_BIWING (NARC_zukan_data_sort_order_body_style_biwing - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_INSECTOID (NARC_zukan_data_sort_order_body_style_insectoid - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_HEAD_TORSO (NARC_zukan_data_sort_order_body_style_head_torso - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_HEAD_ARMS (NARC_zukan_data_sort_order_body_style_head_arms - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_HEAD_LEGS (NARC_zukan_data_sort_order_body_style_head_legs - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_TENTACLES (NARC_zukan_data_sort_order_body_style_tentacles - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_FINS (NARC_zukan_data_sort_order_body_style_fins - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_HEAD_ONLY (NARC_zukan_data_sort_order_body_style_head_only - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_MULTIBODY (NARC_zukan_data_sort_order_body_style_multibody - NARC_zukan_data_sort_order_body_style_quadruped) +#define DEX_SEARCH_BODYTYPE_ALL ((DEX_SEARCH_BODYTYPE_MULTIBODY) + 1) +#define DEX_SEARCH_BODYTYPE_SUBMIT ((DEX_SEARCH_BODYTYPE_MULTIBODY) + 2) +#define DEX_SEARCH_BODYTYPE_CANCEL ((DEX_SEARCH_BODYTYPE_MULTIBODY) + 3) + +#define DEX_SEARCH_LETTERGROUP_ABC (NARC_zukan_data_sort_order_letter_groups_abc - NARC_zukan_data_sort_order_letter_groups_abc) +#define DEX_SEARCH_LETTERGROUP_DEF (NARC_zukan_data_sort_order_letter_groups_def - NARC_zukan_data_sort_order_letter_groups_abc) +#define DEX_SEARCH_LETTERGROUP_GHI (NARC_zukan_data_sort_order_letter_groups_ghi - NARC_zukan_data_sort_order_letter_groups_abc) +#define DEX_SEARCH_LETTERGROUP_JKL (NARC_zukan_data_sort_order_letter_groups_jkl - NARC_zukan_data_sort_order_letter_groups_abc) +#define DEX_SEARCH_LETTERGROUP_MNO (NARC_zukan_data_sort_order_letter_groups_mno - NARC_zukan_data_sort_order_letter_groups_abc) +#define DEX_SEARCH_LETTERGROUP_PQR (NARC_zukan_data_sort_order_letter_groups_pqr - NARC_zukan_data_sort_order_letter_groups_abc) +#define DEX_SEARCH_LETTERGROUP_STU (NARC_zukan_data_sort_order_letter_groups_stu - NARC_zukan_data_sort_order_letter_groups_abc) +#define DEX_SEARCH_LETTERGROUP_VWX (NARC_zukan_data_sort_order_letter_groups_vwx - NARC_zukan_data_sort_order_letter_groups_abc) +#define DEX_SEARCH_LETTERGROUP_YZ (NARC_zukan_data_sort_order_letter_groups_yz - NARC_zukan_data_sort_order_letter_groups_abc) + +#define DEX_SEARCH_AREA_UNKNOWN 0 +#define DEX_SEARCH_AREA_JOHTO 1 +#define DEX_SEARCH_AREA_KANTO 2 +#define DEX_SEARCH_AREA_ALL (DEX_SEARCH_AREA_KANTO + 1) +#define DEX_SEARCH_AREA_SUBMIT (DEX_SEARCH_AREA_KANTO + 2) +#define DEX_SEARCH_AREA_CANCEL (DEX_SEARCH_AREA_KANTO + 3) + +#endif // GUARD_POKEHEARTGOLD_APPLICATION_POKEDEX_POKEDEX_INTERNAL_CONSTANTS_H diff --git a/include/catching_show.h b/include/catching_show.h index 734f3eed65..120b123459 100644 --- a/include/catching_show.h +++ b/include/catching_show.h @@ -3,8 +3,8 @@ #include "battle/battle_setup.h" -#include "script.h" #include "palPark_migration.h" +#include "script.h" enum PalParkEncounterType { PP_ENCTYPE_NONE, diff --git a/include/constants/heap.h b/include/constants/heap.h index cb7920de1d..d826648969 100644 --- a/include/constants/heap.h +++ b/include/constants/heap.h @@ -39,7 +39,7 @@ enum HeapID { HEAP_ID_34, HEAP_ID_35, HEAP_ID_36, - HEAP_ID_37, + HEAP_ID_POKEDEX_APP, HEAP_ID_OPTIONS_APP, HEAP_ID_39, HEAP_ID_OV55, diff --git a/include/dex_mon_measures.h b/include/dex_mon_measures.h index 88f13924aa..dc3c43fd9d 100644 --- a/include/dex_mon_measures.h +++ b/include/dex_mon_measures.h @@ -7,18 +7,18 @@ typedef struct PokedexData { u32 *height; u32 *weight; - u32 *unk_08; - u32 *unk_0C; - u32 *unk_10; - u32 *unk_14; + s16 *playerYPos; + s16 *monYPos; + s16 *playerScale; + s16 *monScale; } PokedexData; // size=0x18 -struct PokedexData *PokedexData_Create(enum HeapID heapID); -void PokedexData_Delete(struct PokedexData *zkn); -void PokedexData_LoadAll(struct PokedexData *zkn, int mode, enum HeapID heapID); -void PokedexData_UnloadAll(struct PokedexData *zkn); -u32 PokedexData_GetHeight(struct PokedexData *zkn, int species); -u32 PokedexData_GetWeight(struct PokedexData *zkn, int species); +PokedexData *PokedexData_Create(enum HeapID heapID); +void PokedexData_Delete(PokedexData *pokedexData); +void PokedexData_LoadAll(PokedexData *pokedexData, int playerGender, enum HeapID heapID); +void PokedexData_UnloadAll(PokedexData *pokedexData); +u32 PokedexData_GetHeight(PokedexData *pokedexData, int species); +u32 PokedexData_GetWeight(PokedexData *pokedexData, int species); void SetDexBanksByGiratinaForm(int form); NarcId GetPokedexDataNarcID(void); int GetDexWeightMsgBank(void); @@ -26,26 +26,26 @@ int GetDexHeightMsgBank(void); static inline u32 SpeciesGetDexHeight(int species, enum HeapID heapID) { u32 ret; - struct PokedexData *zkn; + PokedexData *pokedexData; - zkn = PokedexData_Create(heapID); - PokedexData_LoadAll(zkn, 0, heapID); - ret = PokedexData_GetHeight(zkn, species); - PokedexData_UnloadAll(zkn); - PokedexData_Delete(zkn); + pokedexData = PokedexData_Create(heapID); + PokedexData_LoadAll(pokedexData, 0, heapID); + ret = PokedexData_GetHeight(pokedexData, species); + PokedexData_UnloadAll(pokedexData); + PokedexData_Delete(pokedexData); return ret; } static inline u32 SpeciesGetDexWeight(int species, enum HeapID heapID) { u32 ret; - struct PokedexData *zkn; + PokedexData *pokedexData; - zkn = PokedexData_Create(heapID); - PokedexData_LoadAll(zkn, 0, heapID); - ret = PokedexData_GetWeight(zkn, species); - PokedexData_UnloadAll(zkn); - PokedexData_Delete(zkn); + pokedexData = PokedexData_Create(heapID); + PokedexData_LoadAll(pokedexData, 0, heapID); + ret = PokedexData_GetWeight(pokedexData, species); + PokedexData_UnloadAll(pokedexData); + PokedexData_Delete(pokedexData); return ret; } diff --git a/include/field_system.h b/include/field_system.h index b56d4f7eeb..c1a7ec085c 100644 --- a/include/field_system.h +++ b/include/field_system.h @@ -147,7 +147,7 @@ struct FieldSystem { void *unk9C; UnkStruct_Fsys_A0 *unkA0; Save_LinkBattleRuleset *linkBattleRuleset; - u32 *unkA8; + struct UnkStruct_02092BB8 *unkA8; u32 unkAC; void *unkB0; s64 unkB4; diff --git a/include/filesystem_files_def.h b/include/filesystem_files_def.h index 482d4ffd2d..1dfe25d415 100644 --- a/include/filesystem_files_def.h +++ b/include/filesystem_files_def.h @@ -72,14 +72,14 @@ typedef enum NarcId { NARC_a_0_6_5 = 65, NARC_a_0_6_6 = 66, NARC_a_0_6_7 = 67, - NARC_a_0_6_8 = 68, - NARC_a_0_6_9 = 69, + NARC_graphic_zukan_gra = 68, + NARC_poketool_pokefoot_pokefoot = 69, NARC_a_0_7_0 = 70, NARC_a_0_7_1 = 71, NARC_a_0_7_2 = 72, NARC_a_0_7_3 = 73, - NARC_application_zukanlist_zukan_data_zukan_data = 74, - NARC_a_0_7_5 = 75, + NARC_application_zukanlist_zkn_data_zukan_data = 74, + NARC_application_zukanlist_zkn_data_zukan_hw_data = 75, NARC_a_0_7_6 = 76, NARC_a_0_7_7 = 77, NARC_a_0_7_8 = 78, @@ -137,7 +137,7 @@ typedef enum NarcId { NARC_a_1_3_0 = 130, NARC_poketool_trmsg_trtblofs = 131, NARC_a_1_3_2 = 132, - NARC_a_1_3_3 = 133, + NARC_application_zukanlist_zkn_data_zukan_enc = 133, NARC_a_1_3_4 = 134, NARC_a_1_3_5 = 135, NARC_fielddata_encountdata_s_enc_data = 136, @@ -220,7 +220,7 @@ typedef enum NarcId { NARC_a_2_1_1 = 213, NARC_resource_eng_pms_aikotoba_pms_aikotoba = 214, NARC_a_2_1_3 = 215, - NARC_application_zukanlist_zukan_data_zukan_data_gira = 216, + NARC_application_zukanlist_zkn_data_zukan_data_gira = 216, NARC_a_2_1_5 = 217, NARC_a_2_1_6 = 218, NARC_a_2_1_7 = 219, diff --git a/include/overlay_18.h b/include/overlay_18.h index c6e9878d69..130222b121 100644 --- a/include/overlay_18.h +++ b/include/overlay_18.h @@ -5,11 +5,12 @@ #include "overlay_manager.h" #include "player_data.h" #include "pokedex.h" +#include "unk_02092BB8.h" typedef struct PokedexArgs { Pokedex *pokedex; PlayerProfile *playerProfile; - u32 *unk_08; + struct UnkStruct_02092BB8 *unk_08; MenuInputStateMgr *menuInputStatePtr; int x; int y; diff --git a/include/pokedex.h b/include/pokedex.h index a4703a8875..b1d8104d32 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -61,7 +61,7 @@ u16 Pokedex_CountDexOwned(Pokedex *pokedex); BOOL Pokedex_NationalDexIsComplete(Pokedex *pokedex); BOOL Pokedex_JohtoDexIsComplete(Pokedex *pokedex); u32 Pokedex_GetSeenSpindaPersonality(Pokedex *pokedex, u32 arg); -int Pokedex_SpeciesGetLastSeenGender(Pokedex *pokedex, u16 species, u32 a2); +int Pokedex_SpeciesGetLastSeenGender(Pokedex *pokedex, u16 species, u32 idx); int Pokedex_GetSeenFormByIdx_Unown(Pokedex *pokedex, int idx, u32 caught); u32 Pokedex_GetSeenFormNum_Unown(Pokedex *pokedex, BOOL caught); int Pokedex_GetSeenFormByIdx_Shellos(Pokedex *pokedex, int a1); diff --git a/include/unk_0201956C.h b/include/unk_0201956C.h new file mode 100644 index 0000000000..8dde866ae9 --- /dev/null +++ b/include/unk_0201956C.h @@ -0,0 +1,24 @@ +#ifndef GUARD_POKEHEARTGOLD_UNK_0201956C_H +#define GUARD_POKEHEARTGOLD_UNK_0201956C_H + +#include "bg_window.h" +#include "filesystem.h" + +typedef struct UnkStruct_0201956C UnkStruct_0201956C; + +UnkStruct_0201956C *sub_0201956C(BgConfig *bgConfig, int a1, int a2, enum HeapID a3); +void sub_020195C0(UnkStruct_0201956C *a0); +void sub_020195F4(UnkStruct_0201956C *a0, int a1, int a2, int a3, int a4); +void sub_02019668(UnkStruct_0201956C *a0, int a1, u16 *a2); +void sub_020196B8(UnkStruct_0201956C *a0, int a1, NARC *narc, int fileId, int a4); +void sub_020196E8(UnkStruct_0201956C *a0, int a1, int a2, int a3); +void sub_0201980C(UnkStruct_0201956C *a0, int a1); +void sub_020198FC(UnkStruct_0201956C *a0, int a1, int a2, int a3, int a4); +void sub_02019934(UnkStruct_0201956C *a0); +BOOL sub_020199E4(UnkStruct_0201956C *a0, int a1); +void sub_020199F4(UnkStruct_0201956C *a0, int a1, u8 x, u8 y, u8 width, u8 height, u8 palette); +u16 *sub_02019B08(UnkStruct_0201956C *a0, int a1); +void sub_02019B44(UnkStruct_0201956C *a0, int a1, u16 *a2, u16 *a3); +void sub_02019B70(UnkStruct_0201956C *a0, int a1, int a2, int a3, int a4, int a5); + +#endif // GUARD_POKEHEARTGOLD_UNK_0201956C_H diff --git a/include/unk_02091278.h b/include/unk_02091278.h index bb6730114d..c117fdd332 100644 --- a/include/unk_02091278.h +++ b/include/unk_02091278.h @@ -3,6 +3,32 @@ #include "global.h" +#include "config.h" + +#define DEX_LANGUAGE_FLAG_JAPANESE 0 +#define DEX_LANGUAGE_FLAG_ENGLISH 1 +#define DEX_LANGUAGE_FLAG_FRENCH 2 +#define DEX_LANGUAGE_FLAG_GERMAN 3 +#define DEX_LANGUAGE_FLAG_ITALIAN 4 +#define DEX_LANGUAGE_FLAG_SPANISH 5 +#define DEX_LANGUAGE_FLAG_MAX 6 + +#if GAME_LANGUAGE == LANGUAGE_JAPANESSE +#define DEX_LANGUAGE_FLAG_NATIVE DEX_LANGUAGE_FLAG_JAPANESE +#elif GAME_LANGUAGE == LANGUAGE_ENGLISH +#define DEX_LANGUAGE_FLAG_NATIVE DEX_LANGUAGE_FLAG_ENGLISH +#elif GAME_LANGUAGE == LANGUAGE_FRENCH +#define DEX_LANGUAGE_FLAG_NATIVE DEX_LANGUAGE_FLAG_FRENCH +#elif GAME_LANGUAGE == LANGUAGE_GERMAN +#define DEX_LANGUAGE_FLAG_NATIVE DEX_LANGUAGE_FLAG_GERMAN +#elif GAME_LANGUAGE == LANGUAGE_ITALIAN +#define DEX_LANGUAGE_FLAG_NATIVE DEX_LANGUAGE_FLAG_ITALIAN +#elif GAME_LANGUAGE == LANGUAGE_SPANISH +#define DEX_LANGUAGE_FLAG_NATIVE DEX_LANGUAGE_FLAG_SPANISH +#else +#error "Unsupported language" +#endif + int LanguageToDexFlag(u32 language); int sub_02091294(int index); diff --git a/include/unk_020912AC.h b/include/unk_020912AC.h index 6344125d30..48556be0e0 100644 --- a/include/unk_020912AC.h +++ b/include/unk_020912AC.h @@ -1,9 +1,9 @@ -#ifndef POKEHEARTGOLD_UNK_020912AC_H -#define POKEHEARTGOLD_UNK_020912AC_H +#ifndef GUARD_POKEHEARTGOLD_UNK_020912AC_H +#define GUARD_POKEHEARTGOLD_UNK_020912AC_H #include "global.h" int sub_020912AC(int index); -s16 sub_020912D0(u32 value, u32 offset); +s16 sub_020912D0(s16 a0, u32 a2); -#endif // POKEHEARTGOLD_UNK_020912AC_H +#endif // GUARD_POKEHEARTGOLD_UNK_020912AC_H diff --git a/include/unk_02092BB8.h b/include/unk_02092BB8.h index 443790bd00..8c73566bf3 100644 --- a/include/unk_02092BB8.h +++ b/include/unk_02092BB8.h @@ -3,7 +3,15 @@ #include "heap.h" -u32 *sub_02092BB8(enum HeapID heapID); -void sub_02092BD0(u32 *a0); +struct UnkStruct_02092BB8 { + u16 unk_0; + u16 unk_2; +}; + +struct UnkStruct_02092BB8 *sub_02092BB8(enum HeapID heapID); +void sub_02092BD0(struct UnkStruct_02092BB8 *a0); +void sub_02092BD8(struct UnkStruct_02092BB8 *a0, u16 a1, u16 a2); +u16 sub_02092BE0(struct UnkStruct_02092BB8 *a0); +u32 sub_02092BE4(struct UnkStruct_02092BB8 *a0); #endif // POKEHEARTGOLD_UNK_02092BB8_H diff --git a/lib/dsprot/Makefile b/lib/dsprot/Makefile index 994ff20d4c..fdafe628ec 100644 --- a/lib/dsprot/Makefile +++ b/lib/dsprot/Makefile @@ -2,14 +2,18 @@ # See doc/BUILD_OVERVIEW.TXT for a clearer outline of this build process # =================================================================== +MWCCVER := 2.0/sp2p3 +PROC := arm946e +PROC_S := arm5te +PROC_LD := v5te +OPTFLAGS := -O4,p + # Need GLB_DEFINES and CLI_DEFINES from config include ../../config.mk # Undef this from config.mk so common.mk knows this is not building a linked elf ELFNAME := -MWCCVER := 2.0/sp2p3 - # Relevant directories BUILD_DIR := ./build C_OBJ_DIR := $(BUILD_DIR)/src @@ -56,8 +60,8 @@ LIBRARY_FILES := \ .PHONY: all clean tidy tools dsprot install -.DELETE_ON_ERROR: -.NOTPARALLEL: +.DELETE_ON_ERROR: +.NOTPARALLEL: .SECONDARY: none all: dsprot diff --git a/lib/dsprot/include/sdk.h b/lib/dsprot/include/sdk.h index aed1fc6f64..3ab7a2f460 100644 --- a/lib/dsprot/include/sdk.h +++ b/lib/dsprot/include/sdk.h @@ -22,7 +22,6 @@ #endif // SDK_TWL - // Not included in all SDK versions, regardless of Nitro/Twl // Ensure they are defined #ifndef CARDMST_ENABLE diff --git a/lib/dsprot/src/encryptor.c b/lib/dsprot/src/encryptor.c index 42b2ab5456..0e8e7bc961 100644 --- a/lib/dsprot/src/encryptor.c +++ b/lib/dsprot/src/encryptor.c @@ -58,22 +58,19 @@ void Encryptor_DecodeFunctionTable(FuncInfo *functions) { u32 operands = ((*addr & INS_OPERANDS_MASK) - ENC_VAL_1) & INS_OPERANDS_MASK; *addr = opcode | operands; - } - break; + } break; case INS_TYPE_B: { u32 opcode = (*addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT); u32 operands = ((*addr & INS_OPERANDS_MASK) - ENC_VAL_2) & INS_OPERANDS_MASK; *addr = opcode | operands; - } - break; + } break; default: { u8 *addrBytes = (u8 *)addr; *addr = (addrBytes[0] ^ ENC_BYTE_A) | ((addrBytes[1] ^ ENC_BYTE_B) << 8) | ((addrBytes[2] ^ ENC_BYTE_C) << 16) | ((addrBytes[3] ^ ENC_BYTE_D) << 24); - } - break; + } break; } } diff --git a/lib/dsprot/src/rc4.c b/lib/dsprot/src/rc4.c index 24d0e5d146..ea515c9f6c 100644 --- a/lib/dsprot/src/rc4.c +++ b/lib/dsprot/src/rc4.c @@ -79,8 +79,7 @@ u32 RC4_EncryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size) { u32 operands = ((*dstAddr & INS_OPERANDS_MASK) + ENC_VAL_2) & INS_OPERANDS_MASK; *dstAddr = opcode | operands; - } - break; + } break; case INS_TYPE_B: { u32 *srcAddr = (u32 *)(srcBytes + offset); @@ -92,8 +91,7 @@ u32 RC4_EncryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size) { u32 operands = ((*dstAddr & INS_OPERANDS_MASK) + ENC_VAL_1) & INS_OPERANDS_MASK; *dstAddr = opcode | operands; - } - break; + } break; default: dstBytes[offset] = srcBytes[offset] ^ RC4_Byte(ctx); @@ -131,8 +129,7 @@ u32 RC4_DecryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size) { u32 operands = ((*dstAddr & INS_OPERANDS_MASK) - ENC_VAL_1) & INS_OPERANDS_MASK; *dstAddr = opcode | operands; - } - break; + } break; case INS_TYPE_B: { u32 *srcAddr = (u32 *)(srcBytes + offset); @@ -144,8 +141,7 @@ u32 RC4_DecryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size) { u32 operands = ((*dstAddr & INS_OPERANDS_MASK) - ENC_VAL_2) & INS_OPERANDS_MASK; *dstAddr = opcode | operands; - } - break; + } break; default: dstBytes[offset] = srcBytes[offset] ^ RC4_Byte(ctx); diff --git a/main.lsf b/main.lsf index f36e657047..bbe56d7b06 100644 --- a/main.lsf +++ b/main.lsf @@ -673,6 +673,11 @@ Overlay OVY_17 Overlay OVY_18 { After main + Object src/poketool/pokefoot.o + Object src/application/pokedex/ov18_021E590C.o + Object src/application/pokedex/ov18_021E5AA0.o + Object src/application/pokedex/ov18_021E5C40.o + Object src/application/pokedex/ov18_021E8BF4.o Object asm/overlay_18.o } Overlay OVY_19 diff --git a/scripts/dump_zukan_data_gira.py b/scripts/dump_zukan_data_gira.py new file mode 100644 index 0000000000..9db643d0ee --- /dev/null +++ b/scripts/dump_zukan_data_gira.py @@ -0,0 +1,188 @@ +#!/usr/bin/env python + +import atexit +import json +import pathlib +import shutil +import string +import struct +import subprocess +from collections.abc import Generator +from typing import Any, TypedDict + + +class Giratina[T](TypedDict): + origin: T + altered: T + + +def remove_unpacked(dir: pathlib.Path): + shutil.rmtree(dir.resolve()) + + +species = [] +with (pathlib.Path() / "include" / "constants" / "species.h").open() as incl_fp: + for line in incl_fp: + if line.startswith("#define SPECIES_"): + species.append(line.split()[1]) + if species[-1] == "SPECIES_ARCEUS": + break + +zukan_data_dir = pathlib.Path() / "zukan_data" +if not zukan_data_dir.exists(): + subprocess.check_call( + [ + "tools/knarc/knarc", + "-u", + "files/application/zukanlist/zkn_data/zukan_data.narc", + "-d", + "zukan_data", + ] + ) + atexit.register(remove_unpacked, zukan_data_dir) +zukan_data_gira_dir = pathlib.Path() / "zukan_data_gira" +if not zukan_data_gira_dir.exists(): + subprocess.check_call( + [ + "tools/knarc/knarc", + "-u", + "files/application/zukanlist/zkn_data/zukan_data_gira.narc", + "-d", + "zukan_data_gira", + ] + ) + atexit.register(remove_unpacked, zukan_data_gira_dir) +zukan_data = { + "mon_stats": [{"species": mon} for mon in species[:494]], + "sorting": [ + { + "type": "dex_order", + "options": [], + }, + { + "type": "letters", + "options": [], + }, + { + "type": "types", + "options": [], + }, + { + "type": "body_style", + "options": [], + }, + { + "type": "letter_groups", + "options": [], + }, + ], +} + + +def read_mon_stat( + file_id: int, nbytes: int = 4, signed: bool = False +) -> Generator[int | Giratina[int], None, Any]: + path = zukan_data_dir / f"zukan_data_{file_id:08d}.bin" + path_gira = zukan_data_gira_dir / f"zukan_data_gira_{file_id:08d}.bin" + + with path.open("rb") as fp, path_gira.open("rb") as fp_gira: + while fp.peek(nbytes): + value = int.from_bytes(fp.read(nbytes), "little", signed=signed) + value_gira = int.from_bytes(fp_gira.read(nbytes), "little", signed=signed) + if value != value_gira: + value = {"altered": value, "origin": value_gira} + yield value + + +def load_mon_stat(name: str, file_id: int, nbytes: int = 4, signed=False) -> None: + for i, value in enumerate(read_mon_stat(file_id, nbytes=nbytes, signed=signed)): + zukan_data["mon_stats"][i][name] = value + + +def read_category(file_id: int) -> list[str] | Giratina[list[str]]: + path = zukan_data_dir / f"zukan_data_{file_id:08d}.bin" + path_gira = zukan_data_gira_dir / f"zukan_data_gira_{file_id:08d}.bin" + + with path.open("rb") as fp: + values = [species[x] for x, in struct.iter_unpack("> 20))) + print( + "tools/nitrogfx/nitrogfx", + file.name.replace(".NCGR", ".png"), + "tmp.NCGR", + *flags, + "&&", + "cmp", + file.name, + "tmp.NCGR", + ";", + "rm", + "-rf", + "tmp.NCGR", + ) + + +if __name__ == "__main__": + main() diff --git a/scripts/resolve_nns_bins.sh b/scripts/resolve_nns_bins.sh index 192f219060..efa1c17be1 100755 --- a/scripts/resolve_nns_bins.sh +++ b/scripts/resolve_nns_bins.sh @@ -56,5 +56,8 @@ for fl in "$dir"/*.bin; do continue fi mv "$fl" "${fl%.*}.$ext" + if [ -n "$lz" ]; then + mv "$fl$lz" "${fl%.*}.$ext$lz" + fi echo "${fl%.*}.$ext$lz" done diff --git a/src/application/pokedex/ov18_021E590C.c b/src/application/pokedex/ov18_021E590C.c new file mode 100644 index 0000000000..05c24748e5 --- /dev/null +++ b/src/application/pokedex/ov18_021E590C.c @@ -0,0 +1,145 @@ +#include "constants/species.h" + +#include "application/pokedex/pokedex_internal.h" +#include "msgdata/msg.naix" + +#include "msgdata.h" +#include "unk_02091278.h" + +#if defined(HEARTGOLD) +#define ZUKAN_FLAVOR_GMM (NARC_msg_msg_0803_bin) +#elif defined(SOULSILVER) +#define ZUKAN_FLAVOR_GMM (NARC_msg_msg_0804_bin) +#else +#error "Unable to determine game" +#endif // HGSS + +static int deadstrip_0(int a0); +static String *ov18_021E5A10(int msgBank, int msgNum, enum HeapID heapId); +static void ov18_021E5A50(u16 species, int language, int *pMsgNo, int *pLanguageFlag, int *pLanguageFlagNativeMask); + +static const int ov18_021F970C[] = { + NARC_msg_msg_0828_bin, + NARC_msg_msg_0823_bin, + NARC_msg_msg_0824_bin, + NARC_msg_msg_0825_bin, + NARC_msg_msg_0826_bin, + NARC_msg_msg_0827_bin, +}; + +static const int ov18_021F96F4[] = { + NARC_msg_msg_0822_bin, + NARC_msg_msg_0817_bin, + NARC_msg_msg_0818_bin, + NARC_msg_msg_0819_bin, + NARC_msg_msg_0820_bin, + NARC_msg_msg_0821_bin, +}; + +static const int ov18_021F9724[] = { + NARC_msg_msg_0810_bin, + NARC_msg_msg_0805_bin, + NARC_msg_msg_0806_bin, + NARC_msg_msg_0807_bin, + NARC_msg_msg_0808_bin, + NARC_msg_msg_0809_bin, +}; + +String *ov18_021E590C(u16 species, int language, enum HeapID heapId) { + int languageMsgNum; + int unused; + int msgNum; + int msgBank; + + ov18_021E5A50(species, language, &languageMsgNum, &unused, &msgNum); + if (msgNum == DEX_LANGUAGE_FLAG_MAX) { + return GetSpeciesName(species, heapId); + } else { + int msgBanks[6]; + ARRAY_ASSIGN(msgBanks, ov18_021F96F4); + + msgBank = msgBanks[msgNum]; + msgNum = languageMsgNum; + } + return ov18_021E5A10(msgBank, msgNum, heapId); +} + +String *ov18_021E595C(u16 species, int language, enum HeapID heapId) { + int languageMsgNum; + int unused; + int msgNum; + int msgBank; + + ov18_021E5A50(species, language, &languageMsgNum, &unused, &msgNum); + if (msgNum == DEX_LANGUAGE_FLAG_MAX) { + msgNum = species; + msgBank = NARC_msg_msg_0816_bin; + } else { + int msgBanks[6]; + ARRAY_ASSIGN(msgBanks, ov18_021F970C); + + msgBank = msgBanks[msgNum]; + msgNum = languageMsgNum; + } + return ov18_021E5A10(msgBank, msgNum, heapId); +} + +String *ov18_021E59A8(u16 species, int language, int a2, enum HeapID heapId) { + int languageMsgNum; + int unused; + int msgNum; + int msgBank; + + ov18_021E5A50(species, language, &languageMsgNum, &unused, &msgNum); + if (msgNum == DEX_LANGUAGE_FLAG_MAX) { + GF_ASSERT(a2 < 1); + msgNum = species + a2; + msgBank = ZUKAN_FLAVOR_GMM; + } else { + int msgBanks[6]; + ARRAY_ASSIGN(msgBanks, ov18_021F9724); + + GF_ASSERT(a2 < 1); + msgBank = msgBanks[msgNum]; + msgNum = languageMsgNum + a2; + } + return ov18_021E5A10(msgBank, msgNum, heapId); +} + +static String *ov18_021E5A10(int msgBank, int msgNum, enum HeapID heapId) { + MsgData *msgData = NewMsgDataFromNarc(MSGDATA_LOAD_LAZY, NARC_msgdata_msg, msgBank, heapId); + if (msgData != NULL) { + String *ret = String_New(256, heapId); + if (ret != NULL) { + ReadMsgDataIntoString(msgData, msgNum, ret); + } + DestroyMsgData(msgData); + return ret; + } + + return NULL; +} + +static inline int ov18_021E5A50_sub(int languageFlag) { + GF_ASSERT(languageFlag < DEX_LANGUAGE_FLAG_MAX); + if (languageFlag == DEX_LANGUAGE_FLAG_NATIVE) { + languageFlag = DEX_LANGUAGE_FLAG_MAX; + } + return languageFlag; +} + +static inline BOOL ov18_021E5A50_sub2(int species, int languageFlag) { + if (species > MAX_SPECIES && languageFlag != DEX_LANGUAGE_FLAG_MAX) { + return FALSE; + } else { + return TRUE; + } +} + +static void ov18_021E5A50(u16 species, int language, int *pMsgNo, int *pLanguageFlag, int *pLanguageFlagNativeMask) { + *pLanguageFlag = LanguageToDexFlag(language); + GF_ASSERT(*pLanguageFlag < DEX_LANGUAGE_FLAG_MAX); + *pMsgNo = species; + *pLanguageFlagNativeMask = ov18_021E5A50_sub(*pLanguageFlag); + GF_ASSERT(ov18_021E5A50_sub2(*pMsgNo, *pLanguageFlagNativeMask)); +} diff --git a/src/application/pokedex/ov18_021E5AA0.c b/src/application/pokedex/ov18_021E5AA0.c new file mode 100644 index 0000000000..d883e0752e --- /dev/null +++ b/src/application/pokedex/ov18_021E5AA0.c @@ -0,0 +1,86 @@ +#include + +#include "application/pokedex/pokedex_internal.h" + +#include "dex_mon_measures.h" +#include "overlay_18.h" +#include "sound_02004A44.h" + +FS_EXTERN_OVERLAY(ds_protect); + +void ov18_021E5C1C(void); +void ov18_021E5C2C(void); +void ov18_021E5C3C(void); + +BOOL Pokedex_Init(OverlayManager *man, int *state) { + PokedexAppData *appData; + + Heap_Create(HEAP_ID_3, HEAP_ID_POKEDEX_APP, 0x61000); + appData = OverlayManager_CreateAndGetData(man, sizeof(PokedexAppData), HEAP_ID_POKEDEX_APP); + MI_CpuClear8(appData, sizeof(PokedexAppData)); + appData->args = OverlayManager_GetArgs(man); + appData->unk_085C = 5; + appData->unk_1858 = sub_02092BE0(appData->args->unk_08); + if (Pokedex_GetNatDexFlag(appData->args->pokedex)) { + appData->unk_1860 = TRUE; + if (appData->unk_1858 == 2) { + appData->unk_1858 = 1; + } + } else { + appData->unk_1860 = FALSE; + if (appData->unk_1858 == 2) { + appData->unk_1858 = 0; + } + } + if (Pokedex_CheckMonCaughtFlag(appData->args->pokedex, SPECIES_GIRATINA) == TRUE) { + SetDexBanksByGiratinaForm(Pokedex_GetSeenFormByIdx(appData->args->pokedex, SPECIES_GIRATINA, 0)); + } else { + SetDexBanksByGiratinaForm(GIRATINA_ALTERED); + } + GF_SndHandleSetPlayerVolume(1, 42); + appData->unk_185C = 2; + return TRUE; +} + +BOOL Pokedex_Main(OverlayManager *man, int *state) { + PokedexAppData *appData = OverlayManager_GetData(man); + + if (!PokedexApp_RunMainSeq(appData, state)) { + return TRUE; + } else { + return FALSE; + } +} + +BOOL Pokedex_Exit(OverlayManager *man, int *state) { + PokedexAppData *appData = OverlayManager_GetData(man); + + FS_LoadOverlay(MI_PROCESSOR_ARM9, FS_OVERLAY_ID(ds_protect)); + if (DSProt_DetectEmulator(ov18_021E5C1C)) { + Heap_AllocAtEnd(HEAP_ID_3, 1000); + } + sub_02092BD8(appData->args->unk_08, ov18_021F8838(appData), appData->unk_1858); + if (DSProt_DetectFlashcart(ov18_021E5C2C)) { + Heap_AllocAtEnd(HEAP_ID_3, 1000); + } + OverlayManager_FreeData(man); + Heap_Destroy(HEAP_ID_POKEDEX_APP); + GF_SndHandleSetPlayerVolume(1, 127); + sub_02004B10(); + if (!DSProt_DetectNotDummy(ov18_021E5C3C)) { + Heap_AllocAtEnd(HEAP_ID_3, 1000); + } + FS_UnloadOverlay(MI_PROCESSOR_ARM9, FS_OVERLAY_ID(ds_protect)); + return TRUE; +} + +void ov18_021E5C1C(void) { + Heap_AllocAtEnd(HEAP_ID_3, 1000); +} + +void ov18_021E5C2C(void) { + Heap_AllocAtEnd(HEAP_ID_3, 1000); +} + +void ov18_021E5C3C(void) { +} diff --git a/src/application/pokedex/ov18_021E5C40.c b/src/application/pokedex/ov18_021E5C40.c new file mode 100644 index 0000000000..46806f1e09 --- /dev/null +++ b/src/application/pokedex/ov18_021E5C40.c @@ -0,0 +1,2104 @@ +#include "constants/maps.h" + +#include "application/pokedex/pokedex_internal.h" +#include "application/pokedex/pokedex_internal_constants.h" +#include "application/zukanlist/zkn_data/zukan_data.naix" +#include "application/zukanlist/zkn_data/zukan_enc.naix" +#include "application/zukanlist/zkn_data/zukan_hw_data.naix" +#include "graphic/zukan_gra.naix" +#include "msgdata/msg.naix" + +#include "dex_mon_measures.h" +#include "gf_gfx_loader.h" +#include "pokedex_util.h" +#include "sprite_system.h" +#include "unk_02005D10.h" +#include "unk_02091278.h" +#include "unk_020912AC.h" + +static void ov18_021E5FA4(void); +static void ov18_021E5FE8(void); +static void ov18_021E602C(void); +static void ov18_021E6070(void); +static void ov18_021E60B4(void); +static void ov18_021E60F8(void); +static void ov18_021E6868(PokedexAppData *pokedexApp); +static void PokedexApp_3DigitNumToTiles(u16 *a0, u16 a1, u16 a2); +static void ov18_021E7048(PokedexAppData *pokedexApp); +static void ov18_021E7448(PokedexAppData *pokedexApp, const UnkStruct_ov18_021F9780 *a1, BOOL a2); +static void ov18_021E7490(PokedexAppData *pokedexApp, const UnkStruct_ov18_021F9780 *a1, u32 *a2, int a3); +static void ov18_021E7564(PokedexAppData *pokedexApp); +static void ov18_021E7628(PokedexAppData *pokedexApp, u32 a1, BOOL a2); +static void ov18_021E76A4(PokedexAppData *pokedexApp, u32 a1, BOOL a2); +static void ov18_021E7A3C(PokedexAppData *pokedexApp); +static void ov18_021E7BD0(PokedexAppData *pokedexApp); +static void ov18_021E7D90(PokedexAppData *pokedexApp); +static void ov18_021E7ED8(PokedexAppData *pokedexApp); +static u8 ov18_021E83D0(PokedexAppData *pokedexApp, u8 idx); +static void ov18_021E8698(PokedexAppData_UnkSub18DC_0 *a0, u16 species, int a2); +static void ov18_021E8714(PokedexAppData *pokedexApp, PokedexAppData_UnkSub18DC_0 *a1, int a2, int a3); +static void ov18_021E8878(PokedexAppData *pokedexApp, PokedexAppData_UnkSub18DC_0 *a1, int a2, int a3, int a4); +static u32 ov18_021E89DC(u32 a0); +static void ov18_021E8A00(PokedexAppData *pokedexApp); +static u32 ov18_021E8B40(void); +static u32 ov18_021E8B78(void); + +static const u16 sOverworldMapIDs[70] = { + 0xFFFF, + MAP_NEW_BARK, + MAP_ROUTE_29, + MAP_CHERRYGROVE, + MAP_ROUTE_30, + MAP_ROUTE_31, + MAP_VIOLET, + MAP_ROUTE_32, + MAP_ROUTE_33, + MAP_ROUTE_34, + MAP_ROUTE_35, + MAP_ROUTE_36, + MAP_ROUTE_37, + MAP_ECRUTEAK, + MAP_ROUTE_38, + MAP_ROUTE_39, + MAP_OLIVINE, + MAP_ROUTE_40, + MAP_ROUTE_41, + MAP_CIANWOOD, + MAP_ROUTE_42, + MAP_ROUTE_43, + MAP_LAKE_OF_RAGE, + MAP_ROUTE_44, + MAP_BLACKTHORN, + MAP_ROUTE_45, + MAP_ROUTE_46, + MAP_ROUTE_47, + MAP_MOUNT_SILVER, + MAP_ROUTE_12, + MAP_ROUTE_19, + MAP_ROUTE_20, + MAP_PALLET, + MAP_VIRIDIAN, + MAP_CERULEAN, + MAP_VERMILION, + MAP_CELADON, + MAP_FUCHSIA, + MAP_CINNABAR_ISLAND, + MAP_ROUTE_48, + MAP_ROUTE_26, + MAP_ROUTE_27, + MAP_ROUTE_28, + MAP_ROUTE_1, + MAP_ROUTE_2, + MAP_ROUTE_3, + MAP_ROUTE_4, + MAP_ROUTE_5, + MAP_ROUTE_6, + MAP_ROUTE_7, + MAP_ROUTE_8, + MAP_ROUTE_9, + MAP_ROUTE_10, + MAP_ROUTE_11, + MAP_ROUTE_13, + MAP_ROUTE_14, + MAP_ROUTE_15, + MAP_ROUTE_16_EAST, + MAP_ROUTE_17, + MAP_ROUTE_18, + MAP_ROUTE_21, + MAP_ROUTE_22, + MAP_ROUTE_24, + MAP_ROUTE_25, + MAP_ROUTE_2_EAST, + MAP_PEWTER, + MAP_AZALEA, + MAP_SAFARI_ZONE_GATE, + MAP_ROUTE_16, + 0xFFFF, +}; + +static const u16 sDungeonMapIDs[] = { + 0xFFFF, + MAP_SPROUT_TOWER_2F, + MAP_RUINS_OF_ALPH, + MAP_UNION_CAVE_1F, + MAP_SLOWPOKE_WELL_B1F, + MAP_ILEX_FOREST, + MAP_NATIONAL_PARK, + MAP_BURNED_TOWER_1F, + MAP_BELL_TOWER_2F, + MAP_WHIRL_ISLANDS_1F, + MAP_MOUNT_MORTAR_1F_ENTRANCE, + MAP_ICE_PATH_1F, + MAP_DRAGONS_DEN, + MAP_DARK_CAVE_ROUTE_31_SIDE, + MAP_MOUNT_MOON_SQUARE, + MAP_SEAFOAM_ISLANDS_1F, + MAP_MOUNT_SILVER_CAVE_MOLTRES_CHAMBER, + MAP_CLIFF_EDGE_GATE, + MAP_CLIFF_CAVE, + MAP_SS_AQUA_OLIVINE_PORT_INTERIOR, + MAP_ROCK_TUNNEL_1F, + MAP_VICTORY_ROAD_1F, + MAP_TOHJO_FALLS, + MAP_DIGLETT_CAVE, + MAP_VIRIDIAN_FOREST, + MAP_CERULEAN_CAVE_1F, +}; + +static const int sMapIDs_Alphabetical[142] = { + MAP_ROUTE_1, + MAP_ROUTE_2, + MAP_ROUTE_2_EAST, + MAP_ROUTE_3, + MAP_ROUTE_4, + MAP_ROUTE_5, + MAP_ROUTE_6, + MAP_ROUTE_7, + MAP_ROUTE_8, + MAP_ROUTE_9, + MAP_ROUTE_10, + MAP_ROUTE_11, + MAP_ROUTE_12, + MAP_ROUTE_13, + MAP_ROUTE_14, + MAP_ROUTE_15, + MAP_ROUTE_16_EAST, + MAP_ROUTE_16, + MAP_ROUTE_17, + MAP_ROUTE_18, + MAP_ROUTE_19, + MAP_ROUTE_20, + MAP_ROUTE_21, + MAP_ROUTE_22, + MAP_ROUTE_24, + MAP_ROUTE_25, + MAP_ROUTE_26, + MAP_ROUTE_27, + MAP_ROUTE_28, + MAP_ROUTE_29, + MAP_ROUTE_30, + MAP_ROUTE_31, + MAP_ROUTE_32, + MAP_ROUTE_33, + MAP_ROUTE_34, + MAP_ROUTE_35, + MAP_ROUTE_36, + MAP_ROUTE_37, + MAP_ROUTE_38, + MAP_ROUTE_39, + MAP_ROUTE_40, + MAP_ROUTE_41, + MAP_ROUTE_42, + MAP_ROUTE_43, + MAP_ROUTE_44, + MAP_ROUTE_45, + MAP_ROUTE_46, + MAP_ROUTE_47, + MAP_ROUTE_48, + MAP_AZALEA, + MAP_BELL_TOWER_2F, + MAP_BELL_TOWER_3F, + MAP_BELL_TOWER_4F, + MAP_BELL_TOWER_5F, + MAP_BELL_TOWER_6F, + MAP_BELL_TOWER_7F, + MAP_BELL_TOWER_8F, + MAP_BELL_TOWER_9F, + MAP_BELL_TOWER_10F, + MAP_BLACKTHORN, + MAP_BURNED_TOWER_1F, + MAP_BURNED_TOWER_B1F, + MAP_CELADON, + MAP_CERULEAN_CAVE_1F, + MAP_CERULEAN_CAVE_2F, + MAP_CERULEAN_CAVE_B1F, + MAP_CERULEAN, + MAP_CHERRYGROVE, + MAP_CIANWOOD, + MAP_CINNABAR_ISLAND, + MAP_CLIFF_CAVE, + MAP_CLIFF_EDGE_GATE, + MAP_DIGLETT_CAVE, + MAP_DARK_CAVE_ROUTE_45_SIDE, + MAP_DARK_CAVE_ROUTE_31_SIDE, + MAP_DRAGONS_DEN, + MAP_ECRUTEAK, + MAP_FUCHSIA, + MAP_ICE_PATH_1F, + MAP_ICE_PATH_B1F, + MAP_ICE_PATH_B2F, + MAP_ICE_PATH_B3F, + MAP_ILEX_FOREST, + MAP_LAKE_OF_RAGE, + MAP_MOUNT_MOON, + MAP_MOUNT_MOON_SQUARE_ENTRANCE, + MAP_MOUNT_MOON_SQUARE, + MAP_MOUNT_MOON_SQUARE_CLEFAIRY_EVENT, + MAP_MOUNT_MORTAR_1F_ENTRANCE, + MAP_MOUNT_MORTAR_1F_BACK, + MAP_MOUNT_MORTAR_2F, + MAP_MOUNT_MORTAR_B1F, + MAP_MOUNT_SILVER, + MAP_MOUNT_SILVER_CAVE_1F, + MAP_MOUNT_SILVER_CAVE_UPPER_MOUNTAINSIDE, + MAP_MOUNT_SILVER_CAVE_LOWER_MOUNTAINSIDE, + MAP_MOUNT_SILVER_CAVE_EXPERT_BELT_CHAMBER, + MAP_MOUNT_SILVER_CAVE_MOLTRES_CHAMBER, + MAP_MOUNT_SILVER_CAVE_2F, + MAP_MOUNT_SILVER_CAVE_3F, + MAP_NATIONAL_PARK, + MAP_NATIONAL_PARK_BUG_CATCHING_CONTEST, + MAP_NEW_BARK, + MAP_SS_AQUA_OLIVINE_PORT_INTERIOR, + MAP_OLIVINE, + MAP_PALLET, + MAP_PEWTER, + MAP_ROCK_TUNNEL_1F, + MAP_ROCK_TUNNEL_B1F, + MAP_RUINS_OF_ALPH, + MAP_RUINS_OF_ALPH_UNDERGROUND_HALL, + MAP_RUINS_OF_ALPH_UNDERGROUND_HALL_SINJOH_EVENT, + MAP_RUINS_OF_ALPH_HALL_ENTRANCE_SINJOH_EVENT, + MAP_RUINS_OF_ALPH_UNDERGROUND_HALL_SINJOH_EVENT_2, + MAP_SLOWPOKE_WELL_B1F, + MAP_SLOWPOKE_WELL_B2F, + MAP_SAFARI_ZONE_ENTRANCE_EXTERIOR, + MAP_SAFARI_ZONE_GATE, + MAP_SEAFOAM_ISLANDS_1F, + MAP_SEAFOAM_ISLANDS_B1F, + MAP_SEAFOAM_ISLANDS_B2F, + MAP_SEAFOAM_ISLANDS_B3F, + MAP_SEAFOAM_ISLANDS_B4F, + MAP_SPROUT_TOWER_2F, + MAP_SPROUT_TOWER_3F, + MAP_TOHJO_FALLS, + MAP_TOHJO_FALLS_HIDDEN_ROOM, + MAP_UNION_CAVE_1F, + MAP_UNION_CAVE_B1F, + MAP_UNION_CAVE_B2F, + MAP_VERMILION, + MAP_VICTORY_ROAD_1F, + MAP_VICTORY_ROAD_2F, + MAP_VICTORY_ROAD_3F, + MAP_VIOLET, + MAP_VIRIDIAN, + MAP_VIRIDIAN_FOREST, + MAP_WHIRL_ISLANDS_1F, + MAP_WHIRL_ISLANDS_B1F, + MAP_WHIRL_ISLANDS_B2F, + MAP_WHIRL_ISLANDS_B3F, + MAP_WHIRL_ISLANDS_B3F_LUGIA_CAVE, +}; + +static const GraphicsBanks sGraphicsBanks = { + .bg = GX_VRAM_BG_128_B, + .bgextpltt = GX_VRAM_BGEXTPLTT_NONE, + .subbg = GX_VRAM_SUB_BG_128_C, + .subbgextpltt = GX_VRAM_SUB_BGEXTPLTT_NONE, + .obj = GX_VRAM_OBJ_64_E, + .objextpltt = GX_VRAM_OBJEXTPLTT_NONE, + .subobj = GX_VRAM_SUB_OBJ_16_I, + .subobjextpltt = GX_VRAM_SUB_OBJEXTPLTT_NONE, + .tex = GX_VRAM_TEX_0_A, + .texpltt = GX_VRAM_TEXPLTT_01_FG, +}; + +static const u8 sLanguages[6] = { + LANGUAGE_JAPANESE, + LANGUAGE_ENGLISH, + LANGUAGE_FRENCH, + LANGUAGE_ITALIAN, + LANGUAGE_GERMAN, + LANGUAGE_SPANISH, +}; + +static const UnkStruct_ov18_021F9780 ov18_021F9780[] = { + { 3, 6, 11, 2 }, + { 18, 6, 11, 2 }, + { 3, 10, 11, 2 }, + { 18, 10, 11, 2 }, + { 3, 14, 11, 2 }, + { 18, 14, 11, 2 }, +}; + +static const UnkStruct_ov18_021F9780 ov18_021F990C[18] = { + { 0, 5, 8, 2 }, + { 8, 5, 8, 2 }, + { 16, 5, 8, 2 }, + { 24, 5, 8, 2 }, + { 0, 8, 8, 2 }, + { 8, 8, 8, 2 }, + { 16, 8, 8, 2 }, + { 24, 8, 8, 2 }, + { 0, 11, 8, 2 }, + { 8, 11, 8, 2 }, + { 16, 11, 8, 2 }, + { 24, 11, 8, 2 }, + { 0, 14, 8, 2 }, + { 8, 14, 8, 2 }, + { 16, 14, 8, 2 }, + { 24, 14, 8, 2 }, + { 0, 17, 8, 2 }, + { 8, 17, 8, 2 }, +}; + +static const UnkStruct_ov18_021F9780 ov18_021F9770[] = { + { 6, 8, 7, 2 }, + { 19, 8, 7, 2 }, + { 6, 15, 7, 2 }, + { 19, 15, 7, 2 }, +}; + +static const u8 ov18_021F9C20[] = { + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 27, +}; + +void ov18_021E5C40(void *cb_arg) { + PokedexAppData *pokedexApp = cb_arg; + + PaletteData_PushTransparentBuffers(pokedexApp->paletteData); + ov18_021E7A3C(pokedexApp); + DoScheduledBgGpuUpdates(pokedexApp->bgConfig); + SpriteSystem_TransferOam(); + OS_SetIrqCheckFlag(OS_IE_V_BLANK); +} + +void ov18_021E5C74(void) { + GfGfx_SetBanks(&sGraphicsBanks); +} + +void ov18_021E5C84(PokedexAppData *pokedexApp) { + pokedexApp->bgConfig = BgConfig_Alloc(HEAP_ID_POKEDEX_APP); + + { + GraphicsModes graphicsModes = { + GX_DISPMODE_GRAPHICS, + GX_BGMODE_0, + GX_BGMODE_0, + GX_BG0_AS_2D, + }; + + SetBothScreensModesAndDisable(&graphicsModes); + } + + { + BgTemplate bgTemplate = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_512x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_512x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xf000, + .charBase = GX_BG_CHARBASE_0x00000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 2, + .areaOver = GX_BG_AREAOVER_XLU, + .dummy = 0, + .mosaic = 0, + }; + + InitBgFromTemplate(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, &bgTemplate, GF_BG_TYPE_TEXT); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_0); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_0, 0x20, 0, HEAP_ID_POKEDEX_APP); + } + + { + BgTemplate bgTemplate = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xe800, + .charBase = GX_BG_CHARBASE_0x10000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 0, + .areaOver = GX_BG_AREAOVER_XLU, + .dummy = 0, + .mosaic = 0, + }; + + InitBgFromTemplate(pokedexApp->bgConfig, GF_BG_LYR_MAIN_1, &bgTemplate, GF_BG_TYPE_TEXT); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_1); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_1, 0x20, 0, HEAP_ID_POKEDEX_APP); + } + + { + BgTemplate bgTemplate = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xe000, + .charBase = GX_BG_CHARBASE_0x14000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 1, + .areaOver = GX_BG_AREAOVER_XLU, + .dummy = 0, + .mosaic = 0, + }; + + InitBgFromTemplate(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, &bgTemplate, GF_BG_TYPE_TEXT); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_2); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_2, 0x20, 0, HEAP_ID_POKEDEX_APP); + } + + { + BgTemplate bgTemplate = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xd800, + .charBase = GX_BG_CHARBASE_0x18000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 3, + .areaOver = GX_BG_AREAOVER_XLU, + .dummy = 0, + .mosaic = 0, + }; + + InitBgFromTemplate(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, &bgTemplate, GF_BG_TYPE_TEXT); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_3); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_3, 0x20, 0, HEAP_ID_POKEDEX_APP); + } + + { + BgTemplate bgTemplate = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_512x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_512x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xf000, + .charBase = GX_BG_CHARBASE_0x10000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 0, + .areaOver = GX_BG_AREAOVER_XLU, + .dummy = 0, + .mosaic = 0, + }; + + InitBgFromTemplate(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, &bgTemplate, GF_BG_TYPE_TEXT); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_0); + BG_ClearCharDataRange(GF_BG_LYR_SUB_0, 0x20, 0, HEAP_ID_POKEDEX_APP); + } + + { + BgTemplate bgTemplate = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xe800, + .charBase = GX_BG_CHARBASE_0x00000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 1, + .areaOver = GX_BG_AREAOVER_XLU, + .dummy = 0, + .mosaic = 0, + }; + + InitBgFromTemplate(pokedexApp->bgConfig, GF_BG_LYR_SUB_1, &bgTemplate, GF_BG_TYPE_TEXT); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_1); + BG_ClearCharDataRange(GF_BG_LYR_SUB_1, 0x20, 0, HEAP_ID_POKEDEX_APP); + } + + { + BgTemplate bgTemplate = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xe000, + .charBase = GX_BG_CHARBASE_0x14000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 2, + .areaOver = GX_BG_AREAOVER_XLU, + .dummy = 0, + .mosaic = 0, + }; + + InitBgFromTemplate(pokedexApp->bgConfig, GF_BG_LYR_SUB_2, &bgTemplate, GF_BG_TYPE_TEXT); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_2); + BG_ClearCharDataRange(GF_BG_LYR_SUB_2, 0x20, 0, HEAP_ID_POKEDEX_APP); + } + + { + BgTemplate bgTemplate = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xd800, + .charBase = GX_BG_CHARBASE_0x18000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 3, + .areaOver = GX_BG_AREAOVER_XLU, + .dummy = 0, + .mosaic = 0, + }; + + InitBgFromTemplate(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, &bgTemplate, GF_BG_TYPE_TEXT); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_3); + BG_ClearCharDataRange(GF_BG_LYR_SUB_3, 0x20, 0, HEAP_ID_POKEDEX_APP); + } +} + +void ov18_021E5E70(PokedexAppData *pokedexApp, BOOL a1) { + FreeBgTilemapBuffer(pokedexApp->bgConfig, GF_BG_LYR_SUB_3); + if (!a1) { + { + GraphicsModes graphicsModes = { + GX_DISPMODE_GRAPHICS, + GX_BGMODE_0, + GX_BGMODE_0, + GX_BG0_AS_2D, + }; + + SetScreenModeAndDisable(&graphicsModes, SCREEN_SUB); + } + + { + BgTemplate bgTemplate = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xd800, + .charBase = GX_BG_CHARBASE_0x18000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 3, + .areaOver = GX_BG_AREAOVER_XLU, + .dummy = 0, + .mosaic = 0, + }; + + InitBgFromTemplate(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, &bgTemplate, GF_BG_TYPE_TEXT); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_3); + BG_ClearCharDataRange(GF_BG_LYR_SUB_3, 0x20, 0, HEAP_ID_POKEDEX_APP); + } + } else { + { + GraphicsModes graphicsModes = { + GX_DISPMODE_GRAPHICS, + GX_BGMODE_0, + GX_BGMODE_1, + GX_BG0_AS_2D, + }; + + SetScreenModeAndDisable(&graphicsModes, SCREEN_SUB); + } + + { + BgTemplate bgTemplate = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_8BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_256, + .screenBase = GX_BG_SCRBASE_0xd800, + .charBase = GX_BG_CHARBASE_0x18000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 2, + .areaOver = GX_BG_AREAOVER_XLU, + .dummy = 0, + .mosaic = 0, + }; + + InitBgFromTemplate(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, &bgTemplate, GF_BG_TYPE_AFFINE); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_3); + BG_ClearCharDataRange(GF_BG_LYR_SUB_3, 0x40, 0, HEAP_ID_POKEDEX_APP); + } + } + + GfGfx_EngineBTogglePlanes(GX_PLANEMASK_BG0, GF_PLANE_TOGGLE_ON); + GfGfx_EngineBTogglePlanes(GX_PLANEMASK_BG1, GF_PLANE_TOGGLE_ON); + GfGfx_EngineBTogglePlanes(GX_PLANEMASK_BG2, GF_PLANE_TOGGLE_ON); + GfGfx_EngineBTogglePlanes(GX_PLANEMASK_BG3, GF_PLANE_TOGGLE_ON); + GfGfx_EngineBTogglePlanes(GX_PLANEMASK_OBJ, GF_PLANE_TOGGLE_ON); +} + +void ov18_021E5F58(PokedexAppData *pokedexApp) { + FreeBgTilemapBuffer(pokedexApp->bgConfig, GF_BG_LYR_SUB_3); + FreeBgTilemapBuffer(pokedexApp->bgConfig, GF_BG_LYR_SUB_2); + FreeBgTilemapBuffer(pokedexApp->bgConfig, GF_BG_LYR_SUB_1); + FreeBgTilemapBuffer(pokedexApp->bgConfig, GF_BG_LYR_SUB_0); + FreeBgTilemapBuffer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3); + FreeBgTilemapBuffer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); + FreeBgTilemapBuffer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_1); + FreeBgTilemapBuffer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); + Heap_Free(pokedexApp->bgConfig); +} + +static void ov18_021E5FA4(void) { + // main bg + SetBgPriority(GF_BG_LYR_MAIN_0, 2); + SetBgPriority(GF_BG_LYR_MAIN_1, 0); + SetBgPriority(GF_BG_LYR_MAIN_2, 1); + SetBgPriority(GF_BG_LYR_MAIN_3, 3); + + // sub bg + SetBgPriority(GF_BG_LYR_SUB_0, 0); + SetBgPriority(GF_BG_LYR_SUB_1, 1); + SetBgPriority(GF_BG_LYR_SUB_2, 2); + SetBgPriority(GF_BG_LYR_SUB_3, 3); +} + +static void ov18_021E5FE8(void) { + // main bg + SetBgPriority(GF_BG_LYR_MAIN_0, 1); + SetBgPriority(GF_BG_LYR_MAIN_1, 0); + SetBgPriority(GF_BG_LYR_MAIN_2, 2); + SetBgPriority(GF_BG_LYR_MAIN_3, 3); + + // sub bg + SetBgPriority(GF_BG_LYR_SUB_0, 0); + SetBgPriority(GF_BG_LYR_SUB_1, 1); + SetBgPriority(GF_BG_LYR_SUB_2, 2); + SetBgPriority(GF_BG_LYR_SUB_3, 3); +} + +static void ov18_021E602C(void) { + // main bg + SetBgPriority(GF_BG_LYR_MAIN_0, 1); + SetBgPriority(GF_BG_LYR_MAIN_1, 0); + SetBgPriority(GF_BG_LYR_MAIN_2, 2); + SetBgPriority(GF_BG_LYR_MAIN_3, 3); + + // sub bg + SetBgPriority(GF_BG_LYR_SUB_0, 0); + SetBgPriority(GF_BG_LYR_SUB_1, 1); + SetBgPriority(GF_BG_LYR_SUB_2, 2); + SetBgPriority(GF_BG_LYR_SUB_3, 3); +} + +static void ov18_021E6070(void) { + // main bg + SetBgPriority(GF_BG_LYR_MAIN_0, 1); + SetBgPriority(GF_BG_LYR_MAIN_1, 0); + SetBgPriority(GF_BG_LYR_MAIN_2, 2); + SetBgPriority(GF_BG_LYR_MAIN_3, 3); + + // sub bg + SetBgPriority(GF_BG_LYR_SUB_0, 3); + SetBgPriority(GF_BG_LYR_SUB_1, 0); + SetBgPriority(GF_BG_LYR_SUB_2, 1); + SetBgPriority(GF_BG_LYR_SUB_3, 2); +} + +static void ov18_021E60B4(void) { + // main bg + SetBgPriority(GF_BG_LYR_MAIN_0, 1); + SetBgPriority(GF_BG_LYR_MAIN_1, 0); + SetBgPriority(GF_BG_LYR_MAIN_2, 2); + SetBgPriority(GF_BG_LYR_MAIN_3, 3); + + // sub bg + SetBgPriority(GF_BG_LYR_SUB_0, 0); + SetBgPriority(GF_BG_LYR_SUB_1, 1); + SetBgPriority(GF_BG_LYR_SUB_2, 3); + SetBgPriority(GF_BG_LYR_SUB_3, 2); +} + +static void ov18_021E60F8(void) { + // main bg + SetBgPriority(GF_BG_LYR_MAIN_0, 1); + SetBgPriority(GF_BG_LYR_MAIN_1, 0); + SetBgPriority(GF_BG_LYR_MAIN_2, 2); + SetBgPriority(GF_BG_LYR_MAIN_3, 3); + + // sub bg + SetBgPriority(GF_BG_LYR_SUB_0, 0); + SetBgPriority(GF_BG_LYR_SUB_1, 1); + SetBgPriority(GF_BG_LYR_SUB_2, 3); + SetBgPriority(GF_BG_LYR_SUB_3, 2); +} + +void ov18_021E613C(PokedexAppData *pokedexApp, u8 bgId) { + u8 width; + + if (bgId == GF_BG_LYR_MAIN_0 || bgId == GF_BG_LYR_SUB_0) { + width = 0x40; + } else { + width = 0x20; + } + + FillBgTilemapRect(pokedexApp->bgConfig, bgId, 0, 0, 0, width, 0x20, 0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, bgId); +} + +void ov18_021E6174(void) { + G2_SetBlendAlpha(0, GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_BG3, 6, 10); +} + +void ov18_021E618C(u8 ev1, u8 ev2) { + G2_SetBlendAlpha(GX_PLANEMASK_BG2, GX_PLANEMASK_BG3, ev1, ev2); +} + +void ov18_021E61A4(PokedexAppData *pokedexApp) { + pokedexApp->paletteData = PaletteData_Init(HEAP_ID_POKEDEX_APP); + ZeroPalettesByBitmask(PLTTBUF_MAIN_BG_F | PLTTBUF_SUB_BG_F | PLTTBUF_MAIN_OBJ_F | PLTTBUF_SUB_OBJ_F, HEAP_ID_POKEDEX_APP); + PaletteData_AllocBuffers(pokedexApp->paletteData, PLTTBUF_MAIN_BG, 0x200, HEAP_ID_POKEDEX_APP); + PaletteData_AllocBuffers(pokedexApp->paletteData, PLTTBUF_SUB_BG, 0x200, HEAP_ID_POKEDEX_APP); + PaletteData_AllocBuffers(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ, 0x200, HEAP_ID_POKEDEX_APP); + PaletteData_AllocBuffers(pokedexApp->paletteData, PLTTBUF_SUB_OBJ, 0x200, HEAP_ID_POKEDEX_APP); +} + +void ov18_021E6204(PokedexAppData *pokedexApp) { + PaletteData_FreeBuffers(pokedexApp->paletteData, PLTTBUF_SUB_OBJ); + PaletteData_FreeBuffers(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ); + PaletteData_FreeBuffers(pokedexApp->paletteData, PLTTBUF_SUB_BG); + PaletteData_FreeBuffers(pokedexApp->paletteData, PLTTBUF_MAIN_BG); + PaletteData_Free(pokedexApp->paletteData); +} + +void ov18_021E6244(PokedexAppData *pokedexApp) { + pokedexApp->msgData = NewMsgDataFromNarc(MSGDATA_LOAD_DIRECT, NARC_msgdata_msg, NARC_msg_msg_0802_bin, HEAP_ID_POKEDEX_APP); + pokedexApp->msgFormat = MessageFormat_New(HEAP_ID_POKEDEX_APP); + pokedexApp->strBufFormatted = String_New(0x400, HEAP_ID_POKEDEX_APP); +} + +void ov18_021E6280(PokedexAppData *pokedexApp) { + String_Delete(pokedexApp->strBufFormatted); + MessageFormat_Delete(pokedexApp->msgFormat); + DestroyMsgData(pokedexApp->msgData); +} + +void ov18_021E62A8(PokedexAppData *pokedexApp) { + NARC *narc = NARC_New(NARC_application_zukanlist_zkn_data_zukan_hw_data, HEAP_ID_POKEDEX_APP); + pokedexApp->unk_1850 = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_hw_data_zukan_hw_data_0_bin, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + pokedexApp->unk_1854 = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_hw_data_zukan_hw_data_1_bin, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + NARC_Delete(narc); +} + +void ov18_021E62E8(PokedexAppData *pokedexApp) { + Heap_Free(pokedexApp->unk_1854); + Heap_Free(pokedexApp->unk_1850); +} + +void ov18_021E6308(PokedexAppData *pokedexApp) { + pokedexApp->unk_0008 = sub_0201956C(pokedexApp->bgConfig, 2, 24, HEAP_ID_POKEDEX_APP); + sub_020195F4(pokedexApp->unk_0008, 0, 2, 32, 5); + sub_020195F4(pokedexApp->unk_0008, 1, 2, 32, 5); + sub_020195F4(pokedexApp->unk_0008, 2, 0, 22, 4); + sub_020195F4(pokedexApp->unk_0008, 3, 0, 22, 4); + sub_020195F4(pokedexApp->unk_0008, 4, 2, 32, 4); + sub_020195F4(pokedexApp->unk_0008, 5, 3, 32, 5); + sub_020195F4(pokedexApp->unk_0008, 6, 1, 32, 4); + sub_020195F4(pokedexApp->unk_0008, 7, 1, 32, 4); + sub_020195F4(pokedexApp->unk_0008, 8, 2, 32, 5); + sub_020195F4(pokedexApp->unk_0008, 9, 0, 32, 24); + sub_020195F4(pokedexApp->unk_0008, 10, 2, 32, 24); + sub_020195F4(pokedexApp->unk_0008, 11, 5, 32, 24); + sub_020195F4(pokedexApp->unk_0008, 12, 6, 32, 24); + sub_020195F4(pokedexApp->unk_0008, 13, 4, 32, 24); + sub_020195F4(pokedexApp->unk_0008, 15, 0, 32, 24); + sub_020195F4(pokedexApp->unk_0008, 14, 0, 3, 24); + sub_020195F4(pokedexApp->unk_0008, 16, 1, 32, 4); + sub_020195F4(pokedexApp->unk_0008, 23, 7, 20, 4); + sub_020196B8(pokedexApp->unk_0008, 0, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000005_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 1, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000006_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 2, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000007_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 3, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000008_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 4, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000009_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 5, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000010_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 6, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000069_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 7, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000070_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 8, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000071_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 13, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000016_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 16, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000011_NSCR_lz, 1); + sub_020196B8(pokedexApp->unk_0008, 23, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000088_NSCR_lz, 1); + sub_02019B70(pokedexApp->unk_0008, 11, 0, 32, 0, 19); + sub_02019B70(pokedexApp->unk_0008, 12, 0, 32, 0, 19); + ov18_021F0168(pokedexApp); +} + +void ov18_021E6540(PokedexAppData *pokedexApp) { + sub_020195C0(pokedexApp->unk_0008); +} + +void ov18_021E654C(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 0, 0, 24); + sub_020198FC(pokedexApp->unk_0008, 0, 0, -1, 5); +} + +void ov18_021E6574(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 0, 0, 19); + sub_020198FC(pokedexApp->unk_0008, 0, 0, 1, 5); +} + +void ov18_021E659C(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 4, 0, 15); +} + +void ov18_021E65AC(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 1, 0, 24); + sub_020198FC(pokedexApp->unk_0008, 1, 0, -1, 5); +} + +void ov18_021E65D4(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 1, 0, 19); + sub_020198FC(pokedexApp->unk_0008, 1, 0, 1, 5); +} + +void ov18_021E65FC(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 6, 0, 24); + sub_020198FC(pokedexApp->unk_0008, 6, 0, -1, 4); +} + +void ov18_021E6624(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 6, 0, 20); + sub_020198FC(pokedexApp->unk_0008, 6, 0, 1, 4); +} + +void ov18_021E664C(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 7, 0, 24); + sub_020198FC(pokedexApp->unk_0008, 7, 0, -1, 4); +} + +void ov18_021E6674(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 7, 0, 20); + sub_020198FC(pokedexApp->unk_0008, 7, 0, 1, 4); +} + +void ov18_021E669C(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 8, 0, 24); + sub_020198FC(pokedexApp->unk_0008, 8, 0, -1, 5); +} + +void ov18_021E66C4(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 8, 0, 19); + sub_020198FC(pokedexApp->unk_0008, 8, 0, 1, 5); +} + +void ov18_021E66EC(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 16, 0, 24); + sub_020198FC(pokedexApp->unk_0008, 16, 0, -1, 4); +} + +void ov18_021E6714(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 16, 0, 20); + sub_020198FC(pokedexApp->unk_0008, 16, 0, 1, 4); +} + +void ov18_021E673C(PokedexAppData *pokedexApp) { + u16 *r4 = sub_02019B08(pokedexApp->unk_0008, 16); + u16 r5; + + if (Pokedex_CheckMonCaughtFlag(pokedexApp->args->pokedex, pokedexApp->curSpecies)) { + r5 = 0; + } else { + r5 = 0xB000; + } + for (u32 i = 0; i < 4; ++i) { + for (u32 j = 8; j < 16; ++j) { + r4[32 * i + j] = (r4[32 * i + j] & 0xFFF) | r5; + } + } +} + +void ov18_021E6794(PokedexAppData *pokedexApp) { + sub_020196E8(pokedexApp->unk_0008, 23, 10, 11); + ScheduleWindowCopyToVram(&pokedexApp->windows[3]); +} + +void ov18_021E67B0(PokedexAppData *pokedexApp) { + sub_0201980C(pokedexApp->unk_0008, 23); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[3]); +} + +void ov18_021E67C8(PokedexAppData *pokedexApp, int a1) { + switch (a1) { + case 0: + ov18_021E6868(pokedexApp); + ov18_021E5FA4(); + ov18_021EE3FC(pokedexApp); + ov18_021F2880(pokedexApp); + break; + case 1: + ov18_021E7BD0(pokedexApp); + ov18_021E6070(); + ov18_021F021C(pokedexApp); + ov18_021F3D98(pokedexApp); + break; + case 2: + ov18_021E7D90(pokedexApp); + ov18_021E60B4(); + ov18_021F05E8(pokedexApp); + ov18_021F49F8(pokedexApp); + break; + case 3: + ov18_021E800C(pokedexApp); + ov18_021E602C(); + ov18_021F0900(pokedexApp); + ov18_021F5DC0(pokedexApp); + break; + case 4: + ov18_021E7ED8(pokedexApp); + ov18_021E60F8(); + ov18_021F0858(pokedexApp); + break; + case 5: + ov18_021E7048(pokedexApp); + ov18_021E5FE8(); + ov18_021EEE58(pokedexApp); + ov18_021F2F3C(pokedexApp); + break; + } +} + +static void ov18_021E6868(PokedexAppData *pokedexApp) { + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_1); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_2); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_3); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_0); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_1); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_2); + + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000001_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + { + NNSG2dScreenData *scrnData; + void *scrnDataRaw = GfGfxLoader_GetScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000000_NSCR_lz, TRUE, &scrnData, HEAP_ID_POKEDEX_APP); + BG_LoadScreenTilemapData(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, scrnData->rawData, 0x1000); + Heap_Free(scrnDataRaw); + } + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000004_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000003_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000002_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_MAIN_BG, 0, 0); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000017_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000016_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000019_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + if (pokedexApp->unk_185C == 2) { + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000020_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + } else { + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000021_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + } + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000018_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_SUB_BG, 0, 0); + if (!pokedexApp->unk_1860) { + FillBgTilemapRect(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 0x16, 3, 15, 26, 2, TILEMAP_FILL_KEEP_PAL); + } + ov18_021E6A70(pokedexApp); + sub_020196E8(pokedexApp->unk_0008, 0, 0, 19); + ov18_021E6C98(pokedexApp); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_3); +} + +void ov18_021E6A70(PokedexAppData *pokedexApp) { + if (pokedexApp->unk_1858 == 0) { + sub_020196E8(pokedexApp->unk_0008, 2, 5, 3); + } else { + sub_020196E8(pokedexApp->unk_0008, 3, 5, 3); + } +} + +static void PokedexApp_3DigitNumToTiles(u16 *dest, u16 num, u16 baseTile) { + u8 pow10s[3] = { 100, 10, 1 }; + +#ifdef BUGFIX + GF_ASSERT(num <= 999); +#endif // BUGFIX + + for (u8 i = 0; i < 3; ++i) { + dest[i] = (baseTile + (num / pow10s[i])) | 0x1000; + num %= pow10s[i]; + } +} + +u16 *ov18_021E6AEC(PokedexAppData *pokedexApp, u32 a1) { + u16 *ret = Heap_AllocAtEnd(HEAP_ID_POKEDEX_APP, 160 * 10 * sizeof(u16)); + u16 *sp14 = sub_02019B08(pokedexApp->unk_0008, 5); + u32 sp10 = ov18_021F891C(pokedexApp, TRUE); + + for (u16 i = 0; i < 10; ++i) { + MI_CpuCopy16(sp14, &ret[160 * i], 160 * sizeof(u16)); + for (u16 j = 0; j < 5; ++j) { + u32 r1 = a1 + 5 * i + j; + if (r1 >= sp10) { + break; + } + if (pokedexApp->unk_1030[r1].unk_2 == 2) { + ret[160 * i + 36 + 5 * j] = 0x1002; + PokedexApp_3DigitNumToTiles(&ret[160 * i + 37 + 5 * j], r1 + 1, 3); + } else { + PokedexApp_3DigitNumToTiles(&ret[160 * i + 37 + 5 * j], r1 + 1, 14); + } + } + } + + return ret; +} + +u16 *ov18_021E6BB8(PokedexAppData *pokedexApp, u32 a1) { + u16 *ret = Heap_AllocAtEnd(HEAP_ID_POKEDEX_APP, 160 * 10 * sizeof(u16)); + u16 *sp14 = sub_02019B08(pokedexApp->unk_0008, 5); + + for (u16 i = 0; i < 10; ++i) { + MI_CpuCopy16(sp14, &ret[160 * i], 160 * sizeof(u16)); + for (u16 j = 0; j < 5; ++j) { + u32 sp4 = a1 + 5 * i + j; + if (pokedexApp->unk_1030[sp4].unk_0 == SPECIES_NONE) { + continue; + } + u32 r1 = Pokedex_ConvertToCurrentDexNo(pokedexApp->unk_1858, pokedexApp->unk_1030[sp4].unk_0); + if (pokedexApp->unk_1030[sp4].unk_2 == 2) { + ret[160 * i + 36 + 5 * j] = 0x1002; + PokedexApp_3DigitNumToTiles(&ret[160 * i + 37 + 5 * j], r1, 3); + } else { + PokedexApp_3DigitNumToTiles(&ret[160 * i + 37 + 5 * j], r1, 14); + } + } + } + + return ret; +} + +void ov18_021E6C90(u16 *a0) { + Heap_Free(a0); +} + +void ov18_021E6C98(PokedexAppData *pokedexApp) { + u16 *r5 = ov18_021E6AEC(pokedexApp, 15 * pokedexApp->unk_1859); + ov18_021E6CE8(pokedexApp, r5); + ov18_021E6C90(r5); +} + +void ov18_021E6CC0(PokedexAppData *pokedexApp) { + u16 *r5 = ov18_021E6BB8(pokedexApp, 15 * pokedexApp->unk_1859); + ov18_021E6CE8(pokedexApp, r5); + ov18_021E6C90(r5); +} + +void ov18_021E6CE8(PokedexAppData *pokedexApp, u16 *a1) { + LoadRectToBgTilemapRect(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, a1, 0, 0, 32, 24); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3); +} + +BOOL ov18_021E6D10(PokedexAppData *pokedexApp, u16 species, u16 language) { + // explicit comparison to FALSE required to match + if (Pokedex_GetInternationalViewFlag(pokedexApp->args->pokedex) == FALSE) { + return FALSE; + } + + return Pokedex_HasCaughtMonWithLanguage(pokedexApp->args->pokedex, species, language); +} + +BOOL ov18_021E6D38(PokedexAppData *pokedexApp, u16 species) { + for (int i = 0; i < NELEMS(sLanguages); ++i) { + if (sLanguages[i] != GAME_LANGUAGE && ov18_021E6D10(pokedexApp, species, sLanguages[i]) == TRUE) { + return TRUE; + } + } + + return FALSE; +} + +void ov18_021E6D68(PokedexAppData *pokedexApp, u16 species, s16 a2) { + if (Pokedex_GetInternationalViewFlag(pokedexApp->args->pokedex) == FALSE) { + return; + } + + s16 r7 = LanguageToDexFlag(pokedexApp->unk_185C); + for (u32 i = 0; i < 6; ++i) { + r7 = sub_020912D0(r7, a2); + s16 r4 = sub_02091294(r7); + if (r4 == pokedexApp->unk_185C) { + return; + } + if (ov18_021E6D10(pokedexApp, species, r4) == TRUE || r4 == GAME_LANGUAGE) { + int r6 = ov18_021F8824(pokedexApp); + pokedexApp->unk_185C = r4; + ov18_021EE638(pokedexApp, species, 6); + ov18_021E6F6C(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, pokedexApp->unk_185C, pokedexApp->gfxNarc, HEAP_ID_POKEDEX_APP); + ov18_021EE8B8(pokedexApp, species, r6); + ov18_021F24E0(pokedexApp, species, 8); + ov18_021F2530(pokedexApp, species, 18); + ov18_021F209C(pokedexApp, species, r6, 14); + ov18_021F1DE4(pokedexApp, species, r6, 13); + ov18_021F2EC8(pokedexApp, r6, 9); + PlaySE(SEQ_SE_GS_ZKN03); + return; + } + } +} + +void ov18_021E6E44(PokedexAppData *pokedexApp) { + u32 r6 = ov18_021F8824(pokedexApp); + u16 species = ov18_021F8838(pokedexApp); + + if (species == 0) { + ov18_021F2A2C(pokedexApp, 6, 0); + ov18_021F2A84(pokedexApp, 8, 0); + } else { + if (ov18_021E6D38(pokedexApp, species) == TRUE) { + ov18_021F2A2C(pokedexApp, 6, 1); + } else { + ov18_021F2A2C(pokedexApp, 6, 0); + } + ov18_021F2A84(pokedexApp, 8, 1); + } + if (!ov18_021E6D10(pokedexApp, species, pokedexApp->unk_185C)) { + pokedexApp->unk_185C = GAME_LANGUAGE; + } + ov18_021EE638(pokedexApp, species, 6); + ov18_021EE6BC(pokedexApp, species, r6); + ov18_021EE8B8(pokedexApp, species, r6); + ov18_021F1CAC(pokedexApp, species, 11, 10); + ov18_021F24E0(pokedexApp, species, 8); + ov18_021F2530(pokedexApp, species, 18); + ov18_021F209C(pokedexApp, species, r6, 14); + ov18_021F1DE4(pokedexApp, species, r6, 13); + ov18_021F2EC8(pokedexApp, r6, 9); + if (r6 >= ov18_021F891C(pokedexApp, TRUE)) { + ov18_021E6FB8(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, pokedexApp->gfxNarc, HEAP_ID_POKEDEX_APP); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[7]); + ov18_021F11C0(pokedexApp, 10, 0); + } else { + ov18_021E6F6C(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, pokedexApp->unk_185C, pokedexApp->gfxNarc, HEAP_ID_POKEDEX_APP); + ScheduleWindowCopyToVram(&pokedexApp->windows[7]); + } +} + +void ov18_021E6F6C(BgConfig *bgConfig, u8 bgId, u8 language, NARC *narc, enum HeapID heapId) { + NNSG2dScreenData *scrnData; + + void *scrnDataRaw = GfGfxLoader_GetScrnDataFromOpenNarc(narc, language == GAME_LANGUAGE ? NARC_zukan_gra_zukan_gra_00000020_NSCR_lz : NARC_zukan_gra_zukan_gra_00000021_NSCR_lz, TRUE, &scrnData, heapId); + LoadRectToBgTilemapRect(bgConfig, bgId, scrnData->rawData, 0, 0, 32, 24); + ScheduleBgTilemapBufferTransfer(bgConfig, bgId); + Heap_Free(scrnDataRaw); +} + +void ov18_021E6FB8(BgConfig *bgConfig, u8 bgId, NARC *narc, enum HeapID heapId) { + NNSG2dScreenData *spC; + + void *r6 = GfGfxLoader_GetScrnDataFromOpenNarc(narc, NARC_zukan_gra_zukan_gra_00000022_NSCR_lz, TRUE, &spC, heapId); + LoadRectToBgTilemapRect(bgConfig, bgId, spC->rawData, 0, 0, 32, 24); + ScheduleBgTilemapBufferTransfer(bgConfig, bgId); + Heap_Free(r6); +} + +void ov18_021E6FFC(PokedexAppData *pokedexApp) { + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_SORT_ORDER] = DEX_ORDER_NATIONAL; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_LETTER] = DEX_SEARCH_LETTERS_ALL; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1] = DEX_SEARCH_TYPE_ALL; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2] = DEX_SEARCH_TYPE_ALL; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN] = 0; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX] = 152; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN] = 0; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX] = 152; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_AREA] = DEX_SEARCH_AREA_ALL; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_BODY_TYPE] = DEX_SEARCH_BODYTYPE_ALL; +} + +static void ov18_021E7048(PokedexAppData *pokedexApp) { + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_0); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_1); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_3); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_0); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_1); + + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000004_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_1, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000003_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000058_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000057_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000002_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_MAIN_BG, 0, 0); + + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000058_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000058_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000059_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000060_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000018_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_SUB_BG, 0, 0); + + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_3); +} + +void ov18_021E71D0(PokedexAppData *pokedexApp, int a1, int a2) { + switch (a1) { + case 0: + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000057_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021F6DE0(pokedexApp, a2); + ov18_021EEED0(pokedexApp, 0); + ov18_021EF45C(pokedexApp); + ov18_021EF528(pokedexApp); + ov18_021F3618(pokedexApp, 0); + break; + case 1: + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000062_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021E7448(pokedexApp, &ov18_021F9780[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_SORT_ORDER]], TRUE); + ov18_021F6EC0(pokedexApp); + ov18_021EEED0(pokedexApp, 2); + ov18_021EF5D8(pokedexApp); + ov18_021F3618(pokedexApp, 4); + break; + case 2: + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000063_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021E76A4(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_LETTER], 1); + ov18_021F6FA0(pokedexApp); + ov18_021EEED0(pokedexApp, 3); + ov18_021EF764(pokedexApp); + ov18_021F3618(pokedexApp, 4); + break; + case 3: + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000064_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021E74E4(pokedexApp); + ov18_021F7124(pokedexApp); + ov18_021EEED0(pokedexApp, 4); + ov18_021EF848(pokedexApp); + ov18_021F3618(pokedexApp, 4); + break; + case 4: + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000065_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021F7354(pokedexApp); + ov18_021EEED0(pokedexApp, 5); + ov18_021EF91C(pokedexApp); + ov18_021F3618(pokedexApp, 2); + break; + case 5: + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000066_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021F74D8(pokedexApp); + ov18_021EEED0(pokedexApp, 6); + ov18_021EF9B4(pokedexApp); + ov18_021F3618(pokedexApp, 3); + break; + case 6: + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000067_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021E7448(pokedexApp, &ov18_021F9770[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_AREA]], TRUE); + ov18_021F7668(pokedexApp); + ov18_021EEED0(pokedexApp, 7); + ov18_021EFA50(pokedexApp); + ov18_021F3618(pokedexApp, 4); + ov18_021E7564(pokedexApp); + break; + case 7: + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000068_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021E7628(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_BODY_TYPE], TRUE); + ov18_021F7748(pokedexApp); + ov18_021EEED0(pokedexApp, 8); + ov18_021EFB88(pokedexApp); + ov18_021F3618(pokedexApp, 1); + break; + } +} + +static void ov18_021E7448(PokedexAppData *pokedexApp, const UnkStruct_ov18_021F9780 *a1, BOOL a2) { + if (a2 == TRUE) { + BgTilemapRectChangePalette(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, a1->x, a1->y, a1->width, a1->height, 3); + } else { + BgTilemapRectChangePalette(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, a1->x, a1->y, a1->width, a1->height, 2); + } + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); +} + +static void ov18_021E7490(PokedexAppData *pokedexApp, const UnkStruct_ov18_021F9780 *a1, u32 *a2, int a3) { + ov18_021E7448(pokedexApp, &a1[*a2], FALSE); + *a2 = a3; + ov18_021E7448(pokedexApp, &a1[a3], TRUE); +} + +void ov18_021E74B8(PokedexAppData *pokedexApp, int a1) { + ov18_021E7490(pokedexApp, ov18_021F9780, pokedexApp->dexSearchCriteria, a1); + ov18_021EFBE8(pokedexApp, 37); + ScheduleWindowCopyToVram(&pokedexApp->windows[37]); +} + +void ov18_021E74E4(PokedexAppData *pokedexApp) { + for (int i = 0; i < NELEMS(ov18_021F990C); ++i) { + ov18_021E7448(pokedexApp, &ov18_021F990C[i], FALSE); + } + ov18_021E7448(pokedexApp, &ov18_021F990C[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1]], TRUE); + ov18_021E7448(pokedexApp, &ov18_021F990C[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2]], TRUE); +} + +void ov18_021E7534(PokedexAppData *pokedexApp, int a1) { + ov18_021E7490(pokedexApp, ov18_021F9770, &pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_AREA], a1); + ov18_021EFE70(pokedexApp, 75); + ScheduleWindowCopyToVram(&pokedexApp->windows[75]); +} + +static void ov18_021E7564(PokedexAppData *pokedexApp) { + if (pokedexApp->unk_1860 == 1) { + return; + } + GridInputHandler_ClearEnabledFlag(pokedexApp->unk_1864, 1); + + const UnkStruct_ov18_021F9780 *r5 = &ov18_021F9770[1]; + u16 *r4 = GetBgTilemapBuffer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); + MI_CpuCopy16( + &r4[32 * (r5->y - 2) + (r5->x - 1)], + &r4[32 * (r5->y - 1) + (r5->x - 1)], + sizeof(u16) * (r5->width + 2)); + MI_CpuCopy16( + &r4[32 * (r5->y - 2) + (r5->x - 1)], + &r4[32 * (r5->y) + (r5->x - 1)], + sizeof(u16) * (r5->width + 2)); + MI_CpuCopy16( + &r4[32 * (r5->y - 2) + (r5->x - 1)], + &r4[32 * (r5->y + 1) + (r5->x - 1)], + sizeof(u16) * (r5->width + 2)); + MI_CpuCopy16( + &r4[32 * (r5->y - 3) + (r5->x - 1)], + &r4[32 * (r5->y + 2) + (r5->x - 1)], + sizeof(u16) * (r5->width + 2)); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); +} + +static void ov18_021E7628(PokedexAppData *pokedexApp, u32 a1, BOOL a2) { + UnkStruct_ov18_021F9780 sp0; + + sp0.width = 4; + sp0.height = 4; + sp0.x = 6 * (a1 % 5) + 2; + sp0.y = 5 * (a1 / 5 + 1); + + ov18_021E7448(pokedexApp, &sp0, a2); +} + +void ov18_021E766C(PokedexAppData *pokedexApp, u32 bodyType) { + ov18_021E7628(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_BODY_TYPE], FALSE); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_BODY_TYPE] = bodyType; + ov18_021E7628(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_BODY_TYPE], TRUE); + ov18_021F3494(pokedexApp); +} + +u8 ov18_021E7698(int a0) { + return ov18_021F9C20[a0]; +} + +static void ov18_021E76A4(PokedexAppData *pokedexApp, u32 a1, BOOL a2) { + UnkStruct_ov18_021F9780 sp0; + + sp0.width = 2; + sp0.height = 2; + sp0.x = 4 * (ov18_021F9C20[a1] % 7) + 3; + sp0.y = 4 * (ov18_021F9C20[a1] / 7) + 5; + + ov18_021E7448(pokedexApp, &sp0, a2); +} + +void ov18_021E76EC(PokedexAppData *pokedexApp, u32 letter) { + ov18_021E76A4(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_LETTER], FALSE); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_LETTER] = letter; + ov18_021E76A4(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_LETTER], TRUE); + ov18_021EFC3C(pokedexApp, 66); + ScheduleWindowCopyToVram(&pokedexApp->windows[66]); +} + +void ov18_021E7724(PokedexAppData *pokedexApp) { + NNSG2dScreenData *scrnData; + void *scrnDataRaw; + u16 *r4; + u16 *r5; + u16 *sp10; + u16 sp1A; + u16 sp18; + u32 i; + u32 j; + + r4 = sub_02019B08(pokedexApp->unk_0008, 15); + r5 = sub_02019B08(pokedexApp->unk_0008, 14); + + scrnDataRaw = GfGfxLoader_GetScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000000_NSCR_lz, TRUE, &scrnData, HEAP_ID_POKEDEX_APP); + sp10 = (u16 *)scrnData->rawData; + for (i = 0; i < 24; ++i) { + memcpy(&r4[32 * i], &sp10[32 * i], 32 * sizeof(u16)); + memcpy(&r5[3 * i], &sp10[32 * i + 0x400], 3 * sizeof(u16)); + } + Heap_Free(scrnDataRaw); + + if (pokedexApp->unk_1860 == 0) { + for (i = 0; i < 2; ++i) { + for (j = 0; j < 26; ++j) { + sp10 = &r4[(i + 15) * 32 + 3 + j]; + *sp10 = (*sp10 & 0xF000) | 0x16; + } + } + } + + if (pokedexApp->unk_1858 == 0) { + r5 = sub_02019B08(pokedexApp->unk_0008, 2); + sub_02019B44(pokedexApp->unk_0008, 2, &sp1A, &sp18); + for (i = 0; i < sp18; ++i) { + for (j = 0; j < sp1A; ++j) { + r4[32 * (i + 3) + j + 5] = r5[i * sp1A + j]; + } + } + } else { + r5 = sub_02019B08(pokedexApp->unk_0008, 3); + sub_02019B44(pokedexApp->unk_0008, 2, &sp1A, &sp18); // typo? should be 3 not 2 + for (i = 0; i < sp18; ++i) { + for (j = 0; j < sp1A; ++j) { + r4[32 * (i + 3) + j + 5] = r5[i * sp1A + j]; + } + } + } + + ov18_021EFFEC(pokedexApp); +} + +void ov18_021E78AC(PokedexAppData *pokedexApp) { + int r6 = ov18_021F8824(pokedexApp); + if (r6 == 0) { + ov18_021F2A2C(pokedexApp, 22, 0); + ov18_021F2A84(pokedexApp, 24, 0); + ov18_021F3B60(pokedexApp, 0); + ov18_021EE638(pokedexApp, SPECIES_NONE, 94); + ov18_021F014C(pokedexApp); + ov18_021F0118(pokedexApp, 1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_1); + pokedexApp->unk_1898 = 1; + } else { + ov18_021F0118(pokedexApp, 0); + u16 species = ov18_021F8838(pokedexApp); + if (!ov18_021E6D10(pokedexApp, species, pokedexApp->unk_185C)) { + pokedexApp->unk_185C = GAME_LANGUAGE; + } + ov18_021EE638(pokedexApp, species, 94); + ov18_021EE6EC(pokedexApp, species, r6); + ov18_021EED70(pokedexApp, species, r6); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_3); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_1); + pokedexApp->unk_1898 = 2; + ov18_021F3B60(pokedexApp, 1); + ov18_021F1CAC(pokedexApp, species, 46, 45); + ov18_021F24E0(pokedexApp, species, 24); + ov18_021F2530(pokedexApp, species, 53); + ov18_021F209C(pokedexApp, species, r6, 49); + ov18_021F1DE4(pokedexApp, species, r6, 48); + ov18_021F2EC8(pokedexApp, r6, 44); + if (species == SPECIES_NONE) { + ov18_021F2A2C(pokedexApp, 22, 0); + ov18_021F2A84(pokedexApp, 24, 0); + ov18_021E6FB8(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, pokedexApp->gfxNarc, HEAP_ID_POKEDEX_APP); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[81]); + + ov18_021F11C0(pokedexApp, 45, 0); + } else { + if (ov18_021E6D38(pokedexApp, species) == TRUE) { + ov18_021F2A2C(pokedexApp, 22, 1); + } else { + ov18_021F2A2C(pokedexApp, 22, 0); + } + ov18_021F2A84(pokedexApp, 24, 1); + ov18_021E6F6C(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, pokedexApp->unk_185C, pokedexApp->gfxNarc, HEAP_ID_POKEDEX_APP); + ScheduleWindowCopyToVram(&pokedexApp->windows[81]); + } + } +} + +static void ov18_021E7A3C(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_1898) { + case 0: + return; + case 1: + SetBgPriority(GF_BG_LYR_SUB_2, 2); + SetBgPriority(GF_BG_LYR_SUB_3, 3); + break; + case 2: + SetBgPriority(GF_BG_LYR_SUB_2, 3); + SetBgPriority(GF_BG_LYR_SUB_3, 2); + break; + } + pokedexApp->unk_1898 = 0; +} + +void ov18_021E7A80(PokedexAppData *pokedexApp, u16 species, s16 a2) { + if (!Pokedex_GetInternationalViewFlag(pokedexApp->args->pokedex)) { + return; + } + + int spC = ov18_021F8824(pokedexApp); + if (spC == 0) { + return; + } + + s16 dexLangFlag = LanguageToDexFlag(pokedexApp->unk_185C); + for (int i = 0; i < 6u; ++i) { + dexLangFlag += a2; + if (dexLangFlag < 0) { + dexLangFlag = 5; + } else if (dexLangFlag >= 6) { + dexLangFlag = 0; + } + s16 language = sub_02091294(dexLangFlag); + if (language == pokedexApp->unk_185C) { + break; + } + if (ov18_021E6D10(pokedexApp, species, language) == TRUE || language == GAME_LANGUAGE) { + pokedexApp->unk_185C = language; + ov18_021EE638(pokedexApp, species, 94); + ov18_021E6F6C(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, pokedexApp->unk_185C, pokedexApp->gfxNarc, HEAP_ID_POKEDEX_APP); + ov18_021EED70(pokedexApp, species, spC); + ov18_021F24E0(pokedexApp, species, 24); + ov18_021F2530(pokedexApp, species, 53); + ov18_021F209C(pokedexApp, species, spC, 49); + ov18_021F1DE4(pokedexApp, species, spC, 48); + ov18_021F2EC8(pokedexApp, spC, 44); + PlaySE(SEQ_SE_GS_ZKN03); + break; + } + } +} + +void ov18_021E7B6C(BOOL a0) { + if (a0 == TRUE) { + GXS_SetVisibleWnd(GX_WNDMASK_W0); + G2S_SetWnd0InsidePlane(GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_BG3, TRUE); + G2S_SetWndOutsidePlane(GX_PLANEMASK_ALL, TRUE); + G2S_SetWnd0Position(0, 0x98, 0xFF, 0xC0); + } else { + GXS_SetVisibleWnd(GX_WNDMASK_NONE); + } +} + +static void ov18_021E7BD0(PokedexAppData *pokedexApp) { + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_0); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_2); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_1); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_2); + + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000082_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + if (pokedexApp->unk_1860 == 1) { + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000081_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + } else { + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000080_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + } + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000083_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000083_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000004_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_1, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000002_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_MAIN_BG, 0, 0); + + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000084_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000085_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000086_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000087_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000018_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_SUB_BG, 0, 0); + + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_3); +} + +static void ov18_021E7D90(PokedexAppData *pokedexApp) { + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_0); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_1); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_2); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_0); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_1); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_3); + + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000089_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000090_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000004_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_1, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000002_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_MAIN_BG, 0, 0); + + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000091_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000092_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000018_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_SUB_BG, 0, 0); + + sub_020196E8(pokedexApp->unk_0008, 16, 0, 20); + + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_3); +} + +static void ov18_021E7ED8(PokedexAppData *pokedexApp) { + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_0); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_2); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_0); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_1); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_3); + + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000101_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000102_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000004_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_1, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000002_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_MAIN_BG, 0, 0); + + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000103_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000104_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000018_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_SUB_BG, 0, 0); + + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_3); +} + +void ov18_021E800C(PokedexAppData *pokedexApp) { + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_2); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_0); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_1); + ov18_021E613C(pokedexApp, GF_BG_LYR_SUB_2); + + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000096_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000093_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000095_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000093_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000004_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_1, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000002_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_MAIN_BG, 0, 0); + + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000097_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000094_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + PaletteData_LoadOpenNarc(pokedexApp->paletteData, pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000018_NCLR, HEAP_ID_POKEDEX_APP, PLTTBUF_SUB_BG, 0, 0); + + if (pokedexApp->numSeenForms == 1) { + void *scrnDataRaw; + NNSG2dScreenData *scrnData; + + scrnDataRaw = GfGfxLoader_GetScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000100_NSCR_lz, TRUE, &scrnData, HEAP_ID_POKEDEX_APP); + LoadRectToBgTilemapRect(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, scrnData->rawData, 16, 16, 16, 4); + Heap_Free(scrnDataRaw); + } + + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_1); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_3); +} + +void ov18_021E81A8(PokedexAppData *pokedexApp) { + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_0); + ov18_021E613C(pokedexApp, GF_BG_LYR_MAIN_2); + + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000098_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000093_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000099_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000094_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_3); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_SUB_3); +} + +void ov18_021E8254(PokedexAppData *pokedexApp) { + memset(pokedexApp->seenForms, 0, sizeof(pokedexApp->seenForms)); + + switch (pokedexApp->curSpecies) { + case SPECIES_UNOWN: + case SPECIES_PICHU: + case SPECIES_DEOXYS: + case SPECIES_BURMY: + case SPECIES_WORMADAM: + case SPECIES_SHELLOS: + case SPECIES_GASTRODON: + case SPECIES_ROTOM: + case SPECIES_GIRATINA: + case SPECIES_SHAYMIN: + pokedexApp->numSeenForms = Pokedex_GetSeenFormNum(pokedexApp->args->pokedex, pokedexApp->curSpecies); + for (u32 i = 0; i < pokedexApp->numSeenForms; ++i) { + pokedexApp->seenForms[i] = Pokedex_GetSeenFormByIdx(pokedexApp->args->pokedex, pokedexApp->curSpecies, i) | 0x80; + } + break; + case SPECIES_CASTFORM: + pokedexApp->numSeenForms = 4; + for (u32 i = 0; i < pokedexApp->numSeenForms; ++i) { + pokedexApp->seenForms[i] = i | 0x80; + } + break; + case SPECIES_CHERRIM: + pokedexApp->numSeenForms = 2; + for (u32 i = 0; i < pokedexApp->numSeenForms; ++i) { + pokedexApp->seenForms[i] = i | 0x80; + } + break; + default: + pokedexApp->seenForms[0] = ov18_021E83D0(pokedexApp, 0); + pokedexApp->seenForms[1] = ov18_021E83D0(pokedexApp, 1); + if (pokedexApp->seenForms[1] == 0) { + pokedexApp->numSeenForms = 1; + } else { + pokedexApp->numSeenForms = 2; + } + break; + } +} + +static u8 ov18_021E83D0(PokedexAppData *pokedexApp, u8 idx) { + switch (Pokedex_SpeciesGetLastSeenGender(pokedexApp->args->pokedex, pokedexApp->curSpecies, idx)) { + case MON_MALE: + return 1; + case MON_FEMALE: + return 2; + case MON_GENDERLESS: + return 3; + default: + if (idx == 0) { + return 3; + } else { + return 0; + } + } +} + +void ov18_021E8410(PokedexAppData *pokedexApp) { + NARC *narc; // forward decl fixes regswap + PokedexAppData_UnkSub18CC *r5 = &pokedexApp->unk_18CC; + narc = NARC_New(GetPokedexDataNarcID(), HEAP_ID_POKEDEX_APP); + if (PlayerProfile_GetTrainerGender(pokedexApp->args->playerProfile) == TRAINER_MALE) { + r5->player_ypos = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_player_ypos_m, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + r5->player_scale = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_player_scale_m, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + r5->mon_ypos = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_mon_ypos_m, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + r5->mon_scale = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_mon_scale_m, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + } else { + r5->player_ypos = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_player_ypos_f, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + r5->player_scale = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_player_scale_f, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + r5->mon_ypos = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_mon_ypos_f, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + r5->mon_scale = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_mon_scale_f, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + } + pokedexApp->heights = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_height, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + pokedexApp->weights = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_weight, FALSE, HEAP_ID_POKEDEX_APP, FALSE); + NARC_Delete(narc); +} + +void ov18_021E84EC(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub18CC *r5 = &pokedexApp->unk_18CC; + + Heap_Free(pokedexApp->heights); + Heap_Free(pokedexApp->weights); + Heap_Free(r5->player_ypos); + Heap_Free(r5->player_scale); + Heap_Free(r5->mon_ypos); + Heap_Free(r5->mon_scale); +} + +void ov18_021E8528(PokedexAppData *pokedexApp, int a1, int a2) { + ov18_021E8698(&pokedexApp->unk_18DC.unk_00, pokedexApp->curSpecies, a1 + 4); + ov18_021E8698(&pokedexApp->unk_18DC.unk_08, pokedexApp->curSpecies, 7); + ov18_021E8698(&pokedexApp->unk_18DC.unk_10, pokedexApp->curSpecies, a1); + ov18_021E8698(&pokedexApp->unk_18DC.unk_18, pokedexApp->curSpecies, 3); + + u32 nMaps = 1; + nMaps += pokedexApp->unk_18DC.unk_00.nMaps - 1; + nMaps += pokedexApp->unk_18DC.unk_08.nMaps - 1; + nMaps += pokedexApp->unk_18DC.unk_10.nMaps - 1; + nMaps += pokedexApp->unk_18DC.unk_18.nMaps - 1; + + pokedexApp->unk_18DC.unk_20.maps = Heap_Alloc(HEAP_ID_POKEDEX_APP, sizeof(u32) * nMaps); + pokedexApp->unk_18DC.unk_28 = Heap_Alloc(HEAP_ID_POKEDEX_APP, sizeof(u32) * nMaps); + MI_CpuClear32(pokedexApp->unk_18DC.unk_20.maps, sizeof(u32) * nMaps); + MI_CpuClear32(pokedexApp->unk_18DC.unk_28, sizeof(u32) * nMaps); + pokedexApp->unk_18DC.unk_20.maps[0] = -2; + pokedexApp->unk_18DC.unk_20.nMaps = 1; + pokedexApp->unk_18DC.unk_28[0] = 0; + + ov18_021E8714(pokedexApp, &pokedexApp->unk_18DC.unk_00, a2, 0); + ov18_021E8714(pokedexApp, &pokedexApp->unk_18DC.unk_08, a2, 1); + u32 r6 = pokedexApp->unk_18DC.unk_20.nMaps; + ov18_021E8878(pokedexApp, &pokedexApp->unk_18DC.unk_10, a2, r6, 0); + ov18_021E8878(pokedexApp, &pokedexApp->unk_18DC.unk_18, a2, r6, 1); + ov18_021E8A00(pokedexApp); +} + +void ov18_021E8648(PokedexAppData *pokedexApp) { + Heap_Free(pokedexApp->unk_18DC.unk_00.maps); + Heap_Free(pokedexApp->unk_18DC.unk_08.maps); + Heap_Free(pokedexApp->unk_18DC.unk_10.maps); + Heap_Free(pokedexApp->unk_18DC.unk_18.maps); + Heap_Free(pokedexApp->unk_18DC.unk_20.maps); + Heap_Free(pokedexApp->unk_18DC.unk_28); +} + +static void ov18_021E8698(PokedexAppData_UnkSub18DC_0 *a0, u16 species, int a2) { + int base; + u32 size; + + switch (a2) { + case 0: + base = NARC_zukan_enc_zukan_enc_00000002; // 0 * 495 + 2 + break; + case 1: + base = NARC_zukan_enc_zukan_enc_00000497; // 1 * 495 + 2 + break; + case 2: + base = NARC_zukan_enc_zukan_enc_00000992; // 2 * 495 + 2 + break; + case 3: + base = NARC_zukan_enc_zukan_enc_00002972; // 6 * 495 + 2 + break; + case 4: + base = NARC_zukan_enc_zukan_enc_00001487; // 3 * 495 + 2 + break; + case 5: + base = NARC_zukan_enc_zukan_enc_00001982; // 4 * 495 + 2 + break; + case 6: + base = NARC_zukan_enc_zukan_enc_00002477; // 5 * 495 + 2 + break; + case 7: + base = NARC_zukan_enc_zukan_enc_00003467; // 7 * 495 + 2 + break; + } + // UB: if unexpected a2, r3 is uninitialized + a0->maps = GfGfxLoader_LoadFromNarc_GetSizeOut(NARC_application_zukanlist_zkn_data_zukan_enc, base + species, FALSE, HEAP_ID_POKEDEX_APP, FALSE, &size); + a0->nMaps = size / sizeof(u32); +} + +static void ov18_021E8714(PokedexAppData *pokedexApp, PokedexAppData_UnkSub18DC_0 *a1, int a2, int a3) { + u16 i; + u16 j; + + if (a2 == 0) { + for (i = 0; i < a1->nMaps - 1; ++i) { + if (pokedexApp->unk_190C[a1->maps[i]].unk_00 >= 22) { + continue; + } + for (j = 0; j < pokedexApp->unk_18DC.unk_20.nMaps; ++j) { + if (pokedexApp->unk_18DC.unk_20.maps[j] == a1->maps[i]) { + pokedexApp->unk_18DC.unk_28[j] |= 1 << a3; + break; + } + } + if (j == pokedexApp->unk_18DC.unk_20.nMaps) { + pokedexApp->unk_18DC.unk_20.maps[pokedexApp->unk_18DC.unk_20.nMaps] = a1->maps[i]; + pokedexApp->unk_18DC.unk_28[pokedexApp->unk_18DC.unk_20.nMaps] = 1 << a3; + ++pokedexApp->unk_18DC.unk_20.nMaps; + } + } + } else { + u32 mapId; + for (i = 0; i < a1->nMaps - 1; ++i) { + mapId = a1->maps[i]; + if (pokedexApp->unk_190C[a1->maps[i]].unk_00 < 22) { + continue; + } + if (ov18_021E8B24(mapId) == TRUE) { + mapId = ov18_021E8B40(); + } else if (ov18_021E8B5C(mapId) == TRUE) { + mapId = ov18_021E8B78(); + } + for (j = 0; j < pokedexApp->unk_18DC.unk_20.nMaps; ++j) { + if (pokedexApp->unk_18DC.unk_20.maps[j] == mapId) { + pokedexApp->unk_18DC.unk_28[j] |= 1 << a3; + break; + } + } + if (j == pokedexApp->unk_18DC.unk_20.nMaps) { + pokedexApp->unk_18DC.unk_20.maps[pokedexApp->unk_18DC.unk_20.nMaps] = mapId; + pokedexApp->unk_18DC.unk_28[pokedexApp->unk_18DC.unk_20.nMaps] = 1 << a3; + ++pokedexApp->unk_18DC.unk_20.nMaps; + } + } + } +} + +static void ov18_021E8878(PokedexAppData *pokedexApp, PokedexAppData_UnkSub18DC_0 *a1, int a2, int a3, int a4) { + u16 i; + u16 j; + + if (a2 == 0) { + for (i = 0; i < a1->nMaps - 1; ++i) { + if (pokedexApp->unk_1908[a1->maps[i]].unk_00 >= 22) { + continue; + } + for (j = a3; j < pokedexApp->unk_18DC.unk_20.nMaps; ++j) { + if (pokedexApp->unk_18DC.unk_20.maps[j] == a1->maps[i]) { + pokedexApp->unk_18DC.unk_28[j] |= 1 << a4; + break; + } + } + if (j == pokedexApp->unk_18DC.unk_20.nMaps) { + pokedexApp->unk_18DC.unk_20.maps[pokedexApp->unk_18DC.unk_20.nMaps] = a1->maps[i]; + pokedexApp->unk_18DC.unk_28[pokedexApp->unk_18DC.unk_20.nMaps] = 0x80000000 + (1 << a4); + ++pokedexApp->unk_18DC.unk_20.nMaps; + } + } + } else { + for (i = 0; i < a1->nMaps - 1; ++i) { + if (pokedexApp->unk_1908[a1->maps[i]].unk_00 < 22) { + continue; + } + for (j = a3; j < pokedexApp->unk_18DC.unk_20.nMaps; ++j) { + if (pokedexApp->unk_18DC.unk_20.maps[j] == a1->maps[i]) { + pokedexApp->unk_18DC.unk_28[j] |= 1 << a4; + break; + } + } + if (j == pokedexApp->unk_18DC.unk_20.nMaps) { + pokedexApp->unk_18DC.unk_20.maps[pokedexApp->unk_18DC.unk_20.nMaps] = a1->maps[i]; + pokedexApp->unk_18DC.unk_28[pokedexApp->unk_18DC.unk_20.nMaps] = 0x80000000 + (1 << a4); + ++pokedexApp->unk_18DC.unk_20.nMaps; + } + } + } +} + +static u32 ov18_021E89DC(u32 a0) { + for (u32 i = 0; i < NELEMS(sMapIDs_Alphabetical); ++i) { + if (a0 == sMapIDs_Alphabetical[i]) { + return i; + } + } + + GF_ASSERT(FALSE); + return 0; +} + +static void ov18_021E8A00(PokedexAppData *pokedexApp) { + u32 r6; + u32 r7; + u16 i; + u16 j; + + for (i = 1; i < pokedexApp->unk_18DC.unk_20.nMaps - 1; ++i) { + r6 = ov18_021E8AE0(pokedexApp, i); + for (j = i + 1; j < pokedexApp->unk_18DC.unk_20.nMaps; ++j) { + r7 = ov18_021E8AE0(pokedexApp, j); + if (ov18_021E89DC(r6) > ov18_021E89DC(r7)) { + s32 r3; + u32 r3_2; + + r3 = pokedexApp->unk_18DC.unk_20.maps[i]; + pokedexApp->unk_18DC.unk_20.maps[i] = pokedexApp->unk_18DC.unk_20.maps[j]; + pokedexApp->unk_18DC.unk_20.maps[j] = r3; + + r3_2 = pokedexApp->unk_18DC.unk_28[i]; + pokedexApp->unk_18DC.unk_28[i] = pokedexApp->unk_18DC.unk_28[j]; + pokedexApp->unk_18DC.unk_28[j] = r3_2; + + r6 = r7; + } + } + } +} + +BOOL ov18_021E8AB0(PokedexAppData *pokedexApp, u32 a1) { + if (pokedexApp->unk_18DC.unk_28[a1] & 0x80000000) { + return TRUE; + } + return FALSE; +} + +u32 ov18_021E8ACC(PokedexAppData *pokedexApp, u32 a1, u32 a2) { + return pokedexApp->unk_18DC.unk_28[a1] & (1 << a2); +} + +u32 ov18_021E8AE0(PokedexAppData *pokedexApp, u32 a1) { + if (ov18_021E8AB0(pokedexApp, a1) == FALSE) { // explicit comparison required to match + return ov18_021E8B0C(pokedexApp->unk_18DC.unk_20.maps[a1]); + } else { + return ov18_021E8B18(pokedexApp->unk_18DC.unk_20.maps[a1]); + } +} + +u32 ov18_021E8B0C(u32 idx) { + return sOverworldMapIDs[idx]; +} + +u32 ov18_021E8B18(u32 a0) { + return sDungeonMapIDs[a0]; +} + +BOOL ov18_021E8B24(u32 idx) { + u32 mapId = ov18_021E8B0C(idx); + return mapId == MAP_ROUTE_2 || mapId == MAP_ROUTE_2_EAST; +} + +static u32 ov18_021E8B40(void) { + for (u32 i = 0; i < NELEMS(sOverworldMapIDs); ++i) { + if (sOverworldMapIDs[i] == MAP_ROUTE_2) { + return i; + } + } + return 1; +} + +BOOL ov18_021E8B5C(u32 idx) { + u32 mapId = ov18_021E8B0C(idx); + return mapId == MAP_ROUTE_16_EAST || mapId == MAP_ROUTE_16; +} + +static u32 ov18_021E8B78(void) { + for (u32 i = 0; i < NELEMS(sOverworldMapIDs); ++i) { + if (sOverworldMapIDs[i] == MAP_ROUTE_16) { + return i; + } + } + return 1; +} + +void ov18_021E8B94(PokedexAppData *pokedexApp) { + u32 size; + + pokedexApp->unk_190C = GfGfxLoader_LoadFromNarc_GetSizeOut(NARC_application_zukanlist_zkn_data_zukan_enc, NARC_zukan_enc_zukan_enc_00000001, FALSE, HEAP_ID_POKEDEX_APP, FALSE, &size); + pokedexApp->unk_1908 = GfGfxLoader_LoadFromNarc_GetSizeOut(NARC_application_zukanlist_zkn_data_zukan_enc, NARC_zukan_enc_zukan_enc_00000000, FALSE, HEAP_ID_POKEDEX_APP, FALSE, &size); +} + +void ov18_021E8BD4(PokedexAppData *pokedexApp) { + Heap_Free(pokedexApp->unk_190C); + Heap_Free(pokedexApp->unk_1908); +} diff --git a/src/application/pokedex/ov18_021E8BF4.c b/src/application/pokedex/ov18_021E8BF4.c new file mode 100644 index 0000000000..47d5e4ff51 --- /dev/null +++ b/src/application/pokedex/ov18_021E8BF4.c @@ -0,0 +1,3717 @@ +#include "application/pokedex/pokedex_internal.h" +#include "application/pokedex/pokedex_internal_constants.h" +#include "graphic/zukan_gra.naix" + +#include "font.h" +#include "gf_gfx_loader.h" +#include "list_menu_items.h" +#include "pokedex_util.h" +#include "sound_02004A44.h" +#include "sound_chatot.h" +#include "unk_02005D10.h" +#include "unk_0200FA24.h" +#include "unk_020210A0.h" +#include "unk_0208805C.h" + +#define PLTTBUF_EXCEPT_MAIN_BG_F (PLTTBUF_SUB_BG_F | PLTTBUF_MAIN_OBJ_F | PLTTBUF_SUB_OBJ_F) +#define PLTTFADE_OPAQUE_ALL_F (0xFFFF) + +static int PokedexApp_MainSeq_00(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_01(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_02(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_03(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_04(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_05(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_06(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_07(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_08(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_09(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_10(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_11(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_12(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_13(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_14(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_15(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_16(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_17(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_18(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_21(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_22(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_23(PokedexAppData *pokedexApp); +static void ov18_021EA350(PokedexAppData *pokedexApp, int bgId, int a2); +static int PokedexApp_MainSeq_24(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_25(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_19(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_20(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_26(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_27(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_28(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_29(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_30(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_31(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_32(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_33(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_34(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_35(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_36(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_37(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_38(PokedexAppData *pokedexApp); +static void ov18_021EAD74(u32 *pOut, int hmin, int hmax, u32 *pStep, int direction); +static void ov18_021EADB8(PokedexAppData *pokedexApp, int a1, int a2, int a3, int a4); +static int PokedexApp_MainSeq_39(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_40(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_41(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_42(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_43(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_44(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_45(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_46(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_47(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_48(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_49(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_50(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_51(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_52(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_53(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_54(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_55(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_56(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_57(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_58(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_59(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_60(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_61(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_62(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_63(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_64(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_65(PokedexAppData *pokedexApp); +static int ov18_021EC1DC(PokedexAppData *pokedexApp, u8 a1, u8 a2); +static int PokedexApp_MainSeq_66(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_67(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_68(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_69(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_70(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_71(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_72(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_73(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_74(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_75(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_76(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_77(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_78(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_79(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_80(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_81(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_82(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_83(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_84(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_85(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_86(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_87(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_88(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_89(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_90(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_91(PokedexAppData *pokedexApp); +static int PokedexApp_MainSeq_92(PokedexAppData *pokedexApp); +static int ov18_021EDB3C(PokedexAppData *pokedexApp, int a1); +static int ov18_021EDB68(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7, int a8); +static int ov18_021EDBB8(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3); +static int ov18_021EDBDC(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3); +static int ov18_021EDC00(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3, u8 a4, int a5); +static int ov18_021EDC28(PokedexAppData *pokedexApp, u8 a1, int a2); +static int ov18_021EDC50(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, int a6); +static void ov18_021EDC74(PokedexAppData *pokedexApp, int a1); +static void ov18_021EDCD4(PokedexAppData *pokedexApp); +static void ov18_021EDDA4(PokedexAppData *pokedexApp, int a1); +static void ov18_021EDDB4(PokedexAppData *pokedexApp); +static BOOL ov18_021EDE04(PokedexAppData *pokedexApp); +static void ov18_021EDE4C(PokedexAppData *pokedexApp, int a1, int a2, int a3); +static void ov18_021EDE64(PokedexAppData *pokedexApp); +static void ov18_021EDEB0(PokedexAppData *pokedexApp); +static BOOL ov18_021EDF14(PokedexAppData *pokedexApp, int a1, int a2); +static void ov18_021EDF48(s8 *a0, s8 a1, int a2, u8 a3); +static BOOL ov18_021EDF84(PokedexAppData *pokedexApp, int a1); +static BOOL ov18_021EDFF4(PokedexAppData *pokedexApp, int a1); +static void ov18_021EE068(PokedexAppData *pokedexApp); +static void ov18_021EE0CC(PokedexAppData *pokedexApp); +static BOOL ov18_021EE0F0(PokedexAppData *pokedexApp, int a1, int a2); +static BOOL ov18_021EE124(PokedexAppData *pokedexApp, int a1); +static BOOL ov18_021EE140(PokedexAppData *pokedexApp, int a1); +static void ov18_021EE170(PokedexAppData *pokedexApp); +static void ov18_021EE1F8(PokedexAppData *pokedexApp); +static void ov18_021EE20C(PokedexAppData *pokedexApp); +static BOOL ov18_021EE21C(PokedexAppData *pokedexApp); +static void ov18_021EE26C(PokedexAppData *pokedexApp); +static void ov18_021EE314(PokedexAppData *pokedexApp); + +static int (*const sMainSeqFuncs[POKEDEXAPP_MAINSEQ_MAX])(PokedexAppData *pokedexApp) = { + [POKEDEXAPP_MAINSEQ_00] = PokedexApp_MainSeq_00, + [POKEDEXAPP_MAINSEQ_01] = PokedexApp_MainSeq_01, + [POKEDEXAPP_MAINSEQ_02] = PokedexApp_MainSeq_02, + [POKEDEXAPP_MAINSEQ_03] = PokedexApp_MainSeq_03, + [POKEDEXAPP_MAINSEQ_04] = PokedexApp_MainSeq_04, + [POKEDEXAPP_MAINSEQ_05] = PokedexApp_MainSeq_05, + [POKEDEXAPP_MAINSEQ_06] = PokedexApp_MainSeq_06, + [POKEDEXAPP_MAINSEQ_07] = PokedexApp_MainSeq_07, + [POKEDEXAPP_MAINSEQ_08] = PokedexApp_MainSeq_08, + [POKEDEXAPP_MAINSEQ_09] = PokedexApp_MainSeq_09, + [POKEDEXAPP_MAINSEQ_10] = PokedexApp_MainSeq_10, + [POKEDEXAPP_MAINSEQ_11] = PokedexApp_MainSeq_11, + [POKEDEXAPP_MAINSEQ_12] = PokedexApp_MainSeq_12, + [POKEDEXAPP_MAINSEQ_13] = PokedexApp_MainSeq_13, + [POKEDEXAPP_MAINSEQ_14] = PokedexApp_MainSeq_14, + [POKEDEXAPP_MAINSEQ_15] = PokedexApp_MainSeq_15, + [POKEDEXAPP_MAINSEQ_16] = PokedexApp_MainSeq_16, + [POKEDEXAPP_MAINSEQ_17] = PokedexApp_MainSeq_17, + [POKEDEXAPP_MAINSEQ_18] = PokedexApp_MainSeq_18, + [POKEDEXAPP_MAINSEQ_19] = PokedexApp_MainSeq_19, + [POKEDEXAPP_MAINSEQ_20] = PokedexApp_MainSeq_20, + [POKEDEXAPP_MAINSEQ_21] = PokedexApp_MainSeq_21, + [POKEDEXAPP_MAINSEQ_22] = PokedexApp_MainSeq_22, + [POKEDEXAPP_MAINSEQ_23] = PokedexApp_MainSeq_23, + [POKEDEXAPP_MAINSEQ_24] = PokedexApp_MainSeq_24, + [POKEDEXAPP_MAINSEQ_25] = PokedexApp_MainSeq_25, + [POKEDEXAPP_MAINSEQ_26] = PokedexApp_MainSeq_26, + [POKEDEXAPP_MAINSEQ_27] = PokedexApp_MainSeq_27, + [POKEDEXAPP_MAINSEQ_28] = PokedexApp_MainSeq_28, + [POKEDEXAPP_MAINSEQ_29] = PokedexApp_MainSeq_29, + [POKEDEXAPP_MAINSEQ_30] = PokedexApp_MainSeq_30, + [POKEDEXAPP_MAINSEQ_31] = PokedexApp_MainSeq_31, + [POKEDEXAPP_MAINSEQ_32] = PokedexApp_MainSeq_32, + [POKEDEXAPP_MAINSEQ_33] = PokedexApp_MainSeq_33, + [POKEDEXAPP_MAINSEQ_34] = PokedexApp_MainSeq_34, + [POKEDEXAPP_MAINSEQ_35] = PokedexApp_MainSeq_35, + [POKEDEXAPP_MAINSEQ_36] = PokedexApp_MainSeq_36, + [POKEDEXAPP_MAINSEQ_37] = PokedexApp_MainSeq_37, + [POKEDEXAPP_MAINSEQ_38] = PokedexApp_MainSeq_38, + [POKEDEXAPP_MAINSEQ_39] = PokedexApp_MainSeq_39, + [POKEDEXAPP_MAINSEQ_40] = PokedexApp_MainSeq_40, + [POKEDEXAPP_MAINSEQ_41] = PokedexApp_MainSeq_41, + [POKEDEXAPP_MAINSEQ_42] = PokedexApp_MainSeq_42, + [POKEDEXAPP_MAINSEQ_43] = PokedexApp_MainSeq_43, + [POKEDEXAPP_MAINSEQ_44] = PokedexApp_MainSeq_44, + [POKEDEXAPP_MAINSEQ_45] = PokedexApp_MainSeq_45, + [POKEDEXAPP_MAINSEQ_46] = PokedexApp_MainSeq_46, + [POKEDEXAPP_MAINSEQ_47] = PokedexApp_MainSeq_47, + [POKEDEXAPP_MAINSEQ_48] = PokedexApp_MainSeq_48, + [POKEDEXAPP_MAINSEQ_49] = PokedexApp_MainSeq_49, + [POKEDEXAPP_MAINSEQ_50] = PokedexApp_MainSeq_50, + [POKEDEXAPP_MAINSEQ_51] = PokedexApp_MainSeq_51, + [POKEDEXAPP_MAINSEQ_52] = PokedexApp_MainSeq_52, + [POKEDEXAPP_MAINSEQ_53] = PokedexApp_MainSeq_53, + [POKEDEXAPP_MAINSEQ_54] = PokedexApp_MainSeq_54, + [POKEDEXAPP_MAINSEQ_55] = PokedexApp_MainSeq_55, + [POKEDEXAPP_MAINSEQ_56] = PokedexApp_MainSeq_56, + [POKEDEXAPP_MAINSEQ_57] = PokedexApp_MainSeq_57, + [POKEDEXAPP_MAINSEQ_58] = PokedexApp_MainSeq_58, + [POKEDEXAPP_MAINSEQ_59] = PokedexApp_MainSeq_59, + [POKEDEXAPP_MAINSEQ_60] = PokedexApp_MainSeq_60, + [POKEDEXAPP_MAINSEQ_61] = PokedexApp_MainSeq_61, + [POKEDEXAPP_MAINSEQ_62] = PokedexApp_MainSeq_62, + [POKEDEXAPP_MAINSEQ_63] = PokedexApp_MainSeq_63, + [POKEDEXAPP_MAINSEQ_64] = PokedexApp_MainSeq_64, + [POKEDEXAPP_MAINSEQ_65] = PokedexApp_MainSeq_65, + [POKEDEXAPP_MAINSEQ_66] = PokedexApp_MainSeq_66, + [POKEDEXAPP_MAINSEQ_67] = PokedexApp_MainSeq_67, + [POKEDEXAPP_MAINSEQ_68] = PokedexApp_MainSeq_68, + [POKEDEXAPP_MAINSEQ_69] = PokedexApp_MainSeq_69, + [POKEDEXAPP_MAINSEQ_70] = PokedexApp_MainSeq_70, + [POKEDEXAPP_MAINSEQ_71] = PokedexApp_MainSeq_71, + [POKEDEXAPP_MAINSEQ_72] = PokedexApp_MainSeq_72, + [POKEDEXAPP_MAINSEQ_73] = PokedexApp_MainSeq_73, + [POKEDEXAPP_MAINSEQ_74] = PokedexApp_MainSeq_74, + [POKEDEXAPP_MAINSEQ_75] = PokedexApp_MainSeq_75, + [POKEDEXAPP_MAINSEQ_76] = PokedexApp_MainSeq_76, + [POKEDEXAPP_MAINSEQ_77] = PokedexApp_MainSeq_77, + [POKEDEXAPP_MAINSEQ_78] = PokedexApp_MainSeq_78, + [POKEDEXAPP_MAINSEQ_79] = PokedexApp_MainSeq_79, + [POKEDEXAPP_MAINSEQ_80] = PokedexApp_MainSeq_80, + [POKEDEXAPP_MAINSEQ_81] = PokedexApp_MainSeq_81, + [POKEDEXAPP_MAINSEQ_82] = PokedexApp_MainSeq_82, + [POKEDEXAPP_MAINSEQ_83] = PokedexApp_MainSeq_83, + [POKEDEXAPP_MAINSEQ_84] = PokedexApp_MainSeq_84, + [POKEDEXAPP_MAINSEQ_85] = PokedexApp_MainSeq_85, + [POKEDEXAPP_MAINSEQ_86] = PokedexApp_MainSeq_86, + [POKEDEXAPP_MAINSEQ_87] = PokedexApp_MainSeq_87, + [POKEDEXAPP_MAINSEQ_88] = PokedexApp_MainSeq_88, + [POKEDEXAPP_MAINSEQ_89] = PokedexApp_MainSeq_89, + [POKEDEXAPP_MAINSEQ_90] = PokedexApp_MainSeq_90, + [POKEDEXAPP_MAINSEQ_91] = PokedexApp_MainSeq_91, + [POKEDEXAPP_MAINSEQ_92] = PokedexApp_MainSeq_92, +}; + +BOOL PokedexApp_RunMainSeq(PokedexAppData *pokedexApp, int *pState) { + *pState = sMainSeqFuncs[*pState](pokedexApp); + if (*pState == POKEDEXAPP_MAINSEQ_MAX) { + return FALSE; + } + + sub_02019934(pokedexApp->unk_0008); + ov18_021F1004(pokedexApp); + SpriteSystem_DrawSprites(pokedexApp->unk_066C); + return TRUE; +} + +static int PokedexApp_MainSeq_00(PokedexAppData *pokedexApp) { + Main_SetVBlankIntrCB(NULL, NULL); + HBlankInterruptDisable(); + GfGfx_EngineASetPlanes(GX_PLANEMASK_NONE); + GfGfx_EngineBSetPlanes(GX_PLANEMASK_NONE); + G2_BlendNone(); + G2S_BlendNone(); + sub_020210BC(); + sub_02021148(4); + GX_SetDispSelect(GX_DISP_SELECT_SUB_MAIN); + SetKeyRepeatTimers(4, 8); + ov18_021E62A8(pokedexApp); + ov18_021E8410(pokedexApp); + sub_020880CC(0, HEAP_ID_POKEDEX_APP); + FontID_Alloc(4, HEAP_ID_POKEDEX_APP); + pokedexApp->gfxNarc = NARC_New(NARC_graphic_zukan_gra, HEAP_ID_POKEDEX_APP); + ov18_021E6FFC(pokedexApp); + ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, 0, DEX_SEARCH_LETTERS_ALL, DEX_SEARCH_TYPE_ALL, DEX_SEARCH_TYPE_ALL, 0, 152, 0, 152, 1 << DEX_SEARCH_AREA_ALL, DEX_SEARCH_BODYTYPE_ALL); + ov18_021F8884(pokedexApp, 1); + ov18_021EDDB4(pokedexApp); + ov18_021E5C74(); + ov18_021E5C84(pokedexApp); + ov18_021E6308(pokedexApp); + ov18_021E61A4(pokedexApp); + ov18_021E6244(pokedexApp); + ov18_021F0FC8(pokedexApp); + ov18_021E6174(); + Sound_SetSceneAndPlayBGM(54, 0, 0); + Main_SetVBlankIntrCB(ov18_021E5C40, pokedexApp); + return pokedexApp->unk_085C; +} + +static int PokedexApp_MainSeq_01(PokedexAppData *pokedexApp) { + Main_SetVBlankIntrCB(NULL, NULL); + ov18_021EE388(pokedexApp); + ov18_021F0FEC(pokedexApp); + ov18_021E6280(pokedexApp); + ov18_021E6204(pokedexApp); + ov18_021E6540(pokedexApp); + ov18_021E5F58(pokedexApp); + NARC_Delete(pokedexApp->gfxNarc); + FontID_Release(4); + ov18_021E84EC(pokedexApp); + ov18_021E62E8(pokedexApp); + sub_02021238(); + G2_BlendNone(); + G2S_BlendNone(); + GfGfx_EngineASetPlanes(GX_PLANEMASK_NONE); + GfGfx_EngineBSetPlanes(GX_PLANEMASK_NONE); + return pokedexApp->unk_085C; +} + +static int PokedexApp_MainSeq_02(PokedexAppData *pokedexApp) { + if (IsPaletteFadeFinished() == TRUE) { + return pokedexApp->unk_0860; + } + + return POKEDEXAPP_MAINSEQ_02; +} + +static int PokedexApp_MainSeq_03(PokedexAppData *pokedexApp) { + if (PaletteData_GetSelectedBuffersBitmask(pokedexApp->paletteData) == 0) { + return pokedexApp->unk_085C; + } + + return POKEDEXAPP_MAINSEQ_03; +} + +static int PokedexApp_MainSeq_04(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State04 *r4 = &pokedexApp->unk_0868.state_04; + switch (r4->unk_5) { + case 0: + BgTilemapRectChangePalette(pokedexApp->bgConfig, r4->unk_4, r4->unk_0, r4->unk_1, r4->unk_2, r4->unk_3, r4->unk_7_4); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, r4->unk_4); + ++r4->unk_5; + break; + case 1: + ++r4->unk_6; + if (r4->unk_6 == 4) { + BgTilemapRectChangePalette(pokedexApp->bgConfig, r4->unk_4, r4->unk_0, r4->unk_1, r4->unk_2, r4->unk_3, r4->unk_7_0); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, r4->unk_4); + r4->unk_6 = 0; + ++r4->unk_5; + } + break; + case 2: + MI_CpuClear8(r4, sizeof(pokedexApp->unk_0868)); + return pokedexApp->unk_085C; + } + + return POKEDEXAPP_MAINSEQ_04; +} + +static int PokedexApp_MainSeq_05(PokedexAppData *pokedexApp) { + pokedexApp->unk_185B = 0; + ov18_021E67C8(pokedexApp, 0); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, 0xF, PLTTFADE_OPAQUE_ALL_F, -127, 0, 0, RGB_BLACK); + pokedexApp->unk_0860 = 6; + return POKEDEXAPP_MAINSEQ_02; +} + +static int PokedexApp_MainSeq_06(PokedexAppData *pokedexApp) { + switch (ov18_021F6B00(pokedexApp)) { + case 0: + PlaySE(SEQ_SE_GS_BUTTON01); + return ov18_021EDBB8(pokedexApp, 8, 16, POKEDEXAPP_MAINSEQ_09); + case 1: + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDBB8(pokedexApp, 0, 8, POKEDEXAPP_MAINSEQ_10); + case 2: + if (pokedexApp->unk_0864 == 0) { + MenuInputStateMgr_SetState(pokedexApp->args->menuInputStatePtr, MENU_INPUT_STATE_TOUCH); + } else { + MenuInputStateMgr_SetState(pokedexApp->args->menuInputStatePtr, MENU_INPUT_STATE_BUTTONS); + } + PlaySE(SEQ_SE_GS_GEARCANCEL); + return ov18_021EDBB8(pokedexApp, 24, 8, POKEDEXAPP_MAINSEQ_92); + case 3: + PlaySE(SEQ_SE_GS_ZKN_BUTTON8); + ov18_021EDDA4(pokedexApp, 1); + break; + case 4: + PlaySE(SEQ_SE_GS_ZKN_BUTTON8); + ov18_021EDDA4(pokedexApp, 0); + break; + case 5: { + PokedexAppData_UnkSub0868_State06 *r5 = &pokedexApp->unk_0868.state_06; + System_GetTouchNewCoords(&r5->unk_0, &r5->unk_4); + r5->unk_8 = ov18_021F2B9C(pokedexApp); + PlaySE(SEQ_SE_GS_BUTTON01); + return POKEDEXAPP_MAINSEQ_08; + } + case 6: { + u32 sp4; + u32 sp0; + + System_GetTouchNewCoords(&sp4, &sp0); + if (ov18_021F2AF8(pokedexApp, sp4, sp0) == TRUE) { + return POKEDEXAPP_MAINSEQ_07; + } + } break; + } + + return POKEDEXAPP_MAINSEQ_06; +} + +static int PokedexApp_MainSeq_07(PokedexAppData *pokedexApp) { + u32 sp4; + u32 sp0; + + if (!System_GetTouchHeldCoords(&sp4, &sp0)) { + ov18_021EDCD4(pokedexApp); + return POKEDEXAPP_MAINSEQ_06; + } + + if (sp4 >= 92 && sp4 < 164 && sp0 >= 112 && sp0 < 144) { + if (sp4 < 96) { + sp4 = 96; + } else if (sp4 > 159) { + sp4 = 159; + } + if (sp0 < 120) { + sp0 = 120; + } else if (sp0 > 135) { + sp0 = 135; + } + if (!ov18_021F2AF8(pokedexApp, sp4, sp0)) { + if (pokedexApp->unk_1858 == 1) { + PlaySE(SEQ_SE_GS_ZKN_BUTTON8); + ov18_021EDC74(pokedexApp, 0); + } else { + PlaySE(SEQ_SE_GS_ZKN_BUTTON8); + ov18_021EDC74(pokedexApp, 1); + } + } + } else { + ov18_021EDCD4(pokedexApp); + return POKEDEXAPP_MAINSEQ_06; + } + + return POKEDEXAPP_MAINSEQ_07; +} + +static int PokedexApp_MainSeq_08(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State06 *r4 = &pokedexApp->unk_0868.state_06; + + switch (r4->unk_A) { + case 0: { + u32 sp4; + u32 sp0; + + if (!System_GetTouchHeldCoords(&sp4, &sp0)) { + if (Bg_GetXpos(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0) >= 64) { + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_09; + } + ++r4->unk_A; + } else if ((s32)(r4->unk_0 - sp4) < 0) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 0); + ov18_021F2B70(pokedexApp, 0, r4->unk_8); + } else { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, r4->unk_0 - sp4); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, r4->unk_0 - sp4); + ov18_021F2B70(pokedexApp, 0, r4->unk_8 - (r4->unk_0 - sp4)); + } + } break; + case 1: + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SUB_X, 16); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SUB_X, 16); + ov18_021F2B3C(pokedexApp, 0, 16); + if (Bg_GetXpos(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0) <= 0) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 0); + ov18_021F2B70(pokedexApp, 0, ov18_021F2B9C(pokedexApp)); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_06; + } + break; + } + + return POKEDEXAPP_MAINSEQ_08; +} + +static int PokedexApp_MainSeq_09(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State09 *r4 = &pokedexApp->unk_0868.state_09; + + switch (r4->unk_0) { + case 0: + ov18_021E6574(pokedexApp); + ++r4->unk_0; + // fallthrough + case 1: { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_ADD_X, 16); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_ADD_X, 16); + ov18_021F2B3C(pokedexApp, 0, -16); + int r6 = Bg_GetXpos(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); + if (r4->unk_3 == 0 && r6 >= 192 && !sub_020199E4(pokedexApp->unk_0008, 0)) { + r4->unk_3 = 1; + ov18_021E65AC(pokedexApp); + ov18_021EDE64(pokedexApp); + } + if (r6 >= 256) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 256); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 256); + ov18_021F2B70(pokedexApp, 0, ov18_021F2B9C(pokedexApp) - 256); + if (r4->unk_3 == 1) { + ++r4->unk_0; + } + } + } break; + case 2: + if (!sub_020199E4(pokedexApp->unk_0008, 1)) { + u16 species = ov18_021F8838(pokedexApp); + ov18_021E659C(pokedexApp); + if (species != SPECIES_NONE) { + ov18_021F24E0(pokedexApp, species, 8); + if (ov18_021E6D38(pokedexApp, species) == TRUE) { + ov18_021F2A2C(pokedexApp, 6, 1); + } + } + ov18_021EE638(pokedexApp, species, 6); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_11; + } + break; + } + + return POKEDEXAPP_MAINSEQ_09; +} + +static int PokedexApp_MainSeq_10(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + ov18_021E6574(pokedexApp); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 0), 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 0, 16, RGB_BLACK); + ++pokedexApp->unk_0868.state_10.unk_0; + break; + case 1: + if (PaletteData_GetSelectedBuffersBitmask(pokedexApp->paletteData) == 0) { + ++pokedexApp->unk_0868.state_10.unk_0; + } else if (Bg_GetXpos(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0) >= 256) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 256); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 256); + ov18_021F2B70(pokedexApp, 0, ov18_021F2B9C(pokedexApp) - 256); + } else { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_ADD_X, 16); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_ADD_X, 16); + ov18_021F2B3C(pokedexApp, 0, -16); + } + break; + case 2: + if (sub_020199E4(pokedexApp->unk_0008, 0) == 0) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 0); + ZeroPalettesByBitmask(PLTTBUF_MAIN_BG_F | PLTTBUF_SUB_BG_F | PLTTBUF_MAIN_OBJ_F | PLTTBUF_SUB_OBJ_F, HEAP_ID_POKEDEX_APP); + ov18_021EE388(pokedexApp); + ov18_021F2F00(pokedexApp); + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_21; + } + break; + } + + return POKEDEXAPP_MAINSEQ_10; +} + +static int PokedexApp_MainSeq_11(PokedexAppData *pokedexApp) { + switch (ov18_021F6BBC(pokedexApp, 1)) { + case 0: + ov18_021F2BB0(pokedexApp, 5); + ov18_021E6E44(pokedexApp); + ov18_021EDE64(pokedexApp); + break; + case 1: + return POKEDEXAPP_MAINSEQ_12; + case 2: + pokedexApp->unk_185B = 5; + return ov18_021EDBB8(pokedexApp, 0, 8, POKEDEXAPP_MAINSEQ_18); + case 3: + if (ov18_021EDE04(pokedexApp) == TRUE) { + return ov18_021EDBB8(pokedexApp, 8, 8, POKEDEXAPP_MAINSEQ_11); + } + break; + case 4: + if (ov18_021F8838(pokedexApp) != SPECIES_NONE) { + PlaySE(SEQ_SE_GS_ZKN04); + pokedexApp->unk_185B = 1; + return ov18_021EDBB8(pokedexApp, 16, 8, POKEDEXAPP_MAINSEQ_18); + } + break; + case 5: + MenuInputStateMgr_SetState(pokedexApp->args->menuInputStatePtr, MENU_INPUT_STATE_TOUCH); + return ov18_021EDBB8(pokedexApp, 24, 8, POKEDEXAPP_MAINSEQ_20); + case 6: + MenuInputStateMgr_SetState(pokedexApp->args->menuInputStatePtr, MENU_INPUT_STATE_BUTTONS); + return ov18_021EDBB8(pokedexApp, 24, 8, POKEDEXAPP_MAINSEQ_20); + case 7: + ov18_021E6D68(pokedexApp, ov18_021F8838(pokedexApp), -1); + break; + case 8: + ov18_021E6D68(pokedexApp, ov18_021F8838(pokedexApp), 1); + break; + case 9: + if (pokedexApp->unk_1859 != 0) { + PlaySE(SEQ_SE_GS_ZKN04); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_13; + } + break; + case 10: + if (pokedexApp->unk_1859 != 0) { + PlaySE(SEQ_SE_GS_ZKN04); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + pokedexApp->unk_0868.state_13.unk_7 = 1; + return POKEDEXAPP_MAINSEQ_13; + } + break; + case 11: + if (pokedexApp->unk_1859 + 1 <= ov18_021F8950(pokedexApp, 1)) { + PlaySE(SEQ_SE_GS_ZKN04); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_14; + } + break; + case 12: + if (pokedexApp->unk_1859 + 1 <= ov18_021F8950(pokedexApp, 1)) { + PlaySE(SEQ_SE_GS_ZKN04); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + pokedexApp->unk_0868.state_13.unk_7 = 1; + return POKEDEXAPP_MAINSEQ_14; + } + break; + case 13: { + u32 x; + u32 y; + + System_GetTouchHeldCoords(&x, &y); + if (ov18_021F2CD0(pokedexApp, 1, x, y) == 1) { + return POKEDEXAPP_MAINSEQ_15; + } else { + PokedexAppData_UnkSub0868_State16 *r1 = &pokedexApp->unk_0868.state_16; + + r1->unk_0 = x; + r1->unk_2 = y; + return POKEDEXAPP_MAINSEQ_16; + } + } break; + case 14: { + PokedexAppData_UnkSub0868_State17 *r0 = &pokedexApp->unk_0868.state_17; + + System_GetTouchNewCoords(&r0->unk_0, &r0->unk_4); + sub_0201980C(pokedexApp->unk_0008, 4); + ov18_021F2A2C(pokedexApp, 6, 0); + ov18_021F2A84(pokedexApp, 8, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[6]); + return POKEDEXAPP_MAINSEQ_17; + } + } + + return POKEDEXAPP_MAINSEQ_11; +} + +static int PokedexApp_MainSeq_12(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State09 *r4 = &pokedexApp->unk_0868.state_09; + + switch (r4->unk_0) { + case 0: + sub_0201980C(pokedexApp->unk_0008, 4); + ov18_021F2A2C(pokedexApp, 6, 0); + ov18_021F2A84(pokedexApp, 8, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[6]); + ov18_021E65D4(pokedexApp); + ++r4->unk_0; + // fallthrough + case 1: { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SUB_X, 16); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SUB_X, 16); + ov18_021F2B3C(pokedexApp, 0, 16); + int r6 = Bg_GetXpos(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); + if (r4->unk_3 == 0 && r6 < 64 && !sub_020199E4(pokedexApp->unk_0008, 1)) { + r4->unk_3 = 1; + ov18_021E654C(pokedexApp); + } + if (r6 <= 0) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 0); + ov18_021F2B70(pokedexApp, 0, ov18_021F2B9C(pokedexApp)); + if (r4->unk_3 == 1) { + ++r4->unk_0; + } + } + } break; + case 2: + if (!sub_020199E4(pokedexApp->unk_0008, 0)) { + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_06; + } + } + + return POKEDEXAPP_MAINSEQ_12; +} + +static int PokedexApp_MainSeq_13(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State13 *r4 = &pokedexApp->unk_0868.state_13; + + switch (r4->unk_4) { + case 0: + ov18_021F2BFC(pokedexApp); + ov18_021F118C(pokedexApp, 2, 6); + ov18_021F2A2C(pokedexApp, 6, 0); + ov18_021F2A84(pokedexApp, 8, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[6]); + r4->unk_0 = ov18_021E6AEC(pokedexApp, 15 * (pokedexApp->unk_1859 - 1)); + r4->unk_6 = ov18_021F2E14(pokedexApp, 1, ov18_021F2DD4(pokedexApp, pokedexApp->unk_1859 - 1, 1, 1), 15); + ++r4->unk_4; + // fallthrough + case 1: + ++r4->unk_5; + ov18_021E6CE8(pokedexApp, &r4->unk_0[0x1E0 - 32 * r4->unk_5]); + ov18_021F16C4(pokedexApp, 24, 8, r4->unk_5 / 5); + ov18_021F2E4C(pokedexApp, 1, -r4->unk_6); + if (r4->unk_5 == 15) { + ++r4->unk_4; + } + break; + case 2: + if (r4->unk_7 == 1) { + pokedexApp->unk_185A += 10; + } + --pokedexApp->unk_1859; + ov18_021F2BB0(pokedexApp, 5); + ov18_021E6C90(r4->unk_0); + ov18_021E6E44(pokedexApp); + ov18_021F2C10(pokedexApp, 2, 1); + ov18_021F2E80(pokedexApp, 1, 1); + ov18_021EDE64(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_11; + } + + return POKEDEXAPP_MAINSEQ_13; +} + +static int PokedexApp_MainSeq_14(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State13 *r4 = &pokedexApp->unk_0868.state_13; + + switch (r4->unk_4) { + case 0: + ov18_021F2BFC(pokedexApp); + ov18_021F118C(pokedexApp, 3, 9); + ov18_021F2A2C(pokedexApp, 6, 0); + ov18_021F2A84(pokedexApp, 8, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[6]); + r4->unk_0 = ov18_021E6AEC(pokedexApp, 15 * pokedexApp->unk_1859); + r4->unk_6 = ov18_021F2E14(pokedexApp, 1, ov18_021F2DD4(pokedexApp, pokedexApp->unk_1859 + 1, 1, 1), 15); + ++r4->unk_4; + // fallthrough + case 1: + ++r4->unk_5; + ov18_021E6CE8(pokedexApp, &r4->unk_0[32 * r4->unk_5]); + ov18_021F1760(pokedexApp, 24, -8, r4->unk_5 / 5); + ov18_021F2E4C(pokedexApp, 1, r4->unk_6); + if (r4->unk_5 == 15) { + ++r4->unk_4; + } + break; + case 2: + if (r4->unk_7 == 1) { + pokedexApp->unk_185A -= 10; + } + ++pokedexApp->unk_1859; + ov18_021F2BB0(pokedexApp, 5); + ov18_021E6C90(r4->unk_0); + ov18_021E6E44(pokedexApp); + ov18_021F2C10(pokedexApp, 2, 1); + ov18_021F2E80(pokedexApp, 1, 1); + ov18_021EDE64(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_11; + } + + return POKEDEXAPP_MAINSEQ_14; +} + +static int PokedexApp_MainSeq_15(PokedexAppData *pokedexApp) { + u32 x; + u32 y; + + if (!System_GetTouchHeldCoords(&x, &y)) { + return POKEDEXAPP_MAINSEQ_11; + } + if (ov18_021F2D24(pokedexApp, 1, x, y, 1) == 1) { + u16 *r4 = ov18_021E6AEC(pokedexApp, 15 * pokedexApp->unk_1859); + pokedexApp->unk_185E ^= 1; + ov18_021E6CE8(pokedexApp, r4); + ov18_021E6C90(r4); + ov18_021F1620(pokedexApp, 24); + ov18_021E6E44(pokedexApp); + ov18_021F2C10(pokedexApp, 2, 1); + ov18_021EDE64(pokedexApp); + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_15; +} + +static int PokedexApp_MainSeq_16(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State16 *r3 = &pokedexApp->unk_0868.state_16; + if (ov18_021F2D24(pokedexApp, 1, r3->unk_0, r3->unk_2, 1) == 1) { + u16 *r4 = ov18_021E6AEC(pokedexApp, 15 * pokedexApp->unk_1859); + pokedexApp->unk_185E ^= 1; + ov18_021E6CE8(pokedexApp, r4); + ov18_021E6C90(r4); + ov18_021F1620(pokedexApp, 24); + ov18_021E6E44(pokedexApp); + ov18_021F2C10(pokedexApp, 2, 1); + ov18_021EDE64(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_11; +} + +static int PokedexApp_MainSeq_17(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State17 *r4 = &pokedexApp->unk_0868.state_17; + + switch (r4->unk_A) { + case 0: { + u32 x; + u32 y; + + if (!System_GetTouchHeldCoords(&x, &y)) { + if (Bg_GetXpos(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0) < 192) { + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_12; + } + ++r4->unk_A; + } else { + if ((int)(r4->unk_0 + 256 - x) > 256) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 256); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 256); + ov18_021F2B70(pokedexApp, 0, ov18_021F2B9C(pokedexApp) - 256); + } else { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, r4->unk_0 + 0x100 - x); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, r4->unk_0 + 0x100 - x); + ov18_021F2B70(pokedexApp, 0, (ov18_021F2B9C(pokedexApp) - 256) - (r4->unk_0 - x)); + } + } + } break; + case 1: + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_ADD_X, 16); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_ADD_X, 16); + ov18_021F2B3C(pokedexApp, 0, -16); + if (Bg_GetXpos(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0) > 256) { + u16 r4 = ov18_021F8838(pokedexApp); + ov18_021E659C(pokedexApp); + if (r4 != SPECIES_NONE) { + ov18_021F24E0(pokedexApp, r4, 8); + if (ov18_021E6D38(pokedexApp, r4) == TRUE) { + ov18_021F2A2C(pokedexApp, 6, 1); + } + } + ov18_021EE638(pokedexApp, r4, 6); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 256); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 256); + ov18_021F2B70(pokedexApp, 0, ov18_021F2B9C(pokedexApp) - 256); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_11; + } + break; + } + + return POKEDEXAPP_MAINSEQ_17; +} + +static int PokedexApp_MainSeq_18(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + sub_0201980C(pokedexApp->unk_0008, 4); + ov18_021F2A2C(pokedexApp, 6, 0); + ov18_021F2A84(pokedexApp, 8, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[6]); + ov18_021E65D4(pokedexApp); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 0), 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 0, 16, RGB_BLACK); + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_18; + ++pokedexApp->unk_0868.state_10.unk_0; + return POKEDEXAPP_MAINSEQ_03; + case 1: + if (!sub_020199E4(pokedexApp->unk_0008, 1)) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 0); + ZeroPalettesByBitmask(PLTTBUF_MAIN_BG_F | PLTTBUF_SUB_BG_F | PLTTBUF_MAIN_OBJ_F | PLTTBUF_SUB_OBJ_F, HEAP_ID_POKEDEX_APP); + ov18_021EE388(pokedexApp); + ov18_021F2F00(pokedexApp); + pokedexApp->unk_0868.state_10.unk_0 = 0; + if (pokedexApp->unk_185B == 5) { + return POKEDEXAPP_MAINSEQ_21; + } else { + pokedexApp->unk_18A0 = 0; + return POKEDEXAPP_MAINSEQ_66; + } + } + break; + } + + return POKEDEXAPP_MAINSEQ_18; +} + +static int PokedexApp_MainSeq_21(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + ov18_021E67C8(pokedexApp, 5); + ov18_021E65FC(pokedexApp); + ov18_021F6DE0(pokedexApp, 0); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 4), 0, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 16, 0, RGB_BLACK); + ++pokedexApp->unk_0868.state_10.unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_21; + return POKEDEXAPP_MAINSEQ_03; + case 1: + if (!sub_020199E4(pokedexApp->unk_0008, 6)) { + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_22; + } + break; + } + + return POKEDEXAPP_MAINSEQ_21; +} + +static int PokedexApp_MainSeq_22(PokedexAppData *pokedexApp) { + switch (ov18_021F6E2C(pokedexApp)) { + case 0: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDC00(pokedexApp, 16, 1, 11, 2, POKEDEXAPP_MAINSEQ_28); + case 1: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDC00(pokedexApp, 7, 4, 9, 2, POKEDEXAPP_MAINSEQ_31); + case 2: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDC00(pokedexApp, 7, 7, 16, 2, POKEDEXAPP_MAINSEQ_34); + case 3: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDC00(pokedexApp, 7, 10, 14, 2, POKEDEXAPP_MAINSEQ_37); + case 4: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDC00(pokedexApp, 7, 13, 20, 2, POKEDEXAPP_MAINSEQ_44); + case 5: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDC00(pokedexApp, 7, 16, 7, 2, POKEDEXAPP_MAINSEQ_51); + case 6: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDC00(pokedexApp, 26, 7, 4, 4, POKEDEXAPP_MAINSEQ_54); + case 7: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDBDC(pokedexApp, 0, 10, POKEDEXAPP_MAINSEQ_24); + case 8: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDBDC(pokedexApp, 11, 10, POKEDEXAPP_MAINSEQ_23); + case 9: + case -2: + PlaySE(SEQ_SE_GS_GEARCANCEL); + return ov18_021EDBDC(pokedexApp, 22, 10, POKEDEXAPP_MAINSEQ_25); + case -3: + break; + case -1: + case -4: + default: + break; + } + + return POKEDEXAPP_MAINSEQ_22; +} + +static int PokedexApp_MainSeq_23(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State16 *r5 = &pokedexApp->unk_0868.state_16; + + switch (r5->unk_0) { + case 0: + ov18_021F118C(pokedexApp, 27, 2); + ov18_021F11C0(pokedexApp, 27, 1); + ov18_021F11C0(pokedexApp, 0, 0); + ov18_021EEED0(pokedexApp, 9); + ov18_021E6624(pokedexApp); + PlaySE(SEQ_SE_DP_Z_SEARCH); + r5->unk_0 = 1; + break; + case 1: + ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_SORT_ORDER], pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_LETTER], pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1], pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2], pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN], pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX], pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN], pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX], 1 << pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_AREA], pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_BODY_TYPE]); + if (pokedexApp->unk_0878.unk_7B6 == 0 && pokedexApp->unk_0878.unk_7B4 == 0) { + r5->unk_0 = 15; + } else { + ov18_021F8884(pokedexApp, 0); + pokedexApp->unk_185A = 0; + pokedexApp->unk_1859 = 0; + pokedexApp->unk_185C = 2; + r5->unk_0 = 2; + } + break; + case 2: + ov18_021EA350(pokedexApp, GF_BG_LYR_MAIN_0, 9); + r5->unk_0 = 3; + break; + case 3: + ov18_021EA350(pokedexApp, GF_BG_LYR_MAIN_2, 10); + r5->unk_0 = 4; + break; + case 4: + ov18_021EA350(pokedexApp, GF_BG_LYR_MAIN_0, 11); + r5->unk_0 = 5; + break; + case 5: + ov18_021EA350(pokedexApp, GF_BG_LYR_MAIN_2, 12); + r5->unk_0 = 6; + break; + case 6: + ov18_021EFEC4(pokedexApp); + r5->unk_0 = 7; + break; + case 7: + ov18_021F1620(pokedexApp, 59); + ov18_021E6CC0(pokedexApp); + r5->unk_0 = 8; + break; + case 8: + ov18_021F11C0(pokedexApp, 18, 1); + ov18_021F11C0(pokedexApp, 19, 1); + ov18_021F11C0(pokedexApp, 20, 1); + ov18_021F11C0(pokedexApp, 21, 1); + ov18_021F11C0(pokedexApp, 25, 1); + ov18_021F2C5C(pokedexApp, 18, 0); + ov18_021F2E80(pokedexApp, 18, 0); + ov18_021F2C10(pokedexApp, 19, 0); + r5->unk_0 = 9; + break; + case 9: + if (!ov18_021F11AC(pokedexApp, 27)) { + ov18_021F118C(pokedexApp, 26, 1); + ov18_021F11C0(pokedexApp, 27, 0); + r5->unk_0 = 10; + } + break; + case 10: + ++r5->unk_2; + if (r5->unk_2 == 32) { + ov18_021EEED0(pokedexApp, 1); + ov18_021F3BA4(pokedexApp); + ov18_021F3BD4(pokedexApp, -8); + ov18_021E7B6C(TRUE); + sub_020196E8(pokedexApp->unk_0008, 9, 0, 0); + sub_020196E8(pokedexApp->unk_0008, 10, 0, 0); + sub_020196E8(pokedexApp->unk_0008, 11, 0, 24); + sub_020196E8(pokedexApp->unk_0008, 12, 0, 24); + sub_020198FC(pokedexApp->unk_0008, 9, 0, -1, 24); + sub_020198FC(pokedexApp->unk_0008, 10, 0, -1, 24); + sub_020198FC(pokedexApp->unk_0008, 11, 0, -1, 24); + sub_020198FC(pokedexApp->unk_0008, 12, 0, -1, 24); + PlaySE(SEQ_SE_GS_ZUKAN06); + r5->unk_2 = 0; + r5->unk_0 = 11; + } + break; + case 11: + if (!sub_020199E4(pokedexApp->unk_0008, 9)) { + ov18_021E7B6C(FALSE); + r5->unk_0 = 12; + } else { + ov18_021F3BD4(pokedexApp, -8); + } + break; + case 12: + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000004_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000019_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000020_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021E669C(pokedexApp); + ov18_021F3448(pokedexApp); + r5->unk_0 = 13; + break; + case 13: + if (!sub_020199E4(pokedexApp->unk_0008, 8)) { + r5->unk_0 = 14; + } + break; + case 14: + ov18_021F7B74(pokedexApp); + ov18_021F11C0(pokedexApp, 0, 1); + ov18_021F2BB0(pokedexApp, 0); + ov18_021F118C(pokedexApp, 0, 1); + ov18_021F3190(pokedexApp); + ov18_021EDEB0(pokedexApp); + ov18_021E659C(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_57; + case 15: + if (!ov18_021F11AC(pokedexApp, 27)) { + ov18_021F118C(pokedexApp, 26, 3); + ov18_021F11C0(pokedexApp, 27, 0); + r5->unk_0 = 16; + } + break; + case 16: + if (!ov18_021F11AC(pokedexApp, 26)) { + ov18_021EEED0(pokedexApp, 10); + PlaySE(SEQ_SE_DP_CUSTOM06); + r5->unk_0 = 17; + } + break; + case 17: + ++r5->unk_2; + if ((gSystem.newKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || System_GetTouchNew() == TRUE || r5->unk_2 == 60) { + ov18_021EEED0(pokedexApp, 0); + ov18_021E65FC(pokedexApp); + r5->unk_2 = 0; + r5->unk_0 = 18; + } + break; + case 18: + if (!sub_020199E4(pokedexApp->unk_0008, 6)) { + ov18_021F11C0(pokedexApp, 0, 1); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_22; + } + break; + } + + return POKEDEXAPP_MAINSEQ_23; +} + +static void ov18_021EA350(PokedexAppData *pokedexApp, int bgId, int a2) { + sub_02019668(pokedexApp->unk_0008, a2, GetBgTilemapBuffer(pokedexApp->bgConfig, bgId)); +} + +static int PokedexApp_MainSeq_24(PokedexAppData *pokedexApp) { + ov18_021E6FFC(pokedexApp); + ov18_021EF528(pokedexApp); + ov18_021F3494(pokedexApp); + return POKEDEXAPP_MAINSEQ_22; +} + +static int PokedexApp_MainSeq_25(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + ov18_021F11C0(pokedexApp, 0, 0); + ov18_021E6624(pokedexApp); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 4), 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 0, 16, RGB_BLACK); + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_25; + ++pokedexApp->unk_0868.state_10.unk_0; + return POKEDEXAPP_MAINSEQ_03; + case 1: + ZeroPalettesByBitmask(PLTTBUF_MAIN_BG_F | PLTTBUF_SUB_BG_F | PLTTBUF_MAIN_OBJ_F | PLTTBUF_SUB_OBJ_F, HEAP_ID_POKEDEX_APP); + ov18_021F7B74(pokedexApp); + ov18_021EE388(pokedexApp); + ov18_021F3438(pokedexApp); + ov18_021F3448(pokedexApp); + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_19; + } + + return POKEDEXAPP_MAINSEQ_25; +} + +static int PokedexApp_MainSeq_19(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, 0, DEX_SEARCH_LETTERS_ALL, DEX_SEARCH_TYPE_ALL, DEX_SEARCH_TYPE_ALL, 0, 152, 0, 152, 1 << DEX_SEARCH_AREA_ALL, DEX_SEARCH_BODYTYPE_ALL); + ov18_021F8884(pokedexApp, 1); + ++pokedexApp->unk_0868.state_10.unk_0; + break; + case 1: + ov18_021E67C8(pokedexApp, 0); + if (ov18_021F8824(pokedexApp) >= ov18_021F891C(pokedexApp, TRUE)) { + ov18_021E6FB8(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, pokedexApp->gfxNarc, HEAP_ID_POKEDEX_APP); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[7]); + ov18_021F11C0(pokedexApp, 10, 0); + } + sub_0201980C(pokedexApp->unk_0008, 0); + ov18_021E65AC(pokedexApp); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 256); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 256); + ov18_021F2B3C(pokedexApp, 0, -256); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 0), 0, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 16, 0, RGB_BLACK); + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_19; + ++pokedexApp->unk_0868.state_10.unk_0; + return POKEDEXAPP_MAINSEQ_03; + case 2: { + u16 species = ov18_021F8838(pokedexApp); + ov18_021E659C(pokedexApp); + if (species != SPECIES_NONE) { + ov18_021F2A84(pokedexApp, 8, 1); + } else { + ov18_021F2A84(pokedexApp, 8, 0); + } + if (ov18_021E6D38(pokedexApp, species) == TRUE) { + ov18_021F2A2C(pokedexApp, 6, 1); + } + ov18_021EE638(pokedexApp, species, 6); + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_11; + } + } + + return POKEDEXAPP_MAINSEQ_19; +} + +static int PokedexApp_MainSeq_20(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State09 *r4 = &pokedexApp->unk_0868.state_09; + + switch (r4->unk_0) { + case 0: + sub_0201980C(pokedexApp->unk_0008, 4); + ov18_021F2A2C(pokedexApp, 6, 0); + ov18_021F2A84(pokedexApp, 8, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[6]); + ov18_021E65D4(pokedexApp); + r4->unk_2 = 0; + ++r4->unk_0; + // fallthrough + case 1: + if (r4->unk_2 == 10) { + ov18_021EDB3C(pokedexApp, POKEDEXAPP_MAINSEQ_MAX); + } else if (r4->unk_2 > 10 && IsPaletteFadeFinished() == TRUE) { + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_MAX; + return POKEDEXAPP_MAINSEQ_01; + } + ++r4->unk_2; + if (Bg_GetXpos(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0) == 0) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 0); + ov18_021F2B70(pokedexApp, 0, ov18_021F2B9C(pokedexApp)); + } else { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SUB_X, 16); + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SUB_X, 16); + ov18_021F2B3C(pokedexApp, 0, 16); + } + break; + } + + return POKEDEXAPP_MAINSEQ_20; +} + +static int PokedexApp_MainSeq_26(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State26 *r4 = &pokedexApp->unk_0868.state_26; + + switch (r4->unk_2) { + case 0: + ov18_021F11C0(pokedexApp, 0, 0); + ov18_021E6624(pokedexApp); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 4), 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 0, 16, RGB_BLACK); + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_26; + ++r4->unk_2; + return POKEDEXAPP_MAINSEQ_03; + case 1: + ov18_021F7B74(pokedexApp); + ov18_021E664C(pokedexApp); + ov18_021E71D0(pokedexApp, r4->unk_0, r4->unk_3); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 4), 0, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 16, 0, RGB_BLACK); + pokedexApp->unk_085C = r4->unk_1; + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_03; + } + + return POKEDEXAPP_MAINSEQ_26; // if we're here, we're softlocked +} + +static int PokedexApp_MainSeq_27(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State26 *r4 = &pokedexApp->unk_0868.state_26; + + switch (r4->unk_2) { + case 0: + ov18_021F11C0(pokedexApp, 0, 0); + ov18_021E6674(pokedexApp); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 4), 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 0, 16, RGB_BLACK); + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_27; + ++r4->unk_2; + return POKEDEXAPP_MAINSEQ_03; + case 1: + ov18_021F7B74(pokedexApp); + ov18_021E65FC(pokedexApp); + ov18_021E71D0(pokedexApp, 0, r4->unk_3); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 4), 0, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 16, 0, RGB_BLACK); + pokedexApp->unk_085C = r4->unk_1; + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_03; + } + + return POKEDEXAPP_MAINSEQ_27; // if we're here, we're softlocked +} + +static int PokedexApp_MainSeq_28(PokedexAppData *pokedexApp) { + pokedexApp->dexSearchCriteriaBak[0] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_SORT_ORDER]; + ov18_021EDE4C(pokedexApp, 1, 0, POKEDEXAPP_MAINSEQ_29); + return POKEDEXAPP_MAINSEQ_26; +} + +static int PokedexApp_MainSeq_29(PokedexAppData *pokedexApp) { + switch (ov18_021F6F08(pokedexApp)) { + case DEX_ORDER_NATIONAL: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021E74B8(pokedexApp, 0); + break; + case DEX_ORDER_JOHTO: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021E74B8(pokedexApp, 1); + break; + case DEX_ORDER_ALPHABETICAL: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021E74B8(pokedexApp, 2); + break; + case DEX_ORDER_HEAVIEST: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021E74B8(pokedexApp, 3); + break; + case DEX_ORDER_LIGHTEST: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021E74B8(pokedexApp, 4); + break; + case DEX_ORDER_TALLEST: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021E74B8(pokedexApp, 5); + break; + case DEX_ORDER_SHORTEST: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDBDC(pokedexApp, 0, 10, POKEDEXAPP_MAINSEQ_30); + case DEX_ORDER_QUIT: + case LIST_CANCEL: + PlaySE(SEQ_SE_GS_GEARCANCEL); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_SORT_ORDER] = pokedexApp->dexSearchCriteriaBak[0]; + return ov18_021EDBDC(pokedexApp, 22, 10, POKEDEXAPP_MAINSEQ_30); + } + + return POKEDEXAPP_MAINSEQ_29; +} + +static int PokedexApp_MainSeq_30(PokedexAppData *pokedexApp) { + ov18_021EDE4C(pokedexApp, 0, 0, POKEDEXAPP_MAINSEQ_22); + return POKEDEXAPP_MAINSEQ_27; +} + +static int PokedexApp_MainSeq_31(PokedexAppData *pokedexApp) { + pokedexApp->dexSearchCriteriaBak[0] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_LETTER]; + ov18_021EDE4C(pokedexApp, 2, 0, POKEDEXAPP_MAINSEQ_32); + return POKEDEXAPP_MAINSEQ_26; +} + +static int PokedexApp_MainSeq_32(PokedexAppData *pokedexApp) { + u32 r4 = ov18_021F6FE8(pokedexApp); + switch (r4) { + case -4: + case -3: + case -1: + break; + case DEX_SEARCH_LETTERS_SUBMIT: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDBDC(pokedexApp, 0, 10, POKEDEXAPP_MAINSEQ_33); + case DEX_SEARCH_LETTERS_CANCEL: + case -2: + PlaySE(SEQ_SE_GS_GEARCANCEL); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_LETTER] = pokedexApp->dexSearchCriteriaBak[0]; + return ov18_021EDBDC(pokedexApp, 22, 10, POKEDEXAPP_MAINSEQ_33); + default: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021E76EC(pokedexApp, r4); + break; + } + + return POKEDEXAPP_MAINSEQ_32; +} + +static int PokedexApp_MainSeq_33(PokedexAppData *pokedexApp) { + ov18_021EDE4C(pokedexApp, 0, 1, POKEDEXAPP_MAINSEQ_22); + return POKEDEXAPP_MAINSEQ_27; +} + +static int PokedexApp_MainSeq_34(PokedexAppData *pokedexApp) { + pokedexApp->dexSearchCriteriaBak[0] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1]; + pokedexApp->dexSearchCriteriaBak[1] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2]; + ov18_021EDE4C(pokedexApp, 3, 0, POKEDEXAPP_MAINSEQ_35); + return POKEDEXAPP_MAINSEQ_26; +} + +static int PokedexApp_MainSeq_35(PokedexAppData *pokedexApp) { + u32 r0 = ov18_021F716C(pokedexApp); + switch (r0) { + case -4: + case -3: + case -1: + break; + case DEX_SEARCH_TYPE_SUBMIT: + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1] == pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2]) { + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2] = DEX_SEARCH_TYPE_ALL; + } + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDBDC(pokedexApp, 0, 10, POKEDEXAPP_MAINSEQ_36); + case DEX_SEARCH_TYPE_CANCEL: + case -2: + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1] = pokedexApp->dexSearchCriteriaBak[0]; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2] = pokedexApp->dexSearchCriteriaBak[1]; + PlaySE(SEQ_SE_GS_GEARCANCEL); + return ov18_021EDBDC(pokedexApp, 22, 10, POKEDEXAPP_MAINSEQ_36); + default: + if (r0 == DEX_SEARCH_TYPE_ALL) { + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2] != DEX_SEARCH_TYPE_ALL) { + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2] = r0; + } else { + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1] = r0; + } + } else if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1] == DEX_SEARCH_TYPE_ALL) { + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1] = r0; + } else if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2] == DEX_SEARCH_TYPE_ALL) { + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1] == r0) { + break; + } + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2] = r0; + } else { + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2] == r0) { + break; + } + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2]; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2] = r0; + } + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021E74E4(pokedexApp); + ov18_021EFC9C(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE1], 45, 29); + ov18_021EFC9C(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_TYPE2], 46, 35); + ScheduleWindowCopyToVram(&pokedexApp->windows[45]); + ScheduleWindowCopyToVram(&pokedexApp->windows[46]); + break; + } + + return POKEDEXAPP_MAINSEQ_35; +} + +static int PokedexApp_MainSeq_36(PokedexAppData *pokedexApp) { + ov18_021EDE4C(pokedexApp, 0, 2, POKEDEXAPP_MAINSEQ_22); + return POKEDEXAPP_MAINSEQ_27; +} + +static int PokedexApp_MainSeq_37(PokedexAppData *pokedexApp) { + pokedexApp->dexSearchCriteriaBak[0] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN]; + pokedexApp->dexSearchCriteriaBak[1] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX]; + ov18_021EDE4C(pokedexApp, 4, 0, POKEDEXAPP_MAINSEQ_38); + return POKEDEXAPP_MAINSEQ_26; +} + +static int PokedexApp_MainSeq_38(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State38 *r5 = &pokedexApp->unk_0868.state_38; + + switch (ov18_021F739C(pokedexApp)) { + case 0: + r5->unk_0 = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX]; + r5->unk_4 = 0; + ov18_021F36D4(pokedexApp, 0, 5, 1); + return POKEDEXAPP_MAINSEQ_40; + case 1: + r5->unk_0 = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN]; + r5->unk_4 = 0; + ov18_021F36D4(pokedexApp, 0, 11, 1); + return POKEDEXAPP_MAINSEQ_41; + case 2: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return ov18_021EDBDC(pokedexApp, 0, 10, POKEDEXAPP_MAINSEQ_39); + case 3: + case -2: + PlaySE(SEQ_SE_GS_GEARCANCEL); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN] = pokedexApp->dexSearchCriteriaBak[0]; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX] = pokedexApp->dexSearchCriteriaBak[1]; + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return ov18_021EDBDC(pokedexApp, 22, 10, POKEDEXAPP_MAINSEQ_39); + case 4: + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX] == 152) { + break; + } + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + r5->unk_8 = 2; + r5->unk_A = 1; + ov18_021F118C(pokedexApp, r5->unk_8, 54); + return POKEDEXAPP_MAINSEQ_42; + case 5: + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX] > pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN]) { + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + r5->unk_8 = 1; + r5->unk_A = -1; + ov18_021F118C(pokedexApp, r5->unk_8, 57); + return POKEDEXAPP_MAINSEQ_42; + } + break; + case 6: + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN] < pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX]) { + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + r5->unk_8 = 4; + r5->unk_A = 1; + ov18_021F118C(pokedexApp, r5->unk_8, 54); + return POKEDEXAPP_MAINSEQ_43; + } + break; + case 7: + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN] == 0) { + break; + } + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + r5->unk_8 = 3; + r5->unk_A = -1; + ov18_021F118C(pokedexApp, r5->unk_8, 57); + return POKEDEXAPP_MAINSEQ_43; + case -1: + if ((gSystem.heldKeys & PAD_KEY_LEFT) || (gSystem.heldKeys & PAD_KEY_RIGHT) || System_GetTouchHeld()) { + break; + } + r5->unk_4 = 0; + break; + } + + return POKEDEXAPP_MAINSEQ_38; +} + +static void ov18_021EAD74(u32 *pOut, int hmin, int hmax, u32 *pStep, int direction) { + int tmp; + int step; + + if (*pStep != 24) { + ++(*pStep); + } + if (*pStep >= 24) { + step = 32; + } else if (*pStep >= 16) { + step = 16; + } else if (*pStep >= 8) { + step = 8; + } else { + step = 1; + } + tmp = (*pOut) + step * direction; + if (tmp < hmin) { + tmp = hmin; + } else if (tmp > hmax) { + tmp = hmax; + } + *pOut = tmp; +} + +static void ov18_021EADB8(PokedexAppData *pokedexApp, int a1, BOOL a2, int a3, int a4) { + if (a2 == FALSE) { + ov18_021F36D4(pokedexApp, ov18_021F3AD0(pokedexApp, a1), a3, 1); + ov18_021F38F0(pokedexApp, a3 + 1, pokedexApp->unk_1850[a1].unk_0); + ov18_021EFD00(pokedexApp, pokedexApp->unk_1850[a1].unk_0, a4); + ScheduleWindowCopyToVram(&pokedexApp->windows[a4]); + } else { + ov18_021F37D4(pokedexApp, ov18_021F3AD0(pokedexApp, a1), a3, 1); + ov18_021F39C4(pokedexApp, a3 + 1, pokedexApp->unk_1850[a1].unk_2); + ov18_021EFDB4(pokedexApp, pokedexApp->unk_1850[a1].unk_2, a4); + ScheduleWindowCopyToVram(&pokedexApp->windows[a4]); + } +} + +static int PokedexApp_MainSeq_39(PokedexAppData *pokedexApp) { + ov18_021EDE4C(pokedexApp, 0, 3, POKEDEXAPP_MAINSEQ_22); + return POKEDEXAPP_MAINSEQ_27; +} + +static int PokedexApp_MainSeq_40(PokedexAppData *pokedexApp) { + u32 sp4; + u32 r4; + PokedexAppData_UnkSub0868_State38 *r4_2 = &pokedexApp->unk_0868.state_38; + + if (!ov18_021F765C(&sp4)) { + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX] < pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN]) { + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX] = r4_2->unk_0; + } + ov18_021EADB8(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX], FALSE, 5, 70); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX], 1); + return POKEDEXAPP_MAINSEQ_38; + } + + r4 = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX]; + ov18_021F36D4(pokedexApp, sp4, 5, 1); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX] = ov18_021F3AB0(pokedexApp, 5); + ov18_021F38F0(pokedexApp, 6, pokedexApp->unk_1850[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX]].unk_0); + ov18_021EFD00(pokedexApp, pokedexApp->unk_1850[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX]].unk_0, 70); + ScheduleWindowCopyToVram(&pokedexApp->windows[70]); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX], 1); + if (r4 != pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX]) { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_40; +} + +static int PokedexApp_MainSeq_41(PokedexAppData *pokedexApp) { + u32 sp4; + u32 r4; + PokedexAppData_UnkSub0868_State38 *r4_2 = &pokedexApp->unk_0868.state_38; + + if (!ov18_021F765C(&sp4)) { + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN] > pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX]) { + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN] = r4_2->unk_0; + } + ov18_021EADB8(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN], FALSE, 11, 69); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN], 3); + return POKEDEXAPP_MAINSEQ_38; + } + + r4 = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN]; + ov18_021F36D4(pokedexApp, sp4, 11, 1); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN] = ov18_021F3AB0(pokedexApp, 11); + ov18_021F38F0(pokedexApp, 12, pokedexApp->unk_1850[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN]].unk_0); + ov18_021EFD00(pokedexApp, pokedexApp->unk_1850[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN]].unk_0, 69); + ScheduleWindowCopyToVram(&pokedexApp->windows[69]); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN], 3); + if (r4 != pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN]) { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_41; +} + +static int PokedexApp_MainSeq_42(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State38 *r4 = &pokedexApp->unk_0868.state_38; + + if (!ov18_021F11AC(pokedexApp, r4->unk_8)) { + ov18_021EAD74(&pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX], pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN], 152, &r4->unk_4, r4->unk_A); + ov18_021EADB8(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX], FALSE, 5, 70); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX], 1); + return POKEDEXAPP_MAINSEQ_38; + } + + return POKEDEXAPP_MAINSEQ_42; +} + +static int PokedexApp_MainSeq_43(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State38 *r4 = &pokedexApp->unk_0868.state_38; + + if (!ov18_021F11AC(pokedexApp, r4->unk_8)) { + ov18_021EAD74(&pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN], 0, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MAX], &r4->unk_4, r4->unk_A); + ov18_021EADB8(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN], FALSE, 11, 69); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_HEIGHT_MIN], 3); + return POKEDEXAPP_MAINSEQ_38; + } + + return POKEDEXAPP_MAINSEQ_43; +} + +static int PokedexApp_MainSeq_44(PokedexAppData *pokedexApp) { + pokedexApp->dexSearchCriteriaBak[0] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN]; + pokedexApp->dexSearchCriteriaBak[1] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX]; + ov18_021EDE4C(pokedexApp, 5, 0, POKEDEXAPP_MAINSEQ_45); + return POKEDEXAPP_MAINSEQ_26; +} + +static int PokedexApp_MainSeq_45(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State38 *r5 = &pokedexApp->unk_0868.state_38; + + switch (ov18_021F7520(pokedexApp)) { + case 0: + r5->unk_0 = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX]; + r5->unk_4 = 0; + ov18_021F37D4(pokedexApp, 0, 5, 1); + return POKEDEXAPP_MAINSEQ_47; + case 1: + r5->unk_0 = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN]; + r5->unk_4 = 0; + ov18_021F37D4(pokedexApp, 0, 11, 1); + return POKEDEXAPP_MAINSEQ_48; + case 2: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return ov18_021EDBDC(pokedexApp, 0, 10, POKEDEXAPP_MAINSEQ_46); + case 3: + case -2: + PlaySE(SEQ_SE_GS_GEARCANCEL); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN] = pokedexApp->dexSearchCriteriaBak[0]; + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX] = pokedexApp->dexSearchCriteriaBak[1]; + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return ov18_021EDBDC(pokedexApp, 22, 10, POKEDEXAPP_MAINSEQ_46); + case 4: + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX] == 152) { + break; + } + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + r5->unk_8 = 2; + r5->unk_A = 1; + ov18_021F118C(pokedexApp, r5->unk_8, 54); + return POKEDEXAPP_MAINSEQ_49; + case 5: + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX] > pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN]) { + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + r5->unk_8 = 1; + r5->unk_A = -1; + ov18_021F118C(pokedexApp, r5->unk_8, 57); + return POKEDEXAPP_MAINSEQ_49; + } + break; + case 6: + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN] < pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX]) { + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + r5->unk_8 = 4; + r5->unk_A = 1; + ov18_021F118C(pokedexApp, r5->unk_8, 54); + return POKEDEXAPP_MAINSEQ_50; + } + break; + case 7: + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN] == 0) { + break; + } + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + r5->unk_8 = 3; + r5->unk_A = -1; + ov18_021F118C(pokedexApp, r5->unk_8, 57); + return POKEDEXAPP_MAINSEQ_50; + case -1: + if ((gSystem.heldKeys & PAD_KEY_LEFT) || (gSystem.heldKeys & PAD_KEY_RIGHT) || System_GetTouchHeld()) { + break; + } + r5->unk_4 = 0; + break; + } + + return POKEDEXAPP_MAINSEQ_45; +} + +static int PokedexApp_MainSeq_46(PokedexAppData *pokedexApp) { + ov18_021EDE4C(pokedexApp, 0, 4, POKEDEXAPP_MAINSEQ_22); + return POKEDEXAPP_MAINSEQ_27; +} + +static int PokedexApp_MainSeq_47(PokedexAppData *pokedexApp) { + u32 sp4; + u32 r4; + PokedexAppData_UnkSub0868_State38 *r4_2 = &pokedexApp->unk_0868.state_38; + + if (!ov18_021F765C(&sp4)) { + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX] < pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN]) { + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX] = r4_2->unk_0; + } + ov18_021EADB8(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX], TRUE, 5, 73); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX], 1); + return POKEDEXAPP_MAINSEQ_45; + } + + r4 = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX]; + ov18_021F37D4(pokedexApp, sp4, 5, 1); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX] = ov18_021F3AB0(pokedexApp, 5); + ov18_021F39C4(pokedexApp, 6, pokedexApp->unk_1850[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX]].unk_2); + ov18_021EFDB4(pokedexApp, pokedexApp->unk_1850[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX]].unk_2, 73); + ScheduleWindowCopyToVram(&pokedexApp->windows[73]); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX], 1); + if (r4 != pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX]) { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_47; +} + +static int PokedexApp_MainSeq_48(PokedexAppData *pokedexApp) { + u32 sp4; + u32 r4; + PokedexAppData_UnkSub0868_State38 *r4_2 = &pokedexApp->unk_0868.state_38; + + if (!ov18_021F765C(&sp4)) { + if (pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN] > pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX]) { + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN] = r4_2->unk_0; + } + ov18_021EADB8(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN], TRUE, 11, 72); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN], 3); + return POKEDEXAPP_MAINSEQ_45; + } + + r4 = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN]; + ov18_021F37D4(pokedexApp, sp4, 11, 1); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN] = ov18_021F3AB0(pokedexApp, 11); + ov18_021F39C4(pokedexApp, 12, pokedexApp->unk_1850[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN]].unk_2); + ov18_021EFDB4(pokedexApp, pokedexApp->unk_1850[pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN]].unk_2, 72); + ScheduleWindowCopyToVram(&pokedexApp->windows[72]); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN], 3); + if (r4 != pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN]) { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_48; +} + +static int PokedexApp_MainSeq_49(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State38 *r4 = &pokedexApp->unk_0868.state_38; + + if (!ov18_021F11AC(pokedexApp, r4->unk_8)) { + ov18_021EAD74(&pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX], pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN], 152, &r4->unk_4, r4->unk_A); + ov18_021EADB8(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX], TRUE, 5, 73); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX], 1); + return POKEDEXAPP_MAINSEQ_45; + } + + return POKEDEXAPP_MAINSEQ_49; +} + +static int PokedexApp_MainSeq_50(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State38 *r4 = &pokedexApp->unk_0868.state_38; + + if (!ov18_021F11AC(pokedexApp, r4->unk_8)) { + ov18_021EAD74(&pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN], 0, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MAX], &r4->unk_4, r4->unk_A); + ov18_021EADB8(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN], TRUE, 11, 72); + ov18_021F3A64(pokedexApp, pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_WEIGHT_MIN], 3); + return POKEDEXAPP_MAINSEQ_45; + } + + return POKEDEXAPP_MAINSEQ_50; +} + +static int PokedexApp_MainSeq_51(PokedexAppData *pokedexApp) { + pokedexApp->dexSearchCriteriaBak[0] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_AREA]; + ov18_021EDE4C(pokedexApp, 6, 0, POKEDEXAPP_MAINSEQ_52); + return POKEDEXAPP_MAINSEQ_26; +} + +static int PokedexApp_MainSeq_52(PokedexAppData *pokedexApp) { + u32 r4 = ov18_021F76B0(pokedexApp); + + switch (r4) { + case DEX_SEARCH_AREA_SUBMIT: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDBDC(pokedexApp, 0, 10, POKEDEXAPP_MAINSEQ_53); + case DEX_SEARCH_AREA_CANCEL: + case -2: + PlaySE(SEQ_SE_GS_GEARCANCEL); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_AREA] = pokedexApp->dexSearchCriteriaBak[0]; + return ov18_021EDBDC(pokedexApp, 22, 10, POKEDEXAPP_MAINSEQ_53); + default: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021E7534(pokedexApp, r4); + break; + case -3: + case -1: + case -4: + break; + } + + return POKEDEXAPP_MAINSEQ_52; +} + +static int PokedexApp_MainSeq_53(PokedexAppData *pokedexApp) { + ov18_021EDE4C(pokedexApp, 0, 5, POKEDEXAPP_MAINSEQ_22); + return POKEDEXAPP_MAINSEQ_27; +} + +static int PokedexApp_MainSeq_54(PokedexAppData *pokedexApp) { + pokedexApp->dexSearchCriteriaBak[0] = pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_BODY_TYPE]; + ov18_021EDE4C(pokedexApp, 7, 0, POKEDEXAPP_MAINSEQ_55); + return POKEDEXAPP_MAINSEQ_26; +} + +static int PokedexApp_MainSeq_55(PokedexAppData *pokedexApp) { + u32 r4 = ov18_021F7790(pokedexApp); + + switch (r4) { + case DEX_SEARCH_BODYTYPE_SUBMIT: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDBDC(pokedexApp, 0, 10, POKEDEXAPP_MAINSEQ_56); + case DEX_SEARCH_BODYTYPE_CANCEL: + case -2: + PlaySE(SEQ_SE_GS_GEARCANCEL); + pokedexApp->dexSearchCriteria[DEX_SEARCH_CRITERIA_BODY_TYPE] = pokedexApp->dexSearchCriteriaBak[0]; + return ov18_021EDBDC(pokedexApp, 22, 10, POKEDEXAPP_MAINSEQ_56); + default: + (void)MenuInputStateMgr_GetState(pokedexApp->args->menuInputStatePtr); + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021E766C(pokedexApp, r4); + break; + case -3: + case -1: + case -4: + break; + } + + return POKEDEXAPP_MAINSEQ_55; +} + +static int PokedexApp_MainSeq_56(PokedexAppData *pokedexApp) { + ov18_021EDE4C(pokedexApp, 0, 6, POKEDEXAPP_MAINSEQ_22); + return POKEDEXAPP_MAINSEQ_27; +} + +static int PokedexApp_MainSeq_57(PokedexAppData *pokedexApp) { + switch (ov18_021F7974(pokedexApp, 0)) { + case 0: + ov18_021F2BB0(pokedexApp, 0); + ov18_021E78AC(pokedexApp); + ov18_021EDEB0(pokedexApp); + break; + case 1: + break; + case 2: + return ov18_021EDBB8(pokedexApp, 0, 8, POKEDEXAPP_MAINSEQ_62); + case 3: + if (ov18_021F8824(pokedexApp) && ov18_021EDE04(pokedexApp) == 1) { + return ov18_021EDBB8(pokedexApp, 8, 8, POKEDEXAPP_MAINSEQ_57); + } + break; + case 4: + if (ov18_021F8824(pokedexApp) && ov18_021F8838(pokedexApp)) { + PlaySE(SEQ_SE_GS_ZKN04); + pokedexApp->unk_185B = 1; + return ov18_021EDBB8(pokedexApp, 16, 8, POKEDEXAPP_MAINSEQ_64); + } + break; + case 5: + return ov18_021EDBB8(pokedexApp, 24, 8, POKEDEXAPP_MAINSEQ_63); + case 6: + return ov18_021EDBB8(pokedexApp, 24, 8, POKEDEXAPP_MAINSEQ_63); + case 7: + ov18_021E7A80(pokedexApp, ov18_021F8838(pokedexApp), -1); + break; + case 8: + ov18_021E7A80(pokedexApp, ov18_021F8838(pokedexApp), 1); + break; + case 9: + if (pokedexApp->unk_1859 > 0) { + PlaySE(SEQ_SE_GS_ZKN04); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_58; + } + break; + case 10: + if (pokedexApp->unk_1859 > 0) { + PlaySE(SEQ_SE_GS_ZKN04); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + pokedexApp->unk_0868.state_13.unk_7 = 1; + return POKEDEXAPP_MAINSEQ_58; + } + break; + case 11: + if (pokedexApp->unk_1859 + 1 <= ov18_021F8950(pokedexApp, 0)) { + PlaySE(SEQ_SE_GS_ZKN04); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_59; + } + break; + case 12: + if (pokedexApp->unk_1859 + 1 <= ov18_021F8950(pokedexApp, 0)) { + PlaySE(SEQ_SE_GS_ZKN04); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + pokedexApp->unk_0868.state_13.unk_7 = 1; + return POKEDEXAPP_MAINSEQ_59; + } + break; + case 13: { + u32 x, y; + + System_GetTouchHeldCoords(&x, &y); + if (ov18_021F2CD0(pokedexApp, 18, x, y) == 1) { + return POKEDEXAPP_MAINSEQ_60; + } else { + PokedexAppData_UnkSub0868_State16 *r1 = &pokedexApp->unk_0868.state_16; + + r1->unk_0 = x; + r1->unk_2 = y; + return POKEDEXAPP_MAINSEQ_61; + } + } break; + } + + return POKEDEXAPP_MAINSEQ_57; +} + +static int PokedexApp_MainSeq_58(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State13 *r4 = &pokedexApp->unk_0868.state_13; + + switch (r4->unk_4) { + case 0: + ov18_021F11C0(pokedexApp, 0, 0); + ov18_021F118C(pokedexApp, 19, 6); + ov18_021F2A2C(pokedexApp, 22, 0); + ov18_021F2A84(pokedexApp, 24, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[94]); + r4->unk_0 = ov18_021E6BB8(pokedexApp, 15 * (pokedexApp->unk_1859 - 1)); + r4->unk_6 = ov18_021F2E14(pokedexApp, 18, ov18_021F2DD4(pokedexApp, pokedexApp->unk_1859 - 1, 18, 0), 15); + if (pokedexApp->unk_1859 == 1) { + ov18_021F3C30(pokedexApp); + } + ++r4->unk_4; + // fallthrough + case 1: + ++r4->unk_5; + ov18_021E6CE8(pokedexApp, &r4->unk_0[0x1E0 - 32 * r4->unk_5]); + ov18_021F16C4(pokedexApp, 59, 8, r4->unk_5 / 5); + ov18_021F2E4C(pokedexApp, 18, -r4->unk_6); + if (pokedexApp->unk_1859 == 1) { + ov18_021F3C54(pokedexApp, 8); + } + if (r4->unk_5 == 15) { + ++r4->unk_4; + } + break; + case 2: + if (r4->unk_7 == 1) { + pokedexApp->unk_185A += 10; + } + --pokedexApp->unk_1859; + ov18_021F2BB0(pokedexApp, 0); + ov18_021E6C90(r4->unk_0); + ov18_021E78AC(pokedexApp); + ov18_021EDEB0(pokedexApp); + ov18_021F2C10(pokedexApp, 19, 0); + ov18_021F2E80(pokedexApp, 18, 0); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_57; + } + + return POKEDEXAPP_MAINSEQ_58; +} + +static int PokedexApp_MainSeq_59(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State13 *r4 = &pokedexApp->unk_0868.state_13; + + switch (r4->unk_4) { + case 0: + ov18_021F11C0(pokedexApp, 0, 0); + ov18_021F118C(pokedexApp, 20, 9); + ov18_021F2A2C(pokedexApp, 22, 0); + ov18_021F2A84(pokedexApp, 24, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[94]); + r4->unk_0 = ov18_021E6BB8(pokedexApp, 15 * (pokedexApp->unk_1859)); + r4->unk_6 = ov18_021F2E14(pokedexApp, 18, ov18_021F2DD4(pokedexApp, pokedexApp->unk_1859 + 1, 18, 0), 15); + ++r4->unk_4; + // fallthrough + case 1: + ++r4->unk_5; + ov18_021E6CE8(pokedexApp, &r4->unk_0[32 * r4->unk_5]); + ov18_021F1760(pokedexApp, 59, -8, r4->unk_5 / 5); + ov18_021F2E4C(pokedexApp, 18, r4->unk_6); + if (pokedexApp->unk_1859 == 0) { + ov18_021F3C54(pokedexApp, -8); + } + if (r4->unk_5 == 15) { + ++r4->unk_4; + } + break; + case 2: + if (r4->unk_7 == 1) { + pokedexApp->unk_185A -= 10; + } + ++pokedexApp->unk_1859; + ov18_021F2BB0(pokedexApp, 0); + ov18_021E6C90(r4->unk_0); + ov18_021E78AC(pokedexApp); + ov18_021EDEB0(pokedexApp); + ov18_021F2C10(pokedexApp, 19, 0); + ov18_021F2E80(pokedexApp, 18, 0); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_57; + } + + return POKEDEXAPP_MAINSEQ_59; +} + +static int PokedexApp_MainSeq_60(PokedexAppData *pokedexApp) { + u32 x, y; + + if (!System_GetTouchHeldCoords(&x, &y)) { + return POKEDEXAPP_MAINSEQ_57; + } + if (ov18_021F2D24(pokedexApp, 18, x, y, 0) == 1) { + u16 *r4 = ov18_021E6BB8(pokedexApp, 15 * pokedexApp->unk_1859); + pokedexApp->unk_185E ^= 1; + ov18_021E6CE8(pokedexApp, r4); + ov18_021E6C90(r4); + ov18_021F1620(pokedexApp, 59); + if (!pokedexApp->unk_1859) { + ov18_021F3C88(pokedexApp); + } else { + ov18_021F11C0(pokedexApp, 25, 0); + } + ov18_021E78AC(pokedexApp); + ov18_021EDEB0(pokedexApp); + ov18_021F2C10(pokedexApp, 19, 0); + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_60; +} + +static int PokedexApp_MainSeq_61(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State16 *r3 = &pokedexApp->unk_0868.state_16; + + if (ov18_021F2D24(pokedexApp, 18, r3->unk_0, r3->unk_2, 0) == 1) { + u16 *r4 = ov18_021E6BB8(pokedexApp, 15 * pokedexApp->unk_1859); + pokedexApp->unk_185E ^= 1; + ov18_021E6CE8(pokedexApp, r4); + ov18_021E6C90(r4); + ov18_021F1620(pokedexApp, 59); + if (!pokedexApp->unk_1859) { + ov18_021F3C88(pokedexApp); + } else { + ov18_021F11C0(pokedexApp, 25, 0); + } + ov18_021E78AC(pokedexApp); + ov18_021EDEB0(pokedexApp); + ov18_021F2C10(pokedexApp, 19, 1); + PlaySE(SEQ_SE_GS_ZKN03); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + } + return POKEDEXAPP_MAINSEQ_57; +} + +PokedexApp_MainSeq_62(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: { + u16 r1 = ov18_021F8838(pokedexApp); + if (r1 != 0) { + sub_02092BD8(pokedexApp->args->unk_08, r1, pokedexApp->unk_1858); + } + ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, DEX_ORDER_NATIONAL, DEX_SEARCH_LETTERS_ALL, DEX_SEARCH_TYPE_ALL, DEX_SEARCH_TYPE_ALL, 0, 152, 0, 152, 1 << DEX_SEARCH_AREA_ALL, DEX_SEARCH_BODYTYPE_ALL); + ov18_021F8884(pokedexApp, 1); + ov18_021EDDB4(pokedexApp); + ov18_021EDE64(pokedexApp); + sub_0201980C(pokedexApp->unk_0008, 4); + ov18_021F2A2C(pokedexApp, 22, 0); + ov18_021F2A84(pokedexApp, 24, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[94]); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 0), 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 0, 16, RGB_BLACK); + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_62; + ov18_021E66C4(pokedexApp); + ++pokedexApp->unk_0868.state_10.unk_0; + return POKEDEXAPP_MAINSEQ_03; + } + case 1: + if (!sub_020199E4(pokedexApp->unk_0008, 8)) { + ZeroPalettesByBitmask(PLTTBUF_MAIN_BG_F | PLTTBUF_SUB_BG_F | PLTTBUF_MAIN_OBJ_F | PLTTBUF_SUB_OBJ_F, HEAP_ID_POKEDEX_APP); + ov18_021EE388(pokedexApp); + ov18_021F3294(pokedexApp); + ov18_021F3438(pokedexApp); + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_21; + } + break; + } + + return POKEDEXAPP_MAINSEQ_62; +} + +static int PokedexApp_MainSeq_63(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: { + u16 species = ov18_021F8838(pokedexApp); + if (species != SPECIES_NONE) { + sub_02092BD8(pokedexApp->args->unk_08, species, pokedexApp->unk_1858); + } + ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, DEX_ORDER_NATIONAL, DEX_SEARCH_LETTERS_ALL, DEX_SEARCH_TYPE_ALL, DEX_SEARCH_TYPE_ALL, 0, 152, 0, 152, 1 << DEX_SEARCH_AREA_ALL, DEX_SEARCH_BODYTYPE_ALL); + ov18_021F8884(pokedexApp, 1); + ov18_021EDDB4(pokedexApp); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000001_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000017_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021E7724(pokedexApp); + sub_020196E8(pokedexApp->unk_0008, 13, -36, 0); + sub_020196E8(pokedexApp->unk_0008, 15, -36, 0); + sub_020196E8(pokedexApp->unk_0008, 14, -4, 0); + sub_020198FC(pokedexApp->unk_0008, 13, 2, 0, 18); + sub_020198FC(pokedexApp->unk_0008, 15, 2, 0, 18); + sub_020198FC(pokedexApp->unk_0008, 14, 2, 0, 18); + sub_0201980C(pokedexApp->unk_0008, 4); + ov18_021F2A2C(pokedexApp, 22, 0); + ov18_021F2A84(pokedexApp, 24, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[94]); + ov18_021F11C0(pokedexApp, 0, 0); + ov18_021F3AD8(pokedexApp); + ov18_021E66C4(pokedexApp); + ++pokedexApp->unk_0868.state_10.unk_0; + } // fallthrough + case 1: + if (!sub_020199E4(pokedexApp->unk_0008, 13)) { + ++pokedexApp->unk_0868.state_10.unk_0; + } else { + ov18_021F3B2C(pokedexApp, 16); + } + break; + case 2: + pokedexApp->unk_0868.state_10.unk_0 = 0; + ov18_021EE388(pokedexApp); + ov18_021F3294(pokedexApp); + ov18_021F3438(pokedexApp); + ov18_021E67C8(pokedexApp, 0); + sub_0201980C(pokedexApp->unk_0008, 0); + pokedexApp->unk_0868.state_09.unk_0 = 1; + return POKEDEXAPP_MAINSEQ_09; + } + + return POKEDEXAPP_MAINSEQ_63; +} + +static int PokedexApp_MainSeq_64(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: { + u16 r1 = ov18_021F8838(pokedexApp); + if (r1 != SPECIES_NONE) { + sub_02092BD8(pokedexApp->args->unk_08, r1, pokedexApp->unk_1858); + } + sub_0201980C(pokedexApp->unk_0008, 4); + ov18_021F2A2C(pokedexApp, 22, 0); + ov18_021F2A84(pokedexApp, 24, 0); + ClearWindowTilemapAndScheduleTransfer(&pokedexApp->windows[94]); + ov18_021F11C0(pokedexApp, 0, 0); + ov18_021E66C4(pokedexApp); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 0), 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 0, 16, RGB_BLACK); + pokedexApp->unk_085C = 0x40; + ++pokedexApp->unk_0868.state_10.unk_0; + return POKEDEXAPP_MAINSEQ_03; + } + case 1: + if (sub_020199E4(pokedexApp->unk_0008, 8)) { + break; + } + pokedexApp->unk_0868.state_10.unk_0 = 0; + ov18_021EE388(pokedexApp); + ov18_021F3294(pokedexApp); + ov18_021F3438(pokedexApp); + pokedexApp->unk_18A0 = 5; + return POKEDEXAPP_MAINSEQ_66; + } + + return POKEDEXAPP_MAINSEQ_64; +} + +static int PokedexApp_MainSeq_65(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + ov18_021E67C8(pokedexApp, 5); + ov18_021EA350(pokedexApp, GF_BG_LYR_MAIN_0, 9); + ov18_021EA350(pokedexApp, GF_BG_LYR_MAIN_2, 10); + ov18_021EA350(pokedexApp, GF_BG_LYR_MAIN_0, 11); + ov18_021EA350(pokedexApp, GF_BG_LYR_MAIN_2, 12); + ov18_021EFEC4(pokedexApp); + ov18_021F1620(pokedexApp, 59); + ov18_021E6CC0(pokedexApp); + ov18_021F11C0(pokedexApp, 18, 1); + ov18_021F11C0(pokedexApp, 19, 1); + ov18_021F11C0(pokedexApp, 20, 1); + ov18_021F11C0(pokedexApp, 21, 1); + ov18_021F11C0(pokedexApp, 25, 1); + ov18_021F2C5C(pokedexApp, 18, 0); + ov18_021F2E80(pokedexApp, 18, 0); + ov18_021F2C10(pokedexApp, 19, 0); + ov18_021EEED0(pokedexApp, 1); + ov18_021F3BA4(pokedexApp); + ov18_021F3BD4(pokedexApp, -192); + sub_020196E8(pokedexApp->unk_0008, 9, 0, 0); + sub_020196E8(pokedexApp->unk_0008, 10, 0, 0); + sub_020196E8(pokedexApp->unk_0008, 11, 0, 0); + sub_020196E8(pokedexApp->unk_0008, 12, 0, 0); + sub_0201980C(pokedexApp->unk_0008, 9); + sub_0201980C(pokedexApp->unk_0008, 10); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000004_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000019_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + GfGfxLoader_LoadScrnDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000020_NSCR_lz, pokedexApp->bgConfig, GF_BG_LYR_SUB_3, 0, 0, TRUE, HEAP_ID_POKEDEX_APP); + ov18_021E669C(pokedexApp); + ov18_021F3448(pokedexApp); + ov18_021F11C0(pokedexApp, 0, 1); + ov18_021F2BB0(pokedexApp, 0); + ov18_021F118C(pokedexApp, 0, 1); + ov18_021F3190(pokedexApp); + ov18_021E78AC(pokedexApp); + ov18_021EDEB0(pokedexApp); + ov18_021E659C(pokedexApp); + if (pokedexApp->unk_1859) { + ov18_021F3C54(pokedexApp, -40); + } + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F & ~(1 << 4), 0, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, PLTTFADE_OPAQUE_ALL_F, 0, 16, 0, RGB_BLACK); + ++pokedexApp->unk_0868.state_10.unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_65; + return POKEDEXAPP_MAINSEQ_03; + case 1: + if (!sub_020199E4(pokedexApp->unk_0008, 8)) { + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_57; + } + break; + } + + return POKEDEXAPP_MAINSEQ_65; +} + +static int ov18_021EC1DC(PokedexAppData *pokedexApp, u8 a1, u8 a2) { + PokedexAppData_UnkSub0868_State69 *r2 = &pokedexApp->unk_0868.state_69; + u8 r6 = 0; + + r2->unk_0 = 0; + r2->unk_2 = a1; + + if (a2 == 0xFF) { + ov18_021F3D80(pokedexApp, 3); + return ov18_021EDC28(pokedexApp, 24, POKEDEXAPP_MAINSEQ_67); + } + + if (a2 == 1) { + r6 = 0; + ov18_021F3D80(pokedexApp, 0); + } else if (a2 == 2) { + r6 = 8; + ov18_021F3D80(pokedexApp, 1); + } else if (a2 == 3) { + r6 = 16; + ov18_021F3D80(pokedexApp, 2); + } else { + r6 = 24; + ov18_021F3D80(pokedexApp, 3); + } + if (pokedexApp->unk_185B == 1) { + pokedexApp->unk_185B = a2; + return ov18_021EDC28(pokedexApp, r6, POKEDEXAPP_MAINSEQ_70); + } else if (pokedexApp->unk_185B == 2) { + pokedexApp->unk_185B = a2; + return ov18_021EDC28(pokedexApp, r6, POKEDEXAPP_MAINSEQ_78); + } else if (pokedexApp->unk_185B == 3) { + pokedexApp->unk_185B = a2; + return ov18_021EDC28(pokedexApp, r6, POKEDEXAPP_MAINSEQ_81); + } else { + pokedexApp->unk_185B = a2; + return ov18_021EDC28(pokedexApp, r6, POKEDEXAPP_MAINSEQ_91); + } +} + +static int PokedexApp_MainSeq_66(PokedexAppData *pokedexApp) { + pokedexApp->curSpecies = ov18_021F8838(pokedexApp); + pokedexApp->unk_18C9 = 0; + pokedexApp->unk_18CA = 0; + pokedexApp->unk_18C8 = 0; + ov18_021E8254(pokedexApp); + ov18_021E673C(pokedexApp); + ov18_021E66EC(pokedexApp); + ov18_021F3D34(pokedexApp); + return PokedexApp_MainSeq_68(pokedexApp); +} + +static int PokedexApp_MainSeq_67(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State69 *r4 = &pokedexApp->unk_0868.state_69; + + switch (r4->unk_0) { + case 0: + ov18_021F11C0(pokedexApp, 0, 0); + ov18_021E6714(pokedexApp); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, 0, r4->unk_2, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_EXCEPT_MAIN_BG_F, 0xFFFF, 0, r4->unk_2, 16, RGB_BLACK); + ++r4->unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_67; + return POKEDEXAPP_MAINSEQ_03; + case 1: + if (sub_020199E4(pokedexApp->unk_0008, 16)) { + break; + } + ZeroPalettesByBitmask(PLTTBUF_MAIN_BG_F | PLTTBUF_SUB_BG_F | PLTTBUF_MAIN_OBJ_F | PLTTBUF_SUB_OBJ_F, HEAP_ID_POKEDEX_APP); + if (pokedexApp->unk_185B == 3) { + ov18_021F0918(pokedexApp); + ov18_021F5DE0(pokedexApp); + } else if (pokedexApp->unk_185B == 2) { + ov18_021F0838(pokedexApp); + ov18_021F4A50(pokedexApp); + ov18_021E5E70(pokedexApp, 0); + } else if (pokedexApp->unk_185B == 1) { + ov18_021F03C0(pokedexApp); + ov18_021F3E08(pokedexApp); + ov18_021E8648(pokedexApp); + ov18_021E8BD4(pokedexApp); + ov18_021EE20C(pokedexApp); + } else { + ov18_021F08E0(pokedexApp); + } + ov18_021F3D6C(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + pokedexApp->unk_185B = pokedexApp->unk_18A0; + if (pokedexApp->unk_18A0 == 0) { + return POKEDEXAPP_MAINSEQ_19; + } else { + return POKEDEXAPP_MAINSEQ_65; + } + } + + return POKEDEXAPP_MAINSEQ_67; +} + +static int PokedexApp_MainSeq_68(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + pokedexApp->unk_18C9 = 0; + pokedexApp->unk_18C8 = 0; + pokedexApp->unk_18CA = 0; + ov18_021E8B94(pokedexApp); + ov18_021E8528(pokedexApp, pokedexApp->unk_18C9, pokedexApp->unk_18C8); + ov18_021F018C(pokedexApp); + ov18_021E67C8(pokedexApp, 1); + ov18_021EE170(pokedexApp); + ov18_021EE1F8(pokedexApp); + ov18_021F4384(pokedexApp); + ov18_021EE314(pokedexApp); + if (pokedexApp->unk_18DC.unk_20.nMaps == 1) { + ov18_021E6794(pokedexApp); + } + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, -2, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, -2, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, PLTTFADE_OPAQUE_ALL_F, -2, 16, 0, RGB_BLACK); + ++pokedexApp->unk_0868.state_10.unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_68; + return POKEDEXAPP_MAINSEQ_03; + case 1: + if (sub_020199E4(pokedexApp->unk_0008, 16)) { + break; + } + ov18_021F11C0(pokedexApp, 0, 1); + pokedexApp->unk_185B = 1; + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_69; + } + + return POKEDEXAPP_MAINSEQ_68; +} + +static int PokedexApp_MainSeq_69(PokedexAppData *pokedexApp) { + u32 sp8; + + ov18_021EE26C(pokedexApp); + switch (ov18_021F7C14(pokedexApp, &sp8)) { + case 0: + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EDC28(pokedexApp, 0, POKEDEXAPP_MAINSEQ_69); + case 1: + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EC1DC(pokedexApp, 0, 2); + case 2: + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EC1DC(pokedexApp, 0, 3); + case 3: + PlaySE(SEQ_SE_GS_GEARCANCEL); + return ov18_021EC1DC(pokedexApp, 0, 255); + case 4: + if (ov18_021EE0F0(pokedexApp, -2, 2) == TRUE) { + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_71; + } else { + return POKEDEXAPP_MAINSEQ_69; + } + case 5: + case 8: + if (ov18_021EE0F0(pokedexApp, -1, 1) == TRUE) { + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_71; + } else { + return POKEDEXAPP_MAINSEQ_69; + } + case 6: + if (ov18_021EE0F0(pokedexApp, 2, 2) == TRUE) { + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_72; + } else { + return POKEDEXAPP_MAINSEQ_69; + } + case 7: + case 9: + if (ov18_021EE0F0(pokedexApp, 1, 1) == TRUE) { + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_72; + } else { + return POKEDEXAPP_MAINSEQ_69; + } + case 10: { + u32 x, y; + + System_GetTouchHeldCoords(&x, &y); + if (ov18_021F62B4(pokedexApp, x, y) == 1) { + return POKEDEXAPP_MAINSEQ_73; + } else { + PokedexAppData_UnkSub0868_State16 *r1 = &pokedexApp->unk_0868.state_16; + + r1->unk_0 = x; + r1->unk_2 = y; + return POKEDEXAPP_MAINSEQ_74; + } + } break; + case 11: + if (ov18_021EE140(pokedexApp, 0) == TRUE) { + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_75; + } + break; + case 12: + if (ov18_021EE140(pokedexApp, 1) == TRUE) { + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_75; + } + break; + case 13: + if (ov18_021EE124(pokedexApp, 0) == TRUE) { + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + ov18_021F4080(pokedexApp); + return POKEDEXAPP_MAINSEQ_75; + } + break; + case 14: + if (ov18_021EE124(pokedexApp, 1) == TRUE) { + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + ov18_021F4080(pokedexApp); + return POKEDEXAPP_MAINSEQ_75; + } + break; + case 15: + if (ov18_021EE124(pokedexApp, 2) == TRUE) { + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + ov18_021F4080(pokedexApp); + return POKEDEXAPP_MAINSEQ_75; + } + break; + case 16: + if (sp8 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EC1DC(pokedexApp, 0, 4); + } + + return POKEDEXAPP_MAINSEQ_69; +} + +static int PokedexApp_MainSeq_70(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State69 *r4 = &pokedexApp->unk_0868.state_69; + + switch (r4->unk_0) { + case 0: + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, -2, r4->unk_2, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, -2, r4->unk_2, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, PLTTFADE_OPAQUE_ALL_F, -2, r4->unk_2, 16, RGB_BLACK); + ++r4->unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_70; + return POKEDEXAPP_MAINSEQ_03; + case 1: + ov18_021F03C0(pokedexApp); + ov18_021F3E08(pokedexApp); + ov18_021E8648(pokedexApp); + ov18_021E8BD4(pokedexApp); + ov18_021EE20C(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + if (pokedexApp->unk_185B == 2) { + return POKEDEXAPP_MAINSEQ_76; + } else if (pokedexApp->unk_185B == 3) { + return POKEDEXAPP_MAINSEQ_79; + } else { + return POKEDEXAPP_MAINSEQ_89; + } + } + + return POKEDEXAPP_MAINSEQ_70; +} + +static int PokedexApp_MainSeq_71(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State26 *r6 = &pokedexApp->unk_0868.state_26; + + switch (r6->unk_0) { + case 0: + --pokedexApp->unk_18CA; + ov18_021F118C(pokedexApp, 6, 6); + ov18_021F0504(pokedexApp, 1); + for (u32 i = 0; i < 6; ++i) { + sub_020198FC(pokedexApp->unk_0008, i + 17, 0, 1, 3); + } + r6->unk_3 = ov18_021F6540(pokedexApp, 5, ov18_021F64F4(pokedexApp, pokedexApp->unk_18CA), 3); + ++r6->unk_0; + // fallthrough + case 1: + ov18_021F6578(pokedexApp, 5, -r6->unk_3); + ++r6->unk_1; + if (r6->unk_1 == 3) { + r6->unk_0 = 0; + r6->unk_1 = 0; + --r6->unk_2; + if (r6->unk_2 == 0) { + ov18_021F65EC(pokedexApp); + ov18_021F619C(pokedexApp, pokedexApp->unk_18CA, pokedexApp->unk_18DC.unk_20.nMaps, 6); + ov18_021F4384(pokedexApp); + ov18_021F463C(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_69; + } + } + break; + } + + return POKEDEXAPP_MAINSEQ_71; +} + +static int PokedexApp_MainSeq_72(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State26 *r6 = &pokedexApp->unk_0868.state_26; + + switch (r6->unk_0) { + case 0: + ++pokedexApp->unk_18CA; + ov18_021F118C(pokedexApp, 7, 9); + ov18_021F0504(pokedexApp, -1); + for (u32 i = 0; i < 6; ++i) { + sub_020198FC(pokedexApp->unk_0008, i + 17, 0, -1, 3); + } + r6->unk_3 = ov18_021F6540(pokedexApp, 5, ov18_021F64F4(pokedexApp, pokedexApp->unk_18CA), 3); + ++r6->unk_0; + // fallthrough + case 1: + ov18_021F6578(pokedexApp, 5, r6->unk_3); + ++r6->unk_1; + if (r6->unk_1 == 3) { + r6->unk_0 = 0; + r6->unk_1 = 0; + --r6->unk_2; + if (r6->unk_2 == 0) { + ov18_021F65EC(pokedexApp); + ov18_021F619C(pokedexApp, pokedexApp->unk_18CA, pokedexApp->unk_18DC.unk_20.nMaps, 6); + ov18_021F4384(pokedexApp); + ov18_021F463C(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_69; + } + } + break; + } + + return POKEDEXAPP_MAINSEQ_72; +} + +static int PokedexApp_MainSeq_73(PokedexAppData *pokedexApp) { + u32 x, y; + + ov18_021EE26C(pokedexApp); + if (!System_GetTouchHeldCoords(&x, &y)) { + return POKEDEXAPP_MAINSEQ_69; + } + if (ov18_021F63DC(pokedexApp, x, y) == TRUE) { + ov18_021F619C(pokedexApp, pokedexApp->unk_18CA, pokedexApp->unk_18DC.unk_20.nMaps, 6); + ov18_021F4384(pokedexApp); + ov18_021F463C(pokedexApp); + ov18_021F0428(pokedexApp); + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_73; +} + +static int PokedexApp_MainSeq_74(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State16 *r2 = &pokedexApp->unk_0868.state_16; + + if (ov18_021F63DC(pokedexApp, r2->unk_0, r2->unk_2) == TRUE) { + ov18_021F619C(pokedexApp, pokedexApp->unk_18CA, pokedexApp->unk_18DC.unk_20.nMaps, 6); + ov18_021F4384(pokedexApp); + ov18_021F463C(pokedexApp); + ov18_021F0428(pokedexApp); + PlaySE(SEQ_SE_GS_ZKN03); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + } + return POKEDEXAPP_MAINSEQ_69; +} + +static int PokedexApp_MainSeq_75(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State16 *r4 = &pokedexApp->unk_0868.state_16; + BOOL r0 = ov18_021EE21C(pokedexApp); + + switch (r4->unk_0) { + case 0: + ov18_021E6794(pokedexApp); + ov18_021E67B0(pokedexApp); + ov18_021F11C0(pokedexApp, 2, 0); + ov18_021F4620(pokedexApp); + ++r4->unk_0; + // fallthrough + case 1: + r4->unk_2 += 2; + ov18_021E618C(31 - r4->unk_2, r4->unk_2); + if (r4->unk_2 == 16) { + ++r4->unk_0; + } + break; + case 2: + ov18_021E8648(pokedexApp); + ov18_021E8528(pokedexApp, pokedexApp->unk_18C9, pokedexApp->unk_18C8); + ov18_021F40A0(pokedexApp); + ov18_021F03E0(pokedexApp); + ov18_021F0428(pokedexApp); + ov18_021EE170(pokedexApp); + ++r4->unk_0; + break; + case 3: + r4->unk_2 -= 2; + ov18_021E618C(31 - r4->unk_2, r4->unk_2); + if (r4->unk_2 == 0) { + ov18_021E6174(); + ++r4->unk_0; + } + break; + case 4: + if (r0) { + break; + } + ov18_021F4134(pokedexApp); + ov18_021F4384(pokedexApp); + ov18_021EE314(pokedexApp); + if (pokedexApp->unk_18DC.unk_20.nMaps == 1) { + ov18_021E6794(pokedexApp); + } + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_69; + } + + return POKEDEXAPP_MAINSEQ_75; +} + +static int PokedexApp_MainSeq_76(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + ov18_021E5E70(pokedexApp, TRUE); + ov18_021E67C8(pokedexApp, 2); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, -2, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, -2, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, -2, 16, 0, RGB_BLACK); + ++pokedexApp->unk_0868.state_10.unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_76; + return POKEDEXAPP_MAINSEQ_03; + case 1: + pokedexApp->unk_185B = 2; + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_77; + } + + return POKEDEXAPP_MAINSEQ_76; +} + +static int PokedexApp_MainSeq_77(PokedexAppData *pokedexApp) { + u32 sp0; + + ov18_021EE068(pokedexApp); + switch (ov18_021F7D00(pokedexApp, &sp0)) { + case 0: + if (sp0 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + ov18_021EE0CC(pokedexApp); + return ov18_021EC1DC(pokedexApp, 0, 1); + case 1: + if (sp0 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + ov18_021EE0CC(pokedexApp); + return ov18_021EC1DC(pokedexApp, 0, 2); + case 2: + if (sp0 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + ov18_021EE0CC(pokedexApp); + return ov18_021EC1DC(pokedexApp, 0, 3); + case 3: + PlaySE(SEQ_SE_GS_GEARCANCEL); + ov18_021EE0CC(pokedexApp); + return ov18_021EC1DC(pokedexApp, 0, 255); + default: + if (gSystem.newKeys & PAD_BUTTON_A) { + PlaySE(SEQ_SE_GS_ZKN03); + ov18_021EE0CC(pokedexApp); + return ov18_021EC1DC(pokedexApp, 0, 2); + } + if (System_GetTouchNew() == TRUE) { + PlaySE(SEQ_SE_GS_ZKN04); + ov18_021EE0CC(pokedexApp); + return ov18_021EC1DC(pokedexApp, 0, 2); + } + break; + } + + return POKEDEXAPP_MAINSEQ_77; +} + +static int PokedexApp_MainSeq_78(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State09 *r4 = &pokedexApp->unk_0868.state_09; + + switch (r4->unk_0) { + case 0: + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, -2, r4->unk_2, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, -2, r4->unk_2, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, -2, r4->unk_2, 16, RGB_BLACK); + ++r4->unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_78; + return POKEDEXAPP_MAINSEQ_03; + case 1: + ov18_021F0838(pokedexApp); + ov18_021F4A50(pokedexApp); + ov18_021E5E70(pokedexApp, 0); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + if (pokedexApp->unk_185B == 1) { + return POKEDEXAPP_MAINSEQ_68; + } else if (pokedexApp->unk_185B == 2) { + return POKEDEXAPP_MAINSEQ_76; + } else { + return POKEDEXAPP_MAINSEQ_79; + } + } + + return POKEDEXAPP_MAINSEQ_78; +} + +static int PokedexApp_MainSeq_79(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + pokedexApp->unk_18C5 = 0; + ov18_021F01D4(pokedexApp); + ov18_021E67C8(pokedexApp, 3); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, -2, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, -2, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, -2, 16, 0, RGB_BLACK); + ++pokedexApp->unk_0868.state_10.unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_79; + return POKEDEXAPP_MAINSEQ_03; + case 1: + pokedexApp->unk_185B = 3; + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_80; + } + + return POKEDEXAPP_MAINSEQ_79; +} + +static int PokedexApp_MainSeq_80(PokedexAppData *pokedexApp) { + u32 sp14; + + switch (ov18_021F7D30(pokedexApp, &sp14)) { + case 0: + if (sp14 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EC1DC(pokedexApp, 0, 1); + case 1: + if (sp14 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EC1DC(pokedexApp, 0, 2); + case 2: + if (sp14 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EDC28(pokedexApp, 16, 80); + case 3: + PlaySE(SEQ_SE_GS_GEARCANCEL); + return ov18_021EC1DC(pokedexApp, 0, 255); + case 4: + if (ov18_021EDF14(pokedexApp, -2, 2) == TRUE) { + if (sp14 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_82; + } else { + return POKEDEXAPP_MAINSEQ_80; + } + case 5: + case 8: + if (ov18_021EDF14(pokedexApp, -1, 1) == TRUE) { + if (sp14 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_82; + } else { + return POKEDEXAPP_MAINSEQ_80; + } + case 6: + if (ov18_021EDF14(pokedexApp, 2, 2) == TRUE) { + if (sp14 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_83; + } else { + return POKEDEXAPP_MAINSEQ_80; + } + case 7: + case 9: + if (ov18_021EDF14(pokedexApp, 1, 1) == TRUE) { + if (sp14 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return POKEDEXAPP_MAINSEQ_83; + } else { + return POKEDEXAPP_MAINSEQ_80; + } + case 10: { + u32 x, y; + System_GetTouchHeldCoords(&x, &y); + if (ov18_021F6258(pokedexApp, x, y) == 1) { + return POKEDEXAPP_MAINSEQ_84; + } else { + PokedexAppData_UnkSub0868_State16 *r1 = &pokedexApp->unk_0868.state_16; + + r1->unk_0 = x; + r1->unk_2 = y; + return POKEDEXAPP_MAINSEQ_85; + } + } break; + case 11: + if (pokedexApp->numSeenForms != 1) { + PlaySE(SEQ_SE_GS_ZKN04); + return ov18_021EDC50(pokedexApp, 0, 17, 17, 15, 2, POKEDEXAPP_MAINSEQ_86); + } + break; + case 12: + if (sp14 == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EC1DC(pokedexApp, 0, 4); + case -1: + break; + } + + return POKEDEXAPP_MAINSEQ_80; +} + +static int PokedexApp_MainSeq_81(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State69 *r4 = &pokedexApp->unk_0868.state_69; + + switch (r4->unk_0) { + case 0: + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, -2, r4->unk_2, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, -2, r4->unk_2, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, -2, r4->unk_2, 16, RGB_BLACK); + ++r4->unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_81; + return POKEDEXAPP_MAINSEQ_03; + case 1: + ov18_021F0918(pokedexApp); + ov18_021F5DE0(pokedexApp); + r4->unk_0 = 0; + if (pokedexApp->unk_185B == 1) { + return POKEDEXAPP_MAINSEQ_68; + } else if (pokedexApp->unk_185B == 2) { + return POKEDEXAPP_MAINSEQ_76; + } else { + return POKEDEXAPP_MAINSEQ_89; + } + } + + return POKEDEXAPP_MAINSEQ_81; +} + +static int PokedexApp_MainSeq_82(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State26 *r6 = &pokedexApp->unk_0868.state_26; + + switch (r6->unk_0) { + case 0: + --pokedexApp->unk_18C5; + ov18_021F609C(pokedexApp, 1); + ov18_021F118C(pokedexApp, 6, 6); + ov18_021F0B70(pokedexApp, 1); + for (u32 i = 0; i < 6; ++i) { + sub_020198FC(pokedexApp->unk_0008, i + 17, 0, 1, 3); + } + r6->unk_3 = ov18_021F6540(pokedexApp, 5, ov18_021F64A4(pokedexApp, pokedexApp->unk_18C5), 3); + ++r6->unk_0; + // fallthrough + case 1: + ov18_021F6178(pokedexApp, 8); + ov18_021F6578(pokedexApp, 5, -r6->unk_3); + ++r6->unk_1; + if (r6->unk_1 == 3) { + r6->unk_0 = 0; + r6->unk_1 = 0; + --r6->unk_2; + if (r6->unk_2 == 0) { + ov18_021F5EF0(pokedexApp, pokedexApp->unk_18C5); + ov18_021F65AC(pokedexApp); + ov18_021F619C(pokedexApp, pokedexApp->unk_18C5, pokedexApp->numSeenForms, 6); + ov18_021F0D2C(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_80; + } + } + break; + } + + return POKEDEXAPP_MAINSEQ_82; +} + +static int PokedexApp_MainSeq_83(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State26 *r6 = &pokedexApp->unk_0868.state_26; + + switch (r6->unk_0) { + case 0: + ++pokedexApp->unk_18C5; + ov18_021F609C(pokedexApp, -1); + ov18_021F118C(pokedexApp, 7, 9); + ov18_021F0B70(pokedexApp, -1); + for (u32 i = 0; i < 6; ++i) { + sub_020198FC(pokedexApp->unk_0008, i + 17, 0, -1, 3); + } + r6->unk_3 = ov18_021F6540(pokedexApp, 5, ov18_021F64A4(pokedexApp, pokedexApp->unk_18C5), 3); + ++r6->unk_0; + // fallthrough + case 1: + ov18_021F6178(pokedexApp, -8); + ov18_021F6578(pokedexApp, 5, r6->unk_3); + ++r6->unk_1; + if (r6->unk_1 == 3) { + r6->unk_0 = 0; + r6->unk_1 = 0; + --r6->unk_2; + if (r6->unk_2 == 0) { + ov18_021F5EF0(pokedexApp, pokedexApp->unk_18C5); + ov18_021F65AC(pokedexApp); + ov18_021F619C(pokedexApp, pokedexApp->unk_18C5, pokedexApp->numSeenForms, 6); + ov18_021F0D2C(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + return POKEDEXAPP_MAINSEQ_80; + } + } + break; + } + + return POKEDEXAPP_MAINSEQ_83; +} + +static int PokedexApp_MainSeq_84(PokedexAppData *pokedexApp) { + u32 x, y; + + if (!System_GetTouchHeldCoords(&x, &y)) { + return POKEDEXAPP_MAINSEQ_80; + } + + if (ov18_021F6310(pokedexApp, x, y) == 1) { + ov18_021F6038(pokedexApp); + ov18_021F5EF0(pokedexApp, pokedexApp->unk_18C5); + ov18_021F619C(pokedexApp, pokedexApp->unk_18C5, pokedexApp->numSeenForms, 6); + ov18_021F0940(pokedexApp); + ov18_021F0D2C(pokedexApp); + PlaySE(SEQ_SE_GS_ZKN03); + } + + return POKEDEXAPP_MAINSEQ_84; +} + +static int PokedexApp_MainSeq_85(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State16 *r2 = &pokedexApp->unk_0868.state_16; + + if (ov18_021F6310(pokedexApp, r2->unk_0, r2->unk_2) == 1) { + ov18_021F6038(pokedexApp); + ov18_021F5EF0(pokedexApp, pokedexApp->unk_18C5); + ov18_021F619C(pokedexApp, pokedexApp->unk_18C5, pokedexApp->numSeenForms, 6); + ov18_021F0940(pokedexApp); + ov18_021F0D2C(pokedexApp); + PlaySE(SEQ_SE_GS_ZKN03); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + } + + return POKEDEXAPP_MAINSEQ_80; +} + +static int PokedexApp_MainSeq_86(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + ov18_021F11C0(pokedexApp, 0, 0); + ov18_021E6714(pokedexApp); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, 0, 0, 16, RGB_BLACK); + ++pokedexApp->unk_0868.state_10.unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_86; + return POKEDEXAPP_MAINSEQ_03; + case 1: + if (sub_020199E4(pokedexApp->unk_0008, 16)) { + break; + } + pokedexApp->unk_18C7_0 = 0; + pokedexApp->unk_18C7_7 = 0; + pokedexApp->unk_18C6 = 0; + if (pokedexApp->unk_18C5 == pokedexApp->unk_18C6) { + ov18_021EDF48(&pokedexApp->unk_18C6, pokedexApp->unk_18C5, 1, pokedexApp->numSeenForms); + } + ov18_021E81A8(pokedexApp); + ov18_021F0DD0(pokedexApp); + ov18_021F6684(pokedexApp); + ov18_021F6714(pokedexApp); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, 0, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, 0, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, 0, 16, 0, RGB_BLACK); + pokedexApp->unk_0868.state_10.unk_0 = 0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_87; + return POKEDEXAPP_MAINSEQ_03; + } + + return POKEDEXAPP_MAINSEQ_86; +} + +static int PokedexApp_MainSeq_87(PokedexAppData *pokedexApp) { + u32 spC; + + switch (ov18_021F7DCC(pokedexApp, &spC)) { + case 0: + if (ov18_021EDF84(pokedexApp, -1) == 1) { + if (spC == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + } + break; + case 1: + if (ov18_021EDF84(pokedexApp, 1) == 1) { + if (spC == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + } + break; + case 2: + if (ov18_021EDFF4(pokedexApp, -1) == 1) { + if (spC == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + } + break; + case 3: + if (ov18_021EDFF4(pokedexApp, 1) == 1) { + if (spC == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + } + break; + case 4: + PlaySE(SEQ_SE_GS_ZKN04); + pokedexApp->unk_18C7_7 ^= 1; + ov18_021F6984(pokedexApp, 1, pokedexApp->unk_18C5); + ov18_021F6984(pokedexApp, 2, pokedexApp->unk_18C6); + return ov18_021EDC50(pokedexApp, 3, 1, 20, 14, 3, POKEDEXAPP_MAINSEQ_87); + case 5: + PlaySE(SEQ_SE_GS_GEARCANCEL); + return ov18_021EDC50(pokedexApp, 3, 16, 20, 15, 3, POKEDEXAPP_MAINSEQ_88); + case 6: + if (pokedexApp->numSeenForms < 3 || pokedexApp->unk_18C7_0 == 0) { + break; + } + if (spC == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + pokedexApp->unk_18C7_0 = 0; + ov18_021F6990(pokedexApp); + break; + case 7: + if (pokedexApp->numSeenForms < 3 || pokedexApp->unk_18C7_0 == 1) { + break; + } + if (spC == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + pokedexApp->unk_18C7_0 = 1; + ov18_021F6990(pokedexApp); + break; + } + + return POKEDEXAPP_MAINSEQ_87; +} + +static int PokedexApp_MainSeq_88(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, 0, 0, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, 0, 0, 16, RGB_BLACK); + ++pokedexApp->unk_0868.state_10.unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_88; + return POKEDEXAPP_MAINSEQ_03; + case 1: + ov18_021F67D0(pokedexApp); + ov18_021F0F2C(pokedexApp); + ov18_021E800C(pokedexApp); + ov18_021F662C(pokedexApp); + ov18_021F0928(pokedexApp); + ov18_021E66EC(pokedexApp); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, 0, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, 0, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, 0, 16, 0, RGB_BLACK); + ++pokedexApp->unk_0868.state_10.unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_88; + return POKEDEXAPP_MAINSEQ_03; + case 2: + if (!sub_020199E4(pokedexApp->unk_0008, 16)) { + ov18_021F11C0(pokedexApp, 0, 1); + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_80; + } + break; + } + + return POKEDEXAPP_MAINSEQ_88; +} + +static int PokedexApp_MainSeq_89(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_0868.state_10.unk_0) { + case 0: + ov18_021E67C8(pokedexApp, 4); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, -2, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, -2, 16, 0, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, -2, 16, 0, RGB_BLACK); + ++pokedexApp->unk_0868.state_10.unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_89; + return POKEDEXAPP_MAINSEQ_03; + case 1: + pokedexApp->unk_185B = 4; + pokedexApp->unk_0868.state_10.unk_0 = 0; + return POKEDEXAPP_MAINSEQ_90; + } + + return POKEDEXAPP_MAINSEQ_89; +} + +static int PokedexApp_MainSeq_90(PokedexAppData *pokedexApp) { + u32 spC; + + switch (ov18_021F7E70(pokedexApp, &spC)) { + case 0: + if (spC == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EC1DC(pokedexApp, 0, 1); + case 1: + if (spC == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EC1DC(pokedexApp, 0, 2); + case 2: + if (spC == 1) { + PlaySE(SEQ_SE_GS_ZKN04); + } else { + PlaySE(SEQ_SE_GS_ZKN03); + } + return ov18_021EC1DC(pokedexApp, 0, 3); + case 3: + PlaySE(SEQ_SE_GS_GEARCANCEL); + return ov18_021EC1DC(pokedexApp, 0, 255); + case 4: + PlaySE(SEQ_SE_GS_GEARCANCEL); + return ov18_021EDC50(pokedexApp, 3, 6, 9, 20, 4, POKEDEXAPP_MAINSEQ_67); + } + + return POKEDEXAPP_MAINSEQ_90; +} + +static int PokedexApp_MainSeq_91(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State69 *r4 = &pokedexApp->unk_0868.state_69; + + switch (r4->unk_0) { + case 0: + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_BG_F, 0xF7BE, -2, r4->unk_2, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_MAIN_OBJ_F, 0xFFEF, -2, r4->unk_2, 16, RGB_BLACK); + PaletteData_BeginPaletteFade(pokedexApp->paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, -2, r4->unk_2, 16, RGB_BLACK); + ++r4->unk_0; + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_91; + return POKEDEXAPP_MAINSEQ_03; + case 1: + ov18_021F08E0(pokedexApp); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); + if (pokedexApp->unk_185B == 2) { + return POKEDEXAPP_MAINSEQ_76; + } else if (pokedexApp->unk_185B == 3) { + return POKEDEXAPP_MAINSEQ_79; + } else { + return POKEDEXAPP_MAINSEQ_68; + } + break; + } + + return POKEDEXAPP_MAINSEQ_91; +} + +static int PokedexApp_MainSeq_92(PokedexAppData *pokedexApp) { + pokedexApp->unk_085C = POKEDEXAPP_MAINSEQ_MAX; + return ov18_021EDB3C(pokedexApp, 1); +} + +static int ov18_021EDB3C(PokedexAppData *pokedexApp, int a1) { + BeginNormalPaletteFade(0, 0, 0, RGB_BLACK, 6, 1, HEAP_ID_POKEDEX_APP); + pokedexApp->unk_0860 = a1; + return POKEDEXAPP_MAINSEQ_02; +} + +static int ov18_021EDB68(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7, int a8) { + PokedexAppData_UnkSub0868_State04 *r0 = &pokedexApp->unk_0868.state_04; + + r0->unk_0 = a2; + r0->unk_1 = a3; + r0->unk_2 = a4; + r0->unk_3 = a5; + r0->unk_4 = a1; + r0->unk_5 = 0; + r0->unk_6 = 0; + r0->unk_7_0 = a6; + r0->unk_7_4 = a7; + pokedexApp->unk_085C = a8; + return POKEDEXAPP_MAINSEQ_04; +} + +static int ov18_021EDBB8(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3) { + return ov18_021EDB68(pokedexApp, 2, a1, 19, a2, 5, 0, 6, a3); +} + +static int ov18_021EDBDC(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3) { + return ov18_021EDB68(pokedexApp, 1, a1, 20, a2, 4, 4, 5, a3); +} + +static int ov18_021EDC00(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3, u8 a4, int a5) { + return ov18_021EDB68(pokedexApp, 2, a1, a2, a3, a4, 2, 3, a5); +} + +static int ov18_021EDC28(PokedexAppData *pokedexApp, u8 a1, int a2) { + return ov18_021EDB68(pokedexApp, 1, a1, 20, 8, 4, 0, 6, a2); +} + +static int ov18_021EDC50(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, int a6) { + return ov18_021EDB68(pokedexApp, a1, a2, a3, a4, a5, 10, 11, a6); +} + +static void ov18_021EDC74(PokedexAppData *pokedexApp, int a1) { + sub_02092BD8(pokedexApp->args->unk_08, ov18_021F8838(pokedexApp), pokedexApp->unk_1858); + pokedexApp->unk_1858 = a1; + ov18_021E6A70(pokedexApp); + ov18_021F2AC0(pokedexApp, 0); + ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, 0, DEX_SEARCH_LETTERS_ALL, DEX_SEARCH_TYPE_ALL, DEX_SEARCH_TYPE_ALL, 0, 152, 0, 152, 1 << DEX_SEARCH_AREA_ALL, DEX_SEARCH_BODYTYPE_ALL); + ov18_021EE5FC(pokedexApp); +} + +static void ov18_021EDCD4(PokedexAppData *pokedexApp) { + ov18_021EDDB4(pokedexApp); + ov18_021F8884(pokedexApp, 1); + u16 species = ov18_021F8838(pokedexApp); + u32 r6 = ov18_021F8824(pokedexApp); + if (!ov18_021E6D10(pokedexApp, species, pokedexApp->unk_185C)) { + pokedexApp->unk_185C = GAME_LANGUAGE; + } + ov18_021EE6BC(pokedexApp, species, r6); + ov18_021EE8B8(pokedexApp, species, r6); + ov18_021F1620(pokedexApp, 24); + ov18_021F1CAC(pokedexApp, species, 11, 10); + ov18_021F209C(pokedexApp, species, r6, 14); + ov18_021F2530(pokedexApp, species, 18); + ov18_021F1DE4(pokedexApp, species, r6, 13); + ov18_021F2BB0(pokedexApp, 5); + ov18_021F2C10(pokedexApp, 2, 1); + ov18_021F2C5C(pokedexApp, 1, 1); + ov18_021F2E80(pokedexApp, 1, 1); + ov18_021E6F6C(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, pokedexApp->unk_185C, pokedexApp->gfxNarc, HEAP_ID_POKEDEX_APP); + ov18_021E6C98(pokedexApp); +} + +static void ov18_021EDDA4(PokedexAppData *pokedexApp, int a1) { + ov18_021EDC74(pokedexApp, a1); + ov18_021EDCD4(pokedexApp); +} + +static void ov18_021EDDB4(PokedexAppData *pokedexApp) { + u32 r4 = Pokedex_ConvertToCurrentDexNo(pokedexApp->unk_1858, ov18_021F8850(&pokedexApp->unk_0878, sub_02092BE4(pokedexApp->args->unk_08))) - 1; + pokedexApp->unk_185A = r4 % 15; + pokedexApp->unk_1859 = r4 / 15; +} + +static BOOL ov18_021EDE04(PokedexAppData *pokedexApp) { + u16 species = ov18_021F8838(pokedexApp); + if (species == SPECIES_NONE) { + return FALSE; + } + u32 form = Pokedex_GetSeenFormByIdx(pokedexApp->args->pokedex, species, 0); + if (species == SPECIES_PICHU) { + if (form == PICHU_FORM_MAX) { + form = PICHU_SPIKY_EAR; + } else { + form = PICHU_NORMAL; + } + } + sub_02006E3C(1); + PlayCry(species, form); + sub_02006E3C(0); + return TRUE; +} + +static void ov18_021EDE4C(PokedexAppData *pokedexApp, int a1, int a2, int a3) { + PokedexAppData_UnkSub0868_State26 *r4 = &pokedexApp->unk_0868.state_26; + + r4->unk_0 = a1; + r4->unk_1 = a3; + r4->unk_3 = a2; + r4->unk_2 = 0; +} + +static void ov18_021EDE64(PokedexAppData *pokedexApp) { + u8 r4; + + if (ov18_021F8838(pokedexApp) == SPECIES_NONE) { + r4 = 11; + } else { + r4 = 0; + } + sub_020199F4(pokedexApp->unk_0008, 1, 8, 0, 16, 5, r4); + BgTilemapRectChangePalette(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 8, 19, 16, 5, r4); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); +} + +static void ov18_021EDEB0(PokedexAppData *pokedexApp) { + u8 r4; + + if ((pokedexApp->unk_185A == 0 && pokedexApp->unk_1859 == 0) || ov18_021F8838(pokedexApp) == SPECIES_NONE) { + r4 = 11; + } else { + r4 = 0; + } + sub_020199F4(pokedexApp->unk_0008, 8, 8, 0, 16, 5, r4); + BgTilemapRectChangePalette(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2, 8, 19, 16, 5, r4); + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_2); +} + +static BOOL ov18_021EDF14(PokedexAppData *pokedexApp, int a1, int a2) { + int r4 = pokedexApp->unk_18C5 + a1; + if (r4 < 0 || r4 >= pokedexApp->numSeenForms) { + return FALSE; + } + + PokedexAppData_UnkSub0868_State26 *r1 = &pokedexApp->unk_0868.state_26; + + r1->unk_0 = 0; + r1->unk_1 = 0; + r1->unk_2 = a2; + return TRUE; +} + +static void ov18_021EDF48(s8 *a0, s8 a1, int a2, u8 a3) { + for (u32 i = 0; i < a3; ++i) { + *a0 += a2; + if (*a0 < 0) { + *a0 = a3 - 1; + } else if (*a0 >= a3) { + *a0 = 0; + } + if (*a0 != a1) { + break; + } + } +} + +static BOOL ov18_021EDF84(PokedexAppData *pokedexApp, int a1) { + if (pokedexApp->numSeenForms < 3) { + return FALSE; + } + + pokedexApp->unk_18C7_0 = 0; + ov18_021F6990(pokedexApp); + s8 r4 = pokedexApp->unk_18C5; + ov18_021EDF48(&pokedexApp->unk_18C5, pokedexApp->unk_18C6, a1, pokedexApp->numSeenForms); + if (pokedexApp->unk_18C5 == r4) { + return FALSE; + } + ov18_021F6844(pokedexApp, 14, pokedexApp->unk_18C5); + ov18_021F6984(pokedexApp, 1, pokedexApp->unk_18C5); + ov18_021F0F68(pokedexApp, 6, pokedexApp->unk_18C5); + return TRUE; +} + +static BOOL ov18_021EDFF4(PokedexAppData *pokedexApp, int a1) { + if (pokedexApp->numSeenForms < 3) { + return FALSE; + } + + pokedexApp->unk_18C7_0 = 1; + ov18_021F6990(pokedexApp); + s8 r4 = pokedexApp->unk_18C6; + ov18_021EDF48(&pokedexApp->unk_18C6, pokedexApp->unk_18C5, a1, pokedexApp->numSeenForms); + if (pokedexApp->unk_18C6 == r4) { + return FALSE; + } + ov18_021F6844(pokedexApp, 15, pokedexApp->unk_18C6); + ov18_021F6984(pokedexApp, 2, pokedexApp->unk_18C6); + ov18_021F0F68(pokedexApp, 7, pokedexApp->unk_18C6); + return TRUE; +} + +static void ov18_021EE068(PokedexAppData *pokedexApp) { + PokedexAppData_UnkSub0868_State77 *r4 = &pokedexApp->unk_0868.state_77; + + switch (r4->unk_0) { + case 0: + r4->unk_4 = Heap_Alloc(HEAP_ID_POKEDEX_APP, sizeof(PokedexAppData_UnkSub0868_State77_Sub4)); + ov18_021F504C(pokedexApp, r4->unk_4); + PlaySE(SEQ_SE_GS_RAKKA01); + ++r4->unk_0; + // fallthrough + case 1: + if (!ov18_021F50C0(r4->unk_4)) { + ++r4->unk_0; + } + break; + case 2: + if (!ov18_021F516C(r4->unk_4)) { + ++r4->unk_0; + } + break; + } +} + +static void ov18_021EE0CC(PokedexAppData *pokedexApp) { + Heap_Free(pokedexApp->unk_0868.state_77.unk_4); + MI_CpuClear8(&pokedexApp->unk_0868, sizeof(pokedexApp->unk_0868)); +} + +static BOOL ov18_021EE0F0(PokedexAppData *pokedexApp, int a1, int a2) { + int r4 = pokedexApp->unk_18CA + a1; + if (r4 < 0 || r4 >= pokedexApp->unk_18DC.unk_20.nMaps) { + return FALSE; + } + + PokedexAppData_UnkSub0868_State26 *r1 = &pokedexApp->unk_0868.state_26; + + r1->unk_0 = 0; + r1->unk_1 = 0; + r1->unk_2 = a2; + return TRUE; +} + +static BOOL ov18_021EE124(PokedexAppData *pokedexApp, int a1) { + if (pokedexApp->unk_18C9 == a1) { + return FALSE; + } + pokedexApp->unk_18C9 = a1; + pokedexApp->unk_18CA = 0; + return TRUE; +} + +static BOOL ov18_021EE140(PokedexAppData *pokedexApp, int a1) { + if (pokedexApp->unk_1860 == 0) { + return FALSE; + } + if (pokedexApp->unk_18C8 == a1) { + return FALSE; + } + pokedexApp->unk_18C8 = a1; + pokedexApp->unk_18CA = 0; + return TRUE; +} + +static void ov18_021EE170(PokedexAppData *pokedexApp) { + if (pokedexApp->unk_1860 == 0) { + return; + } + if (pokedexApp->unk_18C8 == 0) { + BgTilemapRectChangePalette(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 9, 1, 7, 2, 12); + BgTilemapRectChangePalette(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 24, 1, 7, 2, 10); + } else { + BgTilemapRectChangePalette(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 9, 1, 7, 2, 10); + BgTilemapRectChangePalette(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 24, 1, 7, 2, 12); + } + ScheduleBgTilemapBufferTransfer(pokedexApp->bgConfig, GF_BG_LYR_MAIN_0); +} + +static void ov18_021EE1F8(PokedexAppData *pokedexApp) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, -72); +} + +static void ov18_021EE20C(PokedexAppData *pokedexApp) { + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SET_X, 0); +} + +static BOOL ov18_021EE21C(PokedexAppData *pokedexApp) { + if (pokedexApp->unk_18C8 == 0) { + if (GetBgHOffset(pokedexApp->bgConfig, GF_BG_LYR_SUB_0) == -72) { + return FALSE; + } + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_SUB_X, 8); + } else { + if (GetBgHOffset(pokedexApp->bgConfig, GF_BG_LYR_SUB_0) == 104) { + return FALSE; + } + ScheduleSetBgPosText(pokedexApp->bgConfig, GF_BG_LYR_SUB_0, BG_POS_OP_ADD_X, 8); + } + return TRUE; +} + +static void ov18_021EE26C(PokedexAppData *pokedexApp) { + switch (pokedexApp->unk_18CB_7) { + case 0: + pokedexApp->unk_18CB_0 += (u8)1; + if (pokedexApp->unk_18CB_0 == 15) { + pokedexApp->unk_18CB_7 = 1; + } + break; + case 1: + pokedexApp->unk_18CB_0 += (u8)-1; + if (pokedexApp->unk_18CB_0 == 0) { + pokedexApp->unk_18CB_7 = 0; + pokedexApp->unk_18CB_6 ^= 1; + ov18_021F463C(pokedexApp); + } + break; + } + + G2S_SetBlendAlpha(0, 1, pokedexApp->unk_18CB_0, 31 - pokedexApp->unk_18CB_0); +} + +static void ov18_021EE314(PokedexAppData *pokedexApp) { + pokedexApp->unk_18CB_7 = 0; + pokedexApp->unk_18CB_0 = 0; + pokedexApp->unk_18CB_6 = 0; + ov18_021F463C(pokedexApp); + G2S_SetBlendAlpha(0, 1, pokedexApp->unk_18CB_0, 31 - pokedexApp->unk_18CB_0); +} diff --git a/src/dex_mon_measures.c b/src/dex_mon_measures.c index 3d69bfb6f8..a06a9e06f6 100644 --- a/src/dex_mon_measures.c +++ b/src/dex_mon_measures.c @@ -2,19 +2,23 @@ #include "global.h" +#include "constants/pokemon.h" + +#include "application/zukanlist/zkn_data/zukan_data.naix" #include "msgdata/msg.naix" #include "filesystem.h" #include "gf_gfx_loader.h" +#include "trainer_data.h" static u32 *ZknNarc_LoadHeight(NARC *narc, enum HeapID heapID); static u32 *ZknNarc_LoadWeight(NARC *narc, enum HeapID heapID); -static void sub_02091470(NARC *narc, u32 **a1, u32 **a2, enum HeapID heapID); -static void sub_02091498(NARC *narc, u32 **a1, u32 **a2, enum HeapID heapID); -static void sub_020914C0(NARC *narc, u32 **a1, u32 **a2, enum HeapID heapID); -static void sub_020914E8(NARC *narc, u32 **a1, u32 **a2, enum HeapID heapID); +static void ZknNarc_LoadYPosM(NARC *narc, s16 **pPlayerYPos, s16 **pMonYPos, enum HeapID heapID); +static void ZknNarc_LoadYPosF(NARC *narc, s16 **pPlayerYPos, s16 **pMonYPos, enum HeapID heapID); +static void ZknNarc_LoadScaleM(NARC *narc, s16 **pPlayerScale, s16 **pMonScale, enum HeapID heapID); +static void ZknNarc_LoadScaleF(NARC *narc, s16 **pPlayerScale, s16 **pMonScale, enum HeapID heapID); -static NarcId sDataNarcId = NARC_application_zukanlist_zukan_data_zukan_data; +static NarcId sDataNarcId = NARC_application_zukanlist_zkn_data_zukan_data; static int sWeightMsgBank = NARC_msg_msg_0812_bin; static int sHeightMsgBank = NARC_msg_msg_0814_bin; @@ -31,7 +35,7 @@ void PokedexData_Delete(struct PokedexData *zkn) { Heap_Free(zkn); } -void PokedexData_LoadAll(struct PokedexData *zkn, int mode, enum HeapID heapID) { +void PokedexData_LoadAll(struct PokedexData *zkn, int playerGender, enum HeapID heapID) { NARC *narc; GF_ASSERT(zkn != NULL); @@ -42,12 +46,12 @@ void PokedexData_LoadAll(struct PokedexData *zkn, int mode, enum HeapID heapID) zkn->height = ZknNarc_LoadHeight(narc, heapID); zkn->weight = ZknNarc_LoadWeight(narc, heapID); - if (mode == 0) { - sub_02091470(narc, &zkn->unk_08, &zkn->unk_0C, heapID); - sub_020914C0(narc, &zkn->unk_10, &zkn->unk_14, heapID); + if (playerGender == TRAINER_MALE) { + ZknNarc_LoadYPosM(narc, &zkn->playerYPos, &zkn->monYPos, heapID); + ZknNarc_LoadScaleM(narc, &zkn->playerScale, &zkn->monScale, heapID); } else { - sub_02091498(narc, &zkn->unk_08, &zkn->unk_0C, heapID); - sub_020914E8(narc, &zkn->unk_10, &zkn->unk_14, heapID); + ZknNarc_LoadYPosF(narc, &zkn->playerYPos, &zkn->monYPos, heapID); + ZknNarc_LoadScaleF(narc, &zkn->playerScale, &zkn->monScale, heapID); } NARC_Delete(narc); @@ -58,16 +62,16 @@ void PokedexData_UnloadAll(struct PokedexData *zkn) { GF_ASSERT(zkn->weight != NULL); Heap_Free(zkn->height); Heap_Free(zkn->weight); - Heap_Free(zkn->unk_08); - Heap_Free(zkn->unk_0C); - Heap_Free(zkn->unk_10); - Heap_Free(zkn->unk_14); + Heap_Free(zkn->playerYPos); + Heap_Free(zkn->monYPos); + Heap_Free(zkn->playerScale); + Heap_Free(zkn->monScale); zkn->height = NULL; zkn->weight = NULL; - zkn->unk_08 = NULL; - zkn->unk_0C = NULL; - zkn->unk_10 = NULL; - zkn->unk_14 = NULL; + zkn->playerYPos = NULL; + zkn->monYPos = NULL; + zkn->playerScale = NULL; + zkn->monScale = NULL; } u32 PokedexData_GetHeight(struct PokedexData *zkn, int species) { @@ -83,40 +87,40 @@ u32 PokedexData_GetWeight(struct PokedexData *zkn, int species) { } static u32 *ZknNarc_LoadHeight(NARC *narc, enum HeapID heapID) { - return GfGfxLoader_LoadFromOpenNarc(narc, 0, FALSE, heapID, FALSE); + return GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_height, FALSE, heapID, FALSE); } static u32 *ZknNarc_LoadWeight(NARC *narc, enum HeapID heapID) { - return GfGfxLoader_LoadFromOpenNarc(narc, 1, FALSE, heapID, FALSE); + return GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_weight, FALSE, heapID, FALSE); } -static void sub_02091470(NARC *narc, u32 **a1, u32 **a2, enum HeapID heapID) { - *a1 = GfGfxLoader_LoadFromOpenNarc(narc, 9, FALSE, heapID, FALSE); - *a2 = GfGfxLoader_LoadFromOpenNarc(narc, 10, FALSE, heapID, FALSE); +static void ZknNarc_LoadYPosM(NARC *narc, s16 **pPlayerYPos, s16 **pMonYPos, enum HeapID heapID) { + *pPlayerYPos = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_player_ypos_m, FALSE, heapID, FALSE); + *pMonYPos = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_mon_ypos_m, FALSE, heapID, FALSE); } -static void sub_02091498(NARC *narc, u32 **a1, u32 **a2, enum HeapID heapID) { - *a1 = GfGfxLoader_LoadFromOpenNarc(narc, 7, FALSE, heapID, FALSE); - *a2 = GfGfxLoader_LoadFromOpenNarc(narc, 8, FALSE, heapID, FALSE); +static void ZknNarc_LoadYPosF(NARC *narc, s16 **pPlayerYPos, s16 **pMonYPos, enum HeapID heapID) { + *pPlayerYPos = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_player_ypos_f, FALSE, heapID, FALSE); + *pMonYPos = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_mon_ypos_f, FALSE, heapID, FALSE); } -static void sub_020914C0(NARC *narc, u32 **a1, u32 **a2, enum HeapID heapID) { - *a1 = GfGfxLoader_LoadFromOpenNarc(narc, 5, FALSE, heapID, FALSE); - *a2 = GfGfxLoader_LoadFromOpenNarc(narc, 6, FALSE, heapID, FALSE); +static void ZknNarc_LoadScaleM(NARC *narc, s16 **pPlayerScale, s16 **pMonScale, enum HeapID heapID) { + *pPlayerScale = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_player_scale_m, FALSE, heapID, FALSE); + *pMonScale = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_mon_scale_m, FALSE, heapID, FALSE); } -static void sub_020914E8(NARC *narc, u32 **a1, u32 **a2, enum HeapID heapID) { - *a1 = GfGfxLoader_LoadFromOpenNarc(narc, 3, FALSE, heapID, FALSE); - *a2 = GfGfxLoader_LoadFromOpenNarc(narc, 4, FALSE, heapID, FALSE); +static void ZknNarc_LoadScaleF(NARC *narc, s16 **pPlayerScale, s16 **pMonScale, enum HeapID heapID) { + *pPlayerScale = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_player_scale_f, FALSE, heapID, FALSE); + *pMonScale = GfGfxLoader_LoadFromOpenNarc(narc, NARC_zukan_data_mon_stats_mon_scale_f, FALSE, heapID, FALSE); } void SetDexBanksByGiratinaForm(int form) { - if (form == 0) { - sDataNarcId = NARC_application_zukanlist_zukan_data_zukan_data_gira; + if (form == GIRATINA_ALTERED) { + sDataNarcId = NARC_application_zukanlist_zkn_data_zukan_data_gira; sWeightMsgBank = NARC_msg_msg_0813_bin; sHeightMsgBank = NARC_msg_msg_0815_bin; } else { - sDataNarcId = NARC_application_zukanlist_zukan_data_zukan_data; + sDataNarcId = NARC_application_zukanlist_zkn_data_zukan_data; sWeightMsgBank = NARC_msg_msg_0812_bin; sHeightMsgBank = NARC_msg_msg_0814_bin; } diff --git a/src/field/scrcmd_pokemon_misc.c b/src/field/scrcmd_pokemon_misc.c index 395eac8d4d..8506d26970 100644 --- a/src/field/scrcmd_pokemon_misc.c +++ b/src/field/scrcmd_pokemon_misc.c @@ -48,7 +48,7 @@ #include "unk_0206D494.h" #include "unk_02092BE8.h" #include "update_dex_received.h" -// #include "application/zukanlist/zukan_data/zukan_data.naix" +// #include "application/zukanlist/zkn_data/zukan_data.naix" typedef struct UnkStructScr_648 { FieldSystem *fieldSystem; @@ -187,7 +187,7 @@ static BOOL ov01_02200C6C(ScriptContext *ctx) { static void *ov01_02200C94(enum HeapID heapID, s32 fileId, int *unkPtr) { u32 size; - void *data = GfGfxLoader_LoadFromNarc_GetSizeOut(NARC_application_zukanlist_zukan_data_zukan_data, fileId, FALSE, heapID, FALSE, &size); + void *data = GfGfxLoader_LoadFromNarc_GetSizeOut(NARC_application_zukanlist_zkn_data_zukan_data, fileId, FALSE, heapID, FALSE, &size); *unkPtr = size / 2; return data; } diff --git a/src/pokedex.c b/src/pokedex.c index 8f2dc1e88e..249ae1ec37 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -665,13 +665,13 @@ u32 Pokedex_GetSeenSpindaPersonality(Pokedex *pokedex, u32 arg) { return personality; } -int Pokedex_SpeciesGetLastSeenGender(Pokedex *pokedex, u16 species, u32 a2) { +int Pokedex_SpeciesGetLastSeenGender(Pokedex *pokedex, u16 species, u32 idx) { ASSERT_POKEDEX(pokedex); if (DexSpeciesIsInvalid(species)) { return -1; } if (CheckDexFlag((u8 *)pokedex->seenSpecies, species)) { - return Pokedex_SpeciesGetLastSeenGender_Internal(pokedex, species, a2); + return Pokedex_SpeciesGetLastSeenGender_Internal(pokedex, species, idx); } return -1; } diff --git a/src/poketool/pokefoot.c b/src/poketool/pokefoot.c new file mode 100644 index 0000000000..a897080dbe --- /dev/null +++ b/src/poketool/pokefoot.c @@ -0,0 +1,19 @@ +#include "poketool/pokefoot/pokefoot.naix" + +#include "filesystem.h" + +NarcId ov18_021E5900(void); +int ov18_021E5904(int a0); +int ov18_021E5908(void); + +NarcId ov18_021E5900(void) { + return NARC_poketool_pokefoot_pokefoot; +} + +int ov18_021E5904(int a0) { + return a0 + NARC_pokefoot_pokefoot_00000003_NCGR_lz; +} + +int ov18_021E5908(void) { + return NARC_pokefoot_pokefoot_00000000_NCLR; +} diff --git a/src/save_arrays.c b/src/save_arrays.c index 11760b8bd7..4cc5155abb 100644 --- a/src/save_arrays.c +++ b/src/save_arrays.c @@ -9,6 +9,7 @@ #include "game_stats.h" #include "hall_of_fame.h" #include "mystery_gift.h" +#include "palPark_migration.h" #include "photo_album.h" #include "pokedex.h" #include "pokemon_storage_system.h" @@ -31,7 +32,6 @@ #include "save_vars_flags.h" #include "save_wifi_history.h" #include "unk_0202E41C.h" -#include "palPark_migration.h" #include "unk_02030A98.h" // These macros are temporary. As the respective sources diff --git a/src/unk_020912AC.c b/src/unk_020912AC.c index 2ddf3c8c15..6f18ef8023 100644 --- a/src/unk_020912AC.c +++ b/src/unk_020912AC.c @@ -27,7 +27,7 @@ int sub_020912AC(int index) { } // Get dex cycle value with offset wrapping -s16 sub_020912D0(u32 value, u32 offset) { +s16 sub_020912D0(s16 value, u32 offset) { u32 i; for (i = 0; i < 6; i++) { diff --git a/tools/asmdiff/asmdiff.sh b/tools/asmdiff/asmdiff.sh index dd0381326a..eb54bd573a 100755 --- a/tools/asmdiff/asmdiff.sh +++ b/tools/asmdiff/asmdiff.sh @@ -269,7 +269,7 @@ case "$mode" in mkdir -p $(dirname $basefile) "${MYDIR}"/ntrextractfile "${baserom}" "${filepath}" >"${basefile}" } - cmp -s "$basefile" "$buildfile" || diff -u <(hexdump -Cv "$basefile") <(hexdump -Cv "$buildfile") + cmp -s "$basefile" "$buildfile" || diff $difftype <(hexdump -Cv "$basefile") <(hexdump -Cv "$buildfile") exit 0 ;; esac diff --git a/tools/csv2bin/CsvFile.cpp b/tools/csv2bin/CsvFile.cpp index 36471e859b..84b495776a 100644 --- a/tools/csv2bin/CsvFile.cpp +++ b/tools/csv2bin/CsvFile.cpp @@ -1,7 +1,8 @@ -#include -#include #include "CsvFile.h" +#include +#include + void CsvFile::ParseRow(std::string &line, std::vector &row, bool resize) { std::string entry, qbuf; bool isQuoted = false; @@ -48,7 +49,7 @@ void CsvFile::ParseRow(std::string &line, std::vector &row, bool re void CsvFile::FromFile(const fs::path &filename, bool has_header) { std::ifstream handle(filename); - if (!handle.is_open()) { + if (!handle.is_open()) { throw std::runtime_error("unable to open file \"" + filename.string() + "\""); } std::string line; diff --git a/tools/csv2bin/Manifest.cpp b/tools/csv2bin/Manifest.cpp index 2a39d63e90..2bffc3d417 100644 --- a/tools/csv2bin/Manifest.cpp +++ b/tools/csv2bin/Manifest.cpp @@ -1,7 +1,8 @@ -#include -#include #include "Manifest.h" +#include +#include + std::map, std::map> HeaderCache { {{"bool", ""}, { {"false", 0}, @@ -11,7 +12,7 @@ std::map, std::map> HeaderCac void ColumnSpec::translate_width(std::string &width, int &bytes, int &bits) { int dotpos = width.find('.'); - + try { bytes = std::stoi(width.substr(0, dotpos)); } catch (std::invalid_argument &e) { @@ -281,7 +282,7 @@ void BufferedRowConverter::to_bytes() { if (spec.is_padding()) { val = 0; } else { - //val = spec[row.at(column_i++)]; + // val = spec[row.at(column_i++)]; try { const std::string &cell_value = row.at(column_i); val = spec[cell_value]; diff --git a/tools/csv2bin/Manifest.h b/tools/csv2bin/Manifest.h index 8162832d3f..05961e7ead 100644 --- a/tools/csv2bin/Manifest.h +++ b/tools/csv2bin/Manifest.h @@ -115,7 +115,7 @@ class ColumnSpec { } catch (std::invalid_argument &e2) { std::string msg = "invalid integer value: \"" + key + "\""; if (!constants.empty()) { - msg += " (not found in constants map with " + std::to_string(constants.size()) + " entries)"; + msg += " (not found in constants map with " + std::to_string(constants.size()) + " entries)"; } throw std::invalid_argument(msg); } catch (std::out_of_range &e2) { diff --git a/tools/elfcoder/.gitignore b/tools/elfcoder/.gitignore new file mode 100644 index 0000000000..8e58a9b478 --- /dev/null +++ b/tools/elfcoder/.gitignore @@ -0,0 +1,2 @@ +elfcoder +elfcoder.exe diff --git a/tools/elfcoder/argparse.c b/tools/elfcoder/argparse.c index d0dd70b98e..4c6d637daf 100644 --- a/tools/elfcoder/argparse.c +++ b/tools/elfcoder/argparse.c @@ -314,8 +314,7 @@ int ArgParse_CreateTask(EncodingTask *task, char **argv) { } if (task->replace_prefix != NULL && task->encoding_type == ENC_ENCODE && task->key_mode == MODE_KEYED) { - if ((task->wrapper_prefix == NULL && strcmp(task->replace_prefix, DEFAULT_ADDED_PREFIX) == 0) || - (task->wrapper_prefix != NULL && strcmp(task->wrapper_prefix, task->replace_prefix) == 0)) { + if ((task->wrapper_prefix == NULL && strcmp(task->replace_prefix, DEFAULT_ADDED_PREFIX) == 0) || (task->wrapper_prefix != NULL && strcmp(task->wrapper_prefix, task->replace_prefix) == 0)) { printf("Error: replaced prefix and added prefix cannot be the same\n"); return 1; } diff --git a/tools/elfcoder/elf.h b/tools/elfcoder/elf.h index 0735f6b579..3d23273657 100644 --- a/tools/elfcoder/elf.h +++ b/tools/elfcoder/elf.h @@ -17,7 +17,7 @@ . */ #ifndef _ELF_H -#define _ELF_H 1 +#define _ELF_H 1 /* Standard ELF types. */ @@ -29,15 +29,15 @@ typedef uint16_t Elf64_Half; /* Types for signed and unsigned 32-bit quantities. */ typedef uint32_t Elf32_Word; -typedef int32_t Elf32_Sword; +typedef int32_t Elf32_Sword; typedef uint32_t Elf64_Word; -typedef int32_t Elf64_Sword; +typedef int32_t Elf64_Sword; /* Types for signed and unsigned 64-bit quantities. */ typedef uint64_t Elf32_Xword; -typedef int64_t Elf32_Sxword; +typedef int64_t Elf32_Sxword; typedef uint64_t Elf64_Xword; -typedef int64_t Elf64_Sxword; +typedef int64_t Elf64_Sxword; /* Type of addresses. */ typedef uint32_t Elf32_Addr; @@ -55,483 +55,482 @@ typedef uint16_t Elf64_Section; typedef Elf32_Half Elf32_Versym; typedef Elf64_Half Elf64_Versym; - /* The ELF file header. This appears at the start of every ELF file. */ #define EI_NIDENT (16) typedef struct { - unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ - Elf32_Half e_type; /* Object file type */ - Elf32_Half e_machine; /* Architecture */ - Elf32_Word e_version; /* Object file version */ - Elf32_Addr e_entry; /* Entry point virtual address */ - Elf32_Off e_phoff; /* Program header table file offset */ - Elf32_Off e_shoff; /* Section header table file offset */ - Elf32_Word e_flags; /* Processor-specific flags */ - Elf32_Half e_ehsize; /* ELF header size in bytes */ - Elf32_Half e_phentsize; /* Program header table entry size */ - Elf32_Half e_phnum; /* Program header table entry count */ - Elf32_Half e_shentsize; /* Section header table entry size */ - Elf32_Half e_shnum; /* Section header table entry count */ - Elf32_Half e_shstrndx; /* Section header string table index */ + unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ + Elf32_Half e_type; /* Object file type */ + Elf32_Half e_machine; /* Architecture */ + Elf32_Word e_version; /* Object file version */ + Elf32_Addr e_entry; /* Entry point virtual address */ + Elf32_Off e_phoff; /* Program header table file offset */ + Elf32_Off e_shoff; /* Section header table file offset */ + Elf32_Word e_flags; /* Processor-specific flags */ + Elf32_Half e_ehsize; /* ELF header size in bytes */ + Elf32_Half e_phentsize; /* Program header table entry size */ + Elf32_Half e_phnum; /* Program header table entry count */ + Elf32_Half e_shentsize; /* Section header table entry size */ + Elf32_Half e_shnum; /* Section header table entry count */ + Elf32_Half e_shstrndx; /* Section header string table index */ } Elf32_Ehdr; typedef struct { - unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ - Elf64_Half e_type; /* Object file type */ - Elf64_Half e_machine; /* Architecture */ - Elf64_Word e_version; /* Object file version */ - Elf64_Addr e_entry; /* Entry point virtual address */ - Elf64_Off e_phoff; /* Program header table file offset */ - Elf64_Off e_shoff; /* Section header table file offset */ - Elf64_Word e_flags; /* Processor-specific flags */ - Elf64_Half e_ehsize; /* ELF header size in bytes */ - Elf64_Half e_phentsize; /* Program header table entry size */ - Elf64_Half e_phnum; /* Program header table entry count */ - Elf64_Half e_shentsize; /* Section header table entry size */ - Elf64_Half e_shnum; /* Section header table entry count */ - Elf64_Half e_shstrndx; /* Section header string table index */ + unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ + Elf64_Half e_type; /* Object file type */ + Elf64_Half e_machine; /* Architecture */ + Elf64_Word e_version; /* Object file version */ + Elf64_Addr e_entry; /* Entry point virtual address */ + Elf64_Off e_phoff; /* Program header table file offset */ + Elf64_Off e_shoff; /* Section header table file offset */ + Elf64_Word e_flags; /* Processor-specific flags */ + Elf64_Half e_ehsize; /* ELF header size in bytes */ + Elf64_Half e_phentsize; /* Program header table entry size */ + Elf64_Half e_phnum; /* Program header table entry count */ + Elf64_Half e_shentsize; /* Section header table entry size */ + Elf64_Half e_shnum; /* Section header table entry count */ + Elf64_Half e_shstrndx; /* Section header string table index */ } Elf64_Ehdr; /* Fields in the e_ident array. The EI_* macros are indices into the array. The macros under each EI_* macro are the values the byte may have. */ -#define EI_MAG0 0 /* File identification byte 0 index */ -#define ELFMAG0 0x7f /* Magic number byte 0 */ +#define EI_MAG0 0 /* File identification byte 0 index */ +#define ELFMAG0 0x7f /* Magic number byte 0 */ -#define EI_MAG1 1 /* File identification byte 1 index */ -#define ELFMAG1 'E' /* Magic number byte 1 */ +#define EI_MAG1 1 /* File identification byte 1 index */ +#define ELFMAG1 'E' /* Magic number byte 1 */ -#define EI_MAG2 2 /* File identification byte 2 index */ -#define ELFMAG2 'L' /* Magic number byte 2 */ +#define EI_MAG2 2 /* File identification byte 2 index */ +#define ELFMAG2 'L' /* Magic number byte 2 */ -#define EI_MAG3 3 /* File identification byte 3 index */ -#define ELFMAG3 'F' /* Magic number byte 3 */ +#define EI_MAG3 3 /* File identification byte 3 index */ +#define ELFMAG3 'F' /* Magic number byte 3 */ /* Conglomeration of the identification bytes, for easy testing as a word. */ -#define ELFMAG "\177ELF" -#define SELFMAG 4 - -#define EI_CLASS 4 /* File class byte index */ -#define ELFCLASSNONE 0 /* Invalid class */ -#define ELFCLASS32 1 /* 32-bit objects */ -#define ELFCLASS64 2 /* 64-bit objects */ -#define ELFCLASSNUM 3 - -#define EI_DATA 5 /* Data encoding byte index */ -#define ELFDATANONE 0 /* Invalid data encoding */ -#define ELFDATA2LSB 1 /* 2's complement, little endian */ -#define ELFDATA2MSB 2 /* 2's complement, big endian */ -#define ELFDATANUM 3 - -#define EI_VERSION 6 /* File version byte index */ - /* Value must be EV_CURRENT */ - -#define EI_OSABI 7 /* OS ABI identification */ -#define ELFOSABI_NONE 0 /* UNIX System V ABI */ -#define ELFOSABI_SYSV 0 /* Alias. */ -#define ELFOSABI_HPUX 1 /* HP-UX */ -#define ELFOSABI_NETBSD 2 /* NetBSD. */ -#define ELFOSABI_GNU 3 /* Object uses GNU ELF extensions. */ -#define ELFOSABI_LINUX ELFOSABI_GNU /* Compatibility alias. */ -#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */ -#define ELFOSABI_AIX 7 /* IBM AIX. */ -#define ELFOSABI_IRIX 8 /* SGI Irix. */ -#define ELFOSABI_FREEBSD 9 /* FreeBSD. */ -#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */ -#define ELFOSABI_MODESTO 11 /* Novell Modesto. */ -#define ELFOSABI_OPENBSD 12 /* OpenBSD. */ -#define ELFOSABI_ARM_AEABI 64 /* ARM EABI */ -#define ELFOSABI_ARM 97 /* ARM */ -#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ - -#define EI_ABIVERSION 8 /* ABI version */ - -#define EI_PAD 9 /* Byte index of padding bytes */ +#define ELFMAG "\177ELF" +#define SELFMAG 4 + +#define EI_CLASS 4 /* File class byte index */ +#define ELFCLASSNONE 0 /* Invalid class */ +#define ELFCLASS32 1 /* 32-bit objects */ +#define ELFCLASS64 2 /* 64-bit objects */ +#define ELFCLASSNUM 3 + +#define EI_DATA 5 /* Data encoding byte index */ +#define ELFDATANONE 0 /* Invalid data encoding */ +#define ELFDATA2LSB 1 /* 2's complement, little endian */ +#define ELFDATA2MSB 2 /* 2's complement, big endian */ +#define ELFDATANUM 3 + +#define EI_VERSION 6 /* File version byte index */ + /* Value must be EV_CURRENT */ + +#define EI_OSABI 7 /* OS ABI identification */ +#define ELFOSABI_NONE 0 /* UNIX System V ABI */ +#define ELFOSABI_SYSV 0 /* Alias. */ +#define ELFOSABI_HPUX 1 /* HP-UX */ +#define ELFOSABI_NETBSD 2 /* NetBSD. */ +#define ELFOSABI_GNU 3 /* Object uses GNU ELF extensions. */ +#define ELFOSABI_LINUX ELFOSABI_GNU /* Compatibility alias. */ +#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */ +#define ELFOSABI_AIX 7 /* IBM AIX. */ +#define ELFOSABI_IRIX 8 /* SGI Irix. */ +#define ELFOSABI_FREEBSD 9 /* FreeBSD. */ +#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */ +#define ELFOSABI_MODESTO 11 /* Novell Modesto. */ +#define ELFOSABI_OPENBSD 12 /* OpenBSD. */ +#define ELFOSABI_ARM_AEABI 64 /* ARM EABI */ +#define ELFOSABI_ARM 97 /* ARM */ +#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ + +#define EI_ABIVERSION 8 /* ABI version */ + +#define EI_PAD 9 /* Byte index of padding bytes */ /* Legal values for e_type (object file type). */ -#define ET_NONE 0 /* No file type */ -#define ET_REL 1 /* Relocatable file */ -#define ET_EXEC 2 /* Executable file */ -#define ET_DYN 3 /* Shared object file */ -#define ET_CORE 4 /* Core file */ -#define ET_NUM 5 /* Number of defined types */ -#define ET_LOOS 0xfe00 /* OS-specific range start */ -#define ET_HIOS 0xfeff /* OS-specific range end */ -#define ET_LOPROC 0xff00 /* Processor-specific range start */ -#define ET_HIPROC 0xffff /* Processor-specific range end */ +#define ET_NONE 0 /* No file type */ +#define ET_REL 1 /* Relocatable file */ +#define ET_EXEC 2 /* Executable file */ +#define ET_DYN 3 /* Shared object file */ +#define ET_CORE 4 /* Core file */ +#define ET_NUM 5 /* Number of defined types */ +#define ET_LOOS 0xfe00 /* OS-specific range start */ +#define ET_HIOS 0xfeff /* OS-specific range end */ +#define ET_LOPROC 0xff00 /* Processor-specific range start */ +#define ET_HIPROC 0xffff /* Processor-specific range end */ /* Legal values for e_machine (architecture). */ -#define EM_NONE 0 /* No machine */ -#define EM_M32 1 /* AT&T WE 32100 */ -#define EM_SPARC 2 /* SUN SPARC */ -#define EM_386 3 /* Intel 80386 */ -#define EM_68K 4 /* Motorola m68k family */ -#define EM_88K 5 /* Motorola m88k family */ -#define EM_IAMCU 6 /* Intel MCU */ -#define EM_860 7 /* Intel 80860 */ -#define EM_MIPS 8 /* MIPS R3000 big-endian */ -#define EM_S370 9 /* IBM System/370 */ -#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */ - /* reserved 11-14 */ -#define EM_PARISC 15 /* HPPA */ - /* reserved 16 */ -#define EM_VPP500 17 /* Fujitsu VPP500 */ -#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */ -#define EM_960 19 /* Intel 80960 */ -#define EM_PPC 20 /* PowerPC */ -#define EM_PPC64 21 /* PowerPC 64-bit */ -#define EM_S390 22 /* IBM S390 */ -#define EM_SPU 23 /* IBM SPU/SPC */ - /* reserved 24-35 */ -#define EM_V800 36 /* NEC V800 series */ -#define EM_FR20 37 /* Fujitsu FR20 */ -#define EM_RH32 38 /* TRW RH-32 */ -#define EM_RCE 39 /* Motorola RCE */ -#define EM_ARM 40 /* ARM */ -#define EM_FAKE_ALPHA 41 /* Digital Alpha */ -#define EM_SH 42 /* Hitachi SH */ -#define EM_SPARCV9 43 /* SPARC v9 64-bit */ -#define EM_TRICORE 44 /* Siemens Tricore */ -#define EM_ARC 45 /* Argonaut RISC Core */ -#define EM_H8_300 46 /* Hitachi H8/300 */ -#define EM_H8_300H 47 /* Hitachi H8/300H */ -#define EM_H8S 48 /* Hitachi H8S */ -#define EM_H8_500 49 /* Hitachi H8/500 */ -#define EM_IA_64 50 /* Intel Merced */ -#define EM_MIPS_X 51 /* Stanford MIPS-X */ -#define EM_COLDFIRE 52 /* Motorola Coldfire */ -#define EM_68HC12 53 /* Motorola M68HC12 */ -#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator */ -#define EM_PCP 55 /* Siemens PCP */ -#define EM_NCPU 56 /* Sony nCPU embeeded RISC */ -#define EM_NDR1 57 /* Denso NDR1 microprocessor */ -#define EM_STARCORE 58 /* Motorola Start*Core processor */ -#define EM_ME16 59 /* Toyota ME16 processor */ -#define EM_ST100 60 /* STMicroelectronic ST100 processor */ -#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam */ -#define EM_X86_64 62 /* AMD x86-64 architecture */ -#define EM_PDSP 63 /* Sony DSP Processor */ -#define EM_PDP10 64 /* Digital PDP-10 */ -#define EM_PDP11 65 /* Digital PDP-11 */ -#define EM_FX66 66 /* Siemens FX66 microcontroller */ -#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */ -#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */ -#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */ -#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */ -#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */ -#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */ -#define EM_SVX 73 /* Silicon Graphics SVx */ -#define EM_ST19 74 /* STMicroelectronics ST19 8 bit mc */ -#define EM_VAX 75 /* Digital VAX */ -#define EM_CRIS 76 /* Axis Communications 32-bit emb.proc */ -#define EM_JAVELIN 77 /* Infineon Technologies 32-bit emb.proc */ -#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */ -#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */ -#define EM_MMIX 80 /* Donald Knuth's educational 64-bit proc */ -#define EM_HUANY 81 /* Harvard University machine-independent object files */ -#define EM_PRISM 82 /* SiTera Prism */ -#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */ -#define EM_FR30 84 /* Fujitsu FR30 */ -#define EM_D10V 85 /* Mitsubishi D10V */ -#define EM_D30V 86 /* Mitsubishi D30V */ -#define EM_V850 87 /* NEC v850 */ -#define EM_M32R 88 /* Mitsubishi M32R */ -#define EM_MN10300 89 /* Matsushita MN10300 */ -#define EM_MN10200 90 /* Matsushita MN10200 */ -#define EM_PJ 91 /* picoJava */ -#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */ -#define EM_ARC_COMPACT 93 /* ARC International ARCompact */ -#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */ -#define EM_VIDEOCORE 95 /* Alphamosaic VideoCore */ -#define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Proc */ -#define EM_NS32K 97 /* National Semi. 32000 */ -#define EM_TPC 98 /* Tenor Network TPC */ -#define EM_SNP1K 99 /* Trebia SNP 1000 */ -#define EM_ST200 100 /* STMicroelectronics ST200 */ -#define EM_IP2K 101 /* Ubicom IP2xxx */ -#define EM_MAX 102 /* MAX processor */ -#define EM_CR 103 /* National Semi. CompactRISC */ -#define EM_F2MC16 104 /* Fujitsu F2MC16 */ -#define EM_MSP430 105 /* Texas Instruments msp430 */ -#define EM_BLACKFIN 106 /* Analog Devices Blackfin DSP */ -#define EM_SE_C33 107 /* Seiko Epson S1C33 family */ -#define EM_SEP 108 /* Sharp embedded microprocessor */ -#define EM_ARCA 109 /* Arca RISC */ -#define EM_UNICORE 110 /* PKU-Unity & MPRC Peking Uni. mc series */ -#define EM_EXCESS 111 /* eXcess configurable cpu */ -#define EM_DXP 112 /* Icera Semi. Deep Execution Processor */ -#define EM_ALTERA_NIOS2 113 /* Altera Nios II */ -#define EM_CRX 114 /* National Semi. CompactRISC CRX */ -#define EM_XGATE 115 /* Motorola XGATE */ -#define EM_C166 116 /* Infineon C16x/XC16x */ -#define EM_M16C 117 /* Renesas M16C */ -#define EM_DSPIC30F 118 /* Microchip Technology dsPIC30F */ -#define EM_CE 119 /* Freescale Communication Engine RISC */ -#define EM_M32C 120 /* Renesas M32C */ - /* reserved 121-130 */ -#define EM_TSK3000 131 /* Altium TSK3000 */ -#define EM_RS08 132 /* Freescale RS08 */ -#define EM_SHARC 133 /* Analog Devices SHARC family */ -#define EM_ECOG2 134 /* Cyan Technology eCOG2 */ -#define EM_SCORE7 135 /* Sunplus S+core7 RISC */ -#define EM_DSP24 136 /* New Japan Radio (NJR) 24-bit DSP */ -#define EM_VIDEOCORE3 137 /* Broadcom VideoCore III */ -#define EM_LATTICEMICO32 138 /* RISC for Lattice FPGA */ -#define EM_SE_C17 139 /* Seiko Epson C17 */ -#define EM_TI_C6000 140 /* Texas Instruments TMS320C6000 DSP */ -#define EM_TI_C2000 141 /* Texas Instruments TMS320C2000 DSP */ -#define EM_TI_C5500 142 /* Texas Instruments TMS320C55x DSP */ -#define EM_TI_ARP32 143 /* Texas Instruments App. Specific RISC */ -#define EM_TI_PRU 144 /* Texas Instruments Prog. Realtime Unit */ - /* reserved 145-159 */ -#define EM_MMDSP_PLUS 160 /* STMicroelectronics 64bit VLIW DSP */ -#define EM_CYPRESS_M8C 161 /* Cypress M8C */ -#define EM_R32C 162 /* Renesas R32C */ -#define EM_TRIMEDIA 163 /* NXP Semi. TriMedia */ -#define EM_QDSP6 164 /* QUALCOMM DSP6 */ -#define EM_8051 165 /* Intel 8051 and variants */ -#define EM_STXP7X 166 /* STMicroelectronics STxP7x */ -#define EM_NDS32 167 /* Andes Tech. compact code emb. RISC */ -#define EM_ECOG1X 168 /* Cyan Technology eCOG1X */ -#define EM_MAXQ30 169 /* Dallas Semi. MAXQ30 mc */ -#define EM_XIMO16 170 /* New Japan Radio (NJR) 16-bit DSP */ -#define EM_MANIK 171 /* M2000 Reconfigurable RISC */ -#define EM_CRAYNV2 172 /* Cray NV2 vector architecture */ -#define EM_RX 173 /* Renesas RX */ -#define EM_METAG 174 /* Imagination Tech. META */ -#define EM_MCST_ELBRUS 175 /* MCST Elbrus */ -#define EM_ECOG16 176 /* Cyan Technology eCOG16 */ -#define EM_CR16 177 /* National Semi. CompactRISC CR16 */ -#define EM_ETPU 178 /* Freescale Extended Time Processing Unit */ -#define EM_SLE9X 179 /* Infineon Tech. SLE9X */ -#define EM_L10M 180 /* Intel L10M */ -#define EM_K10M 181 /* Intel K10M */ - /* reserved 182 */ -#define EM_AARCH64 183 /* ARM AARCH64 */ - /* reserved 184 */ -#define EM_AVR32 185 /* Amtel 32-bit microprocessor */ -#define EM_STM8 186 /* STMicroelectronics STM8 */ -#define EM_TILE64 187 /* Tilera TILE64 */ -#define EM_TILEPRO 188 /* Tilera TILEPro */ -#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze */ -#define EM_CUDA 190 /* NVIDIA CUDA */ -#define EM_TILEGX 191 /* Tilera TILE-Gx */ -#define EM_CLOUDSHIELD 192 /* CloudShield */ -#define EM_COREA_1ST 193 /* KIPO-KAIST Core-A 1st gen. */ -#define EM_COREA_2ND 194 /* KIPO-KAIST Core-A 2nd gen. */ -#define EM_ARCV2 195 /* Synopsys ARCv2 ISA. */ -#define EM_OPEN8 196 /* Open8 RISC */ -#define EM_RL78 197 /* Renesas RL78 */ -#define EM_VIDEOCORE5 198 /* Broadcom VideoCore V */ -#define EM_78KOR 199 /* Renesas 78KOR */ -#define EM_56800EX 200 /* Freescale 56800EX DSC */ -#define EM_BA1 201 /* Beyond BA1 */ -#define EM_BA2 202 /* Beyond BA2 */ -#define EM_XCORE 203 /* XMOS xCORE */ -#define EM_MCHP_PIC 204 /* Microchip 8-bit PIC(r) */ -#define EM_INTELGT 205 /* Intel Graphics Technology */ - /* reserved 206-209 */ -#define EM_KM32 210 /* KM211 KM32 */ -#define EM_KMX32 211 /* KM211 KMX32 */ -#define EM_EMX16 212 /* KM211 KMX16 */ -#define EM_EMX8 213 /* KM211 KMX8 */ -#define EM_KVARC 214 /* KM211 KVARC */ -#define EM_CDP 215 /* Paneve CDP */ -#define EM_COGE 216 /* Cognitive Smart Memory Processor */ -#define EM_COOL 217 /* Bluechip CoolEngine */ -#define EM_NORC 218 /* Nanoradio Optimized RISC */ -#define EM_CSR_KALIMBA 219 /* CSR Kalimba */ -#define EM_Z80 220 /* Zilog Z80 */ -#define EM_VISIUM 221 /* Controls and Data Services VISIUMcore */ -#define EM_FT32 222 /* FTDI Chip FT32 */ -#define EM_MOXIE 223 /* Moxie processor */ -#define EM_AMDGPU 224 /* AMD GPU */ - /* reserved 225-242 */ -#define EM_RISCV 243 /* RISC-V */ - -#define EM_BPF 247 /* Linux BPF -- in-kernel virtual machine */ -#define EM_CSKY 252 /* C-SKY */ - -#define EM_NUM 253 +#define EM_NONE 0 /* No machine */ +#define EM_M32 1 /* AT&T WE 32100 */ +#define EM_SPARC 2 /* SUN SPARC */ +#define EM_386 3 /* Intel 80386 */ +#define EM_68K 4 /* Motorola m68k family */ +#define EM_88K 5 /* Motorola m88k family */ +#define EM_IAMCU 6 /* Intel MCU */ +#define EM_860 7 /* Intel 80860 */ +#define EM_MIPS 8 /* MIPS R3000 big-endian */ +#define EM_S370 9 /* IBM System/370 */ +#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */ +/* reserved 11-14 */ +#define EM_PARISC 15 /* HPPA */ +/* reserved 16 */ +#define EM_VPP500 17 /* Fujitsu VPP500 */ +#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */ +#define EM_960 19 /* Intel 80960 */ +#define EM_PPC 20 /* PowerPC */ +#define EM_PPC64 21 /* PowerPC 64-bit */ +#define EM_S390 22 /* IBM S390 */ +#define EM_SPU 23 /* IBM SPU/SPC */ +/* reserved 24-35 */ +#define EM_V800 36 /* NEC V800 series */ +#define EM_FR20 37 /* Fujitsu FR20 */ +#define EM_RH32 38 /* TRW RH-32 */ +#define EM_RCE 39 /* Motorola RCE */ +#define EM_ARM 40 /* ARM */ +#define EM_FAKE_ALPHA 41 /* Digital Alpha */ +#define EM_SH 42 /* Hitachi SH */ +#define EM_SPARCV9 43 /* SPARC v9 64-bit */ +#define EM_TRICORE 44 /* Siemens Tricore */ +#define EM_ARC 45 /* Argonaut RISC Core */ +#define EM_H8_300 46 /* Hitachi H8/300 */ +#define EM_H8_300H 47 /* Hitachi H8/300H */ +#define EM_H8S 48 /* Hitachi H8S */ +#define EM_H8_500 49 /* Hitachi H8/500 */ +#define EM_IA_64 50 /* Intel Merced */ +#define EM_MIPS_X 51 /* Stanford MIPS-X */ +#define EM_COLDFIRE 52 /* Motorola Coldfire */ +#define EM_68HC12 53 /* Motorola M68HC12 */ +#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator */ +#define EM_PCP 55 /* Siemens PCP */ +#define EM_NCPU 56 /* Sony nCPU embeeded RISC */ +#define EM_NDR1 57 /* Denso NDR1 microprocessor */ +#define EM_STARCORE 58 /* Motorola Start*Core processor */ +#define EM_ME16 59 /* Toyota ME16 processor */ +#define EM_ST100 60 /* STMicroelectronic ST100 processor */ +#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam */ +#define EM_X86_64 62 /* AMD x86-64 architecture */ +#define EM_PDSP 63 /* Sony DSP Processor */ +#define EM_PDP10 64 /* Digital PDP-10 */ +#define EM_PDP11 65 /* Digital PDP-11 */ +#define EM_FX66 66 /* Siemens FX66 microcontroller */ +#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */ +#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */ +#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */ +#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */ +#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */ +#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */ +#define EM_SVX 73 /* Silicon Graphics SVx */ +#define EM_ST19 74 /* STMicroelectronics ST19 8 bit mc */ +#define EM_VAX 75 /* Digital VAX */ +#define EM_CRIS 76 /* Axis Communications 32-bit emb.proc */ +#define EM_JAVELIN 77 /* Infineon Technologies 32-bit emb.proc */ +#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */ +#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */ +#define EM_MMIX 80 /* Donald Knuth's educational 64-bit proc */ +#define EM_HUANY 81 /* Harvard University machine-independent object files */ +#define EM_PRISM 82 /* SiTera Prism */ +#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */ +#define EM_FR30 84 /* Fujitsu FR30 */ +#define EM_D10V 85 /* Mitsubishi D10V */ +#define EM_D30V 86 /* Mitsubishi D30V */ +#define EM_V850 87 /* NEC v850 */ +#define EM_M32R 88 /* Mitsubishi M32R */ +#define EM_MN10300 89 /* Matsushita MN10300 */ +#define EM_MN10200 90 /* Matsushita MN10200 */ +#define EM_PJ 91 /* picoJava */ +#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */ +#define EM_ARC_COMPACT 93 /* ARC International ARCompact */ +#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */ +#define EM_VIDEOCORE 95 /* Alphamosaic VideoCore */ +#define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Proc */ +#define EM_NS32K 97 /* National Semi. 32000 */ +#define EM_TPC 98 /* Tenor Network TPC */ +#define EM_SNP1K 99 /* Trebia SNP 1000 */ +#define EM_ST200 100 /* STMicroelectronics ST200 */ +#define EM_IP2K 101 /* Ubicom IP2xxx */ +#define EM_MAX 102 /* MAX processor */ +#define EM_CR 103 /* National Semi. CompactRISC */ +#define EM_F2MC16 104 /* Fujitsu F2MC16 */ +#define EM_MSP430 105 /* Texas Instruments msp430 */ +#define EM_BLACKFIN 106 /* Analog Devices Blackfin DSP */ +#define EM_SE_C33 107 /* Seiko Epson S1C33 family */ +#define EM_SEP 108 /* Sharp embedded microprocessor */ +#define EM_ARCA 109 /* Arca RISC */ +#define EM_UNICORE 110 /* PKU-Unity & MPRC Peking Uni. mc series */ +#define EM_EXCESS 111 /* eXcess configurable cpu */ +#define EM_DXP 112 /* Icera Semi. Deep Execution Processor */ +#define EM_ALTERA_NIOS2 113 /* Altera Nios II */ +#define EM_CRX 114 /* National Semi. CompactRISC CRX */ +#define EM_XGATE 115 /* Motorola XGATE */ +#define EM_C166 116 /* Infineon C16x/XC16x */ +#define EM_M16C 117 /* Renesas M16C */ +#define EM_DSPIC30F 118 /* Microchip Technology dsPIC30F */ +#define EM_CE 119 /* Freescale Communication Engine RISC */ +#define EM_M32C 120 /* Renesas M32C */ +/* reserved 121-130 */ +#define EM_TSK3000 131 /* Altium TSK3000 */ +#define EM_RS08 132 /* Freescale RS08 */ +#define EM_SHARC 133 /* Analog Devices SHARC family */ +#define EM_ECOG2 134 /* Cyan Technology eCOG2 */ +#define EM_SCORE7 135 /* Sunplus S+core7 RISC */ +#define EM_DSP24 136 /* New Japan Radio (NJR) 24-bit DSP */ +#define EM_VIDEOCORE3 137 /* Broadcom VideoCore III */ +#define EM_LATTICEMICO32 138 /* RISC for Lattice FPGA */ +#define EM_SE_C17 139 /* Seiko Epson C17 */ +#define EM_TI_C6000 140 /* Texas Instruments TMS320C6000 DSP */ +#define EM_TI_C2000 141 /* Texas Instruments TMS320C2000 DSP */ +#define EM_TI_C5500 142 /* Texas Instruments TMS320C55x DSP */ +#define EM_TI_ARP32 143 /* Texas Instruments App. Specific RISC */ +#define EM_TI_PRU 144 /* Texas Instruments Prog. Realtime Unit */ +/* reserved 145-159 */ +#define EM_MMDSP_PLUS 160 /* STMicroelectronics 64bit VLIW DSP */ +#define EM_CYPRESS_M8C 161 /* Cypress M8C */ +#define EM_R32C 162 /* Renesas R32C */ +#define EM_TRIMEDIA 163 /* NXP Semi. TriMedia */ +#define EM_QDSP6 164 /* QUALCOMM DSP6 */ +#define EM_8051 165 /* Intel 8051 and variants */ +#define EM_STXP7X 166 /* STMicroelectronics STxP7x */ +#define EM_NDS32 167 /* Andes Tech. compact code emb. RISC */ +#define EM_ECOG1X 168 /* Cyan Technology eCOG1X */ +#define EM_MAXQ30 169 /* Dallas Semi. MAXQ30 mc */ +#define EM_XIMO16 170 /* New Japan Radio (NJR) 16-bit DSP */ +#define EM_MANIK 171 /* M2000 Reconfigurable RISC */ +#define EM_CRAYNV2 172 /* Cray NV2 vector architecture */ +#define EM_RX 173 /* Renesas RX */ +#define EM_METAG 174 /* Imagination Tech. META */ +#define EM_MCST_ELBRUS 175 /* MCST Elbrus */ +#define EM_ECOG16 176 /* Cyan Technology eCOG16 */ +#define EM_CR16 177 /* National Semi. CompactRISC CR16 */ +#define EM_ETPU 178 /* Freescale Extended Time Processing Unit */ +#define EM_SLE9X 179 /* Infineon Tech. SLE9X */ +#define EM_L10M 180 /* Intel L10M */ +#define EM_K10M 181 /* Intel K10M */ +/* reserved 182 */ +#define EM_AARCH64 183 /* ARM AARCH64 */ +/* reserved 184 */ +#define EM_AVR32 185 /* Amtel 32-bit microprocessor */ +#define EM_STM8 186 /* STMicroelectronics STM8 */ +#define EM_TILE64 187 /* Tilera TILE64 */ +#define EM_TILEPRO 188 /* Tilera TILEPro */ +#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze */ +#define EM_CUDA 190 /* NVIDIA CUDA */ +#define EM_TILEGX 191 /* Tilera TILE-Gx */ +#define EM_CLOUDSHIELD 192 /* CloudShield */ +#define EM_COREA_1ST 193 /* KIPO-KAIST Core-A 1st gen. */ +#define EM_COREA_2ND 194 /* KIPO-KAIST Core-A 2nd gen. */ +#define EM_ARCV2 195 /* Synopsys ARCv2 ISA. */ +#define EM_OPEN8 196 /* Open8 RISC */ +#define EM_RL78 197 /* Renesas RL78 */ +#define EM_VIDEOCORE5 198 /* Broadcom VideoCore V */ +#define EM_78KOR 199 /* Renesas 78KOR */ +#define EM_56800EX 200 /* Freescale 56800EX DSC */ +#define EM_BA1 201 /* Beyond BA1 */ +#define EM_BA2 202 /* Beyond BA2 */ +#define EM_XCORE 203 /* XMOS xCORE */ +#define EM_MCHP_PIC 204 /* Microchip 8-bit PIC(r) */ +#define EM_INTELGT 205 /* Intel Graphics Technology */ +/* reserved 206-209 */ +#define EM_KM32 210 /* KM211 KM32 */ +#define EM_KMX32 211 /* KM211 KMX32 */ +#define EM_EMX16 212 /* KM211 KMX16 */ +#define EM_EMX8 213 /* KM211 KMX8 */ +#define EM_KVARC 214 /* KM211 KVARC */ +#define EM_CDP 215 /* Paneve CDP */ +#define EM_COGE 216 /* Cognitive Smart Memory Processor */ +#define EM_COOL 217 /* Bluechip CoolEngine */ +#define EM_NORC 218 /* Nanoradio Optimized RISC */ +#define EM_CSR_KALIMBA 219 /* CSR Kalimba */ +#define EM_Z80 220 /* Zilog Z80 */ +#define EM_VISIUM 221 /* Controls and Data Services VISIUMcore */ +#define EM_FT32 222 /* FTDI Chip FT32 */ +#define EM_MOXIE 223 /* Moxie processor */ +#define EM_AMDGPU 224 /* AMD GPU */ +/* reserved 225-242 */ +#define EM_RISCV 243 /* RISC-V */ + +#define EM_BPF 247 /* Linux BPF -- in-kernel virtual machine */ +#define EM_CSKY 252 /* C-SKY */ + +#define EM_NUM 253 /* Old spellings/synonyms. */ -#define EM_ARC_A5 EM_ARC_COMPACT +#define EM_ARC_A5 EM_ARC_COMPACT /* If it is necessary to assign new unofficial EM_* values, please pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision with official or non-GNU unofficial values. */ -#define EM_ALPHA 0x9026 +#define EM_ALPHA 0x9026 /* Legal values for e_version (version). */ -#define EV_NONE 0 /* Invalid ELF version */ -#define EV_CURRENT 1 /* Current version */ -#define EV_NUM 2 +#define EV_NONE 0 /* Invalid ELF version */ +#define EV_CURRENT 1 /* Current version */ +#define EV_NUM 2 /* Section header. */ typedef struct { - Elf32_Word sh_name; /* Section name (string tbl index) */ - Elf32_Word sh_type; /* Section type */ - Elf32_Word sh_flags; /* Section flags */ - Elf32_Addr sh_addr; /* Section virtual addr at execution */ - Elf32_Off sh_offset; /* Section file offset */ - Elf32_Word sh_size; /* Section size in bytes */ - Elf32_Word sh_link; /* Link to another section */ - Elf32_Word sh_info; /* Additional section information */ - Elf32_Word sh_addralign; /* Section alignment */ - Elf32_Word sh_entsize; /* Entry size if section holds table */ + Elf32_Word sh_name; /* Section name (string tbl index) */ + Elf32_Word sh_type; /* Section type */ + Elf32_Word sh_flags; /* Section flags */ + Elf32_Addr sh_addr; /* Section virtual addr at execution */ + Elf32_Off sh_offset; /* Section file offset */ + Elf32_Word sh_size; /* Section size in bytes */ + Elf32_Word sh_link; /* Link to another section */ + Elf32_Word sh_info; /* Additional section information */ + Elf32_Word sh_addralign; /* Section alignment */ + Elf32_Word sh_entsize; /* Entry size if section holds table */ } Elf32_Shdr; typedef struct { - Elf64_Word sh_name; /* Section name (string tbl index) */ - Elf64_Word sh_type; /* Section type */ - Elf64_Xword sh_flags; /* Section flags */ - Elf64_Addr sh_addr; /* Section virtual addr at execution */ - Elf64_Off sh_offset; /* Section file offset */ - Elf64_Xword sh_size; /* Section size in bytes */ - Elf64_Word sh_link; /* Link to another section */ - Elf64_Word sh_info; /* Additional section information */ - Elf64_Xword sh_addralign; /* Section alignment */ - Elf64_Xword sh_entsize; /* Entry size if section holds table */ + Elf64_Word sh_name; /* Section name (string tbl index) */ + Elf64_Word sh_type; /* Section type */ + Elf64_Xword sh_flags; /* Section flags */ + Elf64_Addr sh_addr; /* Section virtual addr at execution */ + Elf64_Off sh_offset; /* Section file offset */ + Elf64_Xword sh_size; /* Section size in bytes */ + Elf64_Word sh_link; /* Link to another section */ + Elf64_Word sh_info; /* Additional section information */ + Elf64_Xword sh_addralign; /* Section alignment */ + Elf64_Xword sh_entsize; /* Entry size if section holds table */ } Elf64_Shdr; /* Special section indices. */ -#define SHN_UNDEF 0 /* Undefined section */ -#define SHN_LORESERVE 0xff00 /* Start of reserved indices */ -#define SHN_LOPROC 0xff00 /* Start of processor-specific */ -#define SHN_BEFORE 0xff00 /* Order section before all others - (Solaris). */ -#define SHN_AFTER 0xff01 /* Order section after all others - (Solaris). */ -#define SHN_HIPROC 0xff1f /* End of processor-specific */ -#define SHN_LOOS 0xff20 /* Start of OS-specific */ -#define SHN_HIOS 0xff3f /* End of OS-specific */ -#define SHN_ABS 0xfff1 /* Associated symbol is absolute */ -#define SHN_COMMON 0xfff2 /* Associated symbol is common */ -#define SHN_XINDEX 0xffff /* Index is in extra table. */ -#define SHN_HIRESERVE 0xffff /* End of reserved indices */ +#define SHN_UNDEF 0 /* Undefined section */ +#define SHN_LORESERVE 0xff00 /* Start of reserved indices */ +#define SHN_LOPROC 0xff00 /* Start of processor-specific */ +#define SHN_BEFORE 0xff00 /* Order section before all others \ + (Solaris). */ +#define SHN_AFTER 0xff01 /* Order section after all others \ + (Solaris). */ +#define SHN_HIPROC 0xff1f /* End of processor-specific */ +#define SHN_LOOS 0xff20 /* Start of OS-specific */ +#define SHN_HIOS 0xff3f /* End of OS-specific */ +#define SHN_ABS 0xfff1 /* Associated symbol is absolute */ +#define SHN_COMMON 0xfff2 /* Associated symbol is common */ +#define SHN_XINDEX 0xffff /* Index is in extra table. */ +#define SHN_HIRESERVE 0xffff /* End of reserved indices */ /* Legal values for sh_type (section type). */ -#define SHT_NULL 0 /* Section header table entry unused */ -#define SHT_PROGBITS 1 /* Program data */ -#define SHT_SYMTAB 2 /* Symbol table */ -#define SHT_STRTAB 3 /* String table */ -#define SHT_RELA 4 /* Relocation entries with addends */ -#define SHT_HASH 5 /* Symbol hash table */ -#define SHT_DYNAMIC 6 /* Dynamic linking information */ -#define SHT_NOTE 7 /* Notes */ -#define SHT_NOBITS 8 /* Program space with no data (bss) */ -#define SHT_REL 9 /* Relocation entries, no addends */ -#define SHT_SHLIB 10 /* Reserved */ -#define SHT_DYNSYM 11 /* Dynamic linker symbol table */ -#define SHT_INIT_ARRAY 14 /* Array of constructors */ -#define SHT_FINI_ARRAY 15 /* Array of destructors */ -#define SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */ -#define SHT_GROUP 17 /* Section group */ -#define SHT_SYMTAB_SHNDX 18 /* Extended section indices */ -#define SHT_NUM 19 /* Number of defined types. */ -#define SHT_LOOS 0x60000000 /* Start OS-specific. */ -#define SHT_GNU_ATTRIBUTES 0x6ffffff5 /* Object attributes. */ -#define SHT_GNU_HASH 0x6ffffff6 /* GNU-style hash table. */ -#define SHT_GNU_LIBLIST 0x6ffffff7 /* Prelink library list */ -#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */ -#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */ -#define SHT_SUNW_move 0x6ffffffa -#define SHT_SUNW_COMDAT 0x6ffffffb -#define SHT_SUNW_syminfo 0x6ffffffc -#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */ -#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */ -#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */ -#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */ -#define SHT_HIOS 0x6fffffff /* End OS-specific type */ -#define SHT_LOPROC 0x70000000 /* Start of processor-specific */ -#define SHT_HIPROC 0x7fffffff /* End of processor-specific */ -#define SHT_LOUSER 0x80000000 /* Start of application-specific */ -#define SHT_HIUSER 0x8fffffff /* End of application-specific */ +#define SHT_NULL 0 /* Section header table entry unused */ +#define SHT_PROGBITS 1 /* Program data */ +#define SHT_SYMTAB 2 /* Symbol table */ +#define SHT_STRTAB 3 /* String table */ +#define SHT_RELA 4 /* Relocation entries with addends */ +#define SHT_HASH 5 /* Symbol hash table */ +#define SHT_DYNAMIC 6 /* Dynamic linking information */ +#define SHT_NOTE 7 /* Notes */ +#define SHT_NOBITS 8 /* Program space with no data (bss) */ +#define SHT_REL 9 /* Relocation entries, no addends */ +#define SHT_SHLIB 10 /* Reserved */ +#define SHT_DYNSYM 11 /* Dynamic linker symbol table */ +#define SHT_INIT_ARRAY 14 /* Array of constructors */ +#define SHT_FINI_ARRAY 15 /* Array of destructors */ +#define SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */ +#define SHT_GROUP 17 /* Section group */ +#define SHT_SYMTAB_SHNDX 18 /* Extended section indices */ +#define SHT_NUM 19 /* Number of defined types. */ +#define SHT_LOOS 0x60000000 /* Start OS-specific. */ +#define SHT_GNU_ATTRIBUTES 0x6ffffff5 /* Object attributes. */ +#define SHT_GNU_HASH 0x6ffffff6 /* GNU-style hash table. */ +#define SHT_GNU_LIBLIST 0x6ffffff7 /* Prelink library list */ +#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */ +#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */ +#define SHT_SUNW_move 0x6ffffffa +#define SHT_SUNW_COMDAT 0x6ffffffb +#define SHT_SUNW_syminfo 0x6ffffffc +#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */ +#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */ +#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */ +#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */ +#define SHT_HIOS 0x6fffffff /* End OS-specific type */ +#define SHT_LOPROC 0x70000000 /* Start of processor-specific */ +#define SHT_HIPROC 0x7fffffff /* End of processor-specific */ +#define SHT_LOUSER 0x80000000 /* Start of application-specific */ +#define SHT_HIUSER 0x8fffffff /* End of application-specific */ /* Legal values for sh_flags (section flags). */ -#define SHF_WRITE (1 << 0) /* Writable */ -#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */ -#define SHF_EXECINSTR (1 << 2) /* Executable */ -#define SHF_MERGE (1 << 4) /* Might be merged */ -#define SHF_STRINGS (1 << 5) /* Contains nul-terminated strings */ -#define SHF_INFO_LINK (1 << 6) /* `sh_info' contains SHT index */ -#define SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */ -#define SHF_OS_NONCONFORMING (1 << 8) /* Non-standard OS specific handling - required */ -#define SHF_GROUP (1 << 9) /* Section is member of a group. */ -#define SHF_TLS (1 << 10) /* Section hold thread-local data. */ -#define SHF_COMPRESSED (1 << 11) /* Section with compressed data. */ -#define SHF_MASKOS 0x0ff00000 /* OS-specific. */ -#define SHF_MASKPROC 0xf0000000 /* Processor-specific */ -#define SHF_GNU_RETAIN (1 << 21) /* Not to be GCed by linker. */ -#define SHF_ORDERED (1 << 30) /* Special ordering requirement - (Solaris). */ -#define SHF_EXCLUDE (1U << 31) /* Section is excluded unless - referenced or allocated (Solaris).*/ +#define SHF_WRITE (1 << 0) /* Writable */ +#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */ +#define SHF_EXECINSTR (1 << 2) /* Executable */ +#define SHF_MERGE (1 << 4) /* Might be merged */ +#define SHF_STRINGS (1 << 5) /* Contains nul-terminated strings */ +#define SHF_INFO_LINK (1 << 6) /* `sh_info' contains SHT index */ +#define SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */ +#define SHF_OS_NONCONFORMING (1 << 8) /* Non-standard OS specific handling \ + required */ +#define SHF_GROUP (1 << 9) /* Section is member of a group. */ +#define SHF_TLS (1 << 10) /* Section hold thread-local data. */ +#define SHF_COMPRESSED (1 << 11) /* Section with compressed data. */ +#define SHF_MASKOS 0x0ff00000 /* OS-specific. */ +#define SHF_MASKPROC 0xf0000000 /* Processor-specific */ +#define SHF_GNU_RETAIN (1 << 21) /* Not to be GCed by linker. */ +#define SHF_ORDERED (1 << 30) /* Special ordering requirement \ + (Solaris). */ +#define SHF_EXCLUDE (1U << 31) /* Section is excluded unless \ + referenced or allocated (Solaris).*/ /* Section compression header. Used when SHF_COMPRESSED is set. */ typedef struct { - Elf32_Word ch_type; /* Compression format. */ - Elf32_Word ch_size; /* Uncompressed data size. */ - Elf32_Word ch_addralign; /* Uncompressed data alignment. */ + Elf32_Word ch_type; /* Compression format. */ + Elf32_Word ch_size; /* Uncompressed data size. */ + Elf32_Word ch_addralign; /* Uncompressed data alignment. */ } Elf32_Chdr; typedef struct { - Elf64_Word ch_type; /* Compression format. */ - Elf64_Word ch_reserved; - Elf64_Xword ch_size; /* Uncompressed data size. */ - Elf64_Xword ch_addralign; /* Uncompressed data alignment. */ + Elf64_Word ch_type; /* Compression format. */ + Elf64_Word ch_reserved; + Elf64_Xword ch_size; /* Uncompressed data size. */ + Elf64_Xword ch_addralign; /* Uncompressed data alignment. */ } Elf64_Chdr; /* Legal values for ch_type (compression algorithm). */ -#define ELFCOMPRESS_ZLIB 1 /* ZLIB/DEFLATE algorithm. */ -#define ELFCOMPRESS_LOOS 0x60000000 /* Start of OS-specific. */ -#define ELFCOMPRESS_HIOS 0x6fffffff /* End of OS-specific. */ -#define ELFCOMPRESS_LOPROC 0x70000000 /* Start of processor-specific. */ -#define ELFCOMPRESS_HIPROC 0x7fffffff /* End of processor-specific. */ +#define ELFCOMPRESS_ZLIB 1 /* ZLIB/DEFLATE algorithm. */ +#define ELFCOMPRESS_LOOS 0x60000000 /* Start of OS-specific. */ +#define ELFCOMPRESS_HIOS 0x6fffffff /* End of OS-specific. */ +#define ELFCOMPRESS_LOPROC 0x70000000 /* Start of processor-specific. */ +#define ELFCOMPRESS_HIPROC 0x7fffffff /* End of processor-specific. */ /* Section group handling. */ -#define GRP_COMDAT 0x1 /* Mark group as COMDAT. */ +#define GRP_COMDAT 0x1 /* Mark group as COMDAT. */ /* Symbol table entry. */ typedef struct { - Elf32_Word st_name; /* Symbol name (string tbl index) */ - Elf32_Addr st_value; /* Symbol value */ - Elf32_Word st_size; /* Symbol size */ - unsigned char st_info; /* Symbol type and binding */ - unsigned char st_other; /* Symbol visibility */ - Elf32_Section st_shndx; /* Section index */ + Elf32_Word st_name; /* Symbol name (string tbl index) */ + Elf32_Addr st_value; /* Symbol value */ + Elf32_Word st_size; /* Symbol size */ + unsigned char st_info; /* Symbol type and binding */ + unsigned char st_other; /* Symbol visibility */ + Elf32_Section st_shndx; /* Section index */ } Elf32_Sym; typedef struct { - Elf64_Word st_name; /* Symbol name (string tbl index) */ - unsigned char st_info; /* Symbol type and binding */ - unsigned char st_other; /* Symbol visibility */ - Elf64_Section st_shndx; /* Section index */ - Elf64_Addr st_value; /* Symbol value */ - Elf64_Xword st_size; /* Symbol size */ + Elf64_Word st_name; /* Symbol name (string tbl index) */ + unsigned char st_info; /* Symbol type and binding */ + unsigned char st_other; /* Symbol visibility */ + Elf64_Section st_shndx; /* Section index */ + Elf64_Addr st_value; /* Symbol value */ + Elf64_Xword st_size; /* Symbol size */ } Elf64_Sym; /* The syminfo section if available contains additional information about @@ -539,100 +538,96 @@ typedef struct typedef struct { - Elf32_Half si_boundto; /* Direct bindings, symbol bound to */ - Elf32_Half si_flags; /* Per symbol flags */ + Elf32_Half si_boundto; /* Direct bindings, symbol bound to */ + Elf32_Half si_flags; /* Per symbol flags */ } Elf32_Syminfo; typedef struct { - Elf64_Half si_boundto; /* Direct bindings, symbol bound to */ - Elf64_Half si_flags; /* Per symbol flags */ + Elf64_Half si_boundto; /* Direct bindings, symbol bound to */ + Elf64_Half si_flags; /* Per symbol flags */ } Elf64_Syminfo; /* Possible values for si_boundto. */ -#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */ -#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */ -#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */ +#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */ +#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */ +#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */ /* Possible bitmasks for si_flags. */ -#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */ -#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */ -#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */ -#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy - loaded */ +#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */ +#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */ +#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */ +#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy \ + loaded */ /* Syminfo version values. */ -#define SYMINFO_NONE 0 -#define SYMINFO_CURRENT 1 -#define SYMINFO_NUM 2 - +#define SYMINFO_NONE 0 +#define SYMINFO_CURRENT 1 +#define SYMINFO_NUM 2 /* How to extract and insert information held in the st_info field. */ -#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) -#define ELF32_ST_TYPE(val) ((val) & 0xf) -#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) +#define ELF32_ST_BIND(val) (((unsigned char)(val)) >> 4) +#define ELF32_ST_TYPE(val) ((val) & 0xf) +#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) /* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field. */ -#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) -#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) -#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) +#define ELF64_ST_BIND(val) ELF32_ST_BIND(val) +#define ELF64_ST_TYPE(val) ELF32_ST_TYPE(val) +#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO((bind), (type)) /* Legal values for ST_BIND subfield of st_info (symbol binding). */ -#define STB_LOCAL 0 /* Local symbol */ -#define STB_GLOBAL 1 /* Global symbol */ -#define STB_WEAK 2 /* Weak symbol */ -#define STB_NUM 3 /* Number of defined types. */ -#define STB_LOOS 10 /* Start of OS-specific */ -#define STB_GNU_UNIQUE 10 /* Unique symbol. */ -#define STB_HIOS 12 /* End of OS-specific */ -#define STB_LOPROC 13 /* Start of processor-specific */ -#define STB_HIPROC 15 /* End of processor-specific */ +#define STB_LOCAL 0 /* Local symbol */ +#define STB_GLOBAL 1 /* Global symbol */ +#define STB_WEAK 2 /* Weak symbol */ +#define STB_NUM 3 /* Number of defined types. */ +#define STB_LOOS 10 /* Start of OS-specific */ +#define STB_GNU_UNIQUE 10 /* Unique symbol. */ +#define STB_HIOS 12 /* End of OS-specific */ +#define STB_LOPROC 13 /* Start of processor-specific */ +#define STB_HIPROC 15 /* End of processor-specific */ /* Legal values for ST_TYPE subfield of st_info (symbol type). */ -#define STT_NOTYPE 0 /* Symbol type is unspecified */ -#define STT_OBJECT 1 /* Symbol is a data object */ -#define STT_FUNC 2 /* Symbol is a code object */ -#define STT_SECTION 3 /* Symbol associated with a section */ -#define STT_FILE 4 /* Symbol's name is file name */ -#define STT_COMMON 5 /* Symbol is a common data object */ -#define STT_TLS 6 /* Symbol is thread-local data object*/ -#define STT_NUM 7 /* Number of defined types. */ -#define STT_LOOS 10 /* Start of OS-specific */ -#define STT_GNU_IFUNC 10 /* Symbol is indirect code object */ -#define STT_HIOS 12 /* End of OS-specific */ -#define STT_LOPROC 13 /* Start of processor-specific */ -#define STT_HIPROC 15 /* End of processor-specific */ - +#define STT_NOTYPE 0 /* Symbol type is unspecified */ +#define STT_OBJECT 1 /* Symbol is a data object */ +#define STT_FUNC 2 /* Symbol is a code object */ +#define STT_SECTION 3 /* Symbol associated with a section */ +#define STT_FILE 4 /* Symbol's name is file name */ +#define STT_COMMON 5 /* Symbol is a common data object */ +#define STT_TLS 6 /* Symbol is thread-local data object*/ +#define STT_NUM 7 /* Number of defined types. */ +#define STT_LOOS 10 /* Start of OS-specific */ +#define STT_GNU_IFUNC 10 /* Symbol is indirect code object */ +#define STT_HIOS 12 /* End of OS-specific */ +#define STT_LOPROC 13 /* Start of processor-specific */ +#define STT_HIPROC 15 /* End of processor-specific */ /* Symbol table indices are found in the hash buckets and chain table of a symbol hash table section. This special index value indicates the end of a chain, meaning no further symbols are found in that bucket. */ -#define STN_UNDEF 0 /* End of a chain. */ - +#define STN_UNDEF 0 /* End of a chain. */ /* How to extract and insert information held in the st_other field. */ -#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) +#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) /* For ELF64 the definitions are the same. */ -#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) +#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY(o) /* Symbol visibility specification encoded in the st_other field. */ -#define STV_DEFAULT 0 /* Default symbol visibility rules */ -#define STV_INTERNAL 1 /* Processor specific hidden class */ -#define STV_HIDDEN 2 /* Sym unavailable in other modules */ -#define STV_PROTECTED 3 /* Not preemptible, not exported */ - +#define STV_DEFAULT 0 /* Default symbol visibility rules */ +#define STV_INTERNAL 1 /* Processor specific hidden class */ +#define STV_HIDDEN 2 /* Sym unavailable in other modules */ +#define STV_PROTECTED 3 /* Not preemptible, not exported */ /* Relocation table entry without addend (in section of type SHT_REL). */ typedef struct { - Elf32_Addr r_offset; /* Address */ - Elf32_Word r_info; /* Relocation type and symbol index */ + Elf32_Addr r_offset; /* Address */ + Elf32_Word r_info; /* Relocation type and symbol index */ } Elf32_Rel; /* I have seen two different definitions of the Elf64_Rel and @@ -642,489 +637,481 @@ typedef struct typedef struct { - Elf64_Addr r_offset; /* Address */ - Elf64_Xword r_info; /* Relocation type and symbol index */ + Elf64_Addr r_offset; /* Address */ + Elf64_Xword r_info; /* Relocation type and symbol index */ } Elf64_Rel; /* Relocation table entry with addend (in section of type SHT_RELA). */ typedef struct { - Elf32_Addr r_offset; /* Address */ - Elf32_Word r_info; /* Relocation type and symbol index */ - Elf32_Sword r_addend; /* Addend */ + Elf32_Addr r_offset; /* Address */ + Elf32_Word r_info; /* Relocation type and symbol index */ + Elf32_Sword r_addend; /* Addend */ } Elf32_Rela; typedef struct { - Elf64_Addr r_offset; /* Address */ - Elf64_Xword r_info; /* Relocation type and symbol index */ - Elf64_Sxword r_addend; /* Addend */ + Elf64_Addr r_offset; /* Address */ + Elf64_Xword r_info; /* Relocation type and symbol index */ + Elf64_Sxword r_addend; /* Addend */ } Elf64_Rela; /* How to extract and insert information held in the r_info field. */ -#define ELF32_R_SYM(val) ((val) >> 8) -#define ELF32_R_TYPE(val) ((val) & 0xff) -#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) +#define ELF32_R_SYM(val) ((val) >> 8) +#define ELF32_R_TYPE(val) ((val) & 0xff) +#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) -#define ELF64_R_SYM(i) ((i) >> 32) -#define ELF64_R_TYPE(i) ((i) & 0xffffffff) -#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) +#define ELF64_R_SYM(i) ((i) >> 32) +#define ELF64_R_TYPE(i) ((i) & 0xffffffff) +#define ELF64_R_INFO(sym, type) ((((Elf64_Xword)(sym)) << 32) + (type)) /* Program segment header. */ typedef struct { - Elf32_Word p_type; /* Segment type */ - Elf32_Off p_offset; /* Segment file offset */ - Elf32_Addr p_vaddr; /* Segment virtual address */ - Elf32_Addr p_paddr; /* Segment physical address */ - Elf32_Word p_filesz; /* Segment size in file */ - Elf32_Word p_memsz; /* Segment size in memory */ - Elf32_Word p_flags; /* Segment flags */ - Elf32_Word p_align; /* Segment alignment */ + Elf32_Word p_type; /* Segment type */ + Elf32_Off p_offset; /* Segment file offset */ + Elf32_Addr p_vaddr; /* Segment virtual address */ + Elf32_Addr p_paddr; /* Segment physical address */ + Elf32_Word p_filesz; /* Segment size in file */ + Elf32_Word p_memsz; /* Segment size in memory */ + Elf32_Word p_flags; /* Segment flags */ + Elf32_Word p_align; /* Segment alignment */ } Elf32_Phdr; typedef struct { - Elf64_Word p_type; /* Segment type */ - Elf64_Word p_flags; /* Segment flags */ - Elf64_Off p_offset; /* Segment file offset */ - Elf64_Addr p_vaddr; /* Segment virtual address */ - Elf64_Addr p_paddr; /* Segment physical address */ - Elf64_Xword p_filesz; /* Segment size in file */ - Elf64_Xword p_memsz; /* Segment size in memory */ - Elf64_Xword p_align; /* Segment alignment */ + Elf64_Word p_type; /* Segment type */ + Elf64_Word p_flags; /* Segment flags */ + Elf64_Off p_offset; /* Segment file offset */ + Elf64_Addr p_vaddr; /* Segment virtual address */ + Elf64_Addr p_paddr; /* Segment physical address */ + Elf64_Xword p_filesz; /* Segment size in file */ + Elf64_Xword p_memsz; /* Segment size in memory */ + Elf64_Xword p_align; /* Segment alignment */ } Elf64_Phdr; /* Special value for e_phnum. This indicates that the real number of program headers is too large to fit into e_phnum. Instead the real value is in the field sh_info of section 0. */ -#define PN_XNUM 0xffff +#define PN_XNUM 0xffff /* Legal values for p_type (segment type). */ -#define PT_NULL 0 /* Program header table entry unused */ -#define PT_LOAD 1 /* Loadable program segment */ -#define PT_DYNAMIC 2 /* Dynamic linking information */ -#define PT_INTERP 3 /* Program interpreter */ -#define PT_NOTE 4 /* Auxiliary information */ -#define PT_SHLIB 5 /* Reserved */ -#define PT_PHDR 6 /* Entry for header table itself */ -#define PT_TLS 7 /* Thread-local storage segment */ -#define PT_NUM 8 /* Number of defined types */ -#define PT_LOOS 0x60000000 /* Start of OS-specific */ -#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */ -#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */ -#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */ -#define PT_GNU_PROPERTY 0x6474e553 /* GNU property */ -#define PT_LOSUNW 0x6ffffffa -#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */ -#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */ -#define PT_HISUNW 0x6fffffff -#define PT_HIOS 0x6fffffff /* End of OS-specific */ -#define PT_LOPROC 0x70000000 /* Start of processor-specific */ -#define PT_HIPROC 0x7fffffff /* End of processor-specific */ +#define PT_NULL 0 /* Program header table entry unused */ +#define PT_LOAD 1 /* Loadable program segment */ +#define PT_DYNAMIC 2 /* Dynamic linking information */ +#define PT_INTERP 3 /* Program interpreter */ +#define PT_NOTE 4 /* Auxiliary information */ +#define PT_SHLIB 5 /* Reserved */ +#define PT_PHDR 6 /* Entry for header table itself */ +#define PT_TLS 7 /* Thread-local storage segment */ +#define PT_NUM 8 /* Number of defined types */ +#define PT_LOOS 0x60000000 /* Start of OS-specific */ +#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */ +#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */ +#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */ +#define PT_GNU_PROPERTY 0x6474e553 /* GNU property */ +#define PT_LOSUNW 0x6ffffffa +#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */ +#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */ +#define PT_HISUNW 0x6fffffff +#define PT_HIOS 0x6fffffff /* End of OS-specific */ +#define PT_LOPROC 0x70000000 /* Start of processor-specific */ +#define PT_HIPROC 0x7fffffff /* End of processor-specific */ /* Legal values for p_flags (segment flags). */ -#define PF_X (1 << 0) /* Segment is executable */ -#define PF_W (1 << 1) /* Segment is writable */ -#define PF_R (1 << 2) /* Segment is readable */ -#define PF_MASKOS 0x0ff00000 /* OS-specific */ -#define PF_MASKPROC 0xf0000000 /* Processor-specific */ +#define PF_X (1 << 0) /* Segment is executable */ +#define PF_W (1 << 1) /* Segment is writable */ +#define PF_R (1 << 2) /* Segment is readable */ +#define PF_MASKOS 0x0ff00000 /* OS-specific */ +#define PF_MASKPROC 0xf0000000 /* Processor-specific */ /* Legal values for note segment descriptor types for core files. */ -#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */ -#define NT_PRFPREG 2 /* Contains copy of fpregset - struct. */ -#define NT_FPREGSET 2 /* Contains copy of fpregset struct */ -#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */ -#define NT_PRXREG 4 /* Contains copy of prxregset struct */ -#define NT_TASKSTRUCT 4 /* Contains copy of task structure */ -#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */ -#define NT_AUXV 6 /* Contains copy of auxv array */ -#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */ -#define NT_ASRS 8 /* Contains copy of asrset struct */ -#define NT_PSTATUS 10 /* Contains copy of pstatus struct */ -#define NT_PSINFO 13 /* Contains copy of psinfo struct */ -#define NT_PRCRED 14 /* Contains copy of prcred struct */ -#define NT_UTSNAME 15 /* Contains copy of utsname struct */ -#define NT_LWPSTATUS 16 /* Contains copy of lwpstatus struct */ -#define NT_LWPSINFO 17 /* Contains copy of lwpinfo struct */ -#define NT_PRFPXREG 20 /* Contains copy of fprxregset struct */ -#define NT_SIGINFO 0x53494749 /* Contains copy of siginfo_t, - size might increase */ -#define NT_FILE 0x46494c45 /* Contains information about mapped - files */ -#define NT_PRXFPREG 0x46e62b7f /* Contains copy of user_fxsr_struct */ -#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ -#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */ -#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ -#define NT_PPC_TAR 0x103 /* Target Address Register */ -#define NT_PPC_PPR 0x104 /* Program Priority Register */ -#define NT_PPC_DSCR 0x105 /* Data Stream Control Register */ -#define NT_PPC_EBB 0x106 /* Event Based Branch Registers */ -#define NT_PPC_PMU 0x107 /* Performance Monitor Registers */ -#define NT_PPC_TM_CGPR 0x108 /* TM checkpointed GPR Registers */ -#define NT_PPC_TM_CFPR 0x109 /* TM checkpointed FPR Registers */ -#define NT_PPC_TM_CVMX 0x10a /* TM checkpointed VMX Registers */ -#define NT_PPC_TM_CVSX 0x10b /* TM checkpointed VSX Registers */ -#define NT_PPC_TM_SPR 0x10c /* TM Special Purpose Registers */ -#define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address - Register */ -#define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority - Register */ -#define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control - Register */ -#define NT_PPC_PKEY 0x110 /* Memory Protection Keys - registers. */ -#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */ -#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */ -#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */ -#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */ -#define NT_S390_TIMER 0x301 /* s390 timer register */ -#define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */ -#define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */ -#define NT_S390_CTRS 0x304 /* s390 control registers */ -#define NT_S390_PREFIX 0x305 /* s390 prefix register */ -#define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */ -#define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */ -#define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */ -#define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15 - upper half. */ -#define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31. */ -#define NT_S390_GS_CB 0x30b /* s390 guarded storage registers. */ -#define NT_S390_GS_BC 0x30c /* s390 guarded storage - broadcast control block. */ -#define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation. */ -#define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */ -#define NT_ARM_TLS 0x401 /* ARM TLS register */ -#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */ -#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */ -#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */ -#define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension - registers */ -#define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication - code masks. */ -#define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication - address keys. */ -#define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication - generic key. */ -#define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* AArch64 tagged address - control. */ -#define NT_ARM_PAC_ENABLED_KEYS 0x40a /* AArch64 pointer authentication - enabled keys. */ -#define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note. */ -#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers. */ -#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode. */ -#define NT_MIPS_MSA 0x802 /* MIPS SIMD registers. */ +#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */ +#define NT_PRFPREG 2 /* Contains copy of fpregset \ + struct. */ +#define NT_FPREGSET 2 /* Contains copy of fpregset struct */ +#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */ +#define NT_PRXREG 4 /* Contains copy of prxregset struct */ +#define NT_TASKSTRUCT 4 /* Contains copy of task structure */ +#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */ +#define NT_AUXV 6 /* Contains copy of auxv array */ +#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */ +#define NT_ASRS 8 /* Contains copy of asrset struct */ +#define NT_PSTATUS 10 /* Contains copy of pstatus struct */ +#define NT_PSINFO 13 /* Contains copy of psinfo struct */ +#define NT_PRCRED 14 /* Contains copy of prcred struct */ +#define NT_UTSNAME 15 /* Contains copy of utsname struct */ +#define NT_LWPSTATUS 16 /* Contains copy of lwpstatus struct */ +#define NT_LWPSINFO 17 /* Contains copy of lwpinfo struct */ +#define NT_PRFPXREG 20 /* Contains copy of fprxregset struct */ +#define NT_SIGINFO 0x53494749 /* Contains copy of siginfo_t, \ + size might increase */ +#define NT_FILE 0x46494c45 /* Contains information about mapped \ + files */ +#define NT_PRXFPREG 0x46e62b7f /* Contains copy of user_fxsr_struct */ +#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ +#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */ +#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ +#define NT_PPC_TAR 0x103 /* Target Address Register */ +#define NT_PPC_PPR 0x104 /* Program Priority Register */ +#define NT_PPC_DSCR 0x105 /* Data Stream Control Register */ +#define NT_PPC_EBB 0x106 /* Event Based Branch Registers */ +#define NT_PPC_PMU 0x107 /* Performance Monitor Registers */ +#define NT_PPC_TM_CGPR 0x108 /* TM checkpointed GPR Registers */ +#define NT_PPC_TM_CFPR 0x109 /* TM checkpointed FPR Registers */ +#define NT_PPC_TM_CVMX 0x10a /* TM checkpointed VMX Registers */ +#define NT_PPC_TM_CVSX 0x10b /* TM checkpointed VSX Registers */ +#define NT_PPC_TM_SPR 0x10c /* TM Special Purpose Registers */ +#define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address \ + Register */ +#define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority \ + Register */ +#define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control \ + Register */ +#define NT_PPC_PKEY 0x110 /* Memory Protection Keys \ + registers. */ +#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */ +#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */ +#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */ +#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */ +#define NT_S390_TIMER 0x301 /* s390 timer register */ +#define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */ +#define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */ +#define NT_S390_CTRS 0x304 /* s390 control registers */ +#define NT_S390_PREFIX 0x305 /* s390 prefix register */ +#define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */ +#define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */ +#define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */ +#define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15 \ + upper half. */ +#define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31. */ +#define NT_S390_GS_CB 0x30b /* s390 guarded storage registers. */ +#define NT_S390_GS_BC 0x30c /* s390 guarded storage \ + broadcast control block. */ +#define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation. */ +#define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */ +#define NT_ARM_TLS 0x401 /* ARM TLS register */ +#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */ +#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */ +#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */ +#define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension \ + registers */ +#define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication \ + code masks. */ +#define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication \ + address keys. */ +#define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication \ + generic key. */ +#define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* AArch64 tagged address \ + control. */ +#define NT_ARM_PAC_ENABLED_KEYS 0x40a /* AArch64 pointer authentication \ + enabled keys. */ +#define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note. */ +#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers. */ +#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode. */ +#define NT_MIPS_MSA 0x802 /* MIPS SIMD registers. */ /* Legal values for the note segment descriptor types for object files. */ -#define NT_VERSION 1 /* Contains a version string. */ - +#define NT_VERSION 1 /* Contains a version string. */ /* Dynamic section entry. */ typedef struct { - Elf32_Sword d_tag; /* Dynamic entry type */ - union - { - Elf32_Word d_val; /* Integer value */ - Elf32_Addr d_ptr; /* Address value */ + Elf32_Sword d_tag; /* Dynamic entry type */ + union { + Elf32_Word d_val; /* Integer value */ + Elf32_Addr d_ptr; /* Address value */ } d_un; } Elf32_Dyn; typedef struct { - Elf64_Sxword d_tag; /* Dynamic entry type */ - union - { - Elf64_Xword d_val; /* Integer value */ - Elf64_Addr d_ptr; /* Address value */ + Elf64_Sxword d_tag; /* Dynamic entry type */ + union { + Elf64_Xword d_val; /* Integer value */ + Elf64_Addr d_ptr; /* Address value */ } d_un; } Elf64_Dyn; /* Legal values for d_tag (dynamic entry type). */ -#define DT_NULL 0 /* Marks end of dynamic section */ -#define DT_NEEDED 1 /* Name of needed library */ -#define DT_PLTRELSZ 2 /* Size in bytes of PLT relocs */ -#define DT_PLTGOT 3 /* Processor defined value */ -#define DT_HASH 4 /* Address of symbol hash table */ -#define DT_STRTAB 5 /* Address of string table */ -#define DT_SYMTAB 6 /* Address of symbol table */ -#define DT_RELA 7 /* Address of Rela relocs */ -#define DT_RELASZ 8 /* Total size of Rela relocs */ -#define DT_RELAENT 9 /* Size of one Rela reloc */ -#define DT_STRSZ 10 /* Size of string table */ -#define DT_SYMENT 11 /* Size of one symbol table entry */ -#define DT_INIT 12 /* Address of init function */ -#define DT_FINI 13 /* Address of termination function */ -#define DT_SONAME 14 /* Name of shared object */ -#define DT_RPATH 15 /* Library search path (deprecated) */ -#define DT_SYMBOLIC 16 /* Start symbol search here */ -#define DT_REL 17 /* Address of Rel relocs */ -#define DT_RELSZ 18 /* Total size of Rel relocs */ -#define DT_RELENT 19 /* Size of one Rel reloc */ -#define DT_PLTREL 20 /* Type of reloc in PLT */ -#define DT_DEBUG 21 /* For debugging; unspecified */ -#define DT_TEXTREL 22 /* Reloc might modify .text */ -#define DT_JMPREL 23 /* Address of PLT relocs */ -#define DT_BIND_NOW 24 /* Process relocations of object */ -#define DT_INIT_ARRAY 25 /* Array with addresses of init fct */ -#define DT_FINI_ARRAY 26 /* Array with addresses of fini fct */ -#define DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */ -#define DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */ -#define DT_RUNPATH 29 /* Library search path */ -#define DT_FLAGS 30 /* Flags for the object being loaded */ -#define DT_ENCODING 32 /* Start of encoded range */ -#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/ -#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */ -#define DT_SYMTAB_SHNDX 34 /* Address of SYMTAB_SHNDX section */ -#define DT_NUM 35 /* Number used */ -#define DT_LOOS 0x6000000d /* Start of OS-specific */ -#define DT_HIOS 0x6ffff000 /* End of OS-specific */ -#define DT_LOPROC 0x70000000 /* Start of processor-specific */ -#define DT_HIPROC 0x7fffffff /* End of processor-specific */ -#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */ +#define DT_NULL 0 /* Marks end of dynamic section */ +#define DT_NEEDED 1 /* Name of needed library */ +#define DT_PLTRELSZ 2 /* Size in bytes of PLT relocs */ +#define DT_PLTGOT 3 /* Processor defined value */ +#define DT_HASH 4 /* Address of symbol hash table */ +#define DT_STRTAB 5 /* Address of string table */ +#define DT_SYMTAB 6 /* Address of symbol table */ +#define DT_RELA 7 /* Address of Rela relocs */ +#define DT_RELASZ 8 /* Total size of Rela relocs */ +#define DT_RELAENT 9 /* Size of one Rela reloc */ +#define DT_STRSZ 10 /* Size of string table */ +#define DT_SYMENT 11 /* Size of one symbol table entry */ +#define DT_INIT 12 /* Address of init function */ +#define DT_FINI 13 /* Address of termination function */ +#define DT_SONAME 14 /* Name of shared object */ +#define DT_RPATH 15 /* Library search path (deprecated) */ +#define DT_SYMBOLIC 16 /* Start symbol search here */ +#define DT_REL 17 /* Address of Rel relocs */ +#define DT_RELSZ 18 /* Total size of Rel relocs */ +#define DT_RELENT 19 /* Size of one Rel reloc */ +#define DT_PLTREL 20 /* Type of reloc in PLT */ +#define DT_DEBUG 21 /* For debugging; unspecified */ +#define DT_TEXTREL 22 /* Reloc might modify .text */ +#define DT_JMPREL 23 /* Address of PLT relocs */ +#define DT_BIND_NOW 24 /* Process relocations of object */ +#define DT_INIT_ARRAY 25 /* Array with addresses of init fct */ +#define DT_FINI_ARRAY 26 /* Array with addresses of fini fct */ +#define DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */ +#define DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */ +#define DT_RUNPATH 29 /* Library search path */ +#define DT_FLAGS 30 /* Flags for the object being loaded */ +#define DT_ENCODING 32 /* Start of encoded range */ +#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/ +#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */ +#define DT_SYMTAB_SHNDX 34 /* Address of SYMTAB_SHNDX section */ +#define DT_NUM 35 /* Number used */ +#define DT_LOOS 0x6000000d /* Start of OS-specific */ +#define DT_HIOS 0x6ffff000 /* End of OS-specific */ +#define DT_LOPROC 0x70000000 /* Start of processor-specific */ +#define DT_HIPROC 0x7fffffff /* End of processor-specific */ +#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */ /* DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the Dyn.d_un.d_val field of the Elf*_Dyn structure. This follows Sun's approach. */ -#define DT_VALRNGLO 0x6ffffd00 -#define DT_GNU_PRELINKED 0x6ffffdf5 /* Prelinking timestamp */ -#define DT_GNU_CONFLICTSZ 0x6ffffdf6 /* Size of conflict section */ -#define DT_GNU_LIBLISTSZ 0x6ffffdf7 /* Size of library list */ -#define DT_CHECKSUM 0x6ffffdf8 -#define DT_PLTPADSZ 0x6ffffdf9 -#define DT_MOVEENT 0x6ffffdfa -#define DT_MOVESZ 0x6ffffdfb -#define DT_FEATURE_1 0x6ffffdfc /* Feature selection (DTF_*). */ -#define DT_POSFLAG_1 0x6ffffdfd /* Flags for DT_* entries, effecting - the following DT_* entry. */ -#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */ -#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */ -#define DT_VALRNGHI 0x6ffffdff -#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) /* Reverse order! */ -#define DT_VALNUM 12 +#define DT_VALRNGLO 0x6ffffd00 +#define DT_GNU_PRELINKED 0x6ffffdf5 /* Prelinking timestamp */ +#define DT_GNU_CONFLICTSZ 0x6ffffdf6 /* Size of conflict section */ +#define DT_GNU_LIBLISTSZ 0x6ffffdf7 /* Size of library list */ +#define DT_CHECKSUM 0x6ffffdf8 +#define DT_PLTPADSZ 0x6ffffdf9 +#define DT_MOVEENT 0x6ffffdfa +#define DT_MOVESZ 0x6ffffdfb +#define DT_FEATURE_1 0x6ffffdfc /* Feature selection (DTF_*). */ +#define DT_POSFLAG_1 0x6ffffdfd /* Flags for DT_* entries, effecting \ + the following DT_* entry. */ +#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */ +#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */ +#define DT_VALRNGHI 0x6ffffdff +#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) /* Reverse order! */ +#define DT_VALNUM 12 /* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the Dyn.d_un.d_ptr field of the Elf*_Dyn structure. If any adjustment is made to the ELF object after it has been built these entries will need to be adjusted. */ -#define DT_ADDRRNGLO 0x6ffffe00 -#define DT_GNU_HASH 0x6ffffef5 /* GNU-style hash table. */ -#define DT_TLSDESC_PLT 0x6ffffef6 -#define DT_TLSDESC_GOT 0x6ffffef7 -#define DT_GNU_CONFLICT 0x6ffffef8 /* Start of conflict section */ -#define DT_GNU_LIBLIST 0x6ffffef9 /* Library list */ -#define DT_CONFIG 0x6ffffefa /* Configuration information. */ -#define DT_DEPAUDIT 0x6ffffefb /* Dependency auditing. */ -#define DT_AUDIT 0x6ffffefc /* Object auditing. */ -#define DT_PLTPAD 0x6ffffefd /* PLT padding. */ -#define DT_MOVETAB 0x6ffffefe /* Move table. */ -#define DT_SYMINFO 0x6ffffeff /* Syminfo table. */ -#define DT_ADDRRNGHI 0x6ffffeff -#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) /* Reverse order! */ -#define DT_ADDRNUM 11 +#define DT_ADDRRNGLO 0x6ffffe00 +#define DT_GNU_HASH 0x6ffffef5 /* GNU-style hash table. */ +#define DT_TLSDESC_PLT 0x6ffffef6 +#define DT_TLSDESC_GOT 0x6ffffef7 +#define DT_GNU_CONFLICT 0x6ffffef8 /* Start of conflict section */ +#define DT_GNU_LIBLIST 0x6ffffef9 /* Library list */ +#define DT_CONFIG 0x6ffffefa /* Configuration information. */ +#define DT_DEPAUDIT 0x6ffffefb /* Dependency auditing. */ +#define DT_AUDIT 0x6ffffefc /* Object auditing. */ +#define DT_PLTPAD 0x6ffffefd /* PLT padding. */ +#define DT_MOVETAB 0x6ffffefe /* Move table. */ +#define DT_SYMINFO 0x6ffffeff /* Syminfo table. */ +#define DT_ADDRRNGHI 0x6ffffeff +#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) /* Reverse order! */ +#define DT_ADDRNUM 11 /* The versioning entry types. The next are defined as part of the GNU extension. */ -#define DT_VERSYM 0x6ffffff0 +#define DT_VERSYM 0x6ffffff0 -#define DT_RELACOUNT 0x6ffffff9 -#define DT_RELCOUNT 0x6ffffffa +#define DT_RELACOUNT 0x6ffffff9 +#define DT_RELCOUNT 0x6ffffffa /* These were chosen by Sun. */ -#define DT_FLAGS_1 0x6ffffffb /* State flags, see DF_1_* below. */ -#define DT_VERDEF 0x6ffffffc /* Address of version definition - table */ -#define DT_VERDEFNUM 0x6ffffffd /* Number of version definitions */ -#define DT_VERNEED 0x6ffffffe /* Address of table with needed - versions */ -#define DT_VERNEEDNUM 0x6fffffff /* Number of needed versions */ -#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */ -#define DT_VERSIONTAGNUM 16 +#define DT_FLAGS_1 0x6ffffffb /* State flags, see DF_1_* below. */ +#define DT_VERDEF 0x6ffffffc /* Address of version definition \ + table */ +#define DT_VERDEFNUM 0x6ffffffd /* Number of version definitions */ +#define DT_VERNEED 0x6ffffffe /* Address of table with needed \ + versions */ +#define DT_VERNEEDNUM 0x6fffffff /* Number of needed versions */ +#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */ +#define DT_VERSIONTAGNUM 16 /* Sun added these machine-independent extensions in the "processor-specific" range. Be compatible. */ -#define DT_AUXILIARY 0x7ffffffd /* Shared object to load before self */ -#define DT_FILTER 0x7fffffff /* Shared object to get values from */ -#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) -#define DT_EXTRANUM 3 +#define DT_AUXILIARY 0x7ffffffd /* Shared object to load before self */ +#define DT_FILTER 0x7fffffff /* Shared object to get values from */ +#define DT_EXTRATAGIDX(tag) ((Elf32_Word) - ((Elf32_Sword)(tag) << 1 >> 1) - 1) +#define DT_EXTRANUM 3 /* Values of `d_un.d_val' in the DT_FLAGS entry. */ -#define DF_ORIGIN 0x00000001 /* Object may use DF_ORIGIN */ -#define DF_SYMBOLIC 0x00000002 /* Symbol resolutions starts here */ -#define DF_TEXTREL 0x00000004 /* Object contains text relocations */ -#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */ -#define DF_STATIC_TLS 0x00000010 /* Module uses the static TLS model */ +#define DF_ORIGIN 0x00000001 /* Object may use DF_ORIGIN */ +#define DF_SYMBOLIC 0x00000002 /* Symbol resolutions starts here */ +#define DF_TEXTREL 0x00000004 /* Object contains text relocations */ +#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */ +#define DF_STATIC_TLS 0x00000010 /* Module uses the static TLS model */ /* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1 entry in the dynamic section. */ -#define DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */ -#define DF_1_GLOBAL 0x00000002 /* Set RTLD_GLOBAL for this object. */ -#define DF_1_GROUP 0x00000004 /* Set RTLD_GROUP for this object. */ -#define DF_1_NODELETE 0x00000008 /* Set RTLD_NODELETE for this object.*/ -#define DF_1_LOADFLTR 0x00000010 /* Trigger filtee loading at runtime.*/ -#define DF_1_INITFIRST 0x00000020 /* Set RTLD_INITFIRST for this object*/ -#define DF_1_NOOPEN 0x00000040 /* Set RTLD_NOOPEN for this object. */ -#define DF_1_ORIGIN 0x00000080 /* $ORIGIN must be handled. */ -#define DF_1_DIRECT 0x00000100 /* Direct binding enabled. */ -#define DF_1_TRANS 0x00000200 -#define DF_1_INTERPOSE 0x00000400 /* Object is used to interpose. */ -#define DF_1_NODEFLIB 0x00000800 /* Ignore default lib search path. */ -#define DF_1_NODUMP 0x00001000 /* Object can't be dldump'ed. */ -#define DF_1_CONFALT 0x00002000 /* Configuration alternative created.*/ -#define DF_1_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */ -#define DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */ -#define DF_1_DISPRELPND 0x00010000 /* Disp reloc applied at run-time. */ -#define DF_1_NODIRECT 0x00020000 /* Object has no-direct binding. */ -#define DF_1_IGNMULDEF 0x00040000 -#define DF_1_NOKSYMS 0x00080000 -#define DF_1_NOHDR 0x00100000 -#define DF_1_EDITED 0x00200000 /* Object is modified after built. */ -#define DF_1_NORELOC 0x00400000 -#define DF_1_SYMINTPOSE 0x00800000 /* Object has individual interposers. */ -#define DF_1_GLOBAUDIT 0x01000000 /* Global auditing required. */ -#define DF_1_SINGLETON 0x02000000 /* Singleton symbols are used. */ -#define DF_1_STUB 0x04000000 -#define DF_1_PIE 0x08000000 -#define DF_1_KMOD 0x10000000 -#define DF_1_WEAKFILTER 0x20000000 -#define DF_1_NOCOMMON 0x40000000 +#define DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */ +#define DF_1_GLOBAL 0x00000002 /* Set RTLD_GLOBAL for this object. */ +#define DF_1_GROUP 0x00000004 /* Set RTLD_GROUP for this object. */ +#define DF_1_NODELETE 0x00000008 /* Set RTLD_NODELETE for this object.*/ +#define DF_1_LOADFLTR 0x00000010 /* Trigger filtee loading at runtime.*/ +#define DF_1_INITFIRST 0x00000020 /* Set RTLD_INITFIRST for this object*/ +#define DF_1_NOOPEN 0x00000040 /* Set RTLD_NOOPEN for this object. */ +#define DF_1_ORIGIN 0x00000080 /* $ORIGIN must be handled. */ +#define DF_1_DIRECT 0x00000100 /* Direct binding enabled. */ +#define DF_1_TRANS 0x00000200 +#define DF_1_INTERPOSE 0x00000400 /* Object is used to interpose. */ +#define DF_1_NODEFLIB 0x00000800 /* Ignore default lib search path. */ +#define DF_1_NODUMP 0x00001000 /* Object can't be dldump'ed. */ +#define DF_1_CONFALT 0x00002000 /* Configuration alternative created.*/ +#define DF_1_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */ +#define DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */ +#define DF_1_DISPRELPND 0x00010000 /* Disp reloc applied at run-time. */ +#define DF_1_NODIRECT 0x00020000 /* Object has no-direct binding. */ +#define DF_1_IGNMULDEF 0x00040000 +#define DF_1_NOKSYMS 0x00080000 +#define DF_1_NOHDR 0x00100000 +#define DF_1_EDITED 0x00200000 /* Object is modified after built. */ +#define DF_1_NORELOC 0x00400000 +#define DF_1_SYMINTPOSE 0x00800000 /* Object has individual interposers. */ +#define DF_1_GLOBAUDIT 0x01000000 /* Global auditing required. */ +#define DF_1_SINGLETON 0x02000000 /* Singleton symbols are used. */ +#define DF_1_STUB 0x04000000 +#define DF_1_PIE 0x08000000 +#define DF_1_KMOD 0x10000000 +#define DF_1_WEAKFILTER 0x20000000 +#define DF_1_NOCOMMON 0x40000000 /* Flags for the feature selection in DT_FEATURE_1. */ -#define DTF_1_PARINIT 0x00000001 -#define DTF_1_CONFEXP 0x00000002 +#define DTF_1_PARINIT 0x00000001 +#define DTF_1_CONFEXP 0x00000002 /* Flags in the DT_POSFLAG_1 entry effecting only the next DT_* entry. */ -#define DF_P1_LAZYLOAD 0x00000001 /* Lazyload following object. */ -#define DF_P1_GROUPPERM 0x00000002 /* Symbols from next object are not - generally available. */ +#define DF_P1_LAZYLOAD 0x00000001 /* Lazyload following object. */ +#define DF_P1_GROUPPERM 0x00000002 /* Symbols from next object are not \ + generally available. */ /* Version definition sections. */ typedef struct { - Elf32_Half vd_version; /* Version revision */ - Elf32_Half vd_flags; /* Version information */ - Elf32_Half vd_ndx; /* Version Index */ - Elf32_Half vd_cnt; /* Number of associated aux entries */ - Elf32_Word vd_hash; /* Version name hash value */ - Elf32_Word vd_aux; /* Offset in bytes to verdaux array */ - Elf32_Word vd_next; /* Offset in bytes to next verdef - entry */ + Elf32_Half vd_version; /* Version revision */ + Elf32_Half vd_flags; /* Version information */ + Elf32_Half vd_ndx; /* Version Index */ + Elf32_Half vd_cnt; /* Number of associated aux entries */ + Elf32_Word vd_hash; /* Version name hash value */ + Elf32_Word vd_aux; /* Offset in bytes to verdaux array */ + Elf32_Word vd_next; /* Offset in bytes to next verdef + entry */ } Elf32_Verdef; typedef struct { - Elf64_Half vd_version; /* Version revision */ - Elf64_Half vd_flags; /* Version information */ - Elf64_Half vd_ndx; /* Version Index */ - Elf64_Half vd_cnt; /* Number of associated aux entries */ - Elf64_Word vd_hash; /* Version name hash value */ - Elf64_Word vd_aux; /* Offset in bytes to verdaux array */ - Elf64_Word vd_next; /* Offset in bytes to next verdef - entry */ + Elf64_Half vd_version; /* Version revision */ + Elf64_Half vd_flags; /* Version information */ + Elf64_Half vd_ndx; /* Version Index */ + Elf64_Half vd_cnt; /* Number of associated aux entries */ + Elf64_Word vd_hash; /* Version name hash value */ + Elf64_Word vd_aux; /* Offset in bytes to verdaux array */ + Elf64_Word vd_next; /* Offset in bytes to next verdef + entry */ } Elf64_Verdef; - /* Legal values for vd_version (version revision). */ -#define VER_DEF_NONE 0 /* No version */ -#define VER_DEF_CURRENT 1 /* Current version */ -#define VER_DEF_NUM 2 /* Given version number */ +#define VER_DEF_NONE 0 /* No version */ +#define VER_DEF_CURRENT 1 /* Current version */ +#define VER_DEF_NUM 2 /* Given version number */ /* Legal values for vd_flags (version information flags). */ -#define VER_FLG_BASE 0x1 /* Version definition of file itself */ -#define VER_FLG_WEAK 0x2 /* Weak version identifier */ +#define VER_FLG_BASE 0x1 /* Version definition of file itself */ +#define VER_FLG_WEAK 0x2 /* Weak version identifier */ /* Versym symbol index values. */ -#define VER_NDX_LOCAL 0 /* Symbol is local. */ -#define VER_NDX_GLOBAL 1 /* Symbol is global. */ -#define VER_NDX_LORESERVE 0xff00 /* Beginning of reserved entries. */ -#define VER_NDX_ELIMINATE 0xff01 /* Symbol is to be eliminated. */ +#define VER_NDX_LOCAL 0 /* Symbol is local. */ +#define VER_NDX_GLOBAL 1 /* Symbol is global. */ +#define VER_NDX_LORESERVE 0xff00 /* Beginning of reserved entries. */ +#define VER_NDX_ELIMINATE 0xff01 /* Symbol is to be eliminated. */ /* Auxiliary version information. */ typedef struct { - Elf32_Word vda_name; /* Version or dependency names */ - Elf32_Word vda_next; /* Offset in bytes to next verdaux - entry */ + Elf32_Word vda_name; /* Version or dependency names */ + Elf32_Word vda_next; /* Offset in bytes to next verdaux + entry */ } Elf32_Verdaux; typedef struct { - Elf64_Word vda_name; /* Version or dependency names */ - Elf64_Word vda_next; /* Offset in bytes to next verdaux - entry */ + Elf64_Word vda_name; /* Version or dependency names */ + Elf64_Word vda_next; /* Offset in bytes to next verdaux + entry */ } Elf64_Verdaux; - /* Version dependency section. */ typedef struct { - Elf32_Half vn_version; /* Version of structure */ - Elf32_Half vn_cnt; /* Number of associated aux entries */ - Elf32_Word vn_file; /* Offset of filename for this - dependency */ - Elf32_Word vn_aux; /* Offset in bytes to vernaux array */ - Elf32_Word vn_next; /* Offset in bytes to next verneed - entry */ + Elf32_Half vn_version; /* Version of structure */ + Elf32_Half vn_cnt; /* Number of associated aux entries */ + Elf32_Word vn_file; /* Offset of filename for this + dependency */ + Elf32_Word vn_aux; /* Offset in bytes to vernaux array */ + Elf32_Word vn_next; /* Offset in bytes to next verneed + entry */ } Elf32_Verneed; typedef struct { - Elf64_Half vn_version; /* Version of structure */ - Elf64_Half vn_cnt; /* Number of associated aux entries */ - Elf64_Word vn_file; /* Offset of filename for this - dependency */ - Elf64_Word vn_aux; /* Offset in bytes to vernaux array */ - Elf64_Word vn_next; /* Offset in bytes to next verneed - entry */ + Elf64_Half vn_version; /* Version of structure */ + Elf64_Half vn_cnt; /* Number of associated aux entries */ + Elf64_Word vn_file; /* Offset of filename for this + dependency */ + Elf64_Word vn_aux; /* Offset in bytes to vernaux array */ + Elf64_Word vn_next; /* Offset in bytes to next verneed + entry */ } Elf64_Verneed; - /* Legal values for vn_version (version revision). */ -#define VER_NEED_NONE 0 /* No version */ -#define VER_NEED_CURRENT 1 /* Current version */ -#define VER_NEED_NUM 2 /* Given version number */ +#define VER_NEED_NONE 0 /* No version */ +#define VER_NEED_CURRENT 1 /* Current version */ +#define VER_NEED_NUM 2 /* Given version number */ /* Auxiliary needed version information. */ typedef struct { - Elf32_Word vna_hash; /* Hash value of dependency name */ - Elf32_Half vna_flags; /* Dependency specific information */ - Elf32_Half vna_other; /* Unused */ - Elf32_Word vna_name; /* Dependency name string offset */ - Elf32_Word vna_next; /* Offset in bytes to next vernaux - entry */ + Elf32_Word vna_hash; /* Hash value of dependency name */ + Elf32_Half vna_flags; /* Dependency specific information */ + Elf32_Half vna_other; /* Unused */ + Elf32_Word vna_name; /* Dependency name string offset */ + Elf32_Word vna_next; /* Offset in bytes to next vernaux + entry */ } Elf32_Vernaux; typedef struct { - Elf64_Word vna_hash; /* Hash value of dependency name */ - Elf64_Half vna_flags; /* Dependency specific information */ - Elf64_Half vna_other; /* Unused */ - Elf64_Word vna_name; /* Dependency name string offset */ - Elf64_Word vna_next; /* Offset in bytes to next vernaux - entry */ + Elf64_Word vna_hash; /* Hash value of dependency name */ + Elf64_Half vna_flags; /* Dependency specific information */ + Elf64_Half vna_other; /* Unused */ + Elf64_Word vna_name; /* Dependency name string offset */ + Elf64_Word vna_next; /* Offset in bytes to next vernaux + entry */ } Elf64_Vernaux; - /* Legal values for vna_flags. */ -#define VER_FLG_WEAK 0x2 /* Weak version identifier */ - +#define VER_FLG_WEAK 0x2 /* Weak version identifier */ /* Auxiliary vector. */ @@ -1137,135 +1124,132 @@ typedef struct typedef struct { - uint32_t a_type; /* Entry type */ - union - { - uint32_t a_val; /* Integer value */ - /* We use to have pointer elements added here. We cannot do that, - though, since it does not work when using 32-bit definitions - on 64-bit platforms and vice versa. */ + uint32_t a_type; /* Entry type */ + union { + uint32_t a_val; /* Integer value */ + /* We use to have pointer elements added here. We cannot do that, + though, since it does not work when using 32-bit definitions + on 64-bit platforms and vice versa. */ } a_un; } Elf32_auxv_t; typedef struct { - uint64_t a_type; /* Entry type */ - union - { - uint64_t a_val; /* Integer value */ - /* We use to have pointer elements added here. We cannot do that, - though, since it does not work when using 32-bit definitions - on 64-bit platforms and vice versa. */ + uint64_t a_type; /* Entry type */ + union { + uint64_t a_val; /* Integer value */ + /* We use to have pointer elements added here. We cannot do that, + though, since it does not work when using 32-bit definitions + on 64-bit platforms and vice versa. */ } a_un; } Elf64_auxv_t; /* Legal values for a_type (entry type). */ -#define AT_NULL 0 /* End of vector */ -#define AT_IGNORE 1 /* Entry should be ignored */ -#define AT_EXECFD 2 /* File descriptor of program */ -#define AT_PHDR 3 /* Program headers for program */ -#define AT_PHENT 4 /* Size of program header entry */ -#define AT_PHNUM 5 /* Number of program headers */ -#define AT_PAGESZ 6 /* System page size */ -#define AT_BASE 7 /* Base address of interpreter */ -#define AT_FLAGS 8 /* Flags */ -#define AT_ENTRY 9 /* Entry point of program */ -#define AT_NOTELF 10 /* Program is not ELF */ -#define AT_UID 11 /* Real uid */ -#define AT_EUID 12 /* Effective uid */ -#define AT_GID 13 /* Real gid */ -#define AT_EGID 14 /* Effective gid */ -#define AT_CLKTCK 17 /* Frequency of times() */ +#define AT_NULL 0 /* End of vector */ +#define AT_IGNORE 1 /* Entry should be ignored */ +#define AT_EXECFD 2 /* File descriptor of program */ +#define AT_PHDR 3 /* Program headers for program */ +#define AT_PHENT 4 /* Size of program header entry */ +#define AT_PHNUM 5 /* Number of program headers */ +#define AT_PAGESZ 6 /* System page size */ +#define AT_BASE 7 /* Base address of interpreter */ +#define AT_FLAGS 8 /* Flags */ +#define AT_ENTRY 9 /* Entry point of program */ +#define AT_NOTELF 10 /* Program is not ELF */ +#define AT_UID 11 /* Real uid */ +#define AT_EUID 12 /* Effective uid */ +#define AT_GID 13 /* Real gid */ +#define AT_EGID 14 /* Effective gid */ +#define AT_CLKTCK 17 /* Frequency of times() */ /* Some more special a_type values describing the hardware. */ -#define AT_PLATFORM 15 /* String identifying platform. */ -#define AT_HWCAP 16 /* Machine-dependent hints about - processor capabilities. */ +#define AT_PLATFORM 15 /* String identifying platform. */ +#define AT_HWCAP 16 /* Machine-dependent hints about \ + processor capabilities. */ /* This entry gives some information about the FPU initialization performed by the kernel. */ -#define AT_FPUCW 18 /* Used FPU control word. */ +#define AT_FPUCW 18 /* Used FPU control word. */ /* Cache block sizes. */ -#define AT_DCACHEBSIZE 19 /* Data cache block size. */ -#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */ -#define AT_UCACHEBSIZE 21 /* Unified cache block size. */ +#define AT_DCACHEBSIZE 19 /* Data cache block size. */ +#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */ +#define AT_UCACHEBSIZE 21 /* Unified cache block size. */ /* A special ignored value for PPC, used by the kernel to control the interpretation of the AUXV. Must be > 16. */ -#define AT_IGNOREPPC 22 /* Entry should be ignored. */ +#define AT_IGNOREPPC 22 /* Entry should be ignored. */ -#define AT_SECURE 23 /* Boolean, was exec setuid-like? */ +#define AT_SECURE 23 /* Boolean, was exec setuid-like? */ -#define AT_BASE_PLATFORM 24 /* String identifying real platforms.*/ +#define AT_BASE_PLATFORM 24 /* String identifying real platforms.*/ -#define AT_RANDOM 25 /* Address of 16 random bytes. */ +#define AT_RANDOM 25 /* Address of 16 random bytes. */ -#define AT_HWCAP2 26 /* More machine-dependent hints about - processor capabilities. */ +#define AT_HWCAP2 26 /* More machine-dependent hints about \ + processor capabilities. */ -#define AT_EXECFN 31 /* Filename of executable. */ +#define AT_EXECFN 31 /* Filename of executable. */ /* Pointer to the global system page used for system calls and other nice things. */ -#define AT_SYSINFO 32 -#define AT_SYSINFO_EHDR 33 +#define AT_SYSINFO 32 +#define AT_SYSINFO_EHDR 33 /* Shapes of the caches. Bits 0-3 contains associativity; bits 4-7 contains log2 of line size; mask those to get cache size. */ -#define AT_L1I_CACHESHAPE 34 -#define AT_L1D_CACHESHAPE 35 -#define AT_L2_CACHESHAPE 36 -#define AT_L3_CACHESHAPE 37 +#define AT_L1I_CACHESHAPE 34 +#define AT_L1D_CACHESHAPE 35 +#define AT_L2_CACHESHAPE 36 +#define AT_L3_CACHESHAPE 37 /* Shapes of the caches, with more room to describe them. *GEOMETRY are comprised of cache line size in bytes in the bottom 16 bits and the cache associativity in the next 16 bits. */ -#define AT_L1I_CACHESIZE 40 -#define AT_L1I_CACHEGEOMETRY 41 -#define AT_L1D_CACHESIZE 42 -#define AT_L1D_CACHEGEOMETRY 43 -#define AT_L2_CACHESIZE 44 -#define AT_L2_CACHEGEOMETRY 45 -#define AT_L3_CACHESIZE 46 -#define AT_L3_CACHEGEOMETRY 47 +#define AT_L1I_CACHESIZE 40 +#define AT_L1I_CACHEGEOMETRY 41 +#define AT_L1D_CACHESIZE 42 +#define AT_L1D_CACHEGEOMETRY 43 +#define AT_L2_CACHESIZE 44 +#define AT_L2_CACHEGEOMETRY 45 +#define AT_L3_CACHESIZE 46 +#define AT_L3_CACHEGEOMETRY 47 -#define AT_MINSIGSTKSZ 51 /* Stack needed for signal delivery */ +#define AT_MINSIGSTKSZ 51 /* Stack needed for signal delivery */ /* Note section contents. Each entry in the note section begins with a header of a fixed form. */ typedef struct { - Elf32_Word n_namesz; /* Length of the note's name. */ - Elf32_Word n_descsz; /* Length of the note's descriptor. */ - Elf32_Word n_type; /* Type of the note. */ + Elf32_Word n_namesz; /* Length of the note's name. */ + Elf32_Word n_descsz; /* Length of the note's descriptor. */ + Elf32_Word n_type; /* Type of the note. */ } Elf32_Nhdr; typedef struct { - Elf64_Word n_namesz; /* Length of the note's name. */ - Elf64_Word n_descsz; /* Length of the note's descriptor. */ - Elf64_Word n_type; /* Type of the note. */ + Elf64_Word n_namesz; /* Length of the note's name. */ + Elf64_Word n_descsz; /* Length of the note's descriptor. */ + Elf64_Word n_type; /* Type of the note. */ } Elf64_Nhdr; /* Known names of notes. */ /* Solaris entries in the note section have this name. */ -#define ELF_NOTE_SOLARIS "SUNW Solaris" +#define ELF_NOTE_SOLARIS "SUNW Solaris" /* Note entries for GNU systems have this name. */ -#define ELF_NOTE_GNU "GNU" +#define ELF_NOTE_GNU "GNU" /* Note entries for freedesktop.org have this name. */ -#define ELF_NOTE_FDO "FDO" +#define ELF_NOTE_FDO "FDO" /* Defined types of notes for Solaris. */ /* Value of descriptor (one word) is desired pagesize for the binary. */ -#define ELF_NOTE_PAGESIZE_HINT 1 - +#define ELF_NOTE_PAGESIZE_HINT 1 /* Defined note types for GNU systems. */ @@ -1275,15 +1259,15 @@ typedef struct word 2: minor version of the ABI word 3: subminor version of the ABI */ -#define NT_GNU_ABI_TAG 1 -#define ELF_NOTE_ABI NT_GNU_ABI_TAG /* Old name. */ +#define NT_GNU_ABI_TAG 1 +#define ELF_NOTE_ABI NT_GNU_ABI_TAG /* Old name. */ /* Known OSes. These values can appear in word 0 of an NT_GNU_ABI_TAG note section entry. */ -#define ELF_NOTE_OS_LINUX 0 -#define ELF_NOTE_OS_GNU 1 -#define ELF_NOTE_OS_SOLARIS2 2 -#define ELF_NOTE_OS_FREEBSD 3 +#define ELF_NOTE_OS_LINUX 0 +#define ELF_NOTE_OS_GNU 1 +#define ELF_NOTE_OS_SOLARIS2 2 +#define ELF_NOTE_OS_FREEBSD 3 /* Synthetic hwcap information. The descriptor begins with two words: word 0: number of entries @@ -1291,14 +1275,14 @@ typedef struct Then follow variable-length entries, one byte followed by a '\0'-terminated hwcap name string. The byte gives the bit number to test if enabled, (1U << bit) & bitmask. */ -#define NT_GNU_HWCAP 2 +#define NT_GNU_HWCAP 2 /* Build ID bits as generated by ld --build-id. The descriptor consists of any nonzero number of bytes. */ -#define NT_GNU_BUILD_ID 3 +#define NT_GNU_BUILD_ID 3 /* Version note generated by GNU gold containing a version string. */ -#define NT_GNU_GOLD_VERSION 4 +#define NT_GNU_GOLD_VERSION 4 /* Program property. */ #define NT_GNU_PROPERTY_TYPE_0 5 @@ -1313,735 +1297,731 @@ typedef struct /* Values used in GNU .note.gnu.property notes (NT_GNU_PROPERTY_TYPE_0). */ /* Stack size. */ -#define GNU_PROPERTY_STACK_SIZE 1 +#define GNU_PROPERTY_STACK_SIZE 1 /* No copy relocation on protected data symbol. */ -#define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2 +#define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2 /* A 4-byte unsigned integer property: A bit is set if it is set in all relocatable inputs. */ -#define GNU_PROPERTY_UINT32_AND_LO 0xb0000000 -#define GNU_PROPERTY_UINT32_AND_HI 0xb0007fff +#define GNU_PROPERTY_UINT32_AND_LO 0xb0000000 +#define GNU_PROPERTY_UINT32_AND_HI 0xb0007fff /* A 4-byte unsigned integer property: A bit is set if it is set in any relocatable inputs. */ -#define GNU_PROPERTY_UINT32_OR_LO 0xb0008000 -#define GNU_PROPERTY_UINT32_OR_HI 0xb000ffff +#define GNU_PROPERTY_UINT32_OR_LO 0xb0008000 +#define GNU_PROPERTY_UINT32_OR_HI 0xb000ffff /* The needed properties by the object file. */ -#define GNU_PROPERTY_1_NEEDED GNU_PROPERTY_UINT32_OR_LO +#define GNU_PROPERTY_1_NEEDED GNU_PROPERTY_UINT32_OR_LO /* Set if the object file requires canonical function pointers and cannot be used with copy relocation. */ #define GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS (1U << 0) /* Processor-specific semantics, lo */ -#define GNU_PROPERTY_LOPROC 0xc0000000 +#define GNU_PROPERTY_LOPROC 0xc0000000 /* Processor-specific semantics, hi */ -#define GNU_PROPERTY_HIPROC 0xdfffffff +#define GNU_PROPERTY_HIPROC 0xdfffffff /* Application-specific semantics, lo */ -#define GNU_PROPERTY_LOUSER 0xe0000000 +#define GNU_PROPERTY_LOUSER 0xe0000000 /* Application-specific semantics, hi */ -#define GNU_PROPERTY_HIUSER 0xffffffff +#define GNU_PROPERTY_HIUSER 0xffffffff /* AArch64 specific GNU properties. */ -#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc0000000 +#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc0000000 -#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0) -#define GNU_PROPERTY_AARCH64_FEATURE_1_PAC (1U << 1) +#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0) +#define GNU_PROPERTY_AARCH64_FEATURE_1_PAC (1U << 1) /* The x86 instruction sets indicated by the corresponding bits are used in program. Their support in the hardware is optional. */ -#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002 +#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002 /* The x86 instruction sets indicated by the corresponding bits are used in program and they must be supported by the hardware. */ -#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002 +#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002 /* X86 processor-specific features used in program. */ -#define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002 +#define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002 /* GNU_PROPERTY_X86_ISA_1_BASELINE: CMOV, CX8 (cmpxchg8b), FPU (fld), MMX, OSFXSR (fxsave), SCE (syscall), SSE and SSE2. */ -#define GNU_PROPERTY_X86_ISA_1_BASELINE (1U << 0) +#define GNU_PROPERTY_X86_ISA_1_BASELINE (1U << 0) /* GNU_PROPERTY_X86_ISA_1_V2: GNU_PROPERTY_X86_ISA_1_BASELINE, CMPXCHG16B (cmpxchg16b), LAHF-SAHF (lahf), POPCNT (popcnt), SSE3, SSSE3, SSE4.1 and SSE4.2. */ -#define GNU_PROPERTY_X86_ISA_1_V2 (1U << 1) +#define GNU_PROPERTY_X86_ISA_1_V2 (1U << 1) /* GNU_PROPERTY_X86_ISA_1_V3: GNU_PROPERTY_X86_ISA_1_V2, AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE. */ -#define GNU_PROPERTY_X86_ISA_1_V3 (1U << 2) +#define GNU_PROPERTY_X86_ISA_1_V3 (1U << 2) /* GNU_PROPERTY_X86_ISA_1_V4: GNU_PROPERTY_X86_ISA_1_V3, AVX512F, AVX512BW, AVX512CD, AVX512DQ and AVX512VL. */ -#define GNU_PROPERTY_X86_ISA_1_V4 (1U << 3) +#define GNU_PROPERTY_X86_ISA_1_V4 (1U << 3) /* This indicates that all executable sections are compatible with IBT. */ -#define GNU_PROPERTY_X86_FEATURE_1_IBT (1U << 0) +#define GNU_PROPERTY_X86_FEATURE_1_IBT (1U << 0) /* This indicates that all executable sections are compatible with SHSTK. */ -#define GNU_PROPERTY_X86_FEATURE_1_SHSTK (1U << 1) +#define GNU_PROPERTY_X86_FEATURE_1_SHSTK (1U << 1) /* Move records. */ typedef struct { - Elf32_Xword m_value; /* Symbol value. */ - Elf32_Word m_info; /* Size and index. */ - Elf32_Word m_poffset; /* Symbol offset. */ - Elf32_Half m_repeat; /* Repeat count. */ - Elf32_Half m_stride; /* Stride info. */ + Elf32_Xword m_value; /* Symbol value. */ + Elf32_Word m_info; /* Size and index. */ + Elf32_Word m_poffset; /* Symbol offset. */ + Elf32_Half m_repeat; /* Repeat count. */ + Elf32_Half m_stride; /* Stride info. */ } Elf32_Move; typedef struct { - Elf64_Xword m_value; /* Symbol value. */ - Elf64_Xword m_info; /* Size and index. */ - Elf64_Xword m_poffset; /* Symbol offset. */ - Elf64_Half m_repeat; /* Repeat count. */ - Elf64_Half m_stride; /* Stride info. */ + Elf64_Xword m_value; /* Symbol value. */ + Elf64_Xword m_info; /* Size and index. */ + Elf64_Xword m_poffset; /* Symbol offset. */ + Elf64_Half m_repeat; /* Repeat count. */ + Elf64_Half m_stride; /* Stride info. */ } Elf64_Move; /* Macro to construct move records. */ -#define ELF32_M_SYM(info) ((info) >> 8) -#define ELF32_M_SIZE(info) ((unsigned char) (info)) -#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) - -#define ELF64_M_SYM(info) ELF32_M_SYM (info) -#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) -#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) +#define ELF32_M_SYM(info) ((info) >> 8) +#define ELF32_M_SIZE(info) ((unsigned char)(info)) +#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char)(size)) +#define ELF64_M_SYM(info) ELF32_M_SYM(info) +#define ELF64_M_SIZE(info) ELF32_M_SIZE(info) +#define ELF64_M_INFO(sym, size) ELF32_M_INFO(sym, size) /* Motorola 68k specific definitions. */ /* Values for Elf32_Ehdr.e_flags. */ -#define EF_CPU32 0x00810000 +#define EF_CPU32 0x00810000 /* m68k relocs. */ -#define R_68K_NONE 0 /* No reloc */ -#define R_68K_32 1 /* Direct 32 bit */ -#define R_68K_16 2 /* Direct 16 bit */ -#define R_68K_8 3 /* Direct 8 bit */ -#define R_68K_PC32 4 /* PC relative 32 bit */ -#define R_68K_PC16 5 /* PC relative 16 bit */ -#define R_68K_PC8 6 /* PC relative 8 bit */ -#define R_68K_GOT32 7 /* 32 bit PC relative GOT entry */ -#define R_68K_GOT16 8 /* 16 bit PC relative GOT entry */ -#define R_68K_GOT8 9 /* 8 bit PC relative GOT entry */ -#define R_68K_GOT32O 10 /* 32 bit GOT offset */ -#define R_68K_GOT16O 11 /* 16 bit GOT offset */ -#define R_68K_GOT8O 12 /* 8 bit GOT offset */ -#define R_68K_PLT32 13 /* 32 bit PC relative PLT address */ -#define R_68K_PLT16 14 /* 16 bit PC relative PLT address */ -#define R_68K_PLT8 15 /* 8 bit PC relative PLT address */ -#define R_68K_PLT32O 16 /* 32 bit PLT offset */ -#define R_68K_PLT16O 17 /* 16 bit PLT offset */ -#define R_68K_PLT8O 18 /* 8 bit PLT offset */ -#define R_68K_COPY 19 /* Copy symbol at runtime */ -#define R_68K_GLOB_DAT 20 /* Create GOT entry */ -#define R_68K_JMP_SLOT 21 /* Create PLT entry */ -#define R_68K_RELATIVE 22 /* Adjust by program base */ -#define R_68K_TLS_GD32 25 /* 32 bit GOT offset for GD */ -#define R_68K_TLS_GD16 26 /* 16 bit GOT offset for GD */ -#define R_68K_TLS_GD8 27 /* 8 bit GOT offset for GD */ -#define R_68K_TLS_LDM32 28 /* 32 bit GOT offset for LDM */ -#define R_68K_TLS_LDM16 29 /* 16 bit GOT offset for LDM */ -#define R_68K_TLS_LDM8 30 /* 8 bit GOT offset for LDM */ -#define R_68K_TLS_LDO32 31 /* 32 bit module-relative offset */ -#define R_68K_TLS_LDO16 32 /* 16 bit module-relative offset */ -#define R_68K_TLS_LDO8 33 /* 8 bit module-relative offset */ -#define R_68K_TLS_IE32 34 /* 32 bit GOT offset for IE */ -#define R_68K_TLS_IE16 35 /* 16 bit GOT offset for IE */ -#define R_68K_TLS_IE8 36 /* 8 bit GOT offset for IE */ -#define R_68K_TLS_LE32 37 /* 32 bit offset relative to - static TLS block */ -#define R_68K_TLS_LE16 38 /* 16 bit offset relative to - static TLS block */ -#define R_68K_TLS_LE8 39 /* 8 bit offset relative to - static TLS block */ -#define R_68K_TLS_DTPMOD32 40 /* 32 bit module number */ -#define R_68K_TLS_DTPREL32 41 /* 32 bit module-relative offset */ -#define R_68K_TLS_TPREL32 42 /* 32 bit TP-relative offset */ +#define R_68K_NONE 0 /* No reloc */ +#define R_68K_32 1 /* Direct 32 bit */ +#define R_68K_16 2 /* Direct 16 bit */ +#define R_68K_8 3 /* Direct 8 bit */ +#define R_68K_PC32 4 /* PC relative 32 bit */ +#define R_68K_PC16 5 /* PC relative 16 bit */ +#define R_68K_PC8 6 /* PC relative 8 bit */ +#define R_68K_GOT32 7 /* 32 bit PC relative GOT entry */ +#define R_68K_GOT16 8 /* 16 bit PC relative GOT entry */ +#define R_68K_GOT8 9 /* 8 bit PC relative GOT entry */ +#define R_68K_GOT32O 10 /* 32 bit GOT offset */ +#define R_68K_GOT16O 11 /* 16 bit GOT offset */ +#define R_68K_GOT8O 12 /* 8 bit GOT offset */ +#define R_68K_PLT32 13 /* 32 bit PC relative PLT address */ +#define R_68K_PLT16 14 /* 16 bit PC relative PLT address */ +#define R_68K_PLT8 15 /* 8 bit PC relative PLT address */ +#define R_68K_PLT32O 16 /* 32 bit PLT offset */ +#define R_68K_PLT16O 17 /* 16 bit PLT offset */ +#define R_68K_PLT8O 18 /* 8 bit PLT offset */ +#define R_68K_COPY 19 /* Copy symbol at runtime */ +#define R_68K_GLOB_DAT 20 /* Create GOT entry */ +#define R_68K_JMP_SLOT 21 /* Create PLT entry */ +#define R_68K_RELATIVE 22 /* Adjust by program base */ +#define R_68K_TLS_GD32 25 /* 32 bit GOT offset for GD */ +#define R_68K_TLS_GD16 26 /* 16 bit GOT offset for GD */ +#define R_68K_TLS_GD8 27 /* 8 bit GOT offset for GD */ +#define R_68K_TLS_LDM32 28 /* 32 bit GOT offset for LDM */ +#define R_68K_TLS_LDM16 29 /* 16 bit GOT offset for LDM */ +#define R_68K_TLS_LDM8 30 /* 8 bit GOT offset for LDM */ +#define R_68K_TLS_LDO32 31 /* 32 bit module-relative offset */ +#define R_68K_TLS_LDO16 32 /* 16 bit module-relative offset */ +#define R_68K_TLS_LDO8 33 /* 8 bit module-relative offset */ +#define R_68K_TLS_IE32 34 /* 32 bit GOT offset for IE */ +#define R_68K_TLS_IE16 35 /* 16 bit GOT offset for IE */ +#define R_68K_TLS_IE8 36 /* 8 bit GOT offset for IE */ +#define R_68K_TLS_LE32 37 /* 32 bit offset relative to \ + static TLS block */ +#define R_68K_TLS_LE16 38 /* 16 bit offset relative to \ + static TLS block */ +#define R_68K_TLS_LE8 39 /* 8 bit offset relative to \ + static TLS block */ +#define R_68K_TLS_DTPMOD32 40 /* 32 bit module number */ +#define R_68K_TLS_DTPREL32 41 /* 32 bit module-relative offset */ +#define R_68K_TLS_TPREL32 42 /* 32 bit TP-relative offset */ /* Keep this the last entry. */ -#define R_68K_NUM 43 +#define R_68K_NUM 43 /* Intel 80386 specific definitions. */ /* i386 relocs. */ -#define R_386_NONE 0 /* No reloc */ -#define R_386_32 1 /* Direct 32 bit */ -#define R_386_PC32 2 /* PC relative 32 bit */ -#define R_386_GOT32 3 /* 32 bit GOT entry */ -#define R_386_PLT32 4 /* 32 bit PLT address */ -#define R_386_COPY 5 /* Copy symbol at runtime */ -#define R_386_GLOB_DAT 6 /* Create GOT entry */ -#define R_386_JMP_SLOT 7 /* Create PLT entry */ -#define R_386_RELATIVE 8 /* Adjust by program base */ -#define R_386_GOTOFF 9 /* 32 bit offset to GOT */ -#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */ -#define R_386_32PLT 11 -#define R_386_TLS_TPOFF 14 /* Offset in static TLS block */ -#define R_386_TLS_IE 15 /* Address of GOT entry for static TLS - block offset */ -#define R_386_TLS_GOTIE 16 /* GOT entry for static TLS block - offset */ -#define R_386_TLS_LE 17 /* Offset relative to static TLS - block */ -#define R_386_TLS_GD 18 /* Direct 32 bit for GNU version of - general dynamic thread local data */ -#define R_386_TLS_LDM 19 /* Direct 32 bit for GNU version of - local dynamic thread local data - in LE code */ -#define R_386_16 20 -#define R_386_PC16 21 -#define R_386_8 22 -#define R_386_PC8 23 -#define R_386_TLS_GD_32 24 /* Direct 32 bit for general dynamic - thread local data */ -#define R_386_TLS_GD_PUSH 25 /* Tag for pushl in GD TLS code */ -#define R_386_TLS_GD_CALL 26 /* Relocation for call to - __tls_get_addr() */ -#define R_386_TLS_GD_POP 27 /* Tag for popl in GD TLS code */ -#define R_386_TLS_LDM_32 28 /* Direct 32 bit for local dynamic - thread local data in LE code */ -#define R_386_TLS_LDM_PUSH 29 /* Tag for pushl in LDM TLS code */ -#define R_386_TLS_LDM_CALL 30 /* Relocation for call to - __tls_get_addr() in LDM code */ -#define R_386_TLS_LDM_POP 31 /* Tag for popl in LDM TLS code */ -#define R_386_TLS_LDO_32 32 /* Offset relative to TLS block */ -#define R_386_TLS_IE_32 33 /* GOT entry for negated static TLS - block offset */ -#define R_386_TLS_LE_32 34 /* Negated offset relative to static - TLS block */ -#define R_386_TLS_DTPMOD32 35 /* ID of module containing symbol */ -#define R_386_TLS_DTPOFF32 36 /* Offset in TLS block */ -#define R_386_TLS_TPOFF32 37 /* Negated offset in static TLS block */ -#define R_386_SIZE32 38 /* 32-bit symbol size */ -#define R_386_TLS_GOTDESC 39 /* GOT offset for TLS descriptor. */ -#define R_386_TLS_DESC_CALL 40 /* Marker of call through TLS - descriptor for - relaxation. */ -#define R_386_TLS_DESC 41 /* TLS descriptor containing - pointer to code and to - argument, returning the TLS - offset for the symbol. */ -#define R_386_IRELATIVE 42 /* Adjust indirectly by program base */ -#define R_386_GOT32X 43 /* Load from 32 bit GOT entry, - relaxable. */ +#define R_386_NONE 0 /* No reloc */ +#define R_386_32 1 /* Direct 32 bit */ +#define R_386_PC32 2 /* PC relative 32 bit */ +#define R_386_GOT32 3 /* 32 bit GOT entry */ +#define R_386_PLT32 4 /* 32 bit PLT address */ +#define R_386_COPY 5 /* Copy symbol at runtime */ +#define R_386_GLOB_DAT 6 /* Create GOT entry */ +#define R_386_JMP_SLOT 7 /* Create PLT entry */ +#define R_386_RELATIVE 8 /* Adjust by program base */ +#define R_386_GOTOFF 9 /* 32 bit offset to GOT */ +#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */ +#define R_386_32PLT 11 +#define R_386_TLS_TPOFF 14 /* Offset in static TLS block */ +#define R_386_TLS_IE 15 /* Address of GOT entry for static TLS \ + block offset */ +#define R_386_TLS_GOTIE 16 /* GOT entry for static TLS block \ + offset */ +#define R_386_TLS_LE 17 /* Offset relative to static TLS \ + block */ +#define R_386_TLS_GD 18 /* Direct 32 bit for GNU version of \ + general dynamic thread local data */ +#define R_386_TLS_LDM 19 /* Direct 32 bit for GNU version of \ + local dynamic thread local data \ + in LE code */ +#define R_386_16 20 +#define R_386_PC16 21 +#define R_386_8 22 +#define R_386_PC8 23 +#define R_386_TLS_GD_32 24 /* Direct 32 bit for general dynamic \ + thread local data */ +#define R_386_TLS_GD_PUSH 25 /* Tag for pushl in GD TLS code */ +#define R_386_TLS_GD_CALL 26 /* Relocation for call to \ + __tls_get_addr() */ +#define R_386_TLS_GD_POP 27 /* Tag for popl in GD TLS code */ +#define R_386_TLS_LDM_32 28 /* Direct 32 bit for local dynamic \ + thread local data in LE code */ +#define R_386_TLS_LDM_PUSH 29 /* Tag for pushl in LDM TLS code */ +#define R_386_TLS_LDM_CALL 30 /* Relocation for call to \ + __tls_get_addr() in LDM code */ +#define R_386_TLS_LDM_POP 31 /* Tag for popl in LDM TLS code */ +#define R_386_TLS_LDO_32 32 /* Offset relative to TLS block */ +#define R_386_TLS_IE_32 33 /* GOT entry for negated static TLS \ + block offset */ +#define R_386_TLS_LE_32 34 /* Negated offset relative to static \ + TLS block */ +#define R_386_TLS_DTPMOD32 35 /* ID of module containing symbol */ +#define R_386_TLS_DTPOFF32 36 /* Offset in TLS block */ +#define R_386_TLS_TPOFF32 37 /* Negated offset in static TLS block */ +#define R_386_SIZE32 38 /* 32-bit symbol size */ +#define R_386_TLS_GOTDESC 39 /* GOT offset for TLS descriptor. */ +#define R_386_TLS_DESC_CALL 40 /* Marker of call through TLS \ + descriptor for \ + relaxation. */ +#define R_386_TLS_DESC 41 /* TLS descriptor containing \ + pointer to code and to \ + argument, returning the TLS \ + offset for the symbol. */ +#define R_386_IRELATIVE 42 /* Adjust indirectly by program base */ +#define R_386_GOT32X 43 /* Load from 32 bit GOT entry, \ + relaxable. */ /* Keep this the last entry. */ -#define R_386_NUM 44 +#define R_386_NUM 44 /* SUN SPARC specific definitions. */ /* Legal values for ST_TYPE subfield of st_info (symbol type). */ -#define STT_SPARC_REGISTER 13 /* Global register reserved to app. */ +#define STT_SPARC_REGISTER 13 /* Global register reserved to app. */ /* Values for Elf64_Ehdr.e_flags. */ -#define EF_SPARCV9_MM 3 -#define EF_SPARCV9_TSO 0 -#define EF_SPARCV9_PSO 1 -#define EF_SPARCV9_RMO 2 -#define EF_SPARC_LEDATA 0x800000 /* little endian data */ -#define EF_SPARC_EXT_MASK 0xFFFF00 -#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */ -#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */ -#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */ -#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */ +#define EF_SPARCV9_MM 3 +#define EF_SPARCV9_TSO 0 +#define EF_SPARCV9_PSO 1 +#define EF_SPARCV9_RMO 2 +#define EF_SPARC_LEDATA 0x800000 /* little endian data */ +#define EF_SPARC_EXT_MASK 0xFFFF00 +#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */ +#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */ +#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */ +#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */ /* SPARC relocs. */ -#define R_SPARC_NONE 0 /* No reloc */ -#define R_SPARC_8 1 /* Direct 8 bit */ -#define R_SPARC_16 2 /* Direct 16 bit */ -#define R_SPARC_32 3 /* Direct 32 bit */ -#define R_SPARC_DISP8 4 /* PC relative 8 bit */ -#define R_SPARC_DISP16 5 /* PC relative 16 bit */ -#define R_SPARC_DISP32 6 /* PC relative 32 bit */ -#define R_SPARC_WDISP30 7 /* PC relative 30 bit shifted */ -#define R_SPARC_WDISP22 8 /* PC relative 22 bit shifted */ -#define R_SPARC_HI22 9 /* High 22 bit */ -#define R_SPARC_22 10 /* Direct 22 bit */ -#define R_SPARC_13 11 /* Direct 13 bit */ -#define R_SPARC_LO10 12 /* Truncated 10 bit */ -#define R_SPARC_GOT10 13 /* Truncated 10 bit GOT entry */ -#define R_SPARC_GOT13 14 /* 13 bit GOT entry */ -#define R_SPARC_GOT22 15 /* 22 bit GOT entry shifted */ -#define R_SPARC_PC10 16 /* PC relative 10 bit truncated */ -#define R_SPARC_PC22 17 /* PC relative 22 bit shifted */ -#define R_SPARC_WPLT30 18 /* 30 bit PC relative PLT address */ -#define R_SPARC_COPY 19 /* Copy symbol at runtime */ -#define R_SPARC_GLOB_DAT 20 /* Create GOT entry */ -#define R_SPARC_JMP_SLOT 21 /* Create PLT entry */ -#define R_SPARC_RELATIVE 22 /* Adjust by program base */ -#define R_SPARC_UA32 23 /* Direct 32 bit unaligned */ +#define R_SPARC_NONE 0 /* No reloc */ +#define R_SPARC_8 1 /* Direct 8 bit */ +#define R_SPARC_16 2 /* Direct 16 bit */ +#define R_SPARC_32 3 /* Direct 32 bit */ +#define R_SPARC_DISP8 4 /* PC relative 8 bit */ +#define R_SPARC_DISP16 5 /* PC relative 16 bit */ +#define R_SPARC_DISP32 6 /* PC relative 32 bit */ +#define R_SPARC_WDISP30 7 /* PC relative 30 bit shifted */ +#define R_SPARC_WDISP22 8 /* PC relative 22 bit shifted */ +#define R_SPARC_HI22 9 /* High 22 bit */ +#define R_SPARC_22 10 /* Direct 22 bit */ +#define R_SPARC_13 11 /* Direct 13 bit */ +#define R_SPARC_LO10 12 /* Truncated 10 bit */ +#define R_SPARC_GOT10 13 /* Truncated 10 bit GOT entry */ +#define R_SPARC_GOT13 14 /* 13 bit GOT entry */ +#define R_SPARC_GOT22 15 /* 22 bit GOT entry shifted */ +#define R_SPARC_PC10 16 /* PC relative 10 bit truncated */ +#define R_SPARC_PC22 17 /* PC relative 22 bit shifted */ +#define R_SPARC_WPLT30 18 /* 30 bit PC relative PLT address */ +#define R_SPARC_COPY 19 /* Copy symbol at runtime */ +#define R_SPARC_GLOB_DAT 20 /* Create GOT entry */ +#define R_SPARC_JMP_SLOT 21 /* Create PLT entry */ +#define R_SPARC_RELATIVE 22 /* Adjust by program base */ +#define R_SPARC_UA32 23 /* Direct 32 bit unaligned */ /* Additional Sparc64 relocs. */ -#define R_SPARC_PLT32 24 /* Direct 32 bit ref to PLT entry */ -#define R_SPARC_HIPLT22 25 /* High 22 bit PLT entry */ -#define R_SPARC_LOPLT10 26 /* Truncated 10 bit PLT entry */ -#define R_SPARC_PCPLT32 27 /* PC rel 32 bit ref to PLT entry */ -#define R_SPARC_PCPLT22 28 /* PC rel high 22 bit PLT entry */ -#define R_SPARC_PCPLT10 29 /* PC rel trunc 10 bit PLT entry */ -#define R_SPARC_10 30 /* Direct 10 bit */ -#define R_SPARC_11 31 /* Direct 11 bit */ -#define R_SPARC_64 32 /* Direct 64 bit */ -#define R_SPARC_OLO10 33 /* 10bit with secondary 13bit addend */ -#define R_SPARC_HH22 34 /* Top 22 bits of direct 64 bit */ -#define R_SPARC_HM10 35 /* High middle 10 bits of ... */ -#define R_SPARC_LM22 36 /* Low middle 22 bits of ... */ -#define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */ -#define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */ -#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */ -#define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */ -#define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */ -#define R_SPARC_GLOB_JMP 42 /* was part of v9 ABI but was removed */ -#define R_SPARC_7 43 /* Direct 7 bit */ -#define R_SPARC_5 44 /* Direct 5 bit */ -#define R_SPARC_6 45 /* Direct 6 bit */ -#define R_SPARC_DISP64 46 /* PC relative 64 bit */ -#define R_SPARC_PLT64 47 /* Direct 64 bit ref to PLT entry */ -#define R_SPARC_HIX22 48 /* High 22 bit complemented */ -#define R_SPARC_LOX10 49 /* Truncated 11 bit complemented */ -#define R_SPARC_H44 50 /* Direct high 12 of 44 bit */ -#define R_SPARC_M44 51 /* Direct mid 22 of 44 bit */ -#define R_SPARC_L44 52 /* Direct low 10 of 44 bit */ -#define R_SPARC_REGISTER 53 /* Global register usage */ -#define R_SPARC_UA64 54 /* Direct 64 bit unaligned */ -#define R_SPARC_UA16 55 /* Direct 16 bit unaligned */ -#define R_SPARC_TLS_GD_HI22 56 -#define R_SPARC_TLS_GD_LO10 57 -#define R_SPARC_TLS_GD_ADD 58 -#define R_SPARC_TLS_GD_CALL 59 -#define R_SPARC_TLS_LDM_HI22 60 -#define R_SPARC_TLS_LDM_LO10 61 -#define R_SPARC_TLS_LDM_ADD 62 -#define R_SPARC_TLS_LDM_CALL 63 -#define R_SPARC_TLS_LDO_HIX22 64 -#define R_SPARC_TLS_LDO_LOX10 65 -#define R_SPARC_TLS_LDO_ADD 66 -#define R_SPARC_TLS_IE_HI22 67 -#define R_SPARC_TLS_IE_LO10 68 -#define R_SPARC_TLS_IE_LD 69 -#define R_SPARC_TLS_IE_LDX 70 -#define R_SPARC_TLS_IE_ADD 71 -#define R_SPARC_TLS_LE_HIX22 72 -#define R_SPARC_TLS_LE_LOX10 73 -#define R_SPARC_TLS_DTPMOD32 74 -#define R_SPARC_TLS_DTPMOD64 75 -#define R_SPARC_TLS_DTPOFF32 76 -#define R_SPARC_TLS_DTPOFF64 77 -#define R_SPARC_TLS_TPOFF32 78 -#define R_SPARC_TLS_TPOFF64 79 -#define R_SPARC_GOTDATA_HIX22 80 -#define R_SPARC_GOTDATA_LOX10 81 -#define R_SPARC_GOTDATA_OP_HIX22 82 -#define R_SPARC_GOTDATA_OP_LOX10 83 -#define R_SPARC_GOTDATA_OP 84 -#define R_SPARC_H34 85 -#define R_SPARC_SIZE32 86 -#define R_SPARC_SIZE64 87 -#define R_SPARC_WDISP10 88 -#define R_SPARC_JMP_IREL 248 -#define R_SPARC_IRELATIVE 249 -#define R_SPARC_GNU_VTINHERIT 250 -#define R_SPARC_GNU_VTENTRY 251 -#define R_SPARC_REV32 252 +#define R_SPARC_PLT32 24 /* Direct 32 bit ref to PLT entry */ +#define R_SPARC_HIPLT22 25 /* High 22 bit PLT entry */ +#define R_SPARC_LOPLT10 26 /* Truncated 10 bit PLT entry */ +#define R_SPARC_PCPLT32 27 /* PC rel 32 bit ref to PLT entry */ +#define R_SPARC_PCPLT22 28 /* PC rel high 22 bit PLT entry */ +#define R_SPARC_PCPLT10 29 /* PC rel trunc 10 bit PLT entry */ +#define R_SPARC_10 30 /* Direct 10 bit */ +#define R_SPARC_11 31 /* Direct 11 bit */ +#define R_SPARC_64 32 /* Direct 64 bit */ +#define R_SPARC_OLO10 33 /* 10bit with secondary 13bit addend */ +#define R_SPARC_HH22 34 /* Top 22 bits of direct 64 bit */ +#define R_SPARC_HM10 35 /* High middle 10 bits of ... */ +#define R_SPARC_LM22 36 /* Low middle 22 bits of ... */ +#define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */ +#define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */ +#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */ +#define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */ +#define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */ +#define R_SPARC_GLOB_JMP 42 /* was part of v9 ABI but was removed */ +#define R_SPARC_7 43 /* Direct 7 bit */ +#define R_SPARC_5 44 /* Direct 5 bit */ +#define R_SPARC_6 45 /* Direct 6 bit */ +#define R_SPARC_DISP64 46 /* PC relative 64 bit */ +#define R_SPARC_PLT64 47 /* Direct 64 bit ref to PLT entry */ +#define R_SPARC_HIX22 48 /* High 22 bit complemented */ +#define R_SPARC_LOX10 49 /* Truncated 11 bit complemented */ +#define R_SPARC_H44 50 /* Direct high 12 of 44 bit */ +#define R_SPARC_M44 51 /* Direct mid 22 of 44 bit */ +#define R_SPARC_L44 52 /* Direct low 10 of 44 bit */ +#define R_SPARC_REGISTER 53 /* Global register usage */ +#define R_SPARC_UA64 54 /* Direct 64 bit unaligned */ +#define R_SPARC_UA16 55 /* Direct 16 bit unaligned */ +#define R_SPARC_TLS_GD_HI22 56 +#define R_SPARC_TLS_GD_LO10 57 +#define R_SPARC_TLS_GD_ADD 58 +#define R_SPARC_TLS_GD_CALL 59 +#define R_SPARC_TLS_LDM_HI22 60 +#define R_SPARC_TLS_LDM_LO10 61 +#define R_SPARC_TLS_LDM_ADD 62 +#define R_SPARC_TLS_LDM_CALL 63 +#define R_SPARC_TLS_LDO_HIX22 64 +#define R_SPARC_TLS_LDO_LOX10 65 +#define R_SPARC_TLS_LDO_ADD 66 +#define R_SPARC_TLS_IE_HI22 67 +#define R_SPARC_TLS_IE_LO10 68 +#define R_SPARC_TLS_IE_LD 69 +#define R_SPARC_TLS_IE_LDX 70 +#define R_SPARC_TLS_IE_ADD 71 +#define R_SPARC_TLS_LE_HIX22 72 +#define R_SPARC_TLS_LE_LOX10 73 +#define R_SPARC_TLS_DTPMOD32 74 +#define R_SPARC_TLS_DTPMOD64 75 +#define R_SPARC_TLS_DTPOFF32 76 +#define R_SPARC_TLS_DTPOFF64 77 +#define R_SPARC_TLS_TPOFF32 78 +#define R_SPARC_TLS_TPOFF64 79 +#define R_SPARC_GOTDATA_HIX22 80 +#define R_SPARC_GOTDATA_LOX10 81 +#define R_SPARC_GOTDATA_OP_HIX22 82 +#define R_SPARC_GOTDATA_OP_LOX10 83 +#define R_SPARC_GOTDATA_OP 84 +#define R_SPARC_H34 85 +#define R_SPARC_SIZE32 86 +#define R_SPARC_SIZE64 87 +#define R_SPARC_WDISP10 88 +#define R_SPARC_JMP_IREL 248 +#define R_SPARC_IRELATIVE 249 +#define R_SPARC_GNU_VTINHERIT 250 +#define R_SPARC_GNU_VTENTRY 251 +#define R_SPARC_REV32 252 /* Keep this the last entry. */ -#define R_SPARC_NUM 253 +#define R_SPARC_NUM 253 /* For Sparc64, legal values for d_tag of Elf64_Dyn. */ -#define DT_SPARC_REGISTER 0x70000001 -#define DT_SPARC_NUM 2 +#define DT_SPARC_REGISTER 0x70000001 +#define DT_SPARC_NUM 2 /* MIPS R3000 specific definitions. */ /* Legal values for e_flags field of Elf32_Ehdr. */ -#define EF_MIPS_NOREORDER 1 /* A .noreorder directive was used. */ -#define EF_MIPS_PIC 2 /* Contains PIC code. */ -#define EF_MIPS_CPIC 4 /* Uses PIC calling sequence. */ -#define EF_MIPS_XGOT 8 -#define EF_MIPS_64BIT_WHIRL 16 -#define EF_MIPS_ABI2 32 -#define EF_MIPS_ABI_ON32 64 -#define EF_MIPS_FP64 512 /* Uses FP64 (12 callee-saved). */ -#define EF_MIPS_NAN2008 1024 /* Uses IEEE 754-2008 NaN encoding. */ -#define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level. */ +#define EF_MIPS_NOREORDER 1 /* A .noreorder directive was used. */ +#define EF_MIPS_PIC 2 /* Contains PIC code. */ +#define EF_MIPS_CPIC 4 /* Uses PIC calling sequence. */ +#define EF_MIPS_XGOT 8 +#define EF_MIPS_64BIT_WHIRL 16 +#define EF_MIPS_ABI2 32 +#define EF_MIPS_ABI_ON32 64 +#define EF_MIPS_FP64 512 /* Uses FP64 (12 callee-saved). */ +#define EF_MIPS_NAN2008 1024 /* Uses IEEE 754-2008 NaN encoding. */ +#define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level. */ /* Legal values for MIPS architecture level. */ -#define EF_MIPS_ARCH_1 0x00000000 /* -mips1 code. */ -#define EF_MIPS_ARCH_2 0x10000000 /* -mips2 code. */ -#define EF_MIPS_ARCH_3 0x20000000 /* -mips3 code. */ -#define EF_MIPS_ARCH_4 0x30000000 /* -mips4 code. */ -#define EF_MIPS_ARCH_5 0x40000000 /* -mips5 code. */ -#define EF_MIPS_ARCH_32 0x50000000 /* MIPS32 code. */ -#define EF_MIPS_ARCH_64 0x60000000 /* MIPS64 code. */ -#define EF_MIPS_ARCH_32R2 0x70000000 /* MIPS32r2 code. */ -#define EF_MIPS_ARCH_64R2 0x80000000 /* MIPS64r2 code. */ +#define EF_MIPS_ARCH_1 0x00000000 /* -mips1 code. */ +#define EF_MIPS_ARCH_2 0x10000000 /* -mips2 code. */ +#define EF_MIPS_ARCH_3 0x20000000 /* -mips3 code. */ +#define EF_MIPS_ARCH_4 0x30000000 /* -mips4 code. */ +#define EF_MIPS_ARCH_5 0x40000000 /* -mips5 code. */ +#define EF_MIPS_ARCH_32 0x50000000 /* MIPS32 code. */ +#define EF_MIPS_ARCH_64 0x60000000 /* MIPS64 code. */ +#define EF_MIPS_ARCH_32R2 0x70000000 /* MIPS32r2 code. */ +#define EF_MIPS_ARCH_64R2 0x80000000 /* MIPS64r2 code. */ /* The following are unofficial names and should not be used. */ -#define E_MIPS_ARCH_1 EF_MIPS_ARCH_1 -#define E_MIPS_ARCH_2 EF_MIPS_ARCH_2 -#define E_MIPS_ARCH_3 EF_MIPS_ARCH_3 -#define E_MIPS_ARCH_4 EF_MIPS_ARCH_4 -#define E_MIPS_ARCH_5 EF_MIPS_ARCH_5 -#define E_MIPS_ARCH_32 EF_MIPS_ARCH_32 -#define E_MIPS_ARCH_64 EF_MIPS_ARCH_64 +#define E_MIPS_ARCH_1 EF_MIPS_ARCH_1 +#define E_MIPS_ARCH_2 EF_MIPS_ARCH_2 +#define E_MIPS_ARCH_3 EF_MIPS_ARCH_3 +#define E_MIPS_ARCH_4 EF_MIPS_ARCH_4 +#define E_MIPS_ARCH_5 EF_MIPS_ARCH_5 +#define E_MIPS_ARCH_32 EF_MIPS_ARCH_32 +#define E_MIPS_ARCH_64 EF_MIPS_ARCH_64 /* Special section indices. */ -#define SHN_MIPS_ACOMMON 0xff00 /* Allocated common symbols. */ -#define SHN_MIPS_TEXT 0xff01 /* Allocated test symbols. */ -#define SHN_MIPS_DATA 0xff02 /* Allocated data symbols. */ -#define SHN_MIPS_SCOMMON 0xff03 /* Small common symbols. */ -#define SHN_MIPS_SUNDEFINED 0xff04 /* Small undefined symbols. */ +#define SHN_MIPS_ACOMMON 0xff00 /* Allocated common symbols. */ +#define SHN_MIPS_TEXT 0xff01 /* Allocated test symbols. */ +#define SHN_MIPS_DATA 0xff02 /* Allocated data symbols. */ +#define SHN_MIPS_SCOMMON 0xff03 /* Small common symbols. */ +#define SHN_MIPS_SUNDEFINED 0xff04 /* Small undefined symbols. */ /* Legal values for sh_type field of Elf32_Shdr. */ -#define SHT_MIPS_LIBLIST 0x70000000 /* Shared objects used in link. */ -#define SHT_MIPS_MSYM 0x70000001 -#define SHT_MIPS_CONFLICT 0x70000002 /* Conflicting symbols. */ -#define SHT_MIPS_GPTAB 0x70000003 /* Global data area sizes. */ -#define SHT_MIPS_UCODE 0x70000004 /* Reserved for SGI/MIPS compilers */ -#define SHT_MIPS_DEBUG 0x70000005 /* MIPS ECOFF debugging info. */ -#define SHT_MIPS_REGINFO 0x70000006 /* Register usage information. */ -#define SHT_MIPS_PACKAGE 0x70000007 -#define SHT_MIPS_PACKSYM 0x70000008 -#define SHT_MIPS_RELD 0x70000009 -#define SHT_MIPS_IFACE 0x7000000b -#define SHT_MIPS_CONTENT 0x7000000c -#define SHT_MIPS_OPTIONS 0x7000000d /* Miscellaneous options. */ -#define SHT_MIPS_SHDR 0x70000010 -#define SHT_MIPS_FDESC 0x70000011 -#define SHT_MIPS_EXTSYM 0x70000012 -#define SHT_MIPS_DENSE 0x70000013 -#define SHT_MIPS_PDESC 0x70000014 -#define SHT_MIPS_LOCSYM 0x70000015 -#define SHT_MIPS_AUXSYM 0x70000016 -#define SHT_MIPS_OPTSYM 0x70000017 -#define SHT_MIPS_LOCSTR 0x70000018 -#define SHT_MIPS_LINE 0x70000019 -#define SHT_MIPS_RFDESC 0x7000001a -#define SHT_MIPS_DELTASYM 0x7000001b -#define SHT_MIPS_DELTAINST 0x7000001c -#define SHT_MIPS_DELTACLASS 0x7000001d -#define SHT_MIPS_DWARF 0x7000001e /* DWARF debugging information. */ -#define SHT_MIPS_DELTADECL 0x7000001f -#define SHT_MIPS_SYMBOL_LIB 0x70000020 -#define SHT_MIPS_EVENTS 0x70000021 /* Event section. */ -#define SHT_MIPS_TRANSLATE 0x70000022 -#define SHT_MIPS_PIXIE 0x70000023 -#define SHT_MIPS_XLATE 0x70000024 -#define SHT_MIPS_XLATE_DEBUG 0x70000025 -#define SHT_MIPS_WHIRL 0x70000026 -#define SHT_MIPS_EH_REGION 0x70000027 -#define SHT_MIPS_XLATE_OLD 0x70000028 -#define SHT_MIPS_PDR_EXCEPTION 0x70000029 -#define SHT_MIPS_XHASH 0x7000002b +#define SHT_MIPS_LIBLIST 0x70000000 /* Shared objects used in link. */ +#define SHT_MIPS_MSYM 0x70000001 +#define SHT_MIPS_CONFLICT 0x70000002 /* Conflicting symbols. */ +#define SHT_MIPS_GPTAB 0x70000003 /* Global data area sizes. */ +#define SHT_MIPS_UCODE 0x70000004 /* Reserved for SGI/MIPS compilers */ +#define SHT_MIPS_DEBUG 0x70000005 /* MIPS ECOFF debugging info. */ +#define SHT_MIPS_REGINFO 0x70000006 /* Register usage information. */ +#define SHT_MIPS_PACKAGE 0x70000007 +#define SHT_MIPS_PACKSYM 0x70000008 +#define SHT_MIPS_RELD 0x70000009 +#define SHT_MIPS_IFACE 0x7000000b +#define SHT_MIPS_CONTENT 0x7000000c +#define SHT_MIPS_OPTIONS 0x7000000d /* Miscellaneous options. */ +#define SHT_MIPS_SHDR 0x70000010 +#define SHT_MIPS_FDESC 0x70000011 +#define SHT_MIPS_EXTSYM 0x70000012 +#define SHT_MIPS_DENSE 0x70000013 +#define SHT_MIPS_PDESC 0x70000014 +#define SHT_MIPS_LOCSYM 0x70000015 +#define SHT_MIPS_AUXSYM 0x70000016 +#define SHT_MIPS_OPTSYM 0x70000017 +#define SHT_MIPS_LOCSTR 0x70000018 +#define SHT_MIPS_LINE 0x70000019 +#define SHT_MIPS_RFDESC 0x7000001a +#define SHT_MIPS_DELTASYM 0x7000001b +#define SHT_MIPS_DELTAINST 0x7000001c +#define SHT_MIPS_DELTACLASS 0x7000001d +#define SHT_MIPS_DWARF 0x7000001e /* DWARF debugging information. */ +#define SHT_MIPS_DELTADECL 0x7000001f +#define SHT_MIPS_SYMBOL_LIB 0x70000020 +#define SHT_MIPS_EVENTS 0x70000021 /* Event section. */ +#define SHT_MIPS_TRANSLATE 0x70000022 +#define SHT_MIPS_PIXIE 0x70000023 +#define SHT_MIPS_XLATE 0x70000024 +#define SHT_MIPS_XLATE_DEBUG 0x70000025 +#define SHT_MIPS_WHIRL 0x70000026 +#define SHT_MIPS_EH_REGION 0x70000027 +#define SHT_MIPS_XLATE_OLD 0x70000028 +#define SHT_MIPS_PDR_EXCEPTION 0x70000029 +#define SHT_MIPS_XHASH 0x7000002b /* Legal values for sh_flags field of Elf32_Shdr. */ -#define SHF_MIPS_GPREL 0x10000000 /* Must be in global data area. */ -#define SHF_MIPS_MERGE 0x20000000 -#define SHF_MIPS_ADDR 0x40000000 -#define SHF_MIPS_STRINGS 0x80000000 -#define SHF_MIPS_NOSTRIP 0x08000000 -#define SHF_MIPS_LOCAL 0x04000000 -#define SHF_MIPS_NAMES 0x02000000 -#define SHF_MIPS_NODUPE 0x01000000 - +#define SHF_MIPS_GPREL 0x10000000 /* Must be in global data area. */ +#define SHF_MIPS_MERGE 0x20000000 +#define SHF_MIPS_ADDR 0x40000000 +#define SHF_MIPS_STRINGS 0x80000000 +#define SHF_MIPS_NOSTRIP 0x08000000 +#define SHF_MIPS_LOCAL 0x04000000 +#define SHF_MIPS_NAMES 0x02000000 +#define SHF_MIPS_NODUPE 0x01000000 /* Symbol tables. */ /* MIPS specific values for `st_other'. */ -#define STO_MIPS_DEFAULT 0x0 -#define STO_MIPS_INTERNAL 0x1 -#define STO_MIPS_HIDDEN 0x2 -#define STO_MIPS_PROTECTED 0x3 -#define STO_MIPS_PLT 0x8 -#define STO_MIPS_SC_ALIGN_UNUSED 0xff +#define STO_MIPS_DEFAULT 0x0 +#define STO_MIPS_INTERNAL 0x1 +#define STO_MIPS_HIDDEN 0x2 +#define STO_MIPS_PROTECTED 0x3 +#define STO_MIPS_PLT 0x8 +#define STO_MIPS_SC_ALIGN_UNUSED 0xff /* MIPS specific values for `st_info'. */ -#define STB_MIPS_SPLIT_COMMON 13 +#define STB_MIPS_SPLIT_COMMON 13 /* Entries found in sections of type SHT_MIPS_GPTAB. */ -typedef union -{ - struct +typedef union { + struct { - Elf32_Word gt_current_g_value; /* -G value used for compilation. */ - Elf32_Word gt_unused; /* Not used. */ - } gt_header; /* First entry in section. */ - struct + Elf32_Word gt_current_g_value; /* -G value used for compilation. */ + Elf32_Word gt_unused; /* Not used. */ + } gt_header; /* First entry in section. */ + struct { - Elf32_Word gt_g_value; /* If this value were used for -G. */ - Elf32_Word gt_bytes; /* This many bytes would be used. */ - } gt_entry; /* Subsequent entries in section. */ + Elf32_Word gt_g_value; /* If this value were used for -G. */ + Elf32_Word gt_bytes; /* This many bytes would be used. */ + } gt_entry; /* Subsequent entries in section. */ } Elf32_gptab; /* Entry found in sections of type SHT_MIPS_REGINFO. */ typedef struct { - Elf32_Word ri_gprmask; /* General registers used. */ - Elf32_Word ri_cprmask[4]; /* Coprocessor registers used. */ - Elf32_Sword ri_gp_value; /* $gp register value. */ + Elf32_Word ri_gprmask; /* General registers used. */ + Elf32_Word ri_cprmask[4]; /* Coprocessor registers used. */ + Elf32_Sword ri_gp_value; /* $gp register value. */ } Elf32_RegInfo; /* Entries found in sections of type SHT_MIPS_OPTIONS. */ typedef struct { - unsigned char kind; /* Determines interpretation of the - variable part of descriptor. */ - unsigned char size; /* Size of descriptor, including header. */ - Elf32_Section section; /* Section header index of section affected, - 0 for global options. */ - Elf32_Word info; /* Kind-specific information. */ + unsigned char kind; /* Determines interpretation of the + variable part of descriptor. */ + unsigned char size; /* Size of descriptor, including header. */ + Elf32_Section section; /* Section header index of section affected, + 0 for global options. */ + Elf32_Word info; /* Kind-specific information. */ } Elf_Options; /* Values for `kind' field in Elf_Options. */ -#define ODK_NULL 0 /* Undefined. */ -#define ODK_REGINFO 1 /* Register usage information. */ -#define ODK_EXCEPTIONS 2 /* Exception processing options. */ -#define ODK_PAD 3 /* Section padding options. */ -#define ODK_HWPATCH 4 /* Hardware workarounds performed */ -#define ODK_FILL 5 /* record the fill value used by the linker. */ -#define ODK_TAGS 6 /* reserve space for desktop tools to write. */ -#define ODK_HWAND 7 /* HW workarounds. 'AND' bits when merging. */ -#define ODK_HWOR 8 /* HW workarounds. 'OR' bits when merging. */ +#define ODK_NULL 0 /* Undefined. */ +#define ODK_REGINFO 1 /* Register usage information. */ +#define ODK_EXCEPTIONS 2 /* Exception processing options. */ +#define ODK_PAD 3 /* Section padding options. */ +#define ODK_HWPATCH 4 /* Hardware workarounds performed */ +#define ODK_FILL 5 /* record the fill value used by the linker. */ +#define ODK_TAGS 6 /* reserve space for desktop tools to write. */ +#define ODK_HWAND 7 /* HW workarounds. 'AND' bits when merging. */ +#define ODK_HWOR 8 /* HW workarounds. 'OR' bits when merging. */ /* Values for `info' in Elf_Options for ODK_EXCEPTIONS entries. */ -#define OEX_FPU_MIN 0x1f /* FPE's which MUST be enabled. */ -#define OEX_FPU_MAX 0x1f00 /* FPE's which MAY be enabled. */ -#define OEX_PAGE0 0x10000 /* page zero must be mapped. */ -#define OEX_SMM 0x20000 /* Force sequential memory mode? */ -#define OEX_FPDBUG 0x40000 /* Force floating point debug mode? */ -#define OEX_PRECISEFP OEX_FPDBUG -#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults? */ +#define OEX_FPU_MIN 0x1f /* FPE's which MUST be enabled. */ +#define OEX_FPU_MAX 0x1f00 /* FPE's which MAY be enabled. */ +#define OEX_PAGE0 0x10000 /* page zero must be mapped. */ +#define OEX_SMM 0x20000 /* Force sequential memory mode? */ +#define OEX_FPDBUG 0x40000 /* Force floating point debug mode? */ +#define OEX_PRECISEFP OEX_FPDBUG +#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults? */ -#define OEX_FPU_INVAL 0x10 -#define OEX_FPU_DIV0 0x08 -#define OEX_FPU_OFLO 0x04 -#define OEX_FPU_UFLO 0x02 -#define OEX_FPU_INEX 0x01 +#define OEX_FPU_INVAL 0x10 +#define OEX_FPU_DIV0 0x08 +#define OEX_FPU_OFLO 0x04 +#define OEX_FPU_UFLO 0x02 +#define OEX_FPU_INEX 0x01 /* Masks for `info' in Elf_Options for an ODK_HWPATCH entry. */ -#define OHW_R4KEOP 0x1 /* R4000 end-of-page patch. */ -#define OHW_R8KPFETCH 0x2 /* may need R8000 prefetch patch. */ -#define OHW_R5KEOP 0x4 /* R5000 end-of-page patch. */ -#define OHW_R5KCVTL 0x8 /* R5000 cvt.[ds].l bug. clean=1. */ +#define OHW_R4KEOP 0x1 /* R4000 end-of-page patch. */ +#define OHW_R8KPFETCH 0x2 /* may need R8000 prefetch patch. */ +#define OHW_R5KEOP 0x4 /* R5000 end-of-page patch. */ +#define OHW_R5KCVTL 0x8 /* R5000 cvt.[ds].l bug. clean=1. */ -#define OPAD_PREFIX 0x1 -#define OPAD_POSTFIX 0x2 -#define OPAD_SYMBOL 0x4 +#define OPAD_PREFIX 0x1 +#define OPAD_POSTFIX 0x2 +#define OPAD_SYMBOL 0x4 /* Entry found in `.options' section. */ typedef struct { - Elf32_Word hwp_flags1; /* Extra flags. */ - Elf32_Word hwp_flags2; /* Extra flags. */ + Elf32_Word hwp_flags1; /* Extra flags. */ + Elf32_Word hwp_flags2; /* Extra flags. */ } Elf_Options_Hw; /* Masks for `info' in ElfOptions for ODK_HWAND and ODK_HWOR entries. */ -#define OHWA0_R4KEOP_CHECKED 0x00000001 -#define OHWA1_R4KEOP_CLEAN 0x00000002 +#define OHWA0_R4KEOP_CHECKED 0x00000001 +#define OHWA1_R4KEOP_CLEAN 0x00000002 /* MIPS relocs. */ -#define R_MIPS_NONE 0 /* No reloc */ -#define R_MIPS_16 1 /* Direct 16 bit */ -#define R_MIPS_32 2 /* Direct 32 bit */ -#define R_MIPS_REL32 3 /* PC relative 32 bit */ -#define R_MIPS_26 4 /* Direct 26 bit shifted */ -#define R_MIPS_HI16 5 /* High 16 bit */ -#define R_MIPS_LO16 6 /* Low 16 bit */ -#define R_MIPS_GPREL16 7 /* GP relative 16 bit */ -#define R_MIPS_LITERAL 8 /* 16 bit literal entry */ -#define R_MIPS_GOT16 9 /* 16 bit GOT entry */ -#define R_MIPS_PC16 10 /* PC relative 16 bit */ -#define R_MIPS_CALL16 11 /* 16 bit GOT entry for function */ -#define R_MIPS_GPREL32 12 /* GP relative 32 bit */ - -#define R_MIPS_SHIFT5 16 -#define R_MIPS_SHIFT6 17 -#define R_MIPS_64 18 -#define R_MIPS_GOT_DISP 19 -#define R_MIPS_GOT_PAGE 20 -#define R_MIPS_GOT_OFST 21 -#define R_MIPS_GOT_HI16 22 -#define R_MIPS_GOT_LO16 23 -#define R_MIPS_SUB 24 -#define R_MIPS_INSERT_A 25 -#define R_MIPS_INSERT_B 26 -#define R_MIPS_DELETE 27 -#define R_MIPS_HIGHER 28 -#define R_MIPS_HIGHEST 29 -#define R_MIPS_CALL_HI16 30 -#define R_MIPS_CALL_LO16 31 -#define R_MIPS_SCN_DISP 32 -#define R_MIPS_REL16 33 -#define R_MIPS_ADD_IMMEDIATE 34 -#define R_MIPS_PJUMP 35 -#define R_MIPS_RELGOT 36 -#define R_MIPS_JALR 37 -#define R_MIPS_TLS_DTPMOD32 38 /* Module number 32 bit */ -#define R_MIPS_TLS_DTPREL32 39 /* Module-relative offset 32 bit */ -#define R_MIPS_TLS_DTPMOD64 40 /* Module number 64 bit */ -#define R_MIPS_TLS_DTPREL64 41 /* Module-relative offset 64 bit */ -#define R_MIPS_TLS_GD 42 /* 16 bit GOT offset for GD */ -#define R_MIPS_TLS_LDM 43 /* 16 bit GOT offset for LDM */ -#define R_MIPS_TLS_DTPREL_HI16 44 /* Module-relative offset, high 16 bits */ -#define R_MIPS_TLS_DTPREL_LO16 45 /* Module-relative offset, low 16 bits */ -#define R_MIPS_TLS_GOTTPREL 46 /* 16 bit GOT offset for IE */ -#define R_MIPS_TLS_TPREL32 47 /* TP-relative offset, 32 bit */ -#define R_MIPS_TLS_TPREL64 48 /* TP-relative offset, 64 bit */ -#define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */ -#define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */ -#define R_MIPS_GLOB_DAT 51 -#define R_MIPS_COPY 126 -#define R_MIPS_JUMP_SLOT 127 +#define R_MIPS_NONE 0 /* No reloc */ +#define R_MIPS_16 1 /* Direct 16 bit */ +#define R_MIPS_32 2 /* Direct 32 bit */ +#define R_MIPS_REL32 3 /* PC relative 32 bit */ +#define R_MIPS_26 4 /* Direct 26 bit shifted */ +#define R_MIPS_HI16 5 /* High 16 bit */ +#define R_MIPS_LO16 6 /* Low 16 bit */ +#define R_MIPS_GPREL16 7 /* GP relative 16 bit */ +#define R_MIPS_LITERAL 8 /* 16 bit literal entry */ +#define R_MIPS_GOT16 9 /* 16 bit GOT entry */ +#define R_MIPS_PC16 10 /* PC relative 16 bit */ +#define R_MIPS_CALL16 11 /* 16 bit GOT entry for function */ +#define R_MIPS_GPREL32 12 /* GP relative 32 bit */ + +#define R_MIPS_SHIFT5 16 +#define R_MIPS_SHIFT6 17 +#define R_MIPS_64 18 +#define R_MIPS_GOT_DISP 19 +#define R_MIPS_GOT_PAGE 20 +#define R_MIPS_GOT_OFST 21 +#define R_MIPS_GOT_HI16 22 +#define R_MIPS_GOT_LO16 23 +#define R_MIPS_SUB 24 +#define R_MIPS_INSERT_A 25 +#define R_MIPS_INSERT_B 26 +#define R_MIPS_DELETE 27 +#define R_MIPS_HIGHER 28 +#define R_MIPS_HIGHEST 29 +#define R_MIPS_CALL_HI16 30 +#define R_MIPS_CALL_LO16 31 +#define R_MIPS_SCN_DISP 32 +#define R_MIPS_REL16 33 +#define R_MIPS_ADD_IMMEDIATE 34 +#define R_MIPS_PJUMP 35 +#define R_MIPS_RELGOT 36 +#define R_MIPS_JALR 37 +#define R_MIPS_TLS_DTPMOD32 38 /* Module number 32 bit */ +#define R_MIPS_TLS_DTPREL32 39 /* Module-relative offset 32 bit */ +#define R_MIPS_TLS_DTPMOD64 40 /* Module number 64 bit */ +#define R_MIPS_TLS_DTPREL64 41 /* Module-relative offset 64 bit */ +#define R_MIPS_TLS_GD 42 /* 16 bit GOT offset for GD */ +#define R_MIPS_TLS_LDM 43 /* 16 bit GOT offset for LDM */ +#define R_MIPS_TLS_DTPREL_HI16 44 /* Module-relative offset, high 16 bits */ +#define R_MIPS_TLS_DTPREL_LO16 45 /* Module-relative offset, low 16 bits */ +#define R_MIPS_TLS_GOTTPREL 46 /* 16 bit GOT offset for IE */ +#define R_MIPS_TLS_TPREL32 47 /* TP-relative offset, 32 bit */ +#define R_MIPS_TLS_TPREL64 48 /* TP-relative offset, 64 bit */ +#define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */ +#define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */ +#define R_MIPS_GLOB_DAT 51 +#define R_MIPS_COPY 126 +#define R_MIPS_JUMP_SLOT 127 /* Keep this the last entry. */ -#define R_MIPS_NUM 128 +#define R_MIPS_NUM 128 /* Legal values for p_type field of Elf32_Phdr. */ -#define PT_MIPS_REGINFO 0x70000000 /* Register usage information. */ -#define PT_MIPS_RTPROC 0x70000001 /* Runtime procedure table. */ -#define PT_MIPS_OPTIONS 0x70000002 -#define PT_MIPS_ABIFLAGS 0x70000003 /* FP mode requirement. */ +#define PT_MIPS_REGINFO 0x70000000 /* Register usage information. */ +#define PT_MIPS_RTPROC 0x70000001 /* Runtime procedure table. */ +#define PT_MIPS_OPTIONS 0x70000002 +#define PT_MIPS_ABIFLAGS 0x70000003 /* FP mode requirement. */ /* Special program header types. */ -#define PF_MIPS_LOCAL 0x10000000 +#define PF_MIPS_LOCAL 0x10000000 /* Legal values for d_tag field of Elf32_Dyn. */ -#define DT_MIPS_RLD_VERSION 0x70000001 /* Runtime linker interface version */ -#define DT_MIPS_TIME_STAMP 0x70000002 /* Timestamp */ -#define DT_MIPS_ICHECKSUM 0x70000003 /* Checksum */ -#define DT_MIPS_IVERSION 0x70000004 /* Version string (string tbl index) */ -#define DT_MIPS_FLAGS 0x70000005 /* Flags */ -#define DT_MIPS_BASE_ADDRESS 0x70000006 /* Base address */ -#define DT_MIPS_MSYM 0x70000007 -#define DT_MIPS_CONFLICT 0x70000008 /* Address of CONFLICT section */ -#define DT_MIPS_LIBLIST 0x70000009 /* Address of LIBLIST section */ -#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* Number of local GOT entries */ -#define DT_MIPS_CONFLICTNO 0x7000000b /* Number of CONFLICT entries */ -#define DT_MIPS_LIBLISTNO 0x70000010 /* Number of LIBLIST entries */ -#define DT_MIPS_SYMTABNO 0x70000011 /* Number of DYNSYM entries */ -#define DT_MIPS_UNREFEXTNO 0x70000012 /* First external DYNSYM */ -#define DT_MIPS_GOTSYM 0x70000013 /* First GOT entry in DYNSYM */ -#define DT_MIPS_HIPAGENO 0x70000014 /* Number of GOT page table entries */ -#define DT_MIPS_RLD_MAP 0x70000016 /* Address of run time loader map. */ -#define DT_MIPS_DELTA_CLASS 0x70000017 /* Delta C++ class definition. */ -#define DT_MIPS_DELTA_CLASS_NO 0x70000018 /* Number of entries in - DT_MIPS_DELTA_CLASS. */ -#define DT_MIPS_DELTA_INSTANCE 0x70000019 /* Delta C++ class instances. */ -#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a /* Number of entries in - DT_MIPS_DELTA_INSTANCE. */ -#define DT_MIPS_DELTA_RELOC 0x7000001b /* Delta relocations. */ -#define DT_MIPS_DELTA_RELOC_NO 0x7000001c /* Number of entries in - DT_MIPS_DELTA_RELOC. */ -#define DT_MIPS_DELTA_SYM 0x7000001d /* Delta symbols that Delta - relocations refer to. */ -#define DT_MIPS_DELTA_SYM_NO 0x7000001e /* Number of entries in - DT_MIPS_DELTA_SYM. */ -#define DT_MIPS_DELTA_CLASSSYM 0x70000020 /* Delta symbols that hold the - class declaration. */ -#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 /* Number of entries in - DT_MIPS_DELTA_CLASSSYM. */ -#define DT_MIPS_CXX_FLAGS 0x70000022 /* Flags indicating for C++ flavor. */ -#define DT_MIPS_PIXIE_INIT 0x70000023 -#define DT_MIPS_SYMBOL_LIB 0x70000024 -#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 -#define DT_MIPS_LOCAL_GOTIDX 0x70000026 -#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 -#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 -#define DT_MIPS_OPTIONS 0x70000029 /* Address of .options. */ -#define DT_MIPS_INTERFACE 0x7000002a /* Address of .interface. */ -#define DT_MIPS_DYNSTR_ALIGN 0x7000002b -#define DT_MIPS_INTERFACE_SIZE 0x7000002c /* Size of the .interface section. */ -#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d /* Address of rld_text_rsolve - function stored in GOT. */ -#define DT_MIPS_PERF_SUFFIX 0x7000002e /* Default suffix of dso to be added - by rld on dlopen() calls. */ -#define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */ -#define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */ -#define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */ +#define DT_MIPS_RLD_VERSION 0x70000001 /* Runtime linker interface version */ +#define DT_MIPS_TIME_STAMP 0x70000002 /* Timestamp */ +#define DT_MIPS_ICHECKSUM 0x70000003 /* Checksum */ +#define DT_MIPS_IVERSION 0x70000004 /* Version string (string tbl index) */ +#define DT_MIPS_FLAGS 0x70000005 /* Flags */ +#define DT_MIPS_BASE_ADDRESS 0x70000006 /* Base address */ +#define DT_MIPS_MSYM 0x70000007 +#define DT_MIPS_CONFLICT 0x70000008 /* Address of CONFLICT section */ +#define DT_MIPS_LIBLIST 0x70000009 /* Address of LIBLIST section */ +#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* Number of local GOT entries */ +#define DT_MIPS_CONFLICTNO 0x7000000b /* Number of CONFLICT entries */ +#define DT_MIPS_LIBLISTNO 0x70000010 /* Number of LIBLIST entries */ +#define DT_MIPS_SYMTABNO 0x70000011 /* Number of DYNSYM entries */ +#define DT_MIPS_UNREFEXTNO 0x70000012 /* First external DYNSYM */ +#define DT_MIPS_GOTSYM 0x70000013 /* First GOT entry in DYNSYM */ +#define DT_MIPS_HIPAGENO 0x70000014 /* Number of GOT page table entries */ +#define DT_MIPS_RLD_MAP 0x70000016 /* Address of run time loader map. */ +#define DT_MIPS_DELTA_CLASS 0x70000017 /* Delta C++ class definition. */ +#define DT_MIPS_DELTA_CLASS_NO 0x70000018 /* Number of entries in \ + DT_MIPS_DELTA_CLASS. */ +#define DT_MIPS_DELTA_INSTANCE 0x70000019 /* Delta C++ class instances. */ +#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a /* Number of entries in \ + DT_MIPS_DELTA_INSTANCE. */ +#define DT_MIPS_DELTA_RELOC 0x7000001b /* Delta relocations. */ +#define DT_MIPS_DELTA_RELOC_NO 0x7000001c /* Number of entries in \ + DT_MIPS_DELTA_RELOC. */ +#define DT_MIPS_DELTA_SYM 0x7000001d /* Delta symbols that Delta \ + relocations refer to. */ +#define DT_MIPS_DELTA_SYM_NO 0x7000001e /* Number of entries in \ + DT_MIPS_DELTA_SYM. */ +#define DT_MIPS_DELTA_CLASSSYM 0x70000020 /* Delta symbols that hold the \ + class declaration. */ +#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 /* Number of entries in \ + DT_MIPS_DELTA_CLASSSYM. */ +#define DT_MIPS_CXX_FLAGS 0x70000022 /* Flags indicating for C++ flavor. */ +#define DT_MIPS_PIXIE_INIT 0x70000023 +#define DT_MIPS_SYMBOL_LIB 0x70000024 +#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 +#define DT_MIPS_LOCAL_GOTIDX 0x70000026 +#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 +#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 +#define DT_MIPS_OPTIONS 0x70000029 /* Address of .options. */ +#define DT_MIPS_INTERFACE 0x7000002a /* Address of .interface. */ +#define DT_MIPS_DYNSTR_ALIGN 0x7000002b +#define DT_MIPS_INTERFACE_SIZE 0x7000002c /* Size of the .interface section. */ +#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d /* Address of rld_text_rsolve \ + function stored in GOT. */ +#define DT_MIPS_PERF_SUFFIX 0x7000002e /* Default suffix of dso to be added \ + by rld on dlopen() calls. */ +#define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */ +#define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */ +#define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */ /* The address of .got.plt in an executable using the new non-PIC ABI. */ -#define DT_MIPS_PLTGOT 0x70000032 +#define DT_MIPS_PLTGOT 0x70000032 /* The base of the PLT in an executable using the new non-PIC ABI if that PLT is writable. For a non-writable PLT, this is omitted or has a zero value. */ -#define DT_MIPS_RWPLT 0x70000034 +#define DT_MIPS_RWPLT 0x70000034 /* An alternative description of the classic MIPS RLD_MAP that is usable in a PIE as it stores a relative offset from the address of the tag rather than an absolute address. */ -#define DT_MIPS_RLD_MAP_REL 0x70000035 +#define DT_MIPS_RLD_MAP_REL 0x70000035 /* GNU-style hash table with xlat. */ -#define DT_MIPS_XHASH 0x70000036 -#define DT_MIPS_NUM 0x37 +#define DT_MIPS_XHASH 0x70000036 +#define DT_MIPS_NUM 0x37 /* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */ -#define RHF_NONE 0 /* No flags */ -#define RHF_QUICKSTART (1 << 0) /* Use quickstart */ -#define RHF_NOTPOT (1 << 1) /* Hash size not power of 2 */ -#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) /* Ignore LD_LIBRARY_PATH */ -#define RHF_NO_MOVE (1 << 3) -#define RHF_SGI_ONLY (1 << 4) -#define RHF_GUARANTEE_INIT (1 << 5) -#define RHF_DELTA_C_PLUS_PLUS (1 << 6) +#define RHF_NONE 0 /* No flags */ +#define RHF_QUICKSTART (1 << 0) /* Use quickstart */ +#define RHF_NOTPOT (1 << 1) /* Hash size not power of 2 */ +#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) /* Ignore LD_LIBRARY_PATH */ +#define RHF_NO_MOVE (1 << 3) +#define RHF_SGI_ONLY (1 << 4) +#define RHF_GUARANTEE_INIT (1 << 5) +#define RHF_DELTA_C_PLUS_PLUS (1 << 6) #define RHF_GUARANTEE_START_INIT (1 << 7) -#define RHF_PIXIE (1 << 8) -#define RHF_DEFAULT_DELAY_LOAD (1 << 9) -#define RHF_REQUICKSTART (1 << 10) -#define RHF_REQUICKSTARTED (1 << 11) -#define RHF_CORD (1 << 12) -#define RHF_NO_UNRES_UNDEF (1 << 13) -#define RHF_RLD_ORDER_SAFE (1 << 14) +#define RHF_PIXIE (1 << 8) +#define RHF_DEFAULT_DELAY_LOAD (1 << 9) +#define RHF_REQUICKSTART (1 << 10) +#define RHF_REQUICKSTARTED (1 << 11) +#define RHF_CORD (1 << 12) +#define RHF_NO_UNRES_UNDEF (1 << 13) +#define RHF_RLD_ORDER_SAFE (1 << 14) /* Entries found in sections of type SHT_MIPS_LIBLIST. */ typedef struct { - Elf32_Word l_name; /* Name (string table index) */ - Elf32_Word l_time_stamp; /* Timestamp */ - Elf32_Word l_checksum; /* Checksum */ - Elf32_Word l_version; /* Interface version */ - Elf32_Word l_flags; /* Flags */ + Elf32_Word l_name; /* Name (string table index) */ + Elf32_Word l_time_stamp; /* Timestamp */ + Elf32_Word l_checksum; /* Checksum */ + Elf32_Word l_version; /* Interface version */ + Elf32_Word l_flags; /* Flags */ } Elf32_Lib; typedef struct { - Elf64_Word l_name; /* Name (string table index) */ - Elf64_Word l_time_stamp; /* Timestamp */ - Elf64_Word l_checksum; /* Checksum */ - Elf64_Word l_version; /* Interface version */ - Elf64_Word l_flags; /* Flags */ + Elf64_Word l_name; /* Name (string table index) */ + Elf64_Word l_time_stamp; /* Timestamp */ + Elf64_Word l_checksum; /* Checksum */ + Elf64_Word l_version; /* Interface version */ + Elf64_Word l_flags; /* Flags */ } Elf64_Lib; - /* Legal values for l_flags. */ -#define LL_NONE 0 -#define LL_EXACT_MATCH (1 << 0) /* Require exact match */ -#define LL_IGNORE_INT_VER (1 << 1) /* Ignore interface version */ +#define LL_NONE 0 +#define LL_EXACT_MATCH (1 << 0) /* Require exact match */ +#define LL_IGNORE_INT_VER (1 << 1) /* Ignore interface version */ #define LL_REQUIRE_MINOR (1 << 2) -#define LL_EXPORTS (1 << 3) -#define LL_DELAY_LOAD (1 << 4) -#define LL_DELTA (1 << 5) +#define LL_EXPORTS (1 << 3) +#define LL_DELAY_LOAD (1 << 4) +#define LL_DELTA (1 << 5) /* Entries found in sections of type SHT_MIPS_CONFLICT. */ @@ -2049,1083 +2029,1078 @@ typedef Elf32_Addr Elf32_Conflict; typedef struct { - /* Version of flags structure. */ - Elf32_Half version; - /* The level of the ISA: 1-5, 32, 64. */ - unsigned char isa_level; - /* The revision of ISA: 0 for MIPS V and below, 1-n otherwise. */ - unsigned char isa_rev; - /* The size of general purpose registers. */ - unsigned char gpr_size; - /* The size of co-processor 1 registers. */ - unsigned char cpr1_size; - /* The size of co-processor 2 registers. */ - unsigned char cpr2_size; - /* The floating-point ABI. */ - unsigned char fp_abi; - /* Processor-specific extension. */ - Elf32_Word isa_ext; - /* Mask of ASEs used. */ - Elf32_Word ases; - /* Mask of general flags. */ - Elf32_Word flags1; - Elf32_Word flags2; + /* Version of flags structure. */ + Elf32_Half version; + /* The level of the ISA: 1-5, 32, 64. */ + unsigned char isa_level; + /* The revision of ISA: 0 for MIPS V and below, 1-n otherwise. */ + unsigned char isa_rev; + /* The size of general purpose registers. */ + unsigned char gpr_size; + /* The size of co-processor 1 registers. */ + unsigned char cpr1_size; + /* The size of co-processor 2 registers. */ + unsigned char cpr2_size; + /* The floating-point ABI. */ + unsigned char fp_abi; + /* Processor-specific extension. */ + Elf32_Word isa_ext; + /* Mask of ASEs used. */ + Elf32_Word ases; + /* Mask of general flags. */ + Elf32_Word flags1; + Elf32_Word flags2; } Elf_MIPS_ABIFlags_v0; /* Values for the register size bytes of an abi flags structure. */ -#define MIPS_AFL_REG_NONE 0x00 /* No registers. */ -#define MIPS_AFL_REG_32 0x01 /* 32-bit registers. */ -#define MIPS_AFL_REG_64 0x02 /* 64-bit registers. */ -#define MIPS_AFL_REG_128 0x03 /* 128-bit registers. */ +#define MIPS_AFL_REG_NONE 0x00 /* No registers. */ +#define MIPS_AFL_REG_32 0x01 /* 32-bit registers. */ +#define MIPS_AFL_REG_64 0x02 /* 64-bit registers. */ +#define MIPS_AFL_REG_128 0x03 /* 128-bit registers. */ /* Masks for the ases word of an ABI flags structure. */ -#define MIPS_AFL_ASE_DSP 0x00000001 /* DSP ASE. */ -#define MIPS_AFL_ASE_DSPR2 0x00000002 /* DSP R2 ASE. */ -#define MIPS_AFL_ASE_EVA 0x00000004 /* Enhanced VA Scheme. */ -#define MIPS_AFL_ASE_MCU 0x00000008 /* MCU (MicroController) ASE. */ -#define MIPS_AFL_ASE_MDMX 0x00000010 /* MDMX ASE. */ -#define MIPS_AFL_ASE_MIPS3D 0x00000020 /* MIPS-3D ASE. */ -#define MIPS_AFL_ASE_MT 0x00000040 /* MT ASE. */ -#define MIPS_AFL_ASE_SMARTMIPS 0x00000080 /* SmartMIPS ASE. */ -#define MIPS_AFL_ASE_VIRT 0x00000100 /* VZ ASE. */ -#define MIPS_AFL_ASE_MSA 0x00000200 /* MSA ASE. */ -#define MIPS_AFL_ASE_MIPS16 0x00000400 /* MIPS16 ASE. */ -#define MIPS_AFL_ASE_MICROMIPS 0x00000800 /* MICROMIPS ASE. */ -#define MIPS_AFL_ASE_XPA 0x00001000 /* XPA ASE. */ -#define MIPS_AFL_ASE_MASK 0x00001fff /* All ASEs. */ +#define MIPS_AFL_ASE_DSP 0x00000001 /* DSP ASE. */ +#define MIPS_AFL_ASE_DSPR2 0x00000002 /* DSP R2 ASE. */ +#define MIPS_AFL_ASE_EVA 0x00000004 /* Enhanced VA Scheme. */ +#define MIPS_AFL_ASE_MCU 0x00000008 /* MCU (MicroController) ASE. */ +#define MIPS_AFL_ASE_MDMX 0x00000010 /* MDMX ASE. */ +#define MIPS_AFL_ASE_MIPS3D 0x00000020 /* MIPS-3D ASE. */ +#define MIPS_AFL_ASE_MT 0x00000040 /* MT ASE. */ +#define MIPS_AFL_ASE_SMARTMIPS 0x00000080 /* SmartMIPS ASE. */ +#define MIPS_AFL_ASE_VIRT 0x00000100 /* VZ ASE. */ +#define MIPS_AFL_ASE_MSA 0x00000200 /* MSA ASE. */ +#define MIPS_AFL_ASE_MIPS16 0x00000400 /* MIPS16 ASE. */ +#define MIPS_AFL_ASE_MICROMIPS 0x00000800 /* MICROMIPS ASE. */ +#define MIPS_AFL_ASE_XPA 0x00001000 /* XPA ASE. */ +#define MIPS_AFL_ASE_MASK 0x00001fff /* All ASEs. */ /* Values for the isa_ext word of an ABI flags structure. */ -#define MIPS_AFL_EXT_XLR 1 /* RMI Xlr instruction. */ -#define MIPS_AFL_EXT_OCTEON2 2 /* Cavium Networks Octeon2. */ -#define MIPS_AFL_EXT_OCTEONP 3 /* Cavium Networks OcteonP. */ -#define MIPS_AFL_EXT_LOONGSON_3A 4 /* Loongson 3A. */ -#define MIPS_AFL_EXT_OCTEON 5 /* Cavium Networks Octeon. */ -#define MIPS_AFL_EXT_5900 6 /* MIPS R5900 instruction. */ -#define MIPS_AFL_EXT_4650 7 /* MIPS R4650 instruction. */ -#define MIPS_AFL_EXT_4010 8 /* LSI R4010 instruction. */ -#define MIPS_AFL_EXT_4100 9 /* NEC VR4100 instruction. */ -#define MIPS_AFL_EXT_3900 10 /* Toshiba R3900 instruction. */ -#define MIPS_AFL_EXT_10000 11 /* MIPS R10000 instruction. */ -#define MIPS_AFL_EXT_SB1 12 /* Broadcom SB-1 instruction. */ -#define MIPS_AFL_EXT_4111 13 /* NEC VR4111/VR4181 instruction. */ -#define MIPS_AFL_EXT_4120 14 /* NEC VR4120 instruction. */ -#define MIPS_AFL_EXT_5400 15 /* NEC VR5400 instruction. */ -#define MIPS_AFL_EXT_5500 16 /* NEC VR5500 instruction. */ -#define MIPS_AFL_EXT_LOONGSON_2E 17 /* ST Microelectronics Loongson 2E. */ -#define MIPS_AFL_EXT_LOONGSON_2F 18 /* ST Microelectronics Loongson 2F. */ +#define MIPS_AFL_EXT_XLR 1 /* RMI Xlr instruction. */ +#define MIPS_AFL_EXT_OCTEON2 2 /* Cavium Networks Octeon2. */ +#define MIPS_AFL_EXT_OCTEONP 3 /* Cavium Networks OcteonP. */ +#define MIPS_AFL_EXT_LOONGSON_3A 4 /* Loongson 3A. */ +#define MIPS_AFL_EXT_OCTEON 5 /* Cavium Networks Octeon. */ +#define MIPS_AFL_EXT_5900 6 /* MIPS R5900 instruction. */ +#define MIPS_AFL_EXT_4650 7 /* MIPS R4650 instruction. */ +#define MIPS_AFL_EXT_4010 8 /* LSI R4010 instruction. */ +#define MIPS_AFL_EXT_4100 9 /* NEC VR4100 instruction. */ +#define MIPS_AFL_EXT_3900 10 /* Toshiba R3900 instruction. */ +#define MIPS_AFL_EXT_10000 11 /* MIPS R10000 instruction. */ +#define MIPS_AFL_EXT_SB1 12 /* Broadcom SB-1 instruction. */ +#define MIPS_AFL_EXT_4111 13 /* NEC VR4111/VR4181 instruction. */ +#define MIPS_AFL_EXT_4120 14 /* NEC VR4120 instruction. */ +#define MIPS_AFL_EXT_5400 15 /* NEC VR5400 instruction. */ +#define MIPS_AFL_EXT_5500 16 /* NEC VR5500 instruction. */ +#define MIPS_AFL_EXT_LOONGSON_2E 17 /* ST Microelectronics Loongson 2E. */ +#define MIPS_AFL_EXT_LOONGSON_2F 18 /* ST Microelectronics Loongson 2F. */ /* Masks for the flags1 word of an ABI flags structure. */ -#define MIPS_AFL_FLAGS1_ODDSPREG 1 /* Uses odd single-precision registers. */ +#define MIPS_AFL_FLAGS1_ODDSPREG 1 /* Uses odd single-precision registers. */ /* Object attribute values. */ -enum -{ - /* Not tagged or not using any ABIs affected by the differences. */ - Val_GNU_MIPS_ABI_FP_ANY = 0, - /* Using hard-float -mdouble-float. */ - Val_GNU_MIPS_ABI_FP_DOUBLE = 1, - /* Using hard-float -msingle-float. */ - Val_GNU_MIPS_ABI_FP_SINGLE = 2, - /* Using soft-float. */ - Val_GNU_MIPS_ABI_FP_SOFT = 3, - /* Using -mips32r2 -mfp64. */ - Val_GNU_MIPS_ABI_FP_OLD_64 = 4, - /* Using -mfpxx. */ - Val_GNU_MIPS_ABI_FP_XX = 5, - /* Using -mips32r2 -mfp64. */ - Val_GNU_MIPS_ABI_FP_64 = 6, - /* Using -mips32r2 -mfp64 -mno-odd-spreg. */ - Val_GNU_MIPS_ABI_FP_64A = 7, - /* Maximum allocated FP ABI value. */ - Val_GNU_MIPS_ABI_FP_MAX = 7 +enum { + /* Not tagged or not using any ABIs affected by the differences. */ + Val_GNU_MIPS_ABI_FP_ANY = 0, + /* Using hard-float -mdouble-float. */ + Val_GNU_MIPS_ABI_FP_DOUBLE = 1, + /* Using hard-float -msingle-float. */ + Val_GNU_MIPS_ABI_FP_SINGLE = 2, + /* Using soft-float. */ + Val_GNU_MIPS_ABI_FP_SOFT = 3, + /* Using -mips32r2 -mfp64. */ + Val_GNU_MIPS_ABI_FP_OLD_64 = 4, + /* Using -mfpxx. */ + Val_GNU_MIPS_ABI_FP_XX = 5, + /* Using -mips32r2 -mfp64. */ + Val_GNU_MIPS_ABI_FP_64 = 6, + /* Using -mips32r2 -mfp64 -mno-odd-spreg. */ + Val_GNU_MIPS_ABI_FP_64A = 7, + /* Maximum allocated FP ABI value. */ + Val_GNU_MIPS_ABI_FP_MAX = 7 }; /* HPPA specific definitions. */ /* Legal values for e_flags field of Elf32_Ehdr. */ -#define EF_PARISC_TRAPNIL 0x00010000 /* Trap nil pointer dereference. */ -#define EF_PARISC_EXT 0x00020000 /* Program uses arch. extensions. */ -#define EF_PARISC_LSB 0x00040000 /* Program expects little endian. */ -#define EF_PARISC_WIDE 0x00080000 /* Program expects wide mode. */ -#define EF_PARISC_NO_KABP 0x00100000 /* No kernel assisted branch - prediction. */ -#define EF_PARISC_LAZYSWAP 0x00400000 /* Allow lazy swapping. */ -#define EF_PARISC_ARCH 0x0000ffff /* Architecture version. */ +#define EF_PARISC_TRAPNIL 0x00010000 /* Trap nil pointer dereference. */ +#define EF_PARISC_EXT 0x00020000 /* Program uses arch. extensions. */ +#define EF_PARISC_LSB 0x00040000 /* Program expects little endian. */ +#define EF_PARISC_WIDE 0x00080000 /* Program expects wide mode. */ +#define EF_PARISC_NO_KABP 0x00100000 /* No kernel assisted branch \ + prediction. */ +#define EF_PARISC_LAZYSWAP 0x00400000 /* Allow lazy swapping. */ +#define EF_PARISC_ARCH 0x0000ffff /* Architecture version. */ /* Defined values for `e_flags & EF_PARISC_ARCH' are: */ -#define EFA_PARISC_1_0 0x020b /* PA-RISC 1.0 big-endian. */ -#define EFA_PARISC_1_1 0x0210 /* PA-RISC 1.1 big-endian. */ -#define EFA_PARISC_2_0 0x0214 /* PA-RISC 2.0 big-endian. */ +#define EFA_PARISC_1_0 0x020b /* PA-RISC 1.0 big-endian. */ +#define EFA_PARISC_1_1 0x0210 /* PA-RISC 1.1 big-endian. */ +#define EFA_PARISC_2_0 0x0214 /* PA-RISC 2.0 big-endian. */ /* Additional section indices. */ -#define SHN_PARISC_ANSI_COMMON 0xff00 /* Section for tentatively declared - symbols in ANSI C. */ -#define SHN_PARISC_HUGE_COMMON 0xff01 /* Common blocks in huge model. */ +#define SHN_PARISC_ANSI_COMMON 0xff00 /* Section for tentatively declared \ + symbols in ANSI C. */ +#define SHN_PARISC_HUGE_COMMON 0xff01 /* Common blocks in huge model. */ /* Legal values for sh_type field of Elf32_Shdr. */ -#define SHT_PARISC_EXT 0x70000000 /* Contains product specific ext. */ -#define SHT_PARISC_UNWIND 0x70000001 /* Unwind information. */ -#define SHT_PARISC_DOC 0x70000002 /* Debug info for optimized code. */ +#define SHT_PARISC_EXT 0x70000000 /* Contains product specific ext. */ +#define SHT_PARISC_UNWIND 0x70000001 /* Unwind information. */ +#define SHT_PARISC_DOC 0x70000002 /* Debug info for optimized code. */ /* Legal values for sh_flags field of Elf32_Shdr. */ -#define SHF_PARISC_SHORT 0x20000000 /* Section with short addressing. */ -#define SHF_PARISC_HUGE 0x40000000 /* Section far from gp. */ -#define SHF_PARISC_SBP 0x80000000 /* Static branch prediction code. */ +#define SHF_PARISC_SHORT 0x20000000 /* Section with short addressing. */ +#define SHF_PARISC_HUGE 0x40000000 /* Section far from gp. */ +#define SHF_PARISC_SBP 0x80000000 /* Static branch prediction code. */ /* Legal values for ST_TYPE subfield of st_info (symbol type). */ -#define STT_PARISC_MILLICODE 13 /* Millicode function entry point. */ +#define STT_PARISC_MILLICODE 13 /* Millicode function entry point. */ -#define STT_HP_OPAQUE (STT_LOOS + 0x1) -#define STT_HP_STUB (STT_LOOS + 0x2) +#define STT_HP_OPAQUE (STT_LOOS + 0x1) +#define STT_HP_STUB (STT_LOOS + 0x2) /* HPPA relocs. */ -#define R_PARISC_NONE 0 /* No reloc. */ -#define R_PARISC_DIR32 1 /* Direct 32-bit reference. */ -#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */ -#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */ -#define R_PARISC_DIR17F 4 /* 17 bits of eff. address. */ -#define R_PARISC_DIR14R 6 /* Right 14 bits of eff. address. */ -#define R_PARISC_PCREL32 9 /* 32-bit rel. address. */ -#define R_PARISC_PCREL21L 10 /* Left 21 bits of rel. address. */ -#define R_PARISC_PCREL17R 11 /* Right 17 bits of rel. address. */ -#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */ -#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */ -#define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */ -#define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */ -#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */ -#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */ -#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */ -#define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */ -#define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */ -#define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */ -#define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */ -#define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */ -#define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */ -#define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */ -#define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */ -#define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */ -#define R_PARISC_FPTR64 64 /* 64 bits function address. */ -#define R_PARISC_PLABEL32 65 /* 32 bits function address. */ -#define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */ -#define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */ -#define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */ -#define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */ -#define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */ -#define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */ -#define R_PARISC_PCREL16F 77 /* 16 bits PC-rel. address. */ -#define R_PARISC_PCREL16WF 78 /* 16 bits PC-rel. address. */ -#define R_PARISC_PCREL16DF 79 /* 16 bits PC-rel. address. */ -#define R_PARISC_DIR64 80 /* 64 bits of eff. address. */ -#define R_PARISC_DIR14WR 83 /* 14 bits of eff. address. */ -#define R_PARISC_DIR14DR 84 /* 14 bits of eff. address. */ -#define R_PARISC_DIR16F 85 /* 16 bits of eff. address. */ -#define R_PARISC_DIR16WF 86 /* 16 bits of eff. address. */ -#define R_PARISC_DIR16DF 87 /* 16 bits of eff. address. */ -#define R_PARISC_GPREL64 88 /* 64 bits of GP-rel. address. */ -#define R_PARISC_GPREL14WR 91 /* GP-rel. address, right 14 bits. */ -#define R_PARISC_GPREL14DR 92 /* GP-rel. address, right 14 bits. */ -#define R_PARISC_GPREL16F 93 /* 16 bits GP-rel. address. */ -#define R_PARISC_GPREL16WF 94 /* 16 bits GP-rel. address. */ -#define R_PARISC_GPREL16DF 95 /* 16 bits GP-rel. address. */ -#define R_PARISC_LTOFF64 96 /* 64 bits LT-rel. address. */ -#define R_PARISC_LTOFF14WR 99 /* LT-rel. address, right 14 bits. */ -#define R_PARISC_LTOFF14DR 100 /* LT-rel. address, right 14 bits. */ -#define R_PARISC_LTOFF16F 101 /* 16 bits LT-rel. address. */ -#define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */ -#define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */ -#define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */ -#define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */ -#define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */ -#define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */ -#define R_PARISC_PLTOFF16F 117 /* 16 bits LT-rel. address. */ -#define R_PARISC_PLTOFF16WF 118 /* 16 bits PLT-rel. address. */ -#define R_PARISC_PLTOFF16DF 119 /* 16 bits PLT-rel. address. */ -#define R_PARISC_LTOFF_FPTR64 120 /* 64 bits LT-rel. function ptr. */ -#define R_PARISC_LTOFF_FPTR14WR 123 /* LT-rel. fct. ptr., right 14 bits. */ -#define R_PARISC_LTOFF_FPTR14DR 124 /* LT-rel. fct. ptr., right 14 bits. */ -#define R_PARISC_LTOFF_FPTR16F 125 /* 16 bits LT-rel. function ptr. */ -#define R_PARISC_LTOFF_FPTR16WF 126 /* 16 bits LT-rel. function ptr. */ -#define R_PARISC_LTOFF_FPTR16DF 127 /* 16 bits LT-rel. function ptr. */ -#define R_PARISC_LORESERVE 128 -#define R_PARISC_COPY 128 /* Copy relocation. */ -#define R_PARISC_IPLT 129 /* Dynamic reloc, imported PLT */ -#define R_PARISC_EPLT 130 /* Dynamic reloc, exported PLT */ -#define R_PARISC_TPREL32 153 /* 32 bits TP-rel. address. */ -#define R_PARISC_TPREL21L 154 /* TP-rel. address, left 21 bits. */ -#define R_PARISC_TPREL14R 158 /* TP-rel. address, right 14 bits. */ -#define R_PARISC_LTOFF_TP21L 162 /* LT-TP-rel. address, left 21 bits. */ -#define R_PARISC_LTOFF_TP14R 166 /* LT-TP-rel. address, right 14 bits.*/ -#define R_PARISC_LTOFF_TP14F 167 /* 14 bits LT-TP-rel. address. */ -#define R_PARISC_TPREL64 216 /* 64 bits TP-rel. address. */ -#define R_PARISC_TPREL14WR 219 /* TP-rel. address, right 14 bits. */ -#define R_PARISC_TPREL14DR 220 /* TP-rel. address, right 14 bits. */ -#define R_PARISC_TPREL16F 221 /* 16 bits TP-rel. address. */ -#define R_PARISC_TPREL16WF 222 /* 16 bits TP-rel. address. */ -#define R_PARISC_TPREL16DF 223 /* 16 bits TP-rel. address. */ -#define R_PARISC_LTOFF_TP64 224 /* 64 bits LT-TP-rel. address. */ -#define R_PARISC_LTOFF_TP14WR 227 /* LT-TP-rel. address, right 14 bits.*/ -#define R_PARISC_LTOFF_TP14DR 228 /* LT-TP-rel. address, right 14 bits.*/ -#define R_PARISC_LTOFF_TP16F 229 /* 16 bits LT-TP-rel. address. */ -#define R_PARISC_LTOFF_TP16WF 230 /* 16 bits LT-TP-rel. address. */ -#define R_PARISC_LTOFF_TP16DF 231 /* 16 bits LT-TP-rel. address. */ -#define R_PARISC_GNU_VTENTRY 232 -#define R_PARISC_GNU_VTINHERIT 233 -#define R_PARISC_TLS_GD21L 234 /* GD 21-bit left. */ -#define R_PARISC_TLS_GD14R 235 /* GD 14-bit right. */ -#define R_PARISC_TLS_GDCALL 236 /* GD call to __t_g_a. */ -#define R_PARISC_TLS_LDM21L 237 /* LD module 21-bit left. */ -#define R_PARISC_TLS_LDM14R 238 /* LD module 14-bit right. */ -#define R_PARISC_TLS_LDMCALL 239 /* LD module call to __t_g_a. */ -#define R_PARISC_TLS_LDO21L 240 /* LD offset 21-bit left. */ -#define R_PARISC_TLS_LDO14R 241 /* LD offset 14-bit right. */ -#define R_PARISC_TLS_DTPMOD32 242 /* DTP module 32-bit. */ -#define R_PARISC_TLS_DTPMOD64 243 /* DTP module 64-bit. */ -#define R_PARISC_TLS_DTPOFF32 244 /* DTP offset 32-bit. */ -#define R_PARISC_TLS_DTPOFF64 245 /* DTP offset 32-bit. */ -#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L -#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R -#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L -#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R -#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 -#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 -#define R_PARISC_HIRESERVE 255 +#define R_PARISC_NONE 0 /* No reloc. */ +#define R_PARISC_DIR32 1 /* Direct 32-bit reference. */ +#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */ +#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */ +#define R_PARISC_DIR17F 4 /* 17 bits of eff. address. */ +#define R_PARISC_DIR14R 6 /* Right 14 bits of eff. address. */ +#define R_PARISC_PCREL32 9 /* 32-bit rel. address. */ +#define R_PARISC_PCREL21L 10 /* Left 21 bits of rel. address. */ +#define R_PARISC_PCREL17R 11 /* Right 17 bits of rel. address. */ +#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */ +#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */ +#define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */ +#define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */ +#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */ +#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */ +#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */ +#define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */ +#define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */ +#define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */ +#define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */ +#define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */ +#define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */ +#define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */ +#define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */ +#define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */ +#define R_PARISC_FPTR64 64 /* 64 bits function address. */ +#define R_PARISC_PLABEL32 65 /* 32 bits function address. */ +#define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */ +#define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */ +#define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */ +#define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */ +#define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */ +#define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */ +#define R_PARISC_PCREL16F 77 /* 16 bits PC-rel. address. */ +#define R_PARISC_PCREL16WF 78 /* 16 bits PC-rel. address. */ +#define R_PARISC_PCREL16DF 79 /* 16 bits PC-rel. address. */ +#define R_PARISC_DIR64 80 /* 64 bits of eff. address. */ +#define R_PARISC_DIR14WR 83 /* 14 bits of eff. address. */ +#define R_PARISC_DIR14DR 84 /* 14 bits of eff. address. */ +#define R_PARISC_DIR16F 85 /* 16 bits of eff. address. */ +#define R_PARISC_DIR16WF 86 /* 16 bits of eff. address. */ +#define R_PARISC_DIR16DF 87 /* 16 bits of eff. address. */ +#define R_PARISC_GPREL64 88 /* 64 bits of GP-rel. address. */ +#define R_PARISC_GPREL14WR 91 /* GP-rel. address, right 14 bits. */ +#define R_PARISC_GPREL14DR 92 /* GP-rel. address, right 14 bits. */ +#define R_PARISC_GPREL16F 93 /* 16 bits GP-rel. address. */ +#define R_PARISC_GPREL16WF 94 /* 16 bits GP-rel. address. */ +#define R_PARISC_GPREL16DF 95 /* 16 bits GP-rel. address. */ +#define R_PARISC_LTOFF64 96 /* 64 bits LT-rel. address. */ +#define R_PARISC_LTOFF14WR 99 /* LT-rel. address, right 14 bits. */ +#define R_PARISC_LTOFF14DR 100 /* LT-rel. address, right 14 bits. */ +#define R_PARISC_LTOFF16F 101 /* 16 bits LT-rel. address. */ +#define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */ +#define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */ +#define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */ +#define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */ +#define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */ +#define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */ +#define R_PARISC_PLTOFF16F 117 /* 16 bits LT-rel. address. */ +#define R_PARISC_PLTOFF16WF 118 /* 16 bits PLT-rel. address. */ +#define R_PARISC_PLTOFF16DF 119 /* 16 bits PLT-rel. address. */ +#define R_PARISC_LTOFF_FPTR64 120 /* 64 bits LT-rel. function ptr. */ +#define R_PARISC_LTOFF_FPTR14WR 123 /* LT-rel. fct. ptr., right 14 bits. */ +#define R_PARISC_LTOFF_FPTR14DR 124 /* LT-rel. fct. ptr., right 14 bits. */ +#define R_PARISC_LTOFF_FPTR16F 125 /* 16 bits LT-rel. function ptr. */ +#define R_PARISC_LTOFF_FPTR16WF 126 /* 16 bits LT-rel. function ptr. */ +#define R_PARISC_LTOFF_FPTR16DF 127 /* 16 bits LT-rel. function ptr. */ +#define R_PARISC_LORESERVE 128 +#define R_PARISC_COPY 128 /* Copy relocation. */ +#define R_PARISC_IPLT 129 /* Dynamic reloc, imported PLT */ +#define R_PARISC_EPLT 130 /* Dynamic reloc, exported PLT */ +#define R_PARISC_TPREL32 153 /* 32 bits TP-rel. address. */ +#define R_PARISC_TPREL21L 154 /* TP-rel. address, left 21 bits. */ +#define R_PARISC_TPREL14R 158 /* TP-rel. address, right 14 bits. */ +#define R_PARISC_LTOFF_TP21L 162 /* LT-TP-rel. address, left 21 bits. */ +#define R_PARISC_LTOFF_TP14R 166 /* LT-TP-rel. address, right 14 bits.*/ +#define R_PARISC_LTOFF_TP14F 167 /* 14 bits LT-TP-rel. address. */ +#define R_PARISC_TPREL64 216 /* 64 bits TP-rel. address. */ +#define R_PARISC_TPREL14WR 219 /* TP-rel. address, right 14 bits. */ +#define R_PARISC_TPREL14DR 220 /* TP-rel. address, right 14 bits. */ +#define R_PARISC_TPREL16F 221 /* 16 bits TP-rel. address. */ +#define R_PARISC_TPREL16WF 222 /* 16 bits TP-rel. address. */ +#define R_PARISC_TPREL16DF 223 /* 16 bits TP-rel. address. */ +#define R_PARISC_LTOFF_TP64 224 /* 64 bits LT-TP-rel. address. */ +#define R_PARISC_LTOFF_TP14WR 227 /* LT-TP-rel. address, right 14 bits.*/ +#define R_PARISC_LTOFF_TP14DR 228 /* LT-TP-rel. address, right 14 bits.*/ +#define R_PARISC_LTOFF_TP16F 229 /* 16 bits LT-TP-rel. address. */ +#define R_PARISC_LTOFF_TP16WF 230 /* 16 bits LT-TP-rel. address. */ +#define R_PARISC_LTOFF_TP16DF 231 /* 16 bits LT-TP-rel. address. */ +#define R_PARISC_GNU_VTENTRY 232 +#define R_PARISC_GNU_VTINHERIT 233 +#define R_PARISC_TLS_GD21L 234 /* GD 21-bit left. */ +#define R_PARISC_TLS_GD14R 235 /* GD 14-bit right. */ +#define R_PARISC_TLS_GDCALL 236 /* GD call to __t_g_a. */ +#define R_PARISC_TLS_LDM21L 237 /* LD module 21-bit left. */ +#define R_PARISC_TLS_LDM14R 238 /* LD module 14-bit right. */ +#define R_PARISC_TLS_LDMCALL 239 /* LD module call to __t_g_a. */ +#define R_PARISC_TLS_LDO21L 240 /* LD offset 21-bit left. */ +#define R_PARISC_TLS_LDO14R 241 /* LD offset 14-bit right. */ +#define R_PARISC_TLS_DTPMOD32 242 /* DTP module 32-bit. */ +#define R_PARISC_TLS_DTPMOD64 243 /* DTP module 64-bit. */ +#define R_PARISC_TLS_DTPOFF32 244 /* DTP offset 32-bit. */ +#define R_PARISC_TLS_DTPOFF64 245 /* DTP offset 32-bit. */ +#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L +#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R +#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L +#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R +#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 +#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 +#define R_PARISC_HIRESERVE 255 /* Legal values for p_type field of Elf32_Phdr/Elf64_Phdr. */ -#define PT_HP_TLS (PT_LOOS + 0x0) -#define PT_HP_CORE_NONE (PT_LOOS + 0x1) -#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) -#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) -#define PT_HP_CORE_COMM (PT_LOOS + 0x4) -#define PT_HP_CORE_PROC (PT_LOOS + 0x5) -#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) -#define PT_HP_CORE_STACK (PT_LOOS + 0x7) -#define PT_HP_CORE_SHM (PT_LOOS + 0x8) -#define PT_HP_CORE_MMF (PT_LOOS + 0x9) -#define PT_HP_PARALLEL (PT_LOOS + 0x10) -#define PT_HP_FASTBIND (PT_LOOS + 0x11) -#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) -#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) -#define PT_HP_STACK (PT_LOOS + 0x14) - -#define PT_PARISC_ARCHEXT 0x70000000 -#define PT_PARISC_UNWIND 0x70000001 +#define PT_HP_TLS (PT_LOOS + 0x0) +#define PT_HP_CORE_NONE (PT_LOOS + 0x1) +#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) +#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) +#define PT_HP_CORE_COMM (PT_LOOS + 0x4) +#define PT_HP_CORE_PROC (PT_LOOS + 0x5) +#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) +#define PT_HP_CORE_STACK (PT_LOOS + 0x7) +#define PT_HP_CORE_SHM (PT_LOOS + 0x8) +#define PT_HP_CORE_MMF (PT_LOOS + 0x9) +#define PT_HP_PARALLEL (PT_LOOS + 0x10) +#define PT_HP_FASTBIND (PT_LOOS + 0x11) +#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) +#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) +#define PT_HP_STACK (PT_LOOS + 0x14) + +#define PT_PARISC_ARCHEXT 0x70000000 +#define PT_PARISC_UNWIND 0x70000001 /* Legal values for p_flags field of Elf32_Phdr/Elf64_Phdr. */ -#define PF_PARISC_SBP 0x08000000 - -#define PF_HP_PAGE_SIZE 0x00100000 -#define PF_HP_FAR_SHARED 0x00200000 -#define PF_HP_NEAR_SHARED 0x00400000 -#define PF_HP_CODE 0x01000000 -#define PF_HP_MODIFY 0x02000000 -#define PF_HP_LAZYSWAP 0x04000000 -#define PF_HP_SBP 0x08000000 +#define PF_PARISC_SBP 0x08000000 +#define PF_HP_PAGE_SIZE 0x00100000 +#define PF_HP_FAR_SHARED 0x00200000 +#define PF_HP_NEAR_SHARED 0x00400000 +#define PF_HP_CODE 0x01000000 +#define PF_HP_MODIFY 0x02000000 +#define PF_HP_LAZYSWAP 0x04000000 +#define PF_HP_SBP 0x08000000 /* Alpha specific definitions. */ /* Legal values for e_flags field of Elf64_Ehdr. */ -#define EF_ALPHA_32BIT 1 /* All addresses must be < 2GB. */ -#define EF_ALPHA_CANRELAX 2 /* Relocations for relaxing exist. */ +#define EF_ALPHA_32BIT 1 /* All addresses must be < 2GB. */ +#define EF_ALPHA_CANRELAX 2 /* Relocations for relaxing exist. */ /* Legal values for sh_type field of Elf64_Shdr. */ /* These two are primerily concerned with ECOFF debugging info. */ -#define SHT_ALPHA_DEBUG 0x70000001 -#define SHT_ALPHA_REGINFO 0x70000002 +#define SHT_ALPHA_DEBUG 0x70000001 +#define SHT_ALPHA_REGINFO 0x70000002 /* Legal values for sh_flags field of Elf64_Shdr. */ -#define SHF_ALPHA_GPREL 0x10000000 +#define SHF_ALPHA_GPREL 0x10000000 /* Legal values for st_other field of Elf64_Sym. */ -#define STO_ALPHA_NOPV 0x80 /* No PV required. */ -#define STO_ALPHA_STD_GPLOAD 0x88 /* PV only used for initial ldgp. */ +#define STO_ALPHA_NOPV 0x80 /* No PV required. */ +#define STO_ALPHA_STD_GPLOAD 0x88 /* PV only used for initial ldgp. */ /* Alpha relocs. */ -#define R_ALPHA_NONE 0 /* No reloc */ -#define R_ALPHA_REFLONG 1 /* Direct 32 bit */ -#define R_ALPHA_REFQUAD 2 /* Direct 64 bit */ -#define R_ALPHA_GPREL32 3 /* GP relative 32 bit */ -#define R_ALPHA_LITERAL 4 /* GP relative 16 bit w/optimization */ -#define R_ALPHA_LITUSE 5 /* Optimization hint for LITERAL */ -#define R_ALPHA_GPDISP 6 /* Add displacement to GP */ -#define R_ALPHA_BRADDR 7 /* PC+4 relative 23 bit shifted */ -#define R_ALPHA_HINT 8 /* PC+4 relative 16 bit shifted */ -#define R_ALPHA_SREL16 9 /* PC relative 16 bit */ -#define R_ALPHA_SREL32 10 /* PC relative 32 bit */ -#define R_ALPHA_SREL64 11 /* PC relative 64 bit */ -#define R_ALPHA_GPRELHIGH 17 /* GP relative 32 bit, high 16 bits */ -#define R_ALPHA_GPRELLOW 18 /* GP relative 32 bit, low 16 bits */ -#define R_ALPHA_GPREL16 19 /* GP relative 16 bit */ -#define R_ALPHA_COPY 24 /* Copy symbol at runtime */ -#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */ -#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */ -#define R_ALPHA_RELATIVE 27 /* Adjust by program base */ -#define R_ALPHA_TLS_GD_HI 28 -#define R_ALPHA_TLSGD 29 -#define R_ALPHA_TLS_LDM 30 -#define R_ALPHA_DTPMOD64 31 -#define R_ALPHA_GOTDTPREL 32 -#define R_ALPHA_DTPREL64 33 -#define R_ALPHA_DTPRELHI 34 -#define R_ALPHA_DTPRELLO 35 -#define R_ALPHA_DTPREL16 36 -#define R_ALPHA_GOTTPREL 37 -#define R_ALPHA_TPREL64 38 -#define R_ALPHA_TPRELHI 39 -#define R_ALPHA_TPRELLO 40 -#define R_ALPHA_TPREL16 41 +#define R_ALPHA_NONE 0 /* No reloc */ +#define R_ALPHA_REFLONG 1 /* Direct 32 bit */ +#define R_ALPHA_REFQUAD 2 /* Direct 64 bit */ +#define R_ALPHA_GPREL32 3 /* GP relative 32 bit */ +#define R_ALPHA_LITERAL 4 /* GP relative 16 bit w/optimization */ +#define R_ALPHA_LITUSE 5 /* Optimization hint for LITERAL */ +#define R_ALPHA_GPDISP 6 /* Add displacement to GP */ +#define R_ALPHA_BRADDR 7 /* PC+4 relative 23 bit shifted */ +#define R_ALPHA_HINT 8 /* PC+4 relative 16 bit shifted */ +#define R_ALPHA_SREL16 9 /* PC relative 16 bit */ +#define R_ALPHA_SREL32 10 /* PC relative 32 bit */ +#define R_ALPHA_SREL64 11 /* PC relative 64 bit */ +#define R_ALPHA_GPRELHIGH 17 /* GP relative 32 bit, high 16 bits */ +#define R_ALPHA_GPRELLOW 18 /* GP relative 32 bit, low 16 bits */ +#define R_ALPHA_GPREL16 19 /* GP relative 16 bit */ +#define R_ALPHA_COPY 24 /* Copy symbol at runtime */ +#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */ +#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */ +#define R_ALPHA_RELATIVE 27 /* Adjust by program base */ +#define R_ALPHA_TLS_GD_HI 28 +#define R_ALPHA_TLSGD 29 +#define R_ALPHA_TLS_LDM 30 +#define R_ALPHA_DTPMOD64 31 +#define R_ALPHA_GOTDTPREL 32 +#define R_ALPHA_DTPREL64 33 +#define R_ALPHA_DTPRELHI 34 +#define R_ALPHA_DTPRELLO 35 +#define R_ALPHA_DTPREL16 36 +#define R_ALPHA_GOTTPREL 37 +#define R_ALPHA_TPREL64 38 +#define R_ALPHA_TPRELHI 39 +#define R_ALPHA_TPRELLO 40 +#define R_ALPHA_TPREL16 41 /* Keep this the last entry. */ -#define R_ALPHA_NUM 46 +#define R_ALPHA_NUM 46 /* Magic values of the LITUSE relocation addend. */ -#define LITUSE_ALPHA_ADDR 0 -#define LITUSE_ALPHA_BASE 1 -#define LITUSE_ALPHA_BYTOFF 2 -#define LITUSE_ALPHA_JSR 3 -#define LITUSE_ALPHA_TLS_GD 4 -#define LITUSE_ALPHA_TLS_LDM 5 +#define LITUSE_ALPHA_ADDR 0 +#define LITUSE_ALPHA_BASE 1 +#define LITUSE_ALPHA_BYTOFF 2 +#define LITUSE_ALPHA_JSR 3 +#define LITUSE_ALPHA_TLS_GD 4 +#define LITUSE_ALPHA_TLS_LDM 5 /* Legal values for d_tag of Elf64_Dyn. */ -#define DT_ALPHA_PLTRO (DT_LOPROC + 0) -#define DT_ALPHA_NUM 1 +#define DT_ALPHA_PLTRO (DT_LOPROC + 0) +#define DT_ALPHA_NUM 1 /* PowerPC specific declarations */ /* Values for Elf32/64_Ehdr.e_flags. */ -#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag */ +#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag */ /* Cygnus local bits below */ -#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag*/ -#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib - flag */ +#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag*/ +#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib \ + flag */ /* PowerPC relocations defined by the ABIs */ -#define R_PPC_NONE 0 -#define R_PPC_ADDR32 1 /* 32bit absolute address */ -#define R_PPC_ADDR24 2 /* 26bit address, 2 bits ignored. */ -#define R_PPC_ADDR16 3 /* 16bit absolute address */ -#define R_PPC_ADDR16_LO 4 /* lower 16bit of absolute address */ -#define R_PPC_ADDR16_HI 5 /* high 16bit of absolute address */ -#define R_PPC_ADDR16_HA 6 /* adjusted high 16bit */ -#define R_PPC_ADDR14 7 /* 16bit address, 2 bits ignored */ -#define R_PPC_ADDR14_BRTAKEN 8 -#define R_PPC_ADDR14_BRNTAKEN 9 -#define R_PPC_REL24 10 /* PC relative 26 bit */ -#define R_PPC_REL14 11 /* PC relative 16 bit */ -#define R_PPC_REL14_BRTAKEN 12 -#define R_PPC_REL14_BRNTAKEN 13 -#define R_PPC_GOT16 14 -#define R_PPC_GOT16_LO 15 -#define R_PPC_GOT16_HI 16 -#define R_PPC_GOT16_HA 17 -#define R_PPC_PLTREL24 18 -#define R_PPC_COPY 19 -#define R_PPC_GLOB_DAT 20 -#define R_PPC_JMP_SLOT 21 -#define R_PPC_RELATIVE 22 -#define R_PPC_LOCAL24PC 23 -#define R_PPC_UADDR32 24 -#define R_PPC_UADDR16 25 -#define R_PPC_REL32 26 -#define R_PPC_PLT32 27 -#define R_PPC_PLTREL32 28 -#define R_PPC_PLT16_LO 29 -#define R_PPC_PLT16_HI 30 -#define R_PPC_PLT16_HA 31 -#define R_PPC_SDAREL16 32 -#define R_PPC_SECTOFF 33 -#define R_PPC_SECTOFF_LO 34 -#define R_PPC_SECTOFF_HI 35 -#define R_PPC_SECTOFF_HA 36 +#define R_PPC_NONE 0 +#define R_PPC_ADDR32 1 /* 32bit absolute address */ +#define R_PPC_ADDR24 2 /* 26bit address, 2 bits ignored. */ +#define R_PPC_ADDR16 3 /* 16bit absolute address */ +#define R_PPC_ADDR16_LO 4 /* lower 16bit of absolute address */ +#define R_PPC_ADDR16_HI 5 /* high 16bit of absolute address */ +#define R_PPC_ADDR16_HA 6 /* adjusted high 16bit */ +#define R_PPC_ADDR14 7 /* 16bit address, 2 bits ignored */ +#define R_PPC_ADDR14_BRTAKEN 8 +#define R_PPC_ADDR14_BRNTAKEN 9 +#define R_PPC_REL24 10 /* PC relative 26 bit */ +#define R_PPC_REL14 11 /* PC relative 16 bit */ +#define R_PPC_REL14_BRTAKEN 12 +#define R_PPC_REL14_BRNTAKEN 13 +#define R_PPC_GOT16 14 +#define R_PPC_GOT16_LO 15 +#define R_PPC_GOT16_HI 16 +#define R_PPC_GOT16_HA 17 +#define R_PPC_PLTREL24 18 +#define R_PPC_COPY 19 +#define R_PPC_GLOB_DAT 20 +#define R_PPC_JMP_SLOT 21 +#define R_PPC_RELATIVE 22 +#define R_PPC_LOCAL24PC 23 +#define R_PPC_UADDR32 24 +#define R_PPC_UADDR16 25 +#define R_PPC_REL32 26 +#define R_PPC_PLT32 27 +#define R_PPC_PLTREL32 28 +#define R_PPC_PLT16_LO 29 +#define R_PPC_PLT16_HI 30 +#define R_PPC_PLT16_HA 31 +#define R_PPC_SDAREL16 32 +#define R_PPC_SECTOFF 33 +#define R_PPC_SECTOFF_LO 34 +#define R_PPC_SECTOFF_HI 35 +#define R_PPC_SECTOFF_HA 36 /* PowerPC relocations defined for the TLS access ABI. */ -#define R_PPC_TLS 67 /* none (sym+add)@tls */ -#define R_PPC_DTPMOD32 68 /* word32 (sym+add)@dtpmod */ -#define R_PPC_TPREL16 69 /* half16* (sym+add)@tprel */ -#define R_PPC_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */ -#define R_PPC_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */ -#define R_PPC_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */ -#define R_PPC_TPREL32 73 /* word32 (sym+add)@tprel */ -#define R_PPC_DTPREL16 74 /* half16* (sym+add)@dtprel */ -#define R_PPC_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */ -#define R_PPC_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */ -#define R_PPC_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */ -#define R_PPC_DTPREL32 78 /* word32 (sym+add)@dtprel */ -#define R_PPC_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */ -#define R_PPC_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */ -#define R_PPC_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */ -#define R_PPC_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */ -#define R_PPC_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */ -#define R_PPC_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */ -#define R_PPC_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */ -#define R_PPC_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */ -#define R_PPC_GOT_TPREL16 87 /* half16* (sym+add)@got@tprel */ -#define R_PPC_GOT_TPREL16_LO 88 /* half16 (sym+add)@got@tprel@l */ -#define R_PPC_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */ -#define R_PPC_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */ -#define R_PPC_GOT_DTPREL16 91 /* half16* (sym+add)@got@dtprel */ -#define R_PPC_GOT_DTPREL16_LO 92 /* half16* (sym+add)@got@dtprel@l */ -#define R_PPC_GOT_DTPREL16_HI 93 /* half16* (sym+add)@got@dtprel@h */ -#define R_PPC_GOT_DTPREL16_HA 94 /* half16* (sym+add)@got@dtprel@ha */ -#define R_PPC_TLSGD 95 /* none (sym+add)@tlsgd */ -#define R_PPC_TLSLD 96 /* none (sym+add)@tlsld */ +#define R_PPC_TLS 67 /* none (sym+add)@tls */ +#define R_PPC_DTPMOD32 68 /* word32 (sym+add)@dtpmod */ +#define R_PPC_TPREL16 69 /* half16* (sym+add)@tprel */ +#define R_PPC_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */ +#define R_PPC_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */ +#define R_PPC_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */ +#define R_PPC_TPREL32 73 /* word32 (sym+add)@tprel */ +#define R_PPC_DTPREL16 74 /* half16* (sym+add)@dtprel */ +#define R_PPC_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */ +#define R_PPC_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */ +#define R_PPC_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */ +#define R_PPC_DTPREL32 78 /* word32 (sym+add)@dtprel */ +#define R_PPC_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */ +#define R_PPC_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */ +#define R_PPC_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */ +#define R_PPC_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */ +#define R_PPC_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */ +#define R_PPC_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */ +#define R_PPC_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */ +#define R_PPC_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */ +#define R_PPC_GOT_TPREL16 87 /* half16* (sym+add)@got@tprel */ +#define R_PPC_GOT_TPREL16_LO 88 /* half16 (sym+add)@got@tprel@l */ +#define R_PPC_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */ +#define R_PPC_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */ +#define R_PPC_GOT_DTPREL16 91 /* half16* (sym+add)@got@dtprel */ +#define R_PPC_GOT_DTPREL16_LO 92 /* half16* (sym+add)@got@dtprel@l */ +#define R_PPC_GOT_DTPREL16_HI 93 /* half16* (sym+add)@got@dtprel@h */ +#define R_PPC_GOT_DTPREL16_HA 94 /* half16* (sym+add)@got@dtprel@ha */ +#define R_PPC_TLSGD 95 /* none (sym+add)@tlsgd */ +#define R_PPC_TLSLD 96 /* none (sym+add)@tlsld */ /* The remaining relocs are from the Embedded ELF ABI, and are not in the SVR4 ELF ABI. */ -#define R_PPC_EMB_NADDR32 101 -#define R_PPC_EMB_NADDR16 102 -#define R_PPC_EMB_NADDR16_LO 103 -#define R_PPC_EMB_NADDR16_HI 104 -#define R_PPC_EMB_NADDR16_HA 105 -#define R_PPC_EMB_SDAI16 106 -#define R_PPC_EMB_SDA2I16 107 -#define R_PPC_EMB_SDA2REL 108 -#define R_PPC_EMB_SDA21 109 /* 16 bit offset in SDA */ -#define R_PPC_EMB_MRKREF 110 -#define R_PPC_EMB_RELSEC16 111 -#define R_PPC_EMB_RELST_LO 112 -#define R_PPC_EMB_RELST_HI 113 -#define R_PPC_EMB_RELST_HA 114 -#define R_PPC_EMB_BIT_FLD 115 -#define R_PPC_EMB_RELSDA 116 /* 16 bit relative offset in SDA */ +#define R_PPC_EMB_NADDR32 101 +#define R_PPC_EMB_NADDR16 102 +#define R_PPC_EMB_NADDR16_LO 103 +#define R_PPC_EMB_NADDR16_HI 104 +#define R_PPC_EMB_NADDR16_HA 105 +#define R_PPC_EMB_SDAI16 106 +#define R_PPC_EMB_SDA2I16 107 +#define R_PPC_EMB_SDA2REL 108 +#define R_PPC_EMB_SDA21 109 /* 16 bit offset in SDA */ +#define R_PPC_EMB_MRKREF 110 +#define R_PPC_EMB_RELSEC16 111 +#define R_PPC_EMB_RELST_LO 112 +#define R_PPC_EMB_RELST_HI 113 +#define R_PPC_EMB_RELST_HA 114 +#define R_PPC_EMB_BIT_FLD 115 +#define R_PPC_EMB_RELSDA 116 /* 16 bit relative offset in SDA */ /* Diab tool relocations. */ -#define R_PPC_DIAB_SDA21_LO 180 /* like EMB_SDA21, but lower 16 bit */ -#define R_PPC_DIAB_SDA21_HI 181 /* like EMB_SDA21, but high 16 bit */ -#define R_PPC_DIAB_SDA21_HA 182 /* like EMB_SDA21, adjusted high 16 */ -#define R_PPC_DIAB_RELSDA_LO 183 /* like EMB_RELSDA, but lower 16 bit */ -#define R_PPC_DIAB_RELSDA_HI 184 /* like EMB_RELSDA, but high 16 bit */ -#define R_PPC_DIAB_RELSDA_HA 185 /* like EMB_RELSDA, adjusted high 16 */ +#define R_PPC_DIAB_SDA21_LO 180 /* like EMB_SDA21, but lower 16 bit */ +#define R_PPC_DIAB_SDA21_HI 181 /* like EMB_SDA21, but high 16 bit */ +#define R_PPC_DIAB_SDA21_HA 182 /* like EMB_SDA21, adjusted high 16 */ +#define R_PPC_DIAB_RELSDA_LO 183 /* like EMB_RELSDA, but lower 16 bit */ +#define R_PPC_DIAB_RELSDA_HI 184 /* like EMB_RELSDA, but high 16 bit */ +#define R_PPC_DIAB_RELSDA_HA 185 /* like EMB_RELSDA, adjusted high 16 */ /* GNU extension to support local ifunc. */ -#define R_PPC_IRELATIVE 248 +#define R_PPC_IRELATIVE 248 /* GNU relocs used in PIC code sequences. */ -#define R_PPC_REL16 249 /* half16 (sym+add-.) */ -#define R_PPC_REL16_LO 250 /* half16 (sym+add-.)@l */ -#define R_PPC_REL16_HI 251 /* half16 (sym+add-.)@h */ -#define R_PPC_REL16_HA 252 /* half16 (sym+add-.)@ha */ +#define R_PPC_REL16 249 /* half16 (sym+add-.) */ +#define R_PPC_REL16_LO 250 /* half16 (sym+add-.)@l */ +#define R_PPC_REL16_HI 251 /* half16 (sym+add-.)@h */ +#define R_PPC_REL16_HA 252 /* half16 (sym+add-.)@ha */ /* This is a phony reloc to handle any old fashioned TOC16 references that may still be in object files. */ -#define R_PPC_TOC16 255 +#define R_PPC_TOC16 255 /* PowerPC specific values for the Dyn d_tag field. */ -#define DT_PPC_GOT (DT_LOPROC + 0) -#define DT_PPC_OPT (DT_LOPROC + 1) -#define DT_PPC_NUM 2 +#define DT_PPC_GOT (DT_LOPROC + 0) +#define DT_PPC_OPT (DT_LOPROC + 1) +#define DT_PPC_NUM 2 /* PowerPC specific values for the DT_PPC_OPT Dyn entry. */ -#define PPC_OPT_TLS 1 +#define PPC_OPT_TLS 1 /* PowerPC64 relocations defined by the ABIs */ -#define R_PPC64_NONE R_PPC_NONE -#define R_PPC64_ADDR32 R_PPC_ADDR32 /* 32bit absolute address */ -#define R_PPC64_ADDR24 R_PPC_ADDR24 /* 26bit address, word aligned */ -#define R_PPC64_ADDR16 R_PPC_ADDR16 /* 16bit absolute address */ -#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO /* lower 16bits of address */ -#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI /* high 16bits of address. */ -#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA /* adjusted high 16bits. */ -#define R_PPC64_ADDR14 R_PPC_ADDR14 /* 16bit address, word aligned */ -#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN -#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN -#define R_PPC64_REL24 R_PPC_REL24 /* PC-rel. 26 bit, word aligned */ -#define R_PPC64_REL14 R_PPC_REL14 /* PC relative 16 bit */ -#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN -#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN -#define R_PPC64_GOT16 R_PPC_GOT16 -#define R_PPC64_GOT16_LO R_PPC_GOT16_LO -#define R_PPC64_GOT16_HI R_PPC_GOT16_HI -#define R_PPC64_GOT16_HA R_PPC_GOT16_HA - -#define R_PPC64_COPY R_PPC_COPY -#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT -#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT -#define R_PPC64_RELATIVE R_PPC_RELATIVE - -#define R_PPC64_UADDR32 R_PPC_UADDR32 -#define R_PPC64_UADDR16 R_PPC_UADDR16 -#define R_PPC64_REL32 R_PPC_REL32 -#define R_PPC64_PLT32 R_PPC_PLT32 -#define R_PPC64_PLTREL32 R_PPC_PLTREL32 -#define R_PPC64_PLT16_LO R_PPC_PLT16_LO -#define R_PPC64_PLT16_HI R_PPC_PLT16_HI -#define R_PPC64_PLT16_HA R_PPC_PLT16_HA - -#define R_PPC64_SECTOFF R_PPC_SECTOFF -#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO -#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI -#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA -#define R_PPC64_ADDR30 37 /* word30 (S + A - P) >> 2 */ -#define R_PPC64_ADDR64 38 /* doubleword64 S + A */ -#define R_PPC64_ADDR16_HIGHER 39 /* half16 #higher(S + A) */ -#define R_PPC64_ADDR16_HIGHERA 40 /* half16 #highera(S + A) */ -#define R_PPC64_ADDR16_HIGHEST 41 /* half16 #highest(S + A) */ -#define R_PPC64_ADDR16_HIGHESTA 42 /* half16 #highesta(S + A) */ -#define R_PPC64_UADDR64 43 /* doubleword64 S + A */ -#define R_PPC64_REL64 44 /* doubleword64 S + A - P */ -#define R_PPC64_PLT64 45 /* doubleword64 L + A */ -#define R_PPC64_PLTREL64 46 /* doubleword64 L + A - P */ -#define R_PPC64_TOC16 47 /* half16* S + A - .TOC */ -#define R_PPC64_TOC16_LO 48 /* half16 #lo(S + A - .TOC.) */ -#define R_PPC64_TOC16_HI 49 /* half16 #hi(S + A - .TOC.) */ -#define R_PPC64_TOC16_HA 50 /* half16 #ha(S + A - .TOC.) */ -#define R_PPC64_TOC 51 /* doubleword64 .TOC */ -#define R_PPC64_PLTGOT16 52 /* half16* M + A */ -#define R_PPC64_PLTGOT16_LO 53 /* half16 #lo(M + A) */ -#define R_PPC64_PLTGOT16_HI 54 /* half16 #hi(M + A) */ -#define R_PPC64_PLTGOT16_HA 55 /* half16 #ha(M + A) */ - -#define R_PPC64_ADDR16_DS 56 /* half16ds* (S + A) >> 2 */ -#define R_PPC64_ADDR16_LO_DS 57 /* half16ds #lo(S + A) >> 2 */ -#define R_PPC64_GOT16_DS 58 /* half16ds* (G + A) >> 2 */ -#define R_PPC64_GOT16_LO_DS 59 /* half16ds #lo(G + A) >> 2 */ -#define R_PPC64_PLT16_LO_DS 60 /* half16ds #lo(L + A) >> 2 */ -#define R_PPC64_SECTOFF_DS 61 /* half16ds* (R + A) >> 2 */ -#define R_PPC64_SECTOFF_LO_DS 62 /* half16ds #lo(R + A) >> 2 */ -#define R_PPC64_TOC16_DS 63 /* half16ds* (S + A - .TOC.) >> 2 */ -#define R_PPC64_TOC16_LO_DS 64 /* half16ds #lo(S + A - .TOC.) >> 2 */ -#define R_PPC64_PLTGOT16_DS 65 /* half16ds* (M + A) >> 2 */ -#define R_PPC64_PLTGOT16_LO_DS 66 /* half16ds #lo(M + A) >> 2 */ +#define R_PPC64_NONE R_PPC_NONE +#define R_PPC64_ADDR32 R_PPC_ADDR32 /* 32bit absolute address */ +#define R_PPC64_ADDR24 R_PPC_ADDR24 /* 26bit address, word aligned */ +#define R_PPC64_ADDR16 R_PPC_ADDR16 /* 16bit absolute address */ +#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO /* lower 16bits of address */ +#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI /* high 16bits of address. */ +#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA /* adjusted high 16bits. */ +#define R_PPC64_ADDR14 R_PPC_ADDR14 /* 16bit address, word aligned */ +#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN +#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN +#define R_PPC64_REL24 R_PPC_REL24 /* PC-rel. 26 bit, word aligned */ +#define R_PPC64_REL14 R_PPC_REL14 /* PC relative 16 bit */ +#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN +#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN +#define R_PPC64_GOT16 R_PPC_GOT16 +#define R_PPC64_GOT16_LO R_PPC_GOT16_LO +#define R_PPC64_GOT16_HI R_PPC_GOT16_HI +#define R_PPC64_GOT16_HA R_PPC_GOT16_HA + +#define R_PPC64_COPY R_PPC_COPY +#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT +#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT +#define R_PPC64_RELATIVE R_PPC_RELATIVE + +#define R_PPC64_UADDR32 R_PPC_UADDR32 +#define R_PPC64_UADDR16 R_PPC_UADDR16 +#define R_PPC64_REL32 R_PPC_REL32 +#define R_PPC64_PLT32 R_PPC_PLT32 +#define R_PPC64_PLTREL32 R_PPC_PLTREL32 +#define R_PPC64_PLT16_LO R_PPC_PLT16_LO +#define R_PPC64_PLT16_HI R_PPC_PLT16_HI +#define R_PPC64_PLT16_HA R_PPC_PLT16_HA + +#define R_PPC64_SECTOFF R_PPC_SECTOFF +#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO +#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI +#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA +#define R_PPC64_ADDR30 37 /* word30 (S + A - P) >> 2 */ +#define R_PPC64_ADDR64 38 /* doubleword64 S + A */ +#define R_PPC64_ADDR16_HIGHER 39 /* half16 #higher(S + A) */ +#define R_PPC64_ADDR16_HIGHERA 40 /* half16 #highera(S + A) */ +#define R_PPC64_ADDR16_HIGHEST 41 /* half16 #highest(S + A) */ +#define R_PPC64_ADDR16_HIGHESTA 42 /* half16 #highesta(S + A) */ +#define R_PPC64_UADDR64 43 /* doubleword64 S + A */ +#define R_PPC64_REL64 44 /* doubleword64 S + A - P */ +#define R_PPC64_PLT64 45 /* doubleword64 L + A */ +#define R_PPC64_PLTREL64 46 /* doubleword64 L + A - P */ +#define R_PPC64_TOC16 47 /* half16* S + A - .TOC */ +#define R_PPC64_TOC16_LO 48 /* half16 #lo(S + A - .TOC.) */ +#define R_PPC64_TOC16_HI 49 /* half16 #hi(S + A - .TOC.) */ +#define R_PPC64_TOC16_HA 50 /* half16 #ha(S + A - .TOC.) */ +#define R_PPC64_TOC 51 /* doubleword64 .TOC */ +#define R_PPC64_PLTGOT16 52 /* half16* M + A */ +#define R_PPC64_PLTGOT16_LO 53 /* half16 #lo(M + A) */ +#define R_PPC64_PLTGOT16_HI 54 /* half16 #hi(M + A) */ +#define R_PPC64_PLTGOT16_HA 55 /* half16 #ha(M + A) */ + +#define R_PPC64_ADDR16_DS 56 /* half16ds* (S + A) >> 2 */ +#define R_PPC64_ADDR16_LO_DS 57 /* half16ds #lo(S + A) >> 2 */ +#define R_PPC64_GOT16_DS 58 /* half16ds* (G + A) >> 2 */ +#define R_PPC64_GOT16_LO_DS 59 /* half16ds #lo(G + A) >> 2 */ +#define R_PPC64_PLT16_LO_DS 60 /* half16ds #lo(L + A) >> 2 */ +#define R_PPC64_SECTOFF_DS 61 /* half16ds* (R + A) >> 2 */ +#define R_PPC64_SECTOFF_LO_DS 62 /* half16ds #lo(R + A) >> 2 */ +#define R_PPC64_TOC16_DS 63 /* half16ds* (S + A - .TOC.) >> 2 */ +#define R_PPC64_TOC16_LO_DS 64 /* half16ds #lo(S + A - .TOC.) >> 2 */ +#define R_PPC64_PLTGOT16_DS 65 /* half16ds* (M + A) >> 2 */ +#define R_PPC64_PLTGOT16_LO_DS 66 /* half16ds #lo(M + A) >> 2 */ /* PowerPC64 relocations defined for the TLS access ABI. */ -#define R_PPC64_TLS 67 /* none (sym+add)@tls */ -#define R_PPC64_DTPMOD64 68 /* doubleword64 (sym+add)@dtpmod */ -#define R_PPC64_TPREL16 69 /* half16* (sym+add)@tprel */ -#define R_PPC64_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */ -#define R_PPC64_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */ -#define R_PPC64_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */ -#define R_PPC64_TPREL64 73 /* doubleword64 (sym+add)@tprel */ -#define R_PPC64_DTPREL16 74 /* half16* (sym+add)@dtprel */ -#define R_PPC64_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */ -#define R_PPC64_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */ -#define R_PPC64_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */ -#define R_PPC64_DTPREL64 78 /* doubleword64 (sym+add)@dtprel */ -#define R_PPC64_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */ -#define R_PPC64_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */ -#define R_PPC64_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */ -#define R_PPC64_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */ -#define R_PPC64_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */ -#define R_PPC64_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */ -#define R_PPC64_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */ -#define R_PPC64_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */ -#define R_PPC64_GOT_TPREL16_DS 87 /* half16ds* (sym+add)@got@tprel */ -#define R_PPC64_GOT_TPREL16_LO_DS 88 /* half16ds (sym+add)@got@tprel@l */ -#define R_PPC64_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */ -#define R_PPC64_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */ -#define R_PPC64_GOT_DTPREL16_DS 91 /* half16ds* (sym+add)@got@dtprel */ -#define R_PPC64_GOT_DTPREL16_LO_DS 92 /* half16ds (sym+add)@got@dtprel@l */ -#define R_PPC64_GOT_DTPREL16_HI 93 /* half16 (sym+add)@got@dtprel@h */ -#define R_PPC64_GOT_DTPREL16_HA 94 /* half16 (sym+add)@got@dtprel@ha */ -#define R_PPC64_TPREL16_DS 95 /* half16ds* (sym+add)@tprel */ -#define R_PPC64_TPREL16_LO_DS 96 /* half16ds (sym+add)@tprel@l */ -#define R_PPC64_TPREL16_HIGHER 97 /* half16 (sym+add)@tprel@higher */ -#define R_PPC64_TPREL16_HIGHERA 98 /* half16 (sym+add)@tprel@highera */ -#define R_PPC64_TPREL16_HIGHEST 99 /* half16 (sym+add)@tprel@highest */ -#define R_PPC64_TPREL16_HIGHESTA 100 /* half16 (sym+add)@tprel@highesta */ -#define R_PPC64_DTPREL16_DS 101 /* half16ds* (sym+add)@dtprel */ -#define R_PPC64_DTPREL16_LO_DS 102 /* half16ds (sym+add)@dtprel@l */ -#define R_PPC64_DTPREL16_HIGHER 103 /* half16 (sym+add)@dtprel@higher */ -#define R_PPC64_DTPREL16_HIGHERA 104 /* half16 (sym+add)@dtprel@highera */ -#define R_PPC64_DTPREL16_HIGHEST 105 /* half16 (sym+add)@dtprel@highest */ -#define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta */ -#define R_PPC64_TLSGD 107 /* none (sym+add)@tlsgd */ -#define R_PPC64_TLSLD 108 /* none (sym+add)@tlsld */ -#define R_PPC64_TOCSAVE 109 /* none */ +#define R_PPC64_TLS 67 /* none (sym+add)@tls */ +#define R_PPC64_DTPMOD64 68 /* doubleword64 (sym+add)@dtpmod */ +#define R_PPC64_TPREL16 69 /* half16* (sym+add)@tprel */ +#define R_PPC64_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */ +#define R_PPC64_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */ +#define R_PPC64_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */ +#define R_PPC64_TPREL64 73 /* doubleword64 (sym+add)@tprel */ +#define R_PPC64_DTPREL16 74 /* half16* (sym+add)@dtprel */ +#define R_PPC64_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */ +#define R_PPC64_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */ +#define R_PPC64_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */ +#define R_PPC64_DTPREL64 78 /* doubleword64 (sym+add)@dtprel */ +#define R_PPC64_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */ +#define R_PPC64_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */ +#define R_PPC64_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */ +#define R_PPC64_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */ +#define R_PPC64_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */ +#define R_PPC64_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */ +#define R_PPC64_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */ +#define R_PPC64_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */ +#define R_PPC64_GOT_TPREL16_DS 87 /* half16ds* (sym+add)@got@tprel */ +#define R_PPC64_GOT_TPREL16_LO_DS 88 /* half16ds (sym+add)@got@tprel@l */ +#define R_PPC64_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */ +#define R_PPC64_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */ +#define R_PPC64_GOT_DTPREL16_DS 91 /* half16ds* (sym+add)@got@dtprel */ +#define R_PPC64_GOT_DTPREL16_LO_DS 92 /* half16ds (sym+add)@got@dtprel@l */ +#define R_PPC64_GOT_DTPREL16_HI 93 /* half16 (sym+add)@got@dtprel@h */ +#define R_PPC64_GOT_DTPREL16_HA 94 /* half16 (sym+add)@got@dtprel@ha */ +#define R_PPC64_TPREL16_DS 95 /* half16ds* (sym+add)@tprel */ +#define R_PPC64_TPREL16_LO_DS 96 /* half16ds (sym+add)@tprel@l */ +#define R_PPC64_TPREL16_HIGHER 97 /* half16 (sym+add)@tprel@higher */ +#define R_PPC64_TPREL16_HIGHERA 98 /* half16 (sym+add)@tprel@highera */ +#define R_PPC64_TPREL16_HIGHEST 99 /* half16 (sym+add)@tprel@highest */ +#define R_PPC64_TPREL16_HIGHESTA 100 /* half16 (sym+add)@tprel@highesta */ +#define R_PPC64_DTPREL16_DS 101 /* half16ds* (sym+add)@dtprel */ +#define R_PPC64_DTPREL16_LO_DS 102 /* half16ds (sym+add)@dtprel@l */ +#define R_PPC64_DTPREL16_HIGHER 103 /* half16 (sym+add)@dtprel@higher */ +#define R_PPC64_DTPREL16_HIGHERA 104 /* half16 (sym+add)@dtprel@highera */ +#define R_PPC64_DTPREL16_HIGHEST 105 /* half16 (sym+add)@dtprel@highest */ +#define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta */ +#define R_PPC64_TLSGD 107 /* none (sym+add)@tlsgd */ +#define R_PPC64_TLSLD 108 /* none (sym+add)@tlsld */ +#define R_PPC64_TOCSAVE 109 /* none */ /* Added when HA and HI relocs were changed to report overflows. */ -#define R_PPC64_ADDR16_HIGH 110 -#define R_PPC64_ADDR16_HIGHA 111 -#define R_PPC64_TPREL16_HIGH 112 -#define R_PPC64_TPREL16_HIGHA 113 -#define R_PPC64_DTPREL16_HIGH 114 -#define R_PPC64_DTPREL16_HIGHA 115 +#define R_PPC64_ADDR16_HIGH 110 +#define R_PPC64_ADDR16_HIGHA 111 +#define R_PPC64_TPREL16_HIGH 112 +#define R_PPC64_TPREL16_HIGHA 113 +#define R_PPC64_DTPREL16_HIGH 114 +#define R_PPC64_DTPREL16_HIGHA 115 /* GNU extension to support local ifunc. */ -#define R_PPC64_JMP_IREL 247 -#define R_PPC64_IRELATIVE 248 -#define R_PPC64_REL16 249 /* half16 (sym+add-.) */ -#define R_PPC64_REL16_LO 250 /* half16 (sym+add-.)@l */ -#define R_PPC64_REL16_HI 251 /* half16 (sym+add-.)@h */ -#define R_PPC64_REL16_HA 252 /* half16 (sym+add-.)@ha */ +#define R_PPC64_JMP_IREL 247 +#define R_PPC64_IRELATIVE 248 +#define R_PPC64_REL16 249 /* half16 (sym+add-.) */ +#define R_PPC64_REL16_LO 250 /* half16 (sym+add-.)@l */ +#define R_PPC64_REL16_HI 251 /* half16 (sym+add-.)@h */ +#define R_PPC64_REL16_HA 252 /* half16 (sym+add-.)@ha */ /* e_flags bits specifying ABI. 1 for original function descriptor using ABI, 2 for revised ABI without function descriptors, 0 for unspecified or not using any features affected by the differences. */ -#define EF_PPC64_ABI 3 +#define EF_PPC64_ABI 3 /* PowerPC64 specific values for the Dyn d_tag field. */ -#define DT_PPC64_GLINK (DT_LOPROC + 0) -#define DT_PPC64_OPD (DT_LOPROC + 1) -#define DT_PPC64_OPDSZ (DT_LOPROC + 2) -#define DT_PPC64_OPT (DT_LOPROC + 3) -#define DT_PPC64_NUM 4 +#define DT_PPC64_GLINK (DT_LOPROC + 0) +#define DT_PPC64_OPD (DT_LOPROC + 1) +#define DT_PPC64_OPDSZ (DT_LOPROC + 2) +#define DT_PPC64_OPT (DT_LOPROC + 3) +#define DT_PPC64_NUM 4 /* PowerPC64 specific bits in the DT_PPC64_OPT Dyn entry. */ -#define PPC64_OPT_TLS 1 -#define PPC64_OPT_MULTI_TOC 2 -#define PPC64_OPT_LOCALENTRY 4 +#define PPC64_OPT_TLS 1 +#define PPC64_OPT_MULTI_TOC 2 +#define PPC64_OPT_LOCALENTRY 4 /* PowerPC64 specific values for the Elf64_Sym st_other field. */ -#define STO_PPC64_LOCAL_BIT 5 -#define STO_PPC64_LOCAL_MASK (7 << STO_PPC64_LOCAL_BIT) -#define PPC64_LOCAL_ENTRY_OFFSET(other) \ - (((1 << (((other) & STO_PPC64_LOCAL_MASK) >> STO_PPC64_LOCAL_BIT)) >> 2) << 2) - +#define STO_PPC64_LOCAL_BIT 5 +#define STO_PPC64_LOCAL_MASK (7 << STO_PPC64_LOCAL_BIT) +#define PPC64_LOCAL_ENTRY_OFFSET(other) \ + (((1 << (((other) & STO_PPC64_LOCAL_MASK) >> STO_PPC64_LOCAL_BIT)) >> 2) << 2) /* ARM specific declarations */ /* Processor specific flags for the ELF header e_flags field. */ -#define EF_ARM_RELEXEC 0x01 -#define EF_ARM_HASENTRY 0x02 -#define EF_ARM_INTERWORK 0x04 -#define EF_ARM_APCS_26 0x08 -#define EF_ARM_APCS_FLOAT 0x10 -#define EF_ARM_PIC 0x20 -#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use */ -#define EF_ARM_NEW_ABI 0x80 -#define EF_ARM_OLD_ABI 0x100 -#define EF_ARM_SOFT_FLOAT 0x200 -#define EF_ARM_VFP_FLOAT 0x400 -#define EF_ARM_MAVERICK_FLOAT 0x800 - -#define EF_ARM_ABI_FLOAT_SOFT 0x200 /* NB conflicts with EF_ARM_SOFT_FLOAT */ -#define EF_ARM_ABI_FLOAT_HARD 0x400 /* NB conflicts with EF_ARM_VFP_FLOAT */ - +#define EF_ARM_RELEXEC 0x01 +#define EF_ARM_HASENTRY 0x02 +#define EF_ARM_INTERWORK 0x04 +#define EF_ARM_APCS_26 0x08 +#define EF_ARM_APCS_FLOAT 0x10 +#define EF_ARM_PIC 0x20 +#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use */ +#define EF_ARM_NEW_ABI 0x80 +#define EF_ARM_OLD_ABI 0x100 +#define EF_ARM_SOFT_FLOAT 0x200 +#define EF_ARM_VFP_FLOAT 0x400 +#define EF_ARM_MAVERICK_FLOAT 0x800 + +#define EF_ARM_ABI_FLOAT_SOFT 0x200 /* NB conflicts with EF_ARM_SOFT_FLOAT */ +#define EF_ARM_ABI_FLOAT_HARD 0x400 /* NB conflicts with EF_ARM_VFP_FLOAT */ /* Other constants defined in the ARM ELF spec. version B-01. */ /* NB. These conflict with values defined above. */ -#define EF_ARM_SYMSARESORTED 0x04 -#define EF_ARM_DYNSYMSUSESEGIDX 0x08 -#define EF_ARM_MAPSYMSFIRST 0x10 -#define EF_ARM_EABIMASK 0XFF000000 +#define EF_ARM_SYMSARESORTED 0x04 +#define EF_ARM_DYNSYMSUSESEGIDX 0x08 +#define EF_ARM_MAPSYMSFIRST 0x10 +#define EF_ARM_EABIMASK 0XFF000000 /* Constants defined in AAELF. */ -#define EF_ARM_BE8 0x00800000 -#define EF_ARM_LE8 0x00400000 +#define EF_ARM_BE8 0x00800000 +#define EF_ARM_LE8 0x00400000 -#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) -#define EF_ARM_EABI_UNKNOWN 0x00000000 -#define EF_ARM_EABI_VER1 0x01000000 -#define EF_ARM_EABI_VER2 0x02000000 -#define EF_ARM_EABI_VER3 0x03000000 -#define EF_ARM_EABI_VER4 0x04000000 -#define EF_ARM_EABI_VER5 0x05000000 +#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) +#define EF_ARM_EABI_UNKNOWN 0x00000000 +#define EF_ARM_EABI_VER1 0x01000000 +#define EF_ARM_EABI_VER2 0x02000000 +#define EF_ARM_EABI_VER3 0x03000000 +#define EF_ARM_EABI_VER4 0x04000000 +#define EF_ARM_EABI_VER5 0x05000000 /* Additional symbol types for Thumb. */ -#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ -#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ +#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ +#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ /* ARM-specific values for sh_flags */ -#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */ -#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined - in the input to a link step. */ +#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */ +#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined \ + in the input to a link step. */ /* ARM-specific program header flags */ -#define PF_ARM_SB 0x10000000 /* Segment contains the location - addressed by the static base. */ -#define PF_ARM_PI 0x20000000 /* Position-independent segment. */ -#define PF_ARM_ABS 0x40000000 /* Absolute segment. */ +#define PF_ARM_SB 0x10000000 /* Segment contains the location \ + addressed by the static base. */ +#define PF_ARM_PI 0x20000000 /* Position-independent segment. */ +#define PF_ARM_ABS 0x40000000 /* Absolute segment. */ /* Processor specific values for the Phdr p_type field. */ -#define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */ +#define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */ /* Processor specific values for the Shdr sh_type field. */ -#define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */ -#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */ -#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */ - +#define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */ +#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */ +#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */ /* AArch64 relocs. */ -#define R_AARCH64_NONE 0 /* No relocation. */ +#define R_AARCH64_NONE 0 /* No relocation. */ /* ILP32 AArch64 relocs. */ -#define R_AARCH64_P32_ABS32 1 /* Direct 32 bit. */ -#define R_AARCH64_P32_COPY 180 /* Copy symbol at runtime. */ -#define R_AARCH64_P32_GLOB_DAT 181 /* Create GOT entry. */ -#define R_AARCH64_P32_JUMP_SLOT 182 /* Create PLT entry. */ -#define R_AARCH64_P32_RELATIVE 183 /* Adjust by program base. */ -#define R_AARCH64_P32_TLS_DTPMOD 184 /* Module number, 32 bit. */ -#define R_AARCH64_P32_TLS_DTPREL 185 /* Module-relative offset, 32 bit. */ -#define R_AARCH64_P32_TLS_TPREL 186 /* TP-relative offset, 32 bit. */ -#define R_AARCH64_P32_TLSDESC 187 /* TLS Descriptor. */ -#define R_AARCH64_P32_IRELATIVE 188 /* STT_GNU_IFUNC relocation. */ +#define R_AARCH64_P32_ABS32 1 /* Direct 32 bit. */ +#define R_AARCH64_P32_COPY 180 /* Copy symbol at runtime. */ +#define R_AARCH64_P32_GLOB_DAT 181 /* Create GOT entry. */ +#define R_AARCH64_P32_JUMP_SLOT 182 /* Create PLT entry. */ +#define R_AARCH64_P32_RELATIVE 183 /* Adjust by program base. */ +#define R_AARCH64_P32_TLS_DTPMOD 184 /* Module number, 32 bit. */ +#define R_AARCH64_P32_TLS_DTPREL 185 /* Module-relative offset, 32 bit. */ +#define R_AARCH64_P32_TLS_TPREL 186 /* TP-relative offset, 32 bit. */ +#define R_AARCH64_P32_TLSDESC 187 /* TLS Descriptor. */ +#define R_AARCH64_P32_IRELATIVE 188 /* STT_GNU_IFUNC relocation. */ /* LP64 AArch64 relocs. */ -#define R_AARCH64_ABS64 257 /* Direct 64 bit. */ -#define R_AARCH64_ABS32 258 /* Direct 32 bit. */ -#define R_AARCH64_ABS16 259 /* Direct 16-bit. */ -#define R_AARCH64_PREL64 260 /* PC-relative 64-bit. */ -#define R_AARCH64_PREL32 261 /* PC-relative 32-bit. */ -#define R_AARCH64_PREL16 262 /* PC-relative 16-bit. */ -#define R_AARCH64_MOVW_UABS_G0 263 /* Dir. MOVZ imm. from bits 15:0. */ -#define R_AARCH64_MOVW_UABS_G0_NC 264 /* Likewise for MOVK; no check. */ -#define R_AARCH64_MOVW_UABS_G1 265 /* Dir. MOVZ imm. from bits 31:16. */ -#define R_AARCH64_MOVW_UABS_G1_NC 266 /* Likewise for MOVK; no check. */ -#define R_AARCH64_MOVW_UABS_G2 267 /* Dir. MOVZ imm. from bits 47:32. */ -#define R_AARCH64_MOVW_UABS_G2_NC 268 /* Likewise for MOVK; no check. */ -#define R_AARCH64_MOVW_UABS_G3 269 /* Dir. MOV{K,Z} imm. from 63:48. */ -#define R_AARCH64_MOVW_SABS_G0 270 /* Dir. MOV{N,Z} imm. from 15:0. */ -#define R_AARCH64_MOVW_SABS_G1 271 /* Dir. MOV{N,Z} imm. from 31:16. */ -#define R_AARCH64_MOVW_SABS_G2 272 /* Dir. MOV{N,Z} imm. from 47:32. */ -#define R_AARCH64_LD_PREL_LO19 273 /* PC-rel. LD imm. from bits 20:2. */ -#define R_AARCH64_ADR_PREL_LO21 274 /* PC-rel. ADR imm. from bits 20:0. */ -#define R_AARCH64_ADR_PREL_PG_HI21 275 /* Page-rel. ADRP imm. from 32:12. */ -#define R_AARCH64_ADR_PREL_PG_HI21_NC 276 /* Likewise; no overflow check. */ -#define R_AARCH64_ADD_ABS_LO12_NC 277 /* Dir. ADD imm. from bits 11:0. */ -#define R_AARCH64_LDST8_ABS_LO12_NC 278 /* Likewise for LD/ST; no check. */ -#define R_AARCH64_TSTBR14 279 /* PC-rel. TBZ/TBNZ imm. from 15:2. */ -#define R_AARCH64_CONDBR19 280 /* PC-rel. cond. br. imm. from 20:2. */ -#define R_AARCH64_JUMP26 282 /* PC-rel. B imm. from bits 27:2. */ -#define R_AARCH64_CALL26 283 /* Likewise for CALL. */ -#define R_AARCH64_LDST16_ABS_LO12_NC 284 /* Dir. ADD imm. from bits 11:1. */ -#define R_AARCH64_LDST32_ABS_LO12_NC 285 /* Likewise for bits 11:2. */ -#define R_AARCH64_LDST64_ABS_LO12_NC 286 /* Likewise for bits 11:3. */ -#define R_AARCH64_MOVW_PREL_G0 287 /* PC-rel. MOV{N,Z} imm. from 15:0. */ -#define R_AARCH64_MOVW_PREL_G0_NC 288 /* Likewise for MOVK; no check. */ -#define R_AARCH64_MOVW_PREL_G1 289 /* PC-rel. MOV{N,Z} imm. from 31:16. */ -#define R_AARCH64_MOVW_PREL_G1_NC 290 /* Likewise for MOVK; no check. */ -#define R_AARCH64_MOVW_PREL_G2 291 /* PC-rel. MOV{N,Z} imm. from 47:32. */ -#define R_AARCH64_MOVW_PREL_G2_NC 292 /* Likewise for MOVK; no check. */ -#define R_AARCH64_MOVW_PREL_G3 293 /* PC-rel. MOV{N,Z} imm. from 63:48. */ -#define R_AARCH64_LDST128_ABS_LO12_NC 299 /* Dir. ADD imm. from bits 11:4. */ -#define R_AARCH64_MOVW_GOTOFF_G0 300 /* GOT-rel. off. MOV{N,Z} imm. 15:0. */ -#define R_AARCH64_MOVW_GOTOFF_G0_NC 301 /* Likewise for MOVK; no check. */ -#define R_AARCH64_MOVW_GOTOFF_G1 302 /* GOT-rel. o. MOV{N,Z} imm. 31:16. */ -#define R_AARCH64_MOVW_GOTOFF_G1_NC 303 /* Likewise for MOVK; no check. */ -#define R_AARCH64_MOVW_GOTOFF_G2 304 /* GOT-rel. o. MOV{N,Z} imm. 47:32. */ -#define R_AARCH64_MOVW_GOTOFF_G2_NC 305 /* Likewise for MOVK; no check. */ -#define R_AARCH64_MOVW_GOTOFF_G3 306 /* GOT-rel. o. MOV{N,Z} imm. 63:48. */ -#define R_AARCH64_GOTREL64 307 /* GOT-relative 64-bit. */ -#define R_AARCH64_GOTREL32 308 /* GOT-relative 32-bit. */ -#define R_AARCH64_GOT_LD_PREL19 309 /* PC-rel. GOT off. load imm. 20:2. */ -#define R_AARCH64_LD64_GOTOFF_LO15 310 /* GOT-rel. off. LD/ST imm. 14:3. */ -#define R_AARCH64_ADR_GOT_PAGE 311 /* P-page-rel. GOT off. ADRP 32:12. */ -#define R_AARCH64_LD64_GOT_LO12_NC 312 /* Dir. GOT off. LD/ST imm. 11:3. */ -#define R_AARCH64_LD64_GOTPAGE_LO15 313 /* GOT-page-rel. GOT off. LD/ST 14:3 */ -#define R_AARCH64_TLSGD_ADR_PREL21 512 /* PC-relative ADR imm. 20:0. */ -#define R_AARCH64_TLSGD_ADR_PAGE21 513 /* page-rel. ADRP imm. 32:12. */ -#define R_AARCH64_TLSGD_ADD_LO12_NC 514 /* direct ADD imm. from 11:0. */ -#define R_AARCH64_TLSGD_MOVW_G1 515 /* GOT-rel. MOV{N,Z} 31:16. */ -#define R_AARCH64_TLSGD_MOVW_G0_NC 516 /* GOT-rel. MOVK imm. 15:0. */ -#define R_AARCH64_TLSLD_ADR_PREL21 517 /* Like 512; local dynamic model. */ -#define R_AARCH64_TLSLD_ADR_PAGE21 518 /* Like 513; local dynamic model. */ -#define R_AARCH64_TLSLD_ADD_LO12_NC 519 /* Like 514; local dynamic model. */ -#define R_AARCH64_TLSLD_MOVW_G1 520 /* Like 515; local dynamic model. */ -#define R_AARCH64_TLSLD_MOVW_G0_NC 521 /* Like 516; local dynamic model. */ -#define R_AARCH64_TLSLD_LD_PREL19 522 /* TLS PC-rel. load imm. 20:2. */ -#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523 /* TLS DTP-rel. MOV{N,Z} 47:32. */ -#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524 /* TLS DTP-rel. MOV{N,Z} 31:16. */ -#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525 /* Likewise; MOVK; no check. */ -#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526 /* TLS DTP-rel. MOV{N,Z} 15:0. */ -#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527 /* Likewise; MOVK; no check. */ -#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528 /* DTP-rel. ADD imm. from 23:12. */ -#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529 /* DTP-rel. ADD imm. from 11:0. */ -#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530 /* Likewise; no ovfl. check. */ -#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531 /* DTP-rel. LD/ST imm. 11:0. */ -#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532 /* Likewise; no check. */ -#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533 /* DTP-rel. LD/ST imm. 11:1. */ -#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534 /* Likewise; no check. */ -#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535 /* DTP-rel. LD/ST imm. 11:2. */ -#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536 /* Likewise; no check. */ -#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537 /* DTP-rel. LD/ST imm. 11:3. */ -#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538 /* Likewise; no check. */ -#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539 /* GOT-rel. MOV{N,Z} 31:16. */ -#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540 /* GOT-rel. MOVK 15:0. */ -#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541 /* Page-rel. ADRP 32:12. */ -#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542 /* Direct LD off. 11:3. */ -#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543 /* PC-rel. load imm. 20:2. */ -#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544 /* TLS TP-rel. MOV{N,Z} 47:32. */ -#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545 /* TLS TP-rel. MOV{N,Z} 31:16. */ -#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546 /* Likewise; MOVK; no check. */ -#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547 /* TLS TP-rel. MOV{N,Z} 15:0. */ -#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548 /* Likewise; MOVK; no check. */ -#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549 /* TP-rel. ADD imm. 23:12. */ -#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550 /* TP-rel. ADD imm. 11:0. */ -#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551 /* Likewise; no ovfl. check. */ -#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552 /* TP-rel. LD/ST off. 11:0. */ -#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553 /* Likewise; no ovfl. check. */ -#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554 /* TP-rel. LD/ST off. 11:1. */ -#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555 /* Likewise; no check. */ -#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556 /* TP-rel. LD/ST off. 11:2. */ -#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557 /* Likewise; no check. */ -#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558 /* TP-rel. LD/ST off. 11:3. */ -#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559 /* Likewise; no check. */ -#define R_AARCH64_TLSDESC_LD_PREL19 560 /* PC-rel. load immediate 20:2. */ -#define R_AARCH64_TLSDESC_ADR_PREL21 561 /* PC-rel. ADR immediate 20:0. */ -#define R_AARCH64_TLSDESC_ADR_PAGE21 562 /* Page-rel. ADRP imm. 32:12. */ -#define R_AARCH64_TLSDESC_LD64_LO12 563 /* Direct LD off. from 11:3. */ -#define R_AARCH64_TLSDESC_ADD_LO12 564 /* Direct ADD imm. from 11:0. */ -#define R_AARCH64_TLSDESC_OFF_G1 565 /* GOT-rel. MOV{N,Z} imm. 31:16. */ -#define R_AARCH64_TLSDESC_OFF_G0_NC 566 /* GOT-rel. MOVK imm. 15:0; no ck. */ -#define R_AARCH64_TLSDESC_LDR 567 /* Relax LDR. */ -#define R_AARCH64_TLSDESC_ADD 568 /* Relax ADD. */ -#define R_AARCH64_TLSDESC_CALL 569 /* Relax BLR. */ -#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570 /* TP-rel. LD/ST off. 11:4. */ -#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571 /* Likewise; no check. */ -#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572 /* DTP-rel. LD/ST imm. 11:4. */ -#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573 /* Likewise; no check. */ -#define R_AARCH64_COPY 1024 /* Copy symbol at runtime. */ -#define R_AARCH64_GLOB_DAT 1025 /* Create GOT entry. */ -#define R_AARCH64_JUMP_SLOT 1026 /* Create PLT entry. */ -#define R_AARCH64_RELATIVE 1027 /* Adjust by program base. */ -#define R_AARCH64_TLS_DTPMOD 1028 /* Module number, 64 bit. */ -#define R_AARCH64_TLS_DTPREL 1029 /* Module-relative offset, 64 bit. */ -#define R_AARCH64_TLS_TPREL 1030 /* TP-relative offset, 64 bit. */ -#define R_AARCH64_TLSDESC 1031 /* TLS Descriptor. */ -#define R_AARCH64_IRELATIVE 1032 /* STT_GNU_IFUNC relocation. */ +#define R_AARCH64_ABS64 257 /* Direct 64 bit. */ +#define R_AARCH64_ABS32 258 /* Direct 32 bit. */ +#define R_AARCH64_ABS16 259 /* Direct 16-bit. */ +#define R_AARCH64_PREL64 260 /* PC-relative 64-bit. */ +#define R_AARCH64_PREL32 261 /* PC-relative 32-bit. */ +#define R_AARCH64_PREL16 262 /* PC-relative 16-bit. */ +#define R_AARCH64_MOVW_UABS_G0 263 /* Dir. MOVZ imm. from bits 15:0. */ +#define R_AARCH64_MOVW_UABS_G0_NC 264 /* Likewise for MOVK; no check. */ +#define R_AARCH64_MOVW_UABS_G1 265 /* Dir. MOVZ imm. from bits 31:16. */ +#define R_AARCH64_MOVW_UABS_G1_NC 266 /* Likewise for MOVK; no check. */ +#define R_AARCH64_MOVW_UABS_G2 267 /* Dir. MOVZ imm. from bits 47:32. */ +#define R_AARCH64_MOVW_UABS_G2_NC 268 /* Likewise for MOVK; no check. */ +#define R_AARCH64_MOVW_UABS_G3 269 /* Dir. MOV{K,Z} imm. from 63:48. */ +#define R_AARCH64_MOVW_SABS_G0 270 /* Dir. MOV{N,Z} imm. from 15:0. */ +#define R_AARCH64_MOVW_SABS_G1 271 /* Dir. MOV{N,Z} imm. from 31:16. */ +#define R_AARCH64_MOVW_SABS_G2 272 /* Dir. MOV{N,Z} imm. from 47:32. */ +#define R_AARCH64_LD_PREL_LO19 273 /* PC-rel. LD imm. from bits 20:2. */ +#define R_AARCH64_ADR_PREL_LO21 274 /* PC-rel. ADR imm. from bits 20:0. */ +#define R_AARCH64_ADR_PREL_PG_HI21 275 /* Page-rel. ADRP imm. from 32:12. */ +#define R_AARCH64_ADR_PREL_PG_HI21_NC 276 /* Likewise; no overflow check. */ +#define R_AARCH64_ADD_ABS_LO12_NC 277 /* Dir. ADD imm. from bits 11:0. */ +#define R_AARCH64_LDST8_ABS_LO12_NC 278 /* Likewise for LD/ST; no check. */ +#define R_AARCH64_TSTBR14 279 /* PC-rel. TBZ/TBNZ imm. from 15:2. */ +#define R_AARCH64_CONDBR19 280 /* PC-rel. cond. br. imm. from 20:2. */ +#define R_AARCH64_JUMP26 282 /* PC-rel. B imm. from bits 27:2. */ +#define R_AARCH64_CALL26 283 /* Likewise for CALL. */ +#define R_AARCH64_LDST16_ABS_LO12_NC 284 /* Dir. ADD imm. from bits 11:1. */ +#define R_AARCH64_LDST32_ABS_LO12_NC 285 /* Likewise for bits 11:2. */ +#define R_AARCH64_LDST64_ABS_LO12_NC 286 /* Likewise for bits 11:3. */ +#define R_AARCH64_MOVW_PREL_G0 287 /* PC-rel. MOV{N,Z} imm. from 15:0. */ +#define R_AARCH64_MOVW_PREL_G0_NC 288 /* Likewise for MOVK; no check. */ +#define R_AARCH64_MOVW_PREL_G1 289 /* PC-rel. MOV{N,Z} imm. from 31:16. */ +#define R_AARCH64_MOVW_PREL_G1_NC 290 /* Likewise for MOVK; no check. */ +#define R_AARCH64_MOVW_PREL_G2 291 /* PC-rel. MOV{N,Z} imm. from 47:32. */ +#define R_AARCH64_MOVW_PREL_G2_NC 292 /* Likewise for MOVK; no check. */ +#define R_AARCH64_MOVW_PREL_G3 293 /* PC-rel. MOV{N,Z} imm. from 63:48. */ +#define R_AARCH64_LDST128_ABS_LO12_NC 299 /* Dir. ADD imm. from bits 11:4. */ +#define R_AARCH64_MOVW_GOTOFF_G0 300 /* GOT-rel. off. MOV{N,Z} imm. 15:0. */ +#define R_AARCH64_MOVW_GOTOFF_G0_NC 301 /* Likewise for MOVK; no check. */ +#define R_AARCH64_MOVW_GOTOFF_G1 302 /* GOT-rel. o. MOV{N,Z} imm. 31:16. */ +#define R_AARCH64_MOVW_GOTOFF_G1_NC 303 /* Likewise for MOVK; no check. */ +#define R_AARCH64_MOVW_GOTOFF_G2 304 /* GOT-rel. o. MOV{N,Z} imm. 47:32. */ +#define R_AARCH64_MOVW_GOTOFF_G2_NC 305 /* Likewise for MOVK; no check. */ +#define R_AARCH64_MOVW_GOTOFF_G3 306 /* GOT-rel. o. MOV{N,Z} imm. 63:48. */ +#define R_AARCH64_GOTREL64 307 /* GOT-relative 64-bit. */ +#define R_AARCH64_GOTREL32 308 /* GOT-relative 32-bit. */ +#define R_AARCH64_GOT_LD_PREL19 309 /* PC-rel. GOT off. load imm. 20:2. */ +#define R_AARCH64_LD64_GOTOFF_LO15 310 /* GOT-rel. off. LD/ST imm. 14:3. */ +#define R_AARCH64_ADR_GOT_PAGE 311 /* P-page-rel. GOT off. ADRP 32:12. */ +#define R_AARCH64_LD64_GOT_LO12_NC 312 /* Dir. GOT off. LD/ST imm. 11:3. */ +#define R_AARCH64_LD64_GOTPAGE_LO15 313 /* GOT-page-rel. GOT off. LD/ST 14:3 */ +#define R_AARCH64_TLSGD_ADR_PREL21 512 /* PC-relative ADR imm. 20:0. */ +#define R_AARCH64_TLSGD_ADR_PAGE21 513 /* page-rel. ADRP imm. 32:12. */ +#define R_AARCH64_TLSGD_ADD_LO12_NC 514 /* direct ADD imm. from 11:0. */ +#define R_AARCH64_TLSGD_MOVW_G1 515 /* GOT-rel. MOV{N,Z} 31:16. */ +#define R_AARCH64_TLSGD_MOVW_G0_NC 516 /* GOT-rel. MOVK imm. 15:0. */ +#define R_AARCH64_TLSLD_ADR_PREL21 517 /* Like 512; local dynamic model. */ +#define R_AARCH64_TLSLD_ADR_PAGE21 518 /* Like 513; local dynamic model. */ +#define R_AARCH64_TLSLD_ADD_LO12_NC 519 /* Like 514; local dynamic model. */ +#define R_AARCH64_TLSLD_MOVW_G1 520 /* Like 515; local dynamic model. */ +#define R_AARCH64_TLSLD_MOVW_G0_NC 521 /* Like 516; local dynamic model. */ +#define R_AARCH64_TLSLD_LD_PREL19 522 /* TLS PC-rel. load imm. 20:2. */ +#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523 /* TLS DTP-rel. MOV{N,Z} 47:32. */ +#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524 /* TLS DTP-rel. MOV{N,Z} 31:16. */ +#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525 /* Likewise; MOVK; no check. */ +#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526 /* TLS DTP-rel. MOV{N,Z} 15:0. */ +#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527 /* Likewise; MOVK; no check. */ +#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528 /* DTP-rel. ADD imm. from 23:12. */ +#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529 /* DTP-rel. ADD imm. from 11:0. */ +#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530 /* Likewise; no ovfl. check. */ +#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531 /* DTP-rel. LD/ST imm. 11:0. */ +#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532 /* Likewise; no check. */ +#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533 /* DTP-rel. LD/ST imm. 11:1. */ +#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534 /* Likewise; no check. */ +#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535 /* DTP-rel. LD/ST imm. 11:2. */ +#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536 /* Likewise; no check. */ +#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537 /* DTP-rel. LD/ST imm. 11:3. */ +#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538 /* Likewise; no check. */ +#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539 /* GOT-rel. MOV{N,Z} 31:16. */ +#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540 /* GOT-rel. MOVK 15:0. */ +#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541 /* Page-rel. ADRP 32:12. */ +#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542 /* Direct LD off. 11:3. */ +#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543 /* PC-rel. load imm. 20:2. */ +#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544 /* TLS TP-rel. MOV{N,Z} 47:32. */ +#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545 /* TLS TP-rel. MOV{N,Z} 31:16. */ +#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546 /* Likewise; MOVK; no check. */ +#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547 /* TLS TP-rel. MOV{N,Z} 15:0. */ +#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548 /* Likewise; MOVK; no check. */ +#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549 /* TP-rel. ADD imm. 23:12. */ +#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550 /* TP-rel. ADD imm. 11:0. */ +#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551 /* Likewise; no ovfl. check. */ +#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552 /* TP-rel. LD/ST off. 11:0. */ +#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553 /* Likewise; no ovfl. check. */ +#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554 /* TP-rel. LD/ST off. 11:1. */ +#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555 /* Likewise; no check. */ +#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556 /* TP-rel. LD/ST off. 11:2. */ +#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557 /* Likewise; no check. */ +#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558 /* TP-rel. LD/ST off. 11:3. */ +#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559 /* Likewise; no check. */ +#define R_AARCH64_TLSDESC_LD_PREL19 560 /* PC-rel. load immediate 20:2. */ +#define R_AARCH64_TLSDESC_ADR_PREL21 561 /* PC-rel. ADR immediate 20:0. */ +#define R_AARCH64_TLSDESC_ADR_PAGE21 562 /* Page-rel. ADRP imm. 32:12. */ +#define R_AARCH64_TLSDESC_LD64_LO12 563 /* Direct LD off. from 11:3. */ +#define R_AARCH64_TLSDESC_ADD_LO12 564 /* Direct ADD imm. from 11:0. */ +#define R_AARCH64_TLSDESC_OFF_G1 565 /* GOT-rel. MOV{N,Z} imm. 31:16. */ +#define R_AARCH64_TLSDESC_OFF_G0_NC 566 /* GOT-rel. MOVK imm. 15:0; no ck. */ +#define R_AARCH64_TLSDESC_LDR 567 /* Relax LDR. */ +#define R_AARCH64_TLSDESC_ADD 568 /* Relax ADD. */ +#define R_AARCH64_TLSDESC_CALL 569 /* Relax BLR. */ +#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570 /* TP-rel. LD/ST off. 11:4. */ +#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571 /* Likewise; no check. */ +#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572 /* DTP-rel. LD/ST imm. 11:4. */ +#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573 /* Likewise; no check. */ +#define R_AARCH64_COPY 1024 /* Copy symbol at runtime. */ +#define R_AARCH64_GLOB_DAT 1025 /* Create GOT entry. */ +#define R_AARCH64_JUMP_SLOT 1026 /* Create PLT entry. */ +#define R_AARCH64_RELATIVE 1027 /* Adjust by program base. */ +#define R_AARCH64_TLS_DTPMOD 1028 /* Module number, 64 bit. */ +#define R_AARCH64_TLS_DTPREL 1029 /* Module-relative offset, 64 bit. */ +#define R_AARCH64_TLS_TPREL 1030 /* TP-relative offset, 64 bit. */ +#define R_AARCH64_TLSDESC 1031 /* TLS Descriptor. */ +#define R_AARCH64_IRELATIVE 1032 /* STT_GNU_IFUNC relocation. */ /* AArch64 specific values for the Dyn d_tag field. */ -#define DT_AARCH64_BTI_PLT (DT_LOPROC + 1) -#define DT_AARCH64_PAC_PLT (DT_LOPROC + 3) -#define DT_AARCH64_VARIANT_PCS (DT_LOPROC + 5) -#define DT_AARCH64_NUM 6 +#define DT_AARCH64_BTI_PLT (DT_LOPROC + 1) +#define DT_AARCH64_PAC_PLT (DT_LOPROC + 3) +#define DT_AARCH64_VARIANT_PCS (DT_LOPROC + 5) +#define DT_AARCH64_NUM 6 /* AArch64 specific values for the st_other field. */ #define STO_AARCH64_VARIANT_PCS 0x80 /* ARM relocs. */ -#define R_ARM_NONE 0 /* No reloc */ -#define R_ARM_PC24 1 /* Deprecated PC relative 26 - bit branch. */ -#define R_ARM_ABS32 2 /* Direct 32 bit */ -#define R_ARM_REL32 3 /* PC relative 32 bit */ -#define R_ARM_PC13 4 -#define R_ARM_ABS16 5 /* Direct 16 bit */ -#define R_ARM_ABS12 6 /* Direct 12 bit */ -#define R_ARM_THM_ABS5 7 /* Direct & 0x7C (LDR, STR). */ -#define R_ARM_ABS8 8 /* Direct 8 bit */ -#define R_ARM_SBREL32 9 -#define R_ARM_THM_PC22 10 /* PC relative 24 bit (Thumb32 BL). */ -#define R_ARM_THM_PC8 11 /* PC relative & 0x3FC - (Thumb16 LDR, ADD, ADR). */ -#define R_ARM_AMP_VCALL9 12 -#define R_ARM_SWI24 13 /* Obsolete static relocation. */ -#define R_ARM_TLS_DESC 13 /* Dynamic relocation. */ -#define R_ARM_THM_SWI8 14 /* Reserved. */ -#define R_ARM_XPC25 15 /* Reserved. */ -#define R_ARM_THM_XPC22 16 /* Reserved. */ -#define R_ARM_TLS_DTPMOD32 17 /* ID of module containing symbol */ -#define R_ARM_TLS_DTPOFF32 18 /* Offset in TLS block */ -#define R_ARM_TLS_TPOFF32 19 /* Offset in static TLS block */ -#define R_ARM_COPY 20 /* Copy symbol at runtime */ -#define R_ARM_GLOB_DAT 21 /* Create GOT entry */ -#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */ -#define R_ARM_RELATIVE 23 /* Adjust by program base */ -#define R_ARM_GOTOFF 24 /* 32 bit offset to GOT */ -#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */ -#define R_ARM_GOT32 26 /* 32 bit GOT entry */ -#define R_ARM_PLT32 27 /* Deprecated, 32 bit PLT address. */ -#define R_ARM_CALL 28 /* PC relative 24 bit (BL, BLX). */ -#define R_ARM_JUMP24 29 /* PC relative 24 bit - (B, BL). */ -#define R_ARM_THM_JUMP24 30 /* PC relative 24 bit (Thumb32 B.W). */ -#define R_ARM_BASE_ABS 31 /* Adjust by program base. */ -#define R_ARM_ALU_PCREL_7_0 32 /* Obsolete. */ -#define R_ARM_ALU_PCREL_15_8 33 /* Obsolete. */ -#define R_ARM_ALU_PCREL_23_15 34 /* Obsolete. */ -#define R_ARM_LDR_SBREL_11_0 35 /* Deprecated, prog. base relative. */ -#define R_ARM_ALU_SBREL_19_12 36 /* Deprecated, prog. base relative. */ -#define R_ARM_ALU_SBREL_27_20 37 /* Deprecated, prog. base relative. */ -#define R_ARM_TARGET1 38 -#define R_ARM_SBREL31 39 /* Program base relative. */ -#define R_ARM_V4BX 40 -#define R_ARM_TARGET2 41 -#define R_ARM_PREL31 42 /* 32 bit PC relative. */ -#define R_ARM_MOVW_ABS_NC 43 /* Direct 16-bit (MOVW). */ -#define R_ARM_MOVT_ABS 44 /* Direct high 16-bit (MOVT). */ -#define R_ARM_MOVW_PREL_NC 45 /* PC relative 16-bit (MOVW). */ -#define R_ARM_MOVT_PREL 46 /* PC relative (MOVT). */ -#define R_ARM_THM_MOVW_ABS_NC 47 /* Direct 16 bit (Thumb32 MOVW). */ -#define R_ARM_THM_MOVT_ABS 48 /* Direct high 16 bit - (Thumb32 MOVT). */ -#define R_ARM_THM_MOVW_PREL_NC 49 /* PC relative 16 bit - (Thumb32 MOVW). */ -#define R_ARM_THM_MOVT_PREL 50 /* PC relative high 16 bit - (Thumb32 MOVT). */ -#define R_ARM_THM_JUMP19 51 /* PC relative 20 bit - (Thumb32 B.W). */ -#define R_ARM_THM_JUMP6 52 /* PC relative X & 0x7E - (Thumb16 CBZ, CBNZ). */ -#define R_ARM_THM_ALU_PREL_11_0 53 /* PC relative 12 bit - (Thumb32 ADR.W). */ -#define R_ARM_THM_PC12 54 /* PC relative 12 bit - (Thumb32 LDR{D,SB,H,SH}). */ -#define R_ARM_ABS32_NOI 55 /* Direct 32-bit. */ -#define R_ARM_REL32_NOI 56 /* PC relative 32-bit. */ -#define R_ARM_ALU_PC_G0_NC 57 /* PC relative (ADD, SUB). */ -#define R_ARM_ALU_PC_G0 58 /* PC relative (ADD, SUB). */ -#define R_ARM_ALU_PC_G1_NC 59 /* PC relative (ADD, SUB). */ -#define R_ARM_ALU_PC_G1 60 /* PC relative (ADD, SUB). */ -#define R_ARM_ALU_PC_G2 61 /* PC relative (ADD, SUB). */ -#define R_ARM_LDR_PC_G1 62 /* PC relative (LDR,STR,LDRB,STRB). */ -#define R_ARM_LDR_PC_G2 63 /* PC relative (LDR,STR,LDRB,STRB). */ -#define R_ARM_LDRS_PC_G0 64 /* PC relative (STR{D,H}, - LDR{D,SB,H,SH}). */ -#define R_ARM_LDRS_PC_G1 65 /* PC relative (STR{D,H}, - LDR{D,SB,H,SH}). */ -#define R_ARM_LDRS_PC_G2 66 /* PC relative (STR{D,H}, - LDR{D,SB,H,SH}). */ -#define R_ARM_LDC_PC_G0 67 /* PC relative (LDC, STC). */ -#define R_ARM_LDC_PC_G1 68 /* PC relative (LDC, STC). */ -#define R_ARM_LDC_PC_G2 69 /* PC relative (LDC, STC). */ -#define R_ARM_ALU_SB_G0_NC 70 /* Program base relative (ADD,SUB). */ -#define R_ARM_ALU_SB_G0 71 /* Program base relative (ADD,SUB). */ -#define R_ARM_ALU_SB_G1_NC 72 /* Program base relative (ADD,SUB). */ -#define R_ARM_ALU_SB_G1 73 /* Program base relative (ADD,SUB). */ -#define R_ARM_ALU_SB_G2 74 /* Program base relative (ADD,SUB). */ -#define R_ARM_LDR_SB_G0 75 /* Program base relative (LDR, - STR, LDRB, STRB). */ -#define R_ARM_LDR_SB_G1 76 /* Program base relative - (LDR, STR, LDRB, STRB). */ -#define R_ARM_LDR_SB_G2 77 /* Program base relative - (LDR, STR, LDRB, STRB). */ -#define R_ARM_LDRS_SB_G0 78 /* Program base relative - (LDR, STR, LDRB, STRB). */ -#define R_ARM_LDRS_SB_G1 79 /* Program base relative - (LDR, STR, LDRB, STRB). */ -#define R_ARM_LDRS_SB_G2 80 /* Program base relative - (LDR, STR, LDRB, STRB). */ -#define R_ARM_LDC_SB_G0 81 /* Program base relative (LDC,STC). */ -#define R_ARM_LDC_SB_G1 82 /* Program base relative (LDC,STC). */ -#define R_ARM_LDC_SB_G2 83 /* Program base relative (LDC,STC). */ -#define R_ARM_MOVW_BREL_NC 84 /* Program base relative 16 - bit (MOVW). */ -#define R_ARM_MOVT_BREL 85 /* Program base relative high - 16 bit (MOVT). */ -#define R_ARM_MOVW_BREL 86 /* Program base relative 16 - bit (MOVW). */ -#define R_ARM_THM_MOVW_BREL_NC 87 /* Program base relative 16 - bit (Thumb32 MOVW). */ -#define R_ARM_THM_MOVT_BREL 88 /* Program base relative high - 16 bit (Thumb32 MOVT). */ -#define R_ARM_THM_MOVW_BREL 89 /* Program base relative 16 - bit (Thumb32 MOVW). */ -#define R_ARM_TLS_GOTDESC 90 -#define R_ARM_TLS_CALL 91 -#define R_ARM_TLS_DESCSEQ 92 /* TLS relaxation. */ -#define R_ARM_THM_TLS_CALL 93 -#define R_ARM_PLT32_ABS 94 -#define R_ARM_GOT_ABS 95 /* GOT entry. */ -#define R_ARM_GOT_PREL 96 /* PC relative GOT entry. */ -#define R_ARM_GOT_BREL12 97 /* GOT entry relative to GOT - origin (LDR). */ -#define R_ARM_GOTOFF12 98 /* 12 bit, GOT entry relative - to GOT origin (LDR, STR). */ -#define R_ARM_GOTRELAX 99 -#define R_ARM_GNU_VTENTRY 100 -#define R_ARM_GNU_VTINHERIT 101 -#define R_ARM_THM_PC11 102 /* PC relative & 0xFFE (Thumb16 B). */ -#define R_ARM_THM_PC9 103 /* PC relative & 0x1FE - (Thumb16 B/B). */ -#define R_ARM_TLS_GD32 104 /* PC-rel 32 bit for global dynamic - thread local data */ -#define R_ARM_TLS_LDM32 105 /* PC-rel 32 bit for local dynamic - thread local data */ -#define R_ARM_TLS_LDO32 106 /* 32 bit offset relative to TLS - block */ -#define R_ARM_TLS_IE32 107 /* PC-rel 32 bit for GOT entry of - static TLS block offset */ -#define R_ARM_TLS_LE32 108 /* 32 bit offset relative to static - TLS block */ -#define R_ARM_TLS_LDO12 109 /* 12 bit relative to TLS - block (LDR, STR). */ -#define R_ARM_TLS_LE12 110 /* 12 bit relative to static - TLS block (LDR, STR). */ -#define R_ARM_TLS_IE12GP 111 /* 12 bit GOT entry relative - to GOT origin (LDR). */ -#define R_ARM_ME_TOO 128 /* Obsolete. */ -#define R_ARM_THM_TLS_DESCSEQ 129 -#define R_ARM_THM_TLS_DESCSEQ16 129 -#define R_ARM_THM_TLS_DESCSEQ32 130 -#define R_ARM_THM_GOT_BREL12 131 /* GOT entry relative to GOT - origin, 12 bit (Thumb32 LDR). */ -#define R_ARM_IRELATIVE 160 -#define R_ARM_RXPC25 249 -#define R_ARM_RSBREL32 250 -#define R_ARM_THM_RPC22 251 -#define R_ARM_RREL32 252 -#define R_ARM_RABS22 253 -#define R_ARM_RPC24 254 -#define R_ARM_RBASE 255 +#define R_ARM_NONE 0 /* No reloc */ +#define R_ARM_PC24 1 /* Deprecated PC relative 26 \ + bit branch. */ +#define R_ARM_ABS32 2 /* Direct 32 bit */ +#define R_ARM_REL32 3 /* PC relative 32 bit */ +#define R_ARM_PC13 4 +#define R_ARM_ABS16 5 /* Direct 16 bit */ +#define R_ARM_ABS12 6 /* Direct 12 bit */ +#define R_ARM_THM_ABS5 7 /* Direct & 0x7C (LDR, STR). */ +#define R_ARM_ABS8 8 /* Direct 8 bit */ +#define R_ARM_SBREL32 9 +#define R_ARM_THM_PC22 10 /* PC relative 24 bit (Thumb32 BL). */ +#define R_ARM_THM_PC8 11 /* PC relative & 0x3FC \ + (Thumb16 LDR, ADD, ADR). */ +#define R_ARM_AMP_VCALL9 12 +#define R_ARM_SWI24 13 /* Obsolete static relocation. */ +#define R_ARM_TLS_DESC 13 /* Dynamic relocation. */ +#define R_ARM_THM_SWI8 14 /* Reserved. */ +#define R_ARM_XPC25 15 /* Reserved. */ +#define R_ARM_THM_XPC22 16 /* Reserved. */ +#define R_ARM_TLS_DTPMOD32 17 /* ID of module containing symbol */ +#define R_ARM_TLS_DTPOFF32 18 /* Offset in TLS block */ +#define R_ARM_TLS_TPOFF32 19 /* Offset in static TLS block */ +#define R_ARM_COPY 20 /* Copy symbol at runtime */ +#define R_ARM_GLOB_DAT 21 /* Create GOT entry */ +#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */ +#define R_ARM_RELATIVE 23 /* Adjust by program base */ +#define R_ARM_GOTOFF 24 /* 32 bit offset to GOT */ +#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */ +#define R_ARM_GOT32 26 /* 32 bit GOT entry */ +#define R_ARM_PLT32 27 /* Deprecated, 32 bit PLT address. */ +#define R_ARM_CALL 28 /* PC relative 24 bit (BL, BLX). */ +#define R_ARM_JUMP24 29 /* PC relative 24 bit \ + (B, BL). */ +#define R_ARM_THM_JUMP24 30 /* PC relative 24 bit (Thumb32 B.W). */ +#define R_ARM_BASE_ABS 31 /* Adjust by program base. */ +#define R_ARM_ALU_PCREL_7_0 32 /* Obsolete. */ +#define R_ARM_ALU_PCREL_15_8 33 /* Obsolete. */ +#define R_ARM_ALU_PCREL_23_15 34 /* Obsolete. */ +#define R_ARM_LDR_SBREL_11_0 35 /* Deprecated, prog. base relative. */ +#define R_ARM_ALU_SBREL_19_12 36 /* Deprecated, prog. base relative. */ +#define R_ARM_ALU_SBREL_27_20 37 /* Deprecated, prog. base relative. */ +#define R_ARM_TARGET1 38 +#define R_ARM_SBREL31 39 /* Program base relative. */ +#define R_ARM_V4BX 40 +#define R_ARM_TARGET2 41 +#define R_ARM_PREL31 42 /* 32 bit PC relative. */ +#define R_ARM_MOVW_ABS_NC 43 /* Direct 16-bit (MOVW). */ +#define R_ARM_MOVT_ABS 44 /* Direct high 16-bit (MOVT). */ +#define R_ARM_MOVW_PREL_NC 45 /* PC relative 16-bit (MOVW). */ +#define R_ARM_MOVT_PREL 46 /* PC relative (MOVT). */ +#define R_ARM_THM_MOVW_ABS_NC 47 /* Direct 16 bit (Thumb32 MOVW). */ +#define R_ARM_THM_MOVT_ABS 48 /* Direct high 16 bit \ + (Thumb32 MOVT). */ +#define R_ARM_THM_MOVW_PREL_NC 49 /* PC relative 16 bit \ + (Thumb32 MOVW). */ +#define R_ARM_THM_MOVT_PREL 50 /* PC relative high 16 bit \ + (Thumb32 MOVT). */ +#define R_ARM_THM_JUMP19 51 /* PC relative 20 bit \ + (Thumb32 B.W). */ +#define R_ARM_THM_JUMP6 52 /* PC relative X & 0x7E \ + (Thumb16 CBZ, CBNZ). */ +#define R_ARM_THM_ALU_PREL_11_0 53 /* PC relative 12 bit \ + (Thumb32 ADR.W). */ +#define R_ARM_THM_PC12 54 /* PC relative 12 bit \ + (Thumb32 LDR{D,SB,H,SH}). */ +#define R_ARM_ABS32_NOI 55 /* Direct 32-bit. */ +#define R_ARM_REL32_NOI 56 /* PC relative 32-bit. */ +#define R_ARM_ALU_PC_G0_NC 57 /* PC relative (ADD, SUB). */ +#define R_ARM_ALU_PC_G0 58 /* PC relative (ADD, SUB). */ +#define R_ARM_ALU_PC_G1_NC 59 /* PC relative (ADD, SUB). */ +#define R_ARM_ALU_PC_G1 60 /* PC relative (ADD, SUB). */ +#define R_ARM_ALU_PC_G2 61 /* PC relative (ADD, SUB). */ +#define R_ARM_LDR_PC_G1 62 /* PC relative (LDR,STR,LDRB,STRB). */ +#define R_ARM_LDR_PC_G2 63 /* PC relative (LDR,STR,LDRB,STRB). */ +#define R_ARM_LDRS_PC_G0 64 /* PC relative (STR{D,H}, \ + LDR{D,SB,H,SH}). */ +#define R_ARM_LDRS_PC_G1 65 /* PC relative (STR{D,H}, \ + LDR{D,SB,H,SH}). */ +#define R_ARM_LDRS_PC_G2 66 /* PC relative (STR{D,H}, \ + LDR{D,SB,H,SH}). */ +#define R_ARM_LDC_PC_G0 67 /* PC relative (LDC, STC). */ +#define R_ARM_LDC_PC_G1 68 /* PC relative (LDC, STC). */ +#define R_ARM_LDC_PC_G2 69 /* PC relative (LDC, STC). */ +#define R_ARM_ALU_SB_G0_NC 70 /* Program base relative (ADD,SUB). */ +#define R_ARM_ALU_SB_G0 71 /* Program base relative (ADD,SUB). */ +#define R_ARM_ALU_SB_G1_NC 72 /* Program base relative (ADD,SUB). */ +#define R_ARM_ALU_SB_G1 73 /* Program base relative (ADD,SUB). */ +#define R_ARM_ALU_SB_G2 74 /* Program base relative (ADD,SUB). */ +#define R_ARM_LDR_SB_G0 75 /* Program base relative (LDR, \ + STR, LDRB, STRB). */ +#define R_ARM_LDR_SB_G1 76 /* Program base relative \ + (LDR, STR, LDRB, STRB). */ +#define R_ARM_LDR_SB_G2 77 /* Program base relative \ + (LDR, STR, LDRB, STRB). */ +#define R_ARM_LDRS_SB_G0 78 /* Program base relative \ + (LDR, STR, LDRB, STRB). */ +#define R_ARM_LDRS_SB_G1 79 /* Program base relative \ + (LDR, STR, LDRB, STRB). */ +#define R_ARM_LDRS_SB_G2 80 /* Program base relative \ + (LDR, STR, LDRB, STRB). */ +#define R_ARM_LDC_SB_G0 81 /* Program base relative (LDC,STC). */ +#define R_ARM_LDC_SB_G1 82 /* Program base relative (LDC,STC). */ +#define R_ARM_LDC_SB_G2 83 /* Program base relative (LDC,STC). */ +#define R_ARM_MOVW_BREL_NC 84 /* Program base relative 16 \ + bit (MOVW). */ +#define R_ARM_MOVT_BREL 85 /* Program base relative high \ + 16 bit (MOVT). */ +#define R_ARM_MOVW_BREL 86 /* Program base relative 16 \ + bit (MOVW). */ +#define R_ARM_THM_MOVW_BREL_NC 87 /* Program base relative 16 \ + bit (Thumb32 MOVW). */ +#define R_ARM_THM_MOVT_BREL 88 /* Program base relative high \ + 16 bit (Thumb32 MOVT). */ +#define R_ARM_THM_MOVW_BREL 89 /* Program base relative 16 \ + bit (Thumb32 MOVW). */ +#define R_ARM_TLS_GOTDESC 90 +#define R_ARM_TLS_CALL 91 +#define R_ARM_TLS_DESCSEQ 92 /* TLS relaxation. */ +#define R_ARM_THM_TLS_CALL 93 +#define R_ARM_PLT32_ABS 94 +#define R_ARM_GOT_ABS 95 /* GOT entry. */ +#define R_ARM_GOT_PREL 96 /* PC relative GOT entry. */ +#define R_ARM_GOT_BREL12 97 /* GOT entry relative to GOT \ + origin (LDR). */ +#define R_ARM_GOTOFF12 98 /* 12 bit, GOT entry relative \ + to GOT origin (LDR, STR). */ +#define R_ARM_GOTRELAX 99 +#define R_ARM_GNU_VTENTRY 100 +#define R_ARM_GNU_VTINHERIT 101 +#define R_ARM_THM_PC11 102 /* PC relative & 0xFFE (Thumb16 B). */ +#define R_ARM_THM_PC9 103 /* PC relative & 0x1FE \ + (Thumb16 B/B). */ +#define R_ARM_TLS_GD32 104 /* PC-rel 32 bit for global dynamic \ + thread local data */ +#define R_ARM_TLS_LDM32 105 /* PC-rel 32 bit for local dynamic \ + thread local data */ +#define R_ARM_TLS_LDO32 106 /* 32 bit offset relative to TLS \ + block */ +#define R_ARM_TLS_IE32 107 /* PC-rel 32 bit for GOT entry of \ + static TLS block offset */ +#define R_ARM_TLS_LE32 108 /* 32 bit offset relative to static \ + TLS block */ +#define R_ARM_TLS_LDO12 109 /* 12 bit relative to TLS \ + block (LDR, STR). */ +#define R_ARM_TLS_LE12 110 /* 12 bit relative to static \ + TLS block (LDR, STR). */ +#define R_ARM_TLS_IE12GP 111 /* 12 bit GOT entry relative \ + to GOT origin (LDR). */ +#define R_ARM_ME_TOO 128 /* Obsolete. */ +#define R_ARM_THM_TLS_DESCSEQ 129 +#define R_ARM_THM_TLS_DESCSEQ16 129 +#define R_ARM_THM_TLS_DESCSEQ32 130 +#define R_ARM_THM_GOT_BREL12 131 /* GOT entry relative to GOT \ + origin, 12 bit (Thumb32 LDR). */ +#define R_ARM_IRELATIVE 160 +#define R_ARM_RXPC25 249 +#define R_ARM_RSBREL32 250 +#define R_ARM_THM_RPC22 251 +#define R_ARM_RREL32 252 +#define R_ARM_RABS22 253 +#define R_ARM_RPC24 254 +#define R_ARM_RBASE 255 /* Keep this the last entry. */ -#define R_ARM_NUM 256 +#define R_ARM_NUM 256 /* C-SKY */ -#define R_CKCORE_NONE 0 /* no reloc */ -#define R_CKCORE_ADDR32 1 /* direct 32 bit (S + A) */ -#define R_CKCORE_PCRELIMM8BY4 2 /* disp ((S + A - P) >> 2) & 0xff */ -#define R_CKCORE_PCRELIMM11BY2 3 /* disp ((S + A - P) >> 1) & 0x7ff */ -#define R_CKCORE_PCREL32 5 /* 32-bit rel (S + A - P) */ -#define R_CKCORE_PCRELJSR_IMM11BY2 6 /* disp ((S + A - P) >>1) & 0x7ff */ -#define R_CKCORE_RELATIVE 9 /* 32 bit adjust program base(B + A)*/ -#define R_CKCORE_COPY 10 /* 32 bit adjust by program base */ -#define R_CKCORE_GLOB_DAT 11 /* off between got and sym (S) */ -#define R_CKCORE_JUMP_SLOT 12 /* PLT entry (S) */ -#define R_CKCORE_GOTOFF 13 /* offset to GOT (S + A - GOT) */ -#define R_CKCORE_GOTPC 14 /* PC offset to GOT (GOT + A - P) */ -#define R_CKCORE_GOT32 15 /* 32 bit GOT entry (G) */ -#define R_CKCORE_PLT32 16 /* 32 bit PLT entry (G) */ -#define R_CKCORE_ADDRGOT 17 /* GOT entry in GLOB_DAT (GOT + G) */ -#define R_CKCORE_ADDRPLT 18 /* PLT entry in GLOB_DAT (GOT + G) */ -#define R_CKCORE_PCREL_IMM26BY2 19 /* ((S + A - P) >> 1) & 0x3ffffff */ -#define R_CKCORE_PCREL_IMM16BY2 20 /* disp ((S + A - P) >> 1) & 0xffff */ -#define R_CKCORE_PCREL_IMM16BY4 21 /* disp ((S + A - P) >> 2) & 0xffff */ -#define R_CKCORE_PCREL_IMM10BY2 22 /* disp ((S + A - P) >> 1) & 0x3ff */ -#define R_CKCORE_PCREL_IMM10BY4 23 /* disp ((S + A - P) >> 2) & 0x3ff */ -#define R_CKCORE_ADDR_HI16 24 /* high & low 16 bit ADDR */ - /* ((S + A) >> 16) & 0xffff */ -#define R_CKCORE_ADDR_LO16 25 /* (S + A) & 0xffff */ -#define R_CKCORE_GOTPC_HI16 26 /* high & low 16 bit GOTPC */ - /* ((GOT + A - P) >> 16) & 0xffff */ -#define R_CKCORE_GOTPC_LO16 27 /* (GOT + A - P) & 0xffff */ -#define R_CKCORE_GOTOFF_HI16 28 /* high & low 16 bit GOTOFF */ - /* ((S + A - GOT) >> 16) & 0xffff */ -#define R_CKCORE_GOTOFF_LO16 29 /* (S + A - GOT) & 0xffff */ -#define R_CKCORE_GOT12 30 /* 12 bit disp GOT entry (G) */ -#define R_CKCORE_GOT_HI16 31 /* high & low 16 bit GOT */ - /* (G >> 16) & 0xffff */ -#define R_CKCORE_GOT_LO16 32 /* (G & 0xffff) */ -#define R_CKCORE_PLT12 33 /* 12 bit disp PLT entry (G) */ -#define R_CKCORE_PLT_HI16 34 /* high & low 16 bit PLT */ - /* (G >> 16) & 0xffff */ -#define R_CKCORE_PLT_LO16 35 /* G & 0xffff */ -#define R_CKCORE_ADDRGOT_HI16 36 /* high & low 16 bit ADDRGOT */ - /* (GOT + G * 4) & 0xffff */ -#define R_CKCORE_ADDRGOT_LO16 37 /* (GOT + G * 4) & 0xffff */ -#define R_CKCORE_ADDRPLT_HI16 38 /* high & low 16 bit ADDRPLT */ - /* ((GOT + G * 4) >> 16) & 0xFFFF */ -#define R_CKCORE_ADDRPLT_LO16 39 /* (GOT+G*4) & 0xffff */ -#define R_CKCORE_PCREL_JSR_IMM26BY2 40 /* disp ((S+A-P) >>1) & x3ffffff */ -#define R_CKCORE_TOFFSET_LO16 41 /* (S+A-BTEXT) & 0xffff */ -#define R_CKCORE_DOFFSET_LO16 42 /* (S+A-BTEXT) & 0xffff */ -#define R_CKCORE_PCREL_IMM18BY2 43 /* disp ((S+A-P) >>1) & 0x3ffff */ -#define R_CKCORE_DOFFSET_IMM18 44 /* disp (S+A-BDATA) & 0x3ffff */ -#define R_CKCORE_DOFFSET_IMM18BY2 45 /* disp ((S+A-BDATA)>>1) & 0x3ffff */ -#define R_CKCORE_DOFFSET_IMM18BY4 46 /* disp ((S+A-BDATA)>>2) & 0x3ffff */ -#define R_CKCORE_GOT_IMM18BY4 48 /* disp (G >> 2) */ -#define R_CKCORE_PLT_IMM18BY4 49 /* disp (G >> 2) */ -#define R_CKCORE_PCREL_IMM7BY4 50 /* disp ((S+A-P) >>2) & 0x7f */ -#define R_CKCORE_TLS_LE32 51 /* 32 bit offset to TLS block */ +#define R_CKCORE_NONE 0 /* no reloc */ +#define R_CKCORE_ADDR32 1 /* direct 32 bit (S + A) */ +#define R_CKCORE_PCRELIMM8BY4 2 /* disp ((S + A - P) >> 2) & 0xff */ +#define R_CKCORE_PCRELIMM11BY2 3 /* disp ((S + A - P) >> 1) & 0x7ff */ +#define R_CKCORE_PCREL32 5 /* 32-bit rel (S + A - P) */ +#define R_CKCORE_PCRELJSR_IMM11BY2 6 /* disp ((S + A - P) >>1) & 0x7ff */ +#define R_CKCORE_RELATIVE 9 /* 32 bit adjust program base(B + A)*/ +#define R_CKCORE_COPY 10 /* 32 bit adjust by program base */ +#define R_CKCORE_GLOB_DAT 11 /* off between got and sym (S) */ +#define R_CKCORE_JUMP_SLOT 12 /* PLT entry (S) */ +#define R_CKCORE_GOTOFF 13 /* offset to GOT (S + A - GOT) */ +#define R_CKCORE_GOTPC 14 /* PC offset to GOT (GOT + A - P) */ +#define R_CKCORE_GOT32 15 /* 32 bit GOT entry (G) */ +#define R_CKCORE_PLT32 16 /* 32 bit PLT entry (G) */ +#define R_CKCORE_ADDRGOT 17 /* GOT entry in GLOB_DAT (GOT + G) */ +#define R_CKCORE_ADDRPLT 18 /* PLT entry in GLOB_DAT (GOT + G) */ +#define R_CKCORE_PCREL_IMM26BY2 19 /* ((S + A - P) >> 1) & 0x3ffffff */ +#define R_CKCORE_PCREL_IMM16BY2 20 /* disp ((S + A - P) >> 1) & 0xffff */ +#define R_CKCORE_PCREL_IMM16BY4 21 /* disp ((S + A - P) >> 2) & 0xffff */ +#define R_CKCORE_PCREL_IMM10BY2 22 /* disp ((S + A - P) >> 1) & 0x3ff */ +#define R_CKCORE_PCREL_IMM10BY4 23 /* disp ((S + A - P) >> 2) & 0x3ff */ +#define R_CKCORE_ADDR_HI16 24 /* high & low 16 bit ADDR */ + /* ((S + A) >> 16) & 0xffff */ +#define R_CKCORE_ADDR_LO16 25 /* (S + A) & 0xffff */ +#define R_CKCORE_GOTPC_HI16 26 /* high & low 16 bit GOTPC */ + /* ((GOT + A - P) >> 16) & 0xffff */ +#define R_CKCORE_GOTPC_LO16 27 /* (GOT + A - P) & 0xffff */ +#define R_CKCORE_GOTOFF_HI16 28 /* high & low 16 bit GOTOFF */ + /* ((S + A - GOT) >> 16) & 0xffff */ +#define R_CKCORE_GOTOFF_LO16 29 /* (S + A - GOT) & 0xffff */ +#define R_CKCORE_GOT12 30 /* 12 bit disp GOT entry (G) */ +#define R_CKCORE_GOT_HI16 31 /* high & low 16 bit GOT */ + /* (G >> 16) & 0xffff */ +#define R_CKCORE_GOT_LO16 32 /* (G & 0xffff) */ +#define R_CKCORE_PLT12 33 /* 12 bit disp PLT entry (G) */ +#define R_CKCORE_PLT_HI16 34 /* high & low 16 bit PLT */ + /* (G >> 16) & 0xffff */ +#define R_CKCORE_PLT_LO16 35 /* G & 0xffff */ +#define R_CKCORE_ADDRGOT_HI16 36 /* high & low 16 bit ADDRGOT */ + /* (GOT + G * 4) & 0xffff */ +#define R_CKCORE_ADDRGOT_LO16 37 /* (GOT + G * 4) & 0xffff */ +#define R_CKCORE_ADDRPLT_HI16 38 /* high & low 16 bit ADDRPLT */ + /* ((GOT + G * 4) >> 16) & 0xFFFF */ +#define R_CKCORE_ADDRPLT_LO16 39 /* (GOT+G*4) & 0xffff */ +#define R_CKCORE_PCREL_JSR_IMM26BY2 40 /* disp ((S+A-P) >>1) & x3ffffff */ +#define R_CKCORE_TOFFSET_LO16 41 /* (S+A-BTEXT) & 0xffff */ +#define R_CKCORE_DOFFSET_LO16 42 /* (S+A-BTEXT) & 0xffff */ +#define R_CKCORE_PCREL_IMM18BY2 43 /* disp ((S+A-P) >>1) & 0x3ffff */ +#define R_CKCORE_DOFFSET_IMM18 44 /* disp (S+A-BDATA) & 0x3ffff */ +#define R_CKCORE_DOFFSET_IMM18BY2 45 /* disp ((S+A-BDATA)>>1) & 0x3ffff */ +#define R_CKCORE_DOFFSET_IMM18BY4 46 /* disp ((S+A-BDATA)>>2) & 0x3ffff */ +#define R_CKCORE_GOT_IMM18BY4 48 /* disp (G >> 2) */ +#define R_CKCORE_PLT_IMM18BY4 49 /* disp (G >> 2) */ +#define R_CKCORE_PCREL_IMM7BY4 50 /* disp ((S+A-P) >>2) & 0x7f */ +#define R_CKCORE_TLS_LE32 51 /* 32 bit offset to TLS block */ #define R_CKCORE_TLS_IE32 52 #define R_CKCORE_TLS_GD32 53 #define R_CKCORE_TLS_LDM32 54 @@ -3135,738 +3110,733 @@ enum #define R_CKCORE_TLS_TPOFF32 58 /* C-SKY elf header definition. */ -#define EF_CSKY_ABIMASK 0XF0000000 -#define EF_CSKY_OTHER 0X0FFF0000 -#define EF_CSKY_PROCESSOR 0X0000FFFF +#define EF_CSKY_ABIMASK 0XF0000000 +#define EF_CSKY_OTHER 0X0FFF0000 +#define EF_CSKY_PROCESSOR 0X0000FFFF -#define EF_CSKY_ABIV1 0X10000000 -#define EF_CSKY_ABIV2 0X20000000 +#define EF_CSKY_ABIV1 0X10000000 +#define EF_CSKY_ABIV2 0X20000000 /* C-SKY attributes section. */ -#define SHT_CSKY_ATTRIBUTES (SHT_LOPROC + 1) +#define SHT_CSKY_ATTRIBUTES (SHT_LOPROC + 1) /* IA-64 specific declarations. */ /* Processor specific flags for the Ehdr e_flags field. */ -#define EF_IA_64_MASKOS 0x0000000f /* os-specific flags */ -#define EF_IA_64_ABI64 0x00000010 /* 64-bit ABI */ -#define EF_IA_64_ARCH 0xff000000 /* arch. version mask */ +#define EF_IA_64_MASKOS 0x0000000f /* os-specific flags */ +#define EF_IA_64_ABI64 0x00000010 /* 64-bit ABI */ +#define EF_IA_64_ARCH 0xff000000 /* arch. version mask */ /* Processor specific values for the Phdr p_type field. */ -#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* arch extension bits */ -#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* ia64 unwind bits */ -#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) -#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) -#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) +#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* arch extension bits */ +#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* ia64 unwind bits */ +#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) +#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) +#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) /* Processor specific flags for the Phdr p_flags field. */ -#define PF_IA_64_NORECOV 0x80000000 /* spec insns w/o recovery */ +#define PF_IA_64_NORECOV 0x80000000 /* spec insns w/o recovery */ /* Processor specific values for the Shdr sh_type field. */ -#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* extension bits */ -#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* unwind bits */ +#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* extension bits */ +#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* unwind bits */ /* Processor specific flags for the Shdr sh_flags field. */ -#define SHF_IA_64_SHORT 0x10000000 /* section near gp */ -#define SHF_IA_64_NORECOV 0x20000000 /* spec insns w/o recovery */ +#define SHF_IA_64_SHORT 0x10000000 /* section near gp */ +#define SHF_IA_64_NORECOV 0x20000000 /* spec insns w/o recovery */ /* Processor specific values for the Dyn d_tag field. */ -#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) -#define DT_IA_64_NUM 1 +#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) +#define DT_IA_64_NUM 1 /* IA-64 relocations. */ -#define R_IA64_NONE 0x00 /* none */ -#define R_IA64_IMM14 0x21 /* symbol + addend, add imm14 */ -#define R_IA64_IMM22 0x22 /* symbol + addend, add imm22 */ -#define R_IA64_IMM64 0x23 /* symbol + addend, mov imm64 */ -#define R_IA64_DIR32MSB 0x24 /* symbol + addend, data4 MSB */ -#define R_IA64_DIR32LSB 0x25 /* symbol + addend, data4 LSB */ -#define R_IA64_DIR64MSB 0x26 /* symbol + addend, data8 MSB */ -#define R_IA64_DIR64LSB 0x27 /* symbol + addend, data8 LSB */ -#define R_IA64_GPREL22 0x2a /* @gprel(sym + add), add imm22 */ -#define R_IA64_GPREL64I 0x2b /* @gprel(sym + add), mov imm64 */ -#define R_IA64_GPREL32MSB 0x2c /* @gprel(sym + add), data4 MSB */ -#define R_IA64_GPREL32LSB 0x2d /* @gprel(sym + add), data4 LSB */ -#define R_IA64_GPREL64MSB 0x2e /* @gprel(sym + add), data8 MSB */ -#define R_IA64_GPREL64LSB 0x2f /* @gprel(sym + add), data8 LSB */ -#define R_IA64_LTOFF22 0x32 /* @ltoff(sym + add), add imm22 */ -#define R_IA64_LTOFF64I 0x33 /* @ltoff(sym + add), mov imm64 */ -#define R_IA64_PLTOFF22 0x3a /* @pltoff(sym + add), add imm22 */ -#define R_IA64_PLTOFF64I 0x3b /* @pltoff(sym + add), mov imm64 */ -#define R_IA64_PLTOFF64MSB 0x3e /* @pltoff(sym + add), data8 MSB */ -#define R_IA64_PLTOFF64LSB 0x3f /* @pltoff(sym + add), data8 LSB */ -#define R_IA64_FPTR64I 0x43 /* @fptr(sym + add), mov imm64 */ -#define R_IA64_FPTR32MSB 0x44 /* @fptr(sym + add), data4 MSB */ -#define R_IA64_FPTR32LSB 0x45 /* @fptr(sym + add), data4 LSB */ -#define R_IA64_FPTR64MSB 0x46 /* @fptr(sym + add), data8 MSB */ -#define R_IA64_FPTR64LSB 0x47 /* @fptr(sym + add), data8 LSB */ -#define R_IA64_PCREL60B 0x48 /* @pcrel(sym + add), brl */ -#define R_IA64_PCREL21B 0x49 /* @pcrel(sym + add), ptb, call */ -#define R_IA64_PCREL21M 0x4a /* @pcrel(sym + add), chk.s */ -#define R_IA64_PCREL21F 0x4b /* @pcrel(sym + add), fchkf */ -#define R_IA64_PCREL32MSB 0x4c /* @pcrel(sym + add), data4 MSB */ -#define R_IA64_PCREL32LSB 0x4d /* @pcrel(sym + add), data4 LSB */ -#define R_IA64_PCREL64MSB 0x4e /* @pcrel(sym + add), data8 MSB */ -#define R_IA64_PCREL64LSB 0x4f /* @pcrel(sym + add), data8 LSB */ -#define R_IA64_LTOFF_FPTR22 0x52 /* @ltoff(@fptr(s+a)), imm22 */ -#define R_IA64_LTOFF_FPTR64I 0x53 /* @ltoff(@fptr(s+a)), imm64 */ -#define R_IA64_LTOFF_FPTR32MSB 0x54 /* @ltoff(@fptr(s+a)), data4 MSB */ -#define R_IA64_LTOFF_FPTR32LSB 0x55 /* @ltoff(@fptr(s+a)), data4 LSB */ -#define R_IA64_LTOFF_FPTR64MSB 0x56 /* @ltoff(@fptr(s+a)), data8 MSB */ -#define R_IA64_LTOFF_FPTR64LSB 0x57 /* @ltoff(@fptr(s+a)), data8 LSB */ -#define R_IA64_SEGREL32MSB 0x5c /* @segrel(sym + add), data4 MSB */ -#define R_IA64_SEGREL32LSB 0x5d /* @segrel(sym + add), data4 LSB */ -#define R_IA64_SEGREL64MSB 0x5e /* @segrel(sym + add), data8 MSB */ -#define R_IA64_SEGREL64LSB 0x5f /* @segrel(sym + add), data8 LSB */ -#define R_IA64_SECREL32MSB 0x64 /* @secrel(sym + add), data4 MSB */ -#define R_IA64_SECREL32LSB 0x65 /* @secrel(sym + add), data4 LSB */ -#define R_IA64_SECREL64MSB 0x66 /* @secrel(sym + add), data8 MSB */ -#define R_IA64_SECREL64LSB 0x67 /* @secrel(sym + add), data8 LSB */ -#define R_IA64_REL32MSB 0x6c /* data 4 + REL */ -#define R_IA64_REL32LSB 0x6d /* data 4 + REL */ -#define R_IA64_REL64MSB 0x6e /* data 8 + REL */ -#define R_IA64_REL64LSB 0x6f /* data 8 + REL */ -#define R_IA64_LTV32MSB 0x74 /* symbol + addend, data4 MSB */ -#define R_IA64_LTV32LSB 0x75 /* symbol + addend, data4 LSB */ -#define R_IA64_LTV64MSB 0x76 /* symbol + addend, data8 MSB */ -#define R_IA64_LTV64LSB 0x77 /* symbol + addend, data8 LSB */ -#define R_IA64_PCREL21BI 0x79 /* @pcrel(sym + add), 21bit inst */ -#define R_IA64_PCREL22 0x7a /* @pcrel(sym + add), 22bit inst */ -#define R_IA64_PCREL64I 0x7b /* @pcrel(sym + add), 64bit inst */ -#define R_IA64_IPLTMSB 0x80 /* dynamic reloc, imported PLT, MSB */ -#define R_IA64_IPLTLSB 0x81 /* dynamic reloc, imported PLT, LSB */ -#define R_IA64_COPY 0x84 /* copy relocation */ -#define R_IA64_SUB 0x85 /* Addend and symbol difference */ -#define R_IA64_LTOFF22X 0x86 /* LTOFF22, relaxable. */ -#define R_IA64_LDXMOV 0x87 /* Use of LTOFF22X. */ -#define R_IA64_TPREL14 0x91 /* @tprel(sym + add), imm14 */ -#define R_IA64_TPREL22 0x92 /* @tprel(sym + add), imm22 */ -#define R_IA64_TPREL64I 0x93 /* @tprel(sym + add), imm64 */ -#define R_IA64_TPREL64MSB 0x96 /* @tprel(sym + add), data8 MSB */ -#define R_IA64_TPREL64LSB 0x97 /* @tprel(sym + add), data8 LSB */ -#define R_IA64_LTOFF_TPREL22 0x9a /* @ltoff(@tprel(s+a)), imm2 */ -#define R_IA64_DTPMOD64MSB 0xa6 /* @dtpmod(sym + add), data8 MSB */ -#define R_IA64_DTPMOD64LSB 0xa7 /* @dtpmod(sym + add), data8 LSB */ -#define R_IA64_LTOFF_DTPMOD22 0xaa /* @ltoff(@dtpmod(sym + add)), imm22 */ -#define R_IA64_DTPREL14 0xb1 /* @dtprel(sym + add), imm14 */ -#define R_IA64_DTPREL22 0xb2 /* @dtprel(sym + add), imm22 */ -#define R_IA64_DTPREL64I 0xb3 /* @dtprel(sym + add), imm64 */ -#define R_IA64_DTPREL32MSB 0xb4 /* @dtprel(sym + add), data4 MSB */ -#define R_IA64_DTPREL32LSB 0xb5 /* @dtprel(sym + add), data4 LSB */ -#define R_IA64_DTPREL64MSB 0xb6 /* @dtprel(sym + add), data8 MSB */ -#define R_IA64_DTPREL64LSB 0xb7 /* @dtprel(sym + add), data8 LSB */ -#define R_IA64_LTOFF_DTPREL22 0xba /* @ltoff(@dtprel(s+a)), imm22 */ +#define R_IA64_NONE 0x00 /* none */ +#define R_IA64_IMM14 0x21 /* symbol + addend, add imm14 */ +#define R_IA64_IMM22 0x22 /* symbol + addend, add imm22 */ +#define R_IA64_IMM64 0x23 /* symbol + addend, mov imm64 */ +#define R_IA64_DIR32MSB 0x24 /* symbol + addend, data4 MSB */ +#define R_IA64_DIR32LSB 0x25 /* symbol + addend, data4 LSB */ +#define R_IA64_DIR64MSB 0x26 /* symbol + addend, data8 MSB */ +#define R_IA64_DIR64LSB 0x27 /* symbol + addend, data8 LSB */ +#define R_IA64_GPREL22 0x2a /* @gprel(sym + add), add imm22 */ +#define R_IA64_GPREL64I 0x2b /* @gprel(sym + add), mov imm64 */ +#define R_IA64_GPREL32MSB 0x2c /* @gprel(sym + add), data4 MSB */ +#define R_IA64_GPREL32LSB 0x2d /* @gprel(sym + add), data4 LSB */ +#define R_IA64_GPREL64MSB 0x2e /* @gprel(sym + add), data8 MSB */ +#define R_IA64_GPREL64LSB 0x2f /* @gprel(sym + add), data8 LSB */ +#define R_IA64_LTOFF22 0x32 /* @ltoff(sym + add), add imm22 */ +#define R_IA64_LTOFF64I 0x33 /* @ltoff(sym + add), mov imm64 */ +#define R_IA64_PLTOFF22 0x3a /* @pltoff(sym + add), add imm22 */ +#define R_IA64_PLTOFF64I 0x3b /* @pltoff(sym + add), mov imm64 */ +#define R_IA64_PLTOFF64MSB 0x3e /* @pltoff(sym + add), data8 MSB */ +#define R_IA64_PLTOFF64LSB 0x3f /* @pltoff(sym + add), data8 LSB */ +#define R_IA64_FPTR64I 0x43 /* @fptr(sym + add), mov imm64 */ +#define R_IA64_FPTR32MSB 0x44 /* @fptr(sym + add), data4 MSB */ +#define R_IA64_FPTR32LSB 0x45 /* @fptr(sym + add), data4 LSB */ +#define R_IA64_FPTR64MSB 0x46 /* @fptr(sym + add), data8 MSB */ +#define R_IA64_FPTR64LSB 0x47 /* @fptr(sym + add), data8 LSB */ +#define R_IA64_PCREL60B 0x48 /* @pcrel(sym + add), brl */ +#define R_IA64_PCREL21B 0x49 /* @pcrel(sym + add), ptb, call */ +#define R_IA64_PCREL21M 0x4a /* @pcrel(sym + add), chk.s */ +#define R_IA64_PCREL21F 0x4b /* @pcrel(sym + add), fchkf */ +#define R_IA64_PCREL32MSB 0x4c /* @pcrel(sym + add), data4 MSB */ +#define R_IA64_PCREL32LSB 0x4d /* @pcrel(sym + add), data4 LSB */ +#define R_IA64_PCREL64MSB 0x4e /* @pcrel(sym + add), data8 MSB */ +#define R_IA64_PCREL64LSB 0x4f /* @pcrel(sym + add), data8 LSB */ +#define R_IA64_LTOFF_FPTR22 0x52 /* @ltoff(@fptr(s+a)), imm22 */ +#define R_IA64_LTOFF_FPTR64I 0x53 /* @ltoff(@fptr(s+a)), imm64 */ +#define R_IA64_LTOFF_FPTR32MSB 0x54 /* @ltoff(@fptr(s+a)), data4 MSB */ +#define R_IA64_LTOFF_FPTR32LSB 0x55 /* @ltoff(@fptr(s+a)), data4 LSB */ +#define R_IA64_LTOFF_FPTR64MSB 0x56 /* @ltoff(@fptr(s+a)), data8 MSB */ +#define R_IA64_LTOFF_FPTR64LSB 0x57 /* @ltoff(@fptr(s+a)), data8 LSB */ +#define R_IA64_SEGREL32MSB 0x5c /* @segrel(sym + add), data4 MSB */ +#define R_IA64_SEGREL32LSB 0x5d /* @segrel(sym + add), data4 LSB */ +#define R_IA64_SEGREL64MSB 0x5e /* @segrel(sym + add), data8 MSB */ +#define R_IA64_SEGREL64LSB 0x5f /* @segrel(sym + add), data8 LSB */ +#define R_IA64_SECREL32MSB 0x64 /* @secrel(sym + add), data4 MSB */ +#define R_IA64_SECREL32LSB 0x65 /* @secrel(sym + add), data4 LSB */ +#define R_IA64_SECREL64MSB 0x66 /* @secrel(sym + add), data8 MSB */ +#define R_IA64_SECREL64LSB 0x67 /* @secrel(sym + add), data8 LSB */ +#define R_IA64_REL32MSB 0x6c /* data 4 + REL */ +#define R_IA64_REL32LSB 0x6d /* data 4 + REL */ +#define R_IA64_REL64MSB 0x6e /* data 8 + REL */ +#define R_IA64_REL64LSB 0x6f /* data 8 + REL */ +#define R_IA64_LTV32MSB 0x74 /* symbol + addend, data4 MSB */ +#define R_IA64_LTV32LSB 0x75 /* symbol + addend, data4 LSB */ +#define R_IA64_LTV64MSB 0x76 /* symbol + addend, data8 MSB */ +#define R_IA64_LTV64LSB 0x77 /* symbol + addend, data8 LSB */ +#define R_IA64_PCREL21BI 0x79 /* @pcrel(sym + add), 21bit inst */ +#define R_IA64_PCREL22 0x7a /* @pcrel(sym + add), 22bit inst */ +#define R_IA64_PCREL64I 0x7b /* @pcrel(sym + add), 64bit inst */ +#define R_IA64_IPLTMSB 0x80 /* dynamic reloc, imported PLT, MSB */ +#define R_IA64_IPLTLSB 0x81 /* dynamic reloc, imported PLT, LSB */ +#define R_IA64_COPY 0x84 /* copy relocation */ +#define R_IA64_SUB 0x85 /* Addend and symbol difference */ +#define R_IA64_LTOFF22X 0x86 /* LTOFF22, relaxable. */ +#define R_IA64_LDXMOV 0x87 /* Use of LTOFF22X. */ +#define R_IA64_TPREL14 0x91 /* @tprel(sym + add), imm14 */ +#define R_IA64_TPREL22 0x92 /* @tprel(sym + add), imm22 */ +#define R_IA64_TPREL64I 0x93 /* @tprel(sym + add), imm64 */ +#define R_IA64_TPREL64MSB 0x96 /* @tprel(sym + add), data8 MSB */ +#define R_IA64_TPREL64LSB 0x97 /* @tprel(sym + add), data8 LSB */ +#define R_IA64_LTOFF_TPREL22 0x9a /* @ltoff(@tprel(s+a)), imm2 */ +#define R_IA64_DTPMOD64MSB 0xa6 /* @dtpmod(sym + add), data8 MSB */ +#define R_IA64_DTPMOD64LSB 0xa7 /* @dtpmod(sym + add), data8 LSB */ +#define R_IA64_LTOFF_DTPMOD22 0xaa /* @ltoff(@dtpmod(sym + add)), imm22 */ +#define R_IA64_DTPREL14 0xb1 /* @dtprel(sym + add), imm14 */ +#define R_IA64_DTPREL22 0xb2 /* @dtprel(sym + add), imm22 */ +#define R_IA64_DTPREL64I 0xb3 /* @dtprel(sym + add), imm64 */ +#define R_IA64_DTPREL32MSB 0xb4 /* @dtprel(sym + add), data4 MSB */ +#define R_IA64_DTPREL32LSB 0xb5 /* @dtprel(sym + add), data4 LSB */ +#define R_IA64_DTPREL64MSB 0xb6 /* @dtprel(sym + add), data8 MSB */ +#define R_IA64_DTPREL64LSB 0xb7 /* @dtprel(sym + add), data8 LSB */ +#define R_IA64_LTOFF_DTPREL22 0xba /* @ltoff(@dtprel(s+a)), imm22 */ /* SH specific declarations */ /* Processor specific flags for the ELF header e_flags field. */ -#define EF_SH_MACH_MASK 0x1f -#define EF_SH_UNKNOWN 0x0 -#define EF_SH1 0x1 -#define EF_SH2 0x2 -#define EF_SH3 0x3 -#define EF_SH_DSP 0x4 -#define EF_SH3_DSP 0x5 -#define EF_SH4AL_DSP 0x6 -#define EF_SH3E 0x8 -#define EF_SH4 0x9 -#define EF_SH2E 0xb -#define EF_SH4A 0xc -#define EF_SH2A 0xd -#define EF_SH4_NOFPU 0x10 -#define EF_SH4A_NOFPU 0x11 -#define EF_SH4_NOMMU_NOFPU 0x12 -#define EF_SH2A_NOFPU 0x13 -#define EF_SH3_NOMMU 0x14 -#define EF_SH2A_SH4_NOFPU 0x15 -#define EF_SH2A_SH3_NOFPU 0x16 -#define EF_SH2A_SH4 0x17 -#define EF_SH2A_SH3E 0x18 +#define EF_SH_MACH_MASK 0x1f +#define EF_SH_UNKNOWN 0x0 +#define EF_SH1 0x1 +#define EF_SH2 0x2 +#define EF_SH3 0x3 +#define EF_SH_DSP 0x4 +#define EF_SH3_DSP 0x5 +#define EF_SH4AL_DSP 0x6 +#define EF_SH3E 0x8 +#define EF_SH4 0x9 +#define EF_SH2E 0xb +#define EF_SH4A 0xc +#define EF_SH2A 0xd +#define EF_SH4_NOFPU 0x10 +#define EF_SH4A_NOFPU 0x11 +#define EF_SH4_NOMMU_NOFPU 0x12 +#define EF_SH2A_NOFPU 0x13 +#define EF_SH3_NOMMU 0x14 +#define EF_SH2A_SH4_NOFPU 0x15 +#define EF_SH2A_SH3_NOFPU 0x16 +#define EF_SH2A_SH4 0x17 +#define EF_SH2A_SH3E 0x18 /* SH relocs. */ -#define R_SH_NONE 0 -#define R_SH_DIR32 1 -#define R_SH_REL32 2 -#define R_SH_DIR8WPN 3 -#define R_SH_IND12W 4 -#define R_SH_DIR8WPL 5 -#define R_SH_DIR8WPZ 6 -#define R_SH_DIR8BP 7 -#define R_SH_DIR8W 8 -#define R_SH_DIR8L 9 -#define R_SH_SWITCH16 25 -#define R_SH_SWITCH32 26 -#define R_SH_USES 27 -#define R_SH_COUNT 28 -#define R_SH_ALIGN 29 -#define R_SH_CODE 30 -#define R_SH_DATA 31 -#define R_SH_LABEL 32 -#define R_SH_SWITCH8 33 -#define R_SH_GNU_VTINHERIT 34 -#define R_SH_GNU_VTENTRY 35 -#define R_SH_TLS_GD_32 144 -#define R_SH_TLS_LD_32 145 -#define R_SH_TLS_LDO_32 146 -#define R_SH_TLS_IE_32 147 -#define R_SH_TLS_LE_32 148 -#define R_SH_TLS_DTPMOD32 149 -#define R_SH_TLS_DTPOFF32 150 -#define R_SH_TLS_TPOFF32 151 -#define R_SH_GOT32 160 -#define R_SH_PLT32 161 -#define R_SH_COPY 162 -#define R_SH_GLOB_DAT 163 -#define R_SH_JMP_SLOT 164 -#define R_SH_RELATIVE 165 -#define R_SH_GOTOFF 166 -#define R_SH_GOTPC 167 +#define R_SH_NONE 0 +#define R_SH_DIR32 1 +#define R_SH_REL32 2 +#define R_SH_DIR8WPN 3 +#define R_SH_IND12W 4 +#define R_SH_DIR8WPL 5 +#define R_SH_DIR8WPZ 6 +#define R_SH_DIR8BP 7 +#define R_SH_DIR8W 8 +#define R_SH_DIR8L 9 +#define R_SH_SWITCH16 25 +#define R_SH_SWITCH32 26 +#define R_SH_USES 27 +#define R_SH_COUNT 28 +#define R_SH_ALIGN 29 +#define R_SH_CODE 30 +#define R_SH_DATA 31 +#define R_SH_LABEL 32 +#define R_SH_SWITCH8 33 +#define R_SH_GNU_VTINHERIT 34 +#define R_SH_GNU_VTENTRY 35 +#define R_SH_TLS_GD_32 144 +#define R_SH_TLS_LD_32 145 +#define R_SH_TLS_LDO_32 146 +#define R_SH_TLS_IE_32 147 +#define R_SH_TLS_LE_32 148 +#define R_SH_TLS_DTPMOD32 149 +#define R_SH_TLS_DTPOFF32 150 +#define R_SH_TLS_TPOFF32 151 +#define R_SH_GOT32 160 +#define R_SH_PLT32 161 +#define R_SH_COPY 162 +#define R_SH_GLOB_DAT 163 +#define R_SH_JMP_SLOT 164 +#define R_SH_RELATIVE 165 +#define R_SH_GOTOFF 166 +#define R_SH_GOTPC 167 /* Keep this the last entry. */ -#define R_SH_NUM 256 +#define R_SH_NUM 256 /* S/390 specific definitions. */ /* Valid values for the e_flags field. */ -#define EF_S390_HIGH_GPRS 0x00000001 /* High GPRs kernel facility needed. */ +#define EF_S390_HIGH_GPRS 0x00000001 /* High GPRs kernel facility needed. */ /* Additional s390 relocs */ -#define R_390_NONE 0 /* No reloc. */ -#define R_390_8 1 /* Direct 8 bit. */ -#define R_390_12 2 /* Direct 12 bit. */ -#define R_390_16 3 /* Direct 16 bit. */ -#define R_390_32 4 /* Direct 32 bit. */ -#define R_390_PC32 5 /* PC relative 32 bit. */ -#define R_390_GOT12 6 /* 12 bit GOT offset. */ -#define R_390_GOT32 7 /* 32 bit GOT offset. */ -#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */ -#define R_390_COPY 9 /* Copy symbol at runtime. */ -#define R_390_GLOB_DAT 10 /* Create GOT entry. */ -#define R_390_JMP_SLOT 11 /* Create PLT entry. */ -#define R_390_RELATIVE 12 /* Adjust by program base. */ -#define R_390_GOTOFF32 13 /* 32 bit offset to GOT. */ -#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */ -#define R_390_GOT16 15 /* 16 bit GOT offset. */ -#define R_390_PC16 16 /* PC relative 16 bit. */ -#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */ -#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */ -#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */ -#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */ -#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */ -#define R_390_64 22 /* Direct 64 bit. */ -#define R_390_PC64 23 /* PC relative 64 bit. */ -#define R_390_GOT64 24 /* 64 bit GOT offset. */ -#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */ -#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */ -#define R_390_GOTOFF16 27 /* 16 bit offset to GOT. */ -#define R_390_GOTOFF64 28 /* 64 bit offset to GOT. */ -#define R_390_GOTPLT12 29 /* 12 bit offset to jump slot. */ -#define R_390_GOTPLT16 30 /* 16 bit offset to jump slot. */ -#define R_390_GOTPLT32 31 /* 32 bit offset to jump slot. */ -#define R_390_GOTPLT64 32 /* 64 bit offset to jump slot. */ -#define R_390_GOTPLTENT 33 /* 32 bit rel. offset to jump slot. */ -#define R_390_PLTOFF16 34 /* 16 bit offset from GOT to PLT. */ -#define R_390_PLTOFF32 35 /* 32 bit offset from GOT to PLT. */ -#define R_390_PLTOFF64 36 /* 16 bit offset from GOT to PLT. */ -#define R_390_TLS_LOAD 37 /* Tag for load insn in TLS code. */ -#define R_390_TLS_GDCALL 38 /* Tag for function call in general - dynamic TLS code. */ -#define R_390_TLS_LDCALL 39 /* Tag for function call in local - dynamic TLS code. */ -#define R_390_TLS_GD32 40 /* Direct 32 bit for general dynamic - thread local data. */ -#define R_390_TLS_GD64 41 /* Direct 64 bit for general dynamic - thread local data. */ -#define R_390_TLS_GOTIE12 42 /* 12 bit GOT offset for static TLS - block offset. */ -#define R_390_TLS_GOTIE32 43 /* 32 bit GOT offset for static TLS - block offset. */ -#define R_390_TLS_GOTIE64 44 /* 64 bit GOT offset for static TLS - block offset. */ -#define R_390_TLS_LDM32 45 /* Direct 32 bit for local dynamic - thread local data in LE code. */ -#define R_390_TLS_LDM64 46 /* Direct 64 bit for local dynamic - thread local data in LE code. */ -#define R_390_TLS_IE32 47 /* 32 bit address of GOT entry for - negated static TLS block offset. */ -#define R_390_TLS_IE64 48 /* 64 bit address of GOT entry for - negated static TLS block offset. */ -#define R_390_TLS_IEENT 49 /* 32 bit rel. offset to GOT entry for - negated static TLS block offset. */ -#define R_390_TLS_LE32 50 /* 32 bit negated offset relative to - static TLS block. */ -#define R_390_TLS_LE64 51 /* 64 bit negated offset relative to - static TLS block. */ -#define R_390_TLS_LDO32 52 /* 32 bit offset relative to TLS - block. */ -#define R_390_TLS_LDO64 53 /* 64 bit offset relative to TLS - block. */ -#define R_390_TLS_DTPMOD 54 /* ID of module containing symbol. */ -#define R_390_TLS_DTPOFF 55 /* Offset in TLS block. */ -#define R_390_TLS_TPOFF 56 /* Negated offset in static TLS - block. */ -#define R_390_20 57 /* Direct 20 bit. */ -#define R_390_GOT20 58 /* 20 bit GOT offset. */ -#define R_390_GOTPLT20 59 /* 20 bit offset to jump slot. */ -#define R_390_TLS_GOTIE20 60 /* 20 bit GOT offset for static TLS - block offset. */ -#define R_390_IRELATIVE 61 /* STT_GNU_IFUNC relocation. */ +#define R_390_NONE 0 /* No reloc. */ +#define R_390_8 1 /* Direct 8 bit. */ +#define R_390_12 2 /* Direct 12 bit. */ +#define R_390_16 3 /* Direct 16 bit. */ +#define R_390_32 4 /* Direct 32 bit. */ +#define R_390_PC32 5 /* PC relative 32 bit. */ +#define R_390_GOT12 6 /* 12 bit GOT offset. */ +#define R_390_GOT32 7 /* 32 bit GOT offset. */ +#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */ +#define R_390_COPY 9 /* Copy symbol at runtime. */ +#define R_390_GLOB_DAT 10 /* Create GOT entry. */ +#define R_390_JMP_SLOT 11 /* Create PLT entry. */ +#define R_390_RELATIVE 12 /* Adjust by program base. */ +#define R_390_GOTOFF32 13 /* 32 bit offset to GOT. */ +#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */ +#define R_390_GOT16 15 /* 16 bit GOT offset. */ +#define R_390_PC16 16 /* PC relative 16 bit. */ +#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */ +#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */ +#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */ +#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */ +#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */ +#define R_390_64 22 /* Direct 64 bit. */ +#define R_390_PC64 23 /* PC relative 64 bit. */ +#define R_390_GOT64 24 /* 64 bit GOT offset. */ +#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */ +#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */ +#define R_390_GOTOFF16 27 /* 16 bit offset to GOT. */ +#define R_390_GOTOFF64 28 /* 64 bit offset to GOT. */ +#define R_390_GOTPLT12 29 /* 12 bit offset to jump slot. */ +#define R_390_GOTPLT16 30 /* 16 bit offset to jump slot. */ +#define R_390_GOTPLT32 31 /* 32 bit offset to jump slot. */ +#define R_390_GOTPLT64 32 /* 64 bit offset to jump slot. */ +#define R_390_GOTPLTENT 33 /* 32 bit rel. offset to jump slot. */ +#define R_390_PLTOFF16 34 /* 16 bit offset from GOT to PLT. */ +#define R_390_PLTOFF32 35 /* 32 bit offset from GOT to PLT. */ +#define R_390_PLTOFF64 36 /* 16 bit offset from GOT to PLT. */ +#define R_390_TLS_LOAD 37 /* Tag for load insn in TLS code. */ +#define R_390_TLS_GDCALL 38 /* Tag for function call in general \ + dynamic TLS code. */ +#define R_390_TLS_LDCALL 39 /* Tag for function call in local \ + dynamic TLS code. */ +#define R_390_TLS_GD32 40 /* Direct 32 bit for general dynamic \ + thread local data. */ +#define R_390_TLS_GD64 41 /* Direct 64 bit for general dynamic \ + thread local data. */ +#define R_390_TLS_GOTIE12 42 /* 12 bit GOT offset for static TLS \ + block offset. */ +#define R_390_TLS_GOTIE32 43 /* 32 bit GOT offset for static TLS \ + block offset. */ +#define R_390_TLS_GOTIE64 44 /* 64 bit GOT offset for static TLS \ + block offset. */ +#define R_390_TLS_LDM32 45 /* Direct 32 bit for local dynamic \ + thread local data in LE code. */ +#define R_390_TLS_LDM64 46 /* Direct 64 bit for local dynamic \ + thread local data in LE code. */ +#define R_390_TLS_IE32 47 /* 32 bit address of GOT entry for \ + negated static TLS block offset. */ +#define R_390_TLS_IE64 48 /* 64 bit address of GOT entry for \ + negated static TLS block offset. */ +#define R_390_TLS_IEENT 49 /* 32 bit rel. offset to GOT entry for \ + negated static TLS block offset. */ +#define R_390_TLS_LE32 50 /* 32 bit negated offset relative to \ + static TLS block. */ +#define R_390_TLS_LE64 51 /* 64 bit negated offset relative to \ + static TLS block. */ +#define R_390_TLS_LDO32 52 /* 32 bit offset relative to TLS \ + block. */ +#define R_390_TLS_LDO64 53 /* 64 bit offset relative to TLS \ + block. */ +#define R_390_TLS_DTPMOD 54 /* ID of module containing symbol. */ +#define R_390_TLS_DTPOFF 55 /* Offset in TLS block. */ +#define R_390_TLS_TPOFF 56 /* Negated offset in static TLS \ + block. */ +#define R_390_20 57 /* Direct 20 bit. */ +#define R_390_GOT20 58 /* 20 bit GOT offset. */ +#define R_390_GOTPLT20 59 /* 20 bit offset to jump slot. */ +#define R_390_TLS_GOTIE20 60 /* 20 bit GOT offset for static TLS \ + block offset. */ +#define R_390_IRELATIVE 61 /* STT_GNU_IFUNC relocation. */ /* Keep this the last entry. */ -#define R_390_NUM 62 - +#define R_390_NUM 62 /* CRIS relocations. */ -#define R_CRIS_NONE 0 -#define R_CRIS_8 1 -#define R_CRIS_16 2 -#define R_CRIS_32 3 -#define R_CRIS_8_PCREL 4 -#define R_CRIS_16_PCREL 5 -#define R_CRIS_32_PCREL 6 -#define R_CRIS_GNU_VTINHERIT 7 -#define R_CRIS_GNU_VTENTRY 8 -#define R_CRIS_COPY 9 -#define R_CRIS_GLOB_DAT 10 -#define R_CRIS_JUMP_SLOT 11 -#define R_CRIS_RELATIVE 12 -#define R_CRIS_16_GOT 13 -#define R_CRIS_32_GOT 14 -#define R_CRIS_16_GOTPLT 15 -#define R_CRIS_32_GOTPLT 16 -#define R_CRIS_32_GOTREL 17 -#define R_CRIS_32_PLT_GOTREL 18 -#define R_CRIS_32_PLT_PCREL 19 - -#define R_CRIS_NUM 20 - +#define R_CRIS_NONE 0 +#define R_CRIS_8 1 +#define R_CRIS_16 2 +#define R_CRIS_32 3 +#define R_CRIS_8_PCREL 4 +#define R_CRIS_16_PCREL 5 +#define R_CRIS_32_PCREL 6 +#define R_CRIS_GNU_VTINHERIT 7 +#define R_CRIS_GNU_VTENTRY 8 +#define R_CRIS_COPY 9 +#define R_CRIS_GLOB_DAT 10 +#define R_CRIS_JUMP_SLOT 11 +#define R_CRIS_RELATIVE 12 +#define R_CRIS_16_GOT 13 +#define R_CRIS_32_GOT 14 +#define R_CRIS_16_GOTPLT 15 +#define R_CRIS_32_GOTPLT 16 +#define R_CRIS_32_GOTREL 17 +#define R_CRIS_32_PLT_GOTREL 18 +#define R_CRIS_32_PLT_PCREL 19 + +#define R_CRIS_NUM 20 /* AMD x86-64 relocations. */ -#define R_X86_64_NONE 0 /* No reloc */ -#define R_X86_64_64 1 /* Direct 64 bit */ -#define R_X86_64_PC32 2 /* PC relative 32 bit signed */ -#define R_X86_64_GOT32 3 /* 32 bit GOT entry */ -#define R_X86_64_PLT32 4 /* 32 bit PLT address */ -#define R_X86_64_COPY 5 /* Copy symbol at runtime */ -#define R_X86_64_GLOB_DAT 6 /* Create GOT entry */ -#define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */ -#define R_X86_64_RELATIVE 8 /* Adjust by program base */ -#define R_X86_64_GOTPCREL 9 /* 32 bit signed PC relative - offset to GOT */ -#define R_X86_64_32 10 /* Direct 32 bit zero extended */ -#define R_X86_64_32S 11 /* Direct 32 bit sign extended */ -#define R_X86_64_16 12 /* Direct 16 bit zero extended */ -#define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */ -#define R_X86_64_8 14 /* Direct 8 bit sign extended */ -#define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */ -#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */ -#define R_X86_64_DTPOFF64 17 /* Offset in module's TLS block */ -#define R_X86_64_TPOFF64 18 /* Offset in initial TLS block */ -#define R_X86_64_TLSGD 19 /* 32 bit signed PC relative offset - to two GOT entries for GD symbol */ -#define R_X86_64_TLSLD 20 /* 32 bit signed PC relative offset - to two GOT entries for LD symbol */ -#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */ -#define R_X86_64_GOTTPOFF 22 /* 32 bit signed PC relative offset - to GOT entry for IE symbol */ -#define R_X86_64_TPOFF32 23 /* Offset in initial TLS block */ -#define R_X86_64_PC64 24 /* PC relative 64 bit */ -#define R_X86_64_GOTOFF64 25 /* 64 bit offset to GOT */ -#define R_X86_64_GOTPC32 26 /* 32 bit signed pc relative - offset to GOT */ -#define R_X86_64_GOT64 27 /* 64-bit GOT entry offset */ -#define R_X86_64_GOTPCREL64 28 /* 64-bit PC relative offset - to GOT entry */ -#define R_X86_64_GOTPC64 29 /* 64-bit PC relative offset to GOT */ -#define R_X86_64_GOTPLT64 30 /* like GOT64, says PLT entry needed */ -#define R_X86_64_PLTOFF64 31 /* 64-bit GOT relative offset - to PLT entry */ -#define R_X86_64_SIZE32 32 /* Size of symbol plus 32-bit addend */ -#define R_X86_64_SIZE64 33 /* Size of symbol plus 64-bit addend */ -#define R_X86_64_GOTPC32_TLSDESC 34 /* GOT offset for TLS descriptor. */ -#define R_X86_64_TLSDESC_CALL 35 /* Marker for call through TLS - descriptor. */ -#define R_X86_64_TLSDESC 36 /* TLS descriptor. */ -#define R_X86_64_IRELATIVE 37 /* Adjust indirectly by program base */ -#define R_X86_64_RELATIVE64 38 /* 64-bit adjust by program base */ - /* 39 Reserved was R_X86_64_PC32_BND */ - /* 40 Reserved was R_X86_64_PLT32_BND */ -#define R_X86_64_GOTPCRELX 41 /* Load from 32 bit signed pc relative - offset to GOT entry without REX - prefix, relaxable. */ -#define R_X86_64_REX_GOTPCRELX 42 /* Load from 32 bit signed pc relative - offset to GOT entry with REX prefix, - relaxable. */ -#define R_X86_64_NUM 43 +#define R_X86_64_NONE 0 /* No reloc */ +#define R_X86_64_64 1 /* Direct 64 bit */ +#define R_X86_64_PC32 2 /* PC relative 32 bit signed */ +#define R_X86_64_GOT32 3 /* 32 bit GOT entry */ +#define R_X86_64_PLT32 4 /* 32 bit PLT address */ +#define R_X86_64_COPY 5 /* Copy symbol at runtime */ +#define R_X86_64_GLOB_DAT 6 /* Create GOT entry */ +#define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */ +#define R_X86_64_RELATIVE 8 /* Adjust by program base */ +#define R_X86_64_GOTPCREL 9 /* 32 bit signed PC relative \ + offset to GOT */ +#define R_X86_64_32 10 /* Direct 32 bit zero extended */ +#define R_X86_64_32S 11 /* Direct 32 bit sign extended */ +#define R_X86_64_16 12 /* Direct 16 bit zero extended */ +#define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */ +#define R_X86_64_8 14 /* Direct 8 bit sign extended */ +#define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */ +#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */ +#define R_X86_64_DTPOFF64 17 /* Offset in module's TLS block */ +#define R_X86_64_TPOFF64 18 /* Offset in initial TLS block */ +#define R_X86_64_TLSGD 19 /* 32 bit signed PC relative offset \ + to two GOT entries for GD symbol */ +#define R_X86_64_TLSLD 20 /* 32 bit signed PC relative offset \ + to two GOT entries for LD symbol */ +#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */ +#define R_X86_64_GOTTPOFF 22 /* 32 bit signed PC relative offset \ + to GOT entry for IE symbol */ +#define R_X86_64_TPOFF32 23 /* Offset in initial TLS block */ +#define R_X86_64_PC64 24 /* PC relative 64 bit */ +#define R_X86_64_GOTOFF64 25 /* 64 bit offset to GOT */ +#define R_X86_64_GOTPC32 26 /* 32 bit signed pc relative \ + offset to GOT */ +#define R_X86_64_GOT64 27 /* 64-bit GOT entry offset */ +#define R_X86_64_GOTPCREL64 28 /* 64-bit PC relative offset \ + to GOT entry */ +#define R_X86_64_GOTPC64 29 /* 64-bit PC relative offset to GOT */ +#define R_X86_64_GOTPLT64 30 /* like GOT64, says PLT entry needed */ +#define R_X86_64_PLTOFF64 31 /* 64-bit GOT relative offset \ + to PLT entry */ +#define R_X86_64_SIZE32 32 /* Size of symbol plus 32-bit addend */ +#define R_X86_64_SIZE64 33 /* Size of symbol plus 64-bit addend */ +#define R_X86_64_GOTPC32_TLSDESC 34 /* GOT offset for TLS descriptor. */ +#define R_X86_64_TLSDESC_CALL 35 /* Marker for call through TLS \ + descriptor. */ +#define R_X86_64_TLSDESC 36 /* TLS descriptor. */ +#define R_X86_64_IRELATIVE 37 /* Adjust indirectly by program base */ +#define R_X86_64_RELATIVE64 38 /* 64-bit adjust by program base */ + /* 39 Reserved was R_X86_64_PC32_BND */ + /* 40 Reserved was R_X86_64_PLT32_BND */ +#define R_X86_64_GOTPCRELX 41 /* Load from 32 bit signed pc relative \ + offset to GOT entry without REX \ + prefix, relaxable. */ +#define R_X86_64_REX_GOTPCRELX 42 /* Load from 32 bit signed pc relative \ + offset to GOT entry with REX prefix, \ + relaxable. */ +#define R_X86_64_NUM 43 /* x86-64 sh_type values. */ -#define SHT_X86_64_UNWIND 0x70000001 /* Unwind information. */ - +#define SHT_X86_64_UNWIND 0x70000001 /* Unwind information. */ /* AM33 relocations. */ -#define R_MN10300_NONE 0 /* No reloc. */ -#define R_MN10300_32 1 /* Direct 32 bit. */ -#define R_MN10300_16 2 /* Direct 16 bit. */ -#define R_MN10300_8 3 /* Direct 8 bit. */ -#define R_MN10300_PCREL32 4 /* PC-relative 32-bit. */ -#define R_MN10300_PCREL16 5 /* PC-relative 16-bit signed. */ -#define R_MN10300_PCREL8 6 /* PC-relative 8-bit signed. */ -#define R_MN10300_GNU_VTINHERIT 7 /* Ancient C++ vtable garbage... */ -#define R_MN10300_GNU_VTENTRY 8 /* ... collection annotation. */ -#define R_MN10300_24 9 /* Direct 24 bit. */ -#define R_MN10300_GOTPC32 10 /* 32-bit PCrel offset to GOT. */ -#define R_MN10300_GOTPC16 11 /* 16-bit PCrel offset to GOT. */ -#define R_MN10300_GOTOFF32 12 /* 32-bit offset from GOT. */ -#define R_MN10300_GOTOFF24 13 /* 24-bit offset from GOT. */ -#define R_MN10300_GOTOFF16 14 /* 16-bit offset from GOT. */ -#define R_MN10300_PLT32 15 /* 32-bit PCrel to PLT entry. */ -#define R_MN10300_PLT16 16 /* 16-bit PCrel to PLT entry. */ -#define R_MN10300_GOT32 17 /* 32-bit offset to GOT entry. */ -#define R_MN10300_GOT24 18 /* 24-bit offset to GOT entry. */ -#define R_MN10300_GOT16 19 /* 16-bit offset to GOT entry. */ -#define R_MN10300_COPY 20 /* Copy symbol at runtime. */ -#define R_MN10300_GLOB_DAT 21 /* Create GOT entry. */ -#define R_MN10300_JMP_SLOT 22 /* Create PLT entry. */ -#define R_MN10300_RELATIVE 23 /* Adjust by program base. */ -#define R_MN10300_TLS_GD 24 /* 32-bit offset for global dynamic. */ -#define R_MN10300_TLS_LD 25 /* 32-bit offset for local dynamic. */ -#define R_MN10300_TLS_LDO 26 /* Module-relative offset. */ -#define R_MN10300_TLS_GOTIE 27 /* GOT offset for static TLS block - offset. */ -#define R_MN10300_TLS_IE 28 /* GOT address for static TLS block - offset. */ -#define R_MN10300_TLS_LE 29 /* Offset relative to static TLS - block. */ -#define R_MN10300_TLS_DTPMOD 30 /* ID of module containing symbol. */ -#define R_MN10300_TLS_DTPOFF 31 /* Offset in module TLS block. */ -#define R_MN10300_TLS_TPOFF 32 /* Offset in static TLS block. */ -#define R_MN10300_SYM_DIFF 33 /* Adjustment for next reloc as needed - by linker relaxation. */ -#define R_MN10300_ALIGN 34 /* Alignment requirement for linker - relaxation. */ -#define R_MN10300_NUM 35 - +#define R_MN10300_NONE 0 /* No reloc. */ +#define R_MN10300_32 1 /* Direct 32 bit. */ +#define R_MN10300_16 2 /* Direct 16 bit. */ +#define R_MN10300_8 3 /* Direct 8 bit. */ +#define R_MN10300_PCREL32 4 /* PC-relative 32-bit. */ +#define R_MN10300_PCREL16 5 /* PC-relative 16-bit signed. */ +#define R_MN10300_PCREL8 6 /* PC-relative 8-bit signed. */ +#define R_MN10300_GNU_VTINHERIT 7 /* Ancient C++ vtable garbage... */ +#define R_MN10300_GNU_VTENTRY 8 /* ... collection annotation. */ +#define R_MN10300_24 9 /* Direct 24 bit. */ +#define R_MN10300_GOTPC32 10 /* 32-bit PCrel offset to GOT. */ +#define R_MN10300_GOTPC16 11 /* 16-bit PCrel offset to GOT. */ +#define R_MN10300_GOTOFF32 12 /* 32-bit offset from GOT. */ +#define R_MN10300_GOTOFF24 13 /* 24-bit offset from GOT. */ +#define R_MN10300_GOTOFF16 14 /* 16-bit offset from GOT. */ +#define R_MN10300_PLT32 15 /* 32-bit PCrel to PLT entry. */ +#define R_MN10300_PLT16 16 /* 16-bit PCrel to PLT entry. */ +#define R_MN10300_GOT32 17 /* 32-bit offset to GOT entry. */ +#define R_MN10300_GOT24 18 /* 24-bit offset to GOT entry. */ +#define R_MN10300_GOT16 19 /* 16-bit offset to GOT entry. */ +#define R_MN10300_COPY 20 /* Copy symbol at runtime. */ +#define R_MN10300_GLOB_DAT 21 /* Create GOT entry. */ +#define R_MN10300_JMP_SLOT 22 /* Create PLT entry. */ +#define R_MN10300_RELATIVE 23 /* Adjust by program base. */ +#define R_MN10300_TLS_GD 24 /* 32-bit offset for global dynamic. */ +#define R_MN10300_TLS_LD 25 /* 32-bit offset for local dynamic. */ +#define R_MN10300_TLS_LDO 26 /* Module-relative offset. */ +#define R_MN10300_TLS_GOTIE 27 /* GOT offset for static TLS block \ + offset. */ +#define R_MN10300_TLS_IE 28 /* GOT address for static TLS block \ + offset. */ +#define R_MN10300_TLS_LE 29 /* Offset relative to static TLS \ + block. */ +#define R_MN10300_TLS_DTPMOD 30 /* ID of module containing symbol. */ +#define R_MN10300_TLS_DTPOFF 31 /* Offset in module TLS block. */ +#define R_MN10300_TLS_TPOFF 32 /* Offset in static TLS block. */ +#define R_MN10300_SYM_DIFF 33 /* Adjustment for next reloc as needed \ + by linker relaxation. */ +#define R_MN10300_ALIGN 34 /* Alignment requirement for linker \ + relaxation. */ +#define R_MN10300_NUM 35 /* M32R relocs. */ -#define R_M32R_NONE 0 /* No reloc. */ -#define R_M32R_16 1 /* Direct 16 bit. */ -#define R_M32R_32 2 /* Direct 32 bit. */ -#define R_M32R_24 3 /* Direct 24 bit. */ -#define R_M32R_10_PCREL 4 /* PC relative 10 bit shifted. */ -#define R_M32R_18_PCREL 5 /* PC relative 18 bit shifted. */ -#define R_M32R_26_PCREL 6 /* PC relative 26 bit shifted. */ -#define R_M32R_HI16_ULO 7 /* High 16 bit with unsigned low. */ -#define R_M32R_HI16_SLO 8 /* High 16 bit with signed low. */ -#define R_M32R_LO16 9 /* Low 16 bit. */ -#define R_M32R_SDA16 10 /* 16 bit offset in SDA. */ -#define R_M32R_GNU_VTINHERIT 11 -#define R_M32R_GNU_VTENTRY 12 +#define R_M32R_NONE 0 /* No reloc. */ +#define R_M32R_16 1 /* Direct 16 bit. */ +#define R_M32R_32 2 /* Direct 32 bit. */ +#define R_M32R_24 3 /* Direct 24 bit. */ +#define R_M32R_10_PCREL 4 /* PC relative 10 bit shifted. */ +#define R_M32R_18_PCREL 5 /* PC relative 18 bit shifted. */ +#define R_M32R_26_PCREL 6 /* PC relative 26 bit shifted. */ +#define R_M32R_HI16_ULO 7 /* High 16 bit with unsigned low. */ +#define R_M32R_HI16_SLO 8 /* High 16 bit with signed low. */ +#define R_M32R_LO16 9 /* Low 16 bit. */ +#define R_M32R_SDA16 10 /* 16 bit offset in SDA. */ +#define R_M32R_GNU_VTINHERIT 11 +#define R_M32R_GNU_VTENTRY 12 /* M32R relocs use SHT_RELA. */ -#define R_M32R_16_RELA 33 /* Direct 16 bit. */ -#define R_M32R_32_RELA 34 /* Direct 32 bit. */ -#define R_M32R_24_RELA 35 /* Direct 24 bit. */ -#define R_M32R_10_PCREL_RELA 36 /* PC relative 10 bit shifted. */ -#define R_M32R_18_PCREL_RELA 37 /* PC relative 18 bit shifted. */ -#define R_M32R_26_PCREL_RELA 38 /* PC relative 26 bit shifted. */ -#define R_M32R_HI16_ULO_RELA 39 /* High 16 bit with unsigned low */ -#define R_M32R_HI16_SLO_RELA 40 /* High 16 bit with signed low */ -#define R_M32R_LO16_RELA 41 /* Low 16 bit */ -#define R_M32R_SDA16_RELA 42 /* 16 bit offset in SDA */ -#define R_M32R_RELA_GNU_VTINHERIT 43 -#define R_M32R_RELA_GNU_VTENTRY 44 -#define R_M32R_REL32 45 /* PC relative 32 bit. */ - -#define R_M32R_GOT24 48 /* 24 bit GOT entry */ -#define R_M32R_26_PLTREL 49 /* 26 bit PC relative to PLT shifted */ -#define R_M32R_COPY 50 /* Copy symbol at runtime */ -#define R_M32R_GLOB_DAT 51 /* Create GOT entry */ -#define R_M32R_JMP_SLOT 52 /* Create PLT entry */ -#define R_M32R_RELATIVE 53 /* Adjust by program base */ -#define R_M32R_GOTOFF 54 /* 24 bit offset to GOT */ -#define R_M32R_GOTPC24 55 /* 24 bit PC relative offset to GOT */ -#define R_M32R_GOT16_HI_ULO 56 /* High 16 bit GOT entry with unsigned - low */ -#define R_M32R_GOT16_HI_SLO 57 /* High 16 bit GOT entry with signed - low */ -#define R_M32R_GOT16_LO 58 /* Low 16 bit GOT entry */ -#define R_M32R_GOTPC_HI_ULO 59 /* High 16 bit PC relative offset to - GOT with unsigned low */ -#define R_M32R_GOTPC_HI_SLO 60 /* High 16 bit PC relative offset to - GOT with signed low */ -#define R_M32R_GOTPC_LO 61 /* Low 16 bit PC relative offset to - GOT */ -#define R_M32R_GOTOFF_HI_ULO 62 /* High 16 bit offset to GOT - with unsigned low */ -#define R_M32R_GOTOFF_HI_SLO 63 /* High 16 bit offset to GOT - with signed low */ -#define R_M32R_GOTOFF_LO 64 /* Low 16 bit offset to GOT */ -#define R_M32R_NUM 256 /* Keep this the last entry. */ +#define R_M32R_16_RELA 33 /* Direct 16 bit. */ +#define R_M32R_32_RELA 34 /* Direct 32 bit. */ +#define R_M32R_24_RELA 35 /* Direct 24 bit. */ +#define R_M32R_10_PCREL_RELA 36 /* PC relative 10 bit shifted. */ +#define R_M32R_18_PCREL_RELA 37 /* PC relative 18 bit shifted. */ +#define R_M32R_26_PCREL_RELA 38 /* PC relative 26 bit shifted. */ +#define R_M32R_HI16_ULO_RELA 39 /* High 16 bit with unsigned low */ +#define R_M32R_HI16_SLO_RELA 40 /* High 16 bit with signed low */ +#define R_M32R_LO16_RELA 41 /* Low 16 bit */ +#define R_M32R_SDA16_RELA 42 /* 16 bit offset in SDA */ +#define R_M32R_RELA_GNU_VTINHERIT 43 +#define R_M32R_RELA_GNU_VTENTRY 44 +#define R_M32R_REL32 45 /* PC relative 32 bit. */ + +#define R_M32R_GOT24 48 /* 24 bit GOT entry */ +#define R_M32R_26_PLTREL 49 /* 26 bit PC relative to PLT shifted */ +#define R_M32R_COPY 50 /* Copy symbol at runtime */ +#define R_M32R_GLOB_DAT 51 /* Create GOT entry */ +#define R_M32R_JMP_SLOT 52 /* Create PLT entry */ +#define R_M32R_RELATIVE 53 /* Adjust by program base */ +#define R_M32R_GOTOFF 54 /* 24 bit offset to GOT */ +#define R_M32R_GOTPC24 55 /* 24 bit PC relative offset to GOT */ +#define R_M32R_GOT16_HI_ULO 56 /* High 16 bit GOT entry with unsigned \ + low */ +#define R_M32R_GOT16_HI_SLO 57 /* High 16 bit GOT entry with signed \ + low */ +#define R_M32R_GOT16_LO 58 /* Low 16 bit GOT entry */ +#define R_M32R_GOTPC_HI_ULO 59 /* High 16 bit PC relative offset to \ + GOT with unsigned low */ +#define R_M32R_GOTPC_HI_SLO 60 /* High 16 bit PC relative offset to \ + GOT with signed low */ +#define R_M32R_GOTPC_LO 61 /* Low 16 bit PC relative offset to \ + GOT */ +#define R_M32R_GOTOFF_HI_ULO 62 /* High 16 bit offset to GOT \ + with unsigned low */ +#define R_M32R_GOTOFF_HI_SLO 63 /* High 16 bit offset to GOT \ + with signed low */ +#define R_M32R_GOTOFF_LO 64 /* Low 16 bit offset to GOT */ +#define R_M32R_NUM 256 /* Keep this the last entry. */ /* MicroBlaze relocations */ -#define R_MICROBLAZE_NONE 0 /* No reloc. */ -#define R_MICROBLAZE_32 1 /* Direct 32 bit. */ -#define R_MICROBLAZE_32_PCREL 2 /* PC relative 32 bit. */ -#define R_MICROBLAZE_64_PCREL 3 /* PC relative 64 bit. */ -#define R_MICROBLAZE_32_PCREL_LO 4 /* Low 16 bits of PCREL32. */ -#define R_MICROBLAZE_64 5 /* Direct 64 bit. */ -#define R_MICROBLAZE_32_LO 6 /* Low 16 bit. */ -#define R_MICROBLAZE_SRO32 7 /* Read-only small data area. */ -#define R_MICROBLAZE_SRW32 8 /* Read-write small data area. */ -#define R_MICROBLAZE_64_NONE 9 /* No reloc. */ -#define R_MICROBLAZE_32_SYM_OP_SYM 10 /* Symbol Op Symbol relocation. */ -#define R_MICROBLAZE_GNU_VTINHERIT 11 /* GNU C++ vtable hierarchy. */ -#define R_MICROBLAZE_GNU_VTENTRY 12 /* GNU C++ vtable member usage. */ -#define R_MICROBLAZE_GOTPC_64 13 /* PC-relative GOT offset. */ -#define R_MICROBLAZE_GOT_64 14 /* GOT entry offset. */ -#define R_MICROBLAZE_PLT_64 15 /* PLT offset (PC-relative). */ -#define R_MICROBLAZE_REL 16 /* Adjust by program base. */ -#define R_MICROBLAZE_JUMP_SLOT 17 /* Create PLT entry. */ -#define R_MICROBLAZE_GLOB_DAT 18 /* Create GOT entry. */ -#define R_MICROBLAZE_GOTOFF_64 19 /* 64 bit offset to GOT. */ -#define R_MICROBLAZE_GOTOFF_32 20 /* 32 bit offset to GOT. */ -#define R_MICROBLAZE_COPY 21 /* Runtime copy. */ -#define R_MICROBLAZE_TLS 22 /* TLS Reloc. */ -#define R_MICROBLAZE_TLSGD 23 /* TLS General Dynamic. */ -#define R_MICROBLAZE_TLSLD 24 /* TLS Local Dynamic. */ -#define R_MICROBLAZE_TLSDTPMOD32 25 /* TLS Module ID. */ -#define R_MICROBLAZE_TLSDTPREL32 26 /* TLS Offset Within TLS Block. */ -#define R_MICROBLAZE_TLSDTPREL64 27 /* TLS Offset Within TLS Block. */ -#define R_MICROBLAZE_TLSGOTTPREL32 28 /* TLS Offset From Thread Pointer. */ -#define R_MICROBLAZE_TLSTPREL32 29 /* TLS Offset From Thread Pointer. */ +#define R_MICROBLAZE_NONE 0 /* No reloc. */ +#define R_MICROBLAZE_32 1 /* Direct 32 bit. */ +#define R_MICROBLAZE_32_PCREL 2 /* PC relative 32 bit. */ +#define R_MICROBLAZE_64_PCREL 3 /* PC relative 64 bit. */ +#define R_MICROBLAZE_32_PCREL_LO 4 /* Low 16 bits of PCREL32. */ +#define R_MICROBLAZE_64 5 /* Direct 64 bit. */ +#define R_MICROBLAZE_32_LO 6 /* Low 16 bit. */ +#define R_MICROBLAZE_SRO32 7 /* Read-only small data area. */ +#define R_MICROBLAZE_SRW32 8 /* Read-write small data area. */ +#define R_MICROBLAZE_64_NONE 9 /* No reloc. */ +#define R_MICROBLAZE_32_SYM_OP_SYM 10 /* Symbol Op Symbol relocation. */ +#define R_MICROBLAZE_GNU_VTINHERIT 11 /* GNU C++ vtable hierarchy. */ +#define R_MICROBLAZE_GNU_VTENTRY 12 /* GNU C++ vtable member usage. */ +#define R_MICROBLAZE_GOTPC_64 13 /* PC-relative GOT offset. */ +#define R_MICROBLAZE_GOT_64 14 /* GOT entry offset. */ +#define R_MICROBLAZE_PLT_64 15 /* PLT offset (PC-relative). */ +#define R_MICROBLAZE_REL 16 /* Adjust by program base. */ +#define R_MICROBLAZE_JUMP_SLOT 17 /* Create PLT entry. */ +#define R_MICROBLAZE_GLOB_DAT 18 /* Create GOT entry. */ +#define R_MICROBLAZE_GOTOFF_64 19 /* 64 bit offset to GOT. */ +#define R_MICROBLAZE_GOTOFF_32 20 /* 32 bit offset to GOT. */ +#define R_MICROBLAZE_COPY 21 /* Runtime copy. */ +#define R_MICROBLAZE_TLS 22 /* TLS Reloc. */ +#define R_MICROBLAZE_TLSGD 23 /* TLS General Dynamic. */ +#define R_MICROBLAZE_TLSLD 24 /* TLS Local Dynamic. */ +#define R_MICROBLAZE_TLSDTPMOD32 25 /* TLS Module ID. */ +#define R_MICROBLAZE_TLSDTPREL32 26 /* TLS Offset Within TLS Block. */ +#define R_MICROBLAZE_TLSDTPREL64 27 /* TLS Offset Within TLS Block. */ +#define R_MICROBLAZE_TLSGOTTPREL32 28 /* TLS Offset From Thread Pointer. */ +#define R_MICROBLAZE_TLSTPREL32 29 /* TLS Offset From Thread Pointer. */ /* Legal values for d_tag (dynamic entry type). */ -#define DT_NIOS2_GP 0x70000002 /* Address of _gp. */ +#define DT_NIOS2_GP 0x70000002 /* Address of _gp. */ /* Nios II relocations. */ -#define R_NIOS2_NONE 0 /* No reloc. */ -#define R_NIOS2_S16 1 /* Direct signed 16 bit. */ -#define R_NIOS2_U16 2 /* Direct unsigned 16 bit. */ -#define R_NIOS2_PCREL16 3 /* PC relative 16 bit. */ -#define R_NIOS2_CALL26 4 /* Direct call. */ -#define R_NIOS2_IMM5 5 /* 5 bit constant expression. */ -#define R_NIOS2_CACHE_OPX 6 /* 5 bit expression, shift 22. */ -#define R_NIOS2_IMM6 7 /* 6 bit constant expression. */ -#define R_NIOS2_IMM8 8 /* 8 bit constant expression. */ -#define R_NIOS2_HI16 9 /* High 16 bit. */ -#define R_NIOS2_LO16 10 /* Low 16 bit. */ -#define R_NIOS2_HIADJ16 11 /* High 16 bit, adjusted. */ -#define R_NIOS2_BFD_RELOC_32 12 /* 32 bit symbol value + addend. */ -#define R_NIOS2_BFD_RELOC_16 13 /* 16 bit symbol value + addend. */ -#define R_NIOS2_BFD_RELOC_8 14 /* 8 bit symbol value + addend. */ -#define R_NIOS2_GPREL 15 /* 16 bit GP pointer offset. */ -#define R_NIOS2_GNU_VTINHERIT 16 /* GNU C++ vtable hierarchy. */ -#define R_NIOS2_GNU_VTENTRY 17 /* GNU C++ vtable member usage. */ -#define R_NIOS2_UJMP 18 /* Unconditional branch. */ -#define R_NIOS2_CJMP 19 /* Conditional branch. */ -#define R_NIOS2_CALLR 20 /* Indirect call through register. */ -#define R_NIOS2_ALIGN 21 /* Alignment requirement for - linker relaxation. */ -#define R_NIOS2_GOT16 22 /* 16 bit GOT entry. */ -#define R_NIOS2_CALL16 23 /* 16 bit GOT entry for function. */ -#define R_NIOS2_GOTOFF_LO 24 /* %lo of offset to GOT pointer. */ -#define R_NIOS2_GOTOFF_HA 25 /* %hiadj of offset to GOT pointer. */ -#define R_NIOS2_PCREL_LO 26 /* %lo of PC relative offset. */ -#define R_NIOS2_PCREL_HA 27 /* %hiadj of PC relative offset. */ -#define R_NIOS2_TLS_GD16 28 /* 16 bit GOT offset for TLS GD. */ -#define R_NIOS2_TLS_LDM16 29 /* 16 bit GOT offset for TLS LDM. */ -#define R_NIOS2_TLS_LDO16 30 /* 16 bit module relative offset. */ -#define R_NIOS2_TLS_IE16 31 /* 16 bit GOT offset for TLS IE. */ -#define R_NIOS2_TLS_LE16 32 /* 16 bit LE TP-relative offset. */ -#define R_NIOS2_TLS_DTPMOD 33 /* Module number. */ -#define R_NIOS2_TLS_DTPREL 34 /* Module-relative offset. */ -#define R_NIOS2_TLS_TPREL 35 /* TP-relative offset. */ -#define R_NIOS2_COPY 36 /* Copy symbol at runtime. */ -#define R_NIOS2_GLOB_DAT 37 /* Create GOT entry. */ -#define R_NIOS2_JUMP_SLOT 38 /* Create PLT entry. */ -#define R_NIOS2_RELATIVE 39 /* Adjust by program base. */ -#define R_NIOS2_GOTOFF 40 /* 16 bit offset to GOT pointer. */ -#define R_NIOS2_CALL26_NOAT 41 /* Direct call in .noat section. */ -#define R_NIOS2_GOT_LO 42 /* %lo() of GOT entry. */ -#define R_NIOS2_GOT_HA 43 /* %hiadj() of GOT entry. */ -#define R_NIOS2_CALL_LO 44 /* %lo() of function GOT entry. */ -#define R_NIOS2_CALL_HA 45 /* %hiadj() of function GOT entry. */ +#define R_NIOS2_NONE 0 /* No reloc. */ +#define R_NIOS2_S16 1 /* Direct signed 16 bit. */ +#define R_NIOS2_U16 2 /* Direct unsigned 16 bit. */ +#define R_NIOS2_PCREL16 3 /* PC relative 16 bit. */ +#define R_NIOS2_CALL26 4 /* Direct call. */ +#define R_NIOS2_IMM5 5 /* 5 bit constant expression. */ +#define R_NIOS2_CACHE_OPX 6 /* 5 bit expression, shift 22. */ +#define R_NIOS2_IMM6 7 /* 6 bit constant expression. */ +#define R_NIOS2_IMM8 8 /* 8 bit constant expression. */ +#define R_NIOS2_HI16 9 /* High 16 bit. */ +#define R_NIOS2_LO16 10 /* Low 16 bit. */ +#define R_NIOS2_HIADJ16 11 /* High 16 bit, adjusted. */ +#define R_NIOS2_BFD_RELOC_32 12 /* 32 bit symbol value + addend. */ +#define R_NIOS2_BFD_RELOC_16 13 /* 16 bit symbol value + addend. */ +#define R_NIOS2_BFD_RELOC_8 14 /* 8 bit symbol value + addend. */ +#define R_NIOS2_GPREL 15 /* 16 bit GP pointer offset. */ +#define R_NIOS2_GNU_VTINHERIT 16 /* GNU C++ vtable hierarchy. */ +#define R_NIOS2_GNU_VTENTRY 17 /* GNU C++ vtable member usage. */ +#define R_NIOS2_UJMP 18 /* Unconditional branch. */ +#define R_NIOS2_CJMP 19 /* Conditional branch. */ +#define R_NIOS2_CALLR 20 /* Indirect call through register. */ +#define R_NIOS2_ALIGN 21 /* Alignment requirement for \ + linker relaxation. */ +#define R_NIOS2_GOT16 22 /* 16 bit GOT entry. */ +#define R_NIOS2_CALL16 23 /* 16 bit GOT entry for function. */ +#define R_NIOS2_GOTOFF_LO 24 /* %lo of offset to GOT pointer. */ +#define R_NIOS2_GOTOFF_HA 25 /* %hiadj of offset to GOT pointer. */ +#define R_NIOS2_PCREL_LO 26 /* %lo of PC relative offset. */ +#define R_NIOS2_PCREL_HA 27 /* %hiadj of PC relative offset. */ +#define R_NIOS2_TLS_GD16 28 /* 16 bit GOT offset for TLS GD. */ +#define R_NIOS2_TLS_LDM16 29 /* 16 bit GOT offset for TLS LDM. */ +#define R_NIOS2_TLS_LDO16 30 /* 16 bit module relative offset. */ +#define R_NIOS2_TLS_IE16 31 /* 16 bit GOT offset for TLS IE. */ +#define R_NIOS2_TLS_LE16 32 /* 16 bit LE TP-relative offset. */ +#define R_NIOS2_TLS_DTPMOD 33 /* Module number. */ +#define R_NIOS2_TLS_DTPREL 34 /* Module-relative offset. */ +#define R_NIOS2_TLS_TPREL 35 /* TP-relative offset. */ +#define R_NIOS2_COPY 36 /* Copy symbol at runtime. */ +#define R_NIOS2_GLOB_DAT 37 /* Create GOT entry. */ +#define R_NIOS2_JUMP_SLOT 38 /* Create PLT entry. */ +#define R_NIOS2_RELATIVE 39 /* Adjust by program base. */ +#define R_NIOS2_GOTOFF 40 /* 16 bit offset to GOT pointer. */ +#define R_NIOS2_CALL26_NOAT 41 /* Direct call in .noat section. */ +#define R_NIOS2_GOT_LO 42 /* %lo() of GOT entry. */ +#define R_NIOS2_GOT_HA 43 /* %hiadj() of GOT entry. */ +#define R_NIOS2_CALL_LO 44 /* %lo() of function GOT entry. */ +#define R_NIOS2_CALL_HA 45 /* %hiadj() of function GOT entry. */ /* TILEPro relocations. */ -#define R_TILEPRO_NONE 0 /* No reloc */ -#define R_TILEPRO_32 1 /* Direct 32 bit */ -#define R_TILEPRO_16 2 /* Direct 16 bit */ -#define R_TILEPRO_8 3 /* Direct 8 bit */ -#define R_TILEPRO_32_PCREL 4 /* PC relative 32 bit */ -#define R_TILEPRO_16_PCREL 5 /* PC relative 16 bit */ -#define R_TILEPRO_8_PCREL 6 /* PC relative 8 bit */ -#define R_TILEPRO_LO16 7 /* Low 16 bit */ -#define R_TILEPRO_HI16 8 /* High 16 bit */ -#define R_TILEPRO_HA16 9 /* High 16 bit, adjusted */ -#define R_TILEPRO_COPY 10 /* Copy relocation */ -#define R_TILEPRO_GLOB_DAT 11 /* Create GOT entry */ -#define R_TILEPRO_JMP_SLOT 12 /* Create PLT entry */ -#define R_TILEPRO_RELATIVE 13 /* Adjust by program base */ -#define R_TILEPRO_BROFF_X1 14 /* X1 pipe branch offset */ -#define R_TILEPRO_JOFFLONG_X1 15 /* X1 pipe jump offset */ -#define R_TILEPRO_JOFFLONG_X1_PLT 16 /* X1 pipe jump offset to PLT */ -#define R_TILEPRO_IMM8_X0 17 /* X0 pipe 8-bit */ -#define R_TILEPRO_IMM8_Y0 18 /* Y0 pipe 8-bit */ -#define R_TILEPRO_IMM8_X1 19 /* X1 pipe 8-bit */ -#define R_TILEPRO_IMM8_Y1 20 /* Y1 pipe 8-bit */ -#define R_TILEPRO_MT_IMM15_X1 21 /* X1 pipe mtspr */ -#define R_TILEPRO_MF_IMM15_X1 22 /* X1 pipe mfspr */ -#define R_TILEPRO_IMM16_X0 23 /* X0 pipe 16-bit */ -#define R_TILEPRO_IMM16_X1 24 /* X1 pipe 16-bit */ -#define R_TILEPRO_IMM16_X0_LO 25 /* X0 pipe low 16-bit */ -#define R_TILEPRO_IMM16_X1_LO 26 /* X1 pipe low 16-bit */ -#define R_TILEPRO_IMM16_X0_HI 27 /* X0 pipe high 16-bit */ -#define R_TILEPRO_IMM16_X1_HI 28 /* X1 pipe high 16-bit */ -#define R_TILEPRO_IMM16_X0_HA 29 /* X0 pipe high 16-bit, adjusted */ -#define R_TILEPRO_IMM16_X1_HA 30 /* X1 pipe high 16-bit, adjusted */ -#define R_TILEPRO_IMM16_X0_PCREL 31 /* X0 pipe PC relative 16 bit */ -#define R_TILEPRO_IMM16_X1_PCREL 32 /* X1 pipe PC relative 16 bit */ -#define R_TILEPRO_IMM16_X0_LO_PCREL 33 /* X0 pipe PC relative low 16 bit */ -#define R_TILEPRO_IMM16_X1_LO_PCREL 34 /* X1 pipe PC relative low 16 bit */ -#define R_TILEPRO_IMM16_X0_HI_PCREL 35 /* X0 pipe PC relative high 16 bit */ -#define R_TILEPRO_IMM16_X1_HI_PCREL 36 /* X1 pipe PC relative high 16 bit */ -#define R_TILEPRO_IMM16_X0_HA_PCREL 37 /* X0 pipe PC relative ha() 16 bit */ -#define R_TILEPRO_IMM16_X1_HA_PCREL 38 /* X1 pipe PC relative ha() 16 bit */ -#define R_TILEPRO_IMM16_X0_GOT 39 /* X0 pipe 16-bit GOT offset */ -#define R_TILEPRO_IMM16_X1_GOT 40 /* X1 pipe 16-bit GOT offset */ -#define R_TILEPRO_IMM16_X0_GOT_LO 41 /* X0 pipe low 16-bit GOT offset */ -#define R_TILEPRO_IMM16_X1_GOT_LO 42 /* X1 pipe low 16-bit GOT offset */ -#define R_TILEPRO_IMM16_X0_GOT_HI 43 /* X0 pipe high 16-bit GOT offset */ -#define R_TILEPRO_IMM16_X1_GOT_HI 44 /* X1 pipe high 16-bit GOT offset */ -#define R_TILEPRO_IMM16_X0_GOT_HA 45 /* X0 pipe ha() 16-bit GOT offset */ -#define R_TILEPRO_IMM16_X1_GOT_HA 46 /* X1 pipe ha() 16-bit GOT offset */ -#define R_TILEPRO_MMSTART_X0 47 /* X0 pipe mm "start" */ -#define R_TILEPRO_MMEND_X0 48 /* X0 pipe mm "end" */ -#define R_TILEPRO_MMSTART_X1 49 /* X1 pipe mm "start" */ -#define R_TILEPRO_MMEND_X1 50 /* X1 pipe mm "end" */ -#define R_TILEPRO_SHAMT_X0 51 /* X0 pipe shift amount */ -#define R_TILEPRO_SHAMT_X1 52 /* X1 pipe shift amount */ -#define R_TILEPRO_SHAMT_Y0 53 /* Y0 pipe shift amount */ -#define R_TILEPRO_SHAMT_Y1 54 /* Y1 pipe shift amount */ -#define R_TILEPRO_DEST_IMM8_X1 55 /* X1 pipe destination 8-bit */ +#define R_TILEPRO_NONE 0 /* No reloc */ +#define R_TILEPRO_32 1 /* Direct 32 bit */ +#define R_TILEPRO_16 2 /* Direct 16 bit */ +#define R_TILEPRO_8 3 /* Direct 8 bit */ +#define R_TILEPRO_32_PCREL 4 /* PC relative 32 bit */ +#define R_TILEPRO_16_PCREL 5 /* PC relative 16 bit */ +#define R_TILEPRO_8_PCREL 6 /* PC relative 8 bit */ +#define R_TILEPRO_LO16 7 /* Low 16 bit */ +#define R_TILEPRO_HI16 8 /* High 16 bit */ +#define R_TILEPRO_HA16 9 /* High 16 bit, adjusted */ +#define R_TILEPRO_COPY 10 /* Copy relocation */ +#define R_TILEPRO_GLOB_DAT 11 /* Create GOT entry */ +#define R_TILEPRO_JMP_SLOT 12 /* Create PLT entry */ +#define R_TILEPRO_RELATIVE 13 /* Adjust by program base */ +#define R_TILEPRO_BROFF_X1 14 /* X1 pipe branch offset */ +#define R_TILEPRO_JOFFLONG_X1 15 /* X1 pipe jump offset */ +#define R_TILEPRO_JOFFLONG_X1_PLT 16 /* X1 pipe jump offset to PLT */ +#define R_TILEPRO_IMM8_X0 17 /* X0 pipe 8-bit */ +#define R_TILEPRO_IMM8_Y0 18 /* Y0 pipe 8-bit */ +#define R_TILEPRO_IMM8_X1 19 /* X1 pipe 8-bit */ +#define R_TILEPRO_IMM8_Y1 20 /* Y1 pipe 8-bit */ +#define R_TILEPRO_MT_IMM15_X1 21 /* X1 pipe mtspr */ +#define R_TILEPRO_MF_IMM15_X1 22 /* X1 pipe mfspr */ +#define R_TILEPRO_IMM16_X0 23 /* X0 pipe 16-bit */ +#define R_TILEPRO_IMM16_X1 24 /* X1 pipe 16-bit */ +#define R_TILEPRO_IMM16_X0_LO 25 /* X0 pipe low 16-bit */ +#define R_TILEPRO_IMM16_X1_LO 26 /* X1 pipe low 16-bit */ +#define R_TILEPRO_IMM16_X0_HI 27 /* X0 pipe high 16-bit */ +#define R_TILEPRO_IMM16_X1_HI 28 /* X1 pipe high 16-bit */ +#define R_TILEPRO_IMM16_X0_HA 29 /* X0 pipe high 16-bit, adjusted */ +#define R_TILEPRO_IMM16_X1_HA 30 /* X1 pipe high 16-bit, adjusted */ +#define R_TILEPRO_IMM16_X0_PCREL 31 /* X0 pipe PC relative 16 bit */ +#define R_TILEPRO_IMM16_X1_PCREL 32 /* X1 pipe PC relative 16 bit */ +#define R_TILEPRO_IMM16_X0_LO_PCREL 33 /* X0 pipe PC relative low 16 bit */ +#define R_TILEPRO_IMM16_X1_LO_PCREL 34 /* X1 pipe PC relative low 16 bit */ +#define R_TILEPRO_IMM16_X0_HI_PCREL 35 /* X0 pipe PC relative high 16 bit */ +#define R_TILEPRO_IMM16_X1_HI_PCREL 36 /* X1 pipe PC relative high 16 bit */ +#define R_TILEPRO_IMM16_X0_HA_PCREL 37 /* X0 pipe PC relative ha() 16 bit */ +#define R_TILEPRO_IMM16_X1_HA_PCREL 38 /* X1 pipe PC relative ha() 16 bit */ +#define R_TILEPRO_IMM16_X0_GOT 39 /* X0 pipe 16-bit GOT offset */ +#define R_TILEPRO_IMM16_X1_GOT 40 /* X1 pipe 16-bit GOT offset */ +#define R_TILEPRO_IMM16_X0_GOT_LO 41 /* X0 pipe low 16-bit GOT offset */ +#define R_TILEPRO_IMM16_X1_GOT_LO 42 /* X1 pipe low 16-bit GOT offset */ +#define R_TILEPRO_IMM16_X0_GOT_HI 43 /* X0 pipe high 16-bit GOT offset */ +#define R_TILEPRO_IMM16_X1_GOT_HI 44 /* X1 pipe high 16-bit GOT offset */ +#define R_TILEPRO_IMM16_X0_GOT_HA 45 /* X0 pipe ha() 16-bit GOT offset */ +#define R_TILEPRO_IMM16_X1_GOT_HA 46 /* X1 pipe ha() 16-bit GOT offset */ +#define R_TILEPRO_MMSTART_X0 47 /* X0 pipe mm "start" */ +#define R_TILEPRO_MMEND_X0 48 /* X0 pipe mm "end" */ +#define R_TILEPRO_MMSTART_X1 49 /* X1 pipe mm "start" */ +#define R_TILEPRO_MMEND_X1 50 /* X1 pipe mm "end" */ +#define R_TILEPRO_SHAMT_X0 51 /* X0 pipe shift amount */ +#define R_TILEPRO_SHAMT_X1 52 /* X1 pipe shift amount */ +#define R_TILEPRO_SHAMT_Y0 53 /* Y0 pipe shift amount */ +#define R_TILEPRO_SHAMT_Y1 54 /* Y1 pipe shift amount */ +#define R_TILEPRO_DEST_IMM8_X1 55 /* X1 pipe destination 8-bit */ /* Relocs 56-59 are currently not defined. */ -#define R_TILEPRO_TLS_GD_CALL 60 /* "jal" for TLS GD */ -#define R_TILEPRO_IMM8_X0_TLS_GD_ADD 61 /* X0 pipe "addi" for TLS GD */ -#define R_TILEPRO_IMM8_X1_TLS_GD_ADD 62 /* X1 pipe "addi" for TLS GD */ -#define R_TILEPRO_IMM8_Y0_TLS_GD_ADD 63 /* Y0 pipe "addi" for TLS GD */ -#define R_TILEPRO_IMM8_Y1_TLS_GD_ADD 64 /* Y1 pipe "addi" for TLS GD */ -#define R_TILEPRO_TLS_IE_LOAD 65 /* "lw_tls" for TLS IE */ -#define R_TILEPRO_IMM16_X0_TLS_GD 66 /* X0 pipe 16-bit TLS GD offset */ -#define R_TILEPRO_IMM16_X1_TLS_GD 67 /* X1 pipe 16-bit TLS GD offset */ -#define R_TILEPRO_IMM16_X0_TLS_GD_LO 68 /* X0 pipe low 16-bit TLS GD offset */ -#define R_TILEPRO_IMM16_X1_TLS_GD_LO 69 /* X1 pipe low 16-bit TLS GD offset */ -#define R_TILEPRO_IMM16_X0_TLS_GD_HI 70 /* X0 pipe high 16-bit TLS GD offset */ -#define R_TILEPRO_IMM16_X1_TLS_GD_HI 71 /* X1 pipe high 16-bit TLS GD offset */ -#define R_TILEPRO_IMM16_X0_TLS_GD_HA 72 /* X0 pipe ha() 16-bit TLS GD offset */ -#define R_TILEPRO_IMM16_X1_TLS_GD_HA 73 /* X1 pipe ha() 16-bit TLS GD offset */ -#define R_TILEPRO_IMM16_X0_TLS_IE 74 /* X0 pipe 16-bit TLS IE offset */ -#define R_TILEPRO_IMM16_X1_TLS_IE 75 /* X1 pipe 16-bit TLS IE offset */ -#define R_TILEPRO_IMM16_X0_TLS_IE_LO 76 /* X0 pipe low 16-bit TLS IE offset */ -#define R_TILEPRO_IMM16_X1_TLS_IE_LO 77 /* X1 pipe low 16-bit TLS IE offset */ -#define R_TILEPRO_IMM16_X0_TLS_IE_HI 78 /* X0 pipe high 16-bit TLS IE offset */ -#define R_TILEPRO_IMM16_X1_TLS_IE_HI 79 /* X1 pipe high 16-bit TLS IE offset */ -#define R_TILEPRO_IMM16_X0_TLS_IE_HA 80 /* X0 pipe ha() 16-bit TLS IE offset */ -#define R_TILEPRO_IMM16_X1_TLS_IE_HA 81 /* X1 pipe ha() 16-bit TLS IE offset */ -#define R_TILEPRO_TLS_DTPMOD32 82 /* ID of module containing symbol */ -#define R_TILEPRO_TLS_DTPOFF32 83 /* Offset in TLS block */ -#define R_TILEPRO_TLS_TPOFF32 84 /* Offset in static TLS block */ -#define R_TILEPRO_IMM16_X0_TLS_LE 85 /* X0 pipe 16-bit TLS LE offset */ -#define R_TILEPRO_IMM16_X1_TLS_LE 86 /* X1 pipe 16-bit TLS LE offset */ -#define R_TILEPRO_IMM16_X0_TLS_LE_LO 87 /* X0 pipe low 16-bit TLS LE offset */ -#define R_TILEPRO_IMM16_X1_TLS_LE_LO 88 /* X1 pipe low 16-bit TLS LE offset */ -#define R_TILEPRO_IMM16_X0_TLS_LE_HI 89 /* X0 pipe high 16-bit TLS LE offset */ -#define R_TILEPRO_IMM16_X1_TLS_LE_HI 90 /* X1 pipe high 16-bit TLS LE offset */ -#define R_TILEPRO_IMM16_X0_TLS_LE_HA 91 /* X0 pipe ha() 16-bit TLS LE offset */ -#define R_TILEPRO_IMM16_X1_TLS_LE_HA 92 /* X1 pipe ha() 16-bit TLS LE offset */ - -#define R_TILEPRO_GNU_VTINHERIT 128 /* GNU C++ vtable hierarchy */ -#define R_TILEPRO_GNU_VTENTRY 129 /* GNU C++ vtable member usage */ - -#define R_TILEPRO_NUM 130 - +#define R_TILEPRO_TLS_GD_CALL 60 /* "jal" for TLS GD */ +#define R_TILEPRO_IMM8_X0_TLS_GD_ADD 61 /* X0 pipe "addi" for TLS GD */ +#define R_TILEPRO_IMM8_X1_TLS_GD_ADD 62 /* X1 pipe "addi" for TLS GD */ +#define R_TILEPRO_IMM8_Y0_TLS_GD_ADD 63 /* Y0 pipe "addi" for TLS GD */ +#define R_TILEPRO_IMM8_Y1_TLS_GD_ADD 64 /* Y1 pipe "addi" for TLS GD */ +#define R_TILEPRO_TLS_IE_LOAD 65 /* "lw_tls" for TLS IE */ +#define R_TILEPRO_IMM16_X0_TLS_GD 66 /* X0 pipe 16-bit TLS GD offset */ +#define R_TILEPRO_IMM16_X1_TLS_GD 67 /* X1 pipe 16-bit TLS GD offset */ +#define R_TILEPRO_IMM16_X0_TLS_GD_LO 68 /* X0 pipe low 16-bit TLS GD offset */ +#define R_TILEPRO_IMM16_X1_TLS_GD_LO 69 /* X1 pipe low 16-bit TLS GD offset */ +#define R_TILEPRO_IMM16_X0_TLS_GD_HI 70 /* X0 pipe high 16-bit TLS GD offset */ +#define R_TILEPRO_IMM16_X1_TLS_GD_HI 71 /* X1 pipe high 16-bit TLS GD offset */ +#define R_TILEPRO_IMM16_X0_TLS_GD_HA 72 /* X0 pipe ha() 16-bit TLS GD offset */ +#define R_TILEPRO_IMM16_X1_TLS_GD_HA 73 /* X1 pipe ha() 16-bit TLS GD offset */ +#define R_TILEPRO_IMM16_X0_TLS_IE 74 /* X0 pipe 16-bit TLS IE offset */ +#define R_TILEPRO_IMM16_X1_TLS_IE 75 /* X1 pipe 16-bit TLS IE offset */ +#define R_TILEPRO_IMM16_X0_TLS_IE_LO 76 /* X0 pipe low 16-bit TLS IE offset */ +#define R_TILEPRO_IMM16_X1_TLS_IE_LO 77 /* X1 pipe low 16-bit TLS IE offset */ +#define R_TILEPRO_IMM16_X0_TLS_IE_HI 78 /* X0 pipe high 16-bit TLS IE offset */ +#define R_TILEPRO_IMM16_X1_TLS_IE_HI 79 /* X1 pipe high 16-bit TLS IE offset */ +#define R_TILEPRO_IMM16_X0_TLS_IE_HA 80 /* X0 pipe ha() 16-bit TLS IE offset */ +#define R_TILEPRO_IMM16_X1_TLS_IE_HA 81 /* X1 pipe ha() 16-bit TLS IE offset */ +#define R_TILEPRO_TLS_DTPMOD32 82 /* ID of module containing symbol */ +#define R_TILEPRO_TLS_DTPOFF32 83 /* Offset in TLS block */ +#define R_TILEPRO_TLS_TPOFF32 84 /* Offset in static TLS block */ +#define R_TILEPRO_IMM16_X0_TLS_LE 85 /* X0 pipe 16-bit TLS LE offset */ +#define R_TILEPRO_IMM16_X1_TLS_LE 86 /* X1 pipe 16-bit TLS LE offset */ +#define R_TILEPRO_IMM16_X0_TLS_LE_LO 87 /* X0 pipe low 16-bit TLS LE offset */ +#define R_TILEPRO_IMM16_X1_TLS_LE_LO 88 /* X1 pipe low 16-bit TLS LE offset */ +#define R_TILEPRO_IMM16_X0_TLS_LE_HI 89 /* X0 pipe high 16-bit TLS LE offset */ +#define R_TILEPRO_IMM16_X1_TLS_LE_HI 90 /* X1 pipe high 16-bit TLS LE offset */ +#define R_TILEPRO_IMM16_X0_TLS_LE_HA 91 /* X0 pipe ha() 16-bit TLS LE offset */ +#define R_TILEPRO_IMM16_X1_TLS_LE_HA 92 /* X1 pipe ha() 16-bit TLS LE offset */ + +#define R_TILEPRO_GNU_VTINHERIT 128 /* GNU C++ vtable hierarchy */ +#define R_TILEPRO_GNU_VTENTRY 129 /* GNU C++ vtable member usage */ + +#define R_TILEPRO_NUM 130 /* TILE-Gx relocations. */ -#define R_TILEGX_NONE 0 /* No reloc */ -#define R_TILEGX_64 1 /* Direct 64 bit */ -#define R_TILEGX_32 2 /* Direct 32 bit */ -#define R_TILEGX_16 3 /* Direct 16 bit */ -#define R_TILEGX_8 4 /* Direct 8 bit */ -#define R_TILEGX_64_PCREL 5 /* PC relative 64 bit */ -#define R_TILEGX_32_PCREL 6 /* PC relative 32 bit */ -#define R_TILEGX_16_PCREL 7 /* PC relative 16 bit */ -#define R_TILEGX_8_PCREL 8 /* PC relative 8 bit */ -#define R_TILEGX_HW0 9 /* hword 0 16-bit */ -#define R_TILEGX_HW1 10 /* hword 1 16-bit */ -#define R_TILEGX_HW2 11 /* hword 2 16-bit */ -#define R_TILEGX_HW3 12 /* hword 3 16-bit */ -#define R_TILEGX_HW0_LAST 13 /* last hword 0 16-bit */ -#define R_TILEGX_HW1_LAST 14 /* last hword 1 16-bit */ -#define R_TILEGX_HW2_LAST 15 /* last hword 2 16-bit */ -#define R_TILEGX_COPY 16 /* Copy relocation */ -#define R_TILEGX_GLOB_DAT 17 /* Create GOT entry */ -#define R_TILEGX_JMP_SLOT 18 /* Create PLT entry */ -#define R_TILEGX_RELATIVE 19 /* Adjust by program base */ -#define R_TILEGX_BROFF_X1 20 /* X1 pipe branch offset */ -#define R_TILEGX_JUMPOFF_X1 21 /* X1 pipe jump offset */ -#define R_TILEGX_JUMPOFF_X1_PLT 22 /* X1 pipe jump offset to PLT */ -#define R_TILEGX_IMM8_X0 23 /* X0 pipe 8-bit */ -#define R_TILEGX_IMM8_Y0 24 /* Y0 pipe 8-bit */ -#define R_TILEGX_IMM8_X1 25 /* X1 pipe 8-bit */ -#define R_TILEGX_IMM8_Y1 26 /* Y1 pipe 8-bit */ -#define R_TILEGX_DEST_IMM8_X1 27 /* X1 pipe destination 8-bit */ -#define R_TILEGX_MT_IMM14_X1 28 /* X1 pipe mtspr */ -#define R_TILEGX_MF_IMM14_X1 29 /* X1 pipe mfspr */ -#define R_TILEGX_MMSTART_X0 30 /* X0 pipe mm "start" */ -#define R_TILEGX_MMEND_X0 31 /* X0 pipe mm "end" */ -#define R_TILEGX_SHAMT_X0 32 /* X0 pipe shift amount */ -#define R_TILEGX_SHAMT_X1 33 /* X1 pipe shift amount */ -#define R_TILEGX_SHAMT_Y0 34 /* Y0 pipe shift amount */ -#define R_TILEGX_SHAMT_Y1 35 /* Y1 pipe shift amount */ -#define R_TILEGX_IMM16_X0_HW0 36 /* X0 pipe hword 0 */ -#define R_TILEGX_IMM16_X1_HW0 37 /* X1 pipe hword 0 */ -#define R_TILEGX_IMM16_X0_HW1 38 /* X0 pipe hword 1 */ -#define R_TILEGX_IMM16_X1_HW1 39 /* X1 pipe hword 1 */ -#define R_TILEGX_IMM16_X0_HW2 40 /* X0 pipe hword 2 */ -#define R_TILEGX_IMM16_X1_HW2 41 /* X1 pipe hword 2 */ -#define R_TILEGX_IMM16_X0_HW3 42 /* X0 pipe hword 3 */ -#define R_TILEGX_IMM16_X1_HW3 43 /* X1 pipe hword 3 */ -#define R_TILEGX_IMM16_X0_HW0_LAST 44 /* X0 pipe last hword 0 */ -#define R_TILEGX_IMM16_X1_HW0_LAST 45 /* X1 pipe last hword 0 */ -#define R_TILEGX_IMM16_X0_HW1_LAST 46 /* X0 pipe last hword 1 */ -#define R_TILEGX_IMM16_X1_HW1_LAST 47 /* X1 pipe last hword 1 */ -#define R_TILEGX_IMM16_X0_HW2_LAST 48 /* X0 pipe last hword 2 */ -#define R_TILEGX_IMM16_X1_HW2_LAST 49 /* X1 pipe last hword 2 */ -#define R_TILEGX_IMM16_X0_HW0_PCREL 50 /* X0 pipe PC relative hword 0 */ -#define R_TILEGX_IMM16_X1_HW0_PCREL 51 /* X1 pipe PC relative hword 0 */ -#define R_TILEGX_IMM16_X0_HW1_PCREL 52 /* X0 pipe PC relative hword 1 */ -#define R_TILEGX_IMM16_X1_HW1_PCREL 53 /* X1 pipe PC relative hword 1 */ -#define R_TILEGX_IMM16_X0_HW2_PCREL 54 /* X0 pipe PC relative hword 2 */ -#define R_TILEGX_IMM16_X1_HW2_PCREL 55 /* X1 pipe PC relative hword 2 */ -#define R_TILEGX_IMM16_X0_HW3_PCREL 56 /* X0 pipe PC relative hword 3 */ -#define R_TILEGX_IMM16_X1_HW3_PCREL 57 /* X1 pipe PC relative hword 3 */ -#define R_TILEGX_IMM16_X0_HW0_LAST_PCREL 58 /* X0 pipe PC-rel last hword 0 */ -#define R_TILEGX_IMM16_X1_HW0_LAST_PCREL 59 /* X1 pipe PC-rel last hword 0 */ -#define R_TILEGX_IMM16_X0_HW1_LAST_PCREL 60 /* X0 pipe PC-rel last hword 1 */ -#define R_TILEGX_IMM16_X1_HW1_LAST_PCREL 61 /* X1 pipe PC-rel last hword 1 */ -#define R_TILEGX_IMM16_X0_HW2_LAST_PCREL 62 /* X0 pipe PC-rel last hword 2 */ -#define R_TILEGX_IMM16_X1_HW2_LAST_PCREL 63 /* X1 pipe PC-rel last hword 2 */ -#define R_TILEGX_IMM16_X0_HW0_GOT 64 /* X0 pipe hword 0 GOT offset */ -#define R_TILEGX_IMM16_X1_HW0_GOT 65 /* X1 pipe hword 0 GOT offset */ -#define R_TILEGX_IMM16_X0_HW0_PLT_PCREL 66 /* X0 pipe PC-rel PLT hword 0 */ -#define R_TILEGX_IMM16_X1_HW0_PLT_PCREL 67 /* X1 pipe PC-rel PLT hword 0 */ -#define R_TILEGX_IMM16_X0_HW1_PLT_PCREL 68 /* X0 pipe PC-rel PLT hword 1 */ -#define R_TILEGX_IMM16_X1_HW1_PLT_PCREL 69 /* X1 pipe PC-rel PLT hword 1 */ -#define R_TILEGX_IMM16_X0_HW2_PLT_PCREL 70 /* X0 pipe PC-rel PLT hword 2 */ -#define R_TILEGX_IMM16_X1_HW2_PLT_PCREL 71 /* X1 pipe PC-rel PLT hword 2 */ -#define R_TILEGX_IMM16_X0_HW0_LAST_GOT 72 /* X0 pipe last hword 0 GOT offset */ -#define R_TILEGX_IMM16_X1_HW0_LAST_GOT 73 /* X1 pipe last hword 0 GOT offset */ -#define R_TILEGX_IMM16_X0_HW1_LAST_GOT 74 /* X0 pipe last hword 1 GOT offset */ -#define R_TILEGX_IMM16_X1_HW1_LAST_GOT 75 /* X1 pipe last hword 1 GOT offset */ -#define R_TILEGX_IMM16_X0_HW3_PLT_PCREL 76 /* X0 pipe PC-rel PLT hword 3 */ -#define R_TILEGX_IMM16_X1_HW3_PLT_PCREL 77 /* X1 pipe PC-rel PLT hword 3 */ -#define R_TILEGX_IMM16_X0_HW0_TLS_GD 78 /* X0 pipe hword 0 TLS GD offset */ -#define R_TILEGX_IMM16_X1_HW0_TLS_GD 79 /* X1 pipe hword 0 TLS GD offset */ -#define R_TILEGX_IMM16_X0_HW0_TLS_LE 80 /* X0 pipe hword 0 TLS LE offset */ -#define R_TILEGX_IMM16_X1_HW0_TLS_LE 81 /* X1 pipe hword 0 TLS LE offset */ +#define R_TILEGX_NONE 0 /* No reloc */ +#define R_TILEGX_64 1 /* Direct 64 bit */ +#define R_TILEGX_32 2 /* Direct 32 bit */ +#define R_TILEGX_16 3 /* Direct 16 bit */ +#define R_TILEGX_8 4 /* Direct 8 bit */ +#define R_TILEGX_64_PCREL 5 /* PC relative 64 bit */ +#define R_TILEGX_32_PCREL 6 /* PC relative 32 bit */ +#define R_TILEGX_16_PCREL 7 /* PC relative 16 bit */ +#define R_TILEGX_8_PCREL 8 /* PC relative 8 bit */ +#define R_TILEGX_HW0 9 /* hword 0 16-bit */ +#define R_TILEGX_HW1 10 /* hword 1 16-bit */ +#define R_TILEGX_HW2 11 /* hword 2 16-bit */ +#define R_TILEGX_HW3 12 /* hword 3 16-bit */ +#define R_TILEGX_HW0_LAST 13 /* last hword 0 16-bit */ +#define R_TILEGX_HW1_LAST 14 /* last hword 1 16-bit */ +#define R_TILEGX_HW2_LAST 15 /* last hword 2 16-bit */ +#define R_TILEGX_COPY 16 /* Copy relocation */ +#define R_TILEGX_GLOB_DAT 17 /* Create GOT entry */ +#define R_TILEGX_JMP_SLOT 18 /* Create PLT entry */ +#define R_TILEGX_RELATIVE 19 /* Adjust by program base */ +#define R_TILEGX_BROFF_X1 20 /* X1 pipe branch offset */ +#define R_TILEGX_JUMPOFF_X1 21 /* X1 pipe jump offset */ +#define R_TILEGX_JUMPOFF_X1_PLT 22 /* X1 pipe jump offset to PLT */ +#define R_TILEGX_IMM8_X0 23 /* X0 pipe 8-bit */ +#define R_TILEGX_IMM8_Y0 24 /* Y0 pipe 8-bit */ +#define R_TILEGX_IMM8_X1 25 /* X1 pipe 8-bit */ +#define R_TILEGX_IMM8_Y1 26 /* Y1 pipe 8-bit */ +#define R_TILEGX_DEST_IMM8_X1 27 /* X1 pipe destination 8-bit */ +#define R_TILEGX_MT_IMM14_X1 28 /* X1 pipe mtspr */ +#define R_TILEGX_MF_IMM14_X1 29 /* X1 pipe mfspr */ +#define R_TILEGX_MMSTART_X0 30 /* X0 pipe mm "start" */ +#define R_TILEGX_MMEND_X0 31 /* X0 pipe mm "end" */ +#define R_TILEGX_SHAMT_X0 32 /* X0 pipe shift amount */ +#define R_TILEGX_SHAMT_X1 33 /* X1 pipe shift amount */ +#define R_TILEGX_SHAMT_Y0 34 /* Y0 pipe shift amount */ +#define R_TILEGX_SHAMT_Y1 35 /* Y1 pipe shift amount */ +#define R_TILEGX_IMM16_X0_HW0 36 /* X0 pipe hword 0 */ +#define R_TILEGX_IMM16_X1_HW0 37 /* X1 pipe hword 0 */ +#define R_TILEGX_IMM16_X0_HW1 38 /* X0 pipe hword 1 */ +#define R_TILEGX_IMM16_X1_HW1 39 /* X1 pipe hword 1 */ +#define R_TILEGX_IMM16_X0_HW2 40 /* X0 pipe hword 2 */ +#define R_TILEGX_IMM16_X1_HW2 41 /* X1 pipe hword 2 */ +#define R_TILEGX_IMM16_X0_HW3 42 /* X0 pipe hword 3 */ +#define R_TILEGX_IMM16_X1_HW3 43 /* X1 pipe hword 3 */ +#define R_TILEGX_IMM16_X0_HW0_LAST 44 /* X0 pipe last hword 0 */ +#define R_TILEGX_IMM16_X1_HW0_LAST 45 /* X1 pipe last hword 0 */ +#define R_TILEGX_IMM16_X0_HW1_LAST 46 /* X0 pipe last hword 1 */ +#define R_TILEGX_IMM16_X1_HW1_LAST 47 /* X1 pipe last hword 1 */ +#define R_TILEGX_IMM16_X0_HW2_LAST 48 /* X0 pipe last hword 2 */ +#define R_TILEGX_IMM16_X1_HW2_LAST 49 /* X1 pipe last hword 2 */ +#define R_TILEGX_IMM16_X0_HW0_PCREL 50 /* X0 pipe PC relative hword 0 */ +#define R_TILEGX_IMM16_X1_HW0_PCREL 51 /* X1 pipe PC relative hword 0 */ +#define R_TILEGX_IMM16_X0_HW1_PCREL 52 /* X0 pipe PC relative hword 1 */ +#define R_TILEGX_IMM16_X1_HW1_PCREL 53 /* X1 pipe PC relative hword 1 */ +#define R_TILEGX_IMM16_X0_HW2_PCREL 54 /* X0 pipe PC relative hword 2 */ +#define R_TILEGX_IMM16_X1_HW2_PCREL 55 /* X1 pipe PC relative hword 2 */ +#define R_TILEGX_IMM16_X0_HW3_PCREL 56 /* X0 pipe PC relative hword 3 */ +#define R_TILEGX_IMM16_X1_HW3_PCREL 57 /* X1 pipe PC relative hword 3 */ +#define R_TILEGX_IMM16_X0_HW0_LAST_PCREL 58 /* X0 pipe PC-rel last hword 0 */ +#define R_TILEGX_IMM16_X1_HW0_LAST_PCREL 59 /* X1 pipe PC-rel last hword 0 */ +#define R_TILEGX_IMM16_X0_HW1_LAST_PCREL 60 /* X0 pipe PC-rel last hword 1 */ +#define R_TILEGX_IMM16_X1_HW1_LAST_PCREL 61 /* X1 pipe PC-rel last hword 1 */ +#define R_TILEGX_IMM16_X0_HW2_LAST_PCREL 62 /* X0 pipe PC-rel last hword 2 */ +#define R_TILEGX_IMM16_X1_HW2_LAST_PCREL 63 /* X1 pipe PC-rel last hword 2 */ +#define R_TILEGX_IMM16_X0_HW0_GOT 64 /* X0 pipe hword 0 GOT offset */ +#define R_TILEGX_IMM16_X1_HW0_GOT 65 /* X1 pipe hword 0 GOT offset */ +#define R_TILEGX_IMM16_X0_HW0_PLT_PCREL 66 /* X0 pipe PC-rel PLT hword 0 */ +#define R_TILEGX_IMM16_X1_HW0_PLT_PCREL 67 /* X1 pipe PC-rel PLT hword 0 */ +#define R_TILEGX_IMM16_X0_HW1_PLT_PCREL 68 /* X0 pipe PC-rel PLT hword 1 */ +#define R_TILEGX_IMM16_X1_HW1_PLT_PCREL 69 /* X1 pipe PC-rel PLT hword 1 */ +#define R_TILEGX_IMM16_X0_HW2_PLT_PCREL 70 /* X0 pipe PC-rel PLT hword 2 */ +#define R_TILEGX_IMM16_X1_HW2_PLT_PCREL 71 /* X1 pipe PC-rel PLT hword 2 */ +#define R_TILEGX_IMM16_X0_HW0_LAST_GOT 72 /* X0 pipe last hword 0 GOT offset */ +#define R_TILEGX_IMM16_X1_HW0_LAST_GOT 73 /* X1 pipe last hword 0 GOT offset */ +#define R_TILEGX_IMM16_X0_HW1_LAST_GOT 74 /* X0 pipe last hword 1 GOT offset */ +#define R_TILEGX_IMM16_X1_HW1_LAST_GOT 75 /* X1 pipe last hword 1 GOT offset */ +#define R_TILEGX_IMM16_X0_HW3_PLT_PCREL 76 /* X0 pipe PC-rel PLT hword 3 */ +#define R_TILEGX_IMM16_X1_HW3_PLT_PCREL 77 /* X1 pipe PC-rel PLT hword 3 */ +#define R_TILEGX_IMM16_X0_HW0_TLS_GD 78 /* X0 pipe hword 0 TLS GD offset */ +#define R_TILEGX_IMM16_X1_HW0_TLS_GD 79 /* X1 pipe hword 0 TLS GD offset */ +#define R_TILEGX_IMM16_X0_HW0_TLS_LE 80 /* X0 pipe hword 0 TLS LE offset */ +#define R_TILEGX_IMM16_X1_HW0_TLS_LE 81 /* X1 pipe hword 0 TLS LE offset */ #define R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE 82 /* X0 pipe last hword 0 LE off */ #define R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE 83 /* X1 pipe last hword 0 LE off */ #define R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE 84 /* X0 pipe last hword 1 LE off */ @@ -3876,289 +3846,289 @@ enum #define R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 88 /* X0 pipe last hword 1 GD off */ #define R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 89 /* X1 pipe last hword 1 GD off */ /* Relocs 90-91 are currently not defined. */ -#define R_TILEGX_IMM16_X0_HW0_TLS_IE 92 /* X0 pipe hword 0 TLS IE offset */ -#define R_TILEGX_IMM16_X1_HW0_TLS_IE 93 /* X1 pipe hword 0 TLS IE offset */ -#define R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL 94 /* X0 pipe PC-rel PLT last hword 0 */ -#define R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL 95 /* X1 pipe PC-rel PLT last hword 0 */ -#define R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL 96 /* X0 pipe PC-rel PLT last hword 1 */ -#define R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL 97 /* X1 pipe PC-rel PLT last hword 1 */ -#define R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL 98 /* X0 pipe PC-rel PLT last hword 2 */ -#define R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL 99 /* X1 pipe PC-rel PLT last hword 2 */ -#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 100 /* X0 pipe last hword 0 IE off */ -#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 101 /* X1 pipe last hword 0 IE off */ -#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 102 /* X0 pipe last hword 1 IE off */ -#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 103 /* X1 pipe last hword 1 IE off */ +#define R_TILEGX_IMM16_X0_HW0_TLS_IE 92 /* X0 pipe hword 0 TLS IE offset */ +#define R_TILEGX_IMM16_X1_HW0_TLS_IE 93 /* X1 pipe hword 0 TLS IE offset */ +#define R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL 94 /* X0 pipe PC-rel PLT last hword 0 */ +#define R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL 95 /* X1 pipe PC-rel PLT last hword 0 */ +#define R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL 96 /* X0 pipe PC-rel PLT last hword 1 */ +#define R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL 97 /* X1 pipe PC-rel PLT last hword 1 */ +#define R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL 98 /* X0 pipe PC-rel PLT last hword 2 */ +#define R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL 99 /* X1 pipe PC-rel PLT last hword 2 */ +#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 100 /* X0 pipe last hword 0 IE off */ +#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 101 /* X1 pipe last hword 0 IE off */ +#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 102 /* X0 pipe last hword 1 IE off */ +#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 103 /* X1 pipe last hword 1 IE off */ /* Relocs 104-105 are currently not defined. */ -#define R_TILEGX_TLS_DTPMOD64 106 /* 64-bit ID of symbol's module */ -#define R_TILEGX_TLS_DTPOFF64 107 /* 64-bit offset in TLS block */ -#define R_TILEGX_TLS_TPOFF64 108 /* 64-bit offset in static TLS block */ -#define R_TILEGX_TLS_DTPMOD32 109 /* 32-bit ID of symbol's module */ -#define R_TILEGX_TLS_DTPOFF32 110 /* 32-bit offset in TLS block */ -#define R_TILEGX_TLS_TPOFF32 111 /* 32-bit offset in static TLS block */ -#define R_TILEGX_TLS_GD_CALL 112 /* "jal" for TLS GD */ -#define R_TILEGX_IMM8_X0_TLS_GD_ADD 113 /* X0 pipe "addi" for TLS GD */ -#define R_TILEGX_IMM8_X1_TLS_GD_ADD 114 /* X1 pipe "addi" for TLS GD */ -#define R_TILEGX_IMM8_Y0_TLS_GD_ADD 115 /* Y0 pipe "addi" for TLS GD */ -#define R_TILEGX_IMM8_Y1_TLS_GD_ADD 116 /* Y1 pipe "addi" for TLS GD */ -#define R_TILEGX_TLS_IE_LOAD 117 /* "ld_tls" for TLS IE */ -#define R_TILEGX_IMM8_X0_TLS_ADD 118 /* X0 pipe "addi" for TLS GD/IE */ -#define R_TILEGX_IMM8_X1_TLS_ADD 119 /* X1 pipe "addi" for TLS GD/IE */ -#define R_TILEGX_IMM8_Y0_TLS_ADD 120 /* Y0 pipe "addi" for TLS GD/IE */ -#define R_TILEGX_IMM8_Y1_TLS_ADD 121 /* Y1 pipe "addi" for TLS GD/IE */ - -#define R_TILEGX_GNU_VTINHERIT 128 /* GNU C++ vtable hierarchy */ -#define R_TILEGX_GNU_VTENTRY 129 /* GNU C++ vtable member usage */ - -#define R_TILEGX_NUM 130 +#define R_TILEGX_TLS_DTPMOD64 106 /* 64-bit ID of symbol's module */ +#define R_TILEGX_TLS_DTPOFF64 107 /* 64-bit offset in TLS block */ +#define R_TILEGX_TLS_TPOFF64 108 /* 64-bit offset in static TLS block */ +#define R_TILEGX_TLS_DTPMOD32 109 /* 32-bit ID of symbol's module */ +#define R_TILEGX_TLS_DTPOFF32 110 /* 32-bit offset in TLS block */ +#define R_TILEGX_TLS_TPOFF32 111 /* 32-bit offset in static TLS block */ +#define R_TILEGX_TLS_GD_CALL 112 /* "jal" for TLS GD */ +#define R_TILEGX_IMM8_X0_TLS_GD_ADD 113 /* X0 pipe "addi" for TLS GD */ +#define R_TILEGX_IMM8_X1_TLS_GD_ADD 114 /* X1 pipe "addi" for TLS GD */ +#define R_TILEGX_IMM8_Y0_TLS_GD_ADD 115 /* Y0 pipe "addi" for TLS GD */ +#define R_TILEGX_IMM8_Y1_TLS_GD_ADD 116 /* Y1 pipe "addi" for TLS GD */ +#define R_TILEGX_TLS_IE_LOAD 117 /* "ld_tls" for TLS IE */ +#define R_TILEGX_IMM8_X0_TLS_ADD 118 /* X0 pipe "addi" for TLS GD/IE */ +#define R_TILEGX_IMM8_X1_TLS_ADD 119 /* X1 pipe "addi" for TLS GD/IE */ +#define R_TILEGX_IMM8_Y0_TLS_ADD 120 /* Y0 pipe "addi" for TLS GD/IE */ +#define R_TILEGX_IMM8_Y1_TLS_ADD 121 /* Y1 pipe "addi" for TLS GD/IE */ + +#define R_TILEGX_GNU_VTINHERIT 128 /* GNU C++ vtable hierarchy */ +#define R_TILEGX_GNU_VTENTRY 129 /* GNU C++ vtable member usage */ + +#define R_TILEGX_NUM 130 /* RISC-V ELF Flags */ -#define EF_RISCV_RVC 0x0001 -#define EF_RISCV_FLOAT_ABI 0x0006 -#define EF_RISCV_FLOAT_ABI_SOFT 0x0000 -#define EF_RISCV_FLOAT_ABI_SINGLE 0x0002 -#define EF_RISCV_FLOAT_ABI_DOUBLE 0x0004 -#define EF_RISCV_FLOAT_ABI_QUAD 0x0006 +#define EF_RISCV_RVC 0x0001 +#define EF_RISCV_FLOAT_ABI 0x0006 +#define EF_RISCV_FLOAT_ABI_SOFT 0x0000 +#define EF_RISCV_FLOAT_ABI_SINGLE 0x0002 +#define EF_RISCV_FLOAT_ABI_DOUBLE 0x0004 +#define EF_RISCV_FLOAT_ABI_QUAD 0x0006 /* RISC-V relocations. */ -#define R_RISCV_NONE 0 -#define R_RISCV_32 1 -#define R_RISCV_64 2 -#define R_RISCV_RELATIVE 3 -#define R_RISCV_COPY 4 -#define R_RISCV_JUMP_SLOT 5 -#define R_RISCV_TLS_DTPMOD32 6 -#define R_RISCV_TLS_DTPMOD64 7 -#define R_RISCV_TLS_DTPREL32 8 -#define R_RISCV_TLS_DTPREL64 9 -#define R_RISCV_TLS_TPREL32 10 -#define R_RISCV_TLS_TPREL64 11 -#define R_RISCV_BRANCH 16 -#define R_RISCV_JAL 17 -#define R_RISCV_CALL 18 -#define R_RISCV_CALL_PLT 19 -#define R_RISCV_GOT_HI20 20 -#define R_RISCV_TLS_GOT_HI20 21 -#define R_RISCV_TLS_GD_HI20 22 -#define R_RISCV_PCREL_HI20 23 -#define R_RISCV_PCREL_LO12_I 24 -#define R_RISCV_PCREL_LO12_S 25 -#define R_RISCV_HI20 26 -#define R_RISCV_LO12_I 27 -#define R_RISCV_LO12_S 28 -#define R_RISCV_TPREL_HI20 29 -#define R_RISCV_TPREL_LO12_I 30 -#define R_RISCV_TPREL_LO12_S 31 -#define R_RISCV_TPREL_ADD 32 -#define R_RISCV_ADD8 33 -#define R_RISCV_ADD16 34 -#define R_RISCV_ADD32 35 -#define R_RISCV_ADD64 36 -#define R_RISCV_SUB8 37 -#define R_RISCV_SUB16 38 -#define R_RISCV_SUB32 39 -#define R_RISCV_SUB64 40 -#define R_RISCV_GNU_VTINHERIT 41 -#define R_RISCV_GNU_VTENTRY 42 -#define R_RISCV_ALIGN 43 -#define R_RISCV_RVC_BRANCH 44 -#define R_RISCV_RVC_JUMP 45 -#define R_RISCV_RVC_LUI 46 -#define R_RISCV_GPREL_I 47 -#define R_RISCV_GPREL_S 48 -#define R_RISCV_TPREL_I 49 -#define R_RISCV_TPREL_S 50 -#define R_RISCV_RELAX 51 -#define R_RISCV_SUB6 52 -#define R_RISCV_SET6 53 -#define R_RISCV_SET8 54 -#define R_RISCV_SET16 55 -#define R_RISCV_SET32 56 -#define R_RISCV_32_PCREL 57 -#define R_RISCV_IRELATIVE 58 - -#define R_RISCV_NUM 59 +#define R_RISCV_NONE 0 +#define R_RISCV_32 1 +#define R_RISCV_64 2 +#define R_RISCV_RELATIVE 3 +#define R_RISCV_COPY 4 +#define R_RISCV_JUMP_SLOT 5 +#define R_RISCV_TLS_DTPMOD32 6 +#define R_RISCV_TLS_DTPMOD64 7 +#define R_RISCV_TLS_DTPREL32 8 +#define R_RISCV_TLS_DTPREL64 9 +#define R_RISCV_TLS_TPREL32 10 +#define R_RISCV_TLS_TPREL64 11 +#define R_RISCV_BRANCH 16 +#define R_RISCV_JAL 17 +#define R_RISCV_CALL 18 +#define R_RISCV_CALL_PLT 19 +#define R_RISCV_GOT_HI20 20 +#define R_RISCV_TLS_GOT_HI20 21 +#define R_RISCV_TLS_GD_HI20 22 +#define R_RISCV_PCREL_HI20 23 +#define R_RISCV_PCREL_LO12_I 24 +#define R_RISCV_PCREL_LO12_S 25 +#define R_RISCV_HI20 26 +#define R_RISCV_LO12_I 27 +#define R_RISCV_LO12_S 28 +#define R_RISCV_TPREL_HI20 29 +#define R_RISCV_TPREL_LO12_I 30 +#define R_RISCV_TPREL_LO12_S 31 +#define R_RISCV_TPREL_ADD 32 +#define R_RISCV_ADD8 33 +#define R_RISCV_ADD16 34 +#define R_RISCV_ADD32 35 +#define R_RISCV_ADD64 36 +#define R_RISCV_SUB8 37 +#define R_RISCV_SUB16 38 +#define R_RISCV_SUB32 39 +#define R_RISCV_SUB64 40 +#define R_RISCV_GNU_VTINHERIT 41 +#define R_RISCV_GNU_VTENTRY 42 +#define R_RISCV_ALIGN 43 +#define R_RISCV_RVC_BRANCH 44 +#define R_RISCV_RVC_JUMP 45 +#define R_RISCV_RVC_LUI 46 +#define R_RISCV_GPREL_I 47 +#define R_RISCV_GPREL_S 48 +#define R_RISCV_TPREL_I 49 +#define R_RISCV_TPREL_S 50 +#define R_RISCV_RELAX 51 +#define R_RISCV_SUB6 52 +#define R_RISCV_SET6 53 +#define R_RISCV_SET8 54 +#define R_RISCV_SET16 55 +#define R_RISCV_SET32 56 +#define R_RISCV_32_PCREL 57 +#define R_RISCV_IRELATIVE 58 + +#define R_RISCV_NUM 59 /* BPF specific declarations. */ -#define R_BPF_NONE 0 /* No reloc */ -#define R_BPF_64_64 1 -#define R_BPF_64_32 10 +#define R_BPF_NONE 0 /* No reloc */ +#define R_BPF_64_64 1 +#define R_BPF_64_32 10 /* Imagination Meta specific relocations. */ -#define R_METAG_HIADDR16 0 -#define R_METAG_LOADDR16 1 -#define R_METAG_ADDR32 2 /* 32bit absolute address */ -#define R_METAG_NONE 3 /* No reloc */ -#define R_METAG_RELBRANCH 4 -#define R_METAG_GETSETOFF 5 +#define R_METAG_HIADDR16 0 +#define R_METAG_LOADDR16 1 +#define R_METAG_ADDR32 2 /* 32bit absolute address */ +#define R_METAG_NONE 3 /* No reloc */ +#define R_METAG_RELBRANCH 4 +#define R_METAG_GETSETOFF 5 /* Backward compatibility */ -#define R_METAG_REG32OP1 6 -#define R_METAG_REG32OP2 7 -#define R_METAG_REG32OP3 8 -#define R_METAG_REG16OP1 9 -#define R_METAG_REG16OP2 10 -#define R_METAG_REG16OP3 11 -#define R_METAG_REG32OP4 12 +#define R_METAG_REG32OP1 6 +#define R_METAG_REG32OP2 7 +#define R_METAG_REG32OP3 8 +#define R_METAG_REG16OP1 9 +#define R_METAG_REG16OP2 10 +#define R_METAG_REG16OP3 11 +#define R_METAG_REG32OP4 12 -#define R_METAG_HIOG 13 -#define R_METAG_LOOG 14 +#define R_METAG_HIOG 13 +#define R_METAG_LOOG 14 -#define R_METAG_REL8 15 -#define R_METAG_REL16 16 +#define R_METAG_REL8 15 +#define R_METAG_REL16 16 /* GNU */ -#define R_METAG_GNU_VTINHERIT 30 -#define R_METAG_GNU_VTENTRY 31 +#define R_METAG_GNU_VTINHERIT 30 +#define R_METAG_GNU_VTENTRY 31 /* PIC relocations */ -#define R_METAG_HI16_GOTOFF 32 -#define R_METAG_LO16_GOTOFF 33 -#define R_METAG_GETSET_GOTOFF 34 -#define R_METAG_GETSET_GOT 35 -#define R_METAG_HI16_GOTPC 36 -#define R_METAG_LO16_GOTPC 37 -#define R_METAG_HI16_PLT 38 -#define R_METAG_LO16_PLT 39 -#define R_METAG_RELBRANCH_PLT 40 -#define R_METAG_GOTOFF 41 -#define R_METAG_PLT 42 -#define R_METAG_COPY 43 -#define R_METAG_JMP_SLOT 44 -#define R_METAG_RELATIVE 45 -#define R_METAG_GLOB_DAT 46 +#define R_METAG_HI16_GOTOFF 32 +#define R_METAG_LO16_GOTOFF 33 +#define R_METAG_GETSET_GOTOFF 34 +#define R_METAG_GETSET_GOT 35 +#define R_METAG_HI16_GOTPC 36 +#define R_METAG_LO16_GOTPC 37 +#define R_METAG_HI16_PLT 38 +#define R_METAG_LO16_PLT 39 +#define R_METAG_RELBRANCH_PLT 40 +#define R_METAG_GOTOFF 41 +#define R_METAG_PLT 42 +#define R_METAG_COPY 43 +#define R_METAG_JMP_SLOT 44 +#define R_METAG_RELATIVE 45 +#define R_METAG_GLOB_DAT 46 /* TLS relocations */ -#define R_METAG_TLS_GD 47 -#define R_METAG_TLS_LDM 48 -#define R_METAG_TLS_LDO_HI16 49 -#define R_METAG_TLS_LDO_LO16 50 -#define R_METAG_TLS_LDO 51 -#define R_METAG_TLS_IE 52 -#define R_METAG_TLS_IENONPIC 53 +#define R_METAG_TLS_GD 47 +#define R_METAG_TLS_LDM 48 +#define R_METAG_TLS_LDO_HI16 49 +#define R_METAG_TLS_LDO_LO16 50 +#define R_METAG_TLS_LDO 51 +#define R_METAG_TLS_IE 52 +#define R_METAG_TLS_IENONPIC 53 #define R_METAG_TLS_IENONPIC_HI16 54 #define R_METAG_TLS_IENONPIC_LO16 55 -#define R_METAG_TLS_TPOFF 56 -#define R_METAG_TLS_DTPMOD 57 -#define R_METAG_TLS_DTPOFF 58 -#define R_METAG_TLS_LE 59 -#define R_METAG_TLS_LE_HI16 60 -#define R_METAG_TLS_LE_LO16 61 +#define R_METAG_TLS_TPOFF 56 +#define R_METAG_TLS_DTPMOD 57 +#define R_METAG_TLS_DTPOFF 58 +#define R_METAG_TLS_LE 59 +#define R_METAG_TLS_LE_HI16 60 +#define R_METAG_TLS_LE_LO16 61 /* NDS32 relocations. */ -#define R_NDS32_NONE 0 -#define R_NDS32_32_RELA 20 -#define R_NDS32_COPY 39 -#define R_NDS32_GLOB_DAT 40 -#define R_NDS32_JMP_SLOT 41 -#define R_NDS32_RELATIVE 42 -#define R_NDS32_TLS_TPOFF 102 -#define R_NDS32_TLS_DESC 119 +#define R_NDS32_NONE 0 +#define R_NDS32_32_RELA 20 +#define R_NDS32_COPY 39 +#define R_NDS32_GLOB_DAT 40 +#define R_NDS32_JMP_SLOT 41 +#define R_NDS32_RELATIVE 42 +#define R_NDS32_TLS_TPOFF 102 +#define R_NDS32_TLS_DESC 119 /* ARCompact/ARCv2 specific relocs. */ -#define R_ARC_NONE 0x0 -#define R_ARC_8 0x1 -#define R_ARC_16 0x2 -#define R_ARC_24 0x3 -#define R_ARC_32 0x4 -#define R_ARC_B26 0x5 -#define R_ARC_B22_PCREL 0x6 -#define R_ARC_H30 0x7 -#define R_ARC_N8 0x8 -#define R_ARC_N16 0x9 -#define R_ARC_N24 0xA -#define R_ARC_N32 0xB -#define R_ARC_SDA 0xC -#define R_ARC_SECTOFF 0xD -#define R_ARC_S21H_PCREL 0xE -#define R_ARC_S21W_PCREL 0xF -#define R_ARC_S25H_PCREL 0x10 -#define R_ARC_S25W_PCREL 0x11 -#define R_ARC_SDA32 0x12 -#define R_ARC_SDA_LDST 0x13 -#define R_ARC_SDA_LDST1 0x14 -#define R_ARC_SDA_LDST2 0x15 -#define R_ARC_SDA16_LD 0x16 -#define R_ARC_SDA16_LD1 0x17 -#define R_ARC_SDA16_LD2 0x18 -#define R_ARC_S13_PCREL 0x19 -#define R_ARC_W 0x1A -#define R_ARC_32_ME 0x1B -#define R_ARC_N32_ME 0x1C -#define R_ARC_SECTOFF_ME 0x1D -#define R_ARC_SDA32_ME 0x1E -#define R_ARC_W_ME 0x1F -#define R_ARC_H30_ME 0x20 -#define R_ARC_SECTOFF_U8 0x21 -#define R_ARC_SECTOFF_S9 0x22 -#define R_AC_SECTOFF_U8 0x23 -#define R_AC_SECTOFF_U8_1 0x24 -#define R_AC_SECTOFF_U8_2 0x25 -#define R_AC_SECTOFF_S9 0x26 -#define R_AC_SECTOFF_S9_1 0x27 -#define R_AC_SECTOFF_S9_2 0x28 -#define R_ARC_SECTOFF_ME_1 0x29 -#define R_ARC_SECTOFF_ME_2 0x2A -#define R_ARC_SECTOFF_1 0x2B -#define R_ARC_SECTOFF_2 0x2C -#define R_ARC_PC32 0x32 -#define R_ARC_GOTPC32 0x33 -#define R_ARC_PLT32 0x34 -#define R_ARC_COPY 0x35 -#define R_ARC_GLOB_DAT 0x36 -#define R_ARC_JUMP_SLOT 0x37 -#define R_ARC_RELATIVE 0x38 -#define R_ARC_GOTOFF 0x39 -#define R_ARC_GOTPC 0x3A -#define R_ARC_GOT32 0x3B - -#define R_ARC_TLS_DTPMOD 0x42 -#define R_ARC_TLS_DTPOFF 0x43 -#define R_ARC_TLS_TPOFF 0x44 -#define R_ARC_TLS_GD_GOT 0x45 -#define R_ARC_TLS_GD_LD 0x46 -#define R_ARC_TLS_GD_CALL 0x47 -#define R_ARC_TLS_IE_GOT 0x48 -#define R_ARC_TLS_DTPOFF_S9 0x4a -#define R_ARC_TLS_LE_S9 0x4a -#define R_ARC_TLS_LE_32 0x4b +#define R_ARC_NONE 0x0 +#define R_ARC_8 0x1 +#define R_ARC_16 0x2 +#define R_ARC_24 0x3 +#define R_ARC_32 0x4 +#define R_ARC_B26 0x5 +#define R_ARC_B22_PCREL 0x6 +#define R_ARC_H30 0x7 +#define R_ARC_N8 0x8 +#define R_ARC_N16 0x9 +#define R_ARC_N24 0xA +#define R_ARC_N32 0xB +#define R_ARC_SDA 0xC +#define R_ARC_SECTOFF 0xD +#define R_ARC_S21H_PCREL 0xE +#define R_ARC_S21W_PCREL 0xF +#define R_ARC_S25H_PCREL 0x10 +#define R_ARC_S25W_PCREL 0x11 +#define R_ARC_SDA32 0x12 +#define R_ARC_SDA_LDST 0x13 +#define R_ARC_SDA_LDST1 0x14 +#define R_ARC_SDA_LDST2 0x15 +#define R_ARC_SDA16_LD 0x16 +#define R_ARC_SDA16_LD1 0x17 +#define R_ARC_SDA16_LD2 0x18 +#define R_ARC_S13_PCREL 0x19 +#define R_ARC_W 0x1A +#define R_ARC_32_ME 0x1B +#define R_ARC_N32_ME 0x1C +#define R_ARC_SECTOFF_ME 0x1D +#define R_ARC_SDA32_ME 0x1E +#define R_ARC_W_ME 0x1F +#define R_ARC_H30_ME 0x20 +#define R_ARC_SECTOFF_U8 0x21 +#define R_ARC_SECTOFF_S9 0x22 +#define R_AC_SECTOFF_U8 0x23 +#define R_AC_SECTOFF_U8_1 0x24 +#define R_AC_SECTOFF_U8_2 0x25 +#define R_AC_SECTOFF_S9 0x26 +#define R_AC_SECTOFF_S9_1 0x27 +#define R_AC_SECTOFF_S9_2 0x28 +#define R_ARC_SECTOFF_ME_1 0x29 +#define R_ARC_SECTOFF_ME_2 0x2A +#define R_ARC_SECTOFF_1 0x2B +#define R_ARC_SECTOFF_2 0x2C +#define R_ARC_PC32 0x32 +#define R_ARC_GOTPC32 0x33 +#define R_ARC_PLT32 0x34 +#define R_ARC_COPY 0x35 +#define R_ARC_GLOB_DAT 0x36 +#define R_ARC_JUMP_SLOT 0x37 +#define R_ARC_RELATIVE 0x38 +#define R_ARC_GOTOFF 0x39 +#define R_ARC_GOTPC 0x3A +#define R_ARC_GOT32 0x3B + +#define R_ARC_TLS_DTPMOD 0x42 +#define R_ARC_TLS_DTPOFF 0x43 +#define R_ARC_TLS_TPOFF 0x44 +#define R_ARC_TLS_GD_GOT 0x45 +#define R_ARC_TLS_GD_LD 0x46 +#define R_ARC_TLS_GD_CALL 0x47 +#define R_ARC_TLS_IE_GOT 0x48 +#define R_ARC_TLS_DTPOFF_S9 0x4a +#define R_ARC_TLS_LE_S9 0x4a +#define R_ARC_TLS_LE_32 0x4b /* OpenRISC 1000 specific relocs. */ -#define R_OR1K_NONE 0 -#define R_OR1K_32 1 -#define R_OR1K_16 2 -#define R_OR1K_8 3 -#define R_OR1K_LO_16_IN_INSN 4 -#define R_OR1K_HI_16_IN_INSN 5 -#define R_OR1K_INSN_REL_26 6 -#define R_OR1K_GNU_VTENTRY 7 -#define R_OR1K_GNU_VTINHERIT 8 -#define R_OR1K_32_PCREL 9 -#define R_OR1K_16_PCREL 10 -#define R_OR1K_8_PCREL 11 -#define R_OR1K_GOTPC_HI16 12 -#define R_OR1K_GOTPC_LO16 13 -#define R_OR1K_GOT16 14 -#define R_OR1K_PLT26 15 -#define R_OR1K_GOTOFF_HI16 16 -#define R_OR1K_GOTOFF_LO16 17 -#define R_OR1K_COPY 18 -#define R_OR1K_GLOB_DAT 19 -#define R_OR1K_JMP_SLOT 20 -#define R_OR1K_RELATIVE 21 -#define R_OR1K_TLS_GD_HI16 22 -#define R_OR1K_TLS_GD_LO16 23 -#define R_OR1K_TLS_LDM_HI16 24 -#define R_OR1K_TLS_LDM_LO16 25 -#define R_OR1K_TLS_LDO_HI16 26 -#define R_OR1K_TLS_LDO_LO16 27 -#define R_OR1K_TLS_IE_HI16 28 -#define R_OR1K_TLS_IE_LO16 29 -#define R_OR1K_TLS_LE_HI16 30 -#define R_OR1K_TLS_LE_LO16 31 -#define R_OR1K_TLS_TPOFF 32 -#define R_OR1K_TLS_DTPOFF 33 -#define R_OR1K_TLS_DTPMOD 34 - -#endif /* elf.h */ +#define R_OR1K_NONE 0 +#define R_OR1K_32 1 +#define R_OR1K_16 2 +#define R_OR1K_8 3 +#define R_OR1K_LO_16_IN_INSN 4 +#define R_OR1K_HI_16_IN_INSN 5 +#define R_OR1K_INSN_REL_26 6 +#define R_OR1K_GNU_VTENTRY 7 +#define R_OR1K_GNU_VTINHERIT 8 +#define R_OR1K_32_PCREL 9 +#define R_OR1K_16_PCREL 10 +#define R_OR1K_8_PCREL 11 +#define R_OR1K_GOTPC_HI16 12 +#define R_OR1K_GOTPC_LO16 13 +#define R_OR1K_GOT16 14 +#define R_OR1K_PLT26 15 +#define R_OR1K_GOTOFF_HI16 16 +#define R_OR1K_GOTOFF_LO16 17 +#define R_OR1K_COPY 18 +#define R_OR1K_GLOB_DAT 19 +#define R_OR1K_JMP_SLOT 20 +#define R_OR1K_RELATIVE 21 +#define R_OR1K_TLS_GD_HI16 22 +#define R_OR1K_TLS_GD_LO16 23 +#define R_OR1K_TLS_LDM_HI16 24 +#define R_OR1K_TLS_LDM_LO16 25 +#define R_OR1K_TLS_LDO_HI16 26 +#define R_OR1K_TLS_LDO_LO16 27 +#define R_OR1K_TLS_IE_HI16 28 +#define R_OR1K_TLS_IE_LO16 29 +#define R_OR1K_TLS_LE_HI16 30 +#define R_OR1K_TLS_LE_LO16 31 +#define R_OR1K_TLS_TPOFF 32 +#define R_OR1K_TLS_DTPOFF 33 +#define R_OR1K_TLS_DTPMOD 34 + +#endif /* elf.h */ diff --git a/tools/elfcoder/encoder.c b/tools/elfcoder/encoder.c index 4facc33f58..8ee97f48b9 100644 --- a/tools/elfcoder/encoder.c +++ b/tools/elfcoder/encoder.c @@ -7,22 +7,7 @@ // S[i] = i ^ 1 // Incredibly secure S-Box. static const uint8_t SBox[256] = { - 0x01, 0x00, 0x03, 0x02, 0x05, 0x04, 0x07, 0x06, 0x09, 0x08, 0x0B, 0x0A, 0x0D, 0x0C, 0x0F, 0x0E, - 0x11, 0x10, 0x13, 0x12, 0x15, 0x14, 0x17, 0x16, 0x19, 0x18, 0x1B, 0x1A, 0x1D, 0x1C, 0x1F, 0x1E, - 0x21, 0x20, 0x23, 0x22, 0x25, 0x24, 0x27, 0x26, 0x29, 0x28, 0x2B, 0x2A, 0x2D, 0x2C, 0x2F, 0x2E, - 0x31, 0x30, 0x33, 0x32, 0x35, 0x34, 0x37, 0x36, 0x39, 0x38, 0x3B, 0x3A, 0x3D, 0x3C, 0x3F, 0x3E, - 0x41, 0x40, 0x43, 0x42, 0x45, 0x44, 0x47, 0x46, 0x49, 0x48, 0x4B, 0x4A, 0x4D, 0x4C, 0x4F, 0x4E, - 0x51, 0x50, 0x53, 0x52, 0x55, 0x54, 0x57, 0x56, 0x59, 0x58, 0x5B, 0x5A, 0x5D, 0x5C, 0x5F, 0x5E, - 0x61, 0x60, 0x63, 0x62, 0x65, 0x64, 0x67, 0x66, 0x69, 0x68, 0x6B, 0x6A, 0x6D, 0x6C, 0x6F, 0x6E, - 0x71, 0x70, 0x73, 0x72, 0x75, 0x74, 0x77, 0x76, 0x79, 0x78, 0x7B, 0x7A, 0x7D, 0x7C, 0x7F, 0x7E, - 0x81, 0x80, 0x83, 0x82, 0x85, 0x84, 0x87, 0x86, 0x89, 0x88, 0x8B, 0x8A, 0x8D, 0x8C, 0x8F, 0x8E, - 0x91, 0x90, 0x93, 0x92, 0x95, 0x94, 0x97, 0x96, 0x99, 0x98, 0x9B, 0x9A, 0x9D, 0x9C, 0x9F, 0x9E, - 0xA1, 0xA0, 0xA3, 0xA2, 0xA5, 0xA4, 0xA7, 0xA6, 0xA9, 0xA8, 0xAB, 0xAA, 0xAD, 0xAC, 0xAF, 0xAE, - 0xB1, 0xB0, 0xB3, 0xB2, 0xB5, 0xB4, 0xB7, 0xB6, 0xB9, 0xB8, 0xBB, 0xBA, 0xBD, 0xBC, 0xBF, 0xBE, - 0xC1, 0xC0, 0xC3, 0xC2, 0xC5, 0xC4, 0xC7, 0xC6, 0xC9, 0xC8, 0xCB, 0xCA, 0xCD, 0xCC, 0xCF, 0xCE, - 0xD1, 0xD0, 0xD3, 0xD2, 0xD5, 0xD4, 0xD7, 0xD6, 0xD9, 0xD8, 0xDB, 0xDA, 0xDD, 0xDC, 0xDF, 0xDE, - 0xE1, 0xE0, 0xE3, 0xE2, 0xE5, 0xE4, 0xE7, 0xE6, 0xE9, 0xE8, 0xEB, 0xEA, 0xED, 0xEC, 0xEF, 0xEE, - 0xF1, 0xF0, 0xF3, 0xF2, 0xF5, 0xF4, 0xF7, 0xF6, 0xF9, 0xF8, 0xFB, 0xFA, 0xFD, 0xFC, 0xFF, 0xFE + 0x01, 0x00, 0x03, 0x02, 0x05, 0x04, 0x07, 0x06, 0x09, 0x08, 0x0B, 0x0A, 0x0D, 0x0C, 0x0F, 0x0E, 0x11, 0x10, 0x13, 0x12, 0x15, 0x14, 0x17, 0x16, 0x19, 0x18, 0x1B, 0x1A, 0x1D, 0x1C, 0x1F, 0x1E, 0x21, 0x20, 0x23, 0x22, 0x25, 0x24, 0x27, 0x26, 0x29, 0x28, 0x2B, 0x2A, 0x2D, 0x2C, 0x2F, 0x2E, 0x31, 0x30, 0x33, 0x32, 0x35, 0x34, 0x37, 0x36, 0x39, 0x38, 0x3B, 0x3A, 0x3D, 0x3C, 0x3F, 0x3E, 0x41, 0x40, 0x43, 0x42, 0x45, 0x44, 0x47, 0x46, 0x49, 0x48, 0x4B, 0x4A, 0x4D, 0x4C, 0x4F, 0x4E, 0x51, 0x50, 0x53, 0x52, 0x55, 0x54, 0x57, 0x56, 0x59, 0x58, 0x5B, 0x5A, 0x5D, 0x5C, 0x5F, 0x5E, 0x61, 0x60, 0x63, 0x62, 0x65, 0x64, 0x67, 0x66, 0x69, 0x68, 0x6B, 0x6A, 0x6D, 0x6C, 0x6F, 0x6E, 0x71, 0x70, 0x73, 0x72, 0x75, 0x74, 0x77, 0x76, 0x79, 0x78, 0x7B, 0x7A, 0x7D, 0x7C, 0x7F, 0x7E, 0x81, 0x80, 0x83, 0x82, 0x85, 0x84, 0x87, 0x86, 0x89, 0x88, 0x8B, 0x8A, 0x8D, 0x8C, 0x8F, 0x8E, 0x91, 0x90, 0x93, 0x92, 0x95, 0x94, 0x97, 0x96, 0x99, 0x98, 0x9B, 0x9A, 0x9D, 0x9C, 0x9F, 0x9E, 0xA1, 0xA0, 0xA3, 0xA2, 0xA5, 0xA4, 0xA7, 0xA6, 0xA9, 0xA8, 0xAB, 0xAA, 0xAD, 0xAC, 0xAF, 0xAE, 0xB1, 0xB0, 0xB3, 0xB2, 0xB5, 0xB4, 0xB7, 0xB6, 0xB9, 0xB8, 0xBB, 0xBA, 0xBD, 0xBC, 0xBF, 0xBE, 0xC1, 0xC0, 0xC3, 0xC2, 0xC5, 0xC4, 0xC7, 0xC6, 0xC9, 0xC8, 0xCB, 0xCA, 0xCD, 0xCC, 0xCF, 0xCE, 0xD1, 0xD0, 0xD3, 0xD2, 0xD5, 0xD4, 0xD7, 0xD6, 0xD9, 0xD8, 0xDB, 0xDA, 0xDD, 0xDC, 0xDF, 0xDE, 0xE1, 0xE0, 0xE3, 0xE2, 0xE5, 0xE4, 0xE7, 0xE6, 0xE9, 0xE8, 0xEB, 0xEA, 0xED, 0xEC, 0xEF, 0xEE, 0xF1, 0xF0, 0xF3, 0xF2, 0xF5, 0xF4, 0xF7, 0xF6, 0xF9, 0xF8, 0xFB, 0xFA, 0xFD, 0xFC, 0xFF, 0xFE }; enum { diff --git a/tools/o2narc/Options.cpp b/tools/o2narc/Options.cpp index bfcc800f35..2d52c5541b 100644 --- a/tools/o2narc/Options.cpp +++ b/tools/o2narc/Options.cpp @@ -1,24 +1,40 @@ +#include "Options.h" + +#include +#include #include #include -#include -#include -#include "Options.h" + #include "Narc.h" #include "RelocElfReader.h" +static const char usage[] = "usage: o2narc [options] OBJ NARC\n" + "\n" + "-f, --flatten Create a single flat binary\n" + "-p U8, --padding U8 Override fill value after each NARC member\n" + "-n, --naix Create a .naix file that can be included by C\n" + "-N, --naix-names Use symbol names in naix symbols. Implies --naix.\n" + "-h, --help Show this message and exit\n"; + Options::Options(int argc, char **argv) { for (int i = 1; i < argc; i++) { - string arg{argv[i]}; + string arg { argv[i] }; if (arg == "-f" || arg == "--flatten") { flatten = true; } else if (arg == "-p" || arg == "--padding") { - int padval_i = stoi(argv[++i]); + int padval_i = stoi(argv[++i], nullptr, 0); if (padval_i < 0 || padval_i > 255) { - throw command_error(string{"invalid 8-bit value "} + argv[i] + " for " + arg); + throw command_error(string { "invalid 8-bit value " } + argv[i] + " for " + arg); } padval = static_cast(padval_i); } else if (arg == "-n" || arg == "--naix") { naix = true; + } else if (arg == "-N" || arg == "--naix-names") { + naix_names = true; + naix = true; + } else if (arg == "-h" || arg == "--help") { + std::cout << usage; + std::exit(1); } else if (arg[0] == '-') { throw command_error("unrecognized option flag: " + arg); } else if (posargs.size() >= 2) { @@ -34,7 +50,7 @@ Options::Options(int argc, char **argv) { narcfile.open(posargs[1], ios::out | ios::binary); } -void Options::ReadObjectFile(vector &rodata, vector &sizes) { +void Options::ReadObjectFile(vector &rodata, vector &sizes, vector &names) { ELF_ASSERT(objfile.HasSection(".rodata")); rodata.resize(objfile.GetSectionHeader(".rodata").sh_size); objfile.ReadSectionData(objfile.GetSectionHeader(".rodata"), rodata.data()); @@ -51,18 +67,27 @@ void Options::ReadObjectFile(vector &rodata, vector &si } } else { auto pred = [&](const Elf32_Sym &sym) { - return sym.st_size != 0 - && strcmp(objfile.GetSectionName(objfile.sections()[sym.st_shndx]), ".rodata") == 0 - && strcmp(objfile.GetSymbolName(sym), "__size") != 0 - && strcmp(objfile.GetSymbolName(sym), "__data") != 0 - && strcmp(objfile.GetSymbolName(sym), ".rodata") != 0; + return ELF32_ST_TYPE(sym.st_info) == STT_OBJECT + && strcmp(objfile.GetSectionName(objfile.sections()[sym.st_shndx]), ".rodata") == 0 + && strcmp(objfile.GetSymbolName(sym), "__size") != 0 + && strcmp(objfile.GetSymbolName(sym), "__data") != 0 + && strcmp(objfile.GetSymbolName(sym), ".rodata") != 0; }; sizes.resize(count_if(objfile.symbols().begin(), objfile.symbols().end(), pred)); ELF_ASSERT(!sizes.empty()); + names.resize(sizes.size()); int t = 0; for (const auto &sym : objfile.symbols()) { if (pred(sym)) { - sizes[t++] = sym.st_size; + sizes[t] = sym.st_size; + names[t] = objfile.GetSymbolName(sym); + ++t; + } + } + if (naix_names) { + if (std::unique(names.begin(), names.end()) != names.end()) { + std::cerr << "FATAL: Duplicate symbol names detected\n"; + std::exit(1); } } } @@ -73,7 +98,7 @@ void Options::OverwritePadding(vector &rodata, vector & rodata.resize((rodata.size() + 3) & ~3, padval); } uint32_t end = 0; - for (auto & size : sizes) { + for (auto &size : sizes) { end += size; uint32_t pad_end = (end + 3) & ~3; memset(&rodata[end], padval, pad_end - end); @@ -99,12 +124,14 @@ void Options::WriteNarc(vector &rodata, vector &sizes) narcfile.write((char *)rodata.data(), rodata.size()); } -void Options::WriteNaix(vector &sizes) { +void Options::WriteNaix(vector &sizes, vector &names) { if (naix) { string naixname = posargs[1].substr(0, posargs[1].find_last_of('.')) + ".naix"; string stem = naixname.substr(naixname.find_last_of('/') + 1, naixname.find_last_of('.') - naixname.find_last_of('/') - 1); string stem_upper = stem; - for (auto &c : stem_upper) { c = toupper(c); } + for (auto &c : stem_upper) { + c = toupper(c); + } ofstream naixfile(naixname); naixfile << "/*\n" " * THIS FILE WAS AUTOMATICALLY\n" @@ -112,21 +139,29 @@ void Options::WriteNaix(vector &sizes) { " * DO NOT MODIFY!!!\n" " */\n" "\n" - "#ifndef NARC_" << stem_upper << "_NAIX_\n" - "#define NARC_" << stem_upper << "_NAIX_\n" - "\n" - "enum {\n"; + "#ifndef NARC_" + << stem_upper << "_NAIX_\n" + "#define NARC_" + << stem_upper << "_NAIX_\n" + "\n" + "enum {\n"; char num_buf[9] = "00000000"; for (int i = 0; i < sizes.size(); i++) { - naixfile << " NARC_" << stem << "_" << stem << "_" << num_buf << " = " << i << "," << endl; - for (int k = 7; k >= 0; k--) { - num_buf[k]++; - if (num_buf[k] > '9') { - num_buf[k] = '0'; - } else { - break; + naixfile << " NARC_" << stem << "_"; + if (naix_names) { + naixfile << names[i]; + } else { + naixfile << stem << "_" << num_buf; + for (int k = 7; k >= 0; k--) { + num_buf[k]++; + if (num_buf[k] > '9') { + num_buf[k] = '0'; + } else { + break; + } } } + naixfile << " = " << i << "," << endl; } naixfile << "};\n\n#endif //NARC_" << stem_upper << "_NAIX_\n"; } @@ -134,11 +169,12 @@ void Options::WriteNaix(vector &sizes) { int Options::main() { vector sizes; + vector names; vector rodata; - ReadObjectFile(rodata, sizes); + ReadObjectFile(rodata, sizes, names); OverwritePadding(rodata, sizes); WriteNarc(rodata, sizes); - WriteNaix(sizes); + WriteNaix(sizes, names); return 0; } diff --git a/tools/o2narc/Options.h b/tools/o2narc/Options.h index d440789200..25039df409 100644 --- a/tools/o2narc/Options.h +++ b/tools/o2narc/Options.h @@ -2,33 +2,43 @@ #define GUARD_OPTIONS_H #include + #include "RelocElfReader.h" using namespace std; class command_error : public exception { const char *_what; + public: - explicit command_error(const char *s) {_what = s;} - explicit command_error(const string &s) {_what = s.c_str();} - const char *what() const noexcept override { return _what; } + explicit command_error(const char *s) { + _what = s; + } + explicit command_error(const string &s) { + _what = s.c_str(); + } + const char *what() const noexcept override { + return _what; + } }; class Options { vector posargs; bool flatten = false; bool naix = false; + bool naix_names = false; char padval = '\xFF'; Elf objfile; ofstream narcfile; - void ReadObjectFile(vector &rodata, vector &sizes); + void ReadObjectFile(vector &rodata, vector &sizes, vector &names); void OverwritePadding(vector &rodata, vector &sizes) const; void WriteNarc(vector &rodata, vector &sizes); - void WriteNaix(vector &sizes); + void WriteNaix(vector &sizes, vector &names); + public: - Options(int argc, char ** argv); + Options(int argc, char **argv); int main(); }; -#endif //GUARD_OPTIONS_H +#endif // GUARD_OPTIONS_H