From 1605f6253564e4e5f67dd295a1ac70145e5c1c9d Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 17 Feb 2018 03:55:32 -0600 Subject: [PATCH] Decompile credits --- asm/credits.s | 3903 ------------------------------ asm/intro_credits_graphics.s | 459 ---- data/credits.s | 1577 ------------ data/intro_credits_graphics.s | 459 ---- include/credits.h | 11 + include/decompress.h | 1 - include/graphics.h | 12 +- include/intro_credits_graphics.h | 9 +- include/pokedex.h | 1 + include/starter_choose.h | 5 + ld_script.txt | 7 +- src/credits.c | 2355 ++++++++++++++++++ src/hall_of_fame.c | 2 +- src/intro_credits_graphics.c | 472 +++- src/starter_choose.c | 6 - sym_ewram.txt | 17 +- 16 files changed, 2813 insertions(+), 6483 deletions(-) delete mode 100644 asm/credits.s delete mode 100644 asm/intro_credits_graphics.s delete mode 100644 data/credits.s delete mode 100644 data/intro_credits_graphics.s create mode 100644 include/credits.h create mode 100644 src/credits.c diff --git a/asm/credits.s b/asm/credits.s deleted file mode 100644 index e69384c03b..0000000000 --- a/asm/credits.s +++ /dev/null @@ -1,3903 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81754C8 -sub_81754C8: @ 81754C8 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81754C8 - - thumb_func_start sub_81754DC -sub_81754DC: @ 81754DC - push {lr} - bl RunTasks - bl AnimateSprites - ldr r0, =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08175522 - ldr r0, =gHasHallOfFameRecords - ldrb r0, [r0] - cmp r0, 0 - beq _08175522 - ldr r2, =gTasks - ldr r0, =gUnknown_0203BCE2 - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, [r0] - ldr r0, =sub_8175774 - cmp r1, r0 - bne _08175522 - bl sub_81754C8 - bl RunTasks - bl AnimateSprites - ldr r1, =gUnknown_0203BCE5 - movs r0, 0x1 - strb r0, [r1] -_08175522: - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .pool - thumb_func_end sub_81754DC - - thumb_func_start sub_8175548 -sub_8175548: @ 8175548 - push {lr} - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085E6F68 - movs r0, 0 - movs r2, 0x1 - bl InitBgsFromTemplates - movs r0, 0x80 - lsls r0, 4 - bl AllocZeroed - adds r1, r0, 0 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r0, =gUnknown_085E56F0 - movs r1, 0x80 - movs r2, 0x40 - bl LoadPalette - ldr r0, =gUnknown_085E6F6C - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0 - bl ShowBg - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175548 - - thumb_func_start sub_81755A4 -sub_81755A4: @ 81755A4 - push {lr} - bl FreeAllWindowBuffers - movs r0, 0 - bl GetBgTilemapBuffer - cmp r0, 0 - beq _081755B8 - bl Free -_081755B8: - pop {r0} - bx r0 - thumb_func_end sub_81755A4 - - thumb_func_start sub_81755BC -sub_81755BC: @ 81755BC - push {r4,r5,lr} - sub sp, 0x18 - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r2, 24 - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - cmp r2, 0x1 - bne _081755DC - movs r0, 0x3 - strb r0, [r1, 0x1] - movs r0, 0x4 - b _081755E4 -_081755DC: - add r1, sp, 0x14 - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x2 -_081755E4: - strb r0, [r1, 0x2] - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0xF0 - movs r3, 0x1 - bl GetStringCenterAlignXOffsetWithLetterSpacing - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - add r0, sp, 0x14 - str r0, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0xC] - str r4, [sp, 0x10] - movs r0, 0 - movs r1, 0x1 - adds r3, r5, 0 - bl AddTextPrinterParameterized2 - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81755BC - - thumb_func_start sub_8175620 -sub_8175620: @ 8175620 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - bl sub_8175CE4 - movs r0, 0 - bl SetVBlankCallback - ldr r0, =0x02000000 - movs r1, 0xE0 - lsls r1, 9 - bl InitHeap - bl ResetPaletteFade - bl ResetTasks - bl sub_8175548 - ldr r0, =sub_8175744 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x10] - strh r1, [r0, 0x16] - strh r1, [r0, 0x1E] - movs r1, 0x1 - strh r1, [r0, 0x22] -_0817566A: - movs r0, 0 - adds r1, r7, 0 - bl sub_8176AB0 - lsls r0, 24 - cmp r0, 0 - beq _0817566A - ldr r5, =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r5 - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r1, 0 - mov r8, r1 - movs r6, 0 - movs r1, 0x28 - strh r1, [r0, 0x8] - ldr r1, =0x0000fffc - movs r0, 0x12 - bl SetGpuReg - ldr r0, =sub_8175DA0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r5 - strh r7, [r1, 0xA] - strh r0, [r4, 0x26] - movs r0, 0x1 - negs r0, r0 - str r6, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x1 - bl EnableInterrupts - ldr r0, =sub_81754C8 - bl SetVBlankCallback - ldr r0, =0x000001c7 - bl m4aSongNumStart - ldr r0, =sub_81754DC - bl SetMainCallback2 - ldr r0, =gUnknown_0203BCE5 - mov r1, r8 - strb r1, [r0] - ldr r4, =gUnknown_0203BCE8 - movs r0, 0xEB - lsls r0, 2 - bl AllocZeroed - str r0, [r4] - bl sub_8177388 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x8E - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - ldr r0, =gUnknown_0203BCE2 - strh r7, [r0] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175620 - - thumb_func_start sub_8175744 -sub_8175744: @ 8175744 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08175764 - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_8175774 - str r0, [r1] -_08175764: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175744 - - thumb_func_start sub_8175774 -sub_8175774: @ 8175774 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r0, 0x10 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _081757B0 - movs r3, 0xA - ldrsh r1, [r4, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1E - strh r1, [r0, 0x8] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x20] - ldr r0, =sub_8175A9C - b _081757FA - .pool -_081757B0: - ldr r0, =gUnknown_0203BCE0 - strh r1, [r0] - ldrh r2, [r4, 0x1E] - movs r3, 0x1E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _081757E0 - strh r2, [r4, 0x22] - strh r1, [r4, 0x1E] - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =sub_8175808 - b _081757FA - .pool -_081757E0: - cmp r0, 0x2 - bne _081757FC - strh r2, [r4, 0x22] - strh r1, [r4, 0x1E] - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =sub_81758A4 -_081757FA: - str r0, [r4] -_081757FC: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175774 - - thumb_func_start sub_8175808 -sub_8175808: @ 8175808 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08175836 - movs r0, 0 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl sub_8176CA0 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =c2_080C9BFC - str r0, [r1] -_08175836: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175808 - - thumb_func_start c2_080C9BFC -c2_080C9BFC: @ 8175848 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl SetVBlankCallback - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - ldrb r0, [r5, 0x16] - adds r1, r4, 0 - bl sub_8176AB0 - lsls r0, 24 - cmp r0, 0 - beq _08175890 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x1 - bl EnableInterrupts - ldr r0, =sub_81754C8 - bl SetVBlankCallback - ldr r0, =sub_8175744 - str r0, [r5] -_08175890: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end c2_080C9BFC - - thumb_func_start sub_81758A4 -sub_81758A4: @ 81758A4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081758D2 - movs r0, 0 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl sub_8176CA0 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81758E4 - str r0, [r1] -_081758D2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81758A4 - - thumb_func_start sub_81758E4 -sub_81758E4: @ 81758E4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r1, r0 - mov r8, r1 - ldrb r7, [r1] - cmp r7, 0 - beq _08175906 - cmp r7, 0x1 - beq _081759F0 -_08175906: - bl ResetSpriteData - bl dp13_810BB8C - bl FreeAllSpritePalettes - ldr r1, =gReservedSpritePaletteCount - movs r0, 0x8 - strb r0, [r1] - ldr r0, =gBirchHelpGfx - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, =gBirchGrassTilemap - ldr r1, =0x06003800 - bl LZ77UnCompVram - ldr r0, =gBirchBagGrassPal + 0x2 - movs r1, 0x1 - movs r2, 0x3E - bl LoadPalette - movs r1, 0 - ldr r4, =0x0201c000 - movs r3, 0x11 - ldr r2, =0x000007ff -_0817593C: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _0817593C - movs r1, 0 - ldr r2, =0x0201d800 - ldr r6, =gUnknown_085E701C - ldr r0, =0xfffff000 - adds r5, r2, r0 - movs r4, 0x22 - ldr r3, =0x000007ff -_08175958: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bls _08175958 - movs r1, 0 - ldr r5, =0x0201d000 - movs r4, 0x33 - ldr r3, =0x000007ff -_0817596E: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bls _0817596E - movs r0, 0 - strh r0, [r2] - ldr r1, =0x000053ff - adds r0, r1, 0 - strh r0, [r2, 0x2] - ldr r1, =0x0000529f - adds r0, r1, 0 - strh r0, [r2, 0x4] - ldr r1, =0x00007e94 - adds r0, r1, 0 - strh r0, [r2, 0x6] - adds r0, r6, 0 - bl LoadSpriteSheet - ldr r0, =gUnknown_085E702C - bl LoadSpritePalette - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08175A7A - .pool -_081759F0: - ldr r0, =sub_81760FC - movs r1, 0 - bl CreateTask - ldr r2, =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r2 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - mov r9, r1 - movs r5, 0 - strh r0, [r4, 0xE] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r7, [r0, 0x8] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r6, [r0, 0xA] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r4, 0x16] - strh r1, [r0, 0xC] - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0x20 - bl SetGpuReg - ldr r1, =0x00000703 - movs r0, 0xE - bl SetGpuReg - movs r1, 0xCA - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - mov r0, r9 - mov r1, r8 - strb r0, [r1] - ldr r0, =gUnknown_0203BD28 - strh r5, [r0] - ldr r0, =sub_8175744 - str r0, [r4] -_08175A7A: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81758E4 - - thumb_func_start sub_8175A9C -sub_8175A9C: @ 8175A9C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x20] - movs r2, 0x20 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _08175AC4 - subs r0, 0x1 - strh r0, [r4, 0x20] - b _08175AD8 - .pool -_08175AC4: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0xC - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =sub_8175AE4 - str r0, [r4] -_08175AD8: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175A9C - - thumb_func_start sub_8175AE4 -sub_8175AE4: @ 8175AE4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08175B0A - adds r0, r4, 0 - bl sub_8176CA0 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_8175B1C - str r0, [r1] -_08175B0A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175AE4 - - thumb_func_start sub_8175B1C -sub_8175B1C: @ 8175B1C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8175CE4 - bl ResetPaletteFade - movs r1, 0xE0 - lsls r1, 6 - movs r0, 0 - movs r2, 0 - bl sub_8176D1C - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x8 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r1, 0xE0 - lsls r1, 3 - movs r0, 0x8 - bl SetGpuReg - movs r0, 0x1 - bl EnableInterrupts - movs r1, 0xA0 - lsls r1, 1 - movs r0, 0 - bl SetGpuReg - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0xEB - strh r1, [r0, 0x8] - ldr r1, =sub_8175B90 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175B1C - - thumb_func_start sub_8175B90 -sub_8175B90: @ 8175B90 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - movs r2, 0x8 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _08175BB8 - subs r0, 0x1 - strh r0, [r4, 0x8] - b _08175BCC - .pool -_08175BB8: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0x6 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =sub_8175BD8 - str r0, [r4] -_08175BCC: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175B90 - - thumb_func_start sub_8175BD8 -sub_8175BD8: @ 8175BD8 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08175C1E - movs r0, 0xE0 - lsls r0, 6 - movs r1, 0 - bl sub_8176E40 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE1 - lsls r1, 5 - strh r1, [r0, 0x8] - ldr r1, =sub_8175C34 - str r1, [r0] -_08175C1E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175BD8 - - thumb_func_start sub_8175C34 -sub_8175C34: @ 8175C34 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08175CB8 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _08175C62 - ldr r0, =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _08175C94 -_08175C62: - movs r0, 0x4 - bl FadeOutBGM - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0x8 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =sub_8175CC8 - str r0, [r4] - b _08175CB8 - .pool -_08175C94: - ldr r0, =0x00001be8 - cmp r1, r0 - bne _08175CA0 - movs r0, 0x8 - bl FadeOutBGM -_08175CA0: - movs r0, 0x8 - ldrsh r1, [r4, r0] - ldr r0, =0x00001ab8 - cmp r1, r0 - bne _08175CB2 - movs r0, 0xE4 - lsls r0, 1 - bl m4aSongNumStart -_08175CB2: - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] -_08175CB8: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175C34 - - thumb_func_start sub_8175CC8 -sub_8175CC8: @ 8175CC8 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08175CDC - movs r0, 0xFF - bl SoftReset -_08175CDC: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175CC8 - - thumb_func_start sub_8175CE4 -sub_8175CE4: @ 8175CE4 - push {lr} - sub sp, 0x8 - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r1, =0x040000d4 - mov r0, sp - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - str r2, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - strh r2, [r0] - str r0, [r1] - ldr r0, =0x05000002 - str r0, [r1, 0x4] - ldr r0, =0x810001ff - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175CE4 - - thumb_func_start sub_8175DA0 -sub_8175DA0: @ 8175DA0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r5, r1, 0 - cmp r0, 0xA - bhi _08175E00 - lsls r0, 2 - ldr r1, =_08175DD4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08175DD4: - .4byte _08175E00 - .4byte _08175E40 - .4byte _08175E60 - .4byte _08175F38 - .4byte _08175F5C - .4byte _08175FC8 - .4byte _08175E00 - .4byte _08175E00 - .4byte _08175E00 - .4byte _08175E00 - .4byte _08175FFC -_08175E00: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08175E12 - b _0817602A -_08175E12: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r5 - movs r1, 0x1 - strh r1, [r0, 0x8] - movs r1, 0x48 - strh r1, [r0, 0xE] - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r2, [r0, 0x24] - ldr r0, =gUnknown_0203BCE0 - strh r2, [r0] - b _0817602A - .pool -_08175E40: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r5 - ldrh r2, [r1, 0xE] - movs r3, 0xE - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08175E58 - subs r0, r2, 0x1 - strh r0, [r1, 0xE] - b _0817602A -_08175E58: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0817602A -_08175E60: - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r5 - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r5, r0, r5 - ldr r1, [r5] - ldr r0, =sub_8175774 - mov r9, r2 - cmp r1, r0 - bne _08175F32 - movs r1, 0xC - ldrsh r0, [r3, r1] - cmp r0, 0x38 - bgt _08175F2C - movs r5, 0 - ldr r2, =gUnknown_085E6AF4 - mov r8, r2 - adds r7, r3, 0 - movs r6, 0xA0 - lsls r6, 19 -_08175E92: - movs r3, 0xC - ldrsh r1, [r7, r3] - lsls r0, r1, 2 - adds r0, r1 - adds r0, r5 - lsls r0, 2 - add r0, r8 - ldr r2, [r0] - ldr r0, [r2, 0x4] - lsrs r1, r6, 24 - ldrb r2, [r2, 0x1] - bl sub_81755BC - movs r0, 0x80 - lsls r0, 21 - adds r6, r0 - adds r5, 0x1 - cmp r5, 0x4 - ble _08175E92 - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - ldr r3, =gTasks - mov r2, r9 - adds r1, r2, r4 - lsls r1, 3 - adds r1, r3 - ldrh r0, [r1, 0xC] - adds r0, 0x1 - strh r0, [r1, 0xC] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xA - ldrsh r2, [r1, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x24] - movs r2, 0xA - ldrsh r1, [r1, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - movs r3, 0x22 - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _08175F14 - movs r0, 0xC0 - lsls r0, 2 - ldr r1, =0x0000328d - b _08175F1A - .pool -_08175F14: - movs r0, 0xC0 - lsls r0, 2 - ldr r1, =0x00001967 -_08175F1A: - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _0817602A - .pool -_08175F2C: - movs r0, 0xA - strh r0, [r3, 0x8] - b _0817602A -_08175F32: - movs r0, 0 - strh r0, [r5, 0x24] - b _0817602A -_08175F38: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0817602A - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r5 - movs r1, 0x73 - strh r1, [r0, 0xE] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _0817602A - .pool -_08175F5C: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r5 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08175F74 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _0817602A -_08175F74: - ldrb r0, [r4, 0xC] - ldrb r1, [r4, 0xA] - bl sub_817603C - lsls r0, 24 - cmp r0, 0 - beq _08175F8A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0817602A -_08175F8A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r3, 0xA - ldrsh r1, [r4, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r1, 0x22 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _08175FB0 - movs r0, 0xC0 - lsls r0, 2 - ldr r1, =0x0000328d - b _08175FB6 - .pool -_08175FB0: - movs r0, 0xC0 - lsls r0, 2 - ldr r1, =0x00001967 -_08175FB6: - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0817602A - .pool -_08175FC8: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0817602A - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x2 - strh r0, [r1, 0x8] - b _0817602A - .pool -_08175FFC: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r5 - movs r2, 0xA - ldrsh r1, [r0, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r5, 0 - movs r1, 0x1 - strh r1, [r0, 0x10] - adds r0, r4, 0 - bl DestroyTask - bl sub_81755A4 - ldr r4, =gUnknown_0203BCE8 - ldr r0, [r4] - bl Free - str r5, [r4] -_0817602A: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8175DA0 - - thumb_func_start sub_817603C -sub_817603C: @ 817603C - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r6, r3, 0 - lsls r1, 24 - lsrs r2, r1, 24 - adds r5, r2, 0 - ldr r4, =gTasks - cmp r3, 0x6 - bne _0817605C - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_0817605C: - cmp r3, 0xC - bne _0817606E - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x1 - strh r1, [r0, 0x16] - strh r1, [r0, 0x1E] -_0817606E: - cmp r3, 0x12 - bne _0817607E - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_0817607E: - cmp r3, 0x18 - bne _08176092 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x1E] -_08176092: - cmp r3, 0x1E - bne _081760A2 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_081760A2: - cmp r3, 0x24 - bne _081760B6 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x3 - strh r1, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x1E] -_081760B6: - cmp r3, 0x2A - bne _081760C6 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_081760C6: - cmp r6, 0x30 - bne _081760DA - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x4 - strh r1, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x1E] -_081760DA: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r4 - movs r1, 0x1E - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _081760F4 - movs r0, 0 - b _081760F6 - .pool -_081760F4: - movs r0, 0x1 -_081760F6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_817603C - - thumb_func_start sub_81760FC -sub_81760FC: @ 81760FC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r4 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _0817612C - cmp r0, 0x1 - bgt _0817611A - b _08176244 -_0817611A: - cmp r0, 0x2 - beq _08176158 - cmp r0, 0x3 - bne _08176124 - b _08176230 -_08176124: - b _08176244 - .pool -_0817612C: - ldr r0, =gUnknown_0203BCE8 - ldr r0, [r0] - adds r0, 0x90 - ldrh r0, [r0] - cmp r0, 0 - bne _0817614E - movs r3, 0xA - ldrsh r0, [r2, r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r3, 0x24 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _0817614E - b _08176244 -_0817614E: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - b _08176242 - .pool -_08176158: - ldr r6, =gUnknown_0203BCE8 - ldr r3, [r6] - adds r0, r3, 0 - adds r0, 0x8E - ldrh r0, [r0] - cmp r0, 0x47 - beq _08176244 - movs r0, 0xA - ldrsh r1, [r2, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, [r0] - ldr r0, =sub_8175774 - cmp r1, r0 - bne _08176244 - adds r0, r3, 0 - adds r0, 0x92 - ldrh r0, [r0] - lsls r0, 1 - adds r0, r3, r0 - ldrh r0, [r0] - ldr r4, =gUnknown_085E6F7C - adds r1, r3, 0 - adds r1, 0x90 - ldrh r3, [r1] - lsls r2, r3, 1 - adds r1, r2, r4 - ldrb r1, [r1] - adds r4, 0x1 - adds r2, r4 - ldrb r2, [r2] - bl sub_8177224 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x92 - ldrh r3, [r1] - adds r0, 0x94 - ldrh r0, [r0] - subs r0, 0x1 - cmp r3, r0 - bge _081761D8 - adds r0, r3, 0x1 - strh r0, [r1] - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x32 - b _081761EA - .pool -_081761D8: - movs r0, 0 - strh r0, [r1] - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x80 - lsls r1, 2 -_081761EA: - strh r1, [r0, 0x34] - ldr r0, =gUnknown_0203BCE8 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x8E - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x90 - ldrh r0, [r1] - cmp r0, 0x2 - bne _08176210 - movs r0, 0 - b _08176212 - .pool -_08176210: - adds r0, 0x1 -_08176212: - strh r0, [r1] - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0x32 - strh r0, [r1, 0xE] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08176244 - .pool -_08176230: - ldrh r1, [r2, 0xE] - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08176240 - subs r0, r1, 0x1 - strh r0, [r2, 0xE] - b _08176244 -_08176240: - movs r0, 0x1 -_08176242: - strh r0, [r2, 0x8] -_08176244: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81760FC - - thumb_func_start sub_817624C -sub_817624C: @ 817624C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r6, r1, 0 - cmp r0, 0x32 - bls _08176268 - b _08176514 -_08176268: - lsls r0, 2 - ldr r1, =_0817627C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0817627C: - .4byte _08176348 - .4byte _0817636C - .4byte _081763C0 - .4byte _081763D8 - .4byte _08176414 - .4byte _08176438 - .4byte _08176484 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176490 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _081764B0 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _081764D4 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176514 - .4byte _08176508 -_08176348: - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r6 - ldrh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 17 - movs r1, 0x7F - ands r0, r1 - movs r1, 0xC - bl Sin - ldr r1, =gUnknown_0203BD26 - strh r0, [r1] - b _08176390 - .pool -_0817636C: - ldr r7, =gUnknown_0203BD26 - movs r3, 0 - ldrsh r4, [r7, r3] - cmp r4, 0 - beq _0817639C - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r6 - ldrh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 17 - movs r1, 0x7F - ands r0, r1 - movs r1, 0xC - bl Sin - strh r0, [r7] -_08176390: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - b _08176514 - .pool -_0817639C: - ldr r3, =gSprites - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r6 - movs r0, 0xC - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x2 - strh r2, [r0, 0x2E] - strh r4, [r1, 0x12] - b _08176430 - .pool -_081763C0: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r6 - ldrh r2, [r1, 0x12] - movs r3, 0x12 - ldrsh r0, [r1, r3] - cmp r0, 0x3F - bgt _08176430 - adds r0, r2, 0x1 - strh r0, [r1, 0x12] - b _0817644E -_081763D8: - ldr r3, =gSprites - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r6 - movs r0, 0xC - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x3 - strh r1, [r0, 0x2E] - movs r0, 0xE - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - strh r1, [r0, 0x2E] - movs r0, 0x78 - strh r0, [r2, 0x10] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _08176514 - .pool -_08176414: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r6 - ldrh r2, [r1, 0x10] - movs r3, 0x10 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0817642C - subs r0, r2, 0x1 - strh r0, [r1, 0x10] - b _08176514 -_0817642C: - movs r0, 0x40 - strh r0, [r1, 0x12] -_08176430: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08176514 -_08176438: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - ldrh r1, [r4, 0x12] - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _08176464 - subs r0, r1, 0x1 - strh r0, [r4, 0x12] -_0817644E: - movs r1, 0x7F - ands r0, r1 - movs r1, 0x14 - bl Sin - ldr r1, =gUnknown_0203BD26 - strh r0, [r1] - b _08176514 - .pool -_08176464: - ldr r2, =gSprites - movs r3, 0xC - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08176514 - .pool -_08176484: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0x32 - b _08176512 -_08176490: - ldr r3, =gSprites - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r6 - movs r0, 0xE - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x2 - b _081764C8 - .pool -_081764B0: - ldr r3, =gSprites - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r6 - movs r0, 0xC - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x4 -_081764C8: - strh r2, [r0, 0x2E] - movs r0, 0x32 - strh r0, [r1, 0x8] - b _08176514 - .pool -_081764D4: - ldr r3, =gSprites - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r6 - movs r0, 0xC - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x5 - strh r1, [r0, 0x2E] - movs r0, 0xE - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x3 - strh r1, [r0, 0x2E] - movs r0, 0x32 - strh r0, [r2, 0x8] - b _08176514 - .pool -_08176508: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0 -_08176512: - strh r1, [r0, 0x8] -_08176514: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_817624C - - thumb_func_start sub_817651C -sub_817651C: @ 817651C - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r3, 0x8 - ldrsh r0, [r0, r3] - adds r4, r1, 0 - cmp r0, 0x4 - bhi _0817655C - lsls r0, 2 - ldr r1, =_08176548 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08176548: - .4byte _0817655C - .4byte _081765A0 - .4byte _081765AC - .4byte _081765F4 - .4byte _08176640 -_0817655C: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r2, r0, r4 - movs r1, 0xA - ldrsh r0, [r2, r1] - ldr r5, =0x00007fff - cmp r0, r5 - beq _081765A0 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r3, r0, r4 - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0x2 - bne _081765A0 - movs r1, 0xA - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x14 - strh r0, [r1, 0x8] - strh r5, [r2, 0xA] -_081765A0: - movs r0, 0 - bl sub_817B540 - b _08176646 - .pool -_081765AC: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r2, r0, r4 - movs r3, 0xA - ldrsh r0, [r2, r3] - ldr r5, =0x00007fff - cmp r0, r5 - beq _08176638 - movs r0, 0xC - ldrsh r1, [r2, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r3, r0, r4 - ldrh r1, [r3, 0x12] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - movs r1, 0xA0 - lsls r1, 2 - cmp r0, r1 - bne _08176638 - movs r0, 0x1 - strh r0, [r3, 0x8] - strh r5, [r2, 0xA] - b _08176638 - .pool -_081765F4: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r2, r0, r4 - ldrh r3, [r2, 0xA] - movs r0, 0xA - ldrsh r1, [r2, r0] - ldr r5, =0x00007fff - cmp r1, r5 - beq _08176638 - movs r0, 0x92 - lsls r0, 2 - cmp r1, r0 - bne _08176634 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xA - strh r1, [r0, 0x8] - strh r5, [r2, 0xA] - b _08176638 - .pool -_08176634: - adds r0, r3, 0x1 - strh r0, [r2, 0xA] -_08176638: - movs r0, 0x1 - bl sub_817B540 - b _08176646 -_08176640: - movs r0, 0x2 - bl sub_817B540 -_08176646: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_817651C - - thumb_func_start sub_817664C -sub_817664C: @ 817664C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - cmp r0, 0x4 - bls _08176662 - b _081769E0 -_08176662: - lsls r0, 2 - ldr r1, =_08176670 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08176670: - .4byte _08176684 - .4byte _0817672C - .4byte _081767D8 - .4byte _08176884 - .4byte _08176934 -_08176684: - ldr r5, =gSprites - ldr r0, =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r2, 0x88 - lsls r2, 1 - strh r2, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - movs r2, 0x20 - b _081769D4 - .pool -_0817672C: - ldr r5, =gSprites - ldr r0, =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x78 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - movs r2, 0x20 - b _081769D4 - .pool -_081767D8: - ldr r5, =gSprites - ldr r0, =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x78 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x80 - lsls r2, 2 - movs r0, 0x1 - b _081769D4 - .pool -_08176884: - ldr r5, =gSprites - ldr r0, =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x78 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ffe0 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x80 - lsls r2, 2 - movs r0, 0x1 - b _081769D4 - .pool -_08176934: - ldr r5, =gSprites - ldr r0, =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x58 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x98 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x80 - lsls r2, 2 - movs r0, 0x2 -_081769D4: - movs r3, 0x8 - bl sub_817B3DC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] -_081769E0: - ldr r0, =sub_817651C - movs r1, 0 - bl CreateTask - ldr r6, =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r5, r1, r6 - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - strh r0, [r5, 0xC] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - mov r1, r8 - strh r1, [r0, 0x8] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r4, [r0, 0xA] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r7, [r0, 0xC] - ldr r0, =sub_817624C - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r4, [r0, 0x8] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r7, [r0, 0xA] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrh r1, [r5, 0x12] - strh r1, [r0, 0xC] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrh r1, [r5, 0x14] - strh r1, [r0, 0xE] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r4, [r0, 0x10] - mov r1, r8 - cmp r1, 0x2 - bne _08176A94 - movs r1, 0xA - ldrsh r0, [r5, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - movs r0, 0x45 - strh r0, [r1, 0x12] -_08176A94: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817664C - - thumb_func_start sub_8176AB0 -sub_8176AB0: @ 8176AB0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r6, r0, r1 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08176B30 - cmp r0, 0x1 - ble _08176AD6 - cmp r0, 0x2 - beq _08176B54 - cmp r0, 0x3 - bne _08176AD6 - b _08176C80 -_08176AD6: - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0x8 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - strb r0, [r6] - b _08176C96 - .pool -_08176B30: - ldr r1, =gUnknown_0203BD24 - movs r0, 0x22 - strh r0, [r1] - ldr r1, =gUnknown_0203BD26 - movs r0, 0 - strh r0, [r1] - adds r0, r4, 0 - bl sub_817B1C8 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _08176C96 - .pool -_08176B54: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08176BD8 - ldr r0, =gUnknown_085F5334 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085F53BC - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085F5354 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085F5384 - bl LoadSpritePalettes - movs r0, 0x78 - movs r1, 0x2E - bl intro_create_brendan_sprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - strh r2, [r4, 0x12] - ldr r6, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r6, 0 - adds r5, 0x1C - adds r2, r0, r5 - ldr r1, =sub_8176EE8 - str r1, [r2] - adds r6, 0x8 - adds r0, r6 - ldr r1, =gUnknown_085E6FD0 - str r1, [r0] - movs r0, 0x88 - lsls r0, 1 - movs r1, 0x2E - bl intro_create_may_sprite - b _08176C2C - .pool -_08176BD8: - ldr r0, =gUnknown_085F5344 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085F53AC - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085F5354 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085F5384 - bl LoadSpritePalettes - movs r0, 0x78 - movs r1, 0x2E - bl intro_create_may_sprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - strh r2, [r4, 0x12] - ldr r6, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r6, 0 - adds r5, 0x1C - adds r2, r0, r5 - ldr r1, =sub_8176EE8 - str r1, [r2] - adds r6, 0x8 - adds r0, r6 - ldr r1, =gUnknown_085E6FD0 - str r1, [r0] - movs r0, 0x88 - lsls r0, 1 - movs r1, 0x2E - bl intro_create_brendan_sprite -_08176C2C: - lsls r0, 24 - lsrs r2, r0, 24 - strh r2, [r4, 0x14] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r5 - ldr r1, =sub_8176F90 - str r1, [r5] - adds r0, r6 - ldr r1, =gUnknown_085E7010 - str r1, [r0] - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08176C96 - .pool -_08176C80: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_817664C - adds r0, r4, 0 - bl sub_817B3A8 - movs r0, 0 - strb r0, [r6] - movs r0, 0x1 - b _08176C98 -_08176C96: - movs r0, 0 -_08176C98: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8176AB0 - - thumb_func_start sub_8176CA0 -sub_8176CA0: @ 8176CA0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08176CC6 - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0x8] -_08176CC6: - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08176CDC - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0xA] -_08176CDC: - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08176CF2 - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0xC] -_08176CF2: - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08176D08 - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0xE] -_08176D08: - ldr r1, =gUnknown_0203BD28 - movs r0, 0x1 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8176CA0 - - thumb_func_start sub_8176D1C -sub_8176D1C: @ 8176D1C - push {r4-r7,lr} - adds r3, r0, 0 - adds r4, r2, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r4, 16 - lsrs r5, r4, 16 - ldr r0, =gUnknown_085E5770 - movs r6, 0xC0 - lsls r6, 19 - adds r3, r6 - adds r1, r3, 0 - bl LZ77UnCompVram - ldr r0, =gIntroCopyright_Pal - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - lsrs r4, 20 - lsls r4, 28 - lsrs r4, 16 - movs r1, 0 - adds r4, 0x1 - ldr r2, =0x000003ff -_08176D52: - lsls r0, r1, 1 - adds r0, r7 - adds r0, r6 - strh r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _08176D52 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8176D1C - - thumb_func_start sub_8176D78 -sub_8176D78: @ 8176D78 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - movs r0, 0x3F - ands r0, r2 - adds r1, r0, 0 - adds r1, 0x50 - cmp r2, 0xFF - bne _08176D90 - movs r0, 0x1 - b _08176DB6 -_08176D90: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08176DA0 - movs r2, 0x80 - lsls r2, 4 - adds r0, r2, 0 - orrs r1, r0 -_08176DA0: - movs r0, 0x40 - ands r3, r0 - cmp r3, 0 - beq _08176DB4 - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - orrs r1, r0 - lsls r0, r1, 16 - lsrs r1, r0, 16 -_08176DB4: - adds r0, r1, 0 -_08176DB6: - pop {r1} - bx r1 - thumb_func_end sub_8176D78 - - thumb_func_start sub_8176DBC -sub_8176DBC: @ 8176DBC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r0, [sp] - ldr r0, [sp, 0x2C] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x8] - lsls r0, 16 - lsrs r0, 20 - lsls r0, 28 - lsrs r0, 16 - mov r9, r0 - movs r5, 0 -_08176DEA: - movs r4, 0 - lsls r7, r5, 1 - ldr r1, [sp, 0x4] - adds r0, r1, r5 - adds r2, r5, 0x1 - mov r8, r2 - lsls r0, 6 - ldr r1, [sp, 0x8] - adds r6, r0, r1 -_08176DFC: - adds r0, r7, r5 - adds r0, r4 - ldr r2, [sp] - adds r0, r2, r0 - ldrb r0, [r0] - bl sub_8176D78 - mov r2, r10 - adds r1, r2, r4 - lsls r1, 1 - adds r1, r6 - movs r2, 0xC0 - lsls r2, 19 - adds r1, r2 - add r0, r9 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08176DFC - mov r1, r8 - lsls r0, r1, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _08176DEA - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8176DBC - - thumb_func_start sub_8176E40 -sub_8176E40: @ 8176E40 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsrs r1, 20 - lsls r1, 28 - lsrs r1, 16 - movs r2, 0 - ldr r7, =gUnknown_085E5BAC - movs r4, 0xC0 - lsls r4, 19 - adds r1, 0x1 - ldr r3, =0x000003ff -_08176E5E: - lsls r0, r2, 1 - adds r0, r5 - adds r0, r4 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _08176E5E - str r6, [sp] - adds r0, r7, 0 - movs r1, 0x3 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_8176DBC - ldr r0, =gUnknown_085E5BBB - str r6, [sp] - movs r1, 0x7 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_8176DBC - ldr r4, =gUnknown_085E5BCA - str r6, [sp] - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0x7 - adds r3, r5, 0 - bl sub_8176DBC - str r6, [sp] - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_8176DBC - ldr r0, =gUnknown_085E5BD9 - str r6, [sp] - movs r1, 0x14 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_8176DBC - ldr r0, =gUnknown_085E5BE8 - str r6, [sp] - movs r1, 0x18 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_8176DBC - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8176E40 - - thumb_func_start sub_8176EE8 -sub_8176EE8: @ 8176EE8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_0203BD28 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08176F04 - adds r0, r4, 0 - bl DestroySprite - b _08176F88 - .pool -_08176F04: - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0x5 - bhi _08176F88 - lsls r0, 2 - ldr r1, =_08176F1C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08176F1C: - .4byte _08176F34 - .4byte _08176F3E - .4byte _08176F44 - .4byte _08176F4E - .4byte _08176F58 - .4byte _08176F6E -_08176F34: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - b _08176F88 -_08176F3E: - adds r0, r4, 0 - movs r1, 0x1 - b _08176F72 -_08176F44: - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnimIfDifferent - b _08176F88 -_08176F4E: - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnimIfDifferent - b _08176F88 -_08176F58: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x78 - ble _08176F88 - subs r0, r1, 0x1 - b _08176F86 -_08176F6E: - adds r0, r4, 0 - movs r1, 0 -_08176F72: - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _08176F88 - subs r0, r2, 0x1 -_08176F86: - strh r0, [r4, 0x20] -_08176F88: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8176EE8 - - thumb_func_start sub_8176F90 -sub_8176F90: @ 8176F90 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_0203BD28 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08176FAC - adds r0, r4, 0 - bl DestroySprite - b _08177048 - .pool -_08176FAC: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08176FD4 - cmp r0, 0x1 - bgt _08176FBE - cmp r0, 0 - beq _08176FC8 - b _08177048 -_08176FBE: - cmp r0, 0x2 - beq _08177010 - cmp r0, 0x3 - beq _0817702E - b _08177048 -_08176FC8: - strh r0, [r4, 0x26] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - b _08177048 -_08176FD4: - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r0, 0xC8 - ble _08176FE6 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnimIfDifferent - b _08176FEE -_08176FE6: - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnimIfDifferent -_08176FEE: - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _08177000 - subs r0, r2, 0x2 - strh r0, [r4, 0x20] -_08177000: - ldr r0, =gUnknown_0203BD26 - ldrh r0, [r0] - negs r0, r0 - strh r0, [r4, 0x26] - b _08177048 - .pool -_08177010: - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r1, [r4, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08177048 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - b _08177046 -_0817702E: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _08177048 - subs r0, r2, 0x1 -_08177046: - strh r0, [r4, 0x20] -_08177048: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8176F90 - - thumb_func_start sub_8177050 -sub_8177050: @ 8177050 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, =gUnknown_0203BD28 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0817706C - ldrh r0, [r5, 0x3A] - bl sub_818D820 - b _0817721C - .pool -_0817706C: - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0xA - bhi _081770B4 - lsls r0, 2 - ldr r1, =_08177088 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08177088: - .4byte _081770B4 - .4byte _0817710E - .4byte _08177190 - .4byte _081771C6 - .4byte _081770B4 - .4byte _081770B4 - .4byte _081770B4 - .4byte _081770B4 - .4byte _081770B4 - .4byte _081771FE - .4byte _08177206 -_081770B4: - ldrb r1, [r5, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5, 0x1] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] - movs r0, 0x10 - strh r0, [r5, 0x32] - ldrh r4, [r5, 0x30] - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x80 - lsls r0, 9 - movs r1, 0x10 - bl __divsi3 - adds r1, r0, 0 - str r1, [sp] - adds r0, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - strh r0, [r5, 0x2E] - b _0817721C -_0817710E: - ldrh r1, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0xFF - bgt _08177144 - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r5, 0x32] - ldrh r4, [r5, 0x30] - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x32 - ldrsh r1, [r5, r0] - movs r0, 0x80 - lsls r0, 9 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - adds r0, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _0817714A -_08177144: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_0817714A: - movs r2, 0x30 - ldrsh r1, [r5, r2] - cmp r1, 0x2 - beq _0817721C - cmp r1, 0x2 - bgt _0817715C - cmp r1, 0x1 - beq _08177162 - b _0817721C -_0817715C: - cmp r1, 0x3 - beq _0817717A - b _0817721C -_08177162: - ldrh r1, [r5, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08177172 - ldrh r0, [r5, 0x22] - adds r0, 0x1 - strh r0, [r5, 0x22] -_08177172: - ldrh r0, [r5, 0x20] - subs r0, 0x2 - strh r0, [r5, 0x20] - b _0817721C -_0817717A: - ldrh r0, [r5, 0x3C] - ands r1, r0 - cmp r1, 0 - bne _08177188 - ldrh r0, [r5, 0x22] - adds r0, 0x1 - strh r0, [r5, 0x22] -_08177188: - ldrh r0, [r5, 0x20] - adds r0, 0x2 - strh r0, [r5, 0x20] - b _0817721C -_08177190: - ldrh r1, [r5, 0x34] - movs r2, 0x34 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _081771A0 - subs r0, r1, 0x1 - strh r0, [r5, 0x34] - b _0817721C -_081771A0: - movs r1, 0xF4 - lsls r1, 4 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldrb r1, [r5, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x1] - movs r0, 0x10 - strh r0, [r5, 0x34] - b _081771FE -_081771C6: - ldrh r1, [r5, 0x34] - movs r2, 0x34 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _081771EC - subs r1, 0x1 - strh r1, [r5, 0x34] - movs r0, 0x34 - ldrsh r2, [r5, r0] - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - b _0817721C -_081771EC: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x9 - strh r0, [r5, 0x2E] - b _0817721C -_081771FE: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _0817721C -_08177206: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - ldrh r0, [r5, 0x3A] - bl sub_818D820 -_0817721C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8177050 - - thumb_func_start sub_8177224 -sub_8177224: @ 8177224 - push {r4-r7,lr} - adds r5, r3, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - adds r3, r5, 0 - bl sub_80C0E9C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r6, =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r2, r1, r6 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - movs r3, 0x4 - orrs r0, r3 - strb r0, [r2, 0x5] - adds r0, r5, 0x1 - strh r0, [r2, 0x30] - movs r0, 0x3E - adds r0, r2 - mov r12, r0 - ldrb r0, [r0] - orrs r0, r3 - mov r3, r12 - strb r0, [r3] - adds r0, r6, 0 - adds r0, 0x1C - adds r1, r0 - ldr r0, =sub_8177050 - str r0, [r1] - strh r4, [r2, 0x3A] - ldr r0, =gUnknown_085E7068 - movs r7, 0x20 - ldrsh r1, [r2, r7] - movs r3, 0x22 - ldrsh r2, [r2, r3] - movs r3, 0x1 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r4, [r0, 0x2E] - lsls r5, 24 - lsrs r5, 24 - adds r1, r5, 0 - bl StartSpriteAnimIfDifferent - adds r0, r4, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8177224 - - thumb_func_start sub_81772B8 -sub_81772B8: @ 81772B8 - push {r4,lr} - adds r3, r0, 0 - ldr r4, =gSprites - movs r1, 0x2E - ldrsh r0, [r3, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0xA - beq _081772DC - ldr r0, =gUnknown_0203BD28 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _081772EC -_081772DC: - adds r0, r3, 0 - bl DestroySprite - b _08177380 - .pool -_081772EC: - adds r0, r1, 0 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r0, r12 - ldrb r2, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - movs r2, 0x2E - ldrsh r1, [r3, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - movs r0, 0xC - ands r0, r1 - ldrb r2, [r3, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - movs r0, 0x2E - ldrsh r2, [r3, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r2, 0x4 - negs r2, r2 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - movs r2, 0x2E - ldrsh r1, [r3, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - movs r1, 0x3E - ands r1, r0 - ldrb r2, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x3] - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r3, 0x20] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x22] - strh r0, [r3, 0x22] -_08177380: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81772B8 - - thumb_func_start sub_8177388 -sub_8177388: @ 8177388 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =0x00004023 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GetStarterPokemon - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - movs r4, 0x1 - movs r6, 0 - ldr r5, =0x00000181 -_081773B4: - adds r0, r4, 0 - movs r1, 0x1 - bl GetSetPokedexFlag - lsls r0, 24 - cmp r0, 0 - beq _081773D4 - ldr r0, =gUnknown_0203BCE8 - ldr r0, [r0] - lsls r1, r6, 1 - adds r0, 0x96 - adds r0, r1 - strh r4, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081773D4: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bls _081773B4 - adds r4, r6, 0 - ldr r0, =0x00000181 - ldr r1, =gUnknown_0203BCE8 - mov r8, r1 - lsls r7, r4, 16 - cmp r4, r0 - bhi _08177406 - mov r5, r8 - movs r3, 0 - adds r2, r0, 0 -_081773F2: - ldr r0, [r5] - lsls r1, r4, 1 - adds r0, 0x96 - adds r0, r1 - strh r3, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r2 - bls _081773F2 -_08177406: - mov r2, r8 - ldr r1, [r2] - ldr r2, =0x0000039a - adds r0, r1, r2 - strh r6, [r0] - lsrs r0, r7, 16 - cmp r0, 0x46 - bhi _08177430 - adds r0, r1, 0 - adds r0, 0x94 - strh r6, [r0] - b _08177436 - .pool -_08177430: - adds r1, 0x94 - movs r0, 0x47 - strh r0, [r1] -_08177436: - movs r6, 0 - ldr r0, =gUnknown_0203BCE8 - mov r9, r0 - ldr r1, =0x0000039a - mov r8, r1 - movs r7, 0 - b _08177450 - .pool -_0817744C: - cmp r6, 0x46 - bhi _081774AC -_08177450: - bl Random - mov r2, r9 - ldr r4, [r2] - mov r1, r8 - adds r5, r4, r1 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r5] - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, r6, 1 - adds r1, r4, r1 - lsls r0, r3, 1 - adds r4, 0x96 - adds r2, r4, r0 - ldrh r0, [r2] - strh r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - strh r7, [r2] - ldrh r0, [r5] - subs r0, 0x1 - strh r0, [r5] - lsls r0, 16 - lsrs r0, 16 - cmp r3, r0 - beq _081774A0 - ldrh r0, [r5] - lsls r0, 1 - adds r0, r4, r0 - ldrh r0, [r0] - strh r0, [r2] - ldrh r0, [r5] - lsls r0, 1 - adds r0, r4, r0 - strh r7, [r0] -_081774A0: - mov r2, r9 - ldr r0, [r2] - add r0, r8 - ldrh r0, [r0] - cmp r0, 0 - bne _0817744C -_081774AC: - ldr r1, =gUnknown_0203BCE8 - ldr r2, [r1] - adds r3, r2, 0 - adds r3, 0x94 - ldrh r0, [r3] - mov r8, r1 - cmp r0, 0x46 - bhi _081774F8 - adds r6, r0, 0 - movs r3, 0 - cmp r6, 0x46 - bhi _081774EE - mov r4, r8 -_081774C6: - ldr r2, [r4] - lsls r1, r6, 1 - adds r1, r2, r1 - lsls r0, r3, 1 - adds r0, r2, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r2, 0x94 - ldrh r2, [r2] - cmp r3, r2 - bne _081774E4 - movs r3, 0 -_081774E4: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x46 - bls _081774C6 -_081774EE: - mov r1, r8 - ldr r0, [r1] - b _08177538 - .pool -_081774F8: - movs r4, 0 - ldrh r0, [r2] - cmp r0, r10 - beq _08177516 - adds r1, r2, 0 -_08177502: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 1 - adds r0, r1, r0 - ldrh r0, [r0] - cmp r0, r10 - beq _08177516 - cmp r4, 0x46 - bls _08177502 -_08177516: - mov r0, r8 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x94 - ldrh r0, [r0] - subs r0, 0x1 - cmp r4, r0 - bge _08177536 - lsls r0, r4, 1 - adds r0, r2, r0 - adds r2, 0x8C - ldrh r1, [r2] - strh r1, [r0] - mov r1, r10 - strh r1, [r2] - b _0817753E -_08177536: - adds r0, r2, 0 -_08177538: - adds r0, 0x8C - mov r2, r10 - strh r2, [r0] -_0817753E: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x94 - movs r1, 0x47 - strh r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8177388 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/intro_credits_graphics.s b/asm/intro_credits_graphics.s deleted file mode 100644 index aef83f35b0..0000000000 --- a/asm/intro_credits_graphics.s +++ /dev/null @@ -1,459 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_817B698 -sub_817B698: @ 817B698 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r1, [sp, 0x4] - str r2, [sp, 0x8] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - movs r7, 0 - cmp r7, r8 - bcs _0817B74E - ldr r0, =gSprites - mov r10, r0 - movs r2, 0x3F - mov r9, r2 -_0817B6C2: - lsls r6, r7, 3 - ldr r0, [sp, 0x4] - adds r6, r0 - ldrb r1, [r6, 0x1] - ldrb r2, [r6, 0x2] - ldrb r3, [r6, 0x3] - ldr r0, =gUnknown_085F504C - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - mov r2, r10 - adds r4, r5, r2 - ldrb r2, [r6] - lsls r1, r2, 26 - lsrs r1, 30 - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcCenterToCornerVec - ldrb r3, [r4, 0x5] - movs r0, 0xC - orrs r3, r0 - strb r3, [r4, 0x5] - ldrb r1, [r6] - lsls r1, 26 - lsrs r1, 30 - lsls r1, 6 - ldrb r2, [r4, 0x1] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r6] - lsrs r1, 6 - lsls r1, 6 - ldrb r2, [r4, 0x3] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0xF - ands r3, r0 - strb r3, [r4, 0x5] - ldr r0, =gSprites + 8 - adds r5, r0 - ldr r2, [sp, 0x8] - str r2, [r5] - ldrb r1, [r6] - lsls r1, 28 - lsrs r1, 28 - adds r0, r4, 0 - bl StartSpriteAnim - movs r1, 0 - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x2E] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x30] - strh r1, [r4, 0x32] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, r8 - bcc _0817B6C2 -_0817B74E: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817B698 - - thumb_func_start sub_817B76C -sub_817B76C: @ 817B76C - push {lr} - ldr r1, =gUnknown_085F50A4 - ldr r2, =gUnknown_085F5094 - movs r0, 0 - movs r3, 0x9 - bl sub_817B698 - pop {r0} - bx r0 - .pool - thumb_func_end sub_817B76C - - thumb_func_start sub_817B788 -sub_817B788: @ 817B788 - push {lr} - ldr r1, =gUnknown_085F5120 - ldr r2, =gUnknown_085F5114 - movs r0, 0x1 - movs r3, 0xC - bl sub_817B698 - pop {r0} - bx r0 - .pool - thumb_func_end sub_817B788 - - thumb_func_start sub_817B7A4 -sub_817B7A4: @ 817B7A4 - push {lr} - ldr r1, =gUnknown_085F519C - ldr r2, =gUnknown_085F5198 - movs r0, 0x1 - movs r3, 0x6 - bl sub_817B698 - pop {r0} - bx r0 - .pool - thumb_func_end sub_817B7A4 - - thumb_func_start nullsub_65 -nullsub_65: @ 817B7C0 - bx lr - thumb_func_end nullsub_65 - - thumb_func_start sub_817B7C4 -sub_817B7C4: @ 817B7C4 - push {r4,lr} - ldr r4, =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r1, [r1] - movs r2, 0x3E - adds r2, r0 - mov r12, r2 - movs r2, 0x4 - ands r2, r1 - mov r1, r12 - ldrb r3, [r1] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x20] - strh r1, [r0, 0x20] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x24] - strh r1, [r0, 0x24] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x26] - strh r1, [r0, 0x26] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817B7C4 - - thumb_func_start intro_create_brendan_sprite -intro_create_brendan_sprite: @ 817B834 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, =gUnknown_085F51EC - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x2 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gUnknown_085F523C - adds r4, 0x8 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strh r6, [r1, 0x2E] - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end intro_create_brendan_sprite - - thumb_func_start intro_create_may_sprite -intro_create_may_sprite: @ 817B88C - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, =gUnknown_085F5204 - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x2 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gUnknown_085F5254 - adds r4, 0x8 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strh r6, [r1, 0x2E] - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end intro_create_may_sprite - - thumb_func_start nullsub_66 -nullsub_66: @ 817B8E4 - bx lr - thumb_func_end nullsub_66 - - thumb_func_start sub_817B8E8 -sub_817B8E8: @ 817B8E8 - push {r4,lr} - ldr r4, =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r1, [r1] - movs r2, 0x3E - adds r2, r0 - mov r12, r2 - movs r2, 0x4 - ands r2, r1 - mov r1, r12 - ldrb r3, [r1] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x22] - strh r1, [r0, 0x22] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x24] - strh r1, [r0, 0x24] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x26] - strh r1, [r0, 0x26] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817B8E8 - - thumb_func_start sub_817B948 -sub_817B948: @ 817B948 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r2, r0, 0 - adds r5, r1, 0 - ldr r0, =gUnknown_085F528C - mov r8, r0 - lsls r2, 16 - asrs r4, r2, 16 - ldr r0, =0xffe00000 - adds r2, r0 - asrs r2, 16 - lsls r5, 16 - asrs r5, 16 - mov r0, r8 - adds r1, r2, 0 - adds r2, r5, 0 - movs r3, 0x5 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r4, 0x20 - lsls r4, 16 - asrs r4, 16 - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - strh r6, [r0, 0x2E] - movs r1, 0x1 - bl StartSpriteAnim - adds r5, 0x1C - adds r4, r5 - ldr r0, =sub_817B8E8 - str r0, [r4] - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_817B948 - - thumb_func_start intro_create_flygon_sprite -intro_create_flygon_sprite: @ 817B9C4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r2, r0, 0 - adds r5, r1, 0 - ldr r0, =gUnknown_085F52A4 - mov r8, r0 - lsls r2, 16 - asrs r4, r2, 16 - ldr r0, =0xffe00000 - adds r2, r0 - asrs r2, 16 - lsls r5, 16 - asrs r5, 16 - mov r0, r8 - adds r1, r2, 0 - adds r2, r5, 0 - movs r3, 0x5 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r4, 0x20 - lsls r4, 16 - asrs r4, 16 - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - strh r6, [r0, 0x2E] - movs r1, 0x1 - bl StartSpriteAnim - adds r5, 0x1C - adds r4, r5 - ldr r0, =sub_817B8E8 - str r0, [r4] - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end intro_create_flygon_sprite - - .align 2, 0 @ Don't pad with nop. diff --git a/data/credits.s b/data/credits.s deleted file mode 100644 index a5c0837d1e..0000000000 --- a/data/credits.s +++ /dev/null @@ -1,1577 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_085E56F0:: @ 85E56F0 - .incbin "graphics/credits/credits_1.gbapal" - .incbin "graphics/credits/credits_2.gbapal" - .incbin "graphics/credits/credits_3.gbapal" - .incbin "graphics/credits/credits_4.gbapal" - - .align 2 -gUnknown_085E5770:: @ 85E5770 - .incbin "graphics/credits/the_end_copyright.4bpp.lz" - -gUnknown_085E5BAC:: @ 85E5BAC - .byte 0x00, 0x01, 0x00, 0xff, 0x01, 0xff, 0xff, 0x01, 0xff, 0xff, 0x01, 0xff, 0xff, 0x01, 0xff - -gUnknown_085E5BBB:: @ 85E5BBB - .byte 0x01, 0xff, 0x01, 0x01, 0xff, 0x01, 0x01, 0x02, 0x01, 0x01, 0xff, 0x01, 0x01, 0xff, 0x01 - -gUnknown_085E5BCA:: @ 85E5BCA - .byte 0x01, 0x00, 0x00, 0x01, 0xff, 0xff, 0x01, 0x02, 0x02, 0x01, 0xff, 0xff, 0x01, 0x80, 0x80 - -gUnknown_085E5BD9:: @ 85E5BD9 - .byte 0x01, 0x03, 0x01, 0x01, 0x04, 0x01, 0x01, 0x05, 0x01, 0x01, 0xc4, 0x01, 0x01, 0xc3, 0x01 - -gUnknown_085E5BE8:: @ 85E5BE8 - .byte 0x01, 0x06, 0x07, 0x01, 0x08, 0x09, 0x01, 0xff, 0x01, 0x01, 0x88, 0x89, 0x01, 0x86, 0x87 - -gCreditsText_EmptyString:: @ 85E5BF7 - .string "$" - -gCreditsText_PkmnEmeraldVersion:: @ 85E5BF8 - .string "POKéMON EMERALD VERSION$" - -gCreditsText_Credits:: @ 85E5C10 - .string "Credits$" - -gCreditsText_ExecutiveDirector:: @ 85E5C18 - .string "Executive Director$" - -gCreditsText_Director:: @ 85E5C2B - .string "Director$" - -gCreditsText_ArtDirector:: @ 85E5C34 - .string "Art Director$" - -gCreditsText_BattleDirector:: @ 85E5C41 - .string "Battle Director$" - -gCreditsText_MainProgrammer:: @ 85E5C51 - .string "Main Programmer$" - -gCreditsText_BattleSystemPgrms:: @ 85E5C61 - .string "Battle System Programmers$" - -gCreditsText_FieldSystemPgrms:: @ 85E5C7B - .string "Field System Programmer$" - -gCreditsText_Programmers:: @ 85E5C93 - .string "Programmers$" - -gCreditsText_MainGraphicDesigner:: @ 85E5C9F - .string "Main Graphic Designer$" - -gCreditsText_GraphicDesigners:: @ 85E5CB5 - .string "Graphic Designers$" - -gCreditsText_PkmnDesigners:: @ 85E5CC7 - .string "POKéMON Designers$" - -gCreditsText_MusicComposition:: @ 85E5CD9 - .string "Music Composition$" - -gCreditsText_SoundEffectsAndPkmnVoices:: @ 85E5CEB - .string "Sound Effects & POKéMON Voices$" - -gCreditsText_GameDesigners:: @ 85E5D0A - .string "Game Designers$" - -gCreditsText_ScenarioPlot:: @ 85E5D19 - .string "Scenario Plot$" - -gCreditsText_Scenario:: @ 85E5D27 - .string "Scenario$" - -gCreditsText_ScriptDesigners:: @ 85E5D30 - .string "Script Designers$" - -gCreditsText_MapDesigners:: @ 85E5D41 - .string "Map Designers$" - -gCreditsText_MapDataDesigners:: @ 85E5D4F - .string "Map Data Designers$" - -gCreditsText_ParametricDesigners:: @ 85E5D62 - .string "Parametric Designers$" - -gCreditsText_PokedexText:: @ 85E5D77 - .string "POKéDEX Text$" - -gCreditsText_EnvAndToolPgrms:: @ 85E5D84 - .string "Environment & Tool Programmers$" - -gCreditsText_NCLProductTesting:: @ 85E5DA3 - .string "NCL Product Testing$" - -gCreditsText_SpecialThanks:: @ 85E5DB7 - .string "Special Thanks$" - -gCreditsText_Coordinators:: @ 85E5DC6 - .string "Coordinators$" - -gCreditsText_Producers:: @ 85E5DD3 - .string "Producers$" - -gCreditsText_ExecProducers:: @ 85E5DDD - .string "Executive Producers$" - -gCreditsText_InfoSupervisors:: @ 85E5DF1 - .string "Information Supervisors$" - -gCreditsText_TaskManagers:: @ 85E5E09 - .string "Task Managers$" - -gCreditsText_BrailleCodeCheck:: @ 85E5E17 - .string "Braille Code Check$" - -gCreditsText_WorldDirector:: @ 85E5E2A - .string "World Director$" - -gCreditsText_BattleFrontierData:: @ 85E5E39 - .string "Battle Frontier Data$" - -gCreditsText_SupportProgrammers:: @ 85E5E4E - .string "Support Programmers$" - -gCreditsText_Artwork:: @ 85E5E62 - .string "Artwork$" - -gCreditsText_LeadProgrammer:: @ 85E5E6A - .string "Lead Programmer$" - -gCreditsText_LeadGraphicArtist:: @ 85E5E7A - .string "Lead Graphic Artist$" - -gCreditsText_SatoshiTajiri:: @ 85E5E8E - .string "Satoshi Tajiri$" - -gCreditsText_JunichiMasuda:: @ 85E5E9D - .string "Junichi Masuda$" - -gCreditsText_KenSugimori:: @ 85E5EAC - .string "Ken Sugimori$" - -gCreditsText_ShigekiMorimoto:: @ 85E5EB9 - .string "Shigeki Morimoto$" - -gCreditsText_TetsuyaWatanabe:: @ 85E5ECA - .string "Tetsuya Watanabe$" - -gCreditsText_HisashiSogabe:: @ 85E5EDB - .string "Hisashi Sogabe$" - -gCreditsText_SosukeTamada:: @ 85E5EEA - .string "Sosuke Tamada$" - -gCreditsText_AkitoMori:: @ 85E5EF8 - .string "Akito Mori$" - -gCreditsText_KeitaKagaya:: @ 85E5F03 - .string "Keita Kagaya$" - -gCreditsText_YoshinoriMatsuda:: @ 85E5F10 - .string "Yoshinori Matsuda$" - -gCreditsText_HiroyukiNakamura:: @ 85E5F22 - .string "Hiroyuki Nakamura$" - -gCreditsText_MasaoTaya:: @ 85E5F34 - .string "Masao Taya$" - -gCreditsText_SatoshiNohara:: @ 85E5F3F - .string "Satoshi Nohara$" - -gCreditsText_TomomichiOhta:: @ 85E5F4E - .string "Tomomichi Ohta$" - -gCreditsText_MiyukiIwasawa:: @ 85E5F5D - .string "Miyuki Iwasawa$" - -gCreditsText_TakenoriOhta:: @ 85E5F6C - .string "Takenori Ohta$" - -gCreditsText_HironobuYoshida:: @ 85E5F7A - .string "Hironobu Yoshida$" - -gCreditsText_MotofumiFujiwara:: @ 85E5F8B - .string "Motofumi Fujiwara$" - -gCreditsText_SatoshiOhta:: @ 85E5F9D - .string "Satoshi Ohta$" - -gCreditsText_AsukaIwashita:: @ 85E5FAA - .string "Asuka Iwashita$" - -gCreditsText_AimiTomita:: @ 85E5FB9 - .string "Aimi Tomita$" - -gCreditsText_TakaoUnno:: @ 85E5FC5 - .string "Takao Unno$" - -gCreditsText_KanakoEo:: @ 85E5FD0 - .string "Kanako Eo$" - -gCreditsText_JunOkutani:: @ 85E5FDA - .string "Jun Okutani$" - -gCreditsText_AtsukoNishida:: @ 85E5FE6 - .string "Atsuko Nishida$" - -gCreditsText_MuneoSaito:: @ 85E5FF5 - .string "Muneo Saito$" - -gCreditsText_RenaYoshikawa:: @ 85E6001 - .string "Rena Yoshikawa$" - -gCreditsText_GoIchinose:: @ 85E6010 - .string "Go Ichinose$" - -gCreditsText_MorikazuAoki:: @ 85E601C - .string "Morikazu Aoki$" - -gCreditsText_KojiNishino:: @ 85E602A - .string "Koji Nishino$" - -gCreditsText_KenjiMatsushima:: @ 85E6037 - .string "Kenji Matsushima$" - -gCreditsText_TetsujiOhta:: @ 85E6048 - .string "Tetsuji Ohta$" - -gCreditsText_HitomiSato:: @ 85E6055 - .string "Hitomi Sato$" - -gCreditsText_TakeshiKawachimaru:: @ 85E6061 - .string "Takeshi Kawachimaru$" - -gCreditsText_TeruyukiShimoyamada:: @ 85E6075 - .string "Teruyuki Shimoyamada$" - -gCreditsText_ShigeruOhmori:: @ 85E608A - .string "Shigeru Ohmori$" - -gCreditsText_TadashiTakahashi:: @ 85E6099 - .string "Tadashi Takahashi$" - -gCreditsText_ToshinobuMatsumiya:: @ 85E60AB - .string "Toshinobu Matsumiya$" - -gCreditsText_AkihitoTomisawa:: @ 85E60BF - .string "Akihito Tomisawa$" - -gCreditsText_HirokiEnomoto:: @ 85E60D0 - .string "Hiroki Enomoto$" - -gCreditsText_KazuyukiTerada:: @ 85E60DF - .string "Kazuyuki Terada$" - -gCreditsText_YuriSakurai:: @ 85E60EF - .string "Yuri Sakurai$" - -gCreditsText_HiromiSagawa:: @ 85E60FC - .string "Hiromi Sagawa$" - -gCreditsText_KenjiTominaga:: @ 85E610A - .string "Kenji Tominaga$" - -gCreditsText_YoshioTajiri:: @ 85E6119 - .string "Yoshio Tajiri$" - -gCreditsText_TeikoSasaki:: @ 85E6127 - .string "Teiko Sasaki$" - -gCreditsText_SachikoHamano:: @ 85E6134 - .string "Sachiko Hamano$" - -gCreditsText_ChieMatsumiya:: @ 85E6143 - .string "Chie Matsumiya$" - -gCreditsText_AkikoShinozaki:: @ 85E6152 - .string "Akiko Shinozaki$" - -gCreditsText_AstukoFujii:: @ 85E6162 - .string "Astuko Fujii$" - -gCreditsText_NozomuSaito:: @ 85E616F - .string "Nozomu Saito$" - -gCreditsText_KenkichiToyama:: @ 85E617C - .string "Kenkichi Toyama$" - -gCreditsText_SuguruNakatsui:: @ 85E618C - .string "Suguru Nakatsui$" - -gCreditsText_YumiFunasaka:: @ 85E619C - .string "Yumi Funasaka$" - -gCreditsText_NaokoYanase:: @ 85E61AA - .string "Naoko Yanase$" - -gCreditsText_NCLSuperMarioClub:: @ 85E61B7 - .string "NCL Super Mario Club$" - -gCreditsText_AtsushiTada:: @ 85E61CC - .string "Atsushi Tada$" - -gCreditsText_TakahiroOhnishi:: @ 85E61D9 - .string "Takahiro Ohnishi$" - -gCreditsText_NorihideOkamura:: @ 85E61EA - .string "Norihide Okamura$" - -gCreditsText_HiroNakamura:: @ 85E61FB - .string "Hiro Nakamura$" - -gCreditsText_HiroyukiUesugi:: @ 85E6209 - .string "Hiroyuki Uesugi$" - -gCreditsText_TerukiMurakawa:: @ 85E6219 - .string "Teruki Murakawa$" - -gCreditsText_AkiraKinashi:: @ 85E6229 - .string "Akira Kinashi$" - -gCreditsText_MichikoTakizawa:: @ 85E6237 - .string "Michiko Takizawa$" - -gCreditsText_MakikoTakada:: @ 85E6248 - .string "Makiko Takada$" - -gCreditsText_TakanaoKondo:: @ 85E6256 - .string "Takanao Kondo$" - -gCreditsText_AiMashima:: @ 85E6264 - .string "Ai Mashima$" - -gCreditsText_GakujiNomoto:: @ 85E626F - .string "Gakuji Nomoto$" - -gCreditsText_TakehiroIzushi:: @ 85E627D - .string "Takehiro Izushi$" - -gCreditsText_HitoshiYamagami:: @ 85E628D - .string "Hitoshi Yamagami$" - -gCreditsText_KyokoWatanabe:: @ 85E629E - .string "Kyoko Watanabe$" - -gCreditsText_TakaoNakano:: @ 85E62AD - .string "Takao Nakano$" - -gCreditsText_HiroyukiJinnai:: @ 85E62BA - .string "Hiroyuki Jinnai$" - -gCreditsText_HiroakiTsuru:: @ 85E62CA - .string "Hiroaki Tsuru$" - -gCreditsText_TsunekazIshihara:: @ 85E62D8 - .string "Tsunekaz Ishihara$" - -gCreditsText_SatoruIwata:: @ 85E62EA - .string "Satoru Iwata$" - -gCreditsText_KazuyaSuyama:: @ 85E62F7 - .string "Kazuya Suyama$" - -gCreditsText_SatoshiMitsuhara:: @ 85E6305 - .string "Satoshi Mitsuhara$" - -gCreditsText_JapanBrailleLibrary:: @ 85E6317 - .string "Japan Braille Library$" - -gCreditsText_TomotakaKomura:: @ 85E632D - .string "Tomotaka Komura$" - -gCreditsText_MikikoOhhashi:: @ 85E633D - .string "Mikiko Ohhashi$" - -gCreditsText_DaisukeHoshino:: @ 85E634C - .string "Daisuke Hoshino$" - -gCreditsText_KenjiroIto:: @ 85E635C - .string "Kenjiro Ito$" - -gCreditsText_RuiKawaguchi:: @ 85E6368 - .string "Rui Kawaguchi$" - -gCreditsText_ShunsukeKohori:: @ 85E6376 - .string "Shunsuke Kohori$" - -gCreditsText_SachikoNakamichi:: @ 85E6386 - .string "Sachiko Nakamichi$" - -gCreditsText_FujikoNomura:: @ 85E6398 - .string "Fujiko Nomura$" - -gCreditsText_KazukiYoshihara:: @ 85E63A6 - .string "Kazuki Yoshihara$" - -gCreditsText_RetsujiNomoto:: @ 85E63B7 - .string "Retsuji Nomoto$" - -gCreditsText_AzusaTajima:: @ 85E63C6 - .string "Azusa Tajima$" - -gCreditsText_ShusakuEgami:: @ 85E63D3 - .string "Shusaku Egami$" - -gCreditsText_PackageAndManual:: @ 85E63E1 - .string "Package & Manual Illustration$" - -gCreditsText_EnglishVersion:: @ 85E63FF - .string "English Version Coordinators$" - -gCreditsText_Translator:: @ 85E641C - .string "Translator$" - -gCreditsText_TextEditor:: @ 85E6427 - .string "Text Editor$" - -gCreditsText_NCLCoordinator:: @ 85E6433 - .string "NCL Coordinator$" - -gCreditsText_GraphicDesigner:: @ 85E6443 - .string "Graphic Designer$" - -gCreditsText_NOAProductTesting:: @ 85E6454 - .string "NOA Product Testing$" - -gCreditsText_HideyukiNakajima:: @ 85E6468 - .string "Hideyuki Nakajima$" - -gCreditsText_HidenoriSaeki:: @ 85E647A - .string "Hidenori Saeki$" - -gCreditsText_YokoWatanabe:: @ 85E6489 - .string "Yoko Watanabe$" - -gCreditsText_SakaeKimura:: @ 85E6497 - .string "Sakae Kimura$" - -gCreditsText_ChiakiShinkai:: @ 85E64A4 - .string "Chiaki Shinkai$" - -gCreditsText_SethMcMahill:: @ 85E64B3 - .string "Seth McMahill$" - -gCreditsText_NobOgasawara:: @ 85E64C1 - .string "Nob Ogasawara$" - -gCreditsText_TeresaLillygren:: @ 85E64CF - .string "Teresa Lillygren$" - -gCreditsText_KimikoNakamichi:: @ 85E64E0 - .string "Kimiko Nakamichi$" - -gCreditsText_SouichiYamamoto:: @ 85E64F1 - .string "Souichi Yamamoto$" - -gCreditsText_YuichiroIto:: @ 85E6502 - .string "Yuichiro Ito$" - -gCreditsText_ThomasHertzog:: @ 85E650F - .string "Thomas Hertzog$" - -gCreditsText_MikaKurosawa:: @ 85E651E - .string "Mika Kurosawa$" - -gCreditsText_NationalFederationBlind:: @ 85E652C - .string "National Federation of the Blind$" - -gCreditsText_PatriciaAMaurer:: @ 85E654D - .string "Patricia A. Maurer$" - -gCreditsText_EuropeanBlindUnion:: @ 85E6560 - .string "European Blind Union$" - -gCreditsText_AustralianBrailleAuthority:: @ 85E6575 - .string "Australian Braille Authority$" - -gCreditsText_RoyalNewZealandFederationBlind:: @ 85E6592 - .string "Royal New Zealand Federation for the Blind$" - -gCreditsText_MotoyasuTojima:: @ 85E65BD - .string "Motoyasu Tojima$" - -gCreditsText_NicolaPrattBarlow:: @ 85E65CD - .string "Nicola Pratt-Barlow$" - -gCreditsText_ShellieDow:: @ 85E65E1 - .string "Shellie Dow$" - -gCreditsText_ErikJohnson:: @ 85E65ED - .string "Erik Johnson$" - - .align 2 -gCreditsEntry_EmptyString:: @ 85E65FC - .4byte 0x00000000, gCreditsText_EmptyString - - .align 2 -gCreditsEntry_PkmnEmeraldVersion:: @ 85E6604 - .4byte 0x00000107, gCreditsText_PkmnEmeraldVersion - - .align 2 -gCreditsEntry_Credits:: @ 85E660C - .4byte 0x0000010b, gCreditsText_Credits - - .align 2 -gCreditsEntry_ExecutiveDirector:: @ 85E6614 - .4byte 0x00000108, gCreditsText_ExecutiveDirector - - .align 2 -gCreditsEntry_Director:: @ 85E661C - .4byte 0x0000010c, gCreditsText_Director - - .align 2 -gCreditsEntry_ArtDirector:: @ 85E6624 - .4byte 0x0000010a, gCreditsText_ArtDirector - - .align 2 -gCreditsEntry_BattleDirector:: @ 85E662C - .4byte 0x0000010a, gCreditsText_BattleDirector - - .align 2 -gCreditsEntry_MainProgrammer:: @ 85E6634 - .4byte 0x0000010a, gCreditsText_MainProgrammer - - .align 2 -gCreditsEntry_BattleSystemPgrms:: @ 85E663C - .4byte 0x00000108, gCreditsText_BattleSystemPgrms - - .align 2 -gCreditsEntry_FieldSystemPgrms:: @ 85E6644 - .4byte 0x00000107, gCreditsText_FieldSystemPgrms - - .align 2 -gCreditsEntry_Programmers:: @ 85E664C - .4byte 0x0000010c, gCreditsText_Programmers - - .align 2 -gCreditsEntry_MainGraphicDesigner:: @ 85E6654 - .4byte 0x00000107, gCreditsText_MainGraphicDesigner - - .align 2 -gCreditsEntry_GraphicDesigners:: @ 85E665C - .4byte 0x00000109, gCreditsText_GraphicDesigners - - .align 2 -gCreditsEntry_PkmnDesigners:: @ 85E6664 - .4byte 0x0000010a, gCreditsText_PkmnDesigners - - .align 2 -gCreditsEntry_MusicComposition:: @ 85E666C - .4byte 0x0000010d, gCreditsText_MusicComposition - - .align 2 -gCreditsEntry_SoundEffectsAndPkmnVoices:: @ 85E6674 - .4byte 0x00000104, gCreditsText_SoundEffectsAndPkmnVoices - - .align 2 -gCreditsEntry_GameDesigners:: @ 85E667C - .4byte 0x0000010b, gCreditsText_GameDesigners - - .align 2 -gCreditsEntry_ScenarioPlot:: @ 85E6684 - .4byte 0x0000010b, gCreditsText_ScenarioPlot - - .align 2 -gCreditsEntry_Scenario:: @ 85E668C - .4byte 0x0000010d, gCreditsText_Scenario - - .align 2 -gCreditsEntry_ScriptDesigners:: @ 85E6694 - .4byte 0x0000010a, gCreditsText_ScriptDesigners - - .align 2 -gCreditsEntry_MapDesigners:: @ 85E669C - .4byte 0x0000010b, gCreditsText_MapDesigners - - .align 2 -gCreditsEntry_MapDataDesigners:: @ 85E66A4 - .4byte 0x00000109, gCreditsText_MapDataDesigners - - .align 2 -gCreditsEntry_ParametricDesigners:: @ 85E66AC - .4byte 0x00000109, gCreditsText_ParametricDesigners - - .align 2 -gCreditsEntry_PokedexText:: @ 85E66B4 - .4byte 0x0000010b, gCreditsText_PokedexText - - .align 2 -gCreditsEntry_EnvAndToolPgrms:: @ 85E66BC - .4byte 0x00000106, gCreditsText_EnvAndToolPgrms - - .align 2 -gCreditsEntry_NCLProductTesting:: @ 85E66C4 - .4byte 0x0000010b, gCreditsText_NCLProductTesting - - .align 2 -gCreditsEntry_SpecialThanks:: @ 85E66CC - .4byte 0x0000010a, gCreditsText_SpecialThanks - - .align 2 -gCreditsEntry_Coordinators:: @ 85E66D4 - .4byte 0x0000010b, gCreditsText_Coordinators - - .align 2 -gCreditsEntry_Producers:: @ 85E66DC - .4byte 0x0000010b, gCreditsText_Producers - - .align 2 -gCreditsEntry_ExecProducers:: @ 85E66E4 - .4byte 0x00000107, gCreditsText_ExecProducers - - .align 2 -gCreditsEntry_InfoSupervisors:: @ 85E66EC - .4byte 0x0000010a, gCreditsText_InfoSupervisors - - .align 2 -gCreditsEntry_TaskManagers:: @ 85E66F4 - .4byte 0x00000108, gCreditsText_TaskManagers - - .align 2 -gCreditsEntry_BrailleCodeCheck:: @ 85E66FC - .4byte 0x0000010a, gCreditsText_BrailleCodeCheck - - .align 2 -gCreditsEntry_WorldDirector:: @ 85E6704 - .4byte 0x0000010a, gCreditsText_WorldDirector - - .align 2 -gCreditsEntry_BattleFrontierData:: @ 85E670C - .4byte 0x00000108, gCreditsText_BattleFrontierData - - .align 2 -gCreditsEntry_SupportProgrammers:: @ 85E6714 - .4byte 0x0000010a, gCreditsText_SupportProgrammers - - .align 2 -gCreditsEntry_Artwork:: @ 85E671C - .4byte 0x0000010c, gCreditsText_Artwork - - .align 2 -gCreditsEntry_LeadProgrammer:: @ 85E6724 - .4byte 0x0000010a, gCreditsText_LeadProgrammer - - .align 2 -gCreditsEntry_LeadGraphicArtist:: @ 85E672C - .4byte 0x00000109, gCreditsText_LeadGraphicArtist - - .align 2 -gCreditsEntry_SatoshiTajiri:: @ 85E6734 - .4byte 0x0000000b, gCreditsText_SatoshiTajiri - - .align 2 -gCreditsEntry_JunichiMasuda:: @ 85E673C - .4byte 0x0000000b, gCreditsText_JunichiMasuda - - .align 2 -gCreditsEntry_KenSugimori:: @ 85E6744 - .4byte 0x0000000b, gCreditsText_KenSugimori - - .align 2 -gCreditsEntry_ShigekiMorimoto:: @ 85E674C - .4byte 0x0000000b, gCreditsText_ShigekiMorimoto - - .align 2 -gCreditsEntry_TetsuyaWatanabe:: @ 85E6754 - .4byte 0x0000000b, gCreditsText_TetsuyaWatanabe - - .align 2 -gCreditsEntry_HisashiSogabe:: @ 85E675C - .4byte 0x0000000b, gCreditsText_HisashiSogabe - - .align 2 -gCreditsEntry_SosukeTamada:: @ 85E6764 - .4byte 0x0000000b, gCreditsText_SosukeTamada - - .align 2 -gCreditsEntry_AkitoMori:: @ 85E676C - .4byte 0x0000000b, gCreditsText_AkitoMori - - .align 2 -gCreditsEntry_KeitaKagaya:: @ 85E6774 - .4byte 0x0000000b, gCreditsText_KeitaKagaya - - .align 2 -gCreditsEntry_YoshinoriMatsuda:: @ 85E677C - .4byte 0x0000000b, gCreditsText_YoshinoriMatsuda - - .align 2 -gCreditsEntry_HiroyukiNakamura:: @ 85E6784 - .4byte 0x0000000b, gCreditsText_HiroyukiNakamura - - .align 2 -gCreditsEntry_MasaoTaya:: @ 85E678C - .4byte 0x0000000b, gCreditsText_MasaoTaya - - .align 2 -gCreditsEntry_SatoshiNohara:: @ 85E6794 - .4byte 0x0000000b, gCreditsText_SatoshiNohara - - .align 2 -gCreditsEntry_TomomichiOhta:: @ 85E679C - .4byte 0x0000000b, gCreditsText_TomomichiOhta - - .align 2 -gCreditsEntry_MiyukiIwasawa:: @ 85E67A4 - .4byte 0x0000000b, gCreditsText_MiyukiIwasawa - - .align 2 -gCreditsEntry_TakenoriOhta:: @ 85E67AC - .4byte 0x0000000b, gCreditsText_TakenoriOhta - - .align 2 -gCreditsEntry_HironobuYoshida:: @ 85E67B4 - .4byte 0x0000000b, gCreditsText_HironobuYoshida - - .align 2 -gCreditsEntry_MotofumiFujiwara:: @ 85E67BC - .4byte 0x0000000b, gCreditsText_MotofumiFujiwara - - .align 2 -gCreditsEntry_SatoshiOhta:: @ 85E67C4 - .4byte 0x0000000b, gCreditsText_SatoshiOhta - - .align 2 -gCreditsEntry_AsukaIwashita:: @ 85E67CC - .4byte 0x0000000b, gCreditsText_AsukaIwashita - - .align 2 -gCreditsEntry_AimiTomita:: @ 85E67D4 - .4byte 0x0000000b, gCreditsText_AimiTomita - - .align 2 -gCreditsEntry_TakaoUnno:: @ 85E67DC - .4byte 0x0000000b, gCreditsText_TakaoUnno - - .align 2 -gCreditsEntry_KanakoEo:: @ 85E67E4 - .4byte 0x0000000b, gCreditsText_KanakoEo - - .align 2 -gCreditsEntry_JunOkutani:: @ 85E67EC - .4byte 0x0000000b, gCreditsText_JunOkutani - - .align 2 -gCreditsEntry_AtsukoNishida:: @ 85E67F4 - .4byte 0x0000000b, gCreditsText_AtsukoNishida - - .align 2 -gCreditsEntry_MuneoSaito:: @ 85E67FC - .4byte 0x0000000b, gCreditsText_MuneoSaito - - .align 2 -gCreditsEntry_RenaYoshikawa:: @ 85E6804 - .4byte 0x0000000b, gCreditsText_RenaYoshikawa - - .align 2 -gCreditsEntry_GoIchinose:: @ 85E680C - .4byte 0x0000000b, gCreditsText_GoIchinose - - .align 2 -gCreditsEntry_MorikazuAoki:: @ 85E6814 - .4byte 0x0000000b, gCreditsText_MorikazuAoki - - .align 2 -gCreditsEntry_KojiNishino:: @ 85E681C - .4byte 0x0000000b, gCreditsText_KojiNishino - - .align 2 -gCreditsEntry_KenjiMatsushima:: @ 85E6824 - .4byte 0x0000000b, gCreditsText_KenjiMatsushima - - .align 2 -gCreditsEntry_TetsujiOhta:: @ 85E682C - .4byte 0x0000000b, gCreditsText_TetsujiOhta - - .align 2 -gCreditsEntry_HitomiSato:: @ 85E6834 - .4byte 0x0000000b, gCreditsText_HitomiSato - - .align 2 -gCreditsEntry_TakeshiKawachimaru:: @ 85E683C - .4byte 0x0000000b, gCreditsText_TakeshiKawachimaru - - .align 2 -gCreditsEntry_TeruyukiShimoyamada:: @ 85E6844 - .4byte 0x0000000b, gCreditsText_TeruyukiShimoyamada - - .align 2 -gCreditsEntry_ShigeruOhmori:: @ 85E684C - .4byte 0x0000000b, gCreditsText_ShigeruOhmori - - .align 2 -gCreditsEntry_TadashiTakahashi:: @ 85E6854 - .4byte 0x0000000b, gCreditsText_TadashiTakahashi - - .align 2 -gCreditsEntry_ToshinobuMatsumiya:: @ 85E685C - .4byte 0x0000000b, gCreditsText_ToshinobuMatsumiya - - .align 2 -gCreditsEntry_AkihitoTomisawa:: @ 85E6864 - .4byte 0x0000000b, gCreditsText_AkihitoTomisawa - - .align 2 -gCreditsEntry_HirokiEnomoto:: @ 85E686C - .4byte 0x0000000b, gCreditsText_HirokiEnomoto - - .align 2 -gCreditsEntry_KazuyukiTerada:: @ 85E6874 - .4byte 0x0000000b, gCreditsText_KazuyukiTerada - - .align 2 -gCreditsEntry_YuriSakurai:: @ 85E687C - .4byte 0x0000000b, gCreditsText_YuriSakurai - - .align 2 -gCreditsEntry_HiromiSagawa:: @ 85E6884 - .4byte 0x0000000b, gCreditsText_HiromiSagawa - - .align 2 -gCreditsEntry_KenjiTominaga:: @ 85E688C - .4byte 0x0000000b, gCreditsText_KenjiTominaga - - .align 2 -gCreditsEntry_YoshioTajiri:: @ 85E6894 - .4byte 0x0000000b, gCreditsText_YoshioTajiri - - .align 2 -gCreditsEntry_TeikoSasaki:: @ 85E689C - .4byte 0x0000000b, gCreditsText_TeikoSasaki - - .align 2 -gCreditsEntry_SachikoHamano:: @ 85E68A4 - .4byte 0x0000000b, gCreditsText_SachikoHamano - - .align 2 -gCreditsEntry_ChieMatsumiya:: @ 85E68AC - .4byte 0x0000000b, gCreditsText_ChieMatsumiya - - .align 2 -gCreditsEntry_AkikoShinozaki:: @ 85E68B4 - .4byte 0x0000000b, gCreditsText_AkikoShinozaki - - .align 2 -gCreditsEntry_AstukoFujii:: @ 85E68BC - .4byte 0x0000000b, gCreditsText_AstukoFujii - - .align 2 -gCreditsEntry_NozomuSaito:: @ 85E68C4 - .4byte 0x0000000b, gCreditsText_NozomuSaito - - .align 2 -gCreditsEntry_KenkichiToyama:: @ 85E68CC - .4byte 0x0000000b, gCreditsText_KenkichiToyama - - .align 2 -gCreditsEntry_SuguruNakatsui:: @ 85E68D4 - .4byte 0x0000000b, gCreditsText_SuguruNakatsui - - .align 2 -gCreditsEntry_YumiFunasaka:: @ 85E68DC - .4byte 0x0000000b, gCreditsText_YumiFunasaka - - .align 2 -gCreditsEntry_NaokoYanase:: @ 85E68E4 - .4byte 0x0000000b, gCreditsText_NaokoYanase - - .align 2 -gCreditsEntry_NCLSuperMarioClub:: @ 85E68EC - .4byte 0x0000000b, gCreditsText_NCLSuperMarioClub - - .align 2 -gCreditsEntry_AtsushiTada:: @ 85E68F4 - .4byte 0x0000000b, gCreditsText_AtsushiTada - - .align 2 -gCreditsEntry_TakahiroOhnishi:: @ 85E68FC - .4byte 0x0000000b, gCreditsText_TakahiroOhnishi - - .align 2 -gCreditsEntry_NorihideOkamura:: @ 85E6904 - .4byte 0x0000000b, gCreditsText_NorihideOkamura - - .align 2 -gCreditsEntry_HiroNakamura:: @ 85E690C - .4byte 0x0000000b, gCreditsText_HiroNakamura - - .align 2 -gCreditsEntry_HiroyukiUesugi:: @ 85E6914 - .4byte 0x0000000b, gCreditsText_HiroyukiUesugi - - .align 2 -gCreditsEntry_TerukiMurakawa:: @ 85E691C - .4byte 0x0000000b, gCreditsText_TerukiMurakawa - - .align 2 -gCreditsEntry_AkiraKinashi:: @ 85E6924 - .4byte 0x0000000b, gCreditsText_AkiraKinashi - - .align 2 -gCreditsEntry_MichikoTakizawa:: @ 85E692C - .4byte 0x0000000b, gCreditsText_MichikoTakizawa - - .align 2 -gCreditsEntry_MakikoTakada:: @ 85E6934 - .4byte 0x0000000b, gCreditsText_MakikoTakada - - .align 2 -gCreditsEntry_TakanaoKondo:: @ 85E693C - .4byte 0x0000000b, gCreditsText_TakanaoKondo - - .align 2 -gCreditsEntry_AiMashima:: @ 85E6944 - .4byte 0x0000000b, gCreditsText_AiMashima - - .align 2 -gCreditsEntry_GakujiNomoto:: @ 85E694C - .4byte 0x0000000b, gCreditsText_GakujiNomoto - - .align 2 -gCreditsEntry_TakehiroIzushi:: @ 85E6954 - .4byte 0x0000000b, gCreditsText_TakehiroIzushi - - .align 2 -gCreditsEntry_HitoshiYamagami:: @ 85E695C - .4byte 0x0000000b, gCreditsText_HitoshiYamagami - - .align 2 -gCreditsEntry_KyokoWatanabe:: @ 85E6964 - .4byte 0x0000000b, gCreditsText_KyokoWatanabe - - .align 2 -gCreditsEntry_TakaoNakano:: @ 85E696C - .4byte 0x0000000b, gCreditsText_TakaoNakano - - .align 2 -gCreditsEntry_HiroyukiJinnai:: @ 85E6974 - .4byte 0x0000000b, gCreditsText_HiroyukiJinnai - - .align 2 -gCreditsEntry_HiroakiTsuru:: @ 85E697C - .4byte 0x0000000b, gCreditsText_HiroakiTsuru - - .align 2 -gCreditsEntry_TsunekazIshihara:: @ 85E6984 - .4byte 0x0000000b, gCreditsText_TsunekazIshihara - - .align 2 -gCreditsEntry_SatoruIwata:: @ 85E698C - .4byte 0x0000000b, gCreditsText_SatoruIwata - - .align 2 -gCreditsEntry_KazuyaSuyama:: @ 85E6994 - .4byte 0x0000000b, gCreditsText_KazuyaSuyama - - .align 2 -gCreditsEntry_SatoshiMitsuhara:: @ 85E699C - .4byte 0x0000000b, gCreditsText_SatoshiMitsuhara - - .align 2 -gCreditsEntry_JapanBrailleLibrary:: @ 85E69A4 - .4byte 0x00000009, gCreditsText_JapanBrailleLibrary - - .align 2 -gCreditsEntry_TomotakaKomura:: @ 85E69AC - .4byte 0x0000000b, gCreditsText_TomotakaKomura - - .align 2 -gCreditsEntry_MikikoOhhashi:: @ 85E69B4 - .4byte 0x0000000b, gCreditsText_MikikoOhhashi - - .align 2 -gCreditsEntry_DaisukeHoshino:: @ 85E69BC - .4byte 0x0000000b, gCreditsText_DaisukeHoshino - - .align 2 -gCreditsEntry_KenjiroIto:: @ 85E69C4 - .4byte 0x0000000b, gCreditsText_KenjiroIto - - .align 2 -gCreditsEntry_RuiKawaguchi:: @ 85E69CC - .4byte 0x0000000b, gCreditsText_RuiKawaguchi - - .align 2 -gCreditsEntry_ShunsukeKohori:: @ 85E69D4 - .4byte 0x0000000b, gCreditsText_ShunsukeKohori - - .align 2 -gCreditsEntry_SachikoNakamichi:: @ 85E69DC - .4byte 0x0000000b, gCreditsText_SachikoNakamichi - - .align 2 -gCreditsEntry_FujikoNomura:: @ 85E69E4 - .4byte 0x0000000b, gCreditsText_FujikoNomura - - .align 2 -gCreditsEntry_KazukiYoshihara:: @ 85E69EC - .4byte 0x0000000b, gCreditsText_KazukiYoshihara - - .align 2 -gCreditsEntry_RetsujiNomoto:: @ 85E69F4 - .4byte 0x0000000b, gCreditsText_RetsujiNomoto - - .align 2 -gCreditsEntry_AzusaTajima:: @ 85E69FC - .4byte 0x0000000b, gCreditsText_AzusaTajima - - .align 2 -gCreditsEntry_ShusakuEgami:: @ 85E6A04 - .4byte 0x0000000b, gCreditsText_ShusakuEgami - - .align 2 -gCreditsEntry_PackageAndManual:: @ 85E6A0C - .4byte 0x00000100, gCreditsText_PackageAndManual - - .align 2 -gCreditsEntry_EnglishVersion:: @ 85E6A14 - .4byte 0x00000100, gCreditsText_EnglishVersion - - .align 2 -gCreditsEntry_Translator:: @ 85E6A1C - .4byte 0x00000100, gCreditsText_Translator - - .align 2 -gCreditsEntry_TextEditor:: @ 85E6A24 - .4byte 0x00000100, gCreditsText_TextEditor - - .align 2 -gCreditsEntry_NCLCoordinator:: @ 85E6A2C - .4byte 0x00000100, gCreditsText_NCLCoordinator - - .align 2 -gCreditsEntry_GraphicDesigner:: @ 85E6A34 - .4byte 0x00000100, gCreditsText_GraphicDesigner - - .align 2 -gCreditsEntry_NOAProductTesting:: @ 85E6A3C - .4byte 0x00000100, gCreditsText_NOAProductTesting - - .align 2 -gCreditsEntry_HideyukiNakajima:: @ 85E6A44 - .4byte 0x00000000, gCreditsText_HideyukiNakajima - - .align 2 -gCreditsEntry_HidenoriSaeki:: @ 85E6A4C - .4byte 0x00000000, gCreditsText_HidenoriSaeki - - .align 2 -gCreditsEntry_YokoWatanabe:: @ 85E6A54 - .4byte 0x00000000, gCreditsText_YokoWatanabe - - .align 2 -gCreditsEntry_SakaeKimura:: @ 85E6A5C - .4byte 0x00000000, gCreditsText_SakaeKimura - - .align 2 -gCreditsEntry_ChiakiShinkai:: @ 85E6A64 - .4byte 0x00000000, gCreditsText_ChiakiShinkai - - .align 2 -gCreditsEntry_SethMcMahill:: @ 85E6A6C - .4byte 0x00000000, gCreditsText_SethMcMahill - - .align 2 -gCreditsEntry_NobOgasawara:: @ 85E6A74 - .4byte 0x00000000, gCreditsText_NobOgasawara - - .align 2 -gCreditsEntry_TeresaLillygren:: @ 85E6A7C - .4byte 0x00000000, gCreditsText_TeresaLillygren - - .align 2 -gCreditsEntry_KimikoNakamichi:: @ 85E6A84 - .4byte 0x00000000, gCreditsText_KimikoNakamichi - - .align 2 -gCreditsEntry_SouichiYamamoto:: @ 85E6A8C - .4byte 0x00000000, gCreditsText_SouichiYamamoto - - .align 2 -gCreditsEntry_YuichiroIto:: @ 85E6A94 - .4byte 0x00000000, gCreditsText_YuichiroIto - - .align 2 -gCreditsEntry_ThomasHertzog:: @ 85E6A9C - .4byte 0x00000000, gCreditsText_ThomasHertzog - - .align 2 -gCreditsEntry_MikaKurosawa:: @ 85E6AA4 - .4byte 0x00000000, gCreditsText_MikaKurosawa - - .align 2 -gCreditsEntry_NationalFederationBlind:: @ 85E6AAC - .4byte 0x00000000, gCreditsText_NationalFederationBlind - - .align 2 -gCreditsEntry_PatriciaAMaurer:: @ 85E6AB4 - .4byte 0x00000000, gCreditsText_PatriciaAMaurer - - .align 2 -gCreditsEntry_EuropeanBlindUnion:: @ 85E6ABC - .4byte 0x00000000, gCreditsText_EuropeanBlindUnion - - .align 2 -gCreditsEntry_AustralianBrailleAuthority:: @ 85E6AC4 - .4byte 0x00000000, gCreditsText_AustralianBrailleAuthority - - .align 2 -gCreditsEntry_RoyalNewZealandFederationBlind:: @ 85E6ACC - .4byte 0x00000000, gCreditsText_RoyalNewZealandFederationBlind - - .align 2 -gCreditsEntry_MotoyasuTojima:: @ 85E6AD4 - .4byte 0x00000000, gCreditsText_MotoyasuTojima - - .align 2 -gCreditsEntry_NicolaPrattBarlow:: @ 85E6ADC - .4byte 0x00000000, gCreditsText_NicolaPrattBarlow - - .align 2 -gCreditsEntry_ShellieDow:: @ 85E6AE4 - .4byte 0x00000000, gCreditsText_ShellieDow - - .align 2 -gCreditsEntry_ErikJohnson:: @ 85E6AEC - .4byte 0x00000000, gCreditsText_ErikJohnson - - .align 2 -gUnknown_085E6AF4:: @ 85E6AF4 - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_PkmnEmeraldVersion - .4byte gCreditsEntry_Credits - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_Director - .4byte gCreditsEntry_ShigekiMorimoto - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_ArtDirector - .4byte gCreditsEntry_KenSugimori - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_WorldDirector - .4byte gCreditsEntry_JunichiMasuda - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_LeadProgrammer - .4byte gCreditsEntry_HisashiSogabe - .4byte gCreditsEntry_LeadGraphicArtist - .4byte gCreditsEntry_MotofumiFujiwara - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_Programmers - .4byte gCreditsEntry_HisashiSogabe - .4byte gCreditsEntry_TomomichiOhta - .4byte gCreditsEntry_NozomuSaito - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_Programmers - .4byte gCreditsEntry_AkitoMori - .4byte gCreditsEntry_HiroyukiNakamura - .4byte gCreditsEntry_MasaoTaya - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_Programmers - .4byte gCreditsEntry_SatoshiNohara - .4byte gCreditsEntry_MiyukiIwasawa - .4byte gCreditsEntry_YoshinoriMatsuda - .4byte gCreditsEntry_KeitaKagaya - - .4byte gCreditsEntry_Programmers - .4byte gCreditsEntry_TetsuyaWatanabe - .4byte gCreditsEntry_SosukeTamada - .4byte gCreditsEntry_TakenoriOhta - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_GraphicDesigners - .4byte gCreditsEntry_MotofumiFujiwara - .4byte gCreditsEntry_SatoshiOhta - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_GraphicDesigners - .4byte gCreditsEntry_KenkichiToyama - .4byte gCreditsEntry_AsukaIwashita - .4byte gCreditsEntry_TakaoUnno - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_GraphicDesigners - .4byte gCreditsEntry_KenSugimori - .4byte gCreditsEntry_HironobuYoshida - .4byte gCreditsEntry_AimiTomita - .4byte gCreditsEntry_KanakoEo - - .4byte gCreditsEntry_MusicComposition - .4byte gCreditsEntry_GoIchinose - .4byte gCreditsEntry_JunichiMasuda - .4byte gCreditsEntry_MorikazuAoki - .4byte gCreditsEntry_HitomiSato - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_SoundEffectsAndPkmnVoices - .4byte gCreditsEntry_GoIchinose - .4byte gCreditsEntry_MorikazuAoki - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_GameDesigners - .4byte gCreditsEntry_ShigekiMorimoto - .4byte gCreditsEntry_TeruyukiShimoyamada - .4byte gCreditsEntry_TakeshiKawachimaru - .4byte gCreditsEntry_AkihitoTomisawa - - .4byte gCreditsEntry_GameDesigners - .4byte gCreditsEntry_SuguruNakatsui - .4byte gCreditsEntry_TetsujiOhta - .4byte gCreditsEntry_HitomiSato - .4byte gCreditsEntry_KenjiMatsushima - - .4byte gCreditsEntry_GameDesigners - .4byte gCreditsEntry_JunichiMasuda - .4byte gCreditsEntry_KojiNishino - .4byte gCreditsEntry_ShigeruOhmori - .4byte gCreditsEntry_TadashiTakahashi - - .4byte gCreditsEntry_ScenarioPlot - .4byte gCreditsEntry_AkihitoTomisawa - .4byte gCreditsEntry_JunichiMasuda - .4byte gCreditsEntry_KojiNishino - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_Scenario - .4byte gCreditsEntry_AkihitoTomisawa - .4byte gCreditsEntry_HitomiSato - .4byte gCreditsEntry_ToshinobuMatsumiya - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_ScriptDesigners - .4byte gCreditsEntry_TomomichiOhta - .4byte gCreditsEntry_SatoshiNohara - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_MapDesigners - .4byte gCreditsEntry_SuguruNakatsui - .4byte gCreditsEntry_TeruyukiShimoyamada - .4byte gCreditsEntry_ShigeruOhmori - .4byte gCreditsEntry_TetsujiOhta - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_BattleFrontierData - .4byte gCreditsEntry_TetsujiOhta - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_ParametricDesigners - .4byte gCreditsEntry_TeruyukiShimoyamada - .4byte gCreditsEntry_ShigekiMorimoto - .4byte gCreditsEntry_TetsujiOhta - .4byte gCreditsEntry_KojiNishino - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_PokedexText - .4byte gCreditsEntry_KenjiMatsushima - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EnvAndToolPgrms - .4byte gCreditsEntry_HisashiSogabe - .4byte gCreditsEntry_SosukeTamada - .4byte gCreditsEntry_HiroyukiNakamura - .4byte gCreditsEntry_AkitoMori - - .4byte gCreditsEntry_PkmnDesigners - .4byte gCreditsEntry_KenSugimori - .4byte gCreditsEntry_MotofumiFujiwara - .4byte gCreditsEntry_ShigekiMorimoto - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_PkmnDesigners - .4byte gCreditsEntry_HironobuYoshida - .4byte gCreditsEntry_SatoshiOhta - .4byte gCreditsEntry_AsukaIwashita - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_PkmnDesigners - .4byte gCreditsEntry_TakaoUnno - .4byte gCreditsEntry_KanakoEo - .4byte gCreditsEntry_AimiTomita - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_PkmnDesigners - .4byte gCreditsEntry_AtsukoNishida - .4byte gCreditsEntry_MuneoSaito - .4byte gCreditsEntry_RenaYoshikawa - .4byte gCreditsEntry_JunOkutani - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_SupportProgrammers - .4byte gCreditsEntry_SatoshiMitsuhara - .4byte gCreditsEntry_DaisukeHoshino - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_NCLProductTesting - .4byte gCreditsEntry_NCLSuperMarioClub - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_PackageAndManual - .4byte gCreditsEntry_KenSugimori - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_SpecialThanks - .4byte gCreditsEntry_KenjiTominaga - .4byte gCreditsEntry_HirokiEnomoto - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_SpecialThanks - .4byte gCreditsEntry_KazuyaSuyama - .4byte gCreditsEntry_KenjiroIto - .4byte gCreditsEntry_MichikoTakizawa - .4byte gCreditsEntry_MakikoTakada - - .4byte gCreditsEntry_SpecialThanks - .4byte gCreditsEntry_MikikoOhhashi - .4byte gCreditsEntry_TakanaoKondo - .4byte gCreditsEntry_RuiKawaguchi - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_SpecialThanks - .4byte gCreditsEntry_TakahiroOhnishi - .4byte gCreditsEntry_NorihideOkamura - .4byte gCreditsEntry_ShunsukeKohori - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_InfoSupervisors - .4byte gCreditsEntry_KazuyukiTerada - .4byte gCreditsEntry_YuriSakurai - .4byte gCreditsEntry_YumiFunasaka - .4byte gCreditsEntry_NaokoYanase - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_Artwork - .4byte gCreditsEntry_SachikoNakamichi - .4byte gCreditsEntry_FujikoNomura - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_Artwork - .4byte gCreditsEntry_HideyukiNakajima - .4byte gCreditsEntry_HidenoriSaeki - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_Artwork - .4byte gCreditsEntry_YokoWatanabe - .4byte gCreditsEntry_SakaeKimura - .4byte gCreditsEntry_ChiakiShinkai - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_Coordinators - .4byte gCreditsEntry_KazukiYoshihara - .4byte gCreditsEntry_AkiraKinashi - .4byte gCreditsEntry_RetsujiNomoto - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EnglishVersion - .4byte gCreditsEntry_HiroNakamura - .4byte gCreditsEntry_SethMcMahill - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_Translator - .4byte gCreditsEntry_NobOgasawara - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_TextEditor - .4byte gCreditsEntry_TeresaLillygren - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_NCLCoordinator - .4byte gCreditsEntry_KimikoNakamichi - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_Programmers - .4byte gCreditsEntry_TerukiMurakawa - .4byte gCreditsEntry_SouichiYamamoto - .4byte gCreditsEntry_YuichiroIto - .4byte gCreditsEntry_AkiraKinashi - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_GraphicDesigner - .4byte gCreditsEntry_AkiraKinashi - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EnvAndToolPgrms - .4byte gCreditsEntry_TerukiMurakawa - .4byte gCreditsEntry_SouichiYamamoto - .4byte gCreditsEntry_KimikoNakamichi - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_NOAProductTesting - .4byte gCreditsEntry_ThomasHertzog - .4byte gCreditsEntry_ErikJohnson - .4byte gCreditsEntry_MikaKurosawa - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_BrailleCodeCheck - .4byte gCreditsEntry_NationalFederationBlind - .4byte gCreditsEntry_PatriciaAMaurer - .4byte gCreditsEntry_JapanBrailleLibrary - .4byte gCreditsEntry_EuropeanBlindUnion - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_BrailleCodeCheck - .4byte gCreditsEntry_AustralianBrailleAuthority - .4byte gCreditsEntry_RoyalNewZealandFederationBlind - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_SpecialThanks - .4byte gCreditsEntry_HiroyukiUesugi - .4byte gCreditsEntry_MotoyasuTojima - .4byte gCreditsEntry_NicolaPrattBarlow - .4byte gCreditsEntry_ShellieDow - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_TaskManagers - .4byte gCreditsEntry_AzusaTajima - .4byte gCreditsEntry_ShusakuEgami - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_Producers - .4byte gCreditsEntry_HiroyukiJinnai - .4byte gCreditsEntry_HitoshiYamagami - .4byte gCreditsEntry_GakujiNomoto - .4byte gCreditsEntry_HiroakiTsuru - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_ExecutiveDirector - .4byte gCreditsEntry_SatoshiTajiri - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_ExecProducers - .4byte gCreditsEntry_SatoruIwata - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_ExecProducers - .4byte gCreditsEntry_TsunekazIshihara - .4byte gCreditsEntry_EmptyString - .4byte gCreditsEntry_EmptyString - - .align 2 -gUnknown_085E6F68:: @ 85E6F68 struct BgTemplate - .4byte 0x000001C8 - - .align 2 -gUnknown_085E6F6C:: @ 85E6F6C - window_template 0x00, 0x00, 0x09, 0x1e, 0x0c, 0x08, 0x0001 - null_window_template - - .align 2 -gUnknown_085E6F7C:: @ 85E6F7C - .byte 0x68, 0x24, 0x78, 0x24, 0x88, 0x24, 0x00, 0x00 - - .align 2 -gUnknown_085E6F84:: @ 85E6F84 - .2byte 0x0000, 0x0008, 0x0040, 0x0008, 0x0080, 0x0008, 0x00c0, 0x0008, 0xfffe, 0x0000 - - .align 2 -gUnknown_085E6F98:: @ 85E6F98 - .2byte 0x0000, 0x0004, 0x0040, 0x0004, 0x0080, 0x0004, 0x00c0, 0x0004, 0xfffe, 0x0000 - - .align 2 -gUnknown_085E6FAC:: @ 85E6FAC - .2byte 0x0100, 0x0004, 0x0140, 0x0004, 0x0180, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_085E6FBC:: @ 85E6FBC - .2byte 0x0180, 0x001e, 0x0140, 0x001e, 0x0100, 0x001e, 0x0100, 0x001e, 0xffff, 0x0000 - - .align 2 -gUnknown_085E6FD0:: @ 85E6FD0 - .4byte gUnknown_085E6F84 - .4byte gUnknown_085E6F98 - .4byte gUnknown_085E6FAC - .4byte gUnknown_085E6FBC - - .align 2 -gUnknown_085E6FE0:: @ 85E6FE0 - .2byte 0x0000, 0x0008, 0x0040, 0x0008, 0x0080, 0x0008, 0x00c0, 0x0008, 0xfffe, 0x0000 - - .align 2 -gUnknown_085E6FF4:: @ 85E6FF4 - .2byte 0x0000, 0x0004, 0x0040, 0x0004, 0x0080, 0x0004, 0x00c0, 0x0004, 0xfffe, 0x0000 - - .align 2 -gUnknown_085E7008:: @ 85E7008 - .2byte 0x0000, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_085E7010:: @ 85E7010 - .4byte gUnknown_085E6FE0 - .4byte gUnknown_085E6FF4 - .4byte gUnknown_085E7008 - - .align 2 -gUnknown_085E701C:: @ 85E701C - obj_tiles gDecompressionBuffer, 0x1800, 0x03E9 - null_obj_tiles - - .align 2 -gUnknown_085E702C:: @ 85E702C - obj_pal gDecompressionBuffer + 0x1800, 0x03E9 - null_obj_pal - - .align 2 -gUnknown_085E703C:: @ 85E703C - .2byte 0x00a0, 0xc000, 0x0400, 0x0000 - - .align 2 -gUnknown_085E7044:: @ 85E7044 - .2byte 0x0000, 0x0008, 0xffff, 0x0000 - - .align 2 -gUnknown_085E704C:: @ 85E704C - .2byte 0x0040, 0x0008, 0xffff, 0x0000 - - .align 2 -gUnknown_085E7054:: @ 85E7054 - .2byte 0x0080, 0x0008, 0xffff, 0x0000 - - .align 2 -gUnknown_085E705C:: @ 85E705C - .4byte gUnknown_085E7044 - .4byte gUnknown_085E704C - .4byte gUnknown_085E7054 - - .align 2 -gUnknown_085E7068:: @ 85E7068 - spr_template 0x03e9, 0x03e9, gUnknown_085E703C, gUnknown_085E705C, NULL, gDummySpriteAffineAnimTable, sub_81772B8 diff --git a/data/intro_credits_graphics.s b/data/intro_credits_graphics.s deleted file mode 100644 index 7c5726eb89..0000000000 --- a/data/intro_credits_graphics.s +++ /dev/null @@ -1,459 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_085F06E0:: @ 85F06E0 - .incbin "graphics/intro/intro2_grass.gbapal" - - .align 2 -gUnknown_085F0700:: @ 85F0700 - .incbin "graphics/intro/intro2_grass_afternoon.gbapal" - - .align 2 -gUnknown_085F0720:: @ 85F0720 - .incbin "graphics/intro/intro2_grass_night.gbapal" - - .align 2 -gUnknown_085F0740:: @ 85F0740 - .incbin "graphics/intro/intro2_grass.4bpp.lz" - - .align 2 -gUnknown_085F0BC0:: @ 85F0BC0 - .incbin "graphics/intro/intro2_grass_map.bin.lz" - - .align 2 -gUnknown_085F0CFC:: @ 85F0CFC - .incbin "graphics/intro/85F0CFC.gbapal" - - .align 2 -gUnknown_085F0D5C:: @ 85F0D5C - .incbin "graphics/intro/85F0D5C.gbapal" - - .align 2 -gUnknown_085F0DBC:: @ 85F0DBC - .incbin "graphics/intro/intro2_bgclouds.4bpp.lz" - - .align 2 -gUnknown_085F1398:: @ 85F1398 - .incbin "graphics/intro/intro2_bgclouds_map.bin.lz" - - .align 2 -gUnknown_085F1668:: @ 85F1668 - .incbin "graphics/intro/intro2_bgclouds.gbapal" - - .align 2 -gUnknown_085F1688:: @ 85F1688 - .incbin "graphics/intro/intro2_bgclouds_afternoon.gbapal" - - .align 2 -gUnknown_085F16A8:: @ 85F16A8 - .incbin "graphics/intro/intro2_bgclouds2.4bpp.lz" - - .align 2 -gUnknown_085F17E4:: @ 85F17E4 - .incbin "graphics/intro/intro2_bgtrees2.gbapal" - - .align 2 -gUnknown_085F1804:: @ 85F1804 - .incbin "graphics/intro/intro2_bgtrees2_afternoon.gbapal" - - .align 2 -gUnknown_085F1824:: @ 85F1824 - .incbin "graphics/intro/intro2_bgtrees.4bpp.lz" - - .align 2 -gUnknown_085F1EAC:: @ 85F1EAC - .incbin "graphics/intro/intro2_bgtrees_map.bin.lz" - - .align 2 -gUnknown_085F21B0:: @ 85F21B0 - .incbin "graphics/intro/intro2_bgtrees.gbapal" - - .align 2 -gIntro2TreeGfx:: @ 85F21D0 - .incbin "graphics/intro/intro2_bgtreessmall.4bpp.lz" - - .align 2 -gUnknown_085F231C:: @ 85F231C - .incbin "graphics/intro/85F231C.gbapal" - - .align 2 -gUnknown_085F235C:: @ 85F235C - .incbin "graphics/intro/intro2_bgnight.4bpp.lz" - - .align 2 -gUnknown_085F2548:: @ 85F2548 - .incbin "graphics/intro/intro2_bgnight.gbapal" - - .align 2 -gUnknown_085F2568:: @ 85F2568 - .incbin "graphics/intro/intro2_bgnight_map.bin.lz" - - .align 2 -gIntro2NightGfx:: @ 85F2814 - .incbin "graphics/intro/intro2_night.4bpp.lz" - - .align 2 -gIntro2BrendanPal:: @ 85F2898 - .incbin "graphics/intro/intro2_brendan.gbapal" - - .align 2 -gIntro2BrendanGfx:: @ 85F28B8 - .incbin "graphics/intro/intro2_brendan.4bpp.lz" - - .align 2 -gIntro2MayPal:: @ 85F3470 - .incbin "graphics/intro/intro2_may.gbapal" - - .align 2 -gUnknown_085F3490:: @ 85F3490 - .space 0x1E0 - - .align 2 -gIntro2MayGfx:: @ 85F3670 - .incbin "graphics/intro/intro2_may.4bpp.lz" - - .align 2 -gIntro2BicycleGfx:: @ 85F4318 - .incbin "graphics/intro/intro2_bicycle.4bpp.lz" - - .align 2 -gIntro2LatiosPal:: @ 85F4744 - .incbin "graphics/intro/intro2_latios.gbapal" - - .align 2 -gIntro2LatiosGfx:: @ 85F4764 - .incbin "graphics/intro/intro2_latios.4bpp.lz" - - .align 2 -gIntro2LatiasPal:: @ 85F4C08 - .incbin "graphics/intro/intro2_latias.gbapal" - - .align 2 -gIntro2LatiasGfx:: @ 85F4C28 - .incbin "graphics/intro/intro2_latias.4bpp.lz" - - .align 2 -gUnknown_085F504C:: @ 85F504C - spr_template 0x07d0, 0xffff, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_817B62C - - .align 2 -gUnknown_085F5064:: @ 85F5064 - obj_tiles gUnknown_085F16A8, 0x0400, 0x07d0 - null_obj_tiles - - .align 2 -gUnknown_085F5074:: @ 85F5074 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gUnknown_085F507C:: @ 85F507C - obj_image_anim_frame 16, 30 - obj_image_anim_end - - .align 2 -gUnknown_085F5084:: @ 85F5084 - obj_image_anim_frame 20, 30 - obj_image_anim_end - - .align 2 -gUnknown_085F508C:: @ 85F508C - obj_image_anim_frame 22, 30 - obj_image_anim_end - - .align 2 -gUnknown_085F5094:: @ 85F5094 - .4byte gUnknown_085F5074 - .4byte gUnknown_085F507C - .4byte gUnknown_085F5084 - .4byte gUnknown_085F508C - - .align 2 -gUnknown_085F50A4:: @ 85F50A4 - .byte -128, 72, 32, 100 - .2byte 0xC00 - .space 2 - .byte -128, -98, 32, 100 - .2byte 0xC00 - .space 2 - .byte 65, -64, 40, 101 - .2byte 0x800 - .space 2 - .byte 65, 56, 40, 101 - .2byte 0x800 - .space 2 - .byte 18, 100, 44, 102 - .2byte 0x400 - .space 2 - .byte 18, -104, 44, 102 - .2byte 0x400 - .space 2 - .byte 19, 8, 46, 103 - .2byte 0x100 - .space 2 - .byte 19, 56, 46, 103 - .2byte 0x100 - .space 2 - .byte 19, -16, 46, 103 - .2byte 0x100 - .space 2 - - .align 2 -gUnknown_085F50EC:: @ 85F50EC - obj_tiles gIntro2TreeGfx, 0x0400, 0x07d0 - null_obj_tiles - - .align 2 -gUnknown_085F50FC:: @ 85F50FC - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gUnknown_085F5104:: @ 85F5104 - obj_image_anim_frame 16, 30 - obj_image_anim_end - - .align 2 -gUnknown_085F510C:: @ 85F510C - obj_image_anim_frame 24, 30 - obj_image_anim_end - - .align 2 -gUnknown_085F5114:: @ 85F5114 - .4byte gUnknown_085F50FC - .4byte gUnknown_085F5104 - .4byte gUnknown_085F510C - - .align 2 -gUnknown_085F5120:: @ 85F5120 - .byte -128, 16, 88, 100 - .2byte 0x2000 - .space 2 - .byte -128, 80, 88, 100 - .2byte 0x2000 - .space 2 - .byte -128, -112, 88, 100 - .2byte 0x2000 - .space 2 - .byte -128, -48, 88, 100 - .2byte 0x2000 - .space 2 - .byte -95, 40, 88, 101 - .2byte 0x1000 - .space 2 - .byte -95, 104, 88, 101 - .2byte 0x1000 - .space 2 - .byte -95, -88, 88, 101 - .2byte 0x1000 - .space 2 - .byte -95, -24, 88, 101 - .2byte 0x1000 - .space 2 - .byte -94, 56, 88, 102 - .2byte 0x800 - .space 2 - .byte -94, 120, 88, 102 - .2byte 0x800 - .space 2 - .byte -94, -72, 88, 102 - .2byte 0x800 - .space 2 - .byte -94, -8, 88, 102 - .2byte 0x800 - .space 2 - - .align 2 -gUnknown_085F5180:: @ 85F5180 - obj_tiles gIntro2NightGfx, 0x0400, 0x07d0 - null_obj_tiles - - .align 2 -gUnknown_085F5190:: @ 85F5190 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gUnknown_085F5198:: @ 85F5198 - .4byte gUnknown_085F5190 - - .align 2 -gUnknown_085F519C:: @ 85F519C - .byte -128, 24, 88, 100 - .2byte 0x1000 - .space 2 - .byte -128, 64, 88, 100 - .2byte 0x1000 - .space 2 - .byte -128, 104, 88, 100 - .2byte 0x1000 - .space 2 - .byte -128, -112, 88, 100 - .2byte 0x1000 - .space 2 - .byte -128, -72, 88, 100 - .2byte 0x1000 - .space 2 - .byte -128, -32, 88, 100 - .2byte 0x1000 - .space 2 - - .align 2 -gOamData_85F51CC:: @ 85F51CC - .2byte 0x00A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gUnknown_085F51D4:: @ 85F51D4 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 64, 8 - obj_image_anim_frame 128, 8 - obj_image_anim_frame 192, 8 - obj_image_anim_jump 0 - - .align 2 -gUnknown_085F51E8:: @ 85F51E8 - .4byte gUnknown_085F51D4 - - .align 2 -gUnknown_085F51EC:: @ 85F51EC - spr_template 0x03ea, 0x03ea, gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 - - .align 2 -gUnknown_085F5204:: @ 85F5204 - spr_template 0x03eb, 0x03eb, gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 - - .align 2 -gUnknown_085F521C:: @ 85F521C - .2byte 0x40A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gUnknown_085F5224:: @ 85F5224 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 32, 8 - obj_image_anim_frame 64, 8 - obj_image_anim_frame 96, 8 - obj_image_anim_jump 0 - - .align 2 -gUnknown_085F5238:: @ 85F5238 - .4byte gUnknown_085F5224 - - .align 2 -gUnknown_085F523C:: @ 85F523C - spr_template 0x03e9, 0x03ea, gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 - - .align 2 -gUnknown_085F5254:: @ 85F5254 - spr_template 0x03e9, 0x03eb, gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 - - .align 2 -gUnknown_085F526C:: @ 85F526C - .2byte 0x00A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gUnknown_085F5274:: @ 85F5274 - obj_image_anim_frame 0, 16 - obj_image_anim_end - - .align 2 -gUnknown_085F527C:: @ 85F527C - obj_image_anim_frame 64, 16 - obj_image_anim_end - - .align 2 -gUnknown_085F5284:: @ 85F5284 - .4byte gUnknown_085F5274 - .4byte gUnknown_085F527C - - .align 2 -gUnknown_085F528C:: @ 85F528C - spr_template 0x03ec, 0x03ec, gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 - - .align 2 -gUnknown_085F52A4:: @ 85F52A4 - spr_template 0x03ed, 0x03ed, gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 - - .align 2 -gIntro2BrendanSpriteSheet:: @ 85F52BC - obj_tiles gIntro2BrendanNoTurnGfx, 0x2000, 0x03ea - null_obj_tiles - - .align 2 -gIntro2MaySpriteSheet:: @ 85F52CC - obj_tiles gIntro2MayNoTurnGfx, 0x2000, 0x03eb - null_obj_tiles - - .align 2 -gIntro2BicycleSpriteSheet:: @ 85F52DC - obj_tiles gIntro2BicycleGfx, 0x1000, 0x03e9 - null_obj_tiles - - .align 2 -gUnknown_085F52EC:: @ 85F52EC - obj_tiles gIntro2FlygonGfx, 0x1000, 0x03ec - null_obj_tiles - - .align 2 -gIntro2FlygonSpriteSheet:: @ 85F52FC - obj_tiles gIntro2FlygonGfx, 0x1000, 0x03ed - null_obj_tiles - - .align 2 -gUnknown_085F530C:: @ 85F530C - obj_pal gIntro2BrendanNoTurnPal, 0x03ea - obj_pal gIntro2BrendanNoTurnPal, 0x03eb - obj_pal gIntro2FlygonPal, 0x03ec - obj_pal gIntro2FlygonPal, 0x03ed - null_obj_pal - - .align 2 -gUnknown_085F5334:: @ 85F5334 - obj_tiles gIntro2BrendanGfx, 0x3800, 0x03ea - null_obj_tiles - - .align 2 -gUnknown_085F5344:: @ 85F5344 - obj_tiles gIntro2MayGfx, 0x3800, 0x03eb - null_obj_tiles - - .align 2 -gUnknown_085F5354:: @ 85F5354 - obj_tiles gIntro2BicycleGfx, 0x1000, 0x03e9 - null_obj_tiles - - .align 2 -gUnknown_085F5364:: @ 85F5364 - obj_tiles gIntro2LatiosGfx, 0x1000, 0x03ec - null_obj_tiles - - .align 2 -gUnknown_085F5374:: @ 85F5374 - obj_tiles gIntro2LatiasGfx, 0x1000, 0x03ed - null_obj_pal - - .align 2 -gUnknown_085F5384:: @ 85F5384 - obj_pal gIntro2BrendanPal, 0x03ea - obj_pal gIntro2MayPal, 0x03eb - obj_pal gIntro2LatiosPal, 0x03ec - obj_pal gIntro2LatiasPal, 0x03ed - null_obj_pal - - .align 2 -gUnknown_085F53AC:: @ 85F53AC - obj_tiles gIntro2BrendanGfx, 0x2000, 0x03ea - null_obj_tiles - - .align 2 -gUnknown_085F53BC:: @ 85F53BC - obj_tiles gIntro2MayGfx, 0x2000, 0x03eb - null_obj_tiles diff --git a/include/credits.h b/include/credits.h new file mode 100644 index 0000000000..faad1058a1 --- /dev/null +++ b/include/credits.h @@ -0,0 +1,11 @@ +#ifndef GUARD_CREDITS_H +#define GUARD_CREDITS_H + +// Exported type declarations + +// Exported RAM declarations +extern EWRAM_DATA bool8 gHasHallOfFameRecords; + +// Exported ROM declarations + +#endif //GUARD_CREDITS_H diff --git a/include/decompress.h b/include/decompress.h index b7515250a8..34a678cda8 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -28,7 +28,6 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); -extern u8 gDecompressionBuffer[]; u32 sub_8034974(const u8 *ptr); #endif // GUARD_DECOMPRESS_H diff --git a/include/graphics.h b/include/graphics.h index 770a01aded..e0c9431ac0 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2731,7 +2731,7 @@ extern const u8 gIntro1FlygonGfx[]; extern const u16 gIntro3LightningPal[]; extern const u8 gIntroCopyright_Gfx[]; extern const u8 gIntroCopyright_Tilemap[]; -extern const u16 gIntroCopyright_Pal[]; +extern const u16 gIntroCopyright_Pal[16]; extern const u8 gIntro2VolbeatGfx[]; extern const u8 gIntro2TorchicGfx[]; extern const u8 gIntro2ManectricGfx[]; @@ -2760,4 +2760,14 @@ extern const u8 gIntro3RayquazaGfx[]; extern const u8 gIntro3Clouds2Gfx[]; extern const u16 gIntro1GameFreakTextFadePal[]; +//intro/credits graphics +extern const u8 gIntro2BrendanNoTurnGfx[]; +extern const u8 gIntro2MayNoTurnGfx[]; +extern const u16 gIntro2BrendanNoTurnPal[]; +extern const u16 gIntro2FlygonPal[]; +extern const u8 gIntro2FlygonGfx[]; + +//credits +extern const u8 gCreditsCopyrightEnd_Gfx[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/intro_credits_graphics.h b/include/intro_credits_graphics.h index 07c2e51a02..354d62e05c 100644 --- a/include/intro_credits_graphics.h +++ b/include/intro_credits_graphics.h @@ -10,11 +10,18 @@ extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet[]; extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[]; extern const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[]; extern const struct SpritePalette gUnknown_085F530C[]; +extern const struct CompressedSpriteSheet gUnknown_085F5334[]; +extern const struct CompressedSpriteSheet gUnknown_085F5344[]; +extern const struct CompressedSpriteSheet gUnknown_085F5354[]; +extern const struct CompressedSpriteSheet gUnknown_085F53AC[]; +extern const struct CompressedSpriteSheet gUnknown_085F53BC[]; +extern const struct SpritePalette gUnknown_085F5384[]; void load_intro_part2_graphics(u8 a); void sub_817B150(u8 a); +void sub_817B1C8(u8); +void sub_817B3A8(u8); u8 sub_817B3DC(u8 a, u16 b, u16 c, u16 d); -void sub_817B458(u8); void sub_817B540(u8); u8 intro_create_brendan_sprite(s16 a, s16 b); u8 intro_create_may_sprite(s16 a, s16 b); diff --git a/include/pokedex.h b/include/pokedex.h index 236feac45c..91968279eb 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -19,5 +19,6 @@ enum s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); u16 pokedex_count(u8); u16 sub_80C0844(u8); +u16 sub_80C0E9C(u16, s16, s16, u16); #endif // GUARD_POKEDEX_H diff --git a/include/starter_choose.h b/include/starter_choose.h index 61bc177357..18af478aa9 100644 --- a/include/starter_choose.h +++ b/include/starter_choose.h @@ -1,6 +1,11 @@ #ifndef GUARD_STARTER_CHOOSE_H #define GUARD_STARTER_CHOOSE_H +extern const u16 gBirchBagGrassPal[2][16]; +extern const u8 gBirchBagTilemap[]; +extern const u8 gBirchGrassTilemap[]; +extern const u8 gBirchHelpGfx[]; + u16 GetStarterPokemon(u16 chosenStarterId); void CB2_ChooseStarter(void); diff --git a/ld_script.txt b/ld_script.txt index 6bae74b38e..a79e9c05db 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -223,7 +223,7 @@ SECTIONS { src/field_region_map.o(.text); asm/battle_anim_8170478.o(.text); src/hall_of_fame.o(.text); - asm/credits.o(.text); + src/credits.o(.text); src/lottery_corner.o(.text); src/diploma.o(.text); src/berry_tag_screen.o(.text); @@ -233,7 +233,6 @@ SECTIONS { src/pokeblock_feed.o(.text); src/clear_save_data_screen.o(.text); src/intro_credits_graphics.o(.text); - asm/intro_credits_graphics.o(.text); src/evolution_graphics.o(.text); src/bard_music.o(.text); src/fldeff_teleport.o(.text); @@ -499,7 +498,7 @@ SECTIONS { src/field_region_map.o(.rodata); data/battle_anim_8170478.o(.rodata); src/hall_of_fame.o(.rodata); - data/credits.o(.rodata); + src/credits.o(.rodata); src/lottery_corner.o(.rodata); src/diploma.o(.rodata); data/strings.o(.rodata); @@ -509,7 +508,7 @@ SECTIONS { data/braille_puzzles.o(.rodata); src/pokeblock_feed.o(.rodata); src/clear_save_data_screen.o(.rodata); - data/intro_credits_graphics.o(.rodata); + src/intro_credits_graphics.o(.rodata); src/evolution_graphics.o(.rodata); src/bard_music.o(.rodata); data/battle_link_817C95C.o(.rodata); diff --git a/src/credits.c b/src/credits.c new file mode 100644 index 0000000000..168f3e8a3f --- /dev/null +++ b/src/credits.c @@ -0,0 +1,2355 @@ +#include "global.h" +#include "palette.h" +#include "main.h" +#include "task.h" +#include "bg.h" +#include "malloc.h" +#include "window.h" +#include "text.h" +#include "menu.h" +#include "international_string_util.h" +#include "constants/songs.h" +#include "gpu_regs.h" +#include "m4a.h" +#include "constants/rgb.h" +#include "battle_dome_cards.h" +#include "starter_choose.h" +#include "decompress.h" +#include "intro_credits_graphics.h" +#include "sound.h" +#include "trig.h" +#include "graphics.h" +#include "pokedex.h" +#include "constants/vars.h" +#include "event_data.h" +#include "random.h" + +enum +{ + PAGE_TITLE, + PAGE_DIRECTOR, + PAGE_ART_DIRECTOR, + PAGE_WORLD_DIRECTOR, + PAGE_LEAD_PROGRAMMER, + PAGE_PROGRAMMERS_1, + PAGE_PROGRAMMERS_2, + PAGE_PROGRAMMERS_3, + PAGE_PROGRAMMERS_4, + PAGE_GRAPHIC_DESIGNERS_1, + PAGE_GRAPHIC_DESIGNERS_2, + PAGE_GRAPHIC_DESIGNERS_3, + PAGE_MUSIC_COMPOSITION, + PAGE_SOUND_EFFECTS, + PAGE_GAME_DESIGNERS_1, + PAGE_GAME_DESIGNERS_2, + PAGE_GAME_DESIGNERS_3, + PAGE_SCENARIO_PLOT, + PAGE_SCENARIO, + PAGE_SCRIPT_DESIGNERS, + PAGE_MAP_DESIGNERS, + PAGE_BATTLE_FRONTIER_DATA, + PAGE_PARAMETRIC_DESIGNERS, + PAGE_POKEDEX_TEXT, + PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_1, + PAGE_PKMN_DESIGNERS_1, + PAGE_PKMN_DESIGNERS_2, + PAGE_PKMN_DESIGNERS_3, + PAGE_PKMN_DESIGNERS_4, + PAGE_SUPPORT_PROGRAMMERS, + PAGE_NCL_PRODUCT_TESTING, + PAGE_PACKAGE_AND_MANUAL, + PAGE_SPECIAL_THANKS_1, + PAGE_SPECIAL_THANKS_2, + PAGE_SPECIAL_THANKS_3, + PAGE_SPECIAL_THANKS_4, + PAGE_INFORMATION_SUPERVISORS, + PAGE_ARTWORK_1, + PAGE_ARTWORK_2, + PAGE_ARTWORK_3, + PAGE_COORDINATORS, + PAGE_ENGLISH_VERSION, + PAGE_TRANSLATOR, + PAGE_TEXT_EDITOR, + PAGE_NCL_COORDINATOR, + PAGE_PROGRAMMERS_5, + PAGE_GRAPHIC_DESIGNER, + PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_2, + PAGE_NOA_TESTING, + PAGE_BRAILLE_CODE_CHECK_1, + PAGE_BRAILLE_CODE_CHECK_2, + PAGE_SPECIAL_THANKS_5, + PAGE_TASK_MANAGERS, + PAGE_PRODUCERS, + PAGE_EXECUTIVE_DIRECTOR, + PAGE_EXECUTIVE_PRODUCERS_1, + PAGE_EXECUTIVE_PRODUCERS_2, + PAGE_COUNT +}; + +#define COLOR_DARK_GREEN RGB(7, 11, 6) +#define COLOR_LIGHT_GREEN RGB(13, 20, 12) + +enum +{ + TDA_0 = 0, + TDA_TASK_C_ID = 1, + TDA_TASK_E_ID = 2, + TDA_TASK_D_ID = 3, + TDA_4 = 4, + TDA_PLAYER_CYCLIST = 5, + TDA_RIVAL_CYCLIST = 6, + TDA_7 = 7, // Has something to do with the bike scene + TDA_11 = 11, // Gets set depending on whether the bike or the grass scene should be shown + TDA_12 = 12, + TDA_13 = 13, + TDA_14 = 14, + TDA_TASK_B_ID = 15, + + // Appears to be responsible for text + TDB_0 = 0, + TDB_TASK_A_ID = 1, + TDB_CURRENT_PAGE = 2, + TDB_3 = 3, + + TDC_0 = 0, + TDC_1 = 1, + TDC_2 = 2, + TDC_3 = 3, + TDC_4 = 4, + TDC_5 = 5, + + TDD_STATE = 0, + TDD_TASK_A_ID = 1, + TDD_2 = 2, + TDD_3 = 3, + + TDE_0 = 0, + TDE_1 = 1, + TDE_TASK_A_ID = 2, +}; + +struct Unk201C000 +{ + u16 unk0[71]; + u16 unk8E; + u16 unk90; + u16 unk92; + u16 unk94; + u16 unk96[386]; + u16 unk39A; + u16 unk39C[7]; +}; + +struct CreditsEntry +{ + u8 var_0; + u8 var_1; + const u8 *text; +}; + +static EWRAM_DATA s16 gUnknown_0203BCE0 = 0; +static EWRAM_DATA u16 gUnknown_0203BCE2 = 0; // TASK A +EWRAM_DATA bool8 gHasHallOfFameRecords = 0; +static EWRAM_DATA u8 gUnknown_0203BCE5 = 0; +static EWRAM_DATA struct Unk201C000 *gUnknown_0203BCE8 = {0}; + +static const u16 gUnknown_085E56F0[][16] = +{ + INCBIN_U16("graphics/credits/credits_1.gbapal"), + INCBIN_U16("graphics/credits/credits_2.gbapal"), + INCBIN_U16("graphics/credits/credits_3.gbapal"), + INCBIN_U16("graphics/credits/credits_4.gbapal"), +}; + +static const u8 gCreditsCopyrightEnd_Gfx[] = INCBIN_U8("graphics/credits/the_end_copyright.4bpp.lz"); + +static void sub_81772B8(struct Sprite *sprite); + +static const u8 gUnknown_085E5BAC[] = +{ + 0, 1, 0, + 0xFF, 1, 0xFF, + 0xFF, 1, 0xFF, + 0xFF, 1, 0xFF, + 0xFF, 1, 0xFF, +}; + +static const u8 gUnknown_085E5BBB[] = +{ + 1, 0xFF, 1, + 1, 0xFF, 1, + 1, 2, 1, + 1, 0xFF, 1, + 1, 0xFF, 1, +}; + +static const u8 gUnknown_085E5BCA[] = +{ + 1, 0, 0, + 1, 0xFF, 0xFF, + 1, 2, 2, + 1, 0xFF, 0xFF, + 1, 0x80, 0x80, +}; + +static const u8 gUnknown_085E5BD9[] = +{ + 1, 3, 1, + 1, 4, 1, + 1, 5, 1, + 1, 0xC4, 1, + 1, 0xC3, 1, +}; + +static const u8 gUnknown_085E5BE8[] = +{ + 1, 6, 7, + 1, 8, 9, + 1, 0xFF, 1, + 1, 0x88, 0x89, + 1, 0x86, 0x87, +}; + +static const u8 gCreditsText_EmptyString[] = _(""); +static const u8 gCreditsText_PkmnEmeraldVersion[] = _("POKéMON EMERALD VERSION"); +static const u8 gCreditsText_Credits[] = _("Credits"); +static const u8 gCreditsText_ExecutiveDirector[] = _("Executive Director"); +static const u8 gCreditsText_Director[] = _("Director"); +static const u8 gCreditsText_ArtDirector[] = _("Art Director"); +static const u8 gCreditsText_BattleDirector[] = _("Battle Director"); +static const u8 gCreditsText_MainProgrammer[] = _("Main Programmer"); +static const u8 gCreditsText_BattleSystemPgrms[] = _("Battle System Programmers"); +static const u8 gCreditsText_FieldSystemPgrms[] = _("Field System Programmer"); +static const u8 gCreditsText_Programmers[] = _("Programmers"); +static const u8 gCreditsText_MainGraphicDesigner[] = _("Main Graphic Designer"); +static const u8 gCreditsText_GraphicDesigners[] = _("Graphic Designers"); +static const u8 gCreditsText_PkmnDesigners[] = _("POKéMON Designers"); +static const u8 gCreditsText_MusicComposition[] = _("Music Composition"); +static const u8 gCreditsText_SoundEffectsAndPkmnVoices[] = _("Sound Effects & POKéMON Voices"); +static const u8 gCreditsText_GameDesigners[] = _("Game Designers"); +static const u8 gCreditsText_ScenarioPlot[] = _("Scenario Plot"); +static const u8 gCreditsText_Scenario[] = _("Scenario"); +static const u8 gCreditsText_ScriptDesigners[] = _("Script Designers"); +static const u8 gCreditsText_MapDesigners[] = _("Map Designers"); +static const u8 gCreditsText_MapDataDesigners[] = _("Map Data Designers"); +static const u8 gCreditsText_ParametricDesigners[] = _("Parametric Designers"); +static const u8 gCreditsText_PokedexText[] = _("POKéDEX Text"); +static const u8 gCreditsText_EnvAndToolPgrms[] = _("Environment & Tool Programmers"); +static const u8 gCreditsText_NCLProductTesting[] = _("NCL Product Testing"); +static const u8 gCreditsText_SpecialThanks[] = _("Special Thanks"); +static const u8 gCreditsText_Coordinators[] = _("Coordinators"); +static const u8 gCreditsText_Producers[] = _("Producers"); +static const u8 gCreditsText_ExecProducers[] = _("Executive Producers"); +static const u8 gCreditsText_InfoSupervisors[] = _("Information Supervisors"); +static const u8 gCreditsText_TaskManagers[] = _("Task Managers"); +static const u8 gCreditsText_BrailleCodeCheck[] = _("Braille Code Check"); +static const u8 gCreditsText_WorldDirector[] = _("World Director"); +static const u8 gCreditsText_BattleFrontierData[] = _("Battle Frontier Data"); +static const u8 gCreditsText_SupportProgrammers[] = _("Support Programmers"); +static const u8 gCreditsText_Artwork[] = _("Artwork"); +static const u8 gCreditsText_LeadProgrammer[] = _("Lead Programmer"); +static const u8 gCreditsText_LeadGraphicArtist[] = _("Lead Graphic Artist"); +static const u8 gCreditsText_SatoshiTajiri[] = _("Satoshi Tajiri"); +static const u8 gCreditsText_JunichiMasuda[] = _("Junichi Masuda"); +static const u8 gCreditsText_KenSugimori[] = _("Ken Sugimori"); +static const u8 gCreditsText_ShigekiMorimoto[] = _("Shigeki Morimoto"); +static const u8 gCreditsText_TetsuyaWatanabe[] = _("Tetsuya Watanabe"); +static const u8 gCreditsText_HisashiSogabe[] = _("Hisashi Sogabe"); +static const u8 gCreditsText_SosukeTamada[] = _("Sosuke Tamada"); +static const u8 gCreditsText_AkitoMori[] = _("Akito Mori"); +static const u8 gCreditsText_KeitaKagaya[] = _("Keita Kagaya"); +static const u8 gCreditsText_YoshinoriMatsuda[] = _("Yoshinori Matsuda"); +static const u8 gCreditsText_HiroyukiNakamura[] = _("Hiroyuki Nakamura"); +static const u8 gCreditsText_MasaoTaya[] = _("Masao Taya"); +static const u8 gCreditsText_SatoshiNohara[] = _("Satoshi Nohara"); +static const u8 gCreditsText_TomomichiOhta[] = _("Tomomichi Ohta"); +static const u8 gCreditsText_MiyukiIwasawa[] = _("Miyuki Iwasawa"); +static const u8 gCreditsText_TakenoriOhta[] = _("Takenori Ohta"); +static const u8 gCreditsText_HironobuYoshida[] = _("Hironobu Yoshida"); +static const u8 gCreditsText_MotofumiFujiwara[] = _("Motofumi Fujiwara"); +static const u8 gCreditsText_SatoshiOhta[] = _("Satoshi Ohta"); +static const u8 gCreditsText_AsukaIwashita[] = _("Asuka Iwashita"); +static const u8 gCreditsText_AimiTomita[] = _("Aimi Tomita"); +static const u8 gCreditsText_TakaoUnno[] = _("Takao Unno"); +static const u8 gCreditsText_KanakoEo[] = _("Kanako Eo"); +static const u8 gCreditsText_JunOkutani[] = _("Jun Okutani"); +static const u8 gCreditsText_AtsukoNishida[] = _("Atsuko Nishida"); +static const u8 gCreditsText_MuneoSaito[] = _("Muneo Saito"); +static const u8 gCreditsText_RenaYoshikawa[] = _("Rena Yoshikawa"); +static const u8 gCreditsText_GoIchinose[] = _("Go Ichinose"); +static const u8 gCreditsText_MorikazuAoki[] = _("Morikazu Aoki"); +static const u8 gCreditsText_KojiNishino[] = _("Koji Nishino"); +static const u8 gCreditsText_KenjiMatsushima[] = _("Kenji Matsushima"); +static const u8 gCreditsText_TetsujiOhta[] = _("Tetsuji Ohta"); +static const u8 gCreditsText_HitomiSato[] = _("Hitomi Sato"); +static const u8 gCreditsText_TakeshiKawachimaru[] = _("Takeshi Kawachimaru"); +static const u8 gCreditsText_TeruyukiShimoyamada[] = _("Teruyuki Shimoyamada"); +static const u8 gCreditsText_ShigeruOhmori[] = _("Shigeru Ohmori"); +static const u8 gCreditsText_TadashiTakahashi[] = _("Tadashi Takahashi"); +static const u8 gCreditsText_ToshinobuMatsumiya[] = _("Toshinobu Matsumiya"); +static const u8 gCreditsText_AkihitoTomisawa[] = _("Akihito Tomisawa"); +static const u8 gCreditsText_HirokiEnomoto[] = _("Hiroki Enomoto"); +static const u8 gCreditsText_KazuyukiTerada[] = _("Kazuyuki Terada"); +static const u8 gCreditsText_YuriSakurai[] = _("Yuri Sakurai"); +static const u8 gCreditsText_HiromiSagawa[] = _("Hiromi Sagawa"); +static const u8 gCreditsText_KenjiTominaga[] = _("Kenji Tominaga"); +static const u8 gCreditsText_YoshioTajiri[] = _("Yoshio Tajiri"); +static const u8 gCreditsText_TeikoSasaki[] = _("Teiko Sasaki"); +static const u8 gCreditsText_SachikoHamano[] = _("Sachiko Hamano"); +static const u8 gCreditsText_ChieMatsumiya[] = _("Chie Matsumiya"); +static const u8 gCreditsText_AkikoShinozaki[] = _("Akiko Shinozaki"); +static const u8 gCreditsText_AstukoFujii[] = _("Astuko Fujii"); +static const u8 gCreditsText_NozomuSaito[] = _("Nozomu Saito"); +static const u8 gCreditsText_KenkichiToyama[] = _("Kenkichi Toyama"); +static const u8 gCreditsText_SuguruNakatsui[] = _("Suguru Nakatsui"); +static const u8 gCreditsText_YumiFunasaka[] = _("Yumi Funasaka"); +static const u8 gCreditsText_NaokoYanase[] = _("Naoko Yanase"); +static const u8 gCreditsText_NCLSuperMarioClub[] = _("NCL Super Mario Club"); +static const u8 gCreditsText_AtsushiTada[] = _("Atsushi Tada"); +static const u8 gCreditsText_TakahiroOhnishi[] = _("Takahiro Ohnishi"); +static const u8 gCreditsText_NorihideOkamura[] = _("Norihide Okamura"); +static const u8 gCreditsText_HiroNakamura[] = _("Hiro Nakamura"); +static const u8 gCreditsText_HiroyukiUesugi[] = _("Hiroyuki Uesugi"); +static const u8 gCreditsText_TerukiMurakawa[] = _("Teruki Murakawa"); +static const u8 gCreditsText_AkiraKinashi[] = _("Akira Kinashi"); +static const u8 gCreditsText_MichikoTakizawa[] = _("Michiko Takizawa"); +static const u8 gCreditsText_MakikoTakada[] = _("Makiko Takada"); +static const u8 gCreditsText_TakanaoKondo[] = _("Takanao Kondo"); +static const u8 gCreditsText_AiMashima[] = _("Ai Mashima"); +static const u8 gCreditsText_GakujiNomoto[] = _("Gakuji Nomoto"); +static const u8 gCreditsText_TakehiroIzushi[] = _("Takehiro Izushi"); +static const u8 gCreditsText_HitoshiYamagami[] = _("Hitoshi Yamagami"); +static const u8 gCreditsText_KyokoWatanabe[] = _("Kyoko Watanabe"); +static const u8 gCreditsText_TakaoNakano[] = _("Takao Nakano"); +static const u8 gCreditsText_HiroyukiJinnai[] = _("Hiroyuki Jinnai"); +static const u8 gCreditsText_HiroakiTsuru[] = _("Hiroaki Tsuru"); +static const u8 gCreditsText_TsunekazIshihara[] = _("Tsunekaz Ishihara"); +static const u8 gCreditsText_SatoruIwata[] = _("Satoru Iwata"); +static const u8 gCreditsText_KazuyaSuyama[] = _("Kazuya Suyama"); +static const u8 gCreditsText_SatoshiMitsuhara[] = _("Satoshi Mitsuhara"); +static const u8 gCreditsText_JapanBrailleLibrary[] = _("Japan Braille Library"); +static const u8 gCreditsText_TomotakaKomura[] = _("Tomotaka Komura"); +static const u8 gCreditsText_MikikoOhhashi[] = _("Mikiko Ohhashi"); +static const u8 gCreditsText_DaisukeHoshino[] = _("Daisuke Hoshino"); +static const u8 gCreditsText_KenjiroIto[] = _("Kenjiro Ito"); +static const u8 gCreditsText_RuiKawaguchi[] = _("Rui Kawaguchi"); +static const u8 gCreditsText_ShunsukeKohori[] = _("Shunsuke Kohori"); +static const u8 gCreditsText_SachikoNakamichi[] = _("Sachiko Nakamichi"); +static const u8 gCreditsText_FujikoNomura[] = _("Fujiko Nomura"); +static const u8 gCreditsText_KazukiYoshihara[] = _("Kazuki Yoshihara"); +static const u8 gCreditsText_RetsujiNomoto[] = _("Retsuji Nomoto"); +static const u8 gCreditsText_AzusaTajima[] = _("Azusa Tajima"); +static const u8 gCreditsText_ShusakuEgami[] = _("Shusaku Egami"); +static const u8 gCreditsText_PackageAndManual[] = _("Package & Manual Illustration"); +static const u8 gCreditsText_EnglishVersion[] = _("English Version Coordinators"); +static const u8 gCreditsText_Translator[] = _("Translator"); +static const u8 gCreditsText_TextEditor[] = _("Text Editor"); +static const u8 gCreditsText_NCLCoordinator[] = _("NCL Coordinator"); +static const u8 gCreditsText_GraphicDesigner[] = _("Graphic Designer"); +static const u8 gCreditsText_NOAProductTesting[] = _("NOA Product Testing"); +static const u8 gCreditsText_HideyukiNakajima[] = _("Hideyuki Nakajima"); +static const u8 gCreditsText_HidenoriSaeki[] = _("Hidenori Saeki"); +static const u8 gCreditsText_YokoWatanabe[] = _("Yoko Watanabe"); +static const u8 gCreditsText_SakaeKimura[] = _("Sakae Kimura"); +static const u8 gCreditsText_ChiakiShinkai[] = _("Chiaki Shinkai"); +static const u8 gCreditsText_SethMcMahill[] = _("Seth McMahill"); +static const u8 gCreditsText_NobOgasawara[] = _("Nob Ogasawara"); +static const u8 gCreditsText_TeresaLillygren[] = _("Teresa Lillygren"); +static const u8 gCreditsText_KimikoNakamichi[] = _("Kimiko Nakamichi"); +static const u8 gCreditsText_SouichiYamamoto[] = _("Souichi Yamamoto"); +static const u8 gCreditsText_YuichiroIto[] = _("Yuichiro Ito"); +static const u8 gCreditsText_ThomasHertzog[] = _("Thomas Hertzog"); +static const u8 gCreditsText_MikaKurosawa[] = _("Mika Kurosawa"); +static const u8 gCreditsText_NationalFederationBlind[] = _("National Federation of the Blind"); +static const u8 gCreditsText_PatriciaAMaurer[] = _("Patricia A. Maurer"); +static const u8 gCreditsText_EuropeanBlindUnion[] = _("European Blind Union"); +static const u8 gCreditsText_AustralianBrailleAuthority[] = _("Australian Braille Authority"); +static const u8 gCreditsText_RoyalNewZealandFederationBlind[] = _("Royal New Zealand Federation for the Blind"); +static const u8 gCreditsText_MotoyasuTojima[] = _("Motoyasu Tojima"); +static const u8 gCreditsText_NicolaPrattBarlow[] = _("Nicola Pratt-Barlow"); +static const u8 gCreditsText_ShellieDow[] = _("Shellie Dow"); +static const u8 gCreditsText_ErikJohnson[] = _("Erik Johnson"); +static const struct CreditsEntry gCreditsEntry_EmptyString[] = {0, 0, gCreditsText_EmptyString}; +static const struct CreditsEntry gCreditsEntry_PkmnEmeraldVersion[] = {7, 1, gCreditsText_PkmnEmeraldVersion}; +static const struct CreditsEntry gCreditsEntry_Credits[] = {11, 1, gCreditsText_Credits}; +static const struct CreditsEntry gCreditsEntry_ExecutiveDirector[] = {8, 1, gCreditsText_ExecutiveDirector}; +static const struct CreditsEntry gCreditsEntry_Director[] = {12, 1, gCreditsText_Director}; +static const struct CreditsEntry gCreditsEntry_ArtDirector[] = {10, 1, gCreditsText_ArtDirector}; +static const struct CreditsEntry gCreditsEntry_BattleDirector[] = {10, 1, gCreditsText_BattleDirector}; +static const struct CreditsEntry gCreditsEntry_MainProgrammer[] = {10, 1, gCreditsText_MainProgrammer}; +static const struct CreditsEntry gCreditsEntry_BattleSystemPgrms[] = {8, 1, gCreditsText_BattleSystemPgrms}; +static const struct CreditsEntry gCreditsEntry_FieldSystemPgrms[] = {7, 1, gCreditsText_FieldSystemPgrms}; +static const struct CreditsEntry gCreditsEntry_Programmers[] = {12, 1, gCreditsText_Programmers}; +static const struct CreditsEntry gCreditsEntry_MainGraphicDesigner[] = {7, 1, gCreditsText_MainGraphicDesigner}; +static const struct CreditsEntry gCreditsEntry_GraphicDesigners[] = {9, 1, gCreditsText_GraphicDesigners}; +static const struct CreditsEntry gCreditsEntry_PkmnDesigners[] = {10, 1, gCreditsText_PkmnDesigners}; +static const struct CreditsEntry gCreditsEntry_MusicComposition[] = {13, 1, gCreditsText_MusicComposition}; +static const struct CreditsEntry gCreditsEntry_SoundEffectsAndPkmnVoices[] = {4, 1, gCreditsText_SoundEffectsAndPkmnVoices}; +static const struct CreditsEntry gCreditsEntry_GameDesigners[] = {11, 1, gCreditsText_GameDesigners}; +static const struct CreditsEntry gCreditsEntry_ScenarioPlot[] = {11, 1, gCreditsText_ScenarioPlot}; +static const struct CreditsEntry gCreditsEntry_Scenario[] = {13, 1, gCreditsText_Scenario}; +static const struct CreditsEntry gCreditsEntry_ScriptDesigners[] = {10, 1, gCreditsText_ScriptDesigners}; +static const struct CreditsEntry gCreditsEntry_MapDesigners[] = {11, 1, gCreditsText_MapDesigners}; +static const struct CreditsEntry gCreditsEntry_MapDataDesigners[] = {9, 1, gCreditsText_MapDataDesigners}; +static const struct CreditsEntry gCreditsEntry_ParametricDesigners[] = {9, 1, gCreditsText_ParametricDesigners}; +static const struct CreditsEntry gCreditsEntry_PokedexText[] = {11, 1, gCreditsText_PokedexText}; +static const struct CreditsEntry gCreditsEntry_EnvAndToolPgrms[] = {6, 1, gCreditsText_EnvAndToolPgrms}; +static const struct CreditsEntry gCreditsEntry_NCLProductTesting[] = {11, 1, gCreditsText_NCLProductTesting}; +static const struct CreditsEntry gCreditsEntry_SpecialThanks[] = {10, 1, gCreditsText_SpecialThanks}; +static const struct CreditsEntry gCreditsEntry_Coordinators[] = {11, 1, gCreditsText_Coordinators}; +static const struct CreditsEntry gCreditsEntry_Producers[] = {11, 1, gCreditsText_Producers}; +static const struct CreditsEntry gCreditsEntry_ExecProducers[] = {7, 1, gCreditsText_ExecProducers}; +static const struct CreditsEntry gCreditsEntry_InfoSupervisors[] = {10, 1, gCreditsText_InfoSupervisors}; +static const struct CreditsEntry gCreditsEntry_TaskManagers[] = {8, 1, gCreditsText_TaskManagers}; +static const struct CreditsEntry gCreditsEntry_BrailleCodeCheck[] = {10, 1, gCreditsText_BrailleCodeCheck}; +static const struct CreditsEntry gCreditsEntry_WorldDirector[] = {10, 1, gCreditsText_WorldDirector}; +static const struct CreditsEntry gCreditsEntry_BattleFrontierData[] = {8, 1, gCreditsText_BattleFrontierData}; +static const struct CreditsEntry gCreditsEntry_SupportProgrammers[] = {10, 1, gCreditsText_SupportProgrammers}; +static const struct CreditsEntry gCreditsEntry_Artwork[] = {12, 1, gCreditsText_Artwork}; +static const struct CreditsEntry gCreditsEntry_LeadProgrammer[] = {10, 1, gCreditsText_LeadProgrammer}; +static const struct CreditsEntry gCreditsEntry_LeadGraphicArtist[] = {9, 1, gCreditsText_LeadGraphicArtist}; +static const struct CreditsEntry gCreditsEntry_SatoshiTajiri[] = {11, 0, gCreditsText_SatoshiTajiri}; +static const struct CreditsEntry gCreditsEntry_JunichiMasuda[] = {11, 0, gCreditsText_JunichiMasuda}; +static const struct CreditsEntry gCreditsEntry_KenSugimori[] = {11, 0, gCreditsText_KenSugimori}; +static const struct CreditsEntry gCreditsEntry_ShigekiMorimoto[] = {11, 0, gCreditsText_ShigekiMorimoto}; +static const struct CreditsEntry gCreditsEntry_TetsuyaWatanabe[] = {11, 0, gCreditsText_TetsuyaWatanabe}; +static const struct CreditsEntry gCreditsEntry_HisashiSogabe[] = {11, 0, gCreditsText_HisashiSogabe}; +static const struct CreditsEntry gCreditsEntry_SosukeTamada[] = {11, 0, gCreditsText_SosukeTamada}; +static const struct CreditsEntry gCreditsEntry_AkitoMori[] = {11, 0, gCreditsText_AkitoMori}; +static const struct CreditsEntry gCreditsEntry_KeitaKagaya[] = {11, 0, gCreditsText_KeitaKagaya}; +static const struct CreditsEntry gCreditsEntry_YoshinoriMatsuda[] = {11, 0, gCreditsText_YoshinoriMatsuda}; +static const struct CreditsEntry gCreditsEntry_HiroyukiNakamura[] = {11, 0, gCreditsText_HiroyukiNakamura}; +static const struct CreditsEntry gCreditsEntry_MasaoTaya[] = {11, 0, gCreditsText_MasaoTaya}; +static const struct CreditsEntry gCreditsEntry_SatoshiNohara[] = {11, 0, gCreditsText_SatoshiNohara}; +static const struct CreditsEntry gCreditsEntry_TomomichiOhta[] = {11, 0, gCreditsText_TomomichiOhta}; +static const struct CreditsEntry gCreditsEntry_MiyukiIwasawa[] = {11, 0, gCreditsText_MiyukiIwasawa}; +static const struct CreditsEntry gCreditsEntry_TakenoriOhta[] = {11, 0, gCreditsText_TakenoriOhta}; +static const struct CreditsEntry gCreditsEntry_HironobuYoshida[] = {11, 0, gCreditsText_HironobuYoshida}; +static const struct CreditsEntry gCreditsEntry_MotofumiFujiwara[] = {11, 0, gCreditsText_MotofumiFujiwara}; +static const struct CreditsEntry gCreditsEntry_SatoshiOhta[] = {11, 0, gCreditsText_SatoshiOhta}; +static const struct CreditsEntry gCreditsEntry_AsukaIwashita[] = {11, 0, gCreditsText_AsukaIwashita}; +static const struct CreditsEntry gCreditsEntry_AimiTomita[] = {11, 0, gCreditsText_AimiTomita}; +static const struct CreditsEntry gCreditsEntry_TakaoUnno[] = {11, 0, gCreditsText_TakaoUnno}; +static const struct CreditsEntry gCreditsEntry_KanakoEo[] = {11, 0, gCreditsText_KanakoEo}; +static const struct CreditsEntry gCreditsEntry_JunOkutani[] = {11, 0, gCreditsText_JunOkutani}; +static const struct CreditsEntry gCreditsEntry_AtsukoNishida[] = {11, 0, gCreditsText_AtsukoNishida}; +static const struct CreditsEntry gCreditsEntry_MuneoSaito[] = {11, 0, gCreditsText_MuneoSaito}; +static const struct CreditsEntry gCreditsEntry_RenaYoshikawa[] = {11, 0, gCreditsText_RenaYoshikawa}; +static const struct CreditsEntry gCreditsEntry_GoIchinose[] = {11, 0, gCreditsText_GoIchinose}; +static const struct CreditsEntry gCreditsEntry_MorikazuAoki[] = {11, 0, gCreditsText_MorikazuAoki}; +static const struct CreditsEntry gCreditsEntry_KojiNishino[] = {11, 0, gCreditsText_KojiNishino}; +static const struct CreditsEntry gCreditsEntry_KenjiMatsushima[] = {11, 0, gCreditsText_KenjiMatsushima}; +static const struct CreditsEntry gCreditsEntry_TetsujiOhta[] = {11, 0, gCreditsText_TetsujiOhta}; +static const struct CreditsEntry gCreditsEntry_HitomiSato[] = {11, 0, gCreditsText_HitomiSato}; +static const struct CreditsEntry gCreditsEntry_TakeshiKawachimaru[] = {11, 0, gCreditsText_TakeshiKawachimaru}; +static const struct CreditsEntry gCreditsEntry_TeruyukiShimoyamada[] = {11, 0, gCreditsText_TeruyukiShimoyamada}; +static const struct CreditsEntry gCreditsEntry_ShigeruOhmori[] = {11, 0, gCreditsText_ShigeruOhmori}; +static const struct CreditsEntry gCreditsEntry_TadashiTakahashi[] = {11, 0, gCreditsText_TadashiTakahashi}; +static const struct CreditsEntry gCreditsEntry_ToshinobuMatsumiya[] = {11, 0, gCreditsText_ToshinobuMatsumiya}; +static const struct CreditsEntry gCreditsEntry_AkihitoTomisawa[] = {11, 0, gCreditsText_AkihitoTomisawa}; +static const struct CreditsEntry gCreditsEntry_HirokiEnomoto[] = {11, 0, gCreditsText_HirokiEnomoto}; +static const struct CreditsEntry gCreditsEntry_KazuyukiTerada[] = {11, 0, gCreditsText_KazuyukiTerada}; +static const struct CreditsEntry gCreditsEntry_YuriSakurai[] = {11, 0, gCreditsText_YuriSakurai}; +static const struct CreditsEntry gCreditsEntry_HiromiSagawa[] = {11, 0, gCreditsText_HiromiSagawa}; +static const struct CreditsEntry gCreditsEntry_KenjiTominaga[] = {11, 0, gCreditsText_KenjiTominaga}; +static const struct CreditsEntry gCreditsEntry_YoshioTajiri[] = {11, 0, gCreditsText_YoshioTajiri}; +static const struct CreditsEntry gCreditsEntry_TeikoSasaki[] = {11, 0, gCreditsText_TeikoSasaki}; +static const struct CreditsEntry gCreditsEntry_SachikoHamano[] = {11, 0, gCreditsText_SachikoHamano}; +static const struct CreditsEntry gCreditsEntry_ChieMatsumiya[] = {11, 0, gCreditsText_ChieMatsumiya}; +static const struct CreditsEntry gCreditsEntry_AkikoShinozaki[] = {11, 0, gCreditsText_AkikoShinozaki}; +static const struct CreditsEntry gCreditsEntry_AstukoFujii[] = {11, 0, gCreditsText_AstukoFujii}; +static const struct CreditsEntry gCreditsEntry_NozomuSaito[] = {11, 0, gCreditsText_NozomuSaito}; +static const struct CreditsEntry gCreditsEntry_KenkichiToyama[] = {11, 0, gCreditsText_KenkichiToyama}; +static const struct CreditsEntry gCreditsEntry_SuguruNakatsui[] = {11, 0, gCreditsText_SuguruNakatsui}; +static const struct CreditsEntry gCreditsEntry_YumiFunasaka[] = {11, 0, gCreditsText_YumiFunasaka}; +static const struct CreditsEntry gCreditsEntry_NaokoYanase[] = {11, 0, gCreditsText_NaokoYanase}; +static const struct CreditsEntry gCreditsEntry_NCLSuperMarioClub[] = {11, 0, gCreditsText_NCLSuperMarioClub}; +static const struct CreditsEntry gCreditsEntry_AtsushiTada[] = {11, 0, gCreditsText_AtsushiTada}; +static const struct CreditsEntry gCreditsEntry_TakahiroOhnishi[] = {11, 0, gCreditsText_TakahiroOhnishi}; +static const struct CreditsEntry gCreditsEntry_NorihideOkamura[] = {11, 0, gCreditsText_NorihideOkamura}; +static const struct CreditsEntry gCreditsEntry_HiroNakamura[] = {11, 0, gCreditsText_HiroNakamura}; +static const struct CreditsEntry gCreditsEntry_HiroyukiUesugi[] = {11, 0, gCreditsText_HiroyukiUesugi}; +static const struct CreditsEntry gCreditsEntry_TerukiMurakawa[] = {11, 0, gCreditsText_TerukiMurakawa}; +static const struct CreditsEntry gCreditsEntry_AkiraKinashi[] = {11, 0, gCreditsText_AkiraKinashi}; +static const struct CreditsEntry gCreditsEntry_MichikoTakizawa[] = {11, 0, gCreditsText_MichikoTakizawa}; +static const struct CreditsEntry gCreditsEntry_MakikoTakada[] = {11, 0, gCreditsText_MakikoTakada}; +static const struct CreditsEntry gCreditsEntry_TakanaoKondo[] = {11, 0, gCreditsText_TakanaoKondo}; +static const struct CreditsEntry gCreditsEntry_AiMashima[] = {11, 0, gCreditsText_AiMashima}; +static const struct CreditsEntry gCreditsEntry_GakujiNomoto[] = {11, 0, gCreditsText_GakujiNomoto}; +static const struct CreditsEntry gCreditsEntry_TakehiroIzushi[] = {11, 0, gCreditsText_TakehiroIzushi}; +static const struct CreditsEntry gCreditsEntry_HitoshiYamagami[] = {11, 0, gCreditsText_HitoshiYamagami}; +static const struct CreditsEntry gCreditsEntry_KyokoWatanabe[] = {11, 0, gCreditsText_KyokoWatanabe}; +static const struct CreditsEntry gCreditsEntry_TakaoNakano[] = {11, 0, gCreditsText_TakaoNakano}; +static const struct CreditsEntry gCreditsEntry_HiroyukiJinnai[] = {11, 0, gCreditsText_HiroyukiJinnai}; +static const struct CreditsEntry gCreditsEntry_HiroakiTsuru[] = {11, 0, gCreditsText_HiroakiTsuru}; +static const struct CreditsEntry gCreditsEntry_TsunekazIshihara[] = {11, 0, gCreditsText_TsunekazIshihara}; +static const struct CreditsEntry gCreditsEntry_SatoruIwata[] = {11, 0, gCreditsText_SatoruIwata}; +static const struct CreditsEntry gCreditsEntry_KazuyaSuyama[] = {11, 0, gCreditsText_KazuyaSuyama}; +static const struct CreditsEntry gCreditsEntry_SatoshiMitsuhara[] = {11, 0, gCreditsText_SatoshiMitsuhara}; +static const struct CreditsEntry gCreditsEntry_JapanBrailleLibrary[] = {9, 0, gCreditsText_JapanBrailleLibrary}; +static const struct CreditsEntry gCreditsEntry_TomotakaKomura[] = {11, 0, gCreditsText_TomotakaKomura}; +static const struct CreditsEntry gCreditsEntry_MikikoOhhashi[] = {11, 0, gCreditsText_MikikoOhhashi}; +static const struct CreditsEntry gCreditsEntry_DaisukeHoshino[] = {11, 0, gCreditsText_DaisukeHoshino}; +static const struct CreditsEntry gCreditsEntry_KenjiroIto[] = {11, 0, gCreditsText_KenjiroIto}; +static const struct CreditsEntry gCreditsEntry_RuiKawaguchi[] = {11, 0, gCreditsText_RuiKawaguchi}; +static const struct CreditsEntry gCreditsEntry_ShunsukeKohori[] = {11, 0, gCreditsText_ShunsukeKohori}; +static const struct CreditsEntry gCreditsEntry_SachikoNakamichi[] = {11, 0, gCreditsText_SachikoNakamichi}; +static const struct CreditsEntry gCreditsEntry_FujikoNomura[] = {11, 0, gCreditsText_FujikoNomura}; +static const struct CreditsEntry gCreditsEntry_KazukiYoshihara[] = {11, 0, gCreditsText_KazukiYoshihara}; +static const struct CreditsEntry gCreditsEntry_RetsujiNomoto[] = {11, 0, gCreditsText_RetsujiNomoto}; +static const struct CreditsEntry gCreditsEntry_AzusaTajima[] = {11, 0, gCreditsText_AzusaTajima}; +static const struct CreditsEntry gCreditsEntry_ShusakuEgami[] = {11, 0, gCreditsText_ShusakuEgami}; +static const struct CreditsEntry gCreditsEntry_PackageAndManual[] = {0, 1, gCreditsText_PackageAndManual}; +static const struct CreditsEntry gCreditsEntry_EnglishVersion[] = {0, 1, gCreditsText_EnglishVersion}; +static const struct CreditsEntry gCreditsEntry_Translator[] = {0, 1, gCreditsText_Translator}; +static const struct CreditsEntry gCreditsEntry_TextEditor[] = {0, 1, gCreditsText_TextEditor}; +static const struct CreditsEntry gCreditsEntry_NCLCoordinator[] = {0, 1, gCreditsText_NCLCoordinator}; +static const struct CreditsEntry gCreditsEntry_GraphicDesigner[] = {0, 1, gCreditsText_GraphicDesigner}; +static const struct CreditsEntry gCreditsEntry_NOAProductTesting[] = {0, 1, gCreditsText_NOAProductTesting}; +static const struct CreditsEntry gCreditsEntry_HideyukiNakajima[] = {0, 0, gCreditsText_HideyukiNakajima}; +static const struct CreditsEntry gCreditsEntry_HidenoriSaeki[] = {0, 0, gCreditsText_HidenoriSaeki}; +static const struct CreditsEntry gCreditsEntry_YokoWatanabe[] = {0, 0, gCreditsText_YokoWatanabe}; +static const struct CreditsEntry gCreditsEntry_SakaeKimura[] = {0, 0, gCreditsText_SakaeKimura}; +static const struct CreditsEntry gCreditsEntry_ChiakiShinkai[] = {0, 0, gCreditsText_ChiakiShinkai}; +static const struct CreditsEntry gCreditsEntry_SethMcMahill[] = {0, 0, gCreditsText_SethMcMahill}; +static const struct CreditsEntry gCreditsEntry_NobOgasawara[] = {0, 0, gCreditsText_NobOgasawara}; +static const struct CreditsEntry gCreditsEntry_TeresaLillygren[] = {0, 0, gCreditsText_TeresaLillygren}; +static const struct CreditsEntry gCreditsEntry_KimikoNakamichi[] = {0, 0, gCreditsText_KimikoNakamichi}; +static const struct CreditsEntry gCreditsEntry_SouichiYamamoto[] = {0, 0, gCreditsText_SouichiYamamoto}; +static const struct CreditsEntry gCreditsEntry_YuichiroIto[] = {0, 0, gCreditsText_YuichiroIto}; +static const struct CreditsEntry gCreditsEntry_ThomasHertzog[] = {0, 0, gCreditsText_ThomasHertzog}; +static const struct CreditsEntry gCreditsEntry_MikaKurosawa[] = {0, 0, gCreditsText_MikaKurosawa}; +static const struct CreditsEntry gCreditsEntry_NationalFederationBlind[] = {0, 0, gCreditsText_NationalFederationBlind}; +static const struct CreditsEntry gCreditsEntry_PatriciaAMaurer[] = {0, 0, gCreditsText_PatriciaAMaurer}; +static const struct CreditsEntry gCreditsEntry_EuropeanBlindUnion[] = {0, 0, gCreditsText_EuropeanBlindUnion}; +static const struct CreditsEntry gCreditsEntry_AustralianBrailleAuthority[] = {0, 0, gCreditsText_AustralianBrailleAuthority}; +static const struct CreditsEntry gCreditsEntry_RoyalNewZealandFederationBlind[] = {0, 0, gCreditsText_RoyalNewZealandFederationBlind}; +static const struct CreditsEntry gCreditsEntry_MotoyasuTojima[] = {0, 0, gCreditsText_MotoyasuTojima}; +static const struct CreditsEntry gCreditsEntry_NicolaPrattBarlow[] = {0, 0, gCreditsText_NicolaPrattBarlow}; +static const struct CreditsEntry gCreditsEntry_ShellieDow[] = {0, 0, gCreditsText_ShellieDow}; +static const struct CreditsEntry gCreditsEntry_ErikJohnson[] = {0, 0, gCreditsText_ErikJohnson}; + +#define _ gCreditsEntry_EmptyString +static const struct CreditsEntry *const gCreditsEntryPointerTable[][5] = +{ + { + _, + gCreditsEntry_PkmnEmeraldVersion, + gCreditsEntry_Credits, + _, + _ + }, + { + _, + gCreditsEntry_Director, + gCreditsEntry_ShigekiMorimoto, + _, + _, + }, + { + _, + gCreditsEntry_ArtDirector, + gCreditsEntry_KenSugimori, + _, + _, + }, + { + _, + gCreditsEntry_WorldDirector, + gCreditsEntry_JunichiMasuda, + _, + _, + }, + { + gCreditsEntry_LeadProgrammer, + gCreditsEntry_HisashiSogabe, + gCreditsEntry_LeadGraphicArtist, + gCreditsEntry_MotofumiFujiwara, + _, + }, + { + gCreditsEntry_Programmers, + gCreditsEntry_HisashiSogabe, + gCreditsEntry_TomomichiOhta, + gCreditsEntry_NozomuSaito, + gCreditsEntry_EmptyString, + }, + { + gCreditsEntry_Programmers, + gCreditsEntry_AkitoMori, + gCreditsEntry_HiroyukiNakamura, + gCreditsEntry_MasaoTaya, + _, + }, + { + gCreditsEntry_Programmers, + gCreditsEntry_SatoshiNohara, + gCreditsEntry_MiyukiIwasawa, + gCreditsEntry_YoshinoriMatsuda, + gCreditsEntry_KeitaKagaya, + }, + { + gCreditsEntry_Programmers, + gCreditsEntry_TetsuyaWatanabe, + gCreditsEntry_SosukeTamada, + gCreditsEntry_TakenoriOhta, + _, + }, + { + _, + gCreditsEntry_GraphicDesigners, + gCreditsEntry_MotofumiFujiwara, + gCreditsEntry_SatoshiOhta, + _, + }, + { + gCreditsEntry_GraphicDesigners, + gCreditsEntry_KenkichiToyama, + gCreditsEntry_AsukaIwashita, + gCreditsEntry_TakaoUnno, + _, + }, + { + gCreditsEntry_GraphicDesigners, + gCreditsEntry_KenSugimori, + gCreditsEntry_HironobuYoshida, + gCreditsEntry_AimiTomita, + gCreditsEntry_KanakoEo, + }, + { + gCreditsEntry_MusicComposition, + gCreditsEntry_GoIchinose, + gCreditsEntry_JunichiMasuda, + gCreditsEntry_MorikazuAoki, + gCreditsEntry_HitomiSato, + }, + { + _, + gCreditsEntry_SoundEffectsAndPkmnVoices, + gCreditsEntry_GoIchinose, + gCreditsEntry_MorikazuAoki, + _, + }, + { + gCreditsEntry_GameDesigners, + gCreditsEntry_ShigekiMorimoto, + gCreditsEntry_TeruyukiShimoyamada, + gCreditsEntry_TakeshiKawachimaru, + gCreditsEntry_AkihitoTomisawa, + }, + { + gCreditsEntry_GameDesigners, + gCreditsEntry_SuguruNakatsui, + gCreditsEntry_TetsujiOhta, + gCreditsEntry_HitomiSato, + gCreditsEntry_KenjiMatsushima, + }, + { + gCreditsEntry_GameDesigners, + gCreditsEntry_JunichiMasuda, + gCreditsEntry_KojiNishino, + gCreditsEntry_ShigeruOhmori, + gCreditsEntry_TadashiTakahashi, + }, + { + gCreditsEntry_ScenarioPlot, + gCreditsEntry_AkihitoTomisawa, + gCreditsEntry_JunichiMasuda, + gCreditsEntry_KojiNishino, + _, + }, + { + gCreditsEntry_Scenario, + gCreditsEntry_AkihitoTomisawa, + gCreditsEntry_HitomiSato, + gCreditsEntry_ToshinobuMatsumiya, + _, + }, + { + gCreditsEntry_ScriptDesigners, + gCreditsEntry_TomomichiOhta, + gCreditsEntry_SatoshiNohara, + _, + _, + }, + { + gCreditsEntry_MapDesigners, + gCreditsEntry_SuguruNakatsui, + gCreditsEntry_TeruyukiShimoyamada, + gCreditsEntry_ShigeruOhmori, + gCreditsEntry_TetsujiOhta, + }, + { + _, + gCreditsEntry_BattleFrontierData, + gCreditsEntry_TetsujiOhta, + _, + _, + }, + { + gCreditsEntry_ParametricDesigners, + gCreditsEntry_TeruyukiShimoyamada, + gCreditsEntry_ShigekiMorimoto, + gCreditsEntry_TetsujiOhta, + gCreditsEntry_KojiNishino, + }, + { + _, + gCreditsEntry_PokedexText, + gCreditsEntry_KenjiMatsushima, + _, + _, + }, + { + gCreditsEntry_EnvAndToolPgrms, + gCreditsEntry_HisashiSogabe, + gCreditsEntry_SosukeTamada, + gCreditsEntry_HiroyukiNakamura, + gCreditsEntry_AkitoMori, + }, + { + gCreditsEntry_PkmnDesigners, + gCreditsEntry_KenSugimori, + gCreditsEntry_MotofumiFujiwara, + gCreditsEntry_ShigekiMorimoto, + _, + }, + { + gCreditsEntry_PkmnDesigners, + gCreditsEntry_HironobuYoshida, + gCreditsEntry_SatoshiOhta, + gCreditsEntry_AsukaIwashita, + _, + }, + { + gCreditsEntry_PkmnDesigners, + gCreditsEntry_TakaoUnno, + gCreditsEntry_KanakoEo, + gCreditsEntry_AimiTomita, + _, + }, + { + gCreditsEntry_PkmnDesigners, + gCreditsEntry_AtsukoNishida, + gCreditsEntry_MuneoSaito, + gCreditsEntry_RenaYoshikawa, + gCreditsEntry_JunOkutani, + }, + { + _, + gCreditsEntry_SupportProgrammers, + gCreditsEntry_SatoshiMitsuhara, + gCreditsEntry_DaisukeHoshino, + _, + }, + { + _, + gCreditsEntry_NCLProductTesting, + gCreditsEntry_NCLSuperMarioClub, + _, + _, + }, + { + _, + gCreditsEntry_PackageAndManual, + gCreditsEntry_KenSugimori, + _, + _, + }, + { + _, + gCreditsEntry_SpecialThanks, + gCreditsEntry_KenjiTominaga, + gCreditsEntry_HirokiEnomoto, + _, + }, + { + gCreditsEntry_SpecialThanks, + gCreditsEntry_KazuyaSuyama, + gCreditsEntry_KenjiroIto, + gCreditsEntry_MichikoTakizawa, + gCreditsEntry_MakikoTakada, + }, + { + gCreditsEntry_SpecialThanks, + gCreditsEntry_MikikoOhhashi, + gCreditsEntry_TakanaoKondo, + gCreditsEntry_RuiKawaguchi, + _, + }, + { + gCreditsEntry_SpecialThanks, + gCreditsEntry_TakahiroOhnishi, + gCreditsEntry_NorihideOkamura, + gCreditsEntry_ShunsukeKohori, + _, + }, + { + gCreditsEntry_InfoSupervisors, + gCreditsEntry_KazuyukiTerada, + gCreditsEntry_YuriSakurai, + gCreditsEntry_YumiFunasaka, + gCreditsEntry_NaokoYanase, + }, + { + _, + gCreditsEntry_Artwork, + gCreditsEntry_SachikoNakamichi, + gCreditsEntry_FujikoNomura, + _, + }, + { + _, + gCreditsEntry_Artwork, + gCreditsEntry_HideyukiNakajima, + gCreditsEntry_HidenoriSaeki, + _, + }, + { + gCreditsEntry_Artwork, + gCreditsEntry_YokoWatanabe, + gCreditsEntry_SakaeKimura, + gCreditsEntry_ChiakiShinkai, + _, + }, + { + gCreditsEntry_Coordinators, + gCreditsEntry_KazukiYoshihara, + gCreditsEntry_AkiraKinashi, + gCreditsEntry_RetsujiNomoto, + _, + }, + { + _, + gCreditsEntry_EnglishVersion, + gCreditsEntry_HiroNakamura, + gCreditsEntry_SethMcMahill, + _, + }, + { + _, + gCreditsEntry_Translator, + gCreditsEntry_NobOgasawara, + _, + _, + }, + { + _, + gCreditsEntry_TextEditor, + gCreditsEntry_TeresaLillygren, + _, + _, + }, + { + _, + gCreditsEntry_NCLCoordinator, + gCreditsEntry_KimikoNakamichi, + _, + _, + }, + { + gCreditsEntry_Programmers, + gCreditsEntry_TerukiMurakawa, + gCreditsEntry_SouichiYamamoto, + gCreditsEntry_YuichiroIto, + gCreditsEntry_AkiraKinashi, + }, + { + _, + gCreditsEntry_GraphicDesigner, + gCreditsEntry_AkiraKinashi, + _, + _, + }, + { + gCreditsEntry_EnvAndToolPgrms, + gCreditsEntry_TerukiMurakawa, + gCreditsEntry_SouichiYamamoto, + gCreditsEntry_KimikoNakamichi, + _, + }, + { + gCreditsEntry_NOAProductTesting, + gCreditsEntry_ThomasHertzog, + gCreditsEntry_ErikJohnson, + gCreditsEntry_MikaKurosawa, + _, + }, + { + gCreditsEntry_BrailleCodeCheck, + gCreditsEntry_NationalFederationBlind, + gCreditsEntry_PatriciaAMaurer, + gCreditsEntry_JapanBrailleLibrary, + gCreditsEntry_EuropeanBlindUnion, + }, + { + _, + gCreditsEntry_BrailleCodeCheck, + gCreditsEntry_AustralianBrailleAuthority, + gCreditsEntry_RoyalNewZealandFederationBlind, + _, + }, + { + gCreditsEntry_SpecialThanks, + gCreditsEntry_HiroyukiUesugi, + gCreditsEntry_MotoyasuTojima, + gCreditsEntry_NicolaPrattBarlow, + gCreditsEntry_ShellieDow, + }, + { + _, + gCreditsEntry_TaskManagers, + gCreditsEntry_AzusaTajima, + gCreditsEntry_ShusakuEgami, + _, + }, + { + gCreditsEntry_Producers, + gCreditsEntry_HiroyukiJinnai, + gCreditsEntry_HitoshiYamagami, + gCreditsEntry_GakujiNomoto, + gCreditsEntry_HiroakiTsuru, + }, + { + _, + gCreditsEntry_ExecutiveDirector, + gCreditsEntry_SatoshiTajiri, + _, + _, + }, + { + _, + gCreditsEntry_ExecProducers, + gCreditsEntry_SatoruIwata, + _, + _, + }, + { + _, + gCreditsEntry_ExecProducers, + gCreditsEntry_TsunekazIshihara, + _, + _, + }, +}; +#undef _ + +static const struct BgTemplate gUnknown_085E6F68[] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, +}; +static const struct WindowTemplate gUnknown_085E6F6C[] = +{ + { 0x00, 0x00, 0x09, 0x1E, 0x0C, 0x08, 0x0001 }, + DUMMY_WIN_TEMPLATE, +}; +static const u8 gUnknown_085E6F7C[][2] = +{ + {104, 36}, + {120, 36}, + {136, 36}, +}; + +static const union AnimCmd gUnknown_085E6F84[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(64, 8), + ANIMCMD_FRAME(128, 8), + ANIMCMD_FRAME(192, 8), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_085E6F98[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(128, 4), + ANIMCMD_FRAME(192, 4), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_085E6FAC[] = +{ + ANIMCMD_FRAME(256, 4), + ANIMCMD_FRAME(320, 4), + ANIMCMD_FRAME(384, 4), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_085E6FBC[] = +{ + ANIMCMD_FRAME(384, 30), + ANIMCMD_FRAME(320, 30), + ANIMCMD_FRAME(256, 30), + ANIMCMD_FRAME(256, 30), + ANIMCMD_END, +}; + +static const union AnimCmd *const gUnknown_085E6FD0[] = +{ + gUnknown_085E6F84, + gUnknown_085E6F98, + gUnknown_085E6FAC, + gUnknown_085E6FBC, +}; + +static const union AnimCmd gUnknown_085E6FE0[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(64, 8), + ANIMCMD_FRAME(128, 8), + ANIMCMD_FRAME(192, 8), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_085E6FF4[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(128, 4), + ANIMCMD_FRAME(192, 4), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_085E7008[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd *const gUnknown_085E7010[] = +{ + gUnknown_085E6FE0, + gUnknown_085E6FF4, + gUnknown_085E7008, +}; + +static const struct SpriteSheet gUnknown_085E701C[] = { + { gDecompressionBuffer, 6144, 1001 }, + { NULL }, +}; +static const struct SpritePalette gUnknown_085E702C[] = { + { (const u16 *)(gDecompressionBuffer + 0x1800), 1001 }, + { NULL }, +}; + +static const struct OamData gUnknown_085E703C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd gUnknown_085E7044[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_085E704C[] = +{ + ANIMCMD_FRAME(64, 8), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_085E7054[] = +{ + ANIMCMD_FRAME(128, 8), + ANIMCMD_END, +}; + +static const union AnimCmd *const gUnknown_085E705C[] = +{ + gUnknown_085E7044, + gUnknown_085E704C, + gUnknown_085E7054, +}; + +static const struct SpriteTemplate gUnknown_085E7068 = +{ + .tileTag = 1001, + .paletteTag = 1001, + .oam = &gUnknown_085E703C, + .anims = gUnknown_085E705C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81772B8, +}; + +void sub_8175620(void); +static void sub_8175744(u8 taskIdA); +static void sub_8175774(u8 taskIdA); +static void sub_8175808(u8 taskIdA); +static void c2_080C9BFC(u8 taskIdA); +static void sub_81758E4(u8 taskIdA); +static void sub_81758A4(u8 taskIdA); +static void sub_8175A9C(u8 taskIdA); +static void sub_8175AE4(u8 taskIdA); +static void sub_8175B1C(u8 taskIdA); +static void sub_8175B90(u8 taskIdA); +static void sub_8175BD8(u8 taskIdA); +static void sub_8175C34(u8 taskIdA); +static void sub_8175CC8(u8 taskIdA); +static void sub_8175CE4(void); +static void sub_8175DA0(u8 taskIdB); +static u8 sub_817603C(u8 page, u8 taskIdA); +static void sub_81760FC(u8 taskIdA); +static void sub_817651C(u8 taskIdA); +static void sub_817624C(u8 taskIdA); +static bool8 sub_8176AB0(u8 data, u8 taskIdA); +static void sub_8176CA0(u8 taskIdA); +static void sub_8176D1C(u16, u16, u16); +static void sub_8176E40(u16 arg0, u16 palette); +static void sub_8176EE8(struct Sprite *sprite); +static void sub_8176F90(struct Sprite *sprite); +static u8 sub_8177224(u16 species, s16 x, s16 y, u16 position); +static void sub_8177388(void); + +static void sub_81754C8(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void sub_81754DC(void) +{ + RunTasks(); + AnimateSprites(); + + if ((gMain.heldKeys & B_BUTTON) + && gHasHallOfFameRecords != 0 + && gTasks[gUnknown_0203BCE2].func == sub_8175774) + { + sub_81754C8(); + RunTasks(); + AnimateSprites(); + gUnknown_0203BCE5 = 1; + } + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void sub_8175548(void) +{ + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_085E6F68, 1); + SetBgTilemapBuffer(0, AllocZeroed(0x800)); + LoadPalette(gUnknown_085E56F0, 0x80, 0x40); + InitWindows(gUnknown_085E6F6C); + DeactivateAllTextPrinters(); + PutWindowTilemap(0); + CopyWindowToVram(0, 3); + ShowBg(0); +} + +static void sub_81755A4(void) +{ + void *ptr; + FreeAllWindowBuffers(); + ptr = GetBgTilemapBuffer(0); + if (ptr) + Free(ptr); +} + +static void sub_81755BC(const u8 *string, u8 y, u8 a2) +{ + u8 x; + u8 color[3]; + + color[0] = 0; + + if (a2 == 1) + { + color[1] = 3; + color[2] = 4; + } + else + { + color[1] = 1; + color[2] = 2; + } + + x = GetStringCenterAlignXOffsetWithLetterSpacing(1, string, 0xF0, 1); + AddTextPrinterParameterized2(0, 1, x, y, 1, 0, color, -1, string); +} + +void sub_8175620(void) +{ + u8 taskIdA; + s16 taskIdC; + u8 taskIdB; + u16 savedIme; + + sub_8175CE4(); + SetVBlankCallback(NULL); + InitHeap(gHeap, HEAP_SIZE); + ResetPaletteFade(); + ResetTasks(); + sub_8175548(); + + taskIdA = CreateTask(sub_8175744, 0); + + gTasks[taskIdA].data[TDA_4] = 0; + gTasks[taskIdA].data[TDA_7] = 0; + gTasks[taskIdA].data[TDA_11] = 0; + gTasks[taskIdA].data[TDA_13] = 1; + + while (TRUE) + { + if (sub_8176AB0(0, taskIdA)) + break; + } + + taskIdC = gTasks[taskIdA].data[TDA_TASK_C_ID]; + gTasks[taskIdC].data[TDC_0] = 40; + + SetGpuReg(REG_OFFSET_BG0VOFS, 0xFFFC); + + taskIdB = CreateTask(sub_8175DA0, 0); + + gTasks[taskIdB].data[TDB_TASK_A_ID] = taskIdA; + gTasks[taskIdA].data[TDA_TASK_B_ID] = taskIdB; + + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + EnableInterrupts(INTR_FLAG_VBLANK); + SetVBlankCallback(sub_81754C8); + m4aSongNumStart(MUS_THANKFOR); + SetMainCallback2(sub_81754DC); + gUnknown_0203BCE5 = 0; + gUnknown_0203BCE8 = AllocZeroed(sizeof(struct Unk201C000)); + + sub_8177388(); + + gUnknown_0203BCE8->unk8E = 0; + gUnknown_0203BCE8->unk90 = 0; + gUnknown_0203BCE8->unk92 = 0; + + gUnknown_0203BCE2 = taskIdA; +} + +static void sub_8175744(u8 taskIdA) +{ + if (!gPaletteFade.active) + gTasks[taskIdA].func = sub_8175774; +} + +static void sub_8175774(u8 taskIdA) +{ + u16 data1; + + if (gTasks[taskIdA].data[TDA_4]) + { + s16 taskIdC; + + taskIdC = gTasks[taskIdA].data[TDA_TASK_C_ID]; + gTasks[taskIdC].data[TDC_0] = 30; + + gTasks[taskIdA].data[TDA_12] = 0x100; + gTasks[taskIdA].func = sub_8175A9C; + return; + } + + gUnknown_0203BCE0 = 0; + data1 = gTasks[taskIdA].data[TDA_11]; + + if (gTasks[taskIdA].data[TDA_11] == 1) + { + gTasks[taskIdA].data[TDA_13] = data1; + gTasks[taskIdA].data[TDA_11] = 0; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gTasks[taskIdA].func = sub_8175808; + } + else if (gTasks[taskIdA].data[TDA_11] == 2) + { + gTasks[taskIdA].data[TDA_13] = data1; + gTasks[taskIdA].data[TDA_11] = 0; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gTasks[taskIdA].func = sub_81758A4; + } +} + +static void sub_8175808(u8 taskIdA) +{ + if (!gPaletteFade.active) + { + SetGpuReg(REG_OFFSET_DISPCNT, 0); + sub_8176CA0(taskIdA); + gTasks[taskIdA].func = c2_080C9BFC; + } +} + +static void c2_080C9BFC(u8 taskIdA) +{ + u16 backup; + + SetVBlankCallback(NULL); + + if (sub_8176AB0(gTasks[taskIdA].data[TDA_7], taskIdA)) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + EnableInterrupts(INTR_FLAG_VBLANK); + SetVBlankCallback(sub_81754C8); + gTasks[taskIdA].func = sub_8175744; + } +} + +static void sub_81758A4(u8 taskIdA) +{ + if (!gPaletteFade.active) + { + SetGpuReg(REG_OFFSET_DISPCNT, 0); + sub_8176CA0(taskIdA); + gTasks[taskIdA].func = sub_81758E4; + } +} + +static void sub_81758E4(u8 taskIdA) +{ + switch (gMain.state) + { + default: + case 0: + { + u16 i; + u16 *temp; + + ResetSpriteData(); + dp13_810BB8C(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 8; + LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM); + LZ77UnCompVram(&gBirchGrassTilemap, (void *)(VRAM + 0x3800)); + LoadPalette(gBirchBagGrassPal[0] + 1, 1, 31 * 2); + + for (i = 0; i < 0x800; i++) + gDecompressionBuffer[i] = 0x11; + for (i = 0; i < 0x800; i++) + (gDecompressionBuffer + 0x800)[i] = 0x22; + for (i = 0; i < 0x800; i++) + (gDecompressionBuffer + 0x1000)[i] = 0x33; + + temp = (u16 *)(&gDecompressionBuffer[0x1800]); + temp[0] = RGB_BLACK; + temp[1] = RGB(31, 31, 20); // light yellow + temp[2] = RGB(31, 20, 20); // light red + temp[3] = RGB(20, 20, 31); // light blue + + LoadSpriteSheet(gUnknown_085E701C); + LoadSpritePalette(gUnknown_085E702C); + + gMain.state += 1; + break; + } + case 1: + gTasks[taskIdA].data[TDA_TASK_D_ID] = CreateTask(sub_81760FC, 0); + gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_STATE] = 1; + gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_TASK_A_ID] = taskIdA; + gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_2] = gTasks[taskIdA].data[TDA_7]; + + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 32); + SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) + | BGCNT_CHARBASE(0) + | BGCNT_SCREENBASE(7) + | BGCNT_16COLOR + | BGCNT_TXT256x256); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 + | DISPCNT_OBJ_1D_MAP + | DISPCNT_BG0_ON + | DISPCNT_BG3_ON + | DISPCNT_OBJ_ON); + + gMain.state = 0; + gUnknown_0203BD28 = 0; + gTasks[taskIdA].func = sub_8175744; + break; + } +} + +static void sub_8175A9C(u8 taskIdA) +{ + if (gTasks[taskIdA].data[TDA_12]) + { + gTasks[taskIdA].data[TDA_12] -= 1; + return; + } + + BeginNormalPaletteFade(0xFFFFFFFF, 12, 0, 16, RGB_BLACK); + gTasks[taskIdA].func = sub_8175AE4; +} + +static void sub_8175AE4(u8 taskIdA) +{ + if (!gPaletteFade.active) + { + sub_8176CA0(taskIdA); + gTasks[taskIdA].func = sub_8175B1C; + } +} + +static void sub_8175B1C(u8 taskIdA) +{ + sub_8175CE4(); + ResetPaletteFade(); + sub_8176D1C(0, 0x3800, 0); + ResetSpriteData(); + FreeAllSpritePalettes(); + BeginNormalPaletteFade(0xFFFFFFFF, 8, 16, 0, RGB_BLACK); + + SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) + | BGCNT_CHARBASE(0) + | BGCNT_SCREENBASE(7) + | BGCNT_16COLOR + | BGCNT_TXT256x256); + EnableInterrupts(INTR_FLAG_VBLANK); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 + | DISPCNT_OBJ_1D_MAP + | DISPCNT_BG0_ON); + + gTasks[taskIdA].data[TDA_0] = 0xEB; + gTasks[taskIdA].func = sub_8175B90; +} + +static void sub_8175B90(u8 taskIdA) +{ + if (gTasks[taskIdA].data[TDA_0]) + { + gTasks[taskIdA].data[TDA_0] -= 1; + return; + } + + BeginNormalPaletteFade(0xFFFFFFFF, 6, 0, 16, RGB_BLACK); + gTasks[taskIdA].func = sub_8175BD8; +} + +static void sub_8175BD8(u8 taskIdA) +{ + if (!gPaletteFade.active) + { + sub_8176E40(0x3800, 0); + + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB_BLACK); + gTasks[taskIdA].data[TDA_0] = 7200; + gTasks[taskIdA].func = sub_8175C34; + } +} + +static void sub_8175C34(u8 taskIdA) +{ + if (!gPaletteFade.active) + { + if (gTasks[taskIdA].data[TDA_0] == 0 || gMain.newKeys) + { + FadeOutBGM(4); + BeginNormalPaletteFade(0xFFFFFFFF, 8, 0, 16, RGB_WHITEALPHA); + gTasks[taskIdA].func = sub_8175CC8; + return; + } + + if (gTasks[taskIdA].data[TDA_0] == 7144) + FadeOutBGM(8); + + if (gTasks[taskIdA].data[TDA_0] == 6840) + m4aSongNumStart(MUS_END); + + gTasks[taskIdA].data[TDA_0] -= 1; + } +} + +static void sub_8175CC8(u8 taskIdA) +{ + if (!gPaletteFade.active) + SoftReset(0xFF); +} + +static void sub_8175CE4(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, 0); + + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + + DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE); + DmaFill32(3, 0, (void *)OAM, OAM_SIZE); + DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2); +} + +static void sub_8175DA0(u8 taskIdB) +{ + int i; + + switch (gTasks[taskIdB].data[TDB_0]) + { + case 0: + case 6: + case 7: + case 8: + case 9: + default: + if (!gPaletteFade.active) + { + gTasks[taskIdB].data[TDB_0] = 1; + gTasks[taskIdB].data[TDB_3] = 0x48; + gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 0; + gUnknown_0203BCE0 = 0; + } + return; + case 1: + if (gTasks[taskIdB].data[TDB_3] != 0) + { + gTasks[taskIdB].data[TDB_3] -= 1; + return; + } + gTasks[taskIdB].data[TDB_0] += 1; + return; + case 2: + if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].func == sub_8175774) + { + if (gTasks[taskIdB].data[TDB_CURRENT_PAGE] < PAGE_COUNT) + { + for (i = 0; i < 5; i++) + sub_81755BC(gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text, 5 + i * 16, gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->var_1); + + CopyWindowToVram(0, 2); + + gTasks[taskIdB].data[TDB_CURRENT_PAGE] += 1; + gTasks[taskIdB].data[TDB_0] += 1; + + gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 1; + + if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_13] == 1) + BeginNormalPaletteFade(0x00000300, 0, 16, 0, COLOR_LIGHT_GREEN); + else + BeginNormalPaletteFade(0x00000300, 0, 16, 0, COLOR_DARK_GREEN); + return; + } + gTasks[taskIdB].data[TDB_0] = 10; + return; + } + gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 0; + return; + case 3: + if (!gPaletteFade.active) + { + gTasks[taskIdB].data[TDB_3] = 0x73; + gTasks[taskIdB].data[TDB_0] += 1; + } + return; + case 4: + if (gTasks[taskIdB].data[TDB_3] != 0) + { + gTasks[taskIdB].data[TDB_3] -= 1; + return; + } + + if (sub_817603C((u8)gTasks[taskIdB].data[TDB_CURRENT_PAGE], (u8)gTasks[taskIdB].data[TDB_TASK_A_ID])) + { + gTasks[taskIdB].data[TDB_0] += 1; + return; + } + gTasks[taskIdB].data[TDB_0] += 1; + if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_13] == 1) + BeginNormalPaletteFade(0x00000300, 0, 0, 16, COLOR_LIGHT_GREEN); + else + BeginNormalPaletteFade(0x00000300, 0, 0, 16, COLOR_DARK_GREEN); + return; + case 5: + if (!gPaletteFade.active) + { + FillWindowPixelBuffer(0, 0); + CopyWindowToVram(0, 2); + gTasks[taskIdB].data[TDB_0] = 2; + } + return; + case 10: + gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_4] = 1; + DestroyTask(taskIdB); + sub_81755A4(); + FREE_AND_SET_NULL(gUnknown_0203BCE8); + return; + } +} + +static u8 sub_817603C(u8 page, u8 taskIdA) +{ + // Starts with bike + ocean + morning + + if (page == 6) + { + // Grass patch + gTasks[taskIdA].data[TDA_11] = 2; + } + + if (page == 12) + { + // Bike + ocean + sunset + gTasks[taskIdA].data[TDA_7] = 1; + gTasks[taskIdA].data[TDA_11] = 1; + } + + if (page == 18) + { + // Grass patch + gTasks[taskIdA].data[TDA_11] = 2; + } + + if (page == 24) + { + // Bike + forest + sunset + gTasks[taskIdA].data[TDA_7] = 2; + gTasks[taskIdA].data[TDA_11] = 1; + } + + if (page == 30) + { + // Grass patch + gTasks[taskIdA].data[TDA_11] = 2; + } + + if (page == 36) + { + // Bike + forest + sunset + gTasks[taskIdA].data[TDA_7] = 3; + gTasks[taskIdA].data[TDA_11] = 1; + } + + if (page == 42) + { + // Grass patch + gTasks[taskIdA].data[TDA_11] = 2; + } + + if (page == 48) + { + // Bike + town + night + gTasks[taskIdA].data[TDA_7] = 4; + gTasks[taskIdA].data[TDA_11] = 1; + } + + if (gTasks[taskIdA].data[TDA_11] != 0) + { + // Returns true if changed? + return TRUE; + } + + return FALSE; +} + +static void sub_81760FC(u8 taskIdD) +{ + u8 r2; + + switch (gTasks[taskIdD].data[TDD_STATE]) + { + case 0: + break; + case 1: + if (gUnknown_0203BCE8->unk90 == 0 && gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].data[TDA_14] == 0) + break; + gTasks[taskIdD].data[TDD_STATE]++; + break; + case 2: + if (gUnknown_0203BCE8->unk8E == 71 || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != sub_8175774) + break; + r2 = sub_8177224(gUnknown_0203BCE8->unk0[gUnknown_0203BCE8->unk92], gUnknown_085E6F7C[gUnknown_0203BCE8->unk90][0], gUnknown_085E6F7C[gUnknown_0203BCE8->unk90][1], gUnknown_0203BCE8->unk90); + if (gUnknown_0203BCE8->unk92 < gUnknown_0203BCE8->unk94 - 1) + { + gUnknown_0203BCE8->unk92++; + gSprites[r2].data[3] = 50; + } + else + { + gUnknown_0203BCE8->unk92 = 0; + gSprites[r2].data[3] = 512; + } + gUnknown_0203BCE8->unk8E++; + if (gUnknown_0203BCE8->unk90 == 2) + gUnknown_0203BCE8->unk90 = 0; + else + gUnknown_0203BCE8->unk90++; + gTasks[taskIdD].data[TDD_3] = 50; + gTasks[taskIdD].data[TDD_STATE]++; + break; + case 3: + if (gTasks[taskIdD].data[TDD_3] != 0) + gTasks[taskIdD].data[TDD_3]--; + else + gTasks[taskIdD].data[TDD_STATE] = 1; + break; + } +} + +static void sub_817624C(u8 taskIdC) +{ + switch (gTasks[taskIdC].data[TDC_0]) + { + case 0: + gUnknown_0203BD26 = Sin((gTasks[taskIdC].data[TDC_5] >> 1) & 0x7F, 12); + gTasks[taskIdC].data[TDC_5]++; + break; + case 1: + if (gUnknown_0203BD26 != 0) + { + gUnknown_0203BD26 = Sin((gTasks[taskIdC].data[TDC_5] >> 1) & 0x7F, 12); + gTasks[taskIdC].data[TDC_5]++; + } + else + { + gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 2; + gTasks[taskIdC].data[TDC_5] = 0; + gTasks[taskIdC].data[TDC_0]++; + } + break; + case 2: + if (gTasks[taskIdC].data[TDC_5] < 64) + { + gTasks[taskIdC].data[TDC_5]++; + gUnknown_0203BD26 = Sin(gTasks[taskIdC].data[TDC_5] & 0x7F, 20); + } + else + { + gTasks[taskIdC].data[TDC_0]++; + } + break; + case 3: + gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 3; + gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 1; + gTasks[taskIdC].data[TDC_4] = 120; + gTasks[taskIdC].data[TDC_0]++; + break; + case 4: + if (gTasks[taskIdC].data[TDC_4] != 0) + { + gTasks[taskIdC].data[TDC_4]--; + } + else + { + gTasks[taskIdC].data[TDC_5] = 64; + gTasks[taskIdC].data[TDC_0]++; + } + break; + case 5: + if (gTasks[taskIdC].data[TDC_5] > 0) + { + gTasks[taskIdC].data[TDC_5]--; + gUnknown_0203BD26 = Sin(gTasks[taskIdC].data[TDC_5] & 0x7F, 20); + } + else + { + gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 1; + gTasks[taskIdC].data[TDC_0]++; + } + break; + case 6: + gTasks[taskIdC].data[TDC_0] = 50; + break; + case 10: + gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 2; + gTasks[taskIdC].data[TDC_0] = 50; + break; + case 20: + gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 4; + gTasks[taskIdC].data[TDC_0] = 50; + break; + case 30: + gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 5; + gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 3; + gTasks[taskIdC].data[TDC_0] = 50; + break; + case 50: + gTasks[taskIdC].data[TDC_0] = 0; + break; + } +} + +static void sub_817651C(u8 taskIdE) +{ + s16 taskIdC; + + switch (gTasks[taskIdE].data[TDE_0]) + { + default: + case 0: + if (gTasks[taskIdE].data[TDE_1] != 0x7FFF) + { + + if (gTasks[gTasks[gTasks[taskIdE].data[TDE_TASK_A_ID]].data[TDA_TASK_B_ID]].data[TDB_CURRENT_PAGE] == 2) + { + gTasks[gTasks[gTasks[taskIdE].data[TDE_TASK_A_ID]].data[TDA_TASK_C_ID]].data[TDC_0] = 20; + gTasks[taskIdE].data[TDE_1] = 0x7FFF; + } + } + sub_817B540(0); + break; + case 1: + sub_817B540(0); + break; + case 2: + if (gTasks[taskIdE].data[TDE_1] != 0x7FFF) + { + taskIdC = gTasks[gTasks[taskIdE].data[TDE_TASK_A_ID]].data[TDA_TASK_C_ID]; + + // Floor to multiple of 128 + if ((gTasks[taskIdC].data[TDC_5] & -128) == 640) + { + gTasks[taskIdC].data[TDC_0] = 1; + gTasks[taskIdE].data[TDE_1] = 0x7FFF; + } + } + sub_817B540(1); + break; + case 3: + if (gTasks[taskIdE].data[TDE_1] != 0x7FFF) + { + + if (gTasks[taskIdE].data[TDE_1] == 0x248) + { + gTasks[gTasks[gTasks[taskIdE].data[TDE_TASK_A_ID]].data[TDA_TASK_C_ID]].data[TDC_0] = 10; + gTasks[taskIdE].data[TDE_1] = 0x7FFF; + } + else + { + gTasks[taskIdE].data[TDE_1] += 1; + } + } + sub_817B540(1); + break; + case 4: + sub_817B540(2); + break; + } +} + +static void sub_817664C(u8 data, u8 taskIdA) +{ + switch (data) + { + case 0: + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 272; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; + gTasks[taskIdA].data[TDA_0] = sub_817B3DC(0, 0x2000, 0x20, 8); + break; + case 1: + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; + gTasks[taskIdA].data[TDA_0] = sub_817B3DC(0, 0x2000, 0x20, 8); + break; + case 2: + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; + gTasks[taskIdA].data[TDA_0] = sub_817B3DC(1, 0x2000, 0x200, 8); + break; + case 3: + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = -32; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; + gTasks[taskIdA].data[TDA_0] = sub_817B3DC(1, 0x2000, 0x200, 8); + break; + case 4: + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 88; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 152; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; + gTasks[taskIdA].data[TDA_0] = sub_817B3DC(2, 0x2000, 0x200, 8); + break; + } + + gTasks[taskIdA].data[TDA_TASK_E_ID] = CreateTask(sub_817651C, 0); + gTasks[gTasks[taskIdA].data[TDA_TASK_E_ID]].data[TDE_0] = data; + gTasks[gTasks[taskIdA].data[TDA_TASK_E_ID]].data[TDE_1] = 0; + gTasks[gTasks[taskIdA].data[TDA_TASK_E_ID]].data[TDE_TASK_A_ID] = taskIdA; + + gTasks[taskIdA].data[TDA_TASK_C_ID] = CreateTask(sub_817624C, 0); + gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_0] = 0; + gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_1] = taskIdA; + gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_2] = gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]; + gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_3] = gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]; + gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_4] = 0; + + if (data == 2) + gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_5] = 0x45; +} + +static bool8 sub_8176AB0(u8 data, u8 taskIdA) +{ + u8 spriteId; + + switch (gMain.state) + { + default: + case 0: + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 8); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + ResetSpriteData(); + FreeAllSpritePalettes(); + gMain.state = 1; + break; + case 1: + gUnknown_0203BD24 = 34; + gUnknown_0203BD26 = 0; + sub_817B1C8(data); + gMain.state += 1; + break; + case 2: + if (gSaveBlock2Ptr->playerGender == MALE) + { + LoadCompressedObjectPic(gUnknown_085F5334); + LoadCompressedObjectPic(gUnknown_085F53BC); + LoadCompressedObjectPic(gUnknown_085F5354); + LoadSpritePalettes(gUnknown_085F5384); + + spriteId = intro_create_brendan_sprite(120, 46); + gTasks[taskIdA].data[TDA_PLAYER_CYCLIST] = spriteId; + gSprites[spriteId].callback = sub_8176EE8; + gSprites[spriteId].anims = gUnknown_085E6FD0; + + spriteId = intro_create_may_sprite(272, 46); + gTasks[taskIdA].data[TDA_RIVAL_CYCLIST] = spriteId; + gSprites[spriteId].callback = sub_8176F90; + gSprites[spriteId].anims = gUnknown_085E7010; + } + else + { + LoadCompressedObjectPic(gUnknown_085F5344); + LoadCompressedObjectPic(gUnknown_085F53AC); + LoadCompressedObjectPic(gUnknown_085F5354); + LoadSpritePalettes(gUnknown_085F5384); + + spriteId = intro_create_may_sprite(120, 46); + gTasks[taskIdA].data[TDA_PLAYER_CYCLIST] = spriteId; + gSprites[spriteId].callback = sub_8176EE8; + gSprites[spriteId].anims = gUnknown_085E6FD0; + + spriteId = intro_create_brendan_sprite(272, 46); + gTasks[taskIdA].data[TDA_RIVAL_CYCLIST] = spriteId; + gSprites[spriteId].callback = sub_8176F90; + gSprites[spriteId].anims = gUnknown_085E7010; + }; + gMain.state += 1; + break; + case 3: + sub_817664C(data, taskIdA); + sub_817B3A8(data); + gMain.state = 0; + return TRUE; + } + return FALSE; +} + +static void sub_8176CA0(u8 taskIdA) +{ + if (gTasks[taskIdA].data[TDA_0] != 0) + { + DestroyTask(gTasks[taskIdA].data[TDA_0]); + gTasks[taskIdA].data[TDA_0] = 0; + } + + if (gTasks[taskIdA].data[TDA_TASK_C_ID] != 0) + { + DestroyTask(gTasks[taskIdA].data[TDA_TASK_C_ID]); + gTasks[taskIdA].data[TDA_TASK_C_ID] = 0; + } + + if (gTasks[taskIdA].data[TDA_TASK_E_ID] != 0) + { + DestroyTask(gTasks[taskIdA].data[TDA_TASK_E_ID]); + gTasks[taskIdA].data[TDA_TASK_E_ID] = 0; + } + + if (gTasks[taskIdA].data[TDA_TASK_D_ID] != 0) + { + DestroyTask(gTasks[taskIdA].data[TDA_TASK_D_ID]); + gTasks[taskIdA].data[TDA_TASK_D_ID] = 0; + } + + gUnknown_0203BD28 = 1; +} + +static void sub_8176D1C(u16 arg0, u16 arg1, u16 arg2) +{ + u16 baseTile; + u16 i; + + LZ77UnCompVram(gCreditsCopyrightEnd_Gfx, (void *)(VRAM + arg0)); + LoadPalette(gIntroCopyright_Pal, arg2, sizeof(gIntroCopyright_Pal)); + + baseTile = (arg2 / 16) << 12; + + for (i = 0; i < 32 * 32; i++) + ((u16 *) (VRAM + arg1))[i] = baseTile + 1; +} + +static u16 sub_8176D78(u8 arg0) +{ + u16 out = (arg0 & 0x3F) + 80; + + if (arg0 == 0xFF) + return 1; + + if (arg0 & (1 << 7)) + out |= 1 << 11; + if (arg0 & (1 << 6)) + out |= 1 << 10; + + return out; +} + +static void sub_8176DBC(const u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette) +{ + u8 y, x; + const u16 tileOffset = (palette / 16) << 12; + + for (y = 0; y < 5; y++) + { + for (x = 0; x < 3; x++) + ((u16 *) (VRAM + arg3 + (baseY + y) * 64))[baseX + x] = tileOffset + sub_8176D78(arg0[y * 3 + x]); + } +} + +static void sub_8176E40(u16 arg0, u16 palette) +{ + u16 pos; + u16 baseTile = (palette / 16) << 12; + + for (pos = 0; pos < 32 * 32; pos++) + ((u16 *) (VRAM + arg0))[pos] = baseTile + 1; + + sub_8176DBC(gUnknown_085E5BAC, 3, 7, arg0, palette); + sub_8176DBC(gUnknown_085E5BBB, 7, 7, arg0, palette); + sub_8176DBC(gUnknown_085E5BCA, 11, 7, arg0, palette); + sub_8176DBC(gUnknown_085E5BCA, 16, 7, arg0, palette); + sub_8176DBC(gUnknown_085E5BD9, 20, 7, arg0, palette); + sub_8176DBC(gUnknown_085E5BE8, 24, 7, arg0, palette); +} + +static void sub_8176EE8(struct Sprite *sprite) +{ + if (gUnknown_0203BD28 != 0) + { + DestroySprite(sprite); + return; + } + + switch (sprite->data[0]) + { + case 0: + StartSpriteAnimIfDifferent(sprite, 0); + break; + case 1: + StartSpriteAnimIfDifferent(sprite, 1); + if (sprite->pos1.x > -32) + sprite->pos1.x -= 1; + break; + case 2: + StartSpriteAnimIfDifferent(sprite, 2); + break; + case 3: + StartSpriteAnimIfDifferent(sprite, 3); + break; + case 4: + StartSpriteAnimIfDifferent(sprite, 0); + if (sprite->pos1.x > 120) + sprite->pos1.x -= 1; + break; + case 5: + StartSpriteAnimIfDifferent(sprite, 0); + if (sprite->pos1.x > -32) + sprite->pos1.x -= 1; + break; + } +} + +static void sub_8176F90(struct Sprite *sprite) +{ + if (gUnknown_0203BD28 != 0) + { + DestroySprite(sprite); + return; + } + + switch (sprite->data[0]) + { + case 0: + sprite->pos2.y = 0; + StartSpriteAnimIfDifferent(sprite, 0); + break; + case 1: + if (sprite->pos1.x > 200) + StartSpriteAnimIfDifferent(sprite, 1); + else + StartSpriteAnimIfDifferent(sprite, 2); + if (sprite->pos1.x > -32) + sprite->pos1.x -= 2; + sprite->pos2.y = -gUnknown_0203BD26; + break; + case 2: + sprite->data[7] += 1; + StartSpriteAnimIfDifferent(sprite, 0); + if ((sprite->data[7] & 3) == 0) + sprite->pos1.x += 1; + break; + case 3: + StartSpriteAnimIfDifferent(sprite, 0); + if (sprite->pos1.x > -32) + sprite->pos1.x -= 1; + break; + } +} + +static void sub_8177050(struct Sprite *sprite) +{ + if (gUnknown_0203BD28) + { + sub_818D820(sprite->data[6]); + return; + } + + sprite->data[7] += 1; + switch (sprite->data[0]) + { + case 0: + default: + sprite->oam.affineMode = 1; + sprite->oam.matrixNum = sprite->data[1]; + sprite->data[2] = 16; + SetOamMatrix(sprite->data[1], 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]); + sprite->invisible = FALSE; + sprite->data[0] = 1; + break; + case 1: + if (sprite->data[2] < 256) + { + sprite->data[2] += 8; + SetOamMatrix(sprite->data[1], 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]); + } + else + { + sprite->data[0] += 1; + } + switch (sprite->data[1]) + { + case 1: + if ((sprite->data[7] & 3) == 0) + sprite->pos1.y += 1; + sprite->pos1.x -= 2; + break; + case 2: + break; + case 3: + if ((sprite->data[7] & 3) == 0) + sprite->pos1.y += 1; + sprite->pos1.x += 2; + break; + } + break; + case 2: + if (sprite->data[3] != 0) + { + sprite->data[3] -= 1; + } + else + { + SetGpuReg(REG_OFFSET_BLDCNT, 0xF40); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x10); + sprite->oam.objMode = 1; + sprite->data[3] = 16; + sprite->data[0] += 1; + } + break; + case 3: + if (sprite->data[3] != 0) + { + int data3; + + sprite->data[3] -= 1; + + data3 = 16 - sprite->data[3]; + SetGpuReg(REG_OFFSET_BLDALPHA, (data3 << 8) + sprite->data[3]); + } + else + { + sprite->invisible = TRUE; + sprite->data[0] = 9; + } + break; + case 9: + sprite->data[0] += 1; + break; + case 10: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + sub_818D820(sprite->data[6]); + break; + } +} + +static u8 sub_8177224(u16 species, s16 x, s16 y, u16 position) +{ + u8 spriteId; + u8 spriteId2; + + spriteId = sub_80C0E9C(species, x, y, position); + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[1] = position + 1; + gSprites[spriteId].invisible = TRUE; + gSprites[spriteId].callback = sub_8177050; + gSprites[spriteId].data[6] = spriteId; + + spriteId2 = CreateSprite(&gUnknown_085E7068, gSprites[spriteId].pos1.x, gSprites[spriteId].pos1.y, 1); + gSprites[spriteId2].data[0] = spriteId; + + StartSpriteAnimIfDifferent(&gSprites[spriteId2], position); + + return spriteId; +} + +static void sub_81772B8(struct Sprite *sprite) +{ + if (gSprites[sprite->data[0]].data[0] == 10 || gUnknown_0203BD28) + { + DestroySprite(sprite); + return; + } + + sprite->invisible = gSprites[sprite->data[0]].invisible; + sprite->oam.objMode = gSprites[sprite->data[0]].oam.objMode; + sprite->oam.affineMode = gSprites[sprite->data[0]].oam.affineMode; + sprite->oam.matrixNum = gSprites[sprite->data[0]].oam.matrixNum; + sprite->pos1.x = gSprites[sprite->data[0]].pos1.x; + sprite->pos1.y = gSprites[sprite->data[0]].pos1.y; +} + +static void sub_8177388(void) +{ + u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE))); + u16 page; + u16 dexNum; + u16 j; + + for (dexNum = 1, j = 0; dexNum < 386; dexNum++) + { + if (GetSetPokedexFlag(dexNum, 1)) + { + gUnknown_0203BCE8->unk96[j] = dexNum; + j++; + } + } + + for (dexNum = j; dexNum < 386; dexNum++) + gUnknown_0203BCE8->unk96[dexNum] = 0; + + gUnknown_0203BCE8->unk39A = j; + if (gUnknown_0203BCE8->unk39A < 71) + gUnknown_0203BCE8->unk94 = j; + else + gUnknown_0203BCE8->unk94 = 71; + + j = 0; + do + { + page = Random() % gUnknown_0203BCE8->unk39A; + gUnknown_0203BCE8->unk0[j] = gUnknown_0203BCE8->unk96[page]; + + j++; + gUnknown_0203BCE8->unk96[page] = 0; + gUnknown_0203BCE8->unk39A--; + if (page != gUnknown_0203BCE8->unk39A) + { + gUnknown_0203BCE8->unk96[page] = gUnknown_0203BCE8->unk96[gUnknown_0203BCE8->unk39A]; + gUnknown_0203BCE8->unk96[gUnknown_0203BCE8->unk39A] = 0; + } + } + while (gUnknown_0203BCE8->unk39A != 0 && j < 71); + + if (gUnknown_0203BCE8->unk94 < 71) + { + for (j = gUnknown_0203BCE8->unk94, page = 0; j < 71; j++) + { + gUnknown_0203BCE8->unk0[j] = gUnknown_0203BCE8->unk0[page]; + + page++; + if (page == gUnknown_0203BCE8->unk94) + page = 0; + } + gUnknown_0203BCE8->unk0[70] = starter; + } + else + { + for (dexNum = 0; gUnknown_0203BCE8->unk0[dexNum] != starter && dexNum < 71; dexNum++); + + if (dexNum < gUnknown_0203BCE8->unk94 - 1) + { + gUnknown_0203BCE8->unk0[dexNum] = gUnknown_0203BCE8->unk0[70]; + gUnknown_0203BCE8->unk0[70] = starter; + } + else + { + gUnknown_0203BCE8->unk0[70] = starter; + } + } + gUnknown_0203BCE8->unk94 = 71; +} diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index d40e212bb7..83df30d05e 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -369,7 +369,7 @@ static const struct HallofFameMon sDummyFameMon = 0x3EA03EA, 0, 0, 0, {0} }; -static const u8 sUnused2[6] = {2, 1, 3, 6, 4, 5}; +static const u8 sUnused2[] = {2, 1, 3, 6, 4, 5, 0, 0}; // code static void VBlankCB_HallOfFame(void) diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index a3f4f36c25..b1502b630b 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -5,63 +5,329 @@ #include "gpu_regs.h" #include "task.h" #include "main.h" +#include "graphics.h" + +struct IntroCreditsSpriteMetadata +{ + u8 animNum:4; + u8 shape:2; + u8 size:2; + u8 x; + u8 y; + u8 subpriority; + u16 xOff; +}; + +static const u16 gUnknown_085F06E0[] = INCBIN_U16("graphics/intro/intro2_grass.gbapal"); +static const u16 gUnknown_085F0700[] = INCBIN_U16("graphics/intro/intro2_grass_afternoon.gbapal"); +static const u16 gUnknown_085F0720[] = INCBIN_U16("graphics/intro/intro2_grass_night.gbapal"); +static const u8 gUnknown_085F0740[] = INCBIN_U8("graphics/intro/intro2_grass.4bpp.lz"); +static const u8 gUnknown_085F0BC0[] = INCBIN_U8("graphics/intro/intro2_grass_map.bin.lz"); +static const u16 gUnknown_085F0CFC[] = INCBIN_U16("graphics/intro/85F0CFC.gbapal"); +static const u16 gUnknown_085F0D5C[] = INCBIN_U16("graphics/intro/85F0D5C.gbapal"); +static const u8 gUnknown_085F0DBC[] = INCBIN_U8("graphics/intro/intro2_bgclouds.4bpp.lz"); +static const u8 gUnknown_085F1398[] = INCBIN_U8("graphics/intro/intro2_bgclouds_map.bin.lz"); +static const u16 gUnknown_085F1668[] = INCBIN_U16("graphics/intro/intro2_bgclouds.gbapal"); +static const u16 gUnknown_085F1688[] = INCBIN_U16("graphics/intro/intro2_bgclouds_afternoon.gbapal"); +static const u8 gUnknown_085F16A8[] = INCBIN_U8("graphics/intro/intro2_bgclouds2.4bpp.lz"); +static const u16 gUnknown_085F17E4[] = INCBIN_U16("graphics/intro/intro2_bgtrees2.gbapal"); +static const u16 gUnknown_085F1804[] = INCBIN_U16("graphics/intro/intro2_bgtrees2_afternoon.gbapal"); +static const u8 gUnknown_085F1824[] = INCBIN_U8("graphics/intro/intro2_bgtrees.4bpp.lz"); +static const u8 gUnknown_085F1EAC[] = INCBIN_U8("graphics/intro/intro2_bgtrees_map.bin.lz"); +static const u16 gUnknown_085F21B0[] = INCBIN_U16("graphics/intro/intro2_bgtrees.gbapal"); +static const u8 gIntro2TreeTiles[] = INCBIN_U8("graphics/intro/intro2_bgtreessmall.4bpp.lz"); +static const u16 gUnknown_085F231C[] = INCBIN_U16("graphics/intro/85F231C.gbapal"); +static const u8 gUnknown_085F235C[] = INCBIN_U8("graphics/intro/intro2_bgnight.4bpp.lz"); +static const u16 gUnknown_085F2548[] = INCBIN_U16("graphics/intro/intro2_bgnight.gbapal"); +static const u8 gUnknown_085F2568[] = INCBIN_U8("graphics/intro/intro2_bgnight_map.bin.lz"); +static const u8 gIntro2NightTiles[] = INCBIN_U8("graphics/intro/intro2_night.4bpp.lz"); +static const u16 gIntro2BrendanPalette[] = INCBIN_U16("graphics/intro/intro2_brendan.gbapal"); +static const u8 gIntro2BrendanTiles[] = INCBIN_U8("graphics/intro/intro2_brendan.4bpp.lz"); +static const u16 gIntro2MayPalette[] = INCBIN_U16("graphics/intro/intro2_may.gbapal"); +static const u16 gUnknown_085F3490[0xF0] = {0}; +static const u8 gIntro2MayTiles[] = INCBIN_U8("graphics/intro/intro2_may.4bpp.lz"); +static const u8 gIntro2BicycleTiles[] = INCBIN_U8("graphics/intro/intro2_bicycle.4bpp.lz"); +static const u16 gIntro2LatiosPalette[] = INCBIN_U16("graphics/intro/intro2_latios.gbapal"); +static const u8 gIntro2LatiosTiles[] = INCBIN_U8("graphics/intro/intro2_latios.4bpp.lz"); +static const u16 gIntro2LatiasPalette[] = INCBIN_U16("graphics/intro/intro2_latias.gbapal"); +static const u8 gIntro2LatiasTiles[] = INCBIN_U8("graphics/intro/intro2_latias.4bpp.lz"); + +static void sub_817B62C(struct Sprite *sprite); +static void nullsub_65(struct Sprite *sprite); +static void sub_817B7C4(struct Sprite *sprite); +static void nullsub_66(struct Sprite *sprite); + +static const struct SpriteTemplate gUnknown_085F504C = { + 2000, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_817B62C +}; + +static const struct CompressedSpriteSheet gUnknown_085F5064[] = { + { gUnknown_085F16A8, 0x400, 2000 }, + { NULL } +}; + +static const union AnimCmd gUnknown_085F5074[] = { + ANIMCMD_FRAME( 0, 30), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085F507C[] = { + ANIMCMD_FRAME(16, 30), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085F5084[] = { + ANIMCMD_FRAME(20, 30), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085F508C[] = { + ANIMCMD_FRAME(22, 30), + ANIMCMD_END +}; + +static const union AnimCmd *const gUnknown_085F5094[] = { + gUnknown_085F5074, + gUnknown_085F507C, + gUnknown_085F5084, + gUnknown_085F508C +}; + +static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = { + { 0, ST_OAM_SQUARE, 2, 72, 32, 100, 0xc00 }, + { 0, ST_OAM_SQUARE, 2, 158, 32, 100, 0xc00 }, + { 1, ST_OAM_SQUARE, 1, 192, 40, 101, 0x800 }, + { 1, ST_OAM_SQUARE, 1, 56, 40, 101, 0x800 }, + { 2, ST_OAM_H_RECTANGLE, 0, 100, 44, 102, 0x400 }, + { 2, ST_OAM_H_RECTANGLE, 0, 152, 44, 102, 0x400 }, + { 3, ST_OAM_H_RECTANGLE, 0, 8, 46, 103, 0x100 }, + { 3, ST_OAM_H_RECTANGLE, 0, 56, 46, 103, 0x100 }, + { 3, ST_OAM_H_RECTANGLE, 0, 240, 46, 103, 0x100 }, +}; + +static const struct CompressedSpriteSheet gUnknown_085F50EC[] = { + { gIntro2TreeTiles, 0x400, 2000 }, + { NULL } +}; + +static const union AnimCmd gUnknown_085F50FC[] = { + ANIMCMD_FRAME( 0, 30), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085F5104[] = { + ANIMCMD_FRAME(16, 30), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085F510C[] = { + ANIMCMD_FRAME(24, 30), + ANIMCMD_END +}; + +static const union AnimCmd *const gUnknown_085F5114[] = { + gUnknown_085F50FC, + gUnknown_085F5104, + gUnknown_085F510C +}; + +static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = { + { 0, ST_OAM_SQUARE, 2, 16, 88, 100, 0x2000 }, + { 0, ST_OAM_SQUARE, 2, 80, 88, 100, 0x2000 }, + { 0, ST_OAM_SQUARE, 2, 144, 88, 100, 0x2000 }, + { 0, ST_OAM_SQUARE, 2, 208, 88, 100, 0x2000 }, + { 1, ST_OAM_V_RECTANGLE, 2, 40, 88, 101, 0x1000 }, + { 1, ST_OAM_V_RECTANGLE, 2, 104, 88, 101, 0x1000 }, + { 1, ST_OAM_V_RECTANGLE, 2, 168, 88, 101, 0x1000 }, + { 1, ST_OAM_V_RECTANGLE, 2, 232, 88, 101, 0x1000 }, + { 2, ST_OAM_V_RECTANGLE, 2, 56, 88, 102, 0x800 }, + { 2, ST_OAM_V_RECTANGLE, 2, 120, 88, 102, 0x800 }, + { 2, ST_OAM_V_RECTANGLE, 2, 184, 88, 102, 0x800 }, + { 2, ST_OAM_V_RECTANGLE, 2, 248, 88, 102, 0x800 }, +}; + +static const struct CompressedSpriteSheet gUnknown_085F5180[] = { + { gIntro2NightTiles, 0x400, 2000 }, + { NULL } +}; + +static const union AnimCmd gUnknown_085F5190[] = { + ANIMCMD_FRAME(0, 30), + ANIMCMD_END +}; + +static const union AnimCmd *const gUnknown_085F5198[] = { + gUnknown_085F5190 +}; + +static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = { + { 0, ST_OAM_SQUARE, 2, 24, 88, 100, 0x1000 }, + { 0, ST_OAM_SQUARE, 2, 64, 88, 100, 0x1000 }, + { 0, ST_OAM_SQUARE, 2, 104, 88, 100, 0x1000 }, + { 0, ST_OAM_SQUARE, 2, 144, 88, 100, 0x1000 }, + { 0, ST_OAM_SQUARE, 2, 184, 88, 100, 0x1000 }, + { 0, ST_OAM_SQUARE, 2, 224, 88, 100, 0x1000 }, +}; + +static const struct OamData gOamData_85F51CC = { + .y = 160, .shape = ST_OAM_SQUARE, .size = 3, .priority = 1 +}; + +static const union AnimCmd gUnknown_085F51D4[] = { + ANIMCMD_FRAME( 0, 8), + ANIMCMD_FRAME( 64, 8), + ANIMCMD_FRAME(128, 8), + ANIMCMD_FRAME(192, 8), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const gUnknown_085F51E8[] = { + gUnknown_085F51D4 +}; + +static const struct SpriteTemplate gUnknown_085F51EC = { + 1002, 1002, &gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 +}; + +static const struct SpriteTemplate gUnknown_085F5204 = { + 1003, 1003, &gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 +}; + +static const struct OamData gUnknown_085F521C = { + .y = 160, .shape = ST_OAM_H_RECTANGLE, .size = 3, .priority = 1 +}; + +static const union AnimCmd gUnknown_085F5224[] = { + ANIMCMD_FRAME( 0, 8), + ANIMCMD_FRAME( 32, 8), + ANIMCMD_FRAME( 64, 8), + ANIMCMD_FRAME( 96, 8), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const gUnknown_085F5238[] = { + gUnknown_085F5224 +}; + +static const struct SpriteTemplate gUnknown_085F523C = { + 1001, 1002, &gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 +}; + +static const struct SpriteTemplate gUnknown_085F5254 = { + 1001, 1003, &gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 +}; + +static const struct OamData gUnknown_085F526C = { + .y = 160, .shape = ST_OAM_SQUARE, .size = 3, .priority = 1 +}; + +static const union AnimCmd gUnknown_085F5274[] = { + ANIMCMD_FRAME( 0, 16), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_085F527C[] = { + ANIMCMD_FRAME( 64, 16), + ANIMCMD_END +}; + +static const union AnimCmd *const gUnknown_085F5284[] = { + gUnknown_085F5274, + gUnknown_085F527C +}; + +static const struct SpriteTemplate gUnknown_085F528C = { + 1004, 1004, &gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 +}; + +static const struct SpriteTemplate gUnknown_085F52A4 = { + 1005, 1005, &gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 +}; + +const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[] = { + { gIntro2BrendanNoTurnGfx, 0x2000, 1002 }, + { NULL } +}; + +const struct CompressedSpriteSheet gIntro2MaySpriteSheet[] = { + { gIntro2MayNoTurnGfx, 0x2000, 1003 }, + { NULL } +}; + +const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[] = { + { gIntro2BicycleTiles, 0x1000, 1001 }, + { NULL } +}; + +static const struct CompressedSpriteSheet gUnknown_085F52EC[] = { + { gIntro2FlygonGfx, 0x1000, 1004 }, + { NULL } +}; + +const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[] = { + { gIntro2FlygonGfx, 0x1000, 1005 }, + { NULL } +}; + +const struct SpritePalette gUnknown_085F530C[] = { + { gIntro2BrendanNoTurnPal, 1002 }, + { gIntro2BrendanNoTurnPal, 1003 }, + { gIntro2FlygonPal, 1004 }, + { gIntro2FlygonPal, 1005 }, + { NULL } +}; + +const struct CompressedSpriteSheet gUnknown_085F5334[] = { + { gIntro2BrendanTiles, 0x3800, 1002 }, + { NULL } +}; + +const struct CompressedSpriteSheet gUnknown_085F5344[] = { + { gIntro2MayTiles, 0x3800, 1003 }, + { NULL } +}; + +const struct CompressedSpriteSheet gUnknown_085F5354[] = { + { gIntro2BicycleTiles, 0x1000, 1001 }, + { NULL } +}; + +static const struct CompressedSpriteSheet gUnknown_085F5364[] = { + { gIntro2LatiosTiles, 0x1000, 1004 }, + { NULL } +}; + +static const struct CompressedSpriteSheet gUnknown_085F5374[] = { + { gIntro2LatiasTiles, 0x1000, 1005 }, + { NULL } +}; + +const struct SpritePalette gUnknown_085F5384[] = { + { gIntro2BrendanPalette, 1002 }, + { gIntro2MayPalette, 1003 }, + { gIntro2LatiosPalette, 1004 }, + { gIntro2LatiasPalette, 1005 }, + { NULL } +}; + +const struct CompressedSpriteSheet gUnknown_085F53AC[] = { + { gIntro2BrendanTiles, 0x2000, 1002}, + { NULL } +}; + +const struct CompressedSpriteSheet gUnknown_085F53BC[] = { + { gIntro2MayTiles, 0x2000, 1003}, + { NULL } +}; EWRAM_DATA u16 gUnknown_0203BD24 = 0; EWRAM_DATA s16 gUnknown_0203BD26 = 0; EWRAM_DATA s16 gUnknown_0203BD28 = 0; -extern const u16 gUnknown_085F06E0[]/* = INCBIN_U16("graphics/intro/intro2_grass.gbapal")*/; -extern const u16 gUnknown_085F0700[]/* = INCBIN_U16("graphics/intro/intro2_grass_afternoon.gbapal")*/; -extern const u16 gUnknown_085F0720[]/* = INCBIN_U16("graphics/intro/intro2_grass_night.gbapal")*/; -extern const u8 gUnknown_085F0740[]/* = INCBIN_U8("graphics/intro/intro2_grass.4bpp.lz")*/; -extern const u8 gUnknown_085F0BC0[]/* = INCBIN_U8("graphics/intro/intro2_grass_map.bin.lz")*/; -extern const u16 gUnknown_085F0CFC[]/* = INCBIN_U16("graphics/intro/8412818.gbapal")*/; -extern const u16 gUnknown_085F0D5C[]/* = INCBIN_U16("graphics/intro/8412878.gbapal")*/; -extern const u8 gUnknown_085F0DBC[]/* = INCBIN_U8("graphics/intro/intro2_bgclouds.4bpp.lz")*/; -extern const u8 gUnknown_085F1398[]/* = INCBIN_U8("graphics/intro/intro2_bgclouds_map.bin.lz")*/; -extern const u16 gUnknown_085F1668[]/* = INCBIN_U16("graphics/intro/intro2_bgclouds.gbapal")*/; -extern const u16 gUnknown_085F1688[]/* = INCBIN_U16("graphics/intro/intro2_bgclouds_afternoon.gbapal")*/; -extern const u8 gUnknown_085F16A8[]/* = INCBIN_U8("graphics/intro/intro2_bgclouds2.4bpp.lz")*/; -extern const u16 gUnknown_085F17E4[]/* = INCBIN_U16("graphics/intro/intro2_bgtrees2.gbapal")*/; -extern const u16 gUnknown_085F1804[]/* = INCBIN_U16("graphics/intro/intro2_bgtrees2_afternoon.gbapal")*/; -extern const u8 gUnknown_085F1824[]/* = INCBIN_U8("graphics/intro/intro2_bgtrees.4bpp.lz")*/; -extern const u8 gUnknown_085F1EAC[]/* = INCBIN_U8("graphics/intro/intro2_bgtrees_map.bin.lz")*/; -extern const u16 gUnknown_085F21B0[]/* = INCBIN_U16("graphics/intro/intro2_bgtrees.gbapal")*/; -extern const u8 gIntro2TreeTiles[]/* = INCBIN_U8("graphics/intro/intro2_bgtreessmall.4bpp.lz")*/; -extern const u16 gUnknown_085F231C[]/* = INCBIN_U16("graphics/intro/8413E38.gbapal")*/; -extern const u8 gUnknown_085F235C[]/* = INCBIN_U8("graphics/intro/intro2_bgnight.4bpp.lz")*/; // only used in credits, coupled with intro because bicycle sequence -extern const u16 gUnknown_085F2548[]/* = INCBIN_U16("graphics/intro/intro2_bgnight.gbapal")*/; -extern const u8 gUnknown_085F2568[]/* = INCBIN_U8("graphics/intro/intro2_bgnight_map.bin.lz")*/; -extern const u8 gIntro2NightTiles[]/* = INCBIN_U8("graphics/intro/intro2_night.4bpp.lz")*/; -extern const u16 gIntro2BrendanPalette[]/* = INCBIN_U16("graphics/intro/intro2_brendan.gbapal")*/; -extern const u8 gIntro2BrendanTiles[]/* = INCBIN_U8("graphics/intro/intro2_brendan.4bpp.lz")*/; -extern const u16 gIntro2MayPalette[]/* = INCBIN_U16("graphics/intro/intro2_may.gbapal")*/; -extern const u16 gUnknown_08414F90[0xF0]/* = {0}*/; -extern const u8 gIntro2MayTiles[]/* = INCBIN_U8("graphics/intro/intro2_may.4bpp.lz")*/; -extern const u8 gIntro2BicycleTiles[]/* = INCBIN_U8("graphics/intro/intro2_bicycle.4bpp.lz")*/; -extern const u16 gIntro2LatiosPalette[]/* = INCBIN_U16("graphics/intro/intro2_latios.gbapal")*/; -extern const u8 gIntro2LatiosTiles[]/* = INCBIN_U8("graphics/intro/intro2_latios.4bpp.lz")*/; -extern const u16 gIntro2LatiasPalette[]/* = INCBIN_U16("graphics/intro/intro2_latias.gbapal")*/; -extern const u8 gIntro2LatiasTiles[]/* = INCBIN_U8("graphics/intro/intro2_latias.4bpp.lz")*/; - -extern const struct CompressedSpriteSheet gUnknown_085F5064[]/* = { - { gUnknown_085F16A8, 0x400, 2000 }, - {} -}*/; - -extern const struct CompressedSpriteSheet gUnknown_085F50EC[]/* = { - { gIntro2TreeTiles, 0x400, 2000 }, - {} -}*/; - -extern const struct CompressedSpriteSheet gUnknown_085F5180[]/* = { - { gIntro2NightTiles, 0x400, 2000 }, - {} -}*/; - -void sub_817B76C(); -void sub_817B788(); -void sub_817B7A4(); +static void sub_817B76C(void); +static void sub_817B788(void); +static void sub_817B7A4(void); +static void sub_817B458(u8); void load_intro_part2_graphics(u8 a) { @@ -262,7 +528,7 @@ u8 sub_817B3DC(u8 a, u16 b, u16 c, u16 d) } #ifdef NONMATCHING -void sub_817B458(u8 taskId) +static void sub_817B458(u8 taskId) { s16 r4; s32 r2; @@ -305,7 +571,7 @@ void sub_817B458(u8 taskId) } #else ASM_DIRECT -void sub_817B458(u8 taskId) +static void sub_817B458(u8 taskId) { asm("push {r4,r5,lr}\n\ lsl r0, #24\n\ @@ -459,7 +725,7 @@ void sub_817B540(u8 mode) } } -void sub_817B62C(struct Sprite *sprite) +static void sub_817B62C(struct Sprite *sprite) { s32 var; s16 var2 = gUnknown_0203BD28; @@ -485,3 +751,99 @@ void sub_817B62C(struct Sprite *sprite) } } } + +static void sub_817B698(u8 a, const struct IntroCreditsSpriteMetadata *b, const union AnimCmd *const *c, u8 d) +{ + u8 i; + + for(i = 0; i < d; i++) + { + u8 sprite = CreateSprite(&gUnknown_085F504C, b[i].x, b[i].y, b[i].subpriority); + CalcCenterToCornerVec(&gSprites[sprite], b[i].shape, b[i].size, 0); + gSprites[sprite].oam.priority = 3; + gSprites[sprite].oam.shape = b[i].shape; + gSprites[sprite].oam.size = b[i].size; + gSprites[sprite].oam.paletteNum = 0; + gSprites[sprite].anims = c; + StartSpriteAnim(&gSprites[sprite], b[i].animNum); + gSprites[sprite].data[0] = a; + gSprites[sprite].data[1] = b[i].xOff; + gSprites[sprite].data[2] = 0; + } +} + +static void sub_817B76C(void) +{ + sub_817B698(0, gUnknown_085F50A4, gUnknown_085F5094, 9); +} + +static void sub_817B788(void) +{ + sub_817B698(1, gUnknown_085F5120, gUnknown_085F5114, 12); +} + +static void sub_817B7A4(void) +{ + sub_817B698(1, gUnknown_085F519C, gUnknown_085F5198, 6); +} + +static void nullsub_65(struct Sprite *sprite) +{ +} + +static void sub_817B7C4(struct Sprite* sprite) +{ + sprite->invisible = gSprites[sprite->data[0]].invisible; + sprite->pos1.x = gSprites[sprite->data[0]].pos1.x; + sprite->pos1.y = gSprites[sprite->data[0]].pos1.y + 8; + sprite->pos2.x = gSprites[sprite->data[0]].pos2.x; + sprite->pos2.y = gSprites[sprite->data[0]].pos2.y; +} + +u8 intro_create_brendan_sprite(s16 a, s16 b) +{ + u8 sprite = CreateSprite(&gUnknown_085F51EC, a, b, 2); + u8 brendan = CreateSprite(&gUnknown_085F523C, a, b + 8, 3); + gSprites[brendan].data[0] = sprite; + return sprite; +} + +u8 intro_create_may_sprite(s16 a, s16 b) +{ + u8 sprite = CreateSprite(&gUnknown_085F5204, a, b, 2); + u8 may = CreateSprite(&gUnknown_085F5254, a, b + 8, 3); + gSprites[may].data[0] = sprite; + return sprite; +} + +static void nullsub_66(struct Sprite *sprite) +{ +} + +static void sub_817B8E8(struct Sprite* sprite) +{ + sprite->invisible = gSprites[sprite->data[0]].invisible; + sprite->pos1.y = gSprites[sprite->data[0]].pos1.y; + sprite->pos2.x = gSprites[sprite->data[0]].pos2.x; + sprite->pos2.y = gSprites[sprite->data[0]].pos2.y; +} + +static u8 sub_817B948(s16 a, s16 b) +{ + u8 sprite = CreateSprite(&gUnknown_085F528C, a - 32, b, 5); + u8 latios = CreateSprite(&gUnknown_085F528C, a + 32, b, 6); + gSprites[latios].data[0] = sprite; + StartSpriteAnim(&gSprites[latios], 1); + gSprites[latios].callback = &sub_817B8E8; + return sprite; +} + +u8 intro_create_flygon_sprite(s16 a, s16 b) +{ + u8 sprite = CreateSprite(&gUnknown_085F52A4, a - 32, b, 5); + u8 flygon = CreateSprite(&gUnknown_085F52A4, a + 32, b, 6); + gSprites[flygon].data[0] = sprite; + StartSpriteAnim(&gSprites[flygon], 1); + gSprites[flygon].callback = &sub_817B8E8; + return sprite; +} diff --git a/src/starter_choose.c b/src/starter_choose.c index 83a7b81121..480edbcb74 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -25,12 +25,6 @@ #define STARTER_PKMN_POS_X 120 #define STARTER_PKMN_POS_Y 64 -// graphics -extern const u32 gBirchHelpGfx[]; -extern const u32 gBirchBagTilemap[]; -extern const u32 gBirchGrassTilemap[]; -extern const u16 gBirchBagGrassPal[]; - // text extern const u8 gText_BirchInTrouble[]; extern const u8 gText_ConfirmStarterChoice[]; diff --git a/sym_ewram.txt b/sym_ewram.txt index 47186c5450..c6e6a3500b 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -862,22 +862,7 @@ gUnknown_0203BCD4: @ 203BCD4 .space 0x4 .include "src/hall_of_fame.o" - -gUnknown_0203BCE0: @ 203BCE0 - .space 0x2 - -gUnknown_0203BCE2: @ 203BCE2 - .space 0x2 - -gHasHallOfFameRecords: @ 203BCE4 - .space 0x1 - -gUnknown_0203BCE5: @ 203BCE5 - .space 0x3 - -gUnknown_0203BCE8: @ 203BCE8 - .space 0x4 - + .include "src/credits.o" .include "src/lottery_corner.o" .include "src/diploma.o" .include "src/berry_tag_screen.o"