From 89c98f2ab74e6097fd85b05b64965c10c9941b5b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 24 Sep 2019 14:00:30 -0400 Subject: [PATCH 1/6] Start credits (nonmatching sub_80F3BD0) --- asm/credits.s | 966 --------------------------------- data/credits.s | 70 +++ data/data_83FECCC.s | 66 --- include/credits.h | 6 + include/field_weather.h | 1 + include/overworld.h | 3 + include/strings.h | 3 + ld_script.txt | 3 + src/credits.c | 1116 +++++++++++++++++++++++++++++++++++++++ 9 files changed, 1202 insertions(+), 1032 deletions(-) create mode 100644 data/credits.s create mode 100644 include/credits.h create mode 100644 src/credits.c diff --git a/asm/credits.s b/asm/credits.s index e52275e77..960ea86a5 100644 --- a/asm/credits.s +++ b/asm/credits.s @@ -5,972 +5,6 @@ .text - thumb_func_start sub_80F39B4 -sub_80F39B4: @ 80F39B4 - push {r4,lr} - ldr r4, _080F39E0 @ =gUnknown_203AB40 - movs r0, 0x20 - bl AllocZeroed - str r0, [r4] - bl ResetTasks - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x2] - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0x1D] - bl ResetSpriteData - ldr r0, _080F39E4 @ =sub_80F39E8 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F39E0: .4byte gUnknown_203AB40 -_080F39E4: .4byte sub_80F39E8 - thumb_func_end sub_80F39B4 - - thumb_func_start sub_80F39E8 -sub_80F39E8: @ 80F39E8 - push {lr} - bl sub_80F3BD0 - adds r1, r0, 0 - cmp r1, 0x1 - beq _080F3A16 - cmp r1, 0x1 - bgt _080F39FE - cmp r1, 0 - beq _080F3A04 - b _080F3A68 -_080F39FE: - cmp r1, 0x2 - beq _080F3A4C - b _080F3A68 -_080F3A04: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - b _080F3A68 -_080F3A16: - ldr r0, _080F3A28 @ =gUnknown_203AB40 - ldr r0, [r0] - ldrb r0, [r0, 0x1D] - ands r1, r0 - cmp r1, 0 - beq _080F3A2C - bl sub_80574A4 - b _080F3A3C - .align 2, 0 -_080F3A28: .4byte gUnknown_203AB40 -_080F3A2C: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade -_080F3A3C: - ldr r0, _080F3A48 @ =gUnknown_203AB40 - ldr r1, [r0] - ldrb r0, [r1, 0x1D] - adds r0, 0x1 - strb r0, [r1, 0x1D] - b _080F3A68 - .align 2, 0 -_080F3A48: .4byte gUnknown_203AB40 -_080F3A4C: - movs r0, 0x80 - lsls r0, 7 - bl FlagClear - ldr r1, _080F3A6C @ =gUnknown_2031DD8 - movs r0, 0 - strb r0, [r1] - ldr r0, _080F3A70 @ =gUnknown_203AB40 - ldr r0, [r0] - bl Free - movs r0, 0xFF - bl SoftReset -_080F3A68: - pop {r0} - bx r0 - .align 2, 0 -_080F3A6C: .4byte gUnknown_2031DD8 -_080F3A70: .4byte gUnknown_203AB40 - thumb_func_end sub_80F39E8 - - thumb_func_start sub_80F3A74 -sub_80F3A74: @ 80F3A74 - push {lr} - movs r1, 0x80 - lsls r1, 7 - movs r0, 0 - bl ClearGpuRegBits - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - ldr r1, _080F3AA0 @ =0x00001f3f - movs r0, 0x48 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0xE - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080F3AA0: .4byte 0x00001f3f - thumb_func_end sub_80F3A74 - - thumb_func_start sub_80F3AA4 -sub_80F3AA4: @ 80F3AA4 - push {lr} - movs r0, 0x50 - movs r1, 0xCE - bl SetGpuReg - movs r1, 0x82 - lsls r1, 3 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0xA - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_80F3AA4 - - thumb_func_start sub_80F3AC4 -sub_80F3AC4: @ 80F3AC4 - push {r4,lr} - ldr r0, _080F3AFC @ =gUnknown_8410E08 - bl AddWindow - ldr r4, _080F3B00 @ =gUnknown_203AB40 - ldr r1, [r4] - strb r0, [r1, 0xA] - ldr r0, [r4] - ldrb r0, [r0, 0xA] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldrb r0, [r0, 0xA] - bl PutWindowTilemap - ldr r0, [r4] - ldrb r0, [r0, 0xA] - movs r1, 0x3 - bl CopyWindowToVram - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0xB] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F3AFC: .4byte gUnknown_8410E08 -_080F3B00: .4byte gUnknown_203AB40 - thumb_func_end sub_80F3AC4 - - thumb_func_start sub_80F3B04 -sub_80F3B04: @ 80F3B04 - push {r4,lr} - ldr r4, _080F3B28 @ =gUnknown_203AB40 - ldr r1, [r4] - ldrb r0, [r1, 0xB] - cmp r0, 0 - beq _080F3B20 - ldrb r0, [r1, 0xA] - bl RemoveWindow - bl CleanupOverworldWindowsAndTilemaps - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0xB] -_080F3B20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F3B28: .4byte gUnknown_203AB40 - thumb_func_end sub_80F3B04 - - thumb_func_start sub_80F3B2C -sub_80F3B2C: @ 80F3B2C - push {r4,r5,lr} - ldr r5, _080F3B40 @ =gUnknown_203AB40 - ldr r0, [r5] - ldrb r4, [r0, 0x1] - cmp r4, 0 - beq _080F3B44 - cmp r4, 0x1 - beq _080F3B5E -_080F3B3C: - movs r0, 0 - b _080F3BB0 - .align 2, 0 -_080F3B40: .4byte gUnknown_203AB40 -_080F3B44: - movs r0, 0x80 - lsls r0, 7 - bl FlagSet - ldr r1, _080F3BB8 @ =gUnknown_2031DD8 - movs r0, 0x2 - strb r0, [r1] - ldr r0, [r5] - strb r4, [r0, 0x1C] - ldr r1, [r5] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] -_080F3B5E: - ldr r0, _080F3BBC @ =gUnknown_203AB40 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - ldr r2, _080F3BC0 @ =gUnknown_8414588 - ldrb r1, [r1, 0x9] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - movs r2, 0 - bl sub_805750C - cmp r0, 0 - beq _080F3B3C - bl sub_80F3AC4 - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - ldr r1, _080F3BC4 @ =0x0000247c - movs r0, 0x44 - bl SetGpuReg - bl sub_80F3A74 - bl sub_80F3AA4 - movs r0, 0xF0 - bl Menu_LoadStdPalAt - ldr r0, _080F3BC8 @ =gPlttBufferUnfaded - movs r2, 0xFF - lsls r2, 1 - adds r0, r2 - movs r1, 0 - strh r1, [r0] - ldr r0, _080F3BCC @ =gPlttBufferFaded - adds r0, r2 - strh r1, [r0] - movs r0, 0x1 -_080F3BB0: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F3BB8: .4byte gUnknown_2031DD8 -_080F3BBC: .4byte gUnknown_203AB40 -_080F3BC0: .4byte gUnknown_8414588 -_080F3BC4: .4byte 0x0000247c -_080F3BC8: .4byte gPlttBufferUnfaded -_080F3BCC: .4byte gPlttBufferFaded - thumb_func_end sub_80F3B2C - - thumb_func_start sub_80F3BD0 -sub_80F3BD0: @ 80F3BD0 - push {r4-r7,lr} - sub sp, 0x24 - ldr r1, _080F3BEC @ =gUnknown_203AB40 - ldr r0, [r1] - ldrb r0, [r0] - adds r7, r1, 0 - cmp r0, 0x12 - bls _080F3BE2 - b _080F4180 -_080F3BE2: - lsls r0, 2 - ldr r1, _080F3BF0 @ =_080F3BF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F3BEC: .4byte gUnknown_203AB40 -_080F3BF0: .4byte _080F3BF4 - .align 2, 0 -_080F3BF4: - .4byte _080F3C40 - .4byte _080F3C64 - .4byte _080F3C98 - .4byte _080F3CEE - .4byte _080F3D0A - .4byte _080F3D48 - .4byte _080F3D6A - .4byte _080F3EB4 - .4byte _080F3F24 - .4byte _080F3F84 - .4byte _080F3FC4 - .4byte _080F3FF0 - .4byte _080F400A - .4byte _080F4084 - .4byte _080F40B8 - .4byte _080F40D0 - .4byte _080F4100 - .4byte _080F4118 - .4byte _080F4170 -_080F3C40: - bl sub_80F3A74 - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - ldr r1, _080F3C5C @ =0x00004f51 - movs r0, 0x44 - bl SetGpuReg - ldr r0, _080F3C60 @ =gUnknown_203AB40 - ldr r1, [r0] - movs r0, 0x1 - b _080F413C - .align 2, 0 -_080F3C5C: .4byte 0x00004f51 -_080F3C60: .4byte gUnknown_203AB40 -_080F3C64: - bl sub_80F3AA4 - bl sub_80F3AC4 - movs r0, 0xF0 - bl Menu_LoadStdPalAt - ldr r0, _080F3C8C @ =gPlttBufferUnfaded - movs r2, 0xFF - lsls r2, 1 - adds r0, r2 - movs r1, 0 - strh r1, [r0] - ldr r0, _080F3C90 @ =gPlttBufferFaded - adds r0, r2 - strh r1, [r0] - ldr r0, _080F3C94 @ =gUnknown_203AB40 - ldr r1, [r0] - movs r0, 0x2 - b _080F413C - .align 2, 0 -_080F3C8C: .4byte gPlttBufferUnfaded -_080F3C90: .4byte gPlttBufferFaded -_080F3C94: .4byte gUnknown_203AB40 -_080F3C98: - movs r0, 0x44 - bl GetGpuReg - add r1, sp, 0x14 - lsls r0, 16 - lsrs r0, 24 - strh r0, [r1] - movs r0, 0x44 - bl GetGpuReg - add r2, sp, 0x14 - movs r1, 0xFF - ands r1, r0 - strh r1, [r2, 0x2] - adds r0, r2, 0 - ldrh r0, [r0] - cmp r0, 0x24 - bne _080F3CCC - ldr r0, _080F3CC8 @ =gUnknown_203AB40 - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0x4] - movs r0, 0x3 - b _080F413C - .align 2, 0 -_080F3CC8: .4byte gUnknown_203AB40 -_080F3CCC: - add r1, sp, 0x14 - subs r0, 0x1 - strh r0, [r1] - adds r2, r1, 0 - adds r0, r1, 0 - ldrh r1, [r0, 0x2] - adds r1, 0x1 - strh r1, [r2, 0x2] - ldrh r0, [r0] - lsls r0, 8 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - b _080F3D06 -_080F3CEE: - ldr r1, [r7] - ldrh r0, [r1, 0x4] - cmp r0, 0 - bne _080F3D52 - movs r0, 0 - bl sub_80F4930 - ldr r0, [r7] - movs r1, 0x64 - strh r1, [r0, 0x4] - movs r1, 0x4 - strb r1, [r0] -_080F3D06: - movs r0, 0 - b _080F4182 -_080F3D0A: - ldr r1, [r7] - ldrh r0, [r1, 0x4] - adds r2, r0, 0 - cmp r2, 0 - bne _080F3D52 - movs r0, 0xB4 - lsls r0, 1 - strh r0, [r1, 0x4] - ldrb r0, [r1, 0xA] - movs r1, 0x1 - str r1, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - ldr r1, _080F3D40 @ =gUnknown_8410E00 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r1, _080F3D44 @ =gUnknown_841D198 - str r1, [sp, 0x10] - movs r1, 0x1 - movs r2, 0x8 - movs r3, 0x29 - bl AddTextPrinterParameterized4 - ldr r1, [r7] - movs r0, 0x5 - b _080F413C - .align 2, 0 -_080F3D40: .4byte gUnknown_8410E00 -_080F3D44: .4byte gUnknown_841D198 -_080F3D48: - ldr r1, [r7] - ldrh r0, [r1, 0x4] - adds r4, r0, 0 - cmp r4, 0 - beq _080F3D58 -_080F3D52: - subs r0, 0x1 - strh r0, [r1, 0x4] - b _080F3D06 -_080F3D58: - bl sub_80F3B04 - ldr r0, [r7] - movs r1, 0x6 - strb r1, [r0] - ldr r0, [r7] - strh r4, [r0, 0x4] - strh r4, [r0, 0x6] - b _080F3D06 -_080F3D6A: - ldr r2, [r7] - ldrh r0, [r2, 0x4] - cmp r0, 0 - beq _080F3D7A - subs r0, 0x1 - strh r0, [r2, 0x4] - ldrb r0, [r2, 0x8] - b _080F4182 -_080F3D7A: - ldr r1, _080F3D94 @ =gUnknown_8410CF4 - ldrh r0, [r2, 0x6] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x5 - bls _080F3D8A - b _080F3E94 -_080F3D8A: - lsls r0, 2 - ldr r1, _080F3D98 @ =_080F3D9C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F3D94: .4byte gUnknown_8410CF4 -_080F3D98: .4byte _080F3D9C - .align 2, 0 -_080F3D9C: - .4byte _080F3DB4 - .4byte _080F3DE0 - .4byte _080F3E10 - .4byte _080F3E30 - .4byte _080F3E58 - .4byte _080F3E8C -_080F3DB4: - movs r0, 0x80 - lsls r0, 8 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r4, _080F3DDC @ =gUnknown_203AB40 - ldr r1, [r4] - movs r0, 0x7 - strb r0, [r1] - ldr r0, [r4] - ldrb r0, [r0, 0xA] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldrb r0, [r0, 0x8] - b _080F4182 - .align 2, 0 -_080F3DDC: .4byte gUnknown_203AB40 -_080F3DE0: - ldr r2, _080F3E04 @ =gUnknown_203AB40 - ldr r1, [r2] - movs r0, 0xA - strb r0, [r1] - ldr r2, [r2] - ldr r1, _080F3E08 @ =gUnknown_8410CF4 - ldrh r0, [r2, 0x6] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - strb r0, [r2, 0x9] - ldr r2, _080F3E0C @ =0x3fffffff - movs r0, 0x1 - movs r1, 0 - bl sub_807A944 - b _080F3E94 - .align 2, 0 -_080F3E04: .4byte gUnknown_203AB40 -_080F3E08: .4byte gUnknown_8410CF4 -_080F3E0C: .4byte 0x3fffffff -_080F3E10: - ldr r2, _080F3E28 @ =gUnknown_203AB40 - ldr r1, [r2] - movs r0, 0xC - strb r0, [r1] - ldr r2, [r2] - ldr r1, _080F3E2C @ =gUnknown_8410CF4 - ldrh r0, [r2, 0x6] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - strb r0, [r2, 0x9] - b _080F3E94 - .align 2, 0 -_080F3E28: .4byte gUnknown_203AB40 -_080F3E2C: .4byte gUnknown_8410CF4 -_080F3E30: - ldr r2, _080F3E50 @ =gUnknown_203AB40 - ldr r1, [r2] - movs r0, 0xD - strb r0, [r1] - ldr r2, [r2] - ldr r1, _080F3E54 @ =gUnknown_8410CF4 - ldrh r0, [r2, 0x6] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - strb r0, [r2, 0x9] - movs r0, 0x1 - movs r1, 0 - bl fade_screen - b _080F3E94 - .align 2, 0 -_080F3E50: .4byte gUnknown_203AB40 -_080F3E54: .4byte gUnknown_8410CF4 -_080F3E58: - ldr r2, _080F3E84 @ =gUnknown_203AB40 - ldr r1, [r2] - movs r3, 0 - movs r0, 0xF - strb r0, [r1] - ldr r2, [r2] - ldr r1, _080F3E88 @ =gUnknown_8410CF4 - ldrh r0, [r2, 0x6] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - strb r0, [r2, 0x9] - movs r0, 0x1 - negs r0, r0 - str r3, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080F3E94 - .align 2, 0 -_080F3E84: .4byte gUnknown_203AB40 -_080F3E88: .4byte gUnknown_8410CF4 -_080F3E8C: - ldr r0, _080F3EAC @ =gUnknown_203AB40 - ldr r1, [r0] - movs r0, 0x11 - strb r0, [r1] -_080F3E94: - ldr r0, _080F3EAC @ =gUnknown_203AB40 - ldr r1, [r0] - ldr r2, _080F3EB0 @ =gUnknown_8410CF4 - ldrh r0, [r1, 0x6] - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x2] - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - adds r0, 0x1 - strh r0, [r1, 0x6] - b _080F3D06 - .align 2, 0 -_080F3EAC: .4byte gUnknown_203AB40 -_080F3EB0: .4byte gUnknown_8410CF4 -_080F3EB4: - ldr r0, _080F3F14 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _080F3FBA - add r3, sp, 0x14 - ldr r5, _080F3F18 @ =gUnknown_84145BC - ldr r4, _080F3F1C @ =gUnknown_8410CF4 - ldr r2, [r7] - ldrh r0, [r2, 0x6] - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x8] - strh r0, [r3] - ldrb r0, [r2, 0xA] - str r6, [sp] - str r6, [sp, 0x4] - ldr r1, _080F3F20 @ =gUnknown_8410E00 - str r1, [sp, 0x8] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0xC] - ldrh r1, [r2, 0x6] - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - ldr r1, [r1] - str r1, [sp, 0x10] - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x6 - bl AddTextPrinterParameterized4 - ldr r1, [r7] - movs r0, 0x8 - b _080F3FB8 - .align 2, 0 -_080F3F14: .4byte gPaletteFade -_080F3F18: .4byte gUnknown_84145BC -_080F3F1C: .4byte gUnknown_8410CF4 -_080F3F20: .4byte gUnknown_8410E00 -_080F3F24: - add r4, sp, 0x14 - ldr r3, _080F3F78 @ =gUnknown_84145BC - ldr r5, _080F3F7C @ =gUnknown_8410CF4 - ldr r2, [r7] - ldrh r0, [r2, 0x6] - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x8] - movs r1, 0 - strh r0, [r4] - ldrb r0, [r2, 0xA] - str r1, [sp] - str r1, [sp, 0x4] - ldr r1, _080F3F80 @ =gUnknown_8410E04 - str r1, [sp, 0x8] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0xC] - ldrh r1, [r2, 0x6] - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, 0x4 - adds r1, r3 - ldr r1, [r1] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r2, 0x8 - movs r3, 0x6 - bl AddTextPrinterParameterized4 - ldr r1, [r7] - movs r0, 0x9 - b _080F3FB8 - .align 2, 0 -_080F3F78: .4byte gUnknown_84145BC -_080F3F7C: .4byte gUnknown_8410CF4 -_080F3F80: .4byte gUnknown_8410E04 -_080F3F84: - ldr r0, [r7] - ldrb r0, [r0, 0xA] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r7] - ldr r2, _080F3FC0 @ =gUnknown_8410CF4 - ldrh r0, [r1, 0x6] - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x2] - movs r2, 0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - adds r0, 0x1 - strh r0, [r1, 0x6] - movs r0, 0x80 - lsls r0, 8 - str r2, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, [r7] - movs r0, 0x6 -_080F3FB8: - strb r0, [r1] -_080F3FBA: - ldr r0, [r7] - ldrb r0, [r0, 0x8] - b _080F4182 - .align 2, 0 -_080F3FC0: .4byte gUnknown_8410CF4 -_080F3FC4: - ldr r0, _080F3FE8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080F3FD6 - b _080F3D06 -_080F3FD6: - bl sub_80F3B04 - ldr r1, _080F3FEC @ =gUnknown_203AB40 - ldr r0, [r1] - strb r4, [r0, 0x1] - ldr r1, [r1] - movs r0, 0xB - b _080F413C - .align 2, 0 -_080F3FE8: .4byte gPaletteFade -_080F3FEC: .4byte gUnknown_203AB40 -_080F3FF0: - ldr r0, [r7] - ldrb r0, [r0, 0x9] - bl sub_80F3B2C - cmp r0, 0 - bne _080F3FFE - b _080F3D06 -_080F3FFE: - ldr r1, [r7] - movs r0, 0x1 - strb r0, [r1, 0x8] - ldr r1, [r7] - movs r0, 0x6 - b _080F413C -_080F400A: - ldr r0, _080F4050 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080F401C - b _080F3D06 -_080F401C: - bl sub_80F3B04 - ldr r1, _080F4054 @ =gUnknown_203AB40 - ldr r0, [r1] - strb r4, [r0, 0x1] - adds r4, r1, 0 -_080F4028: - ldr r0, [r4] - ldrb r0, [r0, 0x9] - bl sub_80F3B2C - cmp r0, 0 - beq _080F4028 - ldr r0, _080F4054 @ =gUnknown_203AB40 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x6 - beq _080F4058 - cmp r0, 0x6 - ble _080F404A - cmp r0, 0x9 - beq _080F405E - cmp r0, 0xC - beq _080F4064 -_080F404A: - add r1, sp, 0x14 - movs r0, 0x1 - b _080F4068 - .align 2, 0 -_080F4050: .4byte gPaletteFade -_080F4054: .4byte gUnknown_203AB40 -_080F4058: - add r1, sp, 0x14 - movs r0, 0x2 - b _080F4068 -_080F405E: - add r1, sp, 0x14 - movs r0, 0x3 - b _080F4068 -_080F4064: - add r1, sp, 0x14 - movs r0, 0x4 -_080F4068: - strh r0, [r1] - add r0, sp, 0x14 - ldrb r0, [r0] - bl sub_80F4930 - ldr r2, _080F4080 @ =gUnknown_203AB40 - ldr r1, [r2] - movs r0, 0x1 - strb r0, [r1, 0x8] - ldr r1, [r2] - movs r0, 0x6 - b _080F413C - .align 2, 0 -_080F4080: .4byte gUnknown_203AB40 -_080F4084: - ldr r0, _080F40B0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080F4096 - b _080F3D06 -_080F4096: - bl sub_80F48D0 - bl sub_80F3B04 - ldr r1, _080F40B4 @ =gUnknown_203AB40 - ldr r0, [r1] - strb r4, [r0, 0x1] - ldr r0, [r1] - strb r4, [r0, 0x8] - ldr r1, [r1] - movs r0, 0xE - b _080F413C - .align 2, 0 -_080F40B0: .4byte gPaletteFade -_080F40B4: .4byte gUnknown_203AB40 -_080F40B8: - bl sub_80F4328 - cmp r0, 0 - bne _080F40C2 - b _080F3D06 -_080F40C2: - ldr r0, _080F40CC @ =gUnknown_203AB40 - ldr r1, [r0] - movs r0, 0x6 - b _080F413C - .align 2, 0 -_080F40CC: .4byte gUnknown_203AB40 -_080F40D0: - ldr r0, _080F40F8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080F40E2 - b _080F3D06 -_080F40E2: - bl sub_80F3B04 - ldr r1, _080F40FC @ =gUnknown_203AB40 - ldr r0, [r1] - strb r4, [r0, 0x1] - ldr r0, [r1] - strb r4, [r0, 0x8] - ldr r1, [r1] - movs r0, 0x10 - b _080F413C - .align 2, 0 -_080F40F8: .4byte gPaletteFade -_080F40FC: .4byte gUnknown_203AB40 -_080F4100: - bl sub_80F4674 - cmp r0, 0 - bne _080F410A - b _080F3D06 -_080F410A: - ldr r0, _080F4114 @ =gUnknown_203AB40 - ldr r1, [r0] - movs r0, 0x6 - b _080F413C - .align 2, 0 -_080F4114: .4byte gUnknown_203AB40 -_080F4118: - ldr r0, _080F4140 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F414C - movs r0, 0x1 - negs r0, r0 - ldr r1, _080F4144 @ =0x00007fff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080F4148 @ =gUnknown_203AB40 - ldr r1, [r0] - movs r0, 0x12 -_080F413C: - strb r0, [r1] - b _080F3D06 - .align 2, 0 -_080F4140: .4byte gMain -_080F4144: .4byte 0x00007fff -_080F4148: .4byte gUnknown_203AB40 -_080F414C: - ldr r1, [r7] - ldrh r0, [r1, 0x4] - cmp r0, 0 - beq _080F4156 - b _080F3D52 -_080F4156: - movs r0, 0x12 - strb r0, [r1] - subs r0, 0x13 - ldr r1, _080F416C @ =0x00007fff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080F3D06 - .align 2, 0 -_080F416C: .4byte 0x00007fff -_080F4170: - ldr r0, _080F418C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080F4180 - bl sub_80F3B04 -_080F4180: - movs r0, 0x2 -_080F4182: - add sp, 0x24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F418C: .4byte gPaletteFade - thumb_func_end sub_80F3BD0 - thumb_func_start sub_80F4190 sub_80F4190: @ 80F4190 push {lr} diff --git a/data/credits.s b/data/credits.s new file mode 100644 index 000000000..ba4a254e5 --- /dev/null +++ b/data/credits.s @@ -0,0 +1,70 @@ + .section .rodata + .align 2, 0 + +gUnknown_8410CF4:: @ 8410CF4 + .incbin "baserom.gba", 0x410CF4, 0x10C + +gUnknown_8410E00:: @ 8410E00 + .incbin "baserom.gba", 0x410E00, 0x4 + +gUnknown_8410E04:: @ 8410E04 + .incbin "baserom.gba", 0x410E04, 0x4 + +gUnknown_8410E08:: @ 8410E08 + .incbin "baserom.gba", 0x410E08, 0x8 + +gUnknown_8410E10:: @ 8410E10 + .incbin "baserom.gba", 0x410E10, 0x20 + +gUnknown_8410E30:: @ 8410E30 + .incbin "baserom.gba", 0x410E30, 0xDC8 + +gUnknown_8411BF8:: @ 8411BF8 + .incbin "baserom.gba", 0x411BF8, 0x20 + +gUnknown_8411C18:: @ 8411C18 + .incbin "baserom.gba", 0x411C18, 0xD88 + +gUnknown_84129A0:: @ 84129A0 + .incbin "baserom.gba", 0x4129A0, 0x20 + +gUnknown_84129C0:: @ 84129C0 + .incbin "baserom.gba", 0x4129C0, 0x958 + +gUnknown_8413318:: @ 8413318 + .incbin "baserom.gba", 0x413318, 0x20 + +gUnknown_8413338:: @ 8413338 + .incbin "baserom.gba", 0x413338, 0x51C + +gUnknown_8413854:: @ 8413854 + .incbin "baserom.gba", 0x413854, 0x20 + +gUnknown_8413874:: @ 8413874 + .incbin "baserom.gba", 0x413874, 0x524 + +gUnknown_8413D98:: @ 8413D98 + .incbin "baserom.gba", 0x413D98, 0x20 + +gUnknown_8413DB8:: @ 8413DB8 + .incbin "baserom.gba", 0x413DB8, 0x564 + +gUnknown_841431C:: @ 841431C + .incbin "baserom.gba", 0x41431C, 0x48 + +gUnknown_8414364:: @ 8414364 + .incbin "baserom.gba", 0x414364, 0x54 + +gUnknown_84143B8:: @ 84143B8 + .incbin "baserom.gba", 0x4143B8, 0x18 + +gUnknown_84143D0:: @ 84143D0 + .incbin "baserom.gba", 0x4143D0, 0x1B8 + +gUnknown_8414588:: @ 8414588 + .incbin "baserom.gba", 0x414588, 0x34 + +gUnknown_84145BC:: @ 84145BC + .incbin "baserom.gba", 0x4145BC, 0x204 + + .align 2, 0 diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index 2107a7c0f..26609158f 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -281,72 +281,6 @@ gUnknown_84105B4:: @ 84105B4 gUnknown_8410CDC:: @ 8410CDC .incbin "baserom.gba", 0x410CDC, 0x18 -gUnknown_8410CF4:: @ 8410CF4 - .incbin "baserom.gba", 0x410CF4, 0x10C - -gUnknown_8410E00:: @ 8410E00 - .incbin "baserom.gba", 0x410E00, 0x4 - -gUnknown_8410E04:: @ 8410E04 - .incbin "baserom.gba", 0x410E04, 0x4 - -gUnknown_8410E08:: @ 8410E08 - .incbin "baserom.gba", 0x410E08, 0x8 - -gUnknown_8410E10:: @ 8410E10 - .incbin "baserom.gba", 0x410E10, 0x20 - -gUnknown_8410E30:: @ 8410E30 - .incbin "baserom.gba", 0x410E30, 0xDC8 - -gUnknown_8411BF8:: @ 8411BF8 - .incbin "baserom.gba", 0x411BF8, 0x20 - -gUnknown_8411C18:: @ 8411C18 - .incbin "baserom.gba", 0x411C18, 0xD88 - -gUnknown_84129A0:: @ 84129A0 - .incbin "baserom.gba", 0x4129A0, 0x20 - -gUnknown_84129C0:: @ 84129C0 - .incbin "baserom.gba", 0x4129C0, 0x958 - -gUnknown_8413318:: @ 8413318 - .incbin "baserom.gba", 0x413318, 0x20 - -gUnknown_8413338:: @ 8413338 - .incbin "baserom.gba", 0x413338, 0x51C - -gUnknown_8413854:: @ 8413854 - .incbin "baserom.gba", 0x413854, 0x20 - -gUnknown_8413874:: @ 8413874 - .incbin "baserom.gba", 0x413874, 0x524 - -gUnknown_8413D98:: @ 8413D98 - .incbin "baserom.gba", 0x413D98, 0x20 - -gUnknown_8413DB8:: @ 8413DB8 - .incbin "baserom.gba", 0x413DB8, 0x564 - -gUnknown_841431C:: @ 841431C - .incbin "baserom.gba", 0x41431C, 0x48 - -gUnknown_8414364:: @ 8414364 - .incbin "baserom.gba", 0x414364, 0x54 - -gUnknown_84143B8:: @ 84143B8 - .incbin "baserom.gba", 0x4143B8, 0x18 - -gUnknown_84143D0:: @ 84143D0 - .incbin "baserom.gba", 0x4143D0, 0x1B8 - -gUnknown_8414588:: @ 8414588 - .incbin "baserom.gba", 0x414588, 0x34 - -gUnknown_84145BC:: @ 84145BC - .incbin "baserom.gba", 0x4145BC, 0x204 - @ strings .section .rodata.841EE44 diff --git a/include/credits.h b/include/credits.h new file mode 100644 index 000000000..c8a19bbeb --- /dev/null +++ b/include/credits.h @@ -0,0 +1,6 @@ +#ifndef GUARD_CREDITS_H +#define GUARD_CREDITS_H + + + +#endif //GUARD_CREDITS_H diff --git a/include/field_weather.h b/include/field_weather.h index c3ecd4fa6..3e544b106 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -16,5 +16,6 @@ void PlayRainStoppingSoundEffect(void); bool8 sub_807AA70(void); void SetWeatherScreenFadeOut(void); void sub_807B070(void); +void sub_807A944(u8, u8, u32); #endif // GUARD_WEATHER_H diff --git a/include/overworld.h b/include/overworld.h index 7c1f34e41..3d973d844 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -119,4 +119,7 @@ bool32 sub_8055C9C(void); void Overworld_ResetStateAfterDigEscRope(void); bool32 sub_8058244(void); +void sub_80574A4(void); +bool32 sub_805750C(u8 *, const char *, u8); + #endif //GUARD_ROM4_H diff --git a/include/strings.h b/include/strings.h index 97c120ff3..951ab264c 100644 --- a/include/strings.h +++ b/include/strings.h @@ -208,4 +208,7 @@ extern const u8 gString_OutOfCoins[]; extern const u8 gString_QuitPlaying[]; extern const u8 gString_SlotMachineControls[]; +// credits +extern const u8 gUnknown_841D198[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 053ee4abc..17ff0d063 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -212,6 +212,7 @@ SECTIONS { src/intro.o(.text); asm/battle_anim_special.o(.text); asm/hall_of_fame.o(.text); + src/credits.o(.text); asm/credits.o(.text); src/diploma.o(.text); asm/save_failed_screen.o(.text); @@ -424,6 +425,8 @@ SECTIONS { data/data_83FECCC.o(.rodata); src/intro.o(.rodata); data/data_83FECCC.o(.rodata.battle_anim_special); + src/credits.o(.rodata); + data/credits.o(.rodata); src/diploma.o(.rodata); data/strings.o(.rodata); data/data_83FECCC.o(.rodata.841EE44); diff --git a/src/credits.c b/src/credits.c new file mode 100644 index 000000000..0329bf7c3 --- /dev/null +++ b/src/credits.c @@ -0,0 +1,1116 @@ +#include "global.h" +#include "malloc.h" +#include "palette.h" +#include "gpu_regs.h" +#include "task.h" +#include "overworld.h" +#include "event_data.h" +#include "window.h" +#include "new_menu_helpers.h" +#include "menu.h" +#include "strings.h" +#include "field_weather.h" + +struct CreditsResources +{ + u8 unk_00; + u8 unk_01; + u8 unk_02; + u16 unk_04; + u16 unk_06; + u8 unk_08; + u8 unk_09; + u8 unk_0A; + bool8 unk_0B; + u8 filler_0C[16]; + u8 unk_1C; + u8 unk_1D; +}; + +struct UnkStruct_8410CF4 +{ + u8 unk0; + u8 unk1; + u16 unk2; +}; + +struct UnkStruct_84145BC +{ + const u8 * unk_0; + const u8 * unk_4; + u8 unk_8; +}; + +EWRAM_DATA struct CreditsResources * gUnknown_203AB40 = NULL; + +void sub_80F39E8(void); +s32 sub_80F3BD0(void); +bool32 sub_80F4328(void); +bool32 sub_80F4674(void); +void sub_80F48D0(void); +void sub_80F4930(u8 a0); + +/* +const ALIGNED(4) u8 gUnknown_8410E00[3] = {0, 5, 2}; +const ALIGNED(4) u8 gUnknown_8410E04[3] = {0, 1, 2}; + +const struct WindowTemplate gUnknown_8410E08 = { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 4, + .width = 30, + .height = 12, + .paletteNum = 15, + .baseBlock = 0x008 +}; + */ + +extern const struct UnkStruct_8410CF4 gUnknown_8410CF4[]; +extern const u8 gUnknown_8410E00[3]; +extern const u8 gUnknown_8410E04[3]; +extern const struct WindowTemplate gUnknown_8410E08; + +extern const char * gUnknown_8414588[]; +extern const struct UnkStruct_84145BC gUnknown_84145BC[]; + +void sub_80F39B4(void) +{ + gUnknown_203AB40 = AllocZeroed(sizeof(*gUnknown_203AB40)); + ResetTasks(); + gUnknown_203AB40->unk_02 = 0xFF; + gUnknown_203AB40->unk_1D = 0; + ResetSpriteData(); + SetMainCallback2(sub_80F39E8); +} + +void sub_80F39E8(void) +{ + switch (sub_80F3BD0()) + { + case 0: + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + break; + case 1: + if (gUnknown_203AB40->unk_1D & 1) + { + sub_80574A4(); + } + else + { + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + } + gUnknown_203AB40->unk_1D++; + break; + case 2: + FlagClear(0x4000); + gUnknown_2031DD8 = 0; + Free(gUnknown_203AB40); + SoftReset(RESET_ALL); + // noreturn + } +} + +void sub_80F3A74(void) +{ + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WININ, 0x1F3F); + SetGpuReg(REG_OFFSET_WINOUT, 0x000E); +} + +void sub_80F3AA4(void) +{ + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 4)); + SetGpuReg(REG_OFFSET_BLDY, 10); +} + +void sub_80F3AC4(void) +{ + gUnknown_203AB40->unk_0A = AddWindow(&gUnknown_8410E08); + FillWindowPixelBuffer(gUnknown_203AB40->unk_0A, PIXEL_FILL(0)); + PutWindowTilemap(gUnknown_203AB40->unk_0A); + CopyWindowToVram(gUnknown_203AB40->unk_0A, 3); + gUnknown_203AB40->unk_0B = TRUE; +} + +void sub_80F3B04(void) +{ + if (gUnknown_203AB40->unk_0B) + { + RemoveWindow(gUnknown_203AB40->unk_0A); + CleanupOverworldWindowsAndTilemaps(); + gUnknown_203AB40->unk_0B = FALSE; + } +} + +bool32 sub_80F3B2C(UNUSED u8 unused) +{ + switch (gUnknown_203AB40->unk_01) + { + case 0: + FlagSet(0x4000); + gUnknown_2031DD8 = 2; + gUnknown_203AB40->unk_1C = 0; + gUnknown_203AB40->unk_01++; + // fallthrough + case 1: + if (!sub_805750C(&gUnknown_203AB40->unk_1C, gUnknown_8414588[gUnknown_203AB40->unk_09], 0)) + return FALSE; + sub_80F3AC4(); + SetGpuReg(REG_OFFSET_WIN0H, 0xF0); + SetGpuReg(REG_OFFSET_WIN0V, 0x247C); + sub_80F3A74(); + sub_80F3AA4(); + Menu_LoadStdPalAt(0xF0); + gPlttBufferUnfaded[0xFF] = RGB_BLACK; + gPlttBufferFaded[0xFF] = RGB_BLACK; + return TRUE; + default: + return FALSE; + } +} + +#ifdef NONMATCHING +s32 sub_80F3BD0(void) +{ + u16 win0v[2]; + + switch (gUnknown_203AB40->unk_00) + { + case 0: + sub_80F3A74(); + SetGpuReg(REG_OFFSET_WIN0H, 0x40); + SetGpuReg(REG_OFFSET_WIN0V, 0x4F51); + gUnknown_203AB40->unk_00 = 1; + return 0; + case 1: + sub_80F3AA4(); + sub_80F3AC4(); + Menu_LoadStdPalAt(0xF0); + gPlttBufferUnfaded[0xFF] = RGB_BLACK; + gPlttBufferFaded[0xFF] = RGB_BLACK; + gUnknown_203AB40->unk_00 = 2; + return 0; + case 2: + win0v[0] = GetGpuReg(REG_OFFSET_WIN0V) >> 8; + win0v[1] = GetGpuReg(REG_OFFSET_WIN0V) & 0xFF; + if (win0v[0] == 0x24) + { + gUnknown_203AB40->unk_04 = 0; + gUnknown_203AB40->unk_00 = 3; + } + else + { + win0v[0]--; + win0v[1]++; + SetGpuReg(REG_OFFSET_WIN0V, win0v[1] + (win0v[0] << 8)); + } + return 0; + case 3: + if (gUnknown_203AB40->unk_04 == 0) + { + sub_80F4930(0); + gUnknown_203AB40->unk_04 = 100; + gUnknown_203AB40->unk_00 = 4; + } + else + { + gUnknown_203AB40->unk_04--; + } + return 0; + case 4: + if (gUnknown_203AB40->unk_04 == 0) + { + gUnknown_203AB40->unk_04 = 360; + AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 0x08, 0x29, 1, 2, gUnknown_8410E00, 0, gUnknown_841D198); + gUnknown_203AB40->unk_00 = 5; + } + else + { + gUnknown_203AB40->unk_04--; + } + return 0; + case 5: + if (gUnknown_203AB40->unk_04 == 0) + { + sub_80F3B04(); + gUnknown_203AB40->unk_00 = 6; + gUnknown_203AB40->unk_04 = 0; + gUnknown_203AB40->unk_06 = 0; + } + else + { + gUnknown_203AB40->unk_04--; + } + return 0; + case 6: + if (gUnknown_203AB40->unk_04 != 0) + { + gUnknown_203AB40->unk_04--; + return gUnknown_203AB40->unk_08; + } + else + { + switch (gUnknown_203AB40->unk_06) + { + case 0: + BeginNormalPaletteFade(0x00008000, 0, 0, 16, RGB_BLACK); + gUnknown_203AB40->unk_00 = 7; + FillWindowPixelBuffer(gUnknown_203AB40->unk_0A, PIXEL_FILL(0)); + return gUnknown_203AB40->unk_08; + case 1: + gUnknown_203AB40->unk_00 = 10; + gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + sub_807A944(1, 0, 0x3FFFFFFF); + break; + case 2: + gUnknown_203AB40->unk_00 = 12; + gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + break; + case 3: + gUnknown_203AB40->unk_00 = 13; + gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + fade_screen(1, 0); + break; + case 4: + gUnknown_203AB40->unk_00 = 15; + gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 16, RGB_BLACK); + break; + case 5: + gUnknown_203AB40->unk_00 = 17; + break; + } + gUnknown_203AB40->unk_04 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk2; + gUnknown_203AB40->unk_06++; + } + return 0; + case 7: + if (!gPaletteFade.active) + { + win0v[0] = gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_8; // unused + AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 2, 6, 0, 0, gUnknown_8410E00, -1, gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_0); + gUnknown_203AB40->unk_00 = 8; + } + return gUnknown_203AB40->unk_08; + case 8: + win0v[0] = gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_8; + AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 2, 6, 0, 0, gUnknown_8410E00, -1, gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_4); + gUnknown_203AB40->unk_00 = 9; + return gUnknown_203AB40->unk_08; + case 9: + CopyWindowToVram(gUnknown_203AB40->unk_0A, 2); + gUnknown_203AB40->unk_04 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk2; + gUnknown_203AB40->unk_06++; + BeginNormalPaletteFade(0x00008000, 0, 16, 0, RGB_BLACK); + gUnknown_203AB40->unk_00 = 6; + return gUnknown_203AB40->unk_08; + case 10: + if (!gPaletteFade.active) + { + sub_80F3B04(); + gUnknown_203AB40->unk_01 = 0; + gUnknown_203AB40->unk_00 = 11; + } + return 0; + case 11: + if (sub_80F3B2C(gUnknown_203AB40->unk_09)) + { + gUnknown_203AB40->unk_08 = 1; + gUnknown_203AB40->unk_00 = 6; + } + return 0; + case 12: + if (!gPaletteFade.active) + { + sub_80F3B04(); + gUnknown_203AB40->unk_01 = 0; + while (sub_80F3B2C(gUnknown_203AB40->unk_09)) + {} + switch (gUnknown_203AB40->unk_09) + { + default: + win0v[0] = 1; + break; + case 6: + win0v[0] = 2; + break; + case 9: + win0v[0] = 3; + break; + case 12: + win0v[0] = 4; + break; + } + sub_80F4930(win0v[0]); + gUnknown_203AB40->unk_08 = 1; + gUnknown_203AB40->unk_00 = 6; + } + return 0; + case 13: + if (!gPaletteFade.active) + { + sub_80F48D0(); + sub_80F3B04(); + gUnknown_203AB40->unk_01 = 0; + gUnknown_203AB40->unk_08 = 0; + gUnknown_203AB40->unk_00 = 14; + } + return 0; + case 14: + if (sub_80F4328()) + { + gUnknown_203AB40->unk_00 = 6; + } + return 0; + case 15: + if (!gPaletteFade.active) + { + sub_80F3B04(); + gUnknown_203AB40->unk_01 = 0; + gUnknown_203AB40->unk_08 = 0; + gUnknown_203AB40->unk_00 = 16; + } + return 0; + case 16: + if (sub_80F4674()) + { + gUnknown_203AB40->unk_00 = 6; + } + return 0; + case 17: + if (JOY_NEW(A_BUTTON)) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE); + gUnknown_203AB40->unk_00 = 18; + } + else if (gUnknown_203AB40->unk_04 == 0) + { + gUnknown_203AB40->unk_00 = 18; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE); + } + else + gUnknown_203AB40->unk_04--; + return 0; + case 18: + if (!gPaletteFade.active) + sub_80F3B04(); + default: + return 2; + } +} +#else +NAKED +s32 sub_80F3BD0(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tsub sp, 0x24\n" + "\tldr r1, _080F3BEC @ =gUnknown_203AB40\n" + "\tldr r0, [r1]\n" + "\tldrb r0, [r0]\n" + "\tadds r7, r1, 0\n" + "\tcmp r0, 0x12\n" + "\tbls _080F3BE2\n" + "\tb _080F4180_default_return2\n" + "_080F3BE2:\n" + "\tlsls r0, 2\n" + "\tldr r1, _080F3BF0 @ =_080F3BF4\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_080F3BEC: .4byte gUnknown_203AB40\n" + "_080F3BF0: .4byte _080F3BF4\n" + "\t.align 2, 0\n" + "_080F3BF4:\n" + "\t.4byte _080F3C40_case00\n" + "\t.4byte _080F3C64_case01\n" + "\t.4byte _080F3C98_case02\n" + "\t.4byte _080F3CEE_case03\n" + "\t.4byte _080F3D0A_case04\n" + "\t.4byte _080F3D48_case05\n" + "\t.4byte _080F3D6A_case06\n" + "\t.4byte _080F3EB4_case07\n" + "\t.4byte _080F3F24_case08\n" + "\t.4byte _080F3F84_case09\n" + "\t.4byte _080F3FC4_case0A\n" + "\t.4byte _080F3FF0_case0B\n" + "\t.4byte _080F400A_case0C\n" + "\t.4byte _080F4084_case0D\n" + "\t.4byte _080F40B8_case0E\n" + "\t.4byte _080F40D0_case0F\n" + "\t.4byte _080F4100_case10\n" + "\t.4byte _080F4118_case11\n" + "\t.4byte _080F4170_case12\n" + "_080F3C40_case00:\n" + "\tbl sub_80F3A74\n" + "\tmovs r0, 0x40\n" + "\tmovs r1, 0xF0\n" + "\tbl SetGpuReg\n" + "\tldr r1, _080F3C5C @ =0x00004f51\n" + "\tmovs r0, 0x44\n" + "\tbl SetGpuReg\n" + "\tldr r0, _080F3C60 @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x1\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F3C5C: .4byte 0x00004f51\n" + "_080F3C60: .4byte gUnknown_203AB40\n" + "_080F3C64_case01:\n" + "\tbl sub_80F3AA4\n" + "\tbl sub_80F3AC4\n" + "\tmovs r0, 0xF0\n" + "\tbl Menu_LoadStdPalAt\n" + "\tldr r0, _080F3C8C @ =gPlttBufferUnfaded\n" + "\tmovs r2, 0xFF\n" + "\tlsls r2, 1\n" + "\tadds r0, r2\n" + "\tmovs r1, 0\n" + "\tstrh r1, [r0]\n" + "\tldr r0, _080F3C90 @ =gPlttBufferFaded\n" + "\tadds r0, r2\n" + "\tstrh r1, [r0]\n" + "\tldr r0, _080F3C94 @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x2\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F3C8C: .4byte gPlttBufferUnfaded\n" + "_080F3C90: .4byte gPlttBufferFaded\n" + "_080F3C94: .4byte gUnknown_203AB40\n" + "_080F3C98_case02:\n" + "\tmovs r0, 0x44\n" + "\tbl GetGpuReg\n" + "\tadd r1, sp, 0x14\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 24\n" + "\tstrh r0, [r1]\n" + "\tmovs r0, 0x44\n" + "\tbl GetGpuReg\n" + "\tadd r2, sp, 0x14\n" + "\tmovs r1, 0xFF\n" + "\tands r1, r0\n" + "\tstrh r1, [r2, 0x2]\n" + "\tadds r0, r2, 0\n" + "\tldrh r0, [r0]\n" + "\tcmp r0, 0x24\n" + "\tbne _080F3CCC\n" + "\tldr r0, _080F3CC8 @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0\n" + "\tstrh r0, [r1, 0x4]\n" + "\tmovs r0, 0x3\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F3CC8: .4byte gUnknown_203AB40\n" + "_080F3CCC:\n" + "\tadd r1, sp, 0x14\n" + "\tsubs r0, 0x1\n" + "\tstrh r0, [r1]\n" + "\tadds r2, r1, 0\n" + "\tadds r0, r1, 0\n" + "\tldrh r1, [r0, 0x2]\n" + "\tadds r1, 0x1\n" + "\tstrh r1, [r2, 0x2]\n" + "\tldrh r0, [r0]\n" + "\tlsls r0, 8\n" + "\tadds r1, r0\n" + "\tlsls r1, 16\n" + "\tlsrs r1, 16\n" + "\tmovs r0, 0x44\n" + "\tbl SetGpuReg\n" + "\tb _080F3D06_return0\n" + "_080F3CEE_case03:\n" + "\tldr r1, [r7]\n" + "\tldrh r0, [r1, 0x4]\n" + "\tcmp r0, 0\n" + "\tbne _080F3D52_decfield4_return0\n" + "\tmovs r0, 0\n" + "\tbl sub_80F4930\n" + "\tldr r0, [r7]\n" + "\tmovs r1, 0x64\n" + "\tstrh r1, [r0, 0x4]\n" + "\tmovs r1, 0x4\n" + "\tstrb r1, [r0]\n" + "_080F3D06_return0:\n" + "\tmovs r0, 0\n" + "\tb _080F4182_return\n" + "_080F3D0A_case04:\n" + "\tldr r1, [r7]\n" + "\tldrh r0, [r1, 0x4]\n" + "\tadds r2, r0, 0\n" + "\tcmp r2, 0\n" + "\tbne _080F3D52_decfield4_return0\n" + "\tmovs r0, 0xB4\n" + "\tlsls r0, 1\n" + "\tstrh r0, [r1, 0x4]\n" + "\tldrb r0, [r1, 0xA]\n" + "\tmovs r1, 0x1\n" + "\tstr r1, [sp]\n" + "\tmovs r1, 0x2\n" + "\tstr r1, [sp, 0x4]\n" + "\tldr r1, _080F3D40 @ =gUnknown_8410E00\n" + "\tstr r1, [sp, 0x8]\n" + "\tstr r2, [sp, 0xC]\n" + "\tldr r1, _080F3D44 @ =gUnknown_841D198\n" + "\tstr r1, [sp, 0x10]\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x8\n" + "\tmovs r3, 0x29\n" + "\tbl AddTextPrinterParameterized4\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x5\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F3D40: .4byte gUnknown_8410E00\n" + "_080F3D44: .4byte gUnknown_841D198\n" + "_080F3D48_case05:\n" + "\tldr r1, [r7]\n" + "\tldrh r0, [r1, 0x4]\n" + "\tadds r4, r0, 0\n" + "\tcmp r4, 0\n" + "\tbeq _080F3D58\n" + "_080F3D52_decfield4_return0:\n" + "\tsubs r0, 0x1\n" + "\tstrh r0, [r1, 0x4]\n" + "\tb _080F3D06_return0\n" + "_080F3D58:\n" + "\tbl sub_80F3B04\n" + "\tldr r0, [r7]\n" + "\tmovs r1, 0x6\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r7]\n" + "\tstrh r4, [r0, 0x4]\n" + "\tstrh r4, [r0, 0x6]\n" + "\tb _080F3D06_return0\n" + "_080F3D6A_case06:\n" + "\tldr r2, [r7]\n" + "\tldrh r0, [r2, 0x4]\n" + "\tcmp r0, 0\n" + "\tbeq _080F3D7A\n" + "\tsubs r0, 0x1\n" + "\tstrh r0, [r2, 0x4]\n" + "\tldrb r0, [r2, 0x8]\n" + "\tb _080F4182_return\n" + "_080F3D7A:\n" + "\tldr r1, _080F3D94 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0]\n" + "\tcmp r0, 0x5\n" + "\tbls _080F3D8A\n" + "\tb _080F3E94\n" + "_080F3D8A:\n" + "\tlsls r0, 2\n" + "\tldr r1, _080F3D98 @ =_080F3D9C\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_080F3D94: .4byte gUnknown_8410CF4\n" + "_080F3D98: .4byte _080F3D9C\n" + "\t.align 2, 0\n" + "_080F3D9C:\n" + "\t.4byte _080F3DB4\n" + "\t.4byte _080F3DE0\n" + "\t.4byte _080F3E10\n" + "\t.4byte _080F3E30\n" + "\t.4byte _080F3E58\n" + "\t.4byte _080F3E8C\n" + "_080F3DB4:\n" + "\tmovs r0, 0x80\n" + "\tlsls r0, 8\n" + "\tmovs r1, 0\n" + "\tstr r1, [sp]\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0x10\n" + "\tbl BeginNormalPaletteFade\n" + "\tldr r4, _080F3DDC @ =gUnknown_203AB40\n" + "\tldr r1, [r4]\n" + "\tmovs r0, 0x7\n" + "\tstrb r0, [r1]\n" + "\tldr r0, [r4]\n" + "\tldrb r0, [r0, 0xA]\n" + "\tmovs r1, 0\n" + "\tbl FillWindowPixelBuffer\n" + "\tldr r0, [r4]\n" + "\tldrb r0, [r0, 0x8]\n" + "\tb _080F4182_return\n" + "\t.align 2, 0\n" + "_080F3DDC: .4byte gUnknown_203AB40\n" + "_080F3DE0:\n" + "\tldr r2, _080F3E04 @ =gUnknown_203AB40\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0xA\n" + "\tstrb r0, [r1]\n" + "\tldr r2, [r2]\n" + "\tldr r1, _080F3E08 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0, 0x1]\n" + "\tstrb r0, [r2, 0x9]\n" + "\tldr r2, _080F3E0C @ =0x3fffffff\n" + "\tmovs r0, 0x1\n" + "\tmovs r1, 0\n" + "\tbl sub_807A944\n" + "\tb _080F3E94\n" + "\t.align 2, 0\n" + "_080F3E04: .4byte gUnknown_203AB40\n" + "_080F3E08: .4byte gUnknown_8410CF4\n" + "_080F3E0C: .4byte 0x3fffffff\n" + "_080F3E10:\n" + "\tldr r2, _080F3E28 @ =gUnknown_203AB40\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0xC\n" + "\tstrb r0, [r1]\n" + "\tldr r2, [r2]\n" + "\tldr r1, _080F3E2C @ =gUnknown_8410CF4\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0, 0x1]\n" + "\tstrb r0, [r2, 0x9]\n" + "\tb _080F3E94\n" + "\t.align 2, 0\n" + "_080F3E28: .4byte gUnknown_203AB40\n" + "_080F3E2C: .4byte gUnknown_8410CF4\n" + "_080F3E30:\n" + "\tldr r2, _080F3E50 @ =gUnknown_203AB40\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0xD\n" + "\tstrb r0, [r1]\n" + "\tldr r2, [r2]\n" + "\tldr r1, _080F3E54 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0, 0x1]\n" + "\tstrb r0, [r2, 0x9]\n" + "\tmovs r0, 0x1\n" + "\tmovs r1, 0\n" + "\tbl fade_screen\n" + "\tb _080F3E94\n" + "\t.align 2, 0\n" + "_080F3E50: .4byte gUnknown_203AB40\n" + "_080F3E54: .4byte gUnknown_8410CF4\n" + "_080F3E58:\n" + "\tldr r2, _080F3E84 @ =gUnknown_203AB40\n" + "\tldr r1, [r2]\n" + "\tmovs r3, 0\n" + "\tmovs r0, 0xF\n" + "\tstrb r0, [r1]\n" + "\tldr r2, [r2]\n" + "\tldr r1, _080F3E88 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0, 0x1]\n" + "\tstrb r0, [r2, 0x9]\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tstr r3, [sp]\n" + "\tmovs r1, 0x4\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0x10\n" + "\tbl BeginNormalPaletteFade\n" + "\tb _080F3E94\n" + "\t.align 2, 0\n" + "_080F3E84: .4byte gUnknown_203AB40\n" + "_080F3E88: .4byte gUnknown_8410CF4\n" + "_080F3E8C:\n" + "\tldr r0, _080F3EAC @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x11\n" + "\tstrb r0, [r1]\n" + "_080F3E94:\n" + "\tldr r0, _080F3EAC @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tldr r2, _080F3EB0 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r1, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r2\n" + "\tldrh r0, [r0, 0x2]\n" + "\tstrh r0, [r1, 0x4]\n" + "\tldrh r0, [r1, 0x6]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r1, 0x6]\n" + "\tb _080F3D06_return0\n" + "\t.align 2, 0\n" + "_080F3EAC: .4byte gUnknown_203AB40\n" + "_080F3EB0: .4byte gUnknown_8410CF4\n" + "_080F3EB4_case07:\n" + "\tldr r0, _080F3F14 @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r6, r0, 24\n" + "\tcmp r6, 0\n" + "\tbne _080F3FBA_returnfield8\n" + "\tadd r3, sp, 0x14\n" + "\tldr r5, _080F3F18 @ =gUnknown_84145BC\n" + "\tldr r4, _080F3F1C @ =gUnknown_8410CF4\n" + "\tldr r2, [r7]\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r4\n" + "\tldrb r1, [r0, 0x1]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r5\n" + "\tldrb r0, [r0, 0x8]\n" + "\tstrh r0, [r3]\n" + "\tldrb r0, [r2, 0xA]\n" + "\tstr r6, [sp]\n" + "\tstr r6, [sp, 0x4]\n" + "\tldr r1, _080F3F20 @ =gUnknown_8410E00\n" + "\tstr r1, [sp, 0x8]\n" + "\tmovs r1, 0x1\n" + "\tnegs r1, r1\n" + "\tstr r1, [sp, 0xC]\n" + "\tldrh r1, [r2, 0x6]\n" + "\tlsls r1, 2\n" + "\tadds r1, r4\n" + "\tldrb r2, [r1, 0x1]\n" + "\tlsls r1, r2, 1\n" + "\tadds r1, r2\n" + "\tlsls r1, 2\n" + "\tadds r1, r5\n" + "\tldr r1, [r1]\n" + "\tstr r1, [sp, 0x10]\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x2\n" + "\tmovs r3, 0x6\n" + "\tbl AddTextPrinterParameterized4\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x8\n" + "\tb _080F3FB8_setfield0_returnfield8\n" + "\t.align 2, 0\n" + "_080F3F14: .4byte gPaletteFade\n" + "_080F3F18: .4byte gUnknown_84145BC\n" + "_080F3F1C: .4byte gUnknown_8410CF4\n" + "_080F3F20: .4byte gUnknown_8410E00\n" + "_080F3F24_case08:\n" + "\tadd r4, sp, 0x14\n" + "\tldr r3, _080F3F78 @ =gUnknown_84145BC\n" + "\tldr r5, _080F3F7C @ =gUnknown_8410CF4\n" + "\tldr r2, [r7]\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r5\n" + "\tldrb r1, [r0, 0x1]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r3\n" + "\tldrb r0, [r0, 0x8]\n" + "\tmovs r1, 0\n" + "\tstrh r0, [r4]\n" + "\tldrb r0, [r2, 0xA]\n" + "\tstr r1, [sp]\n" + "\tstr r1, [sp, 0x4]\n" + "\tldr r1, _080F3F80 @ =gUnknown_8410E04\n" + "\tstr r1, [sp, 0x8]\n" + "\tmovs r1, 0x1\n" + "\tnegs r1, r1\n" + "\tstr r1, [sp, 0xC]\n" + "\tldrh r1, [r2, 0x6]\n" + "\tlsls r1, 2\n" + "\tadds r1, r5\n" + "\tldrb r2, [r1, 0x1]\n" + "\tlsls r1, r2, 1\n" + "\tadds r1, r2\n" + "\tlsls r1, 2\n" + "\tadds r3, 0x4\n" + "\tadds r1, r3\n" + "\tldr r1, [r1]\n" + "\tstr r1, [sp, 0x10]\n" + "\tmovs r1, 0x2\n" + "\tmovs r2, 0x8\n" + "\tmovs r3, 0x6\n" + "\tbl AddTextPrinterParameterized4\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x9\n" + "\tb _080F3FB8_setfield0_returnfield8\n" + "\t.align 2, 0\n" + "_080F3F78: .4byte gUnknown_84145BC\n" + "_080F3F7C: .4byte gUnknown_8410CF4\n" + "_080F3F80: .4byte gUnknown_8410E04\n" + "_080F3F84_case09:\n" + "\tldr r0, [r7]\n" + "\tldrb r0, [r0, 0xA]\n" + "\tmovs r1, 0x2\n" + "\tbl CopyWindowToVram\n" + "\tldr r1, [r7]\n" + "\tldr r2, _080F3FC0 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r1, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r2\n" + "\tldrh r0, [r0, 0x2]\n" + "\tmovs r2, 0\n" + "\tstrh r0, [r1, 0x4]\n" + "\tldrh r0, [r1, 0x6]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r1, 0x6]\n" + "\tmovs r0, 0x80\n" + "\tlsls r0, 8\n" + "\tstr r2, [sp]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0x10\n" + "\tmovs r3, 0\n" + "\tbl BeginNormalPaletteFade\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x6\n" + "_080F3FB8_setfield0_returnfield8:\n" + "\tstrb r0, [r1]\n" + "_080F3FBA_returnfield8:\n" + "\tldr r0, [r7]\n" + "\tldrb r0, [r0, 0x8]\n" + "\tb _080F4182_return\n" + "\t.align 2, 0\n" + "_080F3FC0: .4byte gUnknown_8410CF4\n" + "_080F3FC4_case0A:\n" + "\tldr r0, _080F3FE8 @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0\n" + "\tbeq _080F3FD6\n" + "\tb _080F3D06_return0\n" + "_080F3FD6:\n" + "\tbl sub_80F3B04\n" + "\tldr r1, _080F3FEC @ =gUnknown_203AB40\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x1]\n" + "\tldr r1, [r1]\n" + "\tmovs r0, 0xB\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F3FE8: .4byte gPaletteFade\n" + "_080F3FEC: .4byte gUnknown_203AB40\n" + "_080F3FF0_case0B:\n" + "\tldr r0, [r7]\n" + "\tldrb r0, [r0, 0x9]\n" + "\tbl sub_80F3B2C\n" + "\tcmp r0, 0\n" + "\tbne _080F3FFE\n" + "\tb _080F3D06_return0\n" + "_080F3FFE:\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x1\n" + "\tstrb r0, [r1, 0x8]\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x6\n" + "\tb _080F413C_setfield0_return0\n" + "_080F400A_case0C:\n" + "\tldr r0, _080F4050 @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0\n" + "\tbeq _080F401C\n" + "\tb _080F3D06_return0\n" + "_080F401C:\n" + "\tbl sub_80F3B04\n" + "\tldr r1, _080F4054 @ =gUnknown_203AB40\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x1]\n" + "\tadds r4, r1, 0\n" + "_080F4028:\n" + "\tldr r0, [r4]\n" + "\tldrb r0, [r0, 0x9]\n" + "\tbl sub_80F3B2C\n" + "\tcmp r0, 0\n" + "\tbeq _080F4028\n" + "\tldr r0, _080F4054 @ =gUnknown_203AB40\n" + "\tldr r0, [r0]\n" + "\tldrb r0, [r0, 0x9]\n" + "\tcmp r0, 0x6\n" + "\tbeq _080F4058\n" + "\tcmp r0, 0x6\n" + "\tble _080F404A\n" + "\tcmp r0, 0x9\n" + "\tbeq _080F405E\n" + "\tcmp r0, 0xC\n" + "\tbeq _080F4064\n" + "_080F404A:\n" + "\tadd r1, sp, 0x14\n" + "\tmovs r0, 0x1\n" + "\tb _080F4068\n" + "\t.align 2, 0\n" + "_080F4050: .4byte gPaletteFade\n" + "_080F4054: .4byte gUnknown_203AB40\n" + "_080F4058:\n" + "\tadd r1, sp, 0x14\n" + "\tmovs r0, 0x2\n" + "\tb _080F4068\n" + "_080F405E:\n" + "\tadd r1, sp, 0x14\n" + "\tmovs r0, 0x3\n" + "\tb _080F4068\n" + "_080F4064:\n" + "\tadd r1, sp, 0x14\n" + "\tmovs r0, 0x4\n" + "_080F4068:\n" + "\tstrh r0, [r1]\n" + "\tadd r0, sp, 0x14\n" + "\tldrb r0, [r0]\n" + "\tbl sub_80F4930\n" + "\tldr r2, _080F4080 @ =gUnknown_203AB40\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0x1\n" + "\tstrb r0, [r1, 0x8]\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0x6\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F4080: .4byte gUnknown_203AB40\n" + "_080F4084_case0D:\n" + "\tldr r0, _080F40B0 @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0\n" + "\tbeq _080F4096\n" + "\tb _080F3D06_return0\n" + "_080F4096:\n" + "\tbl sub_80F48D0\n" + "\tbl sub_80F3B04\n" + "\tldr r1, _080F40B4 @ =gUnknown_203AB40\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x1]\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x8]\n" + "\tldr r1, [r1]\n" + "\tmovs r0, 0xE\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F40B0: .4byte gPaletteFade\n" + "_080F40B4: .4byte gUnknown_203AB40\n" + "_080F40B8_case0E:\n" + "\tbl sub_80F4328\n" + "\tcmp r0, 0\n" + "\tbne _080F40C2\n" + "\tb _080F3D06_return0\n" + "_080F40C2:\n" + "\tldr r0, _080F40CC @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x6\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F40CC: .4byte gUnknown_203AB40\n" + "_080F40D0_case0F:\n" + "\tldr r0, _080F40F8 @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0\n" + "\tbeq _080F40E2\n" + "\tb _080F3D06_return0\n" + "_080F40E2:\n" + "\tbl sub_80F3B04\n" + "\tldr r1, _080F40FC @ =gUnknown_203AB40\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x1]\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x8]\n" + "\tldr r1, [r1]\n" + "\tmovs r0, 0x10\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F40F8: .4byte gPaletteFade\n" + "_080F40FC: .4byte gUnknown_203AB40\n" + "_080F4100_case10:\n" + "\tbl sub_80F4674\n" + "\tcmp r0, 0\n" + "\tbne _080F410A\n" + "\tb _080F3D06_return0\n" + "_080F410A:\n" + "\tldr r0, _080F4114 @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x6\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F4114: .4byte gUnknown_203AB40\n" + "_080F4118_case11:\n" + "\tldr r0, _080F4140 @ =gMain\n" + "\tldrh r1, [r0, 0x2E]\n" + "\tmovs r0, 0x1\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _080F414C\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tldr r1, _080F4144 @ =0x00007fff\n" + "\tstr r1, [sp]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0x10\n" + "\tbl BeginNormalPaletteFade\n" + "\tldr r0, _080F4148 @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x12\n" + "_080F413C_setfield0_return0:\n" + "\tstrb r0, [r1]\n" + "\tb _080F3D06_return0\n" + "\t.align 2, 0\n" + "_080F4140: .4byte gMain\n" + "_080F4144: .4byte 0x00007fff\n" + "_080F4148: .4byte gUnknown_203AB40\n" + "_080F414C:\n" + "\tldr r1, [r7]\n" + "\tldrh r0, [r1, 0x4]\n" + "\tcmp r0, 0\n" + "\tbeq _080F4156\n" + "\tb _080F3D52_decfield4_return0\n" + "_080F4156:\n" + "\tmovs r0, 0x12\n" + "\tstrb r0, [r1]\n" + "\tsubs r0, 0x13\n" + "\tldr r1, _080F416C @ =0x00007fff\n" + "\tstr r1, [sp]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0x10\n" + "\tbl BeginNormalPaletteFade\n" + "\tb _080F3D06_return0\n" + "\t.align 2, 0\n" + "_080F416C: .4byte 0x00007fff\n" + "_080F4170_case12:\n" + "\tldr r0, _080F418C @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbne _080F4180_default_return2\n" + "\tbl sub_80F3B04\n" + "_080F4180_default_return2:\n" + "\tmovs r0, 0x2\n" + "_080F4182_return:\n" + "\tadd sp, 0x24\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1\n" + "\t.align 2, 0\n" + "_080F418C: .4byte gPaletteFade"); +} +#endif //NONMATCHING From 7f0c7528f732c650736b97e623c933ddaed00774 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 24 Sep 2019 14:00:40 -0400 Subject: [PATCH 2/6] Finish credits decomp and data dump --- asm/credits.s | 1256 ------------------ baserom.ips | Bin 2055522 -> 2017986 bytes data/credits.s | 70 - data/credits/unk_840C630.pal | 19 + data/credits/unk_840C650.png | Bin 0 -> 1499 bytes data/credits/unk_840CA54.bin | Bin 0 -> 1024 bytes data/credits/unk_840CB8C.bin | Bin 0 -> 3200 bytes data/credits/unk_840D228.bin | Bin 0 -> 4992 bytes data/credits/unk_840E158.bin | Bin 0 -> 3200 bytes data/credits/unk_840E904.bin | Bin 0 -> 3840 bytes data/credits/unk_840F240.bin | Bin 0 -> 3200 bytes data/credits/unk_840F944.bin | Bin 0 -> 3840 bytes data/credits/unk_8410198.bin | Bin 0 -> 3200 bytes data/credits/unk_84105B4.bin | Bin 0 -> 4608 bytes data/credits/unk_8410B20.bin | Bin 0 -> 2048 bytes data/credits/unk_8410B20.png | Bin 0 -> 218 bytes data/credits/unk_8410E10.pal | 19 + data/credits/unk_8410E30.png | Bin 0 -> 2105 bytes data/credits/unk_8411BF8.pal | 19 + data/credits/unk_8411C18.png | Bin 0 -> 2083 bytes data/credits/unk_84129A0.pal | 19 + data/credits/unk_84129C0.png | Bin 0 -> 1162 bytes data/credits/unk_8413318.pal | 19 + data/credits/unk_8413338.png | Bin 0 -> 624 bytes data/credits/unk_8413854.pal | 19 + data/credits/unk_8413874.png | Bin 0 -> 632 bytes data/credits/unk_8413D98.pal | 19 + data/credits/unk_8413DB8.png | Bin 0 -> 786 bytes data/data_83FECCC.s | 53 - data/graphics.s | 15 +- data/maps/IndigoPlateau_Exterior/scripts.inc | 2 +- data/specials.inc | 2 +- data/strings.s | 333 +++-- graphics/credits/blastoise.pal | 19 + graphics/credits/charizard.pal | 19 + graphics/credits/pikachu.pal | 19 + graphics/credits/unk_8EAAB98.png | Bin 0 -> 1217 bytes graphics/credits/unk_8EAB30C.bin | Bin 0 -> 1280 bytes graphics/credits/unk_8EAE548.bin | Bin 0 -> 2048 bytes graphics/credits/unk_8EAE548.png | Bin 0 -> 908 bytes graphics/credits/venusaur.pal | 19 + graphics_file_rules.mk | 4 + include/graphics.h | 8 + include/overworld.h | 9 +- include/strings.h | 88 +- include/trainer_pokemon_sprites.h | 1 + ld_script.txt | 2 - src/credits.c | 954 ++++++++++++- 48 files changed, 1479 insertions(+), 1527 deletions(-) delete mode 100644 asm/credits.s delete mode 100644 data/credits.s create mode 100644 data/credits/unk_840C630.pal create mode 100644 data/credits/unk_840C650.png create mode 100644 data/credits/unk_840CA54.bin create mode 100644 data/credits/unk_840CB8C.bin create mode 100644 data/credits/unk_840D228.bin create mode 100644 data/credits/unk_840E158.bin create mode 100644 data/credits/unk_840E904.bin create mode 100644 data/credits/unk_840F240.bin create mode 100644 data/credits/unk_840F944.bin create mode 100644 data/credits/unk_8410198.bin create mode 100644 data/credits/unk_84105B4.bin create mode 100644 data/credits/unk_8410B20.bin create mode 100644 data/credits/unk_8410B20.png create mode 100644 data/credits/unk_8410E10.pal create mode 100644 data/credits/unk_8410E30.png create mode 100644 data/credits/unk_8411BF8.pal create mode 100644 data/credits/unk_8411C18.png create mode 100644 data/credits/unk_84129A0.pal create mode 100644 data/credits/unk_84129C0.png create mode 100644 data/credits/unk_8413318.pal create mode 100644 data/credits/unk_8413338.png create mode 100644 data/credits/unk_8413854.pal create mode 100644 data/credits/unk_8413874.png create mode 100644 data/credits/unk_8413D98.pal create mode 100644 data/credits/unk_8413DB8.png create mode 100644 graphics/credits/blastoise.pal create mode 100644 graphics/credits/charizard.pal create mode 100644 graphics/credits/pikachu.pal create mode 100644 graphics/credits/unk_8EAAB98.png create mode 100644 graphics/credits/unk_8EAB30C.bin create mode 100644 graphics/credits/unk_8EAE548.bin create mode 100644 graphics/credits/unk_8EAE548.png create mode 100644 graphics/credits/venusaur.pal diff --git a/asm/credits.s b/asm/credits.s deleted file mode 100644 index 960ea86a5..000000000 --- a/asm/credits.s +++ /dev/null @@ -1,1256 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80F4190 -sub_80F4190: @ 80F4190 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_80F4190 - - thumb_func_start sub_80F41A4 -sub_80F41A4: @ 80F41A4 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - beq _080F4200 - cmp r4, 0x1 - bgt _080F41BA - cmp r4, 0 - beq _080F41C4 - b _080F42C2 -_080F41BA: - cmp r4, 0x2 - beq _080F4240 - cmp r4, 0x3 - beq _080F4288 - b _080F42C2 -_080F41C4: - ldr r0, _080F41F4 @ =gUnknown_840C5B0 - bl InitWindows - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0xA - str r0, [sp] - str r4, [sp, 0x4] - movs r0, 0x6 - movs r1, 0x8 - movs r2, 0 - movs r3, 0x1 - bl sub_810C228 - ldr r1, _080F41F8 @ =gUnknown_840CB8C - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToWindowPixelBuffer - ldr r1, _080F41FC @ =gUnknown_840D228 - b _080F4270 - .align 2, 0 -_080F41F4: .4byte gUnknown_840C5B0 -_080F41F8: .4byte gUnknown_840CB8C -_080F41FC: .4byte gUnknown_840D228 -_080F4200: - ldr r0, _080F4234 @ =gUnknown_840C5D0 - bl InitWindows - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0xA - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r0, 0x3 - movs r1, 0x8 - movs r2, 0 - movs r3, 0x1 - bl sub_810C228 - ldr r1, _080F4238 @ =gUnknown_840E158 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToWindowPixelBuffer - ldr r1, _080F423C @ =gUnknown_840E904 - b _080F4270 - .align 2, 0 -_080F4234: .4byte gUnknown_840C5D0 -_080F4238: .4byte gUnknown_840E158 -_080F423C: .4byte gUnknown_840E904 -_080F4240: - ldr r0, _080F427C @ =gUnknown_840C5F0 - bl InitWindows - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0xA - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r0, 0x9 - movs r1, 0x8 - movs r2, 0 - movs r3, 0x1 - bl sub_810C228 - ldr r1, _080F4280 @ =gUnknown_840F240 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToWindowPixelBuffer - ldr r1, _080F4284 @ =gUnknown_840F944 -_080F4270: - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToWindowPixelBuffer - b _080F42C2 - .align 2, 0 -_080F427C: .4byte gUnknown_840C5F0 -_080F4280: .4byte gUnknown_840F240 -_080F4284: .4byte gUnknown_840F944 -_080F4288: - ldr r0, _080F42E4 @ =gUnknown_840C610 - bl InitWindows - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0xA - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r0, 0x19 - movs r1, 0x8 - movs r2, 0 - movs r3, 0x1 - bl sub_810C228 - ldr r1, _080F42E8 @ =gUnknown_8410198 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToWindowPixelBuffer - ldr r1, _080F42EC @ =gUnknown_84105B4 - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToWindowPixelBuffer -_080F42C2: - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F42E4: .4byte gUnknown_840C610 -_080F42E8: .4byte gUnknown_8410198 -_080F42EC: .4byte gUnknown_84105B4 - thumb_func_end sub_80F41A4 - - thumb_func_start sub_80F42F0 -sub_80F42F0: @ 80F42F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _080F4314 - cmp r0, 0x1 - bgt _080F4306 - cmp r0, 0 - beq _080F4310 - b _080F4320 -_080F4306: - cmp r1, 0x2 - beq _080F4318 - cmp r1, 0x3 - beq _080F431C - b _080F4320 -_080F4310: - movs r0, 0x6 - b _080F4322 -_080F4314: - movs r0, 0x3 - b _080F4322 -_080F4318: - movs r0, 0x9 - b _080F4322 -_080F431C: - movs r0, 0x19 - b _080F4322 -_080F4320: - movs r0, 0 -_080F4322: - pop {r1} - bx r1 - thumb_func_end sub_80F42F0 - - thumb_func_start sub_80F4328 -sub_80F4328: @ 80F4328 - push {r4-r6,lr} - sub sp, 0x10 - ldr r1, _080F4344 @ =gUnknown_203AB40 - ldr r0, [r1] - ldrb r0, [r0, 0x1] - adds r4, r1, 0 - cmp r0, 0x9 - bls _080F433A - b _080F4668 -_080F433A: - lsls r0, 2 - ldr r1, _080F4348 @ =_080F434C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F4344: .4byte gUnknown_203AB40 -_080F4348: .4byte _080F434C - .align 2, 0 -_080F434C: - .4byte _080F4374 - .4byte _080F44CC - .4byte _080F4504 - .4byte _080F4530 - .4byte _080F453A - .4byte _080F4558 - .4byte _080F4582 - .4byte _080F45D6 - .4byte _080F460E - .4byte _080F4638 -_080F4374: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - movs r1, 0xC0 - lsls r1, 7 - movs r0, 0 - bl ClearGpuRegBits - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - 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 - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - movs r0, 0x1 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080F44A8 @ =gUnknown_840C5A4 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - movs r0, 0x80 - lsls r0, 4 - bl Alloc - adds r1, r0, 0 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r6, _080F44AC @ =gUnknown_203AB40 - ldr r1, [r6] - movs r4, 0 - strh r4, [r1, 0xC] - strh r4, [r1, 0xE] - movs r2, 0x80 - lsls r2, 8 - movs r0, 0x50 - str r0, [sp] - movs r3, 0xC - ldrsh r0, [r1, r3] - str r0, [sp, 0x4] - movs r3, 0xC - ldrsh r0, [r1, r3] - str r0, [sp, 0x8] - str r4, [sp, 0xC] - movs r0, 0x2 - adds r1, r2, 0 - movs r3, 0x78 - bl SetBgAffine - ldr r1, _080F44B0 @ =gUnknown_8EAAB98 - movs r5, 0x80 - lsls r5, 6 - str r4, [sp] - movs r0, 0x1 - adds r2, r5, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _080F44B4 @ =gUnknown_840C650 - str r4, [sp] - movs r0, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _080F44B8 @ =gUnknown_8EAB30C - movs r2, 0xA0 - lsls r2, 3 - movs r4, 0x1 - str r4, [sp] - movs r0, 0x1 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _080F44BC @ =gUnknown_840CA54 - movs r2, 0x80 - lsls r2, 3 - str r4, [sp] - movs r0, 0x2 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, [r6] - ldrb r0, [r0, 0x9] - lsls r0, 5 - ldr r1, _080F44C0 @ =gUnknown_8EAAB18 - adds r0, r1 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F44C4 @ =gUnknown_840C630 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, [r6] - ldrb r0, [r0, 0x9] - bl sub_80F41A4 - ldr r0, _080F44C8 @ =sub_80F4190 - bl SetVBlankCallback - movs r0, 0x1 - bl EnableInterrupts - ldr r1, [r6] - b _080F4630 - .align 2, 0 -_080F44A8: .4byte gUnknown_840C5A4 -_080F44AC: .4byte gUnknown_203AB40 -_080F44B0: .4byte gUnknown_8EAAB98 -_080F44B4: .4byte gUnknown_840C650 -_080F44B8: .4byte gUnknown_8EAB30C -_080F44BC: .4byte gUnknown_840CA54 -_080F44C0: .4byte gUnknown_8EAAB18 -_080F44C4: .4byte gUnknown_840C630 -_080F44C8: .4byte sub_80F4190 -_080F44CC: - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, _080F4500 @ =gUnknown_203AB40 - ldr r1, [r0] - b _080F4630 - .align 2, 0 -_080F4500: .4byte gUnknown_203AB40 -_080F4504: - movs r0, 0x2 - bl ShowBg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080F452C @ =gUnknown_203AB40 - ldr r1, [r0] - movs r0, 0x28 - strh r0, [r1, 0xC] - b _080F4630 - .align 2, 0 -_080F452C: .4byte gUnknown_203AB40 -_080F4530: - ldr r1, [r4] - ldrh r0, [r1, 0xC] - cmp r0, 0 - bne _080F45DE - b _080F4630 -_080F453A: - ldr r0, _080F4554 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080F4548 - b _080F4668 -_080F4548: - ldr r1, [r4] - movs r0, 0x8 - strh r0, [r1, 0xC] - movs r0, 0x1 - strh r0, [r1, 0xE] - b _080F4630 - .align 2, 0 -_080F4554: .4byte gPaletteFade -_080F4558: - ldr r1, [r4] - ldrh r0, [r1, 0xC] - cmp r0, 0 - bne _080F45DE - ldrh r0, [r1, 0xE] - cmp r0, 0x2 - bhi _080F4630 - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r1, [r4] - movs r0, 0x4 - strh r0, [r1, 0xC] - ldrh r0, [r1, 0xE] - adds r0, 0x1 - strh r0, [r1, 0xE] - b _080F4668 -_080F4582: - ldr r3, [r4] - ldrh r0, [r3, 0xC] - cmp r0, 0xFF - bhi _080F45B2 - adds r0, 0x10 - movs r1, 0 - strh r0, [r3, 0xC] - movs r2, 0x80 - lsls r2, 8 - movs r0, 0x50 - str r0, [sp] - movs r4, 0xC - ldrsh r0, [r3, r4] - str r0, [sp, 0x4] - movs r4, 0xC - ldrsh r0, [r3, r4] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - movs r0, 0x2 - adds r1, r2, 0 - movs r3, 0x78 - bl SetBgAffine - b _080F4668 -_080F45B2: - movs r2, 0x80 - lsls r2, 8 - movs r0, 0x50 - str r0, [sp] - adds r0, 0xB0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - movs r0, 0x2 - adds r1, r2, 0 - movs r3, 0x78 - bl SetBgAffine - ldr r1, [r4] - movs r0, 0x20 - strh r0, [r1, 0xC] - b _080F4630 -_080F45D6: - ldr r1, [r4] - ldrh r0, [r1, 0xC] - cmp r0, 0 - beq _080F45E4 -_080F45DE: - subs r0, 0x1 - strh r0, [r1, 0xC] - b _080F4668 -_080F45E4: - movs r0, 0x2 - bl HideBg - movs r0, 0x1 - bl ShowBg - ldr r0, [r4] - ldrb r0, [r0, 0x9] - bl sub_80F42F0 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - movs r2, 0x7D - movs r3, 0xA - bl PlayCry2 - ldr r1, [r4] - movs r0, 0x80 - strh r0, [r1, 0xC] - b _080F4630 -_080F460E: - ldr r2, [r4] - ldrh r0, [r2, 0xC] - adds r1, r0, 0 - cmp r1, 0 - beq _080F461E - subs r0, 0x1 - strh r0, [r2, 0xC] - b _080F4668 -_080F461E: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] -_080F4630: - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - b _080F4668 -_080F4638: - ldr r0, _080F4660 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080F4668 - bl FreeAllWindowBuffers - movs r0, 0 - bl GetBgTilemapBuffer - bl Free - ldr r0, _080F4664 @ =gUnknown_203AB40 - ldr r0, [r0] - strb r4, [r0, 0x1] - movs r0, 0x1 - b _080F466A - .align 2, 0 -_080F4660: .4byte gPaletteFade -_080F4664: .4byte gUnknown_203AB40 -_080F4668: - movs r0, 0 -_080F466A: - add sp, 0x10 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F4328 - - thumb_func_start sub_80F4674 -sub_80F4674: @ 80F4674 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _080F4690 @ =gUnknown_203AB40 - ldr r2, [r6] - ldrb r5, [r2, 0x1] - cmp r5, 0x1 - bne _080F4684 - b _080F4784 -_080F4684: - cmp r5, 0x1 - bgt _080F4694 - cmp r5, 0 - beq _080F46A0 - b _080F47EC - .align 2, 0 -_080F4690: .4byte gUnknown_203AB40 -_080F4694: - cmp r5, 0x2 - beq _080F478E - cmp r5, 0x3 - bne _080F469E - b _080F47D0 -_080F469E: - b _080F47EC -_080F46A0: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - movs r1, 0xC0 - lsls r1, 7 - movs r0, 0 - bl ClearGpuRegBits - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - 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 - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - movs r0, 0x1 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080F4778 @ =gUnknown_840C5A4 - movs r0, 0 - movs r2, 0x1 - bl InitBgsFromTemplates - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r4, _080F477C @ =gUnknown_8410CDC - ldr r0, [r6] - ldrb r1, [r0, 0x9] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 6 - str r5, [sp] - movs r0, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, [r6] - ldrb r1, [r0, 0x9] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0x4 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, [r6] - ldrb r1, [r0, 0x9] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r4, 0x8 - adds r0, r4 - ldr r0, [r0] - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadPalette - ldr r0, _080F4780 @ =sub_80F4190 - bl SetVBlankCallback - movs r0, 0x1 - bl EnableInterrupts - ldr r1, [r6] - b _080F47C2 - .align 2, 0 -_080F4778: .4byte gUnknown_840C5A4 -_080F477C: .4byte gUnknown_8410CDC -_080F4780: .4byte sub_80F4190 -_080F4784: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r1, [r6] - b _080F47C2 -_080F478E: - movs r0, 0 - bl ShowBg - ldr r0, [r6] - ldrb r1, [r0, 0x9] - cmp r1, 0 - beq _080F47AE - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - b _080F47BE -_080F47AE: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_080F47BE: - ldr r0, _080F47CC @ =gUnknown_203AB40 - ldr r1, [r0] -_080F47C2: - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - b _080F47EC - .align 2, 0 -_080F47CC: .4byte gUnknown_203AB40 -_080F47D0: - ldr r0, _080F47E8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080F47EC - strb r0, [r2, 0x1] - movs r0, 0x1 - b _080F47EE - .align 2, 0 -_080F47E8: .4byte gPaletteFade -_080F47EC: - movs r0, 0 -_080F47EE: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F4674 - - thumb_func_start sub_80F47F8 -sub_80F47F8: @ 80F47F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080F481C @ =gTasks+0x8 - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, 0x1 - beq _080F4820 - cmp r0, 0x1 - ble _080F48C2 - cmp r0, 0x2 - beq _080F484C - cmp r0, 0x3 - beq _080F4896 - b _080F48C2 - .align 2, 0 -_080F481C: .4byte gTasks+0x8 -_080F4820: - ldr r4, _080F4848 @ =gSprites - ldrb r0, [r3, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r2, [r1, 0x20] - movs r5, 0x20 - ldrsh r0, [r1, r5] - cmp r0, 0xD0 - beq _080F4890 - subs r0, r2, 0x1 - strh r0, [r1, 0x20] - ldrb r1, [r3, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - b _080F48BC - .align 2, 0 -_080F4848: .4byte gSprites -_080F484C: - ldr r0, _080F4888 @ =gUnknown_203AB40 - ldr r0, [r0] - ldrb r1, [r0, 0x1D] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F48C2 - ldr r4, _080F488C @ =gSprites - ldrb r0, [r3, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r2, [r1, 0x22] - movs r5, 0x22 - ldrsh r0, [r1, r5] - cmp r0, 0x50 - beq _080F4890 - subs r0, r2, 0x1 - strh r0, [r1, 0x22] - ldrb r1, [r3, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] - b _080F48C2 - .align 2, 0 -_080F4888: .4byte gUnknown_203AB40 -_080F488C: .4byte gSprites -_080F4890: - movs r0, 0 - strb r0, [r3] - b _080F48C2 -_080F4896: - ldr r0, _080F48C8 @ =gUnknown_203AB40 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0xF - bne _080F48C2 - ldr r2, _080F48CC @ =gSprites - ldrb r1, [r3, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - ldrb r1, [r3, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 -_080F48BC: - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] -_080F48C2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F48C8: .4byte gUnknown_203AB40 -_080F48CC: .4byte gSprites - thumb_func_end sub_80F47F8 - - thumb_func_start sub_80F48D0 -sub_80F48D0: @ 80F48D0 - push {r4-r6,lr} - ldr r6, _080F4924 @ =gUnknown_203AB40 - ldr r1, [r6] - ldrb r0, [r1, 0x2] - cmp r0, 0xFF - beq _080F491E - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080F4928 @ =gTasks+0x8 - adds r4, r0 - ldrh r0, [r4, 0x2] - bl FreeSpriteTilesByTag - ldrb r1, [r4, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _080F492C @ =gSprites - adds r0, r5 - bl DestroySprite - ldrh r0, [r4, 0x8] - bl FreeSpriteTilesByTag - ldrb r1, [r4, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - ldr r0, [r6] - ldrb r0, [r0, 0x2] - bl DestroyTask - ldr r1, [r6] - movs r0, 0xFF - strb r0, [r1, 0x2] -_080F491E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F4924: .4byte gUnknown_203AB40 -_080F4928: .4byte gTasks+0x8 -_080F492C: .4byte gSprites - thumb_func_end sub_80F48D0 - - thumb_func_start sub_80F4930 -sub_80F4930: @ 80F4930 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _080F4988 @ =gUnknown_203AB40 - ldr r0, [r4] - ldrb r0, [r0, 0x2] - cmp r0, 0xFF - beq _080F494A - b _080F4BDE -_080F494A: - ldr r0, _080F498C @ =sub_80F47F8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _080F4990 @ =gTasks+0x8 - adds r6, r1, r2 - ldr r1, [r4] - strb r0, [r1, 0x2] - ldr r1, _080F4994 @ =gUnknown_841431C - lsls r2, r7, 1 - adds r0, r2, r7 - lsls r0, 1 - adds r1, 0x4 - adds r0, r1 - ldrh r0, [r0] - mov r8, r2 - cmp r0, 0x1 - beq _080F4998 - cmp r0, 0x1 - ble _080F4980 - cmp r0, 0x2 - beq _080F49A2 -_080F4980: - movs r4, 0xD0 - movs r0, 0x50 - mov r9, r0 - b _080F49A8 - .align 2, 0 -_080F4988: .4byte gUnknown_203AB40 -_080F498C: .4byte sub_80F47F8 -_080F4990: .4byte gTasks+0x8 -_080F4994: .4byte gUnknown_841431C -_080F4998: - movs r4, 0x88 - lsls r4, 1 - movs r2, 0x50 - mov r9, r2 - b _080F49A8 -_080F49A2: - movs r4, 0xD0 - movs r3, 0xA0 - mov r9, r3 -_080F49A8: - ldr r2, _080F49D0 @ =gUnknown_841431C - mov r5, r8 - adds r1, r5, r7 - lsls r1, 1 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldrh r0, [r0] - strb r0, [r6] - movs r0, 0x80 - lsls r0, 6 - strh r0, [r6, 0x2] - ldr r0, _080F49D4 @ =0x0000ffff - strh r0, [r6, 0x4] - adds r1, r2 - ldrh r0, [r1] - cmp r0, 0 - beq _080F49D8 - cmp r0, 0x1 - beq _080F4A4C - b _080F4A6C - .align 2, 0 -_080F49D0: .4byte gUnknown_841431C -_080F49D4: .4byte 0x0000ffff -_080F49D8: - ldr r0, _080F4A0C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080F4A20 - ldr r0, _080F4A10 @ =gUnknown_8410E30 - str r0, [sp, 0x18] - ldr r1, _080F4A14 @ =0xffff0000 - add r0, sp, 0x18 - ldr r3, [r0, 0x4] - ands r3, r1 - movs r1, 0xC0 - lsls r1, 6 - orrs r3, r1 - str r3, [r0, 0x4] - ldrh r2, [r6, 0x2] - lsls r2, 16 - ldr r1, _080F4A18 @ =0x0000ffff - ands r1, r3 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadCompressedSpriteSheet - ldr r0, _080F4A1C @ =gUnknown_8410E10 - b _080F4A36 - .align 2, 0 -_080F4A0C: .4byte gSaveBlock2Ptr -_080F4A10: .4byte gUnknown_8410E30 -_080F4A14: .4byte 0xffff0000 -_080F4A18: .4byte 0x0000ffff -_080F4A1C: .4byte gUnknown_8410E10 -_080F4A20: - ldr r0, _080F4A44 @ =gUnknown_8411C18 - str r0, [sp, 0x18] - add r0, sp, 0x18 - movs r1, 0xC0 - lsls r1, 6 - strh r1, [r0, 0x4] - ldrh r1, [r6, 0x2] - strh r1, [r0, 0x6] - bl LoadCompressedSpriteSheet - ldr r0, _080F4A48 @ =gUnknown_8411BF8 -_080F4A36: - movs r1, 0xF8 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - b _080F4A6C - .align 2, 0 -_080F4A44: .4byte gUnknown_8411C18 -_080F4A48: .4byte gUnknown_8411BF8 -_080F4A4C: - ldr r0, _080F4AD8 @ =gUnknown_84129C0 - str r0, [sp, 0x18] - add r0, sp, 0x18 - movs r1, 0xC0 - lsls r1, 6 - strh r1, [r0, 0x4] - ldrh r1, [r6, 0x2] - strh r1, [r0, 0x6] - bl LoadCompressedSpriteSheet - ldr r0, _080F4ADC @ =gUnknown_84129A0 - movs r1, 0xF8 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette -_080F4A6C: - mov r1, sp - ldr r0, _080F4AE0 @ =gUnknown_8414364 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r1, sp - ldrh r0, [r6, 0x2] - movs r5, 0 - strh r0, [r1] - lsls r4, 16 - asrs r1, r4, 16 - mov r2, r9 - mov r0, sp - movs r3, 0 - bl CreateSprite - strb r0, [r6, 0x1] - ldr r3, _080F4AE4 @ =gSprites - ldrb r1, [r6, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x5] - movs r2, 0xF0 - orrs r1, r2 - strb r1, [r0, 0x5] - ldrb r1, [r6, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x43 - strb r5, [r0] - ldr r0, _080F4AE8 @ =0x00002001 - strh r0, [r6, 0x8] - ldr r0, _080F4AEC @ =0x0000ffff - strh r0, [r6, 0xA] - ldr r1, _080F4AF0 @ =gUnknown_841431C - mov r2, r8 - adds r0, r2, r7 - lsls r0, 1 - adds r1, 0x2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080F4B20 - cmp r0, 0x1 - bgt _080F4AF4 - cmp r0, 0 - beq _080F4AFE - b _080F4BA0 - .align 2, 0 -_080F4AD8: .4byte gUnknown_84129C0 -_080F4ADC: .4byte gUnknown_84129A0 -_080F4AE0: .4byte gUnknown_8414364 -_080F4AE4: .4byte gSprites -_080F4AE8: .4byte 0x00002001 -_080F4AEC: .4byte 0x0000ffff -_080F4AF0: .4byte gUnknown_841431C -_080F4AF4: - cmp r0, 0x2 - beq _080F4B54 - cmp r0, 0x3 - beq _080F4B74 - b _080F4BA0 -_080F4AFE: - ldr r0, _080F4B18 @ =gUnknown_8413338 - str r0, [sp, 0x18] - add r0, sp, 0x18 - movs r1, 0xC0 - lsls r1, 6 - strh r1, [r0, 0x4] - ldrh r1, [r6, 0x8] - strh r1, [r0, 0x6] - bl LoadCompressedSpriteSheet - ldr r0, _080F4B1C @ =gUnknown_8413318 - b _080F4B8A - .align 2, 0 -_080F4B18: .4byte gUnknown_8413338 -_080F4B1C: .4byte gUnknown_8413318 -_080F4B20: - ldr r0, _080F4B48 @ =gUnknown_8413338 - str r0, [sp, 0x18] - add r0, sp, 0x18 - movs r1, 0xC0 - lsls r1, 6 - strh r1, [r0, 0x4] - ldrh r1, [r6, 0x8] - strh r1, [r0, 0x6] - bl LoadCompressedSpriteSheet - ldr r0, _080F4B4C @ =gUnknown_8413318 - movs r1, 0xF0 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - mov r1, sp - ldr r0, _080F4B50 @ =gUnknown_84143D0 - b _080F4B98 - .align 2, 0 -_080F4B48: .4byte gUnknown_8413338 -_080F4B4C: .4byte gUnknown_8413318 -_080F4B50: .4byte gUnknown_84143D0 -_080F4B54: - ldr r0, _080F4B6C @ =gUnknown_8413874 - str r0, [sp, 0x18] - add r0, sp, 0x18 - movs r1, 0xC0 - lsls r1, 6 - strh r1, [r0, 0x4] - ldrh r1, [r6, 0x8] - strh r1, [r0, 0x6] - bl LoadCompressedSpriteSheet - ldr r0, _080F4B70 @ =gUnknown_8413854 - b _080F4B8A - .align 2, 0 -_080F4B6C: .4byte gUnknown_8413874 -_080F4B70: .4byte gUnknown_8413854 -_080F4B74: - ldr r0, _080F4BEC @ =gUnknown_8413DB8 - str r0, [sp, 0x18] - add r0, sp, 0x18 - movs r1, 0xC0 - lsls r1, 6 - strh r1, [r0, 0x4] - ldrh r1, [r6, 0x8] - strh r1, [r0, 0x6] - bl LoadCompressedSpriteSheet - ldr r0, _080F4BF0 @ =gUnknown_8413D98 -_080F4B8A: - movs r1, 0xF0 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - mov r1, sp - ldr r0, _080F4BF4 @ =gUnknown_84143B8 -_080F4B98: - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} -_080F4BA0: - mov r1, sp - ldrh r0, [r6, 0x8] - strh r0, [r1] - asrs r1, r4, 16 - mov r2, r9 - adds r2, 0x26 - mov r0, sp - movs r3, 0 - bl CreateSprite - strb r0, [r6, 0x6] - ldr r3, _080F4BF8 @ =gSprites - ldrb r1, [r6, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x5] - movs r1, 0xF - ands r1, r2 - movs r2, 0xE0 - orrs r1, r2 - strb r1, [r0, 0x5] - ldrb r1, [r6, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x43 - movs r1, 0x1 - strb r1, [r0] -_080F4BDE: - add sp, 0x20 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F4BEC: .4byte gUnknown_8413DB8 -_080F4BF0: .4byte gUnknown_8413D98 -_080F4BF4: .4byte gUnknown_84143B8 -_080F4BF8: .4byte gSprites - thumb_func_end sub_80F4930 - - .align 2, 0 @ Don't pad with nop. diff --git a/baserom.ips b/baserom.ips index c4f49efb2d541ef90472ba6b9ec00fb93cdb628f..6450180676ffe8b84993159db60340408c454a39 100644 GIT binary patch delta 135 zcmaE~tM<^;>V_7^7N!>F7M2#)7Pc1l7LFFq7OocV7M?Ao{ delta 34649 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 z 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 diff --git a/data/credits.s b/data/credits.s deleted file mode 100644 index ba4a254e5..000000000 --- a/data/credits.s +++ /dev/null @@ -1,70 +0,0 @@ - .section .rodata - .align 2, 0 - -gUnknown_8410CF4:: @ 8410CF4 - .incbin "baserom.gba", 0x410CF4, 0x10C - -gUnknown_8410E00:: @ 8410E00 - .incbin "baserom.gba", 0x410E00, 0x4 - -gUnknown_8410E04:: @ 8410E04 - .incbin "baserom.gba", 0x410E04, 0x4 - -gUnknown_8410E08:: @ 8410E08 - .incbin "baserom.gba", 0x410E08, 0x8 - -gUnknown_8410E10:: @ 8410E10 - .incbin "baserom.gba", 0x410E10, 0x20 - -gUnknown_8410E30:: @ 8410E30 - .incbin "baserom.gba", 0x410E30, 0xDC8 - -gUnknown_8411BF8:: @ 8411BF8 - .incbin "baserom.gba", 0x411BF8, 0x20 - -gUnknown_8411C18:: @ 8411C18 - .incbin "baserom.gba", 0x411C18, 0xD88 - -gUnknown_84129A0:: @ 84129A0 - .incbin "baserom.gba", 0x4129A0, 0x20 - -gUnknown_84129C0:: @ 84129C0 - .incbin "baserom.gba", 0x4129C0, 0x958 - -gUnknown_8413318:: @ 8413318 - .incbin "baserom.gba", 0x413318, 0x20 - -gUnknown_8413338:: @ 8413338 - .incbin "baserom.gba", 0x413338, 0x51C - -gUnknown_8413854:: @ 8413854 - .incbin "baserom.gba", 0x413854, 0x20 - -gUnknown_8413874:: @ 8413874 - .incbin "baserom.gba", 0x413874, 0x524 - -gUnknown_8413D98:: @ 8413D98 - .incbin "baserom.gba", 0x413D98, 0x20 - -gUnknown_8413DB8:: @ 8413DB8 - .incbin "baserom.gba", 0x413DB8, 0x564 - -gUnknown_841431C:: @ 841431C - .incbin "baserom.gba", 0x41431C, 0x48 - -gUnknown_8414364:: @ 8414364 - .incbin "baserom.gba", 0x414364, 0x54 - -gUnknown_84143B8:: @ 84143B8 - .incbin "baserom.gba", 0x4143B8, 0x18 - -gUnknown_84143D0:: @ 84143D0 - .incbin "baserom.gba", 0x4143D0, 0x1B8 - -gUnknown_8414588:: @ 8414588 - .incbin "baserom.gba", 0x414588, 0x34 - -gUnknown_84145BC:: @ 84145BC - .incbin "baserom.gba", 0x4145BC, 0x204 - - .align 2, 0 diff --git a/data/credits/unk_840C630.pal b/data/credits/unk_840C630.pal new file mode 100644 index 000000000..01f113381 --- /dev/null +++ b/data/credits/unk_840C630.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 diff --git a/data/credits/unk_840C650.png b/data/credits/unk_840C650.png new file mode 100644 index 0000000000000000000000000000000000000000..9afadd699dfcaa90b80df815de8e6eb0015cdcf6 GIT binary patch literal 1499 zcmeAS@N?(olHy`uVBq!ia0vp^4nW+%!3-pO;^#*&FfcO&_=LCuxzCcKt~v(oRq$HF z;8o0EXvrY)zd7k>lGhY3%OpbuLkWTZ3>-@s7(ix>g3%Bd^daz{6tM3}(RKy~rfHro zjv*P1PiI^#dTqer^7H@vXJxM}uIcUOP@kKbf4W0XHlUxtZir#!S9x7(cW(6Yb2G7sPI%qkxnlMyxvt49L+1k68EoCR0*b%-9 zoosi+eZHn1%4gV9H|w8I!yVJlXTN&xSf#b?E=Pgox>=eE3PxGS8dQs%N{<7{T&2Fy zd*``gOrP3nIYcyAUJagWBHhHLby>5ldoSx633i+3>F*_(W1l56yj^~}hR{ZhI>WyI;-|wI@7aGn{&r58Fte1)PGL!h^4n5OJk8Ie9qzAp zYv6i#l5s)51xt)t-kNK#g6!s*HQPS8m|*#stD~ABYc@*)TyKyQ5Ivy3lc_@Z;iS`gjcsQd zc1=lOkUk`ot+tSHBlCe`=7=vmT$AQ>uMuRnnefK+Kzhg<)dRYox{(Yqz9nb19Imx^ kzhg98EZM-jWj)Iu=8eKp*{Zi*bAs}mr>mdKI;Vst0IQp9-~a#s literal 0 HcmV?d00001 diff --git a/data/credits/unk_840CA54.bin b/data/credits/unk_840CA54.bin new file mode 100644 index 0000000000000000000000000000000000000000..a127ba9caca22e3424fc7d20a5ec49ca523afd3a GIT binary patch literal 1024 zcmdsy$5ui?5JbBXbI!5@BLZ$g#YEPvfS>~I5DbVJQUBeVId9Gk13w_McwP5aZ5~nI zJlBAGkU0 zx6Dr_-(a87q6TbgB&tB9wWtH1H4>G|Fezp3057kK|EK%|MpGDB literal 0 HcmV?d00001 diff --git a/data/credits/unk_840CB8C.bin b/data/credits/unk_840CB8C.bin new file mode 100644 index 0000000000000000000000000000000000000000..3dd1c74a0691f4e76cfd5e9d7ec40fd99c7faf86 GIT binary patch literal 3200 zcmeH|v2WW(6vm$i4@4{=Tmq*~7A_j>PSk%8Y6!9vFmDL#r3jj>ixv%;yaWci2rV*P zOvT6;1{_i#K%^s!)_{Q0Jf(Do0t$8U7QiTy%o%F;d!%H`jvaIe(4|lM@!j!A-raZa z-Vyz8|Dgi;Iei=Yb^J6>lnRwnWxJ_S9@Z#QMuvq_{Ui!i5{5<8m9y_#sBGa96&Cfg zfQD+z%(kB`*UsKJr=H`X=rut9d7mkWlB`CF)-(hc7? zT|v>h$TK0bb@6;%i09%QYx+VI=8Y-xeN&JD9Y7;hqfT5w?}tk7n|Rfj_?9ul%%A`g zU`AS-00VgmO+R#r_Q6nDr0@Zy#}*{u=Fb~6%9FK0uGU1ZFy<*3djj|idQ3FX76?cT z#uo0@1PYkah5B-*yxwPwrQWLcbC zI;u(enm3_QX;fZa&vRX`;kx)A+gaUic)ss?zE^U?_eETjfJAISLE^cx#6WEc5i1{s zkr`?l8K{zA94A;PZvp5=Q!4!se-IAj02(D3SjRL3B^+awUf36wF0DRB@ zZbjox({t~7-kop1gHFu-Kfx8S2sRhsZQ6Wc6J7V*iUxdR70lCB5BNk^=gD0a?ke0o zQ3p%Fe4KCq|HQrFHRVs9zy0xMvv+XQA3eO?+>WhpUd9&1svzuP4HXAXjNJDzR-OU& zH3=!PR$5um$S7<_rN%v_x`;fu6UzdGVlb@GDZ=tLo(5&ZcqWb}Qk^(i6|p7}wPf4R zmTVm_?a@_;dn$`VmD9$WU1%B_rCN16X&h2VBZgAMQfD-MA@8a9iBfT2#h7xeWE!_9 zU1?K#ubro@b|qB1eXo7K@jh0h#c>o2_B-JMSJBG0*GV!5F_3URK6oShgp!nt5f_%IAZoT#tiq7qevA?SBitKD0M zPRs3fAA}RQtd{Gn#W_~5*PT|&fz33w+PK|`7l`&>Okyd)$ry=SxKVy8Q)o8y$uTrad!WO_i&7tIgr0IW316E zGfjlEt};ZAN^wb%$vc3s#t2+TMQE4`nqYdJS8~VC!H>1E^_H@4ZF&hvR1Y8X_26 zq%>IJPt9?DOdV-;(0Hof>66tmXsqVJfea3}Ng}V#7@y4n?ra}gbcB72{};7?0Iox@ AQUCw| literal 0 HcmV?d00001 diff --git a/data/credits/unk_840D228.bin b/data/credits/unk_840D228.bin new file mode 100644 index 0000000000000000000000000000000000000000..f6c336c0173740a2131c8f559cdfd20ee6fd366c GIT binary patch literal 4992 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 literal 0 HcmV?d00001 diff --git a/data/credits/unk_840E904.bin b/data/credits/unk_840E904.bin new file mode 100644 index 0000000000000000000000000000000000000000..4887c1e7e79f412ecbdb51fc6b8c4455212a820d GIT binary patch literal 3840 zcmd5;O=u%W8m&1Pofh1ZKwyxFN?MegkxGM(K~{l}5e#Kn*pQR$tA3)CC%cwe7BMA~ ztFfE-;!~i(x($=Tx*FC@AEJ}NPz`-D7*sH`vrKNiuOvHTCo>QhhV18l_5bsI?^Tsd z$S1QpRz7^Vx)4OTEcSNVXxun({o|(akJb8JzgQsTVzW-%m(RuE#o5Nj znYHchS$|zD)DPSyrn=3h>py>fFg`mw5Zh-P>TW)!ljefJ2EH#YeBXTuxEJ^LpAEJ9 z{Low=W4F100nNMl|G#<5C8Tu({~CnU4+uGMN!^{p65_hAY%(vRaOSF){!qF8-x}_2 z?C5x?ggaE{u2SoB2(c~@`Kz&==Dyg9BC+|^f5!g#rtiP<&wbx-igQbiK(~xu^af(% zeBi&@RKCBV{7oTz^kBaWJO2nP0q)Vo4`?}_`LPL+$L_k_cj0)p&TzqXvHuW$9VrDr zl=_#i>gWD<_j$J(TI}A#{r*3tj6lhuI|Oz~OT`G058QYftGlr~O$HZZGVuMn^2c@c zlUrAonP2V9#i6ukat_z3G<4mk5;RL>a@>^CZ+z4E`_`7&U0V}7+gsug(=lLxGQ|2^=X5a4nMfKyPbj*iq=4MD8>>3d7DwT1c_E}29D32vJLxfbg^KSu&dZWD?!Ar6 zM(e(wn*NQ}4p?~#8e((o5~X%gmhERMEM&p_4^`0q#T!#3i2{Ib6x#tC;cQp;6?aj%|gkPJ{(zTI4Udx1$EHo@(EHaE;r@Rpa z@t`Yg34l9ZI9kFD%K#3plAhuoX)l=Iz5!+rNQ2u<2MlHPwC|W;&$%{zxn~Mg%M#lw zlvsf>MoWyrwGbEWno_3?pXn1J{yI?V^CwDCHc%aKY?+=yy|A6SPIoXN<-}=$(kzB& zryx4$>vWJwL7Uhm_Gz_EpU~?)Lfew0E#J6f6Tp`D0Q;uhv(~-x?}~Dj<+8k7s&bwH z*ecJnMZUsXD+yLDG6s$*D*_3YV_BqCR!wkLt@1LEWJR6@0uwhuCT_0#anr3N467w1FPACjHHN$#1`bV`EG;;+ zQ~;rtQ+&S~Xts5SG3zX>R%Wcq;U|B?s`-DgC!cqU>~R4-1q?~VzhLb3GGn{90LSqe z;@LQ@CF9_tSVSNQBAMWMj$=kJAV#yLSe&vL)|sQ$CDnZUcYJ=N!JhRuw|H<7s!5ih zWygU#i4tp9WiDDJg{Vqe%SGH7>k2rn!jmdrnIXyY{A-5B3JB_g<9*KaQJ!CP})pGlc z{X0U%O7Y&>Qa12|@eYAS5QyUVz^rr-N;26%dxa%%X;+{VP82pqn5c6E#R~`uVeo2- z#**MaN#py;Y&?p8*_QDyB}wiRlKjmtEH{h%3!I`#B8s{dw$D11E@Pbkv0q^j9X?Caxh3Kq z>lW})JV>Q34tfd~Xfewed0omaM)|lsGc_xIo^o1(2B_eczI96MbyT38B%HLcZ~1-L ywiNKGttF#n$k72+ACy);xJ{qhoBv^bS-@FZe2tkOe21fD=TU^{mJ!{j2<5-SV<8Oy literal 0 HcmV?d00001 diff --git a/data/credits/unk_840F240.bin b/data/credits/unk_840F240.bin new file mode 100644 index 0000000000000000000000000000000000000000..285a468b66b8e0a7293768217a1f18399522d304 GIT binary patch literal 3200 zcmd6pO>f&a7{>`L=L&MMYXvdqMX7aOopnS9U+R;3HHxJSmP-#SD)iEP3B!YO$;Bv8 zUHU~B8@-!$(gFnr*pw_e25ea3{&eClU7D@M&~5~N;KLW`A^&{%LdgF(>Hl_Y+WI2? zF)K|;N-M;pl#r7fgmjlH(q-4`36b@Vg*%kOK0Owz5u7Ncx#bZTD$79?P=7PO?*E@$ze#CYIcK}#QsUXr zuHq6H7*oX^3h@T2bVr~+9t;Yt6CDKkBnW)uqoI^WG|0C~D9SUfhk?^P3(n4(D4MEr z#aI>cc{m@3;Y^2nd%=^Z+_CRQ-`Q@fsMvSamQ7VjS0rVvnv{AoismGWURn{1P81(z zojA@xwGqeukDZt}whO4iN?p3Bd353C-oo|sgvyF&VnFlKH@=> z^9PSEc*uDW@CQM#3*#evdtTT6z104@b87Fj21m7-p3`|_PW90oDs*B$XUz8vTKkCZ zw?ZJ?2NG*4r5A5D! zyZ52V^EzV(VHmFYf%Ez$3j}$J))|KYXx3Z!Ja&sW%c!-_mWap$4tqFdA3XLYCzRX6l7#7lzT01zj zjP5rLMyI1E(5wConz7ceVOR&@&maR~xCgB`N5-)SBZl<84)uJNL0gaVwnwA-l(L9> zrWUMHuP?WH{jr-3$2QHBrc`Sj%h{|(SKkaYV_AcBGKPH}$MLH;K16n?bsVE_%wiL7 z3v&2!L828?silcB(EL&VG z>n+hg_z7WZq~b;Cr z#G^-rSOVdJCFoxuS!Y3BLB9-C55bW|Y6jdK#lOEj{!#rC4CDijMW5g@NDYWrA@zZf zN!c%yl7_KCDmjp2jXvR1Xa}7Rke84|HFmiw>kP-l<8q7UsA_}g9O&0J5!#9%U;8nD zWMa(}7yR6SJ1v6m2oBH;`T%wx9K(Ab{^b~VmMV+dH^fka1fnIiA@09pp@s%|{(kt2 z3fNynVDEj#`{v>-OmXKrxO=g8FVYbA?F2gDy&~OQ%1qls%dxZ6cJtIX?-5x5lY@-N zf?BH7*4np~Y7f7<_6(`!IByfB;1iJde%Jmr{3;wQP(mvxqM;cfLy6~##85S4Qe%~1 zIk0Z%3dX>s!k$P^VFC(+QP88rPYuQiMVWqu_`5oz^~}Cbp1M^h#hD9lA6)~RCZ1c> XsnKG+W|v1+_3{3@vMQH*{Js4Lt9A+q literal 0 HcmV?d00001 diff --git a/data/credits/unk_840F944.bin b/data/credits/unk_840F944.bin new file mode 100644 index 0000000000000000000000000000000000000000..ba2cdab77ce99ea4c6dc1c56d26676f36c060e5b GIT binary patch literal 3840 zcmeH}O>g5i8prtwMxdJO#t_p>FEPg2%bwg0I4N9UR+r6OdvRz?fg+b8MlYMsuz-<5 zx#UozKy}F%p>1rjM^kcU76S}mQMTm{V8asor(crHv@__-0(_6Jq?CPd*MW=(8TGZccdZSTl!e)~YljfIB4nHqQf3ZO zmeky~@B00L67yRh$RXI@G18jsQ>q^tL#M{nL56xpeWNM$Z(k5^M{d9esO)dC^?No# z{cyvGVJg=$I%E$HUGF(#E`!~GK4Z^i&2li4F@%Vf9AvQ^Bx`9P%TTG6N|UiJlpIz( zS$sfcr9zDvSmD%tOVSGaL1p_ts6s21W@szdJo!)g0!hF&?_q>->e%M+GXn zikB{_xAUKKLc)-PaNfaR0A`)&a{C?>B{&58ohXNq+at}Nh);p z<JwH`RLA z)x;3P`NzW2;G}uM$wV{=ITe`qr0zG@%>BI+ZumduYA;X9z!dVyk=1Am^nz|rk2yqq zczpaL6c3t@(YWIi)SKW`h$9qpAsXf-dV$3&6D$_y>Z7^oR87#JrqiH7_!0H}7sh|l zmwsQWT#n654&-2^^}tAJdZ5mHWok^RDlPEa9ea7d&x#rwiLXsVjY#n>=QVI7*ppOFVPZ9En_sMIbA7omt?B-k94Jd~?mMfYM z3OY-a;@EJ7ELGW0lQL7~KZ`g$FJg6-CMtjqq9eq`H=Oe}VrxSSWqS=I3b+ZvXW}A6 z*9+VKzJ=kQx5W>`zq&&F*AwDHEyNy$%+xxSNjY|7c}Q>MA$zV?tdHaYCkH^s~G2M#=OkSZLwy5zjOgpyXe_uD>YNC!D7O%Gau zyWEQUVWO%t$OD;_LRwS*Mt-77Iklv~?sZ6-3{TU+@Vt=Y^ZwXe8B;;3*fIH6v)yhT zHQTNBQ3rZ8pkXWAXlFIVM!mBO_-)PVc+ZZg2>D)vhkvtqZPS2pXJ>8EYPY8YmC~8g zlqI?XU0$=i6vj8=qMoS?}7NscXuvBa1hSB80Z-M$saQEBfpEia3 zI^^=a9m>K+~micS0`==o zS5_~?D83<+3MCavCzP^^$7TrsiuJ+Z8?1~jZlTY7>a@aNX^g^HEMBr#q$Ra#r( z*qCHYNb=@kY2$%T5s=pK`8H`;#yfOb!daxotTd%A36|OE;ZV9}2yNjYQr2%Zd%n5# z_wB(`GkNbL-#PH@2mS8ri9MrZ8kLnQv>VTgzpkkpm=~!8%ePjNqN({h&gv3Bc!~))6 zbz~GL8}D!6bBSA=rj<%n%1}=J_?_Rc`o8ZjuE_1RDkir#c#)jo`%rO>B_Eg4Ps?1j z?5TcN)o(Bvmx+`=4UsYelJO|GLUWB)v1L`V;TWp38%NHnEVn~h-gjmB(8cn(t77Te z^VWFS4kFGSt~uxSVQIWIcep0O?H`^Qe{mRw>$d8*v8IbuN~1w~n%1ft2-A?_(qp}8 zf-5wV)*>EpXs%hKRs@%IW8~e9`H`)xvPg+RHwmE1yq7B4(N^#Xdg%kk?>X0DP8K^l z`O(t}88V4z5jyJJMvWGC8ICZ9325JLs$G_(aZ}SVlo0jknd--{dURYErjcoNifIR1 zhEME0E;Nq%BHI<&bzCdwZ)+Thve9tS27l1sW9}>X(D077g1MnV=dtSNH#o-)=A*Y( zh?*8frzi?7ir4z-?E)>HFxr^uq+j4YsBf^mn;RO1EkD}!ex%-SswWdY1-!%7Oz>6@ z>H1pGof+rM0ZdcxIp^9h2+loqF7+%v-_YqKm+h=h;K(kU+c{IMhEiIzsyeimV++ee z2)u9GJi5fpE4k=H)*e~*2g{FFd?I#&*A(TD1hUj0pv5fngW5{MAiH^;LYHu?=2tx>H6Ob6+ymZNs^=Z!D=P+@u8>d{s$2Iiyl+a7n*Eos^j zt$|Lp3=w5_CNc_%gfNpZON8rRX@w*!Ry94jNa*va>`H!cfX^=vza3ZxGjsgFcfFr> zP;S?P3o)5@w{9^;3pqA>p48XrjNx!NWe(pd`&L=E)u7cPHOVTgLEB&eyu^R21_P13 Umt+vw|5(drzvq(%B)f6@1x_A+ga7~l literal 0 HcmV?d00001 diff --git a/data/credits/unk_84105B4.bin b/data/credits/unk_84105B4.bin new file mode 100644 index 0000000000000000000000000000000000000000..d173e611e30a682d8c04d4d2ceeb5967a9ba8ecb GIT binary patch literal 4608 zcmeH~v2qhJ5QeuQr5@rkp-kbuT#+GHV1)`?07pmW1}CZ*zf?M>q{9pqLz7fMD~}k< z?y}Fozp~Hduua1_0VX^5XQf+NvOevtFGTltPvA}n2$A@em4k?k{k8W=W+i@qV-tZI zfrmtO2G@aOI3|~UtF!FOUWdPSn7ceT^%mU-%*J~me+`KtID#WMx@GuSGK{gTE*+qj zi42_gN4wrXI=2W)ow`5=_ z8Lno3tz~rWMyp?-R#jw^mYx4{OY9!n#ipWq0NV*r#u{8oxg`hqbp^s zQtnUuR z7P0J-^{;J&wr(}EtIrQP3@@M&htY`X1N8BNDIBsghjlssbjAJ8SIqF-g;@28U*O!% znBNw-@o26gd?RJdqsyoK?(#;?Yi;3E2x(tJ@c6vmcm<)^7@n81%MZusmTqKme)i0 zGt)W*rbt$}s6w-+LNh8jG?L)dB4prDuhb`t$aI6JcI7ug5o=y=&q7JGkGc|i3*P%! zD>UmV8*Fg-=uJiNc>kWXQV>sX6^&YiY?-a;YtuU*yat&bz!?9 z7%^C7z<3s&li5ttd*?sTd*w)jKEnf)B#X<2{(&u#`vGq{K^S+`qC`n`!l2F)u4MtU z_;(21jfQfE`2}w;y^81r?Yh9=(0l-Mlbsr>s(C%fGZ2~k$K`}wn3QWvh@OG!zcBro NzDtw4{sO<>{14H7C*A-6 literal 0 HcmV?d00001 diff --git a/data/credits/unk_8410B20.bin b/data/credits/unk_8410B20.bin new file mode 100644 index 0000000000000000000000000000000000000000..eea1940eee91d2cc3d392659d9a6209e1c89189a GIT binary patch literal 2048 zcmeH`-3q`U2!&5u_G|C|x>F<=U5&Q8saS{XBe4ny+YYgPIwe>qXXCg literal 0 HcmV?d00001 diff --git a/data/credits/unk_8410B20.png b/data/credits/unk_8410B20.png new file mode 100644 index 0000000000000000000000000000000000000000..19ce2f796b3844aa2370e505c147c713ade7fadb GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^1whQf!VDxY?@zk|qznRlLR^6~I#5uMu(UJ`3JS`~ z%4%-zo-=33mMurmp1t?%+5i9lHGcOB0X3w0x;TbNOr1L6Ag_ZWhjZk?)wiu1H~-b1 z9@Q#;QFxNT!jFMX9E*=Il+F7kwBXt)<{NJ_#W}helCrISXWieDA-AMA|3c(>%gBKG z4V&f_Z+dWPb~Mxd(m54VHpea4mHM2?U*XQA97+ETM;Fwc7hel0 literal 0 HcmV?d00001 diff --git a/data/credits/unk_8410E10.pal b/data/credits/unk_8410E10.pal new file mode 100644 index 000000000..5667181bd --- /dev/null +++ b/data/credits/unk_8410E10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +57 57 123 +172 123 65 +255 197 148 +222 148 115 +123 65 65 +82 106 156 +57 57 123 +115 164 197 +123 123 131 +238 238 255 +180 180 213 +255 106 74 +197 57 57 +255 222 90 +213 180 74 +0 0 0 diff --git a/data/credits/unk_8410E30.png b/data/credits/unk_8410E30.png new file mode 100644 index 0000000000000000000000000000000000000000..ec065cdb6f6fde088939ded5e1431f3e80e88155 GIT binary patch literal 2105 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 N002ovPDHLkV1hyS{RRL4 literal 0 HcmV?d00001 diff --git a/data/credits/unk_84129A0.pal b/data/credits/unk_84129A0.pal new file mode 100644 index 000000000..ac601cddf --- /dev/null +++ b/data/credits/unk_84129A0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 49 49 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +222 164 74 +197 123 8 +49 65 82 +205 139 255 +115 82 131 +156 106 172 +106 123 131 +197 205 180 +238 74 24 +255 255 255 +0 0 0 diff --git a/data/credits/unk_84129C0.png b/data/credits/unk_84129C0.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9c61c888420f37af6894127e3870e6e21d0ed1 GIT binary patch literal 1162 zcmV;51a$L&uo88$tg@pAe*m#PTEtcoU4EhPG-*`=sNX*q7zLzc8WJ&%deC z?~~u1?KJoC?~bubMq@xEEyg(as872c|HLJLo51%u=K%z|p|7HkYFt}9?5jL1aMM%e zRfRd80q3FL_xlL26u|p_;13XxUqHX(duWUm5FGd}8iI8=KMgKA5U~54UmpJc4lHn^ zhPc{yb|Jtd=e>RB4GgeTezfnrO91oJR_lPsGj{iF58miiM5Ec5$~Uttn^7f3SvHEO z60@`Vww+jr6Utw(eA{meYZRcjGNmrk3> zpUg8oYTHpXc6McJ@un$nwc5>SEcYDek#lVZT5~DCyK%I z0-Fve@%vv;Lwq%fKO+G#iO&TI{Id;MlEAGHB2K3mSSCW8r%#Cr>GU>D2p~|s@FfQF3L?P|%NF9VA54O3C_6K{fZ3aqz_97=yc1#%$Z-T`c2Fss9Z;P3)>ayI?|7Wc092iyEwZE1ga_1yegt^MJXPXSQ+ zL(?-3!8ZN?ucY>eJZgU^qV@+3)cuFL|4_lG_b)29e}Put(jS_Cf(t4A!5g6^q40;} zmmdJ2@CWOKYtCzbK;Np`AJ#za59@eM{Gm$y2fTO}{RjN8>i)w$i+ca!|J}a;q4zJ) z9JcvGW1Bzps&@VX-R;sJ;PHmiAJFjz?GNa9gZ2k>yg~Z|INq@F2Y9@p^apUfVdD?z zdDZ?<0+sNGy8loBb^qaBMZJIV(DpCDB)9p4RW*M=QJo+0bp?#l>d^O;s5{u07*qoM6N<$g2ACSdH?_b literal 0 HcmV?d00001 diff --git a/data/credits/unk_8413318.pal b/data/credits/unk_8413318.pal new file mode 100644 index 000000000..284b70b77 --- /dev/null +++ b/data/credits/unk_8413318.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +131 197 0 +74 139 0 +32 115 0 +0 82 0 +106 172 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/credits/unk_8413338.png b/data/credits/unk_8413338.png new file mode 100644 index 0000000000000000000000000000000000000000..7fa79c06adff1041bbb4b6a28804ce8eb7169f4b GIT binary patch literal 624 zcmeAS@N?(olHy`uVBq!ia0vp^4h#&83@pq**2j!oQy^s!;1l8sq??a2cy%)<6f-ac zF=VX)3g83tIXo5s%0PSw;2}lH_eY zcLm@1ujTw%ebTjAUFVK{iDsR3VZn#1%u}^qrQK$K_;+E{)P!rh0+$!>ZL2%6zx`5* z-hb)41`XOrt9$%+zUeADyS8ul)M;X}(&b^V4Q9B%VwkhFR7Q4D>jhR*1{t2D+003O zQ<#1j{t!8>G9z-$@`Ep~*{yK<{@pz`J7RC|-|1i5uj>kJwQA>Ia)zUiUuCnwqxzo? zx?9p+o;5F@-0pUkLw|RnU$Ck%@)s$c4f8!DJ z&-MqxuObpyp6DgDz4|giBCrT(Zv5KMKQ}y=zjnIr)YJ1n9WGr{x~?=||H7}>c;`b| zb9X&3l1OrKIiV)6@RRRh^NU+nN7y&-&v^dJZ&Kv9U_JTA&hoj8+jL+3X213MTF7l_ z8|4bS7PgY~m*3vYcL*M0zqqyZjQy4Sy7$E2-l^N3F|GEd#qpmHvfP%uYWK2B>`63H z`^mv^^+V7}^$qGGNiDAu@_GIS|4`VqrEk7|l-ri)-3K_HfHXb-u+Ts$baFk1U1H3k viGmY$d)OtuW>fyrUNP;#PlbPuC60fYjEgVdwft-91xhBKu6{1-oD!M<)%Ffr literal 0 HcmV?d00001 diff --git a/data/credits/unk_8413854.pal b/data/credits/unk_8413854.pal new file mode 100644 index 000000000..46d4f48dd --- /dev/null +++ b/data/credits/unk_8413854.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +189 180 98 +172 164 74 +156 148 49 +123 115 24 +222 213 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 0 255 diff --git a/data/credits/unk_8413874.png b/data/credits/unk_8413874.png new file mode 100644 index 0000000000000000000000000000000000000000..18e34725f85b8703a824444ea39c9b6fc3dc46d4 GIT binary patch literal 632 zcmeAS@N?(olHy`uVBq!ia0vp^4h#&83@pq**2j!oQy^s!;1l8sq|w0MElF#Zc+Ht& zSY0e}?`ku$?0<&;Ta4as1qv~i1o;IsI6S+N24sKpba4#HXnZ@FWxzlrF5$dpld%Jb4(e%rtp3%1q2a&3%JV9Pir+!>yAg}vAL zf$#)AueX0~SK0gTs5qzS=aly7ugM>UySnCQRRYi6bk`HwI`7rj>0gh$PLnvb?Qg#TnBz0OprW2v&VI!qk@&9ln#6iOZucFAJ<47`7-cs4-!ks})R$myka}~Iyxxw$hD*-w zDoeu;S}`78th}K;(*A%Iqqn)0QpofFKOI*Y^!_oKtNiZg!KW83n*JV`l6tys!`m`_ zLGSYxN?)6Q&;6~pM(=>&4d(CSm*$!O;Cs+v{)17^_Cxd1-D_1|{mEH%J^q^T`q_yZ z(chb0-56(FYBoMy@h{;}{}I80N{>_XEe_p(!dkcE%1pzsZ{qyt<&8R%>aT-uRpov%o|k_2yRmM&0z|!peFe}D%QG#k znAUA;wwPG)oWc-f(6L$V6kvb;${qF-g^~W6Fn1dVQr+=*8AaqlK50pYYUHx3v IIVCg!0PG|h2mk;8 literal 0 HcmV?d00001 diff --git a/data/credits/unk_8413D98.pal b/data/credits/unk_8413D98.pal new file mode 100644 index 000000000..a3476d0d4 --- /dev/null +++ b/data/credits/unk_8413D98.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +131 197 0 +74 139 0 +32 115 0 +0 82 0 +106 172 0 +189 180 98 +172 164 74 +156 148 49 +123 115 24 +222 213 131 +222 222 222 +205 205 205 +189 189 189 +238 238 238 +131 131 131 diff --git a/data/credits/unk_8413DB8.png b/data/credits/unk_8413DB8.png new file mode 100644 index 0000000000000000000000000000000000000000..5b10bd69994fb0ff99691e46bc79374b48487027 GIT binary patch literal 786 zcmV+t1MU2YP)%7l0HSu+V>HYSNE{?mX0* zDoQ_czZ}x(gl6s`2~88!E@y-4r&|-tH6Dymr-RzTWV8z*ORgC-QTyF=w%^YeV}pFe z54D@!ICfU)utv1_W1ej+n%4~yI3>;FIB<$P-IE9-R4dGK@4(u6C za*Zh6W+)Vt0uuFcp?s-3?8#%RQonv!Z#?d*s#u@p1O3zY!B+_%4Ef<1AHa8-5qN0` ze2DB%Ie-xbK0tu8s+(7t575QUE8;_-%m4TQ(u|nWQcFfuK2&Y2&+~zd!;DbI5!UMi zBP1UN>ARH?9C2%w!S_%2K+|}T5Ay;0`P#Jnu1@$s-79Q8PmGfrpTc;LGk-e|gQ5;{*BsVMUTWALN;2rch1T=afqQ z`eD8CxT~sSeIFlipcAw|{9mc{cH`8fhlgjGWKPZ}10yJhJ?Q|!h%6r@Blt3}A7IT> z=EL0|7?k-Cf47JVMWx;)jHrC5+E}0D!?NdhZ^1YV?yQ&KH2j#c1s}eyW QZvX%Q07*qoM6N<$f?;QHRsaA1 literal 0 HcmV?d00001 diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index 26609158f..4406ca318 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -230,59 +230,6 @@ gUnknown_840C39C:: @ 840C39C gUnknown_840C3BC:: @ 840C3BC .incbin "baserom.gba", 0x40C3BC, 0x1E8 -gUnknown_840C5A4:: @ 840C5A4 - .incbin "baserom.gba", 0x40C5A4, 0xC - -gUnknown_840C5B0:: @ 840C5B0 - .incbin "baserom.gba", 0x40C5B0, 0x20 - -gUnknown_840C5D0:: @ 840C5D0 - .incbin "baserom.gba", 0x40C5D0, 0x20 - -gUnknown_840C5F0:: @ 840C5F0 - .incbin "baserom.gba", 0x40C5F0, 0x20 - -gUnknown_840C610:: @ 840C610 - .incbin "baserom.gba", 0x40C610, 0x20 - -gUnknown_840C630:: @ 840C630 - .incbin "baserom.gba", 0x40C630, 0x20 - -gUnknown_840C650:: @ 840C650 - .incbin "baserom.gba", 0x40C650, 0x404 - -gUnknown_840CA54:: @ 840CA54 - .incbin "baserom.gba", 0x40CA54, 0x138 - -gUnknown_840CB8C:: @ 840CB8C - .incbin "baserom.gba", 0x40CB8C, 0x69C - -gUnknown_840D228:: @ 840D228 - .incbin "baserom.gba", 0x40D228, 0xF30 - -gUnknown_840E158:: @ 840E158 - .incbin "baserom.gba", 0x40E158, 0x7AC - -gUnknown_840E904:: @ 840E904 - .incbin "baserom.gba", 0x40E904, 0x93C - -gUnknown_840F240:: @ 840F240 - .incbin "baserom.gba", 0x40F240, 0x704 - -gUnknown_840F944:: @ 840F944 - .incbin "baserom.gba", 0x40F944, 0x854 - -gUnknown_8410198:: @ 8410198 - .incbin "baserom.gba", 0x410198, 0x41C - -gUnknown_84105B4:: @ 84105B4 - .incbin "baserom.gba", 0x4105B4, 0x728 - -gUnknown_8410CDC:: @ 8410CDC - .incbin "baserom.gba", 0x410CDC, 0x18 - - @ strings - .section .rodata.841EE44 .align 2 gUnknown_841EE44:: @ 841EE44 diff --git a/data/graphics.s b/data/graphics.s index 4b00c1c4b..02d111874 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -16344,13 +16344,16 @@ gUnknown_8EAAA6C:: @ 8EAAA6C .incbin "baserom.gba", 0xEAAA6C, 0xAC gUnknown_8EAAB18:: @ 8EAAB18 - .incbin "baserom.gba", 0xEAAB18, 0x80 @UNKNOWN + .incbin "graphics/credits/charizard.gbapal" + .incbin "graphics/credits/venusaur.gbapal" + .incbin "graphics/credits/blastoise.gbapal" + .incbin "graphics/credits/pikachu.gbapal" gUnknown_8EAAB98:: @ 8EAAB98 - .incbin "baserom.gba", 0xEAAB98, 0x774 + .incbin "graphics/credits/unk_8EAAB98.4bpp.lz" gUnknown_8EAB30C:: @ 8EAB30C - .incbin "baserom.gba", 0xEAB30C, 0x3B8 + .incbin "graphics/credits/unk_8EAB30C.bin.lz" @ title_screen gGraphics_TitleScreen_PokemonFireRedLogoPals:: @ 8EAB6C4 @@ -16387,13 +16390,13 @@ gGraphics_TitleScreen_BlankObjTiles:: @ 8EAE4A8 .incbin "graphics/title_screen/unk_8eae4a8.4bpp.lz" gUnknown_8EAE528:: @ 8EAE528 - .incbin "baserom.gba", 0xEAE528, 0x20 @UNKNOWN + .incbin "graphics/credits/unk_8EAE548.gbapal" gUnknown_8EAE548:: @ 8EAE548 - .incbin "baserom.gba", 0xEAE548, 0x3B8 + .incbin "graphics/credits/unk_8EAE548.4bpp.lz" gUnknown_8EAE900:: @ 8EAE900 - .incbin "baserom.gba", 0xEAE900, 0x100 + .incbin "graphics/credits/unk_8EAE548.bin.lz" gUnknown_8EAEA00:: @ 8EAEA00 .incbin "baserom.gba", 0xEAEA00, 0x20 @UNKNOWN diff --git a/data/maps/IndigoPlateau_Exterior/scripts.inc b/data/maps/IndigoPlateau_Exterior/scripts.inc index 873224926..8e7705650 100644 --- a/data/maps/IndigoPlateau_Exterior/scripts.inc +++ b/data/maps/IndigoPlateau_Exterior/scripts.inc @@ -59,7 +59,7 @@ EventScript_167264:: @ 8167264 setvar VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR, 0 removeobject 1 removeobject 2 - special sub_80F39B4 + special Special_Credits waitstate releaseall end diff --git a/data/specials.inc b/data/specials.inc index cdd41f50d..2070469e7 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -430,7 +430,7 @@ gSpecials:: @ 815FD60 def_special sub_814EA7C def_special sub_80CCB94 def_special sub_80CCCF8 - def_special sub_80F39B4 + def_special Special_Credits def_special sub_8153810 def_special sub_809D764 def_special sub_809D8C0 diff --git a/data/strings.s b/data/strings.s index 4f6b40d85..7f9cede93 100644 --- a/data/strings.s +++ b/data/strings.s @@ -3323,260 +3323,345 @@ gUnknown_841D18D:: @ 841D18D gUnknown_841D198:: @ 841D198 .string "Pokémon FireRed Version\nStaff$" -gUnknown_841D1B6:: @ 0x841D1B6 - .string " Pokémon LeafGreen Version\nStaff$" + .align 2 +gUnknown_841D1B8:: @ 0x841D1B6 + .string "Pokémon LeafGreen Version\nStaff$" + .align 2 gUnknown_841D1D8:: @ 0x841D1D8 .string "\n\nDirector\n\n\n\n$" -gUnknown_841D1E7:: @ 0x841D1E7 - .string " \n\n\nJunichi Masuda\n\n\n$" + .align 2 +gUnknown_841D1E8:: @ 0x841D1E7 + .string "\n\n\nJunichi Masuda\n\n\n$" -gUnknown_841D1FD:: @ 0x841D1FD - .string " \nArt Director\n\nBattle Director\n\n\n$" + .align 2 +gUnknown_841D200:: @ 0x841D1FD + .string "\nArt Director\n\nBattle Director\n\n\n$" -gUnknown_841D222:: @ 0x841D222 - .string " \n\nKen Sugimori\n\nShigeki Morimoto\n\n$" + .align 2 +gUnknown_841D224:: @ 0x841D222 + .string "\n\nKen Sugimori\n\nShigeki Morimoto\n\n$" -gUnknown_841D247:: @ 0x841D247 - .string " Program Leader\n\nPlanning Leader\n\nGraphic Design Leader\n\n$" + .align 2 +gUnknown_841D248:: @ 0x841D247 + .string "Program Leader\n\nPlanning Leader\n\nGraphic Design Leader\n\n$" -gUnknown_841D281:: @ 0x841D281 - .string " \nTetsuya Watanabe\n\nKoji Nishino\n\nTakao Unno\n$" + .align 2 +gUnknown_841D284:: @ 0x841D281 + .string "\nTetsuya Watanabe\n\nKoji Nishino\n\nTakao Unno\n$" -gUnknown_841D2B1:: @ 0x841D2B1 - .string " Programmers\n\n\n\n\n$" + .align 2 +gUnknown_841D2B4:: @ 0x841D2B1 + .string "Programmers\n\n\n\n\n$" -gUnknown_841D2C5:: @ 0x841D2C5 - .string " \nHiroyuki Nakamura\nMasao Taya\nSatoshi Nohara\nMiyuki Iwasawa\nDaisuke Goto\n$" + .align 2 +gUnknown_841D2C8:: @ 0x841D2C5 + .string "\nHiroyuki Nakamura\nMasao Taya\nSatoshi Nohara\nMiyuki Iwasawa\nDaisuke Goto\n$" -gUnknown_841D312:: @ 0x841D312 - .string " System Programmers\n\n\n\n\n\n$" + .align 2 +gUnknown_841D314:: @ 0x841D312 + .string "System Programmers\n\n\n\n\n\n$" -gUnknown_841D32D:: @ 0x841D32D - .string " \nTetsuya Watanabe\nAkito Mori\nHisashi Sogabe\nSousuke Tamada\n\n$" + .align 2 +gUnknown_841D330:: @ 0x841D32D + .string "\nTetsuya Watanabe\nAkito Mori\nHisashi Sogabe\nSousuke Tamada\n\n$" -gUnknown_841D36D:: @ 0x841D36D - .string " Graphic Designers\n\n\n\n\n\n$" + .align 2 +gUnknown_841D370:: @ 0x841D36D + .string "Graphic Designers\n\n\n\n\n\n$" + .align 2 gUnknown_841D388:: @ 0x841D388 .string "\nTakao Unno\nAsuka Iwashita\nKanako Eo\nHiroki Fuchino\n\n$" -gUnknown_841D3BE:: @ 0x841D3BE - .string " \nGraphic Designers\n\n\n\n\n$" + .align 2 +gUnknown_841D3C0:: @ 0x841D3BE + .string "\nGraphic Designers\n\n\n\n\n$" + .align 2 gUnknown_841D3D8:: @ 0x841D3D8 .string "\n\nKen Sugimori\nHironobu Yoshida\n\n\n$" -gUnknown_841D3FB:: @ 0x841D3FB - .string " \nMusic Composition\n\n\n\n\n$" + .align 2 +gUnknown_841D3FC:: @ 0x841D3FB + .string "\nMusic Composition\n\n\n\n\n$" + .align 2 gUnknown_841D414:: @ 0x841D414 .string "\n\nGo Ichinose\nJunichi Masuda\n\n\n$" + .align 2 gUnknown_841D434:: @ 0x841D434 .string "\n\nSound Effects\n\n\n\n$" + .align 2 gUnknown_841D448:: @ 0x841D448 .string "\n\n\nGo Ichinose\n\n\n$" -gUnknown_841D45A:: @ 0x841D45A - .string " \nGame Designers\n\n\n\n\n$" + .align 2 +gUnknown_841D45C:: @ 0x841D45A + .string "\nGame Designers\n\n\n\n\n$" -gUnknown_841D471:: @ 0x841D471 - .string " \n\nJunichi Masuda\nKoji Nishino\nTetsuji Ohta\n\n$" + .align 2 +gUnknown_841D474:: @ 0x841D471 + .string "\n\nJunichi Masuda\nKoji Nishino\nTetsuji Ohta\n\n$" -gUnknown_841D4A1:: @ 0x841D4A1 - .string " \nGame Designers\n\n\n\n\n$" + .align 2 +gUnknown_841D4A4:: @ 0x841D4A1 + .string "\nGame Designers\n\n\n\n\n$" -gUnknown_841D4B9:: @ 0x841D4B9 - .string " \n\nHitomi Sato\nShigeru Ohmori\nTadashi Takahashi\n\n$" + .align 2 +gUnknown_841D4BC:: @ 0x841D4B9 + .string "\n\nHitomi Sato\nShigeru Ohmori\nTadashi Takahashi\n\n$" -gUnknown_841D4ED:: @ 0x841D4ED - .string " \nGame Scenario\n\n\n\n\n$" + .align 2 +gUnknown_841D4F0:: @ 0x841D4ED + .string "\nGame Scenario\n\n\n\n\n$" + .align 2 gUnknown_841D504:: @ 0x841D504 .string "\n\nHitomi Sato\nSatoshi Tajiri\n\n\n$" + .align 2 gUnknown_841D524:: @ 0x841D524 .string "\nScript Designer\n\nMap Designer\n\n\n$" -gUnknown_841D546:: @ 0x841D546 - .string " \n\nSatoshi Nohara\n\nShigeru Ohmori\n\n$" + .align 2 +gUnknown_841D548:: @ 0x841D546 + .string "\n\nSatoshi Nohara\n\nShigeru Ohmori\n\n$" -gUnknown_841D56B:: @ 0x841D56B - .string " \nParametric Designers\n\n\n\n\n$" + .align 2 +gUnknown_841D56C:: @ 0x841D56B + .string "\nParametric Designers\n\n\n\n\n$" -gUnknown_841D587:: @ 0x841D587 - .string " \n\nKoji Nishino\nTetsuji Ohta\nShigeki Morimoto\n\n$" + .align 2 +gUnknown_841D588:: @ 0x841D587 + .string "\n\nKoji Nishino\nTetsuji Ohta\nShigeki Morimoto\n\n$" -gUnknown_841D5B7:: @ 0x841D5B7 - .string " \n\nPOKéDEX Text\n\n\n\n$" + .align 2 +gUnknown_841D5B8:: @ 0x841D5B7 + .string "\n\nPOKéDEX Text\n\n\n\n$" -gUnknown_841D5CB:: @ 0x841D5CB - .string " \n\n\nKenji Matsushima\n\n\n$" + .align 2 +gUnknown_841D5CC:: @ 0x841D5CB + .string "\n\n\nKenji Matsushima\n\n\n$" -gUnknown_841D5E3:: @ 0x841D5E3 - .string " POKéMON Designers\n\n\n\n\n\n$" + .align 2 +gUnknown_841D5E4:: @ 0x841D5E3 + .string "POKéMON Designers\n\n\n\n\n\n$" + .align 2 gUnknown_841D5FC:: @ 0x841D5FC .string "\nKen Sugimori\nMotofumi Fujiwara\nShigeki Morimoto\nHironobu Yoshida\n\n$" + .align 2 gUnknown_841D640:: @ 0x841D640 .string "POKéMON Designers\n\n\n\n\n\n$" + .align 2 gUnknown_841D658:: @ 0x841D658 .string "\nSatoshi Ohta\nAsuka Iwashita\nTakao Unno\nKanako Eo\nAimi Tomita\n$" -gUnknown_841D697:: @ 0x841D697 - .string " POKéMON Designers\n\n\n\n\n\n$" + .align 2 +gUnknown_841D698:: @ 0x841D697 + .string "POKéMON Designers\n\n\n\n\n\n$" + .align 2 gUnknown_841D6B0:: @ 0x841D6B0 .string "\nAtsuko Nishida\nMuneo Saito\nRena Yoshikawa\nJun Okutani\n\n$" -gUnknown_841D6E9:: @ 0x841D6E9 - .string " Supporting Programmers\n\n\n\n$" + .align 2 +gUnknown_841D6EC:: @ 0x841D6E9 + .string "Supporting Programmers\n\n\n\n$" -gUnknown_841D707:: @ 0x841D707 - .string " \nTeruyuki Yoshioka\nTakao Nakano\n\nSatoshi Mitsuhara\nDaisuke Hoshino\n$" + .align 2 +gUnknown_841D708:: @ 0x841D707 + .string "\nTeruyuki Yoshioka\nTakao Nakano\n\nSatoshi Mitsuhara\nDaisuke Hoshino\n$" + .align 2 gUnknown_841D74C:: @ 0x841D74C .string "\n\nNCL Product Testing\n\n\n\n$" -gUnknown_841D766:: @ 0x841D766 - .string " \n\n\nNCL Super Mario Club\n\n\n$" + .align 2 +gUnknown_841D768:: @ 0x841D766 + .string "\n\n\nNCL Super Mario Club\n\n\n$" -gUnknown_841D783:: @ 0x841D783 - .string " Special Thanks\n\n\n\n\n\n$" + .align 2 +gUnknown_841D784:: @ 0x841D783 + .string "Special Thanks\n\n\n\n\n\n$" -gUnknown_841D799:: @ 0x841D799 - .string " \nHiro Nakamura\nHiroyuki Uesugi\nTeruki Murakawa\n\nKazuya Suyama\n$" + .align 2 +gUnknown_841D79C:: @ 0x841D799 + .string "\nHiro Nakamura\nHiroyuki Uesugi\nTeruki Murakawa\n\nKazuya Suyama\n$" -gUnknown_841D7DB:: @ 0x841D7DB - .string " Special Thanks\n\n\n\n\n\n$" + .align 2 +gUnknown_841D7DC:: @ 0x841D7DB + .string "Special Thanks\n\n\n\n\n\n$" -gUnknown_841D7F1:: @ 0x841D7F1 - .string " \nKenji Tominaga\n\nKenjiro Ito\nTomotaka Komura\nMichiko Takizawa\n$" + .align 2 +gUnknown_841D7F4:: @ 0x841D7F1 + .string "\nKenji Tominaga\n\nKenjiro Ito\nTomotaka Komura\nMichiko Takizawa\n$" -gUnknown_841D833:: @ 0x841D833 - .string " Special Thanks\n\n\n\n\n\n$" + .align 2 +gUnknown_841D834:: @ 0x841D833 + .string "Special Thanks\n\n\n\n\n\n$" -gUnknown_841D849:: @ 0x841D849 - .string " \nMakiko Takada\nMikiko Ohashi\nShusaku Egami\nTakanao Kondo\nRui Kawaguchi\n$" + .align 2 +gUnknown_841D84C:: @ 0x841D849 + .string "\nMakiko Takada\nMikiko Ohashi\nShusaku Egami\nTakanao Kondo\nRui Kawaguchi\n$" + .align 2 gUnknown_841D894:: @ 0x841D894 .string "\n\nBraille Code Check\n\n\n\n$" -gUnknown_841D8AD:: @ 0x841D8AD - .string " \n\n\nJapan Braille Library\n\n\n$" + .align 2 +gUnknown_841D8B0:: @ 0x841D8AD + .string "\n\n\nJapan Braille Library\n\n\n$" + .align 2 gUnknown_841D8CC:: @ 0x841D8CC .string "Information Supervisors\n\n\n\n\n\n$" -gUnknown_841D8EA:: @ 0x841D8EA - .string " \nHiroki Enomoto\nKazuyuki Terada\nYuri Sakurai\nYumi Funasaka\nNaoko Yanase\n$" + .align 2 +gUnknown_841D8EC:: @ 0x841D8EA + .string "\nHiroki Enomoto\nKazuyuki Terada\nYuri Sakurai\nYumi Funasaka\nNaoko Yanase\n$" -gUnknown_841D935:: @ 0x841D935 - .string " Coordinators\n\n\n\n\n\n$" + .align 2 +gUnknown_841D938:: @ 0x841D935 + .string "Coordinators\n\n\n\n\n\n$" -gUnknown_841D94B:: @ 0x841D94B - .string " \nAzusa Tajima\nAkira Kinashi\nKazuki Yoshihara\n\nRetsuji Nomoto\n$" + .align 2 +gUnknown_841D94C:: @ 0x841D94B + .string "\nAzusa Tajima\nAkira Kinashi\nKazuki Yoshihara\n\nRetsuji Nomoto\n$" -gUnknown_841D98A:: @ 0x841D98A - .string " \nTask Managers\n\n\n\n\n$" + .align 2 +gUnknown_841D98C:: @ 0x841D98A + .string "\nTask Managers\n\n\n\n\n$" + .align 2 gUnknown_841D9A0:: @ 0x841D9A0 .string "\n\nHitoshi Yamagami\nGakuji Nomoto\n\n\n$" + .align 2 gUnknown_841D9C4:: @ 0x841D9C4 .string "\nProducers\n\n\n\n\n$" + .align 2 gUnknown_841D9D4:: @ 0x841D9D4 .string "\n\nHiroyuki Jinnai\nTakehiro Izushi\nHiroaki Tsuru\n\n$" -gUnknown_841DA06:: @ 0x841DA06 - .string " \n\nExecutive Director\n\n\n\n$" + .align 2 +gUnknown_841DA08:: @ 0x841DA06 + .string "\n\nExecutive Director\n\n\n\n$" -gUnknown_841DA21:: @ 0x841DA21 - .string " \n\n\nSatoshi Tajiri\n\n\n$" + .align 2 +gUnknown_841DA24:: @ 0x841DA21 + .string "\n\n\nSatoshi Tajiri\n\n\n$" -gUnknown_841DA39:: @ 0x841DA39 - .string " \n\nExecutive Producer\n\n\n\n$" + .align 2 +gUnknown_841DA3C:: @ 0x841DA39 + .string "\n\nExecutive Producer\n\n\n\n$" -gUnknown_841DA55:: @ 0x841DA55 - .string " \n\n\nSatoru Iwata\n\n\n$" + .align 2 +gUnknown_841DA58:: @ 0x841DA55 + .string "\n\n\nSatoru Iwata\n\n\n$" -gUnknown_841DA6B:: @ 0x841DA6B - .string " \n\nExecutive Producer\n\n\n\n$" + .align 2 +gUnknown_841DA6C:: @ 0x841DA6B + .string "\n\nExecutive Producer\n\n\n\n$" -gUnknown_841DA85:: @ 0x841DA85 - .string " \n\n\nTsunekaz Ishihara\n\n\n$" + .align 2 +gUnknown_841DA88:: @ 0x841DA85 + .string "\n\n\nTsunekaz Ishihara\n\n\n$" + .align 2 gUnknown_841DAA0:: @ 0x841DAA0 .string "\nEnglish Version Coordinators\n\n\n\n\n$" -gUnknown_841DAC3:: @ 0x841DAC3 - .string " \n\nHiro Nakamura\nSeth McMahill\n\n\n$" + .align 2 +gUnknown_841DAC4:: @ 0x841DAC3 + .string "\n\nHiro Nakamura\nSeth McMahill\n\n\n$" -gUnknown_841DAE5:: @ 0x841DAE5 - .string " \nTranslator\n\nText Editor\n\n\n$" + .align 2 +gUnknown_841DAE8:: @ 0x841DAE5 + .string "\nTranslator\n\nText Editor\n\n\n$" + .align 2 gUnknown_841DB04:: @ 0x841DB04 .string "\n\nNob Ogasawara\n\nTeresa Lillygren\n\n$" + .align 2 gUnknown_841DB28:: @ 0x841DB28 .string "Programmers\n\n\n\n\n\n$" -gUnknown_841DB3A:: @ 0x841DB3A - .string " \nTeruki Murakawa\nSouichi Yamamoto\nYuichiro Ito\nAkira Kinashi\n\n$" + .align 2 +gUnknown_841DB3C:: @ 0x841DB3A + .string "\nTeruki Murakawa\nSouichi Yamamoto\nYuichiro Ito\nAkira Kinashi\n\n$" -gUnknown_841DB7B:: @ 0x841DB7B - .string " \nEnvironment を Tool Programmers\n\n\n\n\n$" + .align 2 +gUnknown_841DB7C:: @ 0x841DB7B + .string "\nEnvironment を Tool Programmers\n\n\n\n\n$" -gUnknown_841DBA1:: @ 0x841DBA1 - .string " \n\nTeruki Murakawa\nSouichi Yamamoto\nKimiko Nakamichi\n\n$" + .align 2 +gUnknown_841DBA4:: @ 0x841DBA1 + .string "\n\nTeruki Murakawa\nSouichi Yamamoto\nKimiko Nakamichi\n\n$" -gUnknown_841DBDA:: @ 0x841DBDA - .string " NOA Product Testing\n\n\n\n\n\n$" + .align 2 +gUnknown_841DBDC:: @ 0x841DBDA + .string "NOA Product Testing\n\n\n\n\n\n$" -gUnknown_841DBF6:: @ 0x841DBF6 - .string " \nThomas Hertzog\nKathy Huguenard\nMika Kurosawa\n\n\n$" + .align 2 +gUnknown_841DBF8:: @ 0x841DBF6 + .string "\nThomas Hertzog\nKathy Huguenard\nMika Kurosawa\n\n\n$" -gUnknown_841DC29:: @ 0x841DC29 - .string " Braille Code Check\n\n\n\n\n\n$" + .align 2 +gUnknown_841DC2C:: @ 0x841DC29 + .string "Braille Code Check\n\n\n\n\n\n$" -gUnknown_841DC45:: @ 0x841DC45 - .string " \nNational Federation\n{CLEAR_TO 0x13}of the Blind\nPatricia A. Maurer\nJapan Braille Library\nEuropean Blind Union\n$" + .align 2 +gUnknown_841DC48:: @ 0x841DC45 + .string "\nNational Federation\n{CLEAR_TO 0x13}of the Blind\nPatricia A. Maurer\nJapan Braille Library\nEuropean Blind Union\n$" + .align 2 gUnknown_841DCAC:: @ 0x841DCAC .string "\nBraille Code Check\n\n\n\n\n$" -gUnknown_841DCC5:: @ 0x841DCC5 - .string " \n\nNational Information Library\n{CLEAR_TO 0x2D}Service\nMargaret Campion\n\n$" + .align 2 +gUnknown_841DCC8:: @ 0x841DCC5 + .string "\n\nNational Information Library\n{CLEAR_TO 0x2D}Service\nMargaret Campion\n\n$" -gUnknown_841DD05:: @ 0x841DD05 - .string " Special Thanks\n\n\n\n\n\n$" + .align 2 +gUnknown_841DD08:: @ 0x841DD05 + .string "Special Thanks\n\n\n\n\n\n$" -gUnknown_841DD1D:: @ 0x841DD1D - .string " \nTakehiro Izushi\nMotoyasu Tojima\nHitoshi Yamagami\nHiroyuki Uesugi\n\n$" + .align 2 +gUnknown_841DD20:: @ 0x841DD1D + .string "\nTakehiro Izushi\nMotoyasu Tojima\nHitoshi Yamagami\nHiroyuki Uesugi\n\n$" + .align 2 gUnknown_841DD64:: @ 0x841DD64 .string "Special Thanks\n\n\n\n\n\n$" -gUnknown_841DD79:: @ 0x841DD79 - .string " \nNicola Pratt-Barlow\nShellie Dow\nAnthony Howitt\nNaoko Saeki\nKyoko Onishi\n$" + .align 2 +gUnknown_841DD7C:: @ 0x841DD79 + .string "\nNicola Pratt-Barlow\nShellie Dow\nAnthony Howitt\nNaoko Saeki\nKyoko Onishi\n$" -gUnknown_841DDC6:: @ 0x841DDC6 - .string " \nBraille Code Check\n\n\n\n\n$" + .align 2 +gUnknown_841DDC8:: @ 0x841DDC6 + .string "\nBraille Code Check\n\n\n\n\n$" -gUnknown_841DDE1:: @ 0x841DDE1 - .string " \n\nThe Royal New Zealand\nFoundation of the Blind\nGreg Moran\n\n$" + .align 2 +gUnknown_841DDE4:: @ 0x841DDE1 + .string "\n\nThe Royal New Zealand\nFoundation of the Blind\nGreg Moran\n\n$" -gUnknown_841DE21:: @ 0x841DE21 - .string " \n\nGraphic Designer\n\n\n\n$" + .align 2 +gUnknown_841DE24:: @ 0x841DE21 + .string "\n\nGraphic Designer\n\n\n\n$" -gUnknown_841DE3B:: @ 0x841DE3B - .string " \n\n\nAkira Kinashi\n\n\n$" + .align 2 +gUnknown_841DE3C:: @ 0x841DE3B + .string "\n\n\nAkira Kinashi\n\n\n$" gJPText_MysteryGift:: @ 841DE50 .string "$" diff --git a/graphics/credits/blastoise.pal b/graphics/credits/blastoise.pal new file mode 100644 index 000000000..c2b4afe7c --- /dev/null +++ b/graphics/credits/blastoise.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +148 197 246 +131 180 246 +106 164 246 +90 148 255 +57 98 164 +24 49 82 +172 222 246 +131 172 197 +98 131 148 +65 82 98 +32 41 49 +16 98 255 +8 65 164 +0 32 82 +0 0 0 diff --git a/graphics/credits/charizard.pal b/graphics/credits/charizard.pal new file mode 100644 index 000000000..9ad2a106e --- /dev/null +++ b/graphics/credits/charizard.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 98 90 +213 65 82 +189 32 74 +172 0 74 +115 0 49 +57 0 24 +255 131 98 +197 98 74 +148 74 57 +98 49 32 +49 24 16 +255 0 8 +164 0 0 +82 0 0 +0 0 0 diff --git a/graphics/credits/pikachu.pal b/graphics/credits/pikachu.pal new file mode 100644 index 000000000..32aaf1904 --- /dev/null +++ b/graphics/credits/pikachu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 230 57 +255 213 41 +255 189 16 +255 172 0 +164 115 0 +82 57 0 +255 255 82 +213 213 65 +180 180 57 +148 148 41 +106 106 32 +255 90 0 +164 57 0 +82 24 0 +0 0 0 diff --git a/graphics/credits/unk_8EAAB98.png b/graphics/credits/unk_8EAAB98.png new file mode 100644 index 0000000000000000000000000000000000000000..b1389a64a7abc304993b0dc6368aac5b93600f6f GIT binary patch literal 1217 zcmV;y1U~zTP)f6zPt+5vElghM1eXztwjylmdw zCIY(f%LD}TH|N_T#qhHT;%;;wyLJRnxDbM{?X&sIej!{41k3&C{P8$_*b*0l42u1G z>VA{@%YHd`NQ6;_1*EjmKAY!n-Uk<6dP0DJWwbx`JqJ9EZ#EO*fB>ryKIxu(GpgXG zH+uj`_I-~4tI`D&Lh%1vj{&|GCLIBwh4ww|fCeD|OKjh>FJ69X0MFkDd-_dFWnc*? zUuLO?rgg&XOZSqs6($3e0(o=fDiNAHP^75u_W6N#lnBM2d6DGq1z;*R=2=;$#22;P z=^w>FQPP-%Z1PMMn;5F8T~1*3jYFO*a1i$QlWzhLCmp6hIb9|5^A%2Ae%d3?a>De^ zpRZ7Z=yO9=5mWZC@chz5Oa$z}KDnRmwb{4D4y69$^LLgmi~M1k?!(%#u+J>|fs;NwK{H;HHrtYsMia3H)^hxSm0M8eSlZl7|D zCzq!wg5&_V&j6^wn8X5EK|;F=@2KnF$-@iJE= z(MJFs2p@ojHUeIA1RvOeoCUtr`zlBh7!jChEF@4OumG!61wMi^cEAE;4Wk6m0SoZn z5DByhEI`8m(B1?@4aYjxk_b26u{}`@FPa2s>(7(0wU9RRKUVHrW3G{{|3~p4*`| zjU4d&P$7|0{xqPIfVsiMhBE_v>1T&Cn@|{F-9Iv+&?$`r4*l$u)|i0jer{4_)A|mG zU{C7|!1K8F?{+qTE^Pwv?90qv+UVjc0P8p;Q~+Dvc_k$mEI_%z5CES^1HiX960m*{ zpyV<6paa-8PpTLY2B6$%Vt`QxVypWpfTE%e;M;vA1|7f;9Mu4EUKpehd3>H8f|7!u_0%BJWD6c?J3>H9M!c+p}H4t#Y1jvi1N`Sly zlP;J5a2Zzz0M~({o^1fQkmNzw0CXi<1wfawT@?Ub3*Tx0@M8K_0l-(|w+aBhobMh7 fDE~ds%>w=aP6agUn8BH=00000NkvXXu0mjf4|Nl^ literal 0 HcmV?d00001 diff --git a/graphics/credits/unk_8EAB30C.bin b/graphics/credits/unk_8EAB30C.bin new file mode 100644 index 0000000000000000000000000000000000000000..c072a95644a69fe12d712c4e72f0f1ab6a556839 GIT binary patch literal 1280 zcmaLWM_9-K0EY2bUdjp~v+RuQ8L~$j2ifaTWR(LMsT{1Ln?$%t=8YuWka?4lx@B`i zLN{&>o`3K4dw$0c{?&>QS|e>}ODJKqqn%-f+SWE|YeQ`1-#MTzbR~jrbf*WA^rRQP z>1{828fg!^+sz2O+9l8rU?77S%n*hW!!U+3f)NgPm@y7@h=U#EKnDc+ag1jI6Pd(h zrZAN_rZLSpr#i*SPI96X9PhY5KZm)@V?GO5$RZM0Od^RcHo-+Mbb<4o=UnFm`X!{Y zlw~Yu1uI#_YSysE)vj`-D_rg}mzwI5K%YiB8`ww&o7l`2wz7?FZgq>B-DHLv-C(+D zfqn-&$z~V3*~4CP*hen8?lZ@|?s2!f%yy?c0{sCFa)`qmp@2e;a*QI1JmyggE%1nk zJ>)?T1p4C?bAl31a*9$;bB42=^^B)2^^_+q@r1=55A^3K<2>bD;3Ai}%oVP3)hk~1 zk{7*Tx#unOT%f9dCQfDsNip4J*9vwLpKDd)%j*2R!5vk9opV zp8CYcKJuXttoFY5yc_7BQNwdy@RC>5@|rs8skhG8*80kqzVNvyx}eHc+Uqu z@`=xU;ftUB3C%^bjGtK_?mp^UthmC&sn_mMxw5J0d z=|ni4Ng|mPQcO0<&W78`j&`tp3;%~c^ratBMAM(OtYbavUFTZ+8*P;R>}#JE{YYXN z#c0MbmQ1qP&UUlRbgW|>?I>d%*`lA$4C0x|EM}8OKKt2kzIo1emNSiahSUG^e*hg< BuHgUx literal 0 HcmV?d00001 diff --git a/graphics/credits/unk_8EAE548.bin b/graphics/credits/unk_8EAE548.bin new file mode 100644 index 0000000000000000000000000000000000000000..8830b60c3266993a6d24fb5035edbbdf3a2f0404 GIT binary patch literal 2048 ucmZQ%U?dwd00H^B89~}d^-~Z6qv1E2en#^j`5`cxe@62U`Kf1k)L#G;Ap^kx literal 0 HcmV?d00001 diff --git a/graphics/credits/unk_8EAE548.png b/graphics/credits/unk_8EAE548.png new file mode 100644 index 0000000000000000000000000000000000000000..297827436c4897a0fee81cce7941444fb5b6ce92 GIT binary patch literal 908 zcmV;719SX|P)mD2m9UwX;HSaQ6@4ie!@Qimx8PE zGOvMui(&ZYH7_eKppR;JZk784k~sml1=tY|IpJ3c3&0jW-BQ8{91$%g_&s2fL7-Db zuKgA;F0t-@0WMdx{DhX={E|NR7jdr2_Q22W4X|iEsFRk(z#X1y(cqc)Vv_9Xo9>ce zX>j$Qfw%{#VoInlfHw4?4Q?{EPf|Ag6oNN5(@EPl4rhKwy-2W)NgJ#d;S-66X4ymU{An`YFH9@_k)H|3Lm4&jv`Bj z>>lqixyAtjyavfWfV~V(33R>nF=NS;G@gkz!srhqxMz~2LJlZpQ8V?0IrNCBMCFv# zwSbg>EXsx~5(Q6yc}hSL5+dE7 zRWTF|7o(a7u(l72 zE1*}^x>jpomP56`DkzGc$&NJ@!L}R%sEZRARWTHh>%mMH9ZlNcYckqg=Y%Zm0rEnp zfD+UkWRHM1yMKtoa*zYU9%{OXJ~9&H3K*%h0d9?4?KiAn5Fea81{>L~kc z@M}<}n}0VIjE6eg`h61dPzzkg-}9Hp1e&p@326CaqVOQD-pF`lFOrJ1;eRnu9Ed)F zKDTpI_KV7x*T??W6+k0=Sf~Ze!Epsb8SD=xe-4fh3GuWe+rQu1F!0lfM$QiT2J|^x ix`3`RdI4^I->!darY)owcg)lP0000unk_01) + { + case 0: + SetVBlankCallback(NULL); + SetHBlankCallback(NULL); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + ResetBgsAndClearDma3BusyFlags(1); + InitBgsFromTemplates(1, gUnknown_840C5A4, NELEMS(gUnknown_840C5A4)); + SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE)); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + gUnknown_203AB40->unk_0C = 0; + gUnknown_203AB40->unk_0E = 0; + SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, gUnknown_203AB40->unk_0C, gUnknown_203AB40->unk_0C, 0); + DecompressAndLoadBgGfxUsingHeap(1, gUnknown_8EAAB98, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(2, gUnknown_840C650, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(1, gUnknown_8EAB30C, 0x500, 0, 1); + DecompressAndLoadBgGfxUsingHeap(2, gUnknown_840CA54, 0x400, 0, 1); + LoadPalette(gUnknown_8EAAB18[gUnknown_203AB40->unk_09], 0, 0x20); + LoadPalette(gUnknown_840C630, 0xF0, 0x20); + sub_80F41A4(gUnknown_203AB40->unk_09); + SetVBlankCallback(sub_80F4190); + EnableInterrupts(INTR_FLAG_VBLANK); + gUnknown_203AB40->unk_01++; + break; + case 1: + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, PIXEL_FILL(1)); + PutWindowTilemap(0); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(0); + gUnknown_203AB40->unk_01++; + break; + case 2: + ShowBg(2); + ShowBg(0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + gUnknown_203AB40->unk_0C = 0x28; + gUnknown_203AB40->unk_01++; + break; + case 3: + if (gUnknown_203AB40->unk_0C != 0) + gUnknown_203AB40->unk_0C--; + else + gUnknown_203AB40->unk_01++; + break; + case 4: + if (!gPaletteFade.active) + { + gUnknown_203AB40->unk_0C = 8; + gUnknown_203AB40->unk_0E = 1; + gUnknown_203AB40->unk_01++; + } + break; + case 5: + if (gUnknown_203AB40->unk_0C != 0) + gUnknown_203AB40->unk_0C--; + else + { + if (gUnknown_203AB40->unk_0E < 3) + { + PutWindowTilemap(gUnknown_203AB40->unk_0E); + CopyBgTilemapBufferToVram(0); + gUnknown_203AB40->unk_0C = 4; + gUnknown_203AB40->unk_0E++; + } + else + gUnknown_203AB40->unk_01++; + } + break; + case 6: + if (gUnknown_203AB40->unk_0C < 256) + { + gUnknown_203AB40->unk_0C += 16; + SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, gUnknown_203AB40->unk_0C, gUnknown_203AB40->unk_0C, 0); + } + else + { + SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, 0x100, 0x100, 0); + gUnknown_203AB40->unk_0C = 32; + gUnknown_203AB40->unk_01++; + } + break; + case 7: + if (gUnknown_203AB40->unk_0C != 0) + gUnknown_203AB40->unk_0C--; + else + { + HideBg(2); + ShowBg(1); + PlayCry2(sub_80F42F0(gUnknown_203AB40->unk_09), 0, 125, 10); + gUnknown_203AB40->unk_0C = 128; + gUnknown_203AB40->unk_01++; + } + break; + case 8: + if (gUnknown_203AB40->unk_0C != 0) + gUnknown_203AB40->unk_0C--; + else + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gUnknown_203AB40->unk_01++; + } + break; + case 9: + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + Free(GetBgTilemapBuffer(0)); + gUnknown_203AB40->unk_01 = 0; + return TRUE; + } + break; + } + return FALSE; +} + +bool32 sub_80F4674(void) +{ + switch (gUnknown_203AB40->unk_01) + { + case 0: + SetVBlankCallback(NULL); + SetHBlankCallback(NULL); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + ResetBgsAndClearDma3BusyFlags(1); + InitBgsFromTemplates(0, gUnknown_840C5A4, 1); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + DecompressAndLoadBgGfxUsingHeap(0, gUnknown_8410CDC[gUnknown_203AB40->unk_09].tiles, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(0, gUnknown_8410CDC[gUnknown_203AB40->unk_09].map, 0x800, 0, 1); + LoadPalette(gUnknown_8410CDC[gUnknown_203AB40->unk_09].palette, 0x00, 0x200); + SetVBlankCallback(sub_80F4190); + EnableInterrupts(INTR_FLAG_VBLANK); + gUnknown_203AB40->unk_01++; + break; + case 1: + CopyBgTilemapBufferToVram(0); + gUnknown_203AB40->unk_01++; + break; + case 2: + ShowBg(0); + if (gUnknown_203AB40->unk_09 != 0) + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB_BLACK); + else + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + gUnknown_203AB40->unk_01++; + break; + case 3: + if (!gPaletteFade.active) + { + gUnknown_203AB40->unk_01 = 0; + return TRUE; + } + break; + } + return FALSE; +} + +void sub_80F47F8(u8 taskId) +{ + struct CreditsTaskData * data = (void *)gTasks[taskId].data; + switch (data->field_00) + { + case 0: + break; + case 1: + if (gSprites[data->field_01].pos1.x != 0xD0) + { + gSprites[data->field_01].pos1.x--; + gSprites[data->field_06].pos1.x--; + } + else + { + data->field_00 = 0; + } + break; + case 2: + if (gUnknown_203AB40->unk_1D & 1) + { + if (gSprites[data->field_01].pos1.y != 0x50) + { + gSprites[data->field_01].pos1.y--; + gSprites[data->field_06].pos1.y--; + } + else + { + data->field_00 = 0; + } + } + break; + case 3: + if (gUnknown_203AB40->unk_00 == 15) + { + gSprites[data->field_01].pos1.x--; + gSprites[data->field_06].pos1.x--; + } + break; + } +} + +void sub_80F48D0(void) +{ + if (gUnknown_203AB40->unk_02 != 0xFF) + { + struct CreditsTaskData * data = (void *)gTasks[gUnknown_203AB40->unk_02].data; + FreeSpriteTilesByTag(data->field_02); + DestroySprite(&gSprites[data->field_01]); + FreeSpriteTilesByTag(data->field_08); + DestroySprite(&gSprites[data->field_06]); + DestroyTask(gUnknown_203AB40->unk_02); + gUnknown_203AB40->unk_02 = 0xFF; + } +} + +void sub_80F4930(u8 a0) +{ + u8 taskId; + struct CreditsTaskData * data; + s32 r4, r9; + struct SpriteTemplate sp00; + struct CompressedSpriteSheet sp18; + + if (gUnknown_203AB40->unk_02 == 0xFF) + { + taskId = CreateTask(sub_80F47F8, 0); + data = (void *)gTasks[taskId].data; + gUnknown_203AB40->unk_02 = taskId; + switch (gUnknown_841431C[a0][2]) + { + default: + case 0: + r4 = 0xd0; + r9 = 0x50; + break; + case 1: + r4 = 0x110; + r9 = 0x50; + break; + case 2: + r4 = 0xd0; + r9 = 0xa0; + break; + } + data->field_00 = gUnknown_841431C[a0][2]; + data->field_02 = 0x2000; + data->field_04 = 0xFFFF; + switch (gUnknown_841431C[a0][0]) + { + case 0: + // Player + if (gSaveBlock2Ptr->playerGender == MALE) + { + sp18.data = gUnknown_8410E30; + sp18.size = 0x3000; + sp18.tag = data->field_02; + LoadCompressedSpriteSheet(&sp18); + LoadPalette(gUnknown_8410E10, 0x1F0, 0x20); + } + else + { + sp18.data = gUnknown_8411C18; + sp18.size = 0x3000; + sp18.tag = data->field_02; + LoadCompressedSpriteSheet(&sp18); + LoadPalette(gUnknown_8411BF8, 0x1F0, 0x20); + } + break; + case 1: + // Rival + sp18.data = gUnknown_84129C0; + sp18.size = 0x3000; + sp18.tag = data->field_02; + LoadCompressedSpriteSheet(&sp18); + LoadPalette(gUnknown_84129A0, 0x1F0, 0x20); + break; + } + sp00 = gUnknown_8414364; + sp00.tileTag = data->field_02; + data->field_01 = CreateSprite(&sp00, r4, r9, 0); + gSprites[data->field_01].oam.paletteNum = 0xF; + gSprites[data->field_01].subpriority = 0; + + data->field_08 = 0x2001; + data->field_0A = 0xFFFF; + switch (gUnknown_841431C[a0][1]) + { + case 0: + sp18.data = gUnknown_8413338; + sp18.size = 0x3000; + sp18.tag = data->field_08; + LoadCompressedSpriteSheet(&sp18); + LoadPalette(gUnknown_8413318, 0x1E0, 0x20); + sp00 = gUnknown_84143B8; + break; + case 1: + sp18.data = gUnknown_8413338; + sp18.size = 0x3000; + sp18.tag = data->field_08; + LoadCompressedSpriteSheet(&sp18); + LoadPalette(gUnknown_8413318, 0x1E0, 0x20); + sp00 = gUnknown_84143D0; + break; + case 2: + sp18.data = gUnknown_8413874; + sp18.size = 0x3000; + sp18.tag = data->field_08; + LoadCompressedSpriteSheet(&sp18); + LoadPalette(gUnknown_8413854, 0x1E0, 0x20); + sp00 = gUnknown_84143B8; + break; + case 3: + sp18.data = gUnknown_8413DB8; + sp18.size = 0x3000; + sp18.tag = data->field_08; + LoadCompressedSpriteSheet(&sp18); + LoadPalette(gUnknown_8413D98, 0x1E0, 0x20); + sp00 = gUnknown_84143B8; + break; + } + sp00.tileTag = data->field_08; + data->field_06 = CreateSprite(&sp00, r4, r9 + 0x26, 0); + gSprites[data->field_06].oam.paletteNum = 0xE; + gSprites[data->field_06].subpriority = 1; + } +} From 932d153f5eac6c68d762f6a1f62576cef23850fb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 24 Sep 2019 14:00:46 -0400 Subject: [PATCH 3/6] Cryptic unreferenced LZ file --- data/credits/unk_840DC0C.bin | Bin 0 -> 2048 bytes src/credits.c | 87 ++++++++++++++++++----------------- 2 files changed, 44 insertions(+), 43 deletions(-) create mode 100644 data/credits/unk_840DC0C.bin diff --git a/data/credits/unk_840DC0C.bin b/data/credits/unk_840DC0C.bin new file mode 100644 index 0000000000000000000000000000000000000000..a52ea8056c691c615d10b2b747adb78f0ff9057a GIT binary patch literal 2048 zcmcIkL1-IC6#YIJ1^X70B43@vNC)e*VAz091%dbA)TB4}kDO2kf&)$a*tdU%`Tx&h4a&QnmZjMG#)PDM0itp~q7heZl zwPx}2eU2C_HNfQWs5iQ*Qr-Yi{dpLx77SP9ypqu;cPNrCx1wmY-}rIJK{f{j1<6z^_gUv*~PT-DMeb-0C_jQeUl#4Vb#FB>3HcqDt!M9OXs zWD8G9qD6ipvYF1#W)Gla0ptzHUX_mGczU!G+q-cVZ^}U*YezgAa%3vx&^Cma*xAW( zYQ#OUey?{wxNimb)&=TK(x989=_KCCvW0jj?skO?0xMePR@4>NYLY$_DWa5R>G5fn zDJeHGc^7#@4tqKIePRntU>lRPl-iS-P5}_S6>6YO@nx?jke+6reO&)h3~;2wcF^iE za#7D~Xjwdsu}Y2O-RaIkW@M!kGjmRE2`BUjA#rK4J@t$B^ebv)Ra(!C8q54TvuYkI z{A#l8czYU8cNex7;)S9iEasI7V;;RErSZulD;Aa^48tJAa0#738%Al(J2fV@;TI-8 zbCSCEb3zL;DZ8dc9g-MDA||OlXP;)Jbb<}DC##bbEecQV(^m-|!aMzQZwJ~wLarh& zn^R*bmBC`Y4vV+YvKr*;3_6qoR4FSH>UoqF87;WXTk{!RtK!_DK6OmSsvEai^-snq z%A!lWy7Ud_BH)~^1)P>cjw{slOf3cx3VjEzg3{_wlomE{@vMR`E?mla_Y3sd(0+g2 zB$YQ`lJKHT2<|~B_8iR&f|w*s9{xdAbDatbtC#=|nFB&hB$*?`EoiNHJ+488;N3>% z9e~$o0O6afA&$?O=`#aC&=#hu*_4#0Oz?NdOmAt_EM#!;M*5PPMQd<1uH6Y}~dIm45? zKv#@$K~`%(YQNN9o3MgB|NVUE8jgpc8!52Yyj58y)NK3JRf F{~NvG=kx#o literal 0 HcmV?d00001 diff --git a/src/credits.c b/src/credits.c index fff0a502b..b740d6067 100644 --- a/src/credits.c +++ b/src/credits.c @@ -220,6 +220,7 @@ const u32 gUnknown_840C650[] = INCBIN_U32("data/credits/unk_840C650.8bpp.lz"); const u32 gUnknown_840CA54[] = INCBIN_U32("data/credits/unk_840CA54.bin.lz"); const u32 gUnknown_840CB8C[] = INCBIN_U32("data/credits/unk_840CB8C.bin.lz"); const u32 gUnknown_840D228[] = INCBIN_U32("data/credits/unk_840D228.bin.lz"); +const u32 gUnknown_840DC0C[] = INCBIN_U32("data/credits/unk_840DC0C.bin.lz"); const u32 gUnknown_840E158[] = INCBIN_U32("data/credits/unk_840E158.bin.lz"); const u32 gUnknown_840E904[] = INCBIN_U32("data/credits/unk_840E904.bin.lz"); const u32 gUnknown_840F240[] = INCBIN_U32("data/credits/unk_840F240.bin.lz"); @@ -549,49 +550,49 @@ const struct CreditsOverworldCmd *const gUnknown_8414588[] = { }; const struct UnkStruct_84145BC gUnknown_84145BC[] = { - { gUnknown_841D1D8, gUnknown_841D1E8, 0 }, - { gUnknown_841D200, gUnknown_841D224, 0 }, - { gUnknown_841D248, gUnknown_841D284, 0 }, - { gUnknown_841D2B4, gUnknown_841D2C8, 0 }, - { gUnknown_841D314, gUnknown_841D330, 1 }, - { gUnknown_841D370, gUnknown_841D388, 1 }, - { gUnknown_841D3C0, gUnknown_841D3D8, 1 }, - { gUnknown_841D3FC, gUnknown_841D414, 1 }, - { gUnknown_841D434, gUnknown_841D448, 0 }, - { gUnknown_841D45C, gUnknown_841D474, 0 }, - { gUnknown_841D4A4, gUnknown_841D4BC, 0 }, - { gUnknown_841D4F0, gUnknown_841D504, 1 }, - { gUnknown_841D524, gUnknown_841D548, 0 }, - { gUnknown_841D56C, gUnknown_841D588, 0 }, - { gUnknown_841D5B8, gUnknown_841D5CC, 0 }, - { gUnknown_841D5E4, gUnknown_841D5FC, 1 }, - { gUnknown_841D640, gUnknown_841D658, 0 }, - { gUnknown_841D698, gUnknown_841D6B0, 1 }, - { gUnknown_841D6EC, gUnknown_841D708, 0 }, - { gUnknown_841D74C, gUnknown_841D768, 0 }, - { gUnknown_841D784, gUnknown_841D79C, 0 }, - { gUnknown_841D7DC, gUnknown_841D7F4, 0 }, - { gUnknown_841D834, gUnknown_841D84C, 0 }, - { gUnknown_841D894, gUnknown_841D8B0, 0 }, - { gUnknown_841D8CC, gUnknown_841D8EC, 0 }, - { gUnknown_841D938, gUnknown_841D94C, 0 }, - { gUnknown_841D98C, gUnknown_841D9A0, 1 }, - { gUnknown_841D9C4, gUnknown_841D9D4, 0 }, - { gUnknown_841DA08, gUnknown_841DA24, 0 }, - { gUnknown_841DA3C, gUnknown_841DA58, 0 }, - { gUnknown_841DA6C, gUnknown_841DA88, 0 }, - { gUnknown_841DAA0, gUnknown_841DAC4, 0 }, - { gUnknown_841DAE8, gUnknown_841DB04, 0 }, - { gUnknown_841DB28, gUnknown_841DB3C, 0 }, - { gUnknown_841DB7C, gUnknown_841DBA4, 1 }, - { gUnknown_841DBDC, gUnknown_841DBF8, 1 }, - { gUnknown_841DC2C, gUnknown_841DC48, 1 }, - { gUnknown_841DCAC, gUnknown_841DCC8, 1 }, - { gUnknown_841DD08, gUnknown_841DD20, 0 }, - { gUnknown_841DD64, gUnknown_841DD7C, 0 }, - { gUnknown_841DDC8, gUnknown_841DDE4, 0 }, - { gUnknown_841DE24, gUnknown_841DE3C, 0 }, - { gUnknown_84161CD, gUnknown_84161CD, 0 } + { gUnknown_841D1D8, gUnknown_841D1E8, FALSE }, + { gUnknown_841D200, gUnknown_841D224, FALSE }, + { gUnknown_841D248, gUnknown_841D284, FALSE }, + { gUnknown_841D2B4, gUnknown_841D2C8, FALSE }, + { gUnknown_841D314, gUnknown_841D330, TRUE }, + { gUnknown_841D370, gUnknown_841D388, TRUE }, + { gUnknown_841D3C0, gUnknown_841D3D8, TRUE }, + { gUnknown_841D3FC, gUnknown_841D414, TRUE }, + { gUnknown_841D434, gUnknown_841D448, FALSE }, + { gUnknown_841D45C, gUnknown_841D474, FALSE }, + { gUnknown_841D4A4, gUnknown_841D4BC, FALSE }, + { gUnknown_841D4F0, gUnknown_841D504, TRUE }, + { gUnknown_841D524, gUnknown_841D548, FALSE }, + { gUnknown_841D56C, gUnknown_841D588, FALSE }, + { gUnknown_841D5B8, gUnknown_841D5CC, FALSE }, + { gUnknown_841D5E4, gUnknown_841D5FC, TRUE }, + { gUnknown_841D640, gUnknown_841D658, FALSE }, + { gUnknown_841D698, gUnknown_841D6B0, TRUE }, + { gUnknown_841D6EC, gUnknown_841D708, FALSE }, + { gUnknown_841D74C, gUnknown_841D768, FALSE }, + { gUnknown_841D784, gUnknown_841D79C, FALSE }, + { gUnknown_841D7DC, gUnknown_841D7F4, FALSE }, + { gUnknown_841D834, gUnknown_841D84C, FALSE }, + { gUnknown_841D894, gUnknown_841D8B0, FALSE }, + { gUnknown_841D8CC, gUnknown_841D8EC, FALSE }, + { gUnknown_841D938, gUnknown_841D94C, FALSE }, + { gUnknown_841D98C, gUnknown_841D9A0, TRUE }, + { gUnknown_841D9C4, gUnknown_841D9D4, FALSE }, + { gUnknown_841DA08, gUnknown_841DA24, FALSE }, + { gUnknown_841DA3C, gUnknown_841DA58, FALSE }, + { gUnknown_841DA6C, gUnknown_841DA88, FALSE }, + { gUnknown_841DAA0, gUnknown_841DAC4, FALSE }, + { gUnknown_841DAE8, gUnknown_841DB04, FALSE }, + { gUnknown_841DB28, gUnknown_841DB3C, FALSE }, + { gUnknown_841DB7C, gUnknown_841DBA4, TRUE }, + { gUnknown_841DBDC, gUnknown_841DBF8, TRUE }, + { gUnknown_841DC2C, gUnknown_841DC48, TRUE }, + { gUnknown_841DCAC, gUnknown_841DCC8, TRUE }, + { gUnknown_841DD08, gUnknown_841DD20, FALSE }, + { gUnknown_841DD64, gUnknown_841DD7C, FALSE }, + { gUnknown_841DDC8, gUnknown_841DDE4, FALSE }, + { gUnknown_841DE24, gUnknown_841DE3C, FALSE }, + { gUnknown_84161CD, gUnknown_84161CD, FALSE } }; void Special_Credits(void) From d66767ed9a5eb714b98a4e4dc22728606414c39c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 25 Sep 2019 11:09:28 -0400 Subject: [PATCH 4/6] Documentation and cleanup --- asm/field_weather.s | 6 +- asm/hall_of_fame.s | 10 +- asm/overworld.s | 26 +- asm/pokedex_screen.s | 2 +- asm/post_battle_event_funcs.s | 6 +- data/graphics.s | 12 +- .../maps/PokemonLeague_HallOfFame/scripts.inc | 2 +- data/specials.inc | 2 +- data/strings.s | 4 +- include/credits.h | 6 - include/field_weather.h | 2 +- include/graphics.h | 12 +- include/overworld.h | 17 +- include/strings.h | 4 +- include/trainer_pokemon_sprites.h | 2 +- src/credits.c | 1259 +++++++++-------- src/quest_log.c | 4 +- src/sound.c | 4 +- src/trainer_pokemon_sprites.c | 2 +- sym_ewram.txt | 5 +- 20 files changed, 714 insertions(+), 673 deletions(-) delete mode 100644 include/credits.h diff --git a/asm/field_weather.s b/asm/field_weather.s index ac24101a7..bdb31a434 100644 --- a/asm/field_weather.s +++ b/asm/field_weather.s @@ -1737,8 +1737,8 @@ _0807A93C: .4byte 0x000006ca _0807A940: .4byte 0x000006cb thumb_func_end fade_screen - thumb_func_start sub_807A944 -sub_807A944: @ 807A944 + thumb_func_start FieldWeather_StartFadingOutCreditsMap +FieldWeather_StartFadingOutCreditsMap: @ 807A944 push {r4-r6,lr} sub sp, 0x4 adds r6, r2, 0 @@ -1887,7 +1887,7 @@ _0807AA60: .4byte gUnknown_2037F34 _0807AA64: .4byte 0x000006c6 _0807AA68: .4byte 0x000006ca _0807AA6C: .4byte 0x000006cb - thumb_func_end sub_807A944 + thumb_func_end FieldWeather_StartFadingOutCreditsMap thumb_func_start sub_807AA70 sub_807AA70: @ 807AA70 diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index 19ff62664..5b28e21d5 100644 --- a/asm/hall_of_fame.s +++ b/asm/hall_of_fame.s @@ -138,7 +138,7 @@ _080F1EC4: bne _080F1EF0 ldr r0, _080F1EEC @ =sub_80F1DC0 bl SetMainCallback2 - movs r0, 0x8F + movs r0, 0x8F @ BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME >> 1 lsls r0, 1 bl PlayBGM movs r0, 0 @@ -1448,15 +1448,15 @@ sub_80F2934: @ 80F2934 movs r0, 0x80 lsls r0, 7 bl FlagSet - ldr r1, _080F2974 @ =gUnknown_2031DD8 + ldr r1, _080F2974 @ =gDisableMapMusicChangeOnMapLoad movs r0, 0x2 strb r0, [r1] movs r2, 0x1 negs r2, r2 movs r0, 0x6 str r0, [sp] - movs r0, 0x3 - movs r1, 0x9 + movs r0, 0x3 @ MAP_GROUP(INDIGO_PLATEAU_EXTERIOR) + movs r1, 0x9 @ MAP_NUM(INDIGO_PLATEAU_EXTERIOR) movs r3, 0xB bl Overworld_SetWarpDestination bl DoWarp @@ -1466,7 +1466,7 @@ sub_80F2934: @ 80F2934 bx r0 .align 2, 0 _080F2970: .4byte 0x00004085 -_080F2974: .4byte gUnknown_2031DD8 +_080F2974: .4byte gDisableMapMusicChangeOnMapLoad thumb_func_end sub_80F2934 thumb_func_start sub_80F2978 diff --git a/asm/overworld.s b/asm/overworld.s index b2bce4b48..811ee5c04 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -2382,14 +2382,14 @@ sub_8055DB8: @ 8055DB8 Overworld_PlaySpecialMapMusic: @ 8055DC4 push {r4,r5,lr} sub sp, 0x4 - ldr r0, _08055DD8 @ =gUnknown_2031DD8 + ldr r0, _08055DD8 @ =gDisableMapMusicChangeOnMapLoad ldrb r0, [r0] cmp r0, 0x1 bne _08055DDC bl StopMapMusic b _08055E6C .align 2, 0 -_08055DD8: .4byte gUnknown_2031DD8 +_08055DD8: .4byte gDisableMapMusicChangeOnMapLoad _08055DDC: cmp r0, 0x2 beq _08055E6C @@ -2488,14 +2488,14 @@ _08055E90: .4byte gSaveBlock1Ptr thumb_func_start sub_8055E94 sub_8055E94: @ 8055E94 push {r4-r6,lr} - ldr r0, _08055EA4 @ =gUnknown_2031DD8 + ldr r0, _08055EA4 @ =gDisableMapMusicChangeOnMapLoad ldrb r0, [r0] cmp r0, 0x1 bne _08055EA8 bl StopMapMusic b _08055F14 .align 2, 0 -_08055EA4: .4byte gUnknown_2031DD8 +_08055EA4: .4byte gDisableMapMusicChangeOnMapLoad _08055EA8: cmp r0, 0x2 beq _08055F14 @@ -2701,7 +2701,7 @@ _08056014: adds r0, 0x32 lsls r0, 24 lsrs r2, r0, 24 - ldr r0, _08056050 @ =gUnknown_2031DD8 + ldr r0, _08056050 @ =gDisableMapMusicChangeOnMapLoad ldrb r0, [r0] cmp r0, 0x1 bne _08056054 @@ -2709,7 +2709,7 @@ _08056014: b _0805606A .align 2, 0 _0805604C: .4byte gUnknown_2031DDC -_08056050: .4byte gUnknown_2031DD8 +_08056050: .4byte gDisableMapMusicChangeOnMapLoad _08056054: cmp r0, 0x2 beq _0805606A @@ -5158,8 +5158,8 @@ _0805749A: _080574A0: .4byte sub_8056534 thumb_func_end sub_8057430 - thumb_func_start sub_80574A4 -sub_80574A4: @ 80574A4 + thumb_func_start Overworld_CreditsMainCB +Overworld_CreditsMainCB: @ 80574A4 push {r4,lr} ldr r0, _080574E8 @ =gPaletteFade ldrb r0, [r0, 0x7] @@ -5187,7 +5187,7 @@ _080574E0: bx r0 .align 2, 0 _080574E8: .4byte gPaletteFade - thumb_func_end sub_80574A4 + thumb_func_end Overworld_CreditsMainCB thumb_func_start sub_80574EC sub_80574EC: @ 80574EC @@ -5209,8 +5209,8 @@ _08057506: bx r1 thumb_func_end sub_80574EC - thumb_func_start sub_805750C -sub_805750C: @ 805750C + thumb_func_start Overworld_DoScrollSceneForCredits +Overworld_DoScrollSceneForCredits: @ 805750C push {lr} ldr r3, _08057520 @ =gUnknown_2031DE4 str r1, [r3] @@ -5223,7 +5223,7 @@ sub_805750C: @ 805750C .align 2, 0 _08057520: .4byte gUnknown_2031DE4 _08057524: .4byte gUnknown_2036E28 - thumb_func_end sub_805750C + thumb_func_end Overworld_DoScrollSceneForCredits thumb_func_start sub_8057528 sub_8057528: @ 8057528 @@ -5451,7 +5451,7 @@ _08057712: ldr r2, _08057738 @ =0x3fffffff movs r0, 0 movs r1, 0 - bl sub_807A944 + bl FieldWeather_StartFadingOutCreditsMap _0805772A: ldrb r0, [r4] adds r0, 0x1 diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s index b9c18d201..9394675c6 100644 --- a/asm/pokedex_screen.s +++ b/asm/pokedex_screen.s @@ -4491,7 +4491,7 @@ sub_81049FC: @ 81049FC adds r0, r5, 0 movs r1, 0x8 movs r3, 0x1 - bl sub_810C228 + bl LoadMonPicForCredits add sp, 0x8 pop {r4-r6} pop {r0} diff --git a/asm/post_battle_event_funcs.s b/asm/post_battle_event_funcs.s index 264ca380d..20455093a 100644 --- a/asm/post_battle_event_funcs.s +++ b/asm/post_battle_event_funcs.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_80CA2E4 -sub_80CA2E4: @ 80CA2E4 + thumb_func_start Special_HallOfFame +Special_HallOfFame: @ 80CA2E4 push {r4-r7,lr} sub sp, 0x4 bl sp000_heal_pokemon @@ -104,7 +104,7 @@ _080CA3B4: .4byte gSaveBlock2Ptr _080CA3B8: .4byte gPlayerParty _080CA3BC: .4byte 0x0000083b _080CA3C0: .4byte CB2_DoHallOfFameScreen - thumb_func_end sub_80CA2E4 + thumb_func_end Special_HallOfFame thumb_func_start sub_80CA3C4 sub_80CA3C4: @ 80CA3C4 diff --git a/data/graphics.s b/data/graphics.s index 02d111874..b79fa4a74 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -16343,16 +16343,16 @@ gUnknown_8EAAA10:: @ 8EAAA10 gUnknown_8EAAA6C:: @ 8EAAA6C .incbin "baserom.gba", 0xEAAA6C, 0xAC -gUnknown_8EAAB18:: @ 8EAAB18 +gCreditsMonBackdropPals:: @ 8EAAB18 .incbin "graphics/credits/charizard.gbapal" .incbin "graphics/credits/venusaur.gbapal" .incbin "graphics/credits/blastoise.gbapal" .incbin "graphics/credits/pikachu.gbapal" -gUnknown_8EAAB98:: @ 8EAAB98 +gCreditsPokeballBgGfxTiles:: @ 8EAAB98 .incbin "graphics/credits/unk_8EAAB98.4bpp.lz" -gUnknown_8EAB30C:: @ 8EAB30C +gCreditsPokeballBgGfxMap:: @ 8EAB30C .incbin "graphics/credits/unk_8EAB30C.bin.lz" @ title_screen @@ -16389,13 +16389,13 @@ gGraphics_TitleScreen_FirePals:: @ 8EAE488 gGraphics_TitleScreen_BlankObjTiles:: @ 8EAE4A8 .incbin "graphics/title_screen/unk_8eae4a8.4bpp.lz" -gUnknown_8EAE528:: @ 8EAE528 +gCreditsAllRightsReservedGfxPal:: @ 8EAE528 .incbin "graphics/credits/unk_8EAE548.gbapal" -gUnknown_8EAE548:: @ 8EAE548 +gCreditsAllRightsReservedGfxTiles:: @ 8EAE548 .incbin "graphics/credits/unk_8EAE548.4bpp.lz" -gUnknown_8EAE900:: @ 8EAE900 +gCreditsAllRightsReservedGfxMap:: @ 8EAE900 .incbin "graphics/credits/unk_8EAE548.bin.lz" gUnknown_8EAEA00:: @ 8EAEA00 diff --git a/data/maps/PokemonLeague_HallOfFame/scripts.inc b/data/maps/PokemonLeague_HallOfFame/scripts.inc index faadadcda..11df46047 100644 --- a/data/maps/PokemonLeague_HallOfFame/scripts.inc +++ b/data/maps/PokemonLeague_HallOfFame/scripts.inc @@ -37,7 +37,7 @@ EventScript_162D70:: @ 8162D70 call EventScript_1A651A setrespawn SPAWN_PALLET_TOWN fadescreenspeed 1, 24 - special sub_80CA2E4 + special Special_HallOfFame waitstate releaseall end diff --git a/data/specials.inc b/data/specials.inc index 2070469e7..5905d825f 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -281,7 +281,7 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_61 def_special DoSoftReset - def_special sub_80CA2E4 + def_special Special_HallOfFame def_special sub_80CB498 def_special nullsub_75 def_special SpawnScriptFieldObject diff --git a/data/strings.s b/data/strings.s index 7f9cede93..02eefcef8 100644 --- a/data/strings.s +++ b/data/strings.s @@ -3320,11 +3320,11 @@ gUnknown_841D18D:: @ 841D18D .string "ROOFTOP$" .align 2 -gUnknown_841D198:: @ 841D198 +gString_PokemonFireRed_Staff:: @ 841D198 .string "Pokémon FireRed Version\nStaff$" .align 2 -gUnknown_841D1B8:: @ 0x841D1B6 +gString_PokemonLeafGreen_Staff:: @ 0x841D1B6 .string "Pokémon LeafGreen Version\nStaff$" .align 2 diff --git a/include/credits.h b/include/credits.h deleted file mode 100644 index c8a19bbeb..000000000 --- a/include/credits.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef GUARD_CREDITS_H -#define GUARD_CREDITS_H - - - -#endif //GUARD_CREDITS_H diff --git a/include/field_weather.h b/include/field_weather.h index 3e544b106..794472f43 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -16,6 +16,6 @@ void PlayRainStoppingSoundEffect(void); bool8 sub_807AA70(void); void SetWeatherScreenFadeOut(void); void sub_807B070(void); -void sub_807A944(u8, u8, u32); +void FieldWeather_StartFadingOutCreditsMap(u8, u8, u32); #endif // GUARD_WEATHER_H diff --git a/include/graphics.h b/include/graphics.h index 50daf7661..6139869c9 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -975,11 +975,11 @@ extern const u16 gGraphics_TitleScreen_FirePals[]; extern const u8 gGraphics_TitleScreen_BlankObjTiles[]; // credits -extern const u32 gUnknown_8EAAB98[]; -extern const u32 gUnknown_8EAB30C[]; -extern const u16 gUnknown_8EAAB18[][16]; -extern const u16 gUnknown_8EAE528[]; -extern const u8 gUnknown_8EAE548[]; -extern const u8 gUnknown_8EAE900[]; +extern const u32 gCreditsPokeballBgGfxTiles[]; +extern const u32 gCreditsPokeballBgGfxMap[]; +extern const u16 gCreditsMonBackdropPals[][16]; +extern const u16 gCreditsAllRightsReservedGfxPal[]; +extern const u8 gCreditsAllRightsReservedGfxTiles[]; +extern const u8 gCreditsAllRightsReservedGfxMap[]; #endif //GUARD_GRAPHICS_H diff --git a/include/overworld.h b/include/overworld.h index f27a4dbd3..472ebf544 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -1,5 +1,5 @@ -#ifndef GUARD_ROM4_H -#define GUARD_ROM4_H +#ifndef GUARD_OVERWORLD_H +#define GUARD_OVERWORLD_H #include "global.h" #include "main.h" @@ -30,6 +30,11 @@ struct CreditsOverworldCmd u16 unk_4; }; +/* gDisableMapMusicChangeOnMapLoad */ +#define MUSIC_DISABLE_OFF 0 +#define MUSIC_DISABLE_STOP 1 +#define MUSIC_DISABLE_KEEP 2 + extern struct UCoords32 gDirectionToVectors[]; extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; @@ -104,7 +109,7 @@ void ResetInitialPlayerAvatarState(void); void sub_8055D40(u16 mapDataId); void CleanupOverworldWindowsAndTilemaps(void); -extern u8 gUnknown_2031DD8; +extern u8 gDisableMapMusicChangeOnMapLoad; extern u8 gUnknown_2036E28; extern void (*gFieldCallback)(void); @@ -126,7 +131,7 @@ bool32 sub_8055C9C(void); void Overworld_ResetStateAfterDigEscRope(void); bool32 sub_8058244(void); -void sub_80574A4(void); -bool32 sub_805750C(u8 *, const struct CreditsOverworldCmd *, u8); +void Overworld_CreditsMainCB(void); +bool32 Overworld_DoScrollSceneForCredits(u8 *, const struct CreditsOverworldCmd *, u8); -#endif //GUARD_ROM4_H +#endif //GUARD_OVERWORLD_H diff --git a/include/strings.h b/include/strings.h index 001f08f61..9f521a65e 100644 --- a/include/strings.h +++ b/include/strings.h @@ -210,8 +210,8 @@ extern const u8 gString_SlotMachineControls[]; // credits extern const u8 gUnknown_84161CD[]; -extern const u8 gUnknown_841D198[]; // FR -extern const u8 gUnknown_841D1B8[]; // LG +extern const u8 gString_PokemonFireRed_Staff[]; // FR +extern const u8 gString_PokemonLeafGreen_Staff[]; // LG extern const u8 gUnknown_841D1D8[]; extern const u8 gUnknown_841D1E8[]; extern const u8 gUnknown_841D200[]; diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h index dfd716176..db32623bf 100644 --- a/include/trainer_pokemon_sprites.h +++ b/include/trainer_pokemon_sprites.h @@ -14,6 +14,6 @@ u8 sub_818D97C(u8 a0, u8 a1); u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 FreeAndDestroyTrainerPicSprite(u16); u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass); -u16 sub_810C228(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId); +u16 LoadMonPicForCredits(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId); #endif // GUARD_TRAINER_POKEMON_SPRITES_H diff --git a/src/credits.c b/src/credits.c index b740d6067..146f647e7 100644 --- a/src/credits.c +++ b/src/credits.c @@ -11,41 +11,92 @@ #include "decompress.h" #include "graphics.h" #include "strings.h" +#include "menu.h" +#include "field_weather.h" #include "trainer_pokemon_sprites.h" #include "sound.h" #include "constants/species.h" #include "constants/maps.h" +#if defined(FIRERED) +#define TITLE_TEXT gString_PokemonFireRed_Staff +asm(".set TITLE_TEXT, gString_PokemonFireRed_Staff"); +#elif defined(LEAFGREEN) +#define TITLE_TEXT gString_PokemonLeafGreen_Staff +asm(".set TITLE_TEXT, gString_PokemonLeafGreen_Staff"); +#endif + +enum CreditsSceneIdx +{ + CREDITSSCENE_INIT_WIN0 = 0, + CREDITSSCENE_SETUP_DARKEN_EFFECT, + CREDITSSCENE_OPEN_WIN0, + CREDITSSCENE_LOAD_PLAYER_SPRITE_AT_INDIGO, + CREDITSSCENE_PRINT_TITLE_STAFF, + CREDITSSCENE_WAIT_TITLE_STAFF, + CREDITSSCENE_EXEC_CMD, + CREDITSSCENE_PRINT_ADDPRINTER1, + CREDITSSCENE_PRINT_ADDPRINTER2, + CREDITSSCENE_PRINT_DELAY, + CREDITSSCENE_MAPNEXT_DESTROYWINDOW, + CREDITSSCENE_MAPNEXT_LOADMAP, + CREDITSSCENE_MAP_LOADMAP_CREATESPRITES, + CREDITSSCENE_MON_DESTROY_ASSETS, + CREDITSSCENE_MON_SHOW, + CREDITSSCENE_THEEND_DESTROY_ASSETS, + CREDITSSCENE_THEEND_SHOW, + CREDITSSCENE_WAITBUTTON, + CREDITSSCENE_TERMINATE, +}; + +enum CreditsScrCmd +{ + CREDITSSCRCMD_PRINT = 0, + CREDITSSCRCMD_MAPNEXT, + CREDITSSCRCMD_MAP, + CREDITSSCRCMD_MON, + CREDITSSCRCMD_THEENDGFX, + CREDITSSCRCMD_WAITBUTTON +}; + +enum CreditsMon +{ + CREDITSMON_CHARIZARD = 0, + CREDITSMON_VENUSAUR, + CREDITSMON_BLASTOISE, + CREDITSMON_PIKACHU +}; + struct CreditsResources { - u8 unk_00; - u8 unk_01; - u8 unk_02; - u16 unk_04; - u16 unk_06; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - bool8 unk_0B; - u16 unk_0C; + u8 mainseqno; + u8 subseqno; + u8 taskId; + u16 timer; + u16 scrcmdidx; + u8 canSpeedThrough; + u8 whichMon; + u8 windowId; + bool8 windowIsActive; + u16 creditsMonTimer; u16 unk_0E; u8 filler_10[12]; - u8 unk_1C; + u8 ovwldseqno; u8 unk_1D; }; -struct UnkStruct_8410CF4 +struct CreditsScrcmd { - u8 unk0; - u8 unk1; - u16 unk2; + u8 cmd; + u8 param; + u16 duration; }; -struct UnkStruct_84145BC +struct CreditsTextHeader { const u8 * unk_0; const u8 * unk_4; - u8 unk_8; + bool8 unk_8; }; struct CompressedGraphicsHeader @@ -57,25 +108,25 @@ struct CompressedGraphicsHeader struct CreditsTaskData { - u8 field_00; - u8 field_01; - u16 field_02; + u8 spriteMoveCmd; + u8 playerSpriteId; + u16 playerTilesTag; u16 field_04; - u8 field_06; - u16 field_08; + u8 groundSpriteId; + u16 groundTilesTag; u16 field_0A; }; -EWRAM_DATA struct CreditsResources * gUnknown_203AB40 = NULL; +static EWRAM_DATA struct CreditsResources * sCreditsMgr = NULL; -void sub_80F39E8(void); -s32 sub_80F3BD0(void); -bool32 sub_80F4328(void); -bool32 sub_80F4674(void); -void sub_80F48D0(void); -void sub_80F4930(u8 a0); +static void CB2_Credits(void); +static s32 RollCredits(void); +static bool32 DoCreditsMonScene(void); +static bool32 DoCopyrightOrTheEndGfxScene(void); +static void DestroyPlayerOrRivalSprite(void); +static void LoadPlayerOrRivalSprite(u8 a0); -const struct BgTemplate gUnknown_840C5A4[] = { +static const struct BgTemplate sBgTemplates_MonSceneOrTheEnd[] = { { .bg = 0, .charBaseIndex = 0, @@ -103,7 +154,7 @@ const struct BgTemplate gUnknown_840C5A4[] = { } }; -const struct WindowTemplate gUnknown_840C5B0[] = { +static const struct WindowTemplate sWindowTemplates_Charizard[] = { { .bg = 0x00, .tilemapLeft = 0x0b, @@ -131,7 +182,7 @@ const struct WindowTemplate gUnknown_840C5B0[] = { }, DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gUnknown_840C5D0[] = { +static const struct WindowTemplate sWindowTemplates_Venusaur[] = { { .bg = 0x00, .tilemapLeft = 0x0b, @@ -159,7 +210,7 @@ const struct WindowTemplate gUnknown_840C5D0[] = { }, DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gUnknown_840C5F0[] = { +static const struct WindowTemplate sWindowTemplates_Blastoise[] = { { .bg = 0x00, .tilemapLeft = 0x0b, @@ -187,7 +238,7 @@ const struct WindowTemplate gUnknown_840C5F0[] = { }, DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gUnknown_840C610[] = { +static const struct WindowTemplate sWindowTemplates_Pikachu[] = { { .bg = 0x00, .tilemapLeft = 0x0b, @@ -215,111 +266,111 @@ const struct WindowTemplate gUnknown_840C610[] = { }, DUMMY_WIN_TEMPLATE }; -const u16 gUnknown_840C630[] = INCBIN_U16("data/credits/unk_840C630.gbapal"); -const u32 gUnknown_840C650[] = INCBIN_U32("data/credits/unk_840C650.8bpp.lz"); -const u32 gUnknown_840CA54[] = INCBIN_U32("data/credits/unk_840CA54.bin.lz"); -const u32 gUnknown_840CB8C[] = INCBIN_U32("data/credits/unk_840CB8C.bin.lz"); -const u32 gUnknown_840D228[] = INCBIN_U32("data/credits/unk_840D228.bin.lz"); -const u32 gUnknown_840DC0C[] = INCBIN_U32("data/credits/unk_840DC0C.bin.lz"); -const u32 gUnknown_840E158[] = INCBIN_U32("data/credits/unk_840E158.bin.lz"); -const u32 gUnknown_840E904[] = INCBIN_U32("data/credits/unk_840E904.bin.lz"); -const u32 gUnknown_840F240[] = INCBIN_U32("data/credits/unk_840F240.bin.lz"); -const u32 gUnknown_840F944[] = INCBIN_U32("data/credits/unk_840F944.bin.lz"); -const u32 gUnknown_8410198[] = INCBIN_U32("data/credits/unk_8410198.bin.lz"); -const u32 gUnknown_84105B4[] = INCBIN_U32("data/credits/unk_84105B4.bin.lz"); +static const u16 sPalette_OneBlackThenAllWhite[] = INCBIN_U16("data/credits/unk_840C630.gbapal"); +static const u32 sAffineCircleGfx[] = INCBIN_U32("data/credits/unk_840C650.8bpp.lz"); +static const u32 sAffineCircleMap[] = INCBIN_U32("data/credits/unk_840CA54.bin.lz"); +static const u32 sWindow1Map_Charizard[] = INCBIN_U32("data/credits/unk_840CB8C.bin.lz"); +static const u32 sWindow2Map_Charizard[] = INCBIN_U32("data/credits/unk_840D228.bin.lz"); +static const u32 sUnusedTilemap[] = INCBIN_U32("data/credits/unk_840DC0C.bin.lz"); +static const u32 sWindow1Map_Venusaur[] = INCBIN_U32("data/credits/unk_840E158.bin.lz"); +static const u32 sWindow2Map_Venusaur[] = INCBIN_U32("data/credits/unk_840E904.bin.lz"); +static const u32 sWindow1Map_Blastoise[] = INCBIN_U32("data/credits/unk_840F240.bin.lz"); +static const u32 sWindow2Map_Blastoise[] = INCBIN_U32("data/credits/unk_840F944.bin.lz"); +static const u32 sWindow1Map_Pikachu[] = INCBIN_U32("data/credits/unk_8410198.bin.lz"); +static const u32 sWindow2Map_Pikachu[] = INCBIN_U32("data/credits/unk_84105B4.bin.lz"); -const u32 filler_8410AFC = 0xF0; +static const u32 filler_8410AFC = 0xF0; -const u16 gUnknown_8410B00[] = INCBIN_U16("data/credits/unk_8410B20.gbapal"); -const u8 gUnknown_8410B20[] = INCBIN_U8("data/credits/unk_8410B20.4bpp.lz"); -const u8 gUnknown_8410B94[] = INCBIN_U8("data/credits/unk_8410B20.bin.lz"); +static const u16 sTheEndGfxPal[] = INCBIN_U16("data/credits/unk_8410B20.gbapal"); +static const u8 sTheEndGfxTiles[] = INCBIN_U8("data/credits/unk_8410B20.4bpp.lz"); +static const u8 sTheEndGfxMap[] = INCBIN_U8("data/credits/unk_8410B20.bin.lz"); -const struct CompressedGraphicsHeader gUnknown_8410CDC[] = { +static const struct CompressedGraphicsHeader sCopyrightOrTheEndGfxHeaders[] = { { - .tiles = gUnknown_8EAE548, - .map = gUnknown_8EAE900, - .palette = gUnknown_8EAE528 + .tiles = gCreditsAllRightsReservedGfxTiles, + .map = gCreditsAllRightsReservedGfxMap, + .palette = gCreditsAllRightsReservedGfxPal }, { - .tiles = gUnknown_8410B20, - .map = gUnknown_8410B94, - .palette = gUnknown_8410B00 + .tiles = sTheEndGfxTiles, + .map = sTheEndGfxMap, + .palette = sTheEndGfxPal } }; -const struct UnkStruct_8410CF4 gUnknown_8410CF4[] = { - { 1, 0, 16 }, - { 0, 0, 300 }, - { 0, 1, 300 }, - { 0, 2, 300 }, - { 0, 42, 60 }, - { 1, 1, 0 }, - { 0, 3, 211 }, - { 0, 4, 211 }, - { 0, 5, 211 }, - { 1, 2, 0 }, - { 0, 6, 211 }, - { 0, 7, 210 }, - { 0, 8, 210 }, - { 3, 0, 0 }, - { 2, 3, 16 }, - { 0, 9, 211 }, - { 0, 10, 210 }, - { 0, 11, 210 }, - { 1, 4, 16 }, - { 0, 12, 211 }, - { 0, 13, 210 }, - { 0, 14, 210 }, - { 1, 5, 16 }, - { 0, 15, 211 }, - { 0, 16, 210 }, - { 0, 17, 210 }, - { 3, 1, 0 }, - { 2, 6, 16 }, - { 0, 18, 211 }, - { 0, 19, 210 }, - { 0, 20, 210 }, - { 1, 7, 16 }, - { 0, 21, 221 }, - { 0, 22, 221 }, - { 0, 23, 221 }, - { 0, 24, 221 }, - { 0, 42, 51 }, - { 1, 8, 16 }, - { 0, 25, 211 }, - { 0, 26, 210 }, - { 0, 27, 210 }, - { 3, 2, 0 }, - { 2, 9, 16 }, - { 0, 28, 331 }, - { 0, 29, 331 }, - { 0, 30, 331 }, - { 1, 10, 16 }, - { 0, 31, 221 }, - { 0, 32, 221 }, - { 0, 33, 221 }, - { 0, 34, 221 }, - { 0, 42, 52 }, - { 1, 11, 16 }, - { 0, 41, 210 }, - { 0, 35, 210 }, - { 0, 36, 211 }, - { 3, 3, 0 }, - { 2, 12, 16 }, - { 0, 37, 221 }, - { 0, 40, 221 }, - { 0, 38, 221 }, - { 0, 39, 221 }, - { 0, 42, 52 }, - { 4, 0, 224 }, - { 4, 1, 240 }, - { 5, 0, 600 } +static const struct CreditsScrcmd sCreditsScript[] = { + { CREDITSSCRCMD_MAPNEXT, 0, 16 }, + { CREDITSSCRCMD_PRINT, 0, 300 }, + { CREDITSSCRCMD_PRINT, 1, 300 }, + { CREDITSSCRCMD_PRINT, 2, 300 }, + { CREDITSSCRCMD_PRINT, 42, 60 }, + { CREDITSSCRCMD_MAPNEXT, 1, 0 }, + { CREDITSSCRCMD_PRINT, 3, 211 }, + { CREDITSSCRCMD_PRINT, 4, 211 }, + { CREDITSSCRCMD_PRINT, 5, 211 }, + { CREDITSSCRCMD_MAPNEXT, 2, 0 }, + { CREDITSSCRCMD_PRINT, 6, 211 }, + { CREDITSSCRCMD_PRINT, 7, 210 }, + { CREDITSSCRCMD_PRINT, 8, 210 }, + { CREDITSSCRCMD_MON, 0, 0 }, + { CREDITSSCRCMD_MAP, 3, 16 }, + { CREDITSSCRCMD_PRINT, 9, 211 }, + { CREDITSSCRCMD_PRINT, 10, 210 }, + { CREDITSSCRCMD_PRINT, 11, 210 }, + { CREDITSSCRCMD_MAPNEXT, 4, 16 }, + { CREDITSSCRCMD_PRINT, 12, 211 }, + { CREDITSSCRCMD_PRINT, 13, 210 }, + { CREDITSSCRCMD_PRINT, 14, 210 }, + { CREDITSSCRCMD_MAPNEXT, 5, 16 }, + { CREDITSSCRCMD_PRINT, 15, 211 }, + { CREDITSSCRCMD_PRINT, 16, 210 }, + { CREDITSSCRCMD_PRINT, 17, 210 }, + { CREDITSSCRCMD_MON, 1, 0 }, + { CREDITSSCRCMD_MAP, 6, 16 }, + { CREDITSSCRCMD_PRINT, 18, 211 }, + { CREDITSSCRCMD_PRINT, 19, 210 }, + { CREDITSSCRCMD_PRINT, 20, 210 }, + { CREDITSSCRCMD_MAPNEXT, 7, 16 }, + { CREDITSSCRCMD_PRINT, 21, 221 }, + { CREDITSSCRCMD_PRINT, 22, 221 }, + { CREDITSSCRCMD_PRINT, 23, 221 }, + { CREDITSSCRCMD_PRINT, 24, 221 }, + { CREDITSSCRCMD_PRINT, 42, 51 }, + { CREDITSSCRCMD_MAPNEXT, 8, 16 }, + { CREDITSSCRCMD_PRINT, 25, 211 }, + { CREDITSSCRCMD_PRINT, 26, 210 }, + { CREDITSSCRCMD_PRINT, 27, 210 }, + { CREDITSSCRCMD_MON, 2, 0 }, + { CREDITSSCRCMD_MAP, 9, 16 }, + { CREDITSSCRCMD_PRINT, 28, 331 }, + { CREDITSSCRCMD_PRINT, 29, 331 }, + { CREDITSSCRCMD_PRINT, 30, 331 }, + { CREDITSSCRCMD_MAPNEXT, 10, 16 }, + { CREDITSSCRCMD_PRINT, 31, 221 }, + { CREDITSSCRCMD_PRINT, 32, 221 }, + { CREDITSSCRCMD_PRINT, 33, 221 }, + { CREDITSSCRCMD_PRINT, 34, 221 }, + { CREDITSSCRCMD_PRINT, 42, 52 }, + { CREDITSSCRCMD_MAPNEXT, 11, 16 }, + { CREDITSSCRCMD_PRINT, 41, 210 }, + { CREDITSSCRCMD_PRINT, 35, 210 }, + { CREDITSSCRCMD_PRINT, 36, 211 }, + { CREDITSSCRCMD_MON, 3, 0 }, + { CREDITSSCRCMD_MAP, 12, 16 }, + { CREDITSSCRCMD_PRINT, 37, 221 }, + { CREDITSSCRCMD_PRINT, 40, 221 }, + { CREDITSSCRCMD_PRINT, 38, 221 }, + { CREDITSSCRCMD_PRINT, 39, 221 }, + { CREDITSSCRCMD_PRINT, 42, 52 }, + { CREDITSSCRCMD_THEENDGFX, 0, 224 }, + { CREDITSSCRCMD_THEENDGFX, 1, 240 }, + { CREDITSSCRCMD_WAITBUTTON, 0, 600 } }; -const ALIGNED(4) u8 gUnknown_8410FFC[3] = {0, 1, 2}; -const ALIGNED(4) u8 gUnknown_8410E00[3] = {0, 5, 2}; -const ALIGNED(4) u8 gUnknown_8410E04[3] = {0, 1, 2}; +static const ALIGNED(4) u8 sTextColor_Unused[3] = {0, 1, 2}; +static const ALIGNED(4) u8 sTextColor_Header[3] = {0, 5, 2}; +static const ALIGNED(4) u8 sTextColor_Regular[3] = {0, 1, 2}; -const struct WindowTemplate gUnknown_8410E08 = { +static const struct WindowTemplate sCreditsWindowTemplate = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 4, @@ -329,20 +380,20 @@ const struct WindowTemplate gUnknown_8410E08 = { .baseBlock = 0x008 }; -const u16 gUnknown_8410E10[] = INCBIN_U16("data/credits/unk_8410E10.gbapal"); -const u32 gUnknown_8410E30[] = INCBIN_U32("data/credits/unk_8410E30.4bpp.lz"); -const u16 gUnknown_8411BF8[] = INCBIN_U16("data/credits/unk_8411BF8.gbapal"); -const u32 gUnknown_8411C18[] = INCBIN_U32("data/credits/unk_8411C18.4bpp.lz"); -const u16 gUnknown_84129A0[] = INCBIN_U16("data/credits/unk_84129A0.gbapal"); -const u32 gUnknown_84129C0[] = INCBIN_U32("data/credits/unk_84129C0.4bpp.lz"); -const u16 gUnknown_8413318[] = INCBIN_U16("data/credits/unk_8413318.gbapal"); -const u32 gUnknown_8413338[] = INCBIN_U32("data/credits/unk_8413338.4bpp.lz"); -const u16 gUnknown_8413854[] = INCBIN_U16("data/credits/unk_8413854.gbapal"); -const u32 gUnknown_8413874[] = INCBIN_U32("data/credits/unk_8413874.4bpp.lz"); -const u16 gUnknown_8413D98[] = INCBIN_U16("data/credits/unk_8413D98.gbapal"); -const u32 gUnknown_8413DB8[] = INCBIN_U32("data/credits/unk_8413DB8.4bpp.lz"); +static const u16 sMalePlayerSpritePal[] = INCBIN_U16("data/credits/unk_8410E10.gbapal"); +static const u32 sMalePlayerSpriteGfx[] = INCBIN_U32("data/credits/unk_8410E30.4bpp.lz"); +static const u16 sFemalePlayerSpritePal[] = INCBIN_U16("data/credits/unk_8411BF8.gbapal"); +static const u32 sFemalePlayerSpriteGfx[] = INCBIN_U32("data/credits/unk_8411C18.4bpp.lz"); +static const u16 sRivalSpritePal[] = INCBIN_U16("data/credits/unk_84129A0.gbapal"); +static const u32 sRivalSpriteGfx[] = INCBIN_U32("data/credits/unk_84129C0.4bpp.lz"); +static const u16 sGroundSpritePal_Grass[] = INCBIN_U16("data/credits/unk_8413318.gbapal"); +static const u32 sGroundSpriteGfx_Grass[] = INCBIN_U32("data/credits/unk_8413338.4bpp.lz"); +static const u16 sGroundSpritePal_Dirt[] = INCBIN_U16("data/credits/unk_8413854.gbapal"); +static const u32 sGroundSpriteGfx_Dirt[] = INCBIN_U32("data/credits/unk_8413874.4bpp.lz"); +static const u16 sGroundSpritePal_City[] = INCBIN_U16("data/credits/unk_8413D98.gbapal"); +static const u32 sGroundSpriteGfx_City[] = INCBIN_U32("data/credits/unk_8413DB8.4bpp.lz"); -const u16 gUnknown_841431C[][3] = { +static const u16 sPlayerRivalSpriteParams[][3] = { { 0, 3, 1 }, { 0, 2, 0 }, { 0, 3, 0 }, @@ -350,7 +401,7 @@ const u16 gUnknown_841431C[][3] = { { 0, 0, 3 } }; -const struct OamData gOamData_841433C = { +static const struct OamData sOamData_PlayerOrRival = { .affineMode = ST_OAM_AFFINE_OFF, .mosaic = FALSE, .objMode = ST_OAM_OBJ_NORMAL, @@ -362,7 +413,7 @@ const struct OamData gOamData_841433C = { .paletteNum = 15 }; -const union AnimCmd gAnimCmds_8414344[] = { +const union AnimCmd sAnimCmds_PlayerOrRival[] = { ANIMCMD_FRAME(0x000, 8), ANIMCMD_FRAME(0x040, 8), ANIMCMD_FRAME(0x080, 8), @@ -372,18 +423,18 @@ const union AnimCmd gAnimCmds_8414344[] = { ANIMCMD_JUMP(0) }; -const union AnimCmd *const gAnimCmdTable_8414360[] = { - gAnimCmds_8414344 +const union AnimCmd *const sAnimCmdTable_PlayerOrRival[] = { + sAnimCmds_PlayerOrRival }; -const struct SpriteTemplate gUnknown_8414364 = { - .oam = &gOamData_841433C, - .anims = gAnimCmdTable_8414360, +static const struct SpriteTemplate sPlayerOrRivalSpriteTemplate = { + .oam = &sOamData_PlayerOrRival, + .anims = sAnimCmdTable_PlayerOrRival, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -const struct OamData gOamData_841437C = { +static const struct OamData sOamData_Ground = { .affineMode = ST_OAM_AFFINE_OFF, .mosaic = FALSE, .objMode = ST_OAM_OBJ_NORMAL, @@ -395,7 +446,7 @@ const struct OamData gOamData_841437C = { .paletteNum = 14 }; -const union AnimCmd gAnimCmds_8414384[] = { +const union AnimCmd sAnimCmds_GroundRunning[] = { ANIMCMD_FRAME(0x00, 8), ANIMCMD_FRAME(0x20, 8), ANIMCMD_FRAME(0x40, 8), @@ -407,149 +458,141 @@ const union AnimCmd gAnimCmds_8414384[] = { ANIMCMD_JUMP(0) }; -const union AnimCmd gAnimCmds_84143A8[] = { +const union AnimCmd sAnimCmds_GroundStatic[] = { ANIMCMD_FRAME(0x00, 8), ANIMCMD_JUMP(0) }; -const union AnimCmd *const gAnimCmdTable_84143B0[] = { - gAnimCmds_8414384 +const union AnimCmd *const sAnimCmdTable_GroundRunning[] = { + sAnimCmds_GroundRunning }; -const union AnimCmd *const gAnimCmdTable_84143B4[] = { - gAnimCmds_84143A8 +const union AnimCmd *const sAnimCmdTable_GroundStatic[] = { + sAnimCmds_GroundStatic }; -const struct SpriteTemplate gUnknown_84143B8 = { - .oam = &gOamData_841437C, - .anims = gAnimCmdTable_84143B0, +static const struct SpriteTemplate sGroundSpriteTemplate_Running = { + .oam = &sOamData_Ground, + .anims = sAnimCmdTable_GroundRunning, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -const struct SpriteTemplate gUnknown_84143D0 = { - .oam = &gOamData_841437C, - .anims = gAnimCmdTable_84143B4, +static const struct SpriteTemplate sGroundSpriteTemplate_Static = { + .oam = &sOamData_Ground, + .anims = sAnimCmdTable_GroundStatic, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -const struct CreditsOverworldCmd gUnknown_84143E8[] = { +static const struct CreditsOverworldCmd sOverworldCmd_Route23[] = { { 0x00fe, MAP_GROUP(ROUTE23), MAP_NUM(ROUTE23) }, { 0x000b, 0x006b, 0x0001 }, { 0x0000, 0x0001, 0x0500 }, // Scroll down { 0x00fd, 0x00fd, 0x00fd } }; -const struct CreditsOverworldCmd gUnknown_8414408[] = { +static const struct CreditsOverworldCmd sOverworldCmd_ViridianCity[] = { { 0x00fe, MAP_GROUP(VIRIDIAN_CITY), MAP_NUM(VIRIDIAN_CITY) }, { 0x001e, 0x0022, 0x0001 }, { 0x0000, 0xffff, 0x0500 }, // Scroll up { 0x00fd, 0x00fd, 0x00fd } }; -const struct CreditsOverworldCmd gUnknown_8414428[] = { +static const struct CreditsOverworldCmd sOverworldCmd_PewterCity[] = { { 0x00fe, MAP_GROUP(PEWTER_CITY), MAP_NUM(PEWTER_CITY) }, { 0x0014, 0x001a, 0x0001 }, { 0x0000, 0xffff, 0x0500 }, // Scroll up { 0x00fd, 0x00fd, 0x00fd } }; -// Charizard - -const struct CreditsOverworldCmd gUnknown_8414448[] = { +static const struct CreditsOverworldCmd sOverworldCmd_CeruleanCity[] = { { 0x00fe, MAP_GROUP(CERULEAN_CITY), MAP_NUM(CERULEAN_CITY) }, { 0x0008, 0x0006, 0x0001 }, { 0x0001, 0x0001, 0x0500 }, // Scroll right and down { 0x00fd, 0x00fd, 0x00fd } }; -const struct CreditsOverworldCmd gUnknown_8414468[] = { +static const struct CreditsOverworldCmd sOverworldCmd_Route25[] = { { 0x00fe, MAP_GROUP(ROUTE25), MAP_NUM(ROUTE25) }, { 0x0019, 0x0006, 0x0001 }, { 0x0001, 0x0000, 0x0500 }, // Scroll right { 0x00fd, 0x00fd, 0x00fd } }; -const struct CreditsOverworldCmd gUnknown_8414488[] = { +static const struct CreditsOverworldCmd sOverworldCmd_VermilionCity[] = { { 0x00fe, MAP_GROUP(VERMILION_CITY), MAP_NUM(VERMILION_CITY) }, { 0x0009, 0x0007, 0x0001 }, { 0x0001, 0x0001, 0x0500 }, // Scroll right and down { 0x00fd, 0x00fd, 0x00fd } }; -// Venusaur - -const struct CreditsOverworldCmd gUnknown_84144A8[] = { +static const struct CreditsOverworldCmd sOverworldCmd_Route10[] = { { 0x00fe, MAP_GROUP(ROUTE10), MAP_NUM(ROUTE10) }, { 0x000b, 0x0044, 0x0001 }, { 0x0000, 0x0001, 0x0500 }, // Scroll down { 0x00fd, 0x00fd, 0x00fd } }; -const struct CreditsOverworldCmd gUnknown_84144C8[] = { +static const struct CreditsOverworldCmd sOverworldCmd_CeladonCity[] = { { 0x00fe, MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY) }, { 0x0030, 0x0010, 0x0001 }, { 0xffff, 0x0000, 0x0500 }, // Scroll left { 0x00fd, 0x00fd, 0x00fd } }; -const struct CreditsOverworldCmd gUnknown_84144E8[] = { +static const struct CreditsOverworldCmd sOverworldCmd_SaffronCity[] = { { 0x00fe, MAP_GROUP(SAFFRON_CITY_DUPLICATE), MAP_NUM(SAFFRON_CITY_DUPLICATE) }, { 0x0027, 0x0005, 0x0001 }, { 0x0000, 0x0001, 0x0500 }, // Scroll down { 0x00fd, 0x00fd, 0x00fd } }; -// Blastoise - -const struct CreditsOverworldCmd gUnknown_8414508[] = { +static const struct CreditsOverworldCmd sOverworldCmd_Route17[] = { { 0x00fe, MAP_GROUP(ROUTE17), MAP_NUM(ROUTE17) }, { 0x0007, 0x002b, 0x0001 }, { 0x0000, 0x0001, 0x0500 }, // Scroll down { 0x00fd, 0x00fd, 0x00fd } }; -const struct CreditsOverworldCmd gUnknown_8414528[] = { +static const struct CreditsOverworldCmd sOverworldCmd_FuchsiaCity[] = { { 0x00fe, MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY) }, { 0x001c, 0x0005, 0x0001 }, { 0x0000, 0x0001, 0x0500 }, // Scroll down { 0x00fd, 0x00fd, 0x00fd } }; -const struct CreditsOverworldCmd gUnknown_8414548[] = { +static const struct CreditsOverworldCmd sOverworldCmd_CinnabarIsland[] = { { 0x00fe, MAP_GROUP(CINNABAR_ISLAND), MAP_NUM(CINNABAR_ISLAND) }, { 0x000d, 0x0011, 0x0001 }, { 0x0000, 0xffff, 0x0500 }, // Scroll up { 0x00fd, 0x00fd, 0x00fd } }; -// Pikachu - -const struct CreditsOverworldCmd gUnknown_8414568[] = { +static const struct CreditsOverworldCmd sOverworldCmd_Route21[] = { { 0x00fe, MAP_GROUP(ROUTE21_NORTH), MAP_NUM(ROUTE21_NORTH) }, { 0x0008, 0x0014, 0x0001 }, { 0x0000, 0xffff, 0x0500 }, // Scroll up { 0x00fd, 0x00fd, 0x00fd }, }; -const struct CreditsOverworldCmd *const gUnknown_8414588[] = { - gUnknown_84143E8, - gUnknown_8414408, - gUnknown_8414428, - gUnknown_8414448, - gUnknown_8414468, - gUnknown_8414488, - gUnknown_84144A8, - gUnknown_84144C8, - gUnknown_84144E8, - gUnknown_8414508, - gUnknown_8414528, - gUnknown_8414548, - gUnknown_8414568 +static const struct CreditsOverworldCmd *const sOverworldMapScenes[] = { + sOverworldCmd_Route23, + sOverworldCmd_ViridianCity, + sOverworldCmd_PewterCity, + sOverworldCmd_CeruleanCity, + sOverworldCmd_Route25, + sOverworldCmd_VermilionCity, + sOverworldCmd_Route10, + sOverworldCmd_CeladonCity, + sOverworldCmd_SaffronCity, + sOverworldCmd_Route17, + sOverworldCmd_FuchsiaCity, + sOverworldCmd_CinnabarIsland, + sOverworldCmd_Route21 }; -const struct UnkStruct_84145BC gUnknown_84145BC[] = { +static const struct CreditsTextHeader sCreditsTexts[] = { { gUnknown_841D1D8, gUnknown_841D1E8, FALSE }, { gUnknown_841D200, gUnknown_841D224, FALSE }, { gUnknown_841D248, gUnknown_841D284, FALSE }, @@ -597,17 +640,17 @@ const struct UnkStruct_84145BC gUnknown_84145BC[] = { void Special_Credits(void) { - gUnknown_203AB40 = AllocZeroed(sizeof(*gUnknown_203AB40)); + sCreditsMgr = AllocZeroed(sizeof(*sCreditsMgr)); ResetTasks(); - gUnknown_203AB40->unk_02 = 0xFF; - gUnknown_203AB40->unk_1D = 0; + sCreditsMgr->taskId = 0xFF; + sCreditsMgr->unk_1D = 0; ResetSpriteData(); - SetMainCallback2(sub_80F39E8); + SetMainCallback2(CB2_Credits); } -void sub_80F39E8(void) +static void CB2_Credits(void) { - switch (sub_80F3BD0()) + switch (RollCredits()) { case 0: RunTasks(); @@ -616,9 +659,9 @@ void sub_80F39E8(void) UpdatePaletteFade(); break; case 1: - if (gUnknown_203AB40->unk_1D & 1) + if (sCreditsMgr->unk_1D & 1) { - sub_80574A4(); + Overworld_CreditsMainCB(); } else { @@ -627,18 +670,18 @@ void sub_80F39E8(void) BuildOamBuffer(); UpdatePaletteFade(); } - gUnknown_203AB40->unk_1D++; + sCreditsMgr->unk_1D++; break; case 2: FlagClear(0x4000); - gUnknown_2031DD8 = 0; - Free(gUnknown_203AB40); + gDisableMapMusicChangeOnMapLoad = MUSIC_DISABLE_OFF; + Free(sCreditsMgr); SoftReset(RESET_ALL); // noreturn } } -void sub_80F3A74(void) +static void SwitchWin1OffWin0On(void) { ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); @@ -646,50 +689,50 @@ void sub_80F3A74(void) SetGpuReg(REG_OFFSET_WINOUT, 0x000E); } -void sub_80F3AA4(void) +static void InitBgDarkenEffect(void) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 4)); SetGpuReg(REG_OFFSET_BLDY, 10); } -void sub_80F3AC4(void) +static void CreateCreditsWindow(void) { - gUnknown_203AB40->unk_0A = AddWindow(&gUnknown_8410E08); - FillWindowPixelBuffer(gUnknown_203AB40->unk_0A, PIXEL_FILL(0)); - PutWindowTilemap(gUnknown_203AB40->unk_0A); - CopyWindowToVram(gUnknown_203AB40->unk_0A, 3); - gUnknown_203AB40->unk_0B = TRUE; + sCreditsMgr->windowId = AddWindow(&sCreditsWindowTemplate); + FillWindowPixelBuffer(sCreditsMgr->windowId, PIXEL_FILL(0)); + PutWindowTilemap(sCreditsMgr->windowId); + CopyWindowToVram(sCreditsMgr->windowId, 3); + sCreditsMgr->windowIsActive = TRUE; } -void sub_80F3B04(void) +static void DestroyCreditsWindow(void) { - if (gUnknown_203AB40->unk_0B) + if (sCreditsMgr->windowIsActive) { - RemoveWindow(gUnknown_203AB40->unk_0A); + RemoveWindow(sCreditsMgr->windowId); CleanupOverworldWindowsAndTilemaps(); - gUnknown_203AB40->unk_0B = FALSE; + sCreditsMgr->windowIsActive = FALSE; } } -bool32 sub_80F3B2C(UNUSED u8 unused) +static bool32 DoOverworldMapScrollScene(UNUSED u8 unused) { - switch (gUnknown_203AB40->unk_01) + switch (sCreditsMgr->subseqno) { case 0: FlagSet(0x4000); - gUnknown_2031DD8 = 2; - gUnknown_203AB40->unk_1C = 0; - gUnknown_203AB40->unk_01++; + gDisableMapMusicChangeOnMapLoad = MUSIC_DISABLE_KEEP; + sCreditsMgr->ovwldseqno = 0; + sCreditsMgr->subseqno++; // fallthrough case 1: - if (!sub_805750C(&gUnknown_203AB40->unk_1C, gUnknown_8414588[gUnknown_203AB40->unk_09], 0)) + if (!Overworld_DoScrollSceneForCredits(&sCreditsMgr->ovwldseqno, sOverworldMapScenes[sCreditsMgr->whichMon], 0)) return FALSE; - sub_80F3AC4(); + CreateCreditsWindow(); SetGpuReg(REG_OFFSET_WIN0H, 0xF0); SetGpuReg(REG_OFFSET_WIN0V, 0x247C); - sub_80F3A74(); - sub_80F3AA4(); + SwitchWin1OffWin0On(); + InitBgDarkenEffect(); Menu_LoadStdPalAt(0xF0); gPlttBufferUnfaded[0xFF] = RGB_BLACK; gPlttBufferFaded[0xFF] = RGB_BLACK; @@ -700,33 +743,33 @@ bool32 sub_80F3B2C(UNUSED u8 unused) } #ifdef NONMATCHING -s32 sub_80F3BD0(void) +static s32 RollCredits(void) { - u16 win0v[2]; + u16 win0v[8]; - switch (gUnknown_203AB40->unk_00) + switch (sCreditsMgr->mainseqno) { - case 0: - sub_80F3A74(); + case CREDITSSCENE_INIT_WIN0: + SwitchWin1OffWin0On(); SetGpuReg(REG_OFFSET_WIN0H, 0x40); SetGpuReg(REG_OFFSET_WIN0V, 0x4F51); - gUnknown_203AB40->unk_00 = 1; + sCreditsMgr->mainseqno = CREDITSSCENE_SETUP_DARKEN_EFFECT; return 0; - case 1: - sub_80F3AA4(); - sub_80F3AC4(); + case CREDITSSCENE_SETUP_DARKEN_EFFECT: + InitBgDarkenEffect(); + CreateCreditsWindow(); Menu_LoadStdPalAt(0xF0); gPlttBufferUnfaded[0xFF] = RGB_BLACK; gPlttBufferFaded[0xFF] = RGB_BLACK; - gUnknown_203AB40->unk_00 = 2; + sCreditsMgr->mainseqno = CREDITSSCENE_OPEN_WIN0; return 0; - case 2: + case CREDITSSCENE_OPEN_WIN0: win0v[0] = GetGpuReg(REG_OFFSET_WIN0V) >> 8; win0v[1] = GetGpuReg(REG_OFFSET_WIN0V) & 0xFF; if (win0v[0] == 0x24) { - gUnknown_203AB40->unk_04 = 0; - gUnknown_203AB40->unk_00 = 3; + sCreditsMgr->timer = 0; + sCreditsMgr->mainseqno = CREDITSSCENE_LOAD_PLAYER_SPRITE_AT_INDIGO; } else { @@ -735,128 +778,128 @@ s32 sub_80F3BD0(void) SetGpuReg(REG_OFFSET_WIN0V, win0v[1] + (win0v[0] << 8)); } return 0; - case 3: - if (gUnknown_203AB40->unk_04 == 0) + case CREDITSSCENE_LOAD_PLAYER_SPRITE_AT_INDIGO: + if (sCreditsMgr->timer != 0) { - sub_80F4930(0); - gUnknown_203AB40->unk_04 = 100; - gUnknown_203AB40->unk_00 = 4; + LoadPlayerOrRivalSprite(0); + sCreditsMgr->timer = 100; + sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_TITLE_STAFF; } else { - gUnknown_203AB40->unk_04--; + sCreditsMgr->timer--; } return 0; - case 4: - if (gUnknown_203AB40->unk_04 == 0) + case CREDITSSCENE_PRINT_TITLE_STAFF: + if (sCreditsMgr->timer == 0) { - gUnknown_203AB40->unk_04 = 360; - AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 0x08, 0x29, 1, 2, gUnknown_8410E00, 0, gUnknown_841D198); - gUnknown_203AB40->unk_00 = 5; + sCreditsMgr->timer = 360; + AddTextPrinterParameterized4(sCreditsMgr->windowId, 1, 0x08, 0x29, 1, 2, sTextColor_Header, 0, TITLE_TEXT); + sCreditsMgr->mainseqno = CREDITSSCENE_WAIT_TITLE_STAFF; } else { - gUnknown_203AB40->unk_04--; + sCreditsMgr->timer--; } return 0; - case 5: - if (gUnknown_203AB40->unk_04 == 0) + case CREDITSSCENE_WAIT_TITLE_STAFF: + if (sCreditsMgr->timer != 0) { - sub_80F3B04(); - gUnknown_203AB40->unk_00 = 6; - gUnknown_203AB40->unk_04 = 0; - gUnknown_203AB40->unk_06 = 0; + sCreditsMgr->timer--; } else { - gUnknown_203AB40->unk_04--; + DestroyCreditsWindow(); + sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD; + sCreditsMgr->timer = 0; + sCreditsMgr->scrcmdidx = 0; } return 0; - case 6: - if (gUnknown_203AB40->unk_04 != 0) + case CREDITSSCENE_EXEC_CMD: + if (sCreditsMgr->timer != 0) { - gUnknown_203AB40->unk_04--; - return gUnknown_203AB40->unk_08; + sCreditsMgr->timer--; + return sCreditsMgr->canSpeedThrough; } else { - switch (gUnknown_203AB40->unk_06) + switch (sCreditsScript[sCreditsMgr->scrcmdidx].cmd) { - case 0: + case CREDITSSCRCMD_PRINT: BeginNormalPaletteFade(0x00008000, 0, 0, 16, RGB_BLACK); - gUnknown_203AB40->unk_00 = 7; - FillWindowPixelBuffer(gUnknown_203AB40->unk_0A, PIXEL_FILL(0)); - return gUnknown_203AB40->unk_08; - case 1: - gUnknown_203AB40->unk_00 = 10; - gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; - sub_807A944(1, 0, 0x3FFFFFFF); + sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_ADDPRINTER1; + FillWindowPixelBuffer(sCreditsMgr->windowId, PIXEL_FILL(0)); + return sCreditsMgr->canSpeedThrough; + case CREDITSSCRCMD_MAPNEXT: + sCreditsMgr->mainseqno = CREDITSSCENE_MAPNEXT_DESTROYWINDOW; + sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param; + FieldWeather_StartFadingOutCreditsMap(1, 0, 0x3FFFFFFF); break; - case 2: - gUnknown_203AB40->unk_00 = 12; - gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + case CREDITSSCRCMD_MAP: + sCreditsMgr->mainseqno = CREDITSSCENE_MAP_LOADMAP_CREATESPRITES; + sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param; break; - case 3: - gUnknown_203AB40->unk_00 = 13; - gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + case CREDITSSCRCMD_MON: + sCreditsMgr->mainseqno = CREDITSSCENE_MON_DESTROY_ASSETS; + sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param; fade_screen(1, 0); break; - case 4: - gUnknown_203AB40->unk_00 = 15; - gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + case CREDITSSCRCMD_THEENDGFX: + sCreditsMgr->mainseqno = CREDITSSCENE_THEEND_DESTROY_ASSETS; + sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param; BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 16, RGB_BLACK); break; - case 5: - gUnknown_203AB40->unk_00 = 17; + case CREDITSSCRCMD_WAITBUTTON: + sCreditsMgr->mainseqno = CREDITSSCENE_WAITBUTTON; break; } - gUnknown_203AB40->unk_04 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk2; - gUnknown_203AB40->unk_06++; + sCreditsMgr->timer = sCreditsScript[sCreditsMgr->scrcmdidx].duration; + sCreditsMgr->scrcmdidx++; + return 0; } - return 0; - case 7: + case CREDITSSCENE_PRINT_ADDPRINTER1: if (!gPaletteFade.active) { - win0v[0] = gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_8; // unused - AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 2, 6, 0, 0, gUnknown_8410E00, -1, gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_0); - gUnknown_203AB40->unk_00 = 8; + win0v[0] = sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].unk1].unk_8; // unused + AddTextPrinterParameterized4(sCreditsMgr->windowId, 1, 2, 6, 0, 0, sTextColor_Header, -1, sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].unk1].unk_0); + sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_ADDPRINTER2; } - return gUnknown_203AB40->unk_08; - case 8: - win0v[0] = gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_8; - AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 2, 6, 0, 0, gUnknown_8410E00, -1, gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_4); - gUnknown_203AB40->unk_00 = 9; - return gUnknown_203AB40->unk_08; - case 9: - CopyWindowToVram(gUnknown_203AB40->unk_0A, 2); - gUnknown_203AB40->unk_04 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk2; - gUnknown_203AB40->unk_06++; + return sCreditsMgr->canSpeedThrough; + case CREDITSSCENE_PRINT_ADDPRINTER2: + win0v[0] = sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].unk1].unk_8; + AddTextPrinterParameterized4(sCreditsMgr->windowId, 1, 2, 6, 0, 0, sTextColor_Header, -1, sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].unk1].unk_4); + sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_DELAY; + return sCreditsMgr->canSpeedThrough; + case CREDITSSCENE_PRINT_DELAY: + CopyWindowToVram(sCreditsMgr->windowId, 2); + sCreditsMgr->timer = sCreditsScript[sCreditsMgr->scrcmdidx].duration; + sCreditsMgr->scrcmdidx++; BeginNormalPaletteFade(0x00008000, 0, 16, 0, RGB_BLACK); - gUnknown_203AB40->unk_00 = 6; - return gUnknown_203AB40->unk_08; - case 10: + sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD; + return sCreditsMgr->canSpeedThrough; + case CREDITSSCENE_MAPNEXT_DESTROYWINDOW: if (!gPaletteFade.active) { - sub_80F3B04(); - gUnknown_203AB40->unk_01 = 0; - gUnknown_203AB40->unk_00 = 11; + DestroyCreditsWindow(); + sCreditsMgr->subseqno = 0; + sCreditsMgr->mainseqno = CREDITSSCENE_MAPNEXT_LOADMAP; } return 0; - case 11: - if (sub_80F3B2C(gUnknown_203AB40->unk_09)) + case CREDITSSCENE_MAPNEXT_LOADMAP: + if (DoOverworldMapScrollScene(sCreditsMgr->whichMon)) { - gUnknown_203AB40->unk_08 = 1; - gUnknown_203AB40->unk_00 = 6; + sCreditsMgr->canSpeedThrough = 1; + sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD; } return 0; - case 12: + case CREDITSSCENE_MAP_LOADMAP_CREATESPRITES: if (!gPaletteFade.active) { - sub_80F3B04(); - gUnknown_203AB40->unk_01 = 0; - while (sub_80F3B2C(gUnknown_203AB40->unk_09)) + DestroyCreditsWindow(); + sCreditsMgr->subseqno = 0; + while (DoOverworldMapScrollScene(sCreditsMgr->whichMon)) {} - switch (gUnknown_203AB40->unk_09) + switch (sCreditsMgr->whichMon) { default: win0v[0] = 1; @@ -871,70 +914,70 @@ s32 sub_80F3BD0(void) win0v[0] = 4; break; } - sub_80F4930(win0v[0]); - gUnknown_203AB40->unk_08 = 1; - gUnknown_203AB40->unk_00 = 6; + LoadPlayerOrRivalSprite(win0v[0]); + sCreditsMgr->canSpeedThrough = 1; + sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD; } return 0; - case 13: + case CREDITSSCENE_MON_DESTROY_ASSETS: if (!gPaletteFade.active) { - sub_80F48D0(); - sub_80F3B04(); - gUnknown_203AB40->unk_01 = 0; - gUnknown_203AB40->unk_08 = 0; - gUnknown_203AB40->unk_00 = 14; + DestroyPlayerOrRivalSprite(); + DestroyCreditsWindow(); + sCreditsMgr->subseqno = 0; + sCreditsMgr->canSpeedThrough = 0; + sCreditsMgr->mainseqno = CREDITSSCENE_MON_SHOW; } return 0; - case 14: - if (sub_80F4328()) + case CREDITSSCENE_MON_SHOW: + if (DoCreditsMonScene()) { - gUnknown_203AB40->unk_00 = 6; + sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD; } return 0; - case 15: + case CREDITSSCENE_THEEND_DESTROY_ASSETS: if (!gPaletteFade.active) { - sub_80F3B04(); - gUnknown_203AB40->unk_01 = 0; - gUnknown_203AB40->unk_08 = 0; - gUnknown_203AB40->unk_00 = 16; + DestroyCreditsWindow(); + sCreditsMgr->subseqno = 0; + sCreditsMgr->canSpeedThrough = 0; + sCreditsMgr->mainseqno = CREDITSSCENE_THEEND_SHOW; } return 0; - case 16: - if (sub_80F4674()) + case CREDITSSCENE_THEEND_SHOW: + if (DoCopyrightOrTheEndGfxScene()) { - gUnknown_203AB40->unk_00 = 6; + sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD; } return 0; - case 17: + case CREDITSSCENE_WAITBUTTON: if (JOY_NEW(A_BUTTON)) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE); - gUnknown_203AB40->unk_00 = 18; + sCreditsMgr->mainseqno = CREDITSSCENE_TERMINATE; } - else if (gUnknown_203AB40->unk_04 == 0) + else if (sCreditsMgr->timer == 0) { - gUnknown_203AB40->unk_00 = 18; + sCreditsMgr->mainseqno = CREDITSSCENE_TERMINATE; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE); } else - gUnknown_203AB40->unk_04--; + sCreditsMgr->timer--; return 0; - case 18: + case CREDITSSCENE_TERMINATE: if (!gPaletteFade.active) - sub_80F3B04(); - default: - return 2; + DestroyCreditsWindow(); + break; } + return 2; } #else NAKED -s32 sub_80F3BD0(void) +static s32 RollCredits(void) { asm_unified("\tpush {r4-r7,lr}\n" "\tsub sp, 0x24\n" - "\tldr r1, _080F3BEC @ =gUnknown_203AB40\n" + "\tldr r1, _080F3BEC @ =sCreditsMgr\n" "\tldr r0, [r1]\n" "\tldrb r0, [r0]\n" "\tadds r7, r1, 0\n" @@ -948,7 +991,7 @@ s32 sub_80F3BD0(void) "\tldr r0, [r0]\n" "\tmov pc, r0\n" "\t.align 2, 0\n" - "_080F3BEC: .4byte gUnknown_203AB40\n" + "_080F3BEC: .4byte sCreditsMgr\n" "_080F3BF0: .4byte _080F3BF4\n" "\t.align 2, 0\n" "_080F3BF4:\n" @@ -972,23 +1015,23 @@ s32 sub_80F3BD0(void) "\t.4byte _080F4118_case11\n" "\t.4byte _080F4170_case12\n" "_080F3C40_case00:\n" - "\tbl sub_80F3A74\n" + "\tbl SwitchWin1OffWin0On\n" "\tmovs r0, 0x40\n" "\tmovs r1, 0xF0\n" "\tbl SetGpuReg\n" "\tldr r1, _080F3C5C @ =0x00004f51\n" "\tmovs r0, 0x44\n" "\tbl SetGpuReg\n" - "\tldr r0, _080F3C60 @ =gUnknown_203AB40\n" + "\tldr r0, _080F3C60 @ =sCreditsMgr\n" "\tldr r1, [r0]\n" "\tmovs r0, 0x1\n" "\tb _080F413C_setfield0_return0\n" "\t.align 2, 0\n" "_080F3C5C: .4byte 0x00004f51\n" - "_080F3C60: .4byte gUnknown_203AB40\n" + "_080F3C60: .4byte sCreditsMgr\n" "_080F3C64_case01:\n" - "\tbl sub_80F3AA4\n" - "\tbl sub_80F3AC4\n" + "\tbl InitBgDarkenEffect\n" + "\tbl CreateCreditsWindow\n" "\tmovs r0, 0xF0\n" "\tbl Menu_LoadStdPalAt\n" "\tldr r0, _080F3C8C @ =gPlttBufferUnfaded\n" @@ -1000,14 +1043,14 @@ s32 sub_80F3BD0(void) "\tldr r0, _080F3C90 @ =gPlttBufferFaded\n" "\tadds r0, r2\n" "\tstrh r1, [r0]\n" - "\tldr r0, _080F3C94 @ =gUnknown_203AB40\n" + "\tldr r0, _080F3C94 @ =sCreditsMgr\n" "\tldr r1, [r0]\n" "\tmovs r0, 0x2\n" "\tb _080F413C_setfield0_return0\n" "\t.align 2, 0\n" "_080F3C8C: .4byte gPlttBufferUnfaded\n" "_080F3C90: .4byte gPlttBufferFaded\n" - "_080F3C94: .4byte gUnknown_203AB40\n" + "_080F3C94: .4byte sCreditsMgr\n" "_080F3C98_case02:\n" "\tmovs r0, 0x44\n" "\tbl GetGpuReg\n" @@ -1025,14 +1068,14 @@ s32 sub_80F3BD0(void) "\tldrh r0, [r0]\n" "\tcmp r0, 0x24\n" "\tbne _080F3CCC\n" - "\tldr r0, _080F3CC8 @ =gUnknown_203AB40\n" + "\tldr r0, _080F3CC8 @ =sCreditsMgr\n" "\tldr r1, [r0]\n" "\tmovs r0, 0\n" "\tstrh r0, [r1, 0x4]\n" "\tmovs r0, 0x3\n" "\tb _080F413C_setfield0_return0\n" "\t.align 2, 0\n" - "_080F3CC8: .4byte gUnknown_203AB40\n" + "_080F3CC8: .4byte sCreditsMgr\n" "_080F3CCC:\n" "\tadd r1, sp, 0x14\n" "\tsubs r0, 0x1\n" @@ -1056,7 +1099,7 @@ s32 sub_80F3BD0(void) "\tcmp r0, 0\n" "\tbne _080F3D52_decfield4_return0\n" "\tmovs r0, 0\n" - "\tbl sub_80F4930\n" + "\tbl LoadPlayerOrRivalSprite\n" "\tldr r0, [r7]\n" "\tmovs r1, 0x64\n" "\tstrh r1, [r0, 0x4]\n" @@ -1079,10 +1122,10 @@ s32 sub_80F3BD0(void) "\tstr r1, [sp]\n" "\tmovs r1, 0x2\n" "\tstr r1, [sp, 0x4]\n" - "\tldr r1, _080F3D40 @ =gUnknown_8410E00\n" + "\tldr r1, _080F3D40 @ =sTextColor_Header\n" "\tstr r1, [sp, 0x8]\n" "\tstr r2, [sp, 0xC]\n" - "\tldr r1, _080F3D44 @ =gUnknown_841D198\n" + "\tldr r1, _080F3D44 @ =TITLE_TEXT\n" "\tstr r1, [sp, 0x10]\n" "\tmovs r1, 0x1\n" "\tmovs r2, 0x8\n" @@ -1092,8 +1135,8 @@ s32 sub_80F3BD0(void) "\tmovs r0, 0x5\n" "\tb _080F413C_setfield0_return0\n" "\t.align 2, 0\n" - "_080F3D40: .4byte gUnknown_8410E00\n" - "_080F3D44: .4byte gUnknown_841D198\n" + "_080F3D40: .4byte sTextColor_Header\n" + "_080F3D44: .4byte TITLE_TEXT\n" "_080F3D48_case05:\n" "\tldr r1, [r7]\n" "\tldrh r0, [r1, 0x4]\n" @@ -1105,7 +1148,7 @@ s32 sub_80F3BD0(void) "\tstrh r0, [r1, 0x4]\n" "\tb _080F3D06_return0\n" "_080F3D58:\n" - "\tbl sub_80F3B04\n" + "\tbl DestroyCreditsWindow\n" "\tldr r0, [r7]\n" "\tmovs r1, 0x6\n" "\tstrb r1, [r0]\n" @@ -1123,7 +1166,7 @@ s32 sub_80F3BD0(void) "\tldrb r0, [r2, 0x8]\n" "\tb _080F4182_return\n" "_080F3D7A:\n" - "\tldr r1, _080F3D94 @ =gUnknown_8410CF4\n" + "\tldr r1, _080F3D94 @ =sCreditsScript\n" "\tldrh r0, [r2, 0x6]\n" "\tlsls r0, 2\n" "\tadds r0, r1\n" @@ -1138,7 +1181,7 @@ s32 sub_80F3BD0(void) "\tldr r0, [r0]\n" "\tmov pc, r0\n" "\t.align 2, 0\n" - "_080F3D94: .4byte gUnknown_8410CF4\n" + "_080F3D94: .4byte sCreditsScript\n" "_080F3D98: .4byte _080F3D9C\n" "\t.align 2, 0\n" "_080F3D9C:\n" @@ -1156,7 +1199,7 @@ s32 sub_80F3BD0(void) "\tmovs r2, 0\n" "\tmovs r3, 0x10\n" "\tbl BeginNormalPaletteFade\n" - "\tldr r4, _080F3DDC @ =gUnknown_203AB40\n" + "\tldr r4, _080F3DDC @ =sCreditsMgr\n" "\tldr r1, [r4]\n" "\tmovs r0, 0x7\n" "\tstrb r0, [r1]\n" @@ -1168,14 +1211,14 @@ s32 sub_80F3BD0(void) "\tldrb r0, [r0, 0x8]\n" "\tb _080F4182_return\n" "\t.align 2, 0\n" - "_080F3DDC: .4byte gUnknown_203AB40\n" + "_080F3DDC: .4byte sCreditsMgr\n" "_080F3DE0:\n" - "\tldr r2, _080F3E04 @ =gUnknown_203AB40\n" + "\tldr r2, _080F3E04 @ =sCreditsMgr\n" "\tldr r1, [r2]\n" "\tmovs r0, 0xA\n" "\tstrb r0, [r1]\n" "\tldr r2, [r2]\n" - "\tldr r1, _080F3E08 @ =gUnknown_8410CF4\n" + "\tldr r1, _080F3E08 @ =sCreditsScript\n" "\tldrh r0, [r2, 0x6]\n" "\tlsls r0, 2\n" "\tadds r0, r1\n" @@ -1184,19 +1227,19 @@ s32 sub_80F3BD0(void) "\tldr r2, _080F3E0C @ =0x3fffffff\n" "\tmovs r0, 0x1\n" "\tmovs r1, 0\n" - "\tbl sub_807A944\n" + "\tbl FieldWeather_StartFadingOutCreditsMap\n" "\tb _080F3E94\n" "\t.align 2, 0\n" - "_080F3E04: .4byte gUnknown_203AB40\n" - "_080F3E08: .4byte gUnknown_8410CF4\n" + "_080F3E04: .4byte sCreditsMgr\n" + "_080F3E08: .4byte sCreditsScript\n" "_080F3E0C: .4byte 0x3fffffff\n" "_080F3E10:\n" - "\tldr r2, _080F3E28 @ =gUnknown_203AB40\n" + "\tldr r2, _080F3E28 @ =sCreditsMgr\n" "\tldr r1, [r2]\n" "\tmovs r0, 0xC\n" "\tstrb r0, [r1]\n" "\tldr r2, [r2]\n" - "\tldr r1, _080F3E2C @ =gUnknown_8410CF4\n" + "\tldr r1, _080F3E2C @ =sCreditsScript\n" "\tldrh r0, [r2, 0x6]\n" "\tlsls r0, 2\n" "\tadds r0, r1\n" @@ -1204,15 +1247,15 @@ s32 sub_80F3BD0(void) "\tstrb r0, [r2, 0x9]\n" "\tb _080F3E94\n" "\t.align 2, 0\n" - "_080F3E28: .4byte gUnknown_203AB40\n" - "_080F3E2C: .4byte gUnknown_8410CF4\n" + "_080F3E28: .4byte sCreditsMgr\n" + "_080F3E2C: .4byte sCreditsScript\n" "_080F3E30:\n" - "\tldr r2, _080F3E50 @ =gUnknown_203AB40\n" + "\tldr r2, _080F3E50 @ =sCreditsMgr\n" "\tldr r1, [r2]\n" "\tmovs r0, 0xD\n" "\tstrb r0, [r1]\n" "\tldr r2, [r2]\n" - "\tldr r1, _080F3E54 @ =gUnknown_8410CF4\n" + "\tldr r1, _080F3E54 @ =sCreditsScript\n" "\tldrh r0, [r2, 0x6]\n" "\tlsls r0, 2\n" "\tadds r0, r1\n" @@ -1223,16 +1266,16 @@ s32 sub_80F3BD0(void) "\tbl fade_screen\n" "\tb _080F3E94\n" "\t.align 2, 0\n" - "_080F3E50: .4byte gUnknown_203AB40\n" - "_080F3E54: .4byte gUnknown_8410CF4\n" + "_080F3E50: .4byte sCreditsMgr\n" + "_080F3E54: .4byte sCreditsScript\n" "_080F3E58:\n" - "\tldr r2, _080F3E84 @ =gUnknown_203AB40\n" + "\tldr r2, _080F3E84 @ =sCreditsMgr\n" "\tldr r1, [r2]\n" "\tmovs r3, 0\n" "\tmovs r0, 0xF\n" "\tstrb r0, [r1]\n" "\tldr r2, [r2]\n" - "\tldr r1, _080F3E88 @ =gUnknown_8410CF4\n" + "\tldr r1, _080F3E88 @ =sCreditsScript\n" "\tldrh r0, [r2, 0x6]\n" "\tlsls r0, 2\n" "\tadds r0, r1\n" @@ -1247,17 +1290,17 @@ s32 sub_80F3BD0(void) "\tbl BeginNormalPaletteFade\n" "\tb _080F3E94\n" "\t.align 2, 0\n" - "_080F3E84: .4byte gUnknown_203AB40\n" - "_080F3E88: .4byte gUnknown_8410CF4\n" + "_080F3E84: .4byte sCreditsMgr\n" + "_080F3E88: .4byte sCreditsScript\n" "_080F3E8C:\n" - "\tldr r0, _080F3EAC @ =gUnknown_203AB40\n" + "\tldr r0, _080F3EAC @ =sCreditsMgr\n" "\tldr r1, [r0]\n" "\tmovs r0, 0x11\n" "\tstrb r0, [r1]\n" "_080F3E94:\n" - "\tldr r0, _080F3EAC @ =gUnknown_203AB40\n" + "\tldr r0, _080F3EAC @ =sCreditsMgr\n" "\tldr r1, [r0]\n" - "\tldr r2, _080F3EB0 @ =gUnknown_8410CF4\n" + "\tldr r2, _080F3EB0 @ =sCreditsScript\n" "\tldrh r0, [r1, 0x6]\n" "\tlsls r0, 2\n" "\tadds r0, r2\n" @@ -1268,8 +1311,8 @@ s32 sub_80F3BD0(void) "\tstrh r0, [r1, 0x6]\n" "\tb _080F3D06_return0\n" "\t.align 2, 0\n" - "_080F3EAC: .4byte gUnknown_203AB40\n" - "_080F3EB0: .4byte gUnknown_8410CF4\n" + "_080F3EAC: .4byte sCreditsMgr\n" + "_080F3EB0: .4byte sCreditsScript\n" "_080F3EB4_case07:\n" "\tldr r0, _080F3F14 @ =gPaletteFade\n" "\tldrb r1, [r0, 0x7]\n" @@ -1280,8 +1323,8 @@ s32 sub_80F3BD0(void) "\tcmp r6, 0\n" "\tbne _080F3FBA_returnfield8\n" "\tadd r3, sp, 0x14\n" - "\tldr r5, _080F3F18 @ =gUnknown_84145BC\n" - "\tldr r4, _080F3F1C @ =gUnknown_8410CF4\n" + "\tldr r5, _080F3F18 @ =sCreditsTexts\n" + "\tldr r4, _080F3F1C @ =sCreditsScript\n" "\tldr r2, [r7]\n" "\tldrh r0, [r2, 0x6]\n" "\tlsls r0, 2\n" @@ -1296,7 +1339,7 @@ s32 sub_80F3BD0(void) "\tldrb r0, [r2, 0xA]\n" "\tstr r6, [sp]\n" "\tstr r6, [sp, 0x4]\n" - "\tldr r1, _080F3F20 @ =gUnknown_8410E00\n" + "\tldr r1, _080F3F20 @ =sTextColor_Header\n" "\tstr r1, [sp, 0x8]\n" "\tmovs r1, 0x1\n" "\tnegs r1, r1\n" @@ -1320,13 +1363,13 @@ s32 sub_80F3BD0(void) "\tb _080F3FB8_setfield0_returnfield8\n" "\t.align 2, 0\n" "_080F3F14: .4byte gPaletteFade\n" - "_080F3F18: .4byte gUnknown_84145BC\n" - "_080F3F1C: .4byte gUnknown_8410CF4\n" - "_080F3F20: .4byte gUnknown_8410E00\n" + "_080F3F18: .4byte sCreditsTexts\n" + "_080F3F1C: .4byte sCreditsScript\n" + "_080F3F20: .4byte sTextColor_Header\n" "_080F3F24_case08:\n" "\tadd r4, sp, 0x14\n" - "\tldr r3, _080F3F78 @ =gUnknown_84145BC\n" - "\tldr r5, _080F3F7C @ =gUnknown_8410CF4\n" + "\tldr r3, _080F3F78 @ =sCreditsTexts\n" + "\tldr r5, _080F3F7C @ =sCreditsScript\n" "\tldr r2, [r7]\n" "\tldrh r0, [r2, 0x6]\n" "\tlsls r0, 2\n" @@ -1342,7 +1385,7 @@ s32 sub_80F3BD0(void) "\tldrb r0, [r2, 0xA]\n" "\tstr r1, [sp]\n" "\tstr r1, [sp, 0x4]\n" - "\tldr r1, _080F3F80 @ =gUnknown_8410E04\n" + "\tldr r1, _080F3F80 @ =sTextColor_Regular\n" "\tstr r1, [sp, 0x8]\n" "\tmovs r1, 0x1\n" "\tnegs r1, r1\n" @@ -1366,16 +1409,16 @@ s32 sub_80F3BD0(void) "\tmovs r0, 0x9\n" "\tb _080F3FB8_setfield0_returnfield8\n" "\t.align 2, 0\n" - "_080F3F78: .4byte gUnknown_84145BC\n" - "_080F3F7C: .4byte gUnknown_8410CF4\n" - "_080F3F80: .4byte gUnknown_8410E04\n" + "_080F3F78: .4byte sCreditsTexts\n" + "_080F3F7C: .4byte sCreditsScript\n" + "_080F3F80: .4byte sTextColor_Regular\n" "_080F3F84_case09:\n" "\tldr r0, [r7]\n" "\tldrb r0, [r0, 0xA]\n" "\tmovs r1, 0x2\n" "\tbl CopyWindowToVram\n" "\tldr r1, [r7]\n" - "\tldr r2, _080F3FC0 @ =gUnknown_8410CF4\n" + "\tldr r2, _080F3FC0 @ =sCreditsScript\n" "\tldrh r0, [r1, 0x6]\n" "\tlsls r0, 2\n" "\tadds r0, r2\n" @@ -1401,7 +1444,7 @@ s32 sub_80F3BD0(void) "\tldrb r0, [r0, 0x8]\n" "\tb _080F4182_return\n" "\t.align 2, 0\n" - "_080F3FC0: .4byte gUnknown_8410CF4\n" + "_080F3FC0: .4byte sCreditsScript\n" "_080F3FC4_case0A:\n" "\tldr r0, _080F3FE8 @ =gPaletteFade\n" "\tldrb r1, [r0, 0x7]\n" @@ -1413,8 +1456,8 @@ s32 sub_80F3BD0(void) "\tbeq _080F3FD6\n" "\tb _080F3D06_return0\n" "_080F3FD6:\n" - "\tbl sub_80F3B04\n" - "\tldr r1, _080F3FEC @ =gUnknown_203AB40\n" + "\tbl DestroyCreditsWindow\n" + "\tldr r1, _080F3FEC @ =sCreditsMgr\n" "\tldr r0, [r1]\n" "\tstrb r4, [r0, 0x1]\n" "\tldr r1, [r1]\n" @@ -1422,11 +1465,11 @@ s32 sub_80F3BD0(void) "\tb _080F413C_setfield0_return0\n" "\t.align 2, 0\n" "_080F3FE8: .4byte gPaletteFade\n" - "_080F3FEC: .4byte gUnknown_203AB40\n" + "_080F3FEC: .4byte sCreditsMgr\n" "_080F3FF0_case0B:\n" "\tldr r0, [r7]\n" "\tldrb r0, [r0, 0x9]\n" - "\tbl sub_80F3B2C\n" + "\tbl DoOverworldMapScrollScene\n" "\tcmp r0, 0\n" "\tbne _080F3FFE\n" "\tb _080F3D06_return0\n" @@ -1448,18 +1491,18 @@ s32 sub_80F3BD0(void) "\tbeq _080F401C\n" "\tb _080F3D06_return0\n" "_080F401C:\n" - "\tbl sub_80F3B04\n" - "\tldr r1, _080F4054 @ =gUnknown_203AB40\n" + "\tbl DestroyCreditsWindow\n" + "\tldr r1, _080F4054 @ =sCreditsMgr\n" "\tldr r0, [r1]\n" "\tstrb r4, [r0, 0x1]\n" "\tadds r4, r1, 0\n" "_080F4028:\n" "\tldr r0, [r4]\n" "\tldrb r0, [r0, 0x9]\n" - "\tbl sub_80F3B2C\n" + "\tbl DoOverworldMapScrollScene\n" "\tcmp r0, 0\n" "\tbeq _080F4028\n" - "\tldr r0, _080F4054 @ =gUnknown_203AB40\n" + "\tldr r0, _080F4054 @ =sCreditsMgr\n" "\tldr r0, [r0]\n" "\tldrb r0, [r0, 0x9]\n" "\tcmp r0, 0x6\n" @@ -1476,7 +1519,7 @@ s32 sub_80F3BD0(void) "\tb _080F4068\n" "\t.align 2, 0\n" "_080F4050: .4byte gPaletteFade\n" - "_080F4054: .4byte gUnknown_203AB40\n" + "_080F4054: .4byte sCreditsMgr\n" "_080F4058:\n" "\tadd r1, sp, 0x14\n" "\tmovs r0, 0x2\n" @@ -1492,8 +1535,8 @@ s32 sub_80F3BD0(void) "\tstrh r0, [r1]\n" "\tadd r0, sp, 0x14\n" "\tldrb r0, [r0]\n" - "\tbl sub_80F4930\n" - "\tldr r2, _080F4080 @ =gUnknown_203AB40\n" + "\tbl LoadPlayerOrRivalSprite\n" + "\tldr r2, _080F4080 @ =sCreditsMgr\n" "\tldr r1, [r2]\n" "\tmovs r0, 0x1\n" "\tstrb r0, [r1, 0x8]\n" @@ -1501,7 +1544,7 @@ s32 sub_80F3BD0(void) "\tmovs r0, 0x6\n" "\tb _080F413C_setfield0_return0\n" "\t.align 2, 0\n" - "_080F4080: .4byte gUnknown_203AB40\n" + "_080F4080: .4byte sCreditsMgr\n" "_080F4084_case0D:\n" "\tldr r0, _080F40B0 @ =gPaletteFade\n" "\tldrb r1, [r0, 0x7]\n" @@ -1513,9 +1556,9 @@ s32 sub_80F3BD0(void) "\tbeq _080F4096\n" "\tb _080F3D06_return0\n" "_080F4096:\n" - "\tbl sub_80F48D0\n" - "\tbl sub_80F3B04\n" - "\tldr r1, _080F40B4 @ =gUnknown_203AB40\n" + "\tbl DestroyPlayerOrRivalSprite\n" + "\tbl DestroyCreditsWindow\n" + "\tldr r1, _080F40B4 @ =sCreditsMgr\n" "\tldr r0, [r1]\n" "\tstrb r4, [r0, 0x1]\n" "\tldr r0, [r1]\n" @@ -1525,19 +1568,19 @@ s32 sub_80F3BD0(void) "\tb _080F413C_setfield0_return0\n" "\t.align 2, 0\n" "_080F40B0: .4byte gPaletteFade\n" - "_080F40B4: .4byte gUnknown_203AB40\n" + "_080F40B4: .4byte sCreditsMgr\n" "_080F40B8_case0E:\n" - "\tbl sub_80F4328\n" + "\tbl DoCreditsMonScene\n" "\tcmp r0, 0\n" "\tbne _080F40C2\n" "\tb _080F3D06_return0\n" "_080F40C2:\n" - "\tldr r0, _080F40CC @ =gUnknown_203AB40\n" + "\tldr r0, _080F40CC @ =sCreditsMgr\n" "\tldr r1, [r0]\n" "\tmovs r0, 0x6\n" "\tb _080F413C_setfield0_return0\n" "\t.align 2, 0\n" - "_080F40CC: .4byte gUnknown_203AB40\n" + "_080F40CC: .4byte sCreditsMgr\n" "_080F40D0_case0F:\n" "\tldr r0, _080F40F8 @ =gPaletteFade\n" "\tldrb r1, [r0, 0x7]\n" @@ -1549,8 +1592,8 @@ s32 sub_80F3BD0(void) "\tbeq _080F40E2\n" "\tb _080F3D06_return0\n" "_080F40E2:\n" - "\tbl sub_80F3B04\n" - "\tldr r1, _080F40FC @ =gUnknown_203AB40\n" + "\tbl DestroyCreditsWindow\n" + "\tldr r1, _080F40FC @ =sCreditsMgr\n" "\tldr r0, [r1]\n" "\tstrb r4, [r0, 0x1]\n" "\tldr r0, [r1]\n" @@ -1560,19 +1603,19 @@ s32 sub_80F3BD0(void) "\tb _080F413C_setfield0_return0\n" "\t.align 2, 0\n" "_080F40F8: .4byte gPaletteFade\n" - "_080F40FC: .4byte gUnknown_203AB40\n" + "_080F40FC: .4byte sCreditsMgr\n" "_080F4100_case10:\n" - "\tbl sub_80F4674\n" + "\tbl DoCopyrightOrTheEndGfxScene\n" "\tcmp r0, 0\n" "\tbne _080F410A\n" "\tb _080F3D06_return0\n" "_080F410A:\n" - "\tldr r0, _080F4114 @ =gUnknown_203AB40\n" + "\tldr r0, _080F4114 @ =sCreditsMgr\n" "\tldr r1, [r0]\n" "\tmovs r0, 0x6\n" "\tb _080F413C_setfield0_return0\n" "\t.align 2, 0\n" - "_080F4114: .4byte gUnknown_203AB40\n" + "_080F4114: .4byte sCreditsMgr\n" "_080F4118_case11:\n" "\tldr r0, _080F4140 @ =gMain\n" "\tldrh r1, [r0, 0x2E]\n" @@ -1588,7 +1631,7 @@ s32 sub_80F3BD0(void) "\tmovs r2, 0\n" "\tmovs r3, 0x10\n" "\tbl BeginNormalPaletteFade\n" - "\tldr r0, _080F4148 @ =gUnknown_203AB40\n" + "\tldr r0, _080F4148 @ =sCreditsMgr\n" "\tldr r1, [r0]\n" "\tmovs r0, 0x12\n" "_080F413C_setfield0_return0:\n" @@ -1597,7 +1640,7 @@ s32 sub_80F3BD0(void) "\t.align 2, 0\n" "_080F4140: .4byte gMain\n" "_080F4144: .4byte 0x00007fff\n" - "_080F4148: .4byte gUnknown_203AB40\n" + "_080F4148: .4byte sCreditsMgr\n" "_080F414C:\n" "\tldr r1, [r7]\n" "\tldrh r0, [r1, 0x4]\n" @@ -1624,7 +1667,7 @@ s32 sub_80F3BD0(void) "\tands r0, r1\n" "\tcmp r0, 0\n" "\tbne _080F4180_default_return2\n" - "\tbl sub_80F3B04\n" + "\tbl DestroyCreditsWindow\n" "_080F4180_default_return2:\n" "\tmovs r0, 0x2\n" "_080F4182_return:\n" @@ -1637,44 +1680,44 @@ s32 sub_80F3BD0(void) } #endif //NONMATCHING -void sub_80F4190(void) +static void VBlankCB(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_80F41A4(u8 a0) +static void LoadCreditsMonPic(u8 whichMon) { - switch (a0) + switch (whichMon) { - case 0: - InitWindows(gUnknown_840C5B0); + case CREDITSMON_CHARIZARD: + InitWindows(sWindowTemplates_Charizard); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - sub_810C228(SPECIES_CHARIZARD, 8, 0, TRUE, 10, 0); - CopyToWindowPixelBuffer(1, (const void *)gUnknown_840CB8C, 0, 0); - CopyToWindowPixelBuffer(2, (const void *)gUnknown_840D228, 0, 0); + LoadMonPicForCredits(SPECIES_CHARIZARD, 8, 0, TRUE, 10, 0); + CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Charizard, 0, 0); + CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Charizard, 0, 0); break; - case 1: - InitWindows(gUnknown_840C5D0); + case CREDITSMON_VENUSAUR: + InitWindows(sWindowTemplates_Venusaur); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - sub_810C228(SPECIES_VENUSAUR, 8, 0, TRUE, 10, 0); - CopyToWindowPixelBuffer(1, (const void *)gUnknown_840E158, 0, 0); - CopyToWindowPixelBuffer(2, (const void *)gUnknown_840E904, 0, 0); + LoadMonPicForCredits(SPECIES_VENUSAUR, 8, 0, TRUE, 10, 0); + CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Venusaur, 0, 0); + CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Venusaur, 0, 0); break; - case 2: - InitWindows(gUnknown_840C5F0); + case CREDITSMON_BLASTOISE: + InitWindows(sWindowTemplates_Blastoise); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - sub_810C228(SPECIES_BLASTOISE, 8, 0, TRUE, 10, 0); - CopyToWindowPixelBuffer(1, (const void *)gUnknown_840F240, 0, 0); - CopyToWindowPixelBuffer(2, (const void *)gUnknown_840F944, 0, 0); + LoadMonPicForCredits(SPECIES_BLASTOISE, 8, 0, TRUE, 10, 0); + CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Blastoise, 0, 0); + CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Blastoise, 0, 0); break; - case 3: - InitWindows(gUnknown_840C610); + case CREDITSMON_PIKACHU: + InitWindows(sWindowTemplates_Pikachu); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - sub_810C228(SPECIES_PIKACHU, 8, 0, TRUE, 10, 0); - CopyToWindowPixelBuffer(1, (const void *)gUnknown_8410198, 0, 0); - CopyToWindowPixelBuffer(2, (const void *)gUnknown_84105B4, 0, 0); + LoadMonPicForCredits(SPECIES_PIKACHU, 8, 0, TRUE, 10, 0); + CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Pikachu, 0, 0); + CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Pikachu, 0, 0); break; } CopyWindowToVram(0, 2); @@ -1682,26 +1725,26 @@ void sub_80F41A4(u8 a0) CopyWindowToVram(2, 2); } -u16 sub_80F42F0(u8 a0) +static u16 GetCreditsMonSpecies(u8 whichMon) { - switch (a0) + switch (whichMon) { - case 0: + case CREDITSMON_CHARIZARD: return SPECIES_CHARIZARD; - case 1: + case CREDITSMON_VENUSAUR: return SPECIES_VENUSAUR; - case 2: + case CREDITSMON_BLASTOISE: return SPECIES_BLASTOISE; - case 3: + case CREDITSMON_PIKACHU: return SPECIES_PIKACHU; default: return SPECIES_NONE; } } -bool32 sub_80F4328(void) +static bool32 DoCreditsMonScene(void) { - switch (gUnknown_203AB40->unk_01) + switch (sCreditsMgr->subseqno) { case 0: SetVBlankCallback(NULL); @@ -1716,25 +1759,25 @@ bool32 sub_80F4328(void) ResetSpriteData(); ResetTasks(); ResetBgsAndClearDma3BusyFlags(1); - InitBgsFromTemplates(1, gUnknown_840C5A4, NELEMS(gUnknown_840C5A4)); + InitBgsFromTemplates(1, sBgTemplates_MonSceneOrTheEnd, NELEMS(sBgTemplates_MonSceneOrTheEnd)); SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); ChangeBgY(1, 0, 0); - gUnknown_203AB40->unk_0C = 0; - gUnknown_203AB40->unk_0E = 0; - SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, gUnknown_203AB40->unk_0C, gUnknown_203AB40->unk_0C, 0); - DecompressAndLoadBgGfxUsingHeap(1, gUnknown_8EAAB98, 0x2000, 0, 0); - DecompressAndLoadBgGfxUsingHeap(2, gUnknown_840C650, 0x2000, 0, 0); - DecompressAndLoadBgGfxUsingHeap(1, gUnknown_8EAB30C, 0x500, 0, 1); - DecompressAndLoadBgGfxUsingHeap(2, gUnknown_840CA54, 0x400, 0, 1); - LoadPalette(gUnknown_8EAAB18[gUnknown_203AB40->unk_09], 0, 0x20); - LoadPalette(gUnknown_840C630, 0xF0, 0x20); - sub_80F41A4(gUnknown_203AB40->unk_09); - SetVBlankCallback(sub_80F4190); + sCreditsMgr->creditsMonTimer = 0; + sCreditsMgr->unk_0E = 0; + SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, sCreditsMgr->creditsMonTimer, sCreditsMgr->creditsMonTimer, 0); + DecompressAndLoadBgGfxUsingHeap(1, gCreditsPokeballBgGfxTiles, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(2, sAffineCircleGfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(1, gCreditsPokeballBgGfxMap, 0x500, 0, 1); + DecompressAndLoadBgGfxUsingHeap(2, sAffineCircleMap, 0x400, 0, 1); + LoadPalette(gCreditsMonBackdropPals[sCreditsMgr->whichMon], 0, 0x20); + LoadPalette(sPalette_OneBlackThenAllWhite, 0xF0, 0x20); + LoadCreditsMonPic(sCreditsMgr->whichMon); + SetVBlankCallback(VBlankCB); EnableInterrupts(INTR_FLAG_VBLANK); - gUnknown_203AB40->unk_01++; + sCreditsMgr->subseqno++; break; case 1: FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, PIXEL_FILL(1)); @@ -1742,77 +1785,77 @@ bool32 sub_80F4328(void) CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(0); - gUnknown_203AB40->unk_01++; + sCreditsMgr->subseqno++; break; case 2: ShowBg(2); ShowBg(0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - gUnknown_203AB40->unk_0C = 0x28; - gUnknown_203AB40->unk_01++; + sCreditsMgr->creditsMonTimer = 40; + sCreditsMgr->subseqno++; break; case 3: - if (gUnknown_203AB40->unk_0C != 0) - gUnknown_203AB40->unk_0C--; + if (sCreditsMgr->creditsMonTimer != 0) + sCreditsMgr->creditsMonTimer--; else - gUnknown_203AB40->unk_01++; + sCreditsMgr->subseqno++; break; case 4: if (!gPaletteFade.active) { - gUnknown_203AB40->unk_0C = 8; - gUnknown_203AB40->unk_0E = 1; - gUnknown_203AB40->unk_01++; + sCreditsMgr->creditsMonTimer = 8; + sCreditsMgr->unk_0E = 1; + sCreditsMgr->subseqno++; } break; case 5: - if (gUnknown_203AB40->unk_0C != 0) - gUnknown_203AB40->unk_0C--; + if (sCreditsMgr->creditsMonTimer != 0) + sCreditsMgr->creditsMonTimer--; else { - if (gUnknown_203AB40->unk_0E < 3) + if (sCreditsMgr->unk_0E < 3) { - PutWindowTilemap(gUnknown_203AB40->unk_0E); + PutWindowTilemap(sCreditsMgr->unk_0E); CopyBgTilemapBufferToVram(0); - gUnknown_203AB40->unk_0C = 4; - gUnknown_203AB40->unk_0E++; + sCreditsMgr->creditsMonTimer = 4; + sCreditsMgr->unk_0E++; } else - gUnknown_203AB40->unk_01++; + sCreditsMgr->subseqno++; } break; case 6: - if (gUnknown_203AB40->unk_0C < 256) + if (sCreditsMgr->creditsMonTimer < 256) { - gUnknown_203AB40->unk_0C += 16; - SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, gUnknown_203AB40->unk_0C, gUnknown_203AB40->unk_0C, 0); + sCreditsMgr->creditsMonTimer += 16; + SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, sCreditsMgr->creditsMonTimer, sCreditsMgr->creditsMonTimer, 0); } else { SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, 0x100, 0x100, 0); - gUnknown_203AB40->unk_0C = 32; - gUnknown_203AB40->unk_01++; + sCreditsMgr->creditsMonTimer = 32; + sCreditsMgr->subseqno++; } break; case 7: - if (gUnknown_203AB40->unk_0C != 0) - gUnknown_203AB40->unk_0C--; + if (sCreditsMgr->creditsMonTimer != 0) + sCreditsMgr->creditsMonTimer--; else { HideBg(2); ShowBg(1); - PlayCry2(sub_80F42F0(gUnknown_203AB40->unk_09), 0, 125, 10); - gUnknown_203AB40->unk_0C = 128; - gUnknown_203AB40->unk_01++; + PlayCry2(GetCreditsMonSpecies(sCreditsMgr->whichMon), 0, 125, 10); + sCreditsMgr->creditsMonTimer = 128; + sCreditsMgr->subseqno++; } break; case 8: - if (gUnknown_203AB40->unk_0C != 0) - gUnknown_203AB40->unk_0C--; + if (sCreditsMgr->creditsMonTimer != 0) + sCreditsMgr->creditsMonTimer--; else { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_203AB40->unk_01++; + sCreditsMgr->subseqno++; } break; case 9: @@ -1820,7 +1863,7 @@ bool32 sub_80F4328(void) { FreeAllWindowBuffers(); Free(GetBgTilemapBuffer(0)); - gUnknown_203AB40->unk_01 = 0; + sCreditsMgr->subseqno = 0; return TRUE; } break; @@ -1828,9 +1871,9 @@ bool32 sub_80F4328(void) return FALSE; } -bool32 sub_80F4674(void) +static bool32 DoCopyrightOrTheEndGfxScene(void) { - switch (gUnknown_203AB40->unk_01) + switch (sCreditsMgr->subseqno) { case 0: SetVBlankCallback(NULL); @@ -1845,32 +1888,32 @@ bool32 sub_80F4674(void) ResetSpriteData(); ResetTasks(); ResetBgsAndClearDma3BusyFlags(1); - InitBgsFromTemplates(0, gUnknown_840C5A4, 1); + InitBgsFromTemplates(0, sBgTemplates_MonSceneOrTheEnd, 1); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); - DecompressAndLoadBgGfxUsingHeap(0, gUnknown_8410CDC[gUnknown_203AB40->unk_09].tiles, 0x2000, 0, 0); - DecompressAndLoadBgGfxUsingHeap(0, gUnknown_8410CDC[gUnknown_203AB40->unk_09].map, 0x800, 0, 1); - LoadPalette(gUnknown_8410CDC[gUnknown_203AB40->unk_09].palette, 0x00, 0x200); - SetVBlankCallback(sub_80F4190); + DecompressAndLoadBgGfxUsingHeap(0, sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].tiles, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(0, sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].map, 0x800, 0, 1); + LoadPalette(sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].palette, 0x00, 0x200); + SetVBlankCallback(VBlankCB); EnableInterrupts(INTR_FLAG_VBLANK); - gUnknown_203AB40->unk_01++; + sCreditsMgr->subseqno++; break; case 1: CopyBgTilemapBufferToVram(0); - gUnknown_203AB40->unk_01++; + sCreditsMgr->subseqno++; break; case 2: ShowBg(0); - if (gUnknown_203AB40->unk_09 != 0) + if (sCreditsMgr->whichMon != 0) BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB_BLACK); else BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - gUnknown_203AB40->unk_01++; + sCreditsMgr->subseqno++; break; case 3: if (!gPaletteFade.active) { - gUnknown_203AB40->unk_01 = 0; + sCreditsMgr->subseqno = 0; return TRUE; } break; @@ -1878,170 +1921,170 @@ bool32 sub_80F4674(void) return FALSE; } -void sub_80F47F8(u8 taskId) +static void Task_MovePlayerAndGroundSprites(u8 taskId) { struct CreditsTaskData * data = (void *)gTasks[taskId].data; - switch (data->field_00) + switch (data->spriteMoveCmd) { case 0: break; case 1: - if (gSprites[data->field_01].pos1.x != 0xD0) + if (gSprites[data->playerSpriteId].pos1.x != 0xD0) { - gSprites[data->field_01].pos1.x--; - gSprites[data->field_06].pos1.x--; + gSprites[data->playerSpriteId].pos1.x--; + gSprites[data->groundSpriteId].pos1.x--; } else { - data->field_00 = 0; + data->spriteMoveCmd = 0; } break; case 2: - if (gUnknown_203AB40->unk_1D & 1) + if (sCreditsMgr->unk_1D & 1) { - if (gSprites[data->field_01].pos1.y != 0x50) + if (gSprites[data->playerSpriteId].pos1.y != 0x50) { - gSprites[data->field_01].pos1.y--; - gSprites[data->field_06].pos1.y--; + gSprites[data->playerSpriteId].pos1.y--; + gSprites[data->groundSpriteId].pos1.y--; } else { - data->field_00 = 0; + data->spriteMoveCmd = 0; } } break; case 3: - if (gUnknown_203AB40->unk_00 == 15) + if (sCreditsMgr->mainseqno == 15) { - gSprites[data->field_01].pos1.x--; - gSprites[data->field_06].pos1.x--; + gSprites[data->playerSpriteId].pos1.x--; + gSprites[data->groundSpriteId].pos1.x--; } break; } } -void sub_80F48D0(void) +static void DestroyPlayerOrRivalSprite(void) { - if (gUnknown_203AB40->unk_02 != 0xFF) + if (sCreditsMgr->taskId != 0xFF) { - struct CreditsTaskData * data = (void *)gTasks[gUnknown_203AB40->unk_02].data; - FreeSpriteTilesByTag(data->field_02); - DestroySprite(&gSprites[data->field_01]); - FreeSpriteTilesByTag(data->field_08); - DestroySprite(&gSprites[data->field_06]); - DestroyTask(gUnknown_203AB40->unk_02); - gUnknown_203AB40->unk_02 = 0xFF; + struct CreditsTaskData * data = (void *)gTasks[sCreditsMgr->taskId].data; + FreeSpriteTilesByTag(data->playerTilesTag); + DestroySprite(&gSprites[data->playerSpriteId]); + FreeSpriteTilesByTag(data->groundTilesTag); + DestroySprite(&gSprites[data->groundSpriteId]); + DestroyTask(sCreditsMgr->taskId); + sCreditsMgr->taskId = 0xFF; } } -void sub_80F4930(u8 a0) +static void LoadPlayerOrRivalSprite(u8 whichScene) { u8 taskId; struct CreditsTaskData * data; - s32 r4, r9; - struct SpriteTemplate sp00; - struct CompressedSpriteSheet sp18; + s32 x, y; + struct SpriteTemplate sprTemplate; + struct CompressedSpriteSheet sprSheet; - if (gUnknown_203AB40->unk_02 == 0xFF) + if (sCreditsMgr->taskId == 0xFF) { - taskId = CreateTask(sub_80F47F8, 0); + taskId = CreateTask(Task_MovePlayerAndGroundSprites, 0); data = (void *)gTasks[taskId].data; - gUnknown_203AB40->unk_02 = taskId; - switch (gUnknown_841431C[a0][2]) + sCreditsMgr->taskId = taskId; + switch (sPlayerRivalSpriteParams[whichScene][2]) { default: case 0: - r4 = 0xd0; - r9 = 0x50; + x = 0xd0; + y = 0x50; break; case 1: - r4 = 0x110; - r9 = 0x50; + x = 0x110; + y = 0x50; break; case 2: - r4 = 0xd0; - r9 = 0xa0; + x = 0xd0; + y = 0xa0; break; } - data->field_00 = gUnknown_841431C[a0][2]; - data->field_02 = 0x2000; + data->spriteMoveCmd = sPlayerRivalSpriteParams[whichScene][2]; + data->playerTilesTag = 0x2000; data->field_04 = 0xFFFF; - switch (gUnknown_841431C[a0][0]) + switch (sPlayerRivalSpriteParams[whichScene][0]) { case 0: // Player if (gSaveBlock2Ptr->playerGender == MALE) { - sp18.data = gUnknown_8410E30; - sp18.size = 0x3000; - sp18.tag = data->field_02; - LoadCompressedSpriteSheet(&sp18); - LoadPalette(gUnknown_8410E10, 0x1F0, 0x20); + sprSheet.data = sMalePlayerSpriteGfx; + sprSheet.size = 0x3000; + sprSheet.tag = data->playerTilesTag; + LoadCompressedSpriteSheet(&sprSheet); + LoadPalette(sMalePlayerSpritePal, 0x1F0, 0x20); } else { - sp18.data = gUnknown_8411C18; - sp18.size = 0x3000; - sp18.tag = data->field_02; - LoadCompressedSpriteSheet(&sp18); - LoadPalette(gUnknown_8411BF8, 0x1F0, 0x20); + sprSheet.data = sFemalePlayerSpriteGfx; + sprSheet.size = 0x3000; + sprSheet.tag = data->playerTilesTag; + LoadCompressedSpriteSheet(&sprSheet); + LoadPalette(sFemalePlayerSpritePal, 0x1F0, 0x20); } break; case 1: // Rival - sp18.data = gUnknown_84129C0; - sp18.size = 0x3000; - sp18.tag = data->field_02; - LoadCompressedSpriteSheet(&sp18); - LoadPalette(gUnknown_84129A0, 0x1F0, 0x20); + sprSheet.data = sRivalSpriteGfx; + sprSheet.size = 0x3000; + sprSheet.tag = data->playerTilesTag; + LoadCompressedSpriteSheet(&sprSheet); + LoadPalette(sRivalSpritePal, 0x1F0, 0x20); break; } - sp00 = gUnknown_8414364; - sp00.tileTag = data->field_02; - data->field_01 = CreateSprite(&sp00, r4, r9, 0); - gSprites[data->field_01].oam.paletteNum = 0xF; - gSprites[data->field_01].subpriority = 0; + sprTemplate = sPlayerOrRivalSpriteTemplate; + sprTemplate.tileTag = data->playerTilesTag; + data->playerSpriteId = CreateSprite(&sprTemplate, x, y, 0); + gSprites[data->playerSpriteId].oam.paletteNum = 0xF; + gSprites[data->playerSpriteId].subpriority = 0; - data->field_08 = 0x2001; + data->groundTilesTag = 0x2001; data->field_0A = 0xFFFF; - switch (gUnknown_841431C[a0][1]) + switch (sPlayerRivalSpriteParams[whichScene][1]) { case 0: - sp18.data = gUnknown_8413338; - sp18.size = 0x3000; - sp18.tag = data->field_08; - LoadCompressedSpriteSheet(&sp18); - LoadPalette(gUnknown_8413318, 0x1E0, 0x20); - sp00 = gUnknown_84143B8; + sprSheet.data = sGroundSpriteGfx_Grass; + sprSheet.size = 0x3000; + sprSheet.tag = data->groundTilesTag; + LoadCompressedSpriteSheet(&sprSheet); + LoadPalette(sGroundSpritePal_Grass, 0x1E0, 0x20); + sprTemplate = sGroundSpriteTemplate_Running; break; case 1: - sp18.data = gUnknown_8413338; - sp18.size = 0x3000; - sp18.tag = data->field_08; - LoadCompressedSpriteSheet(&sp18); - LoadPalette(gUnknown_8413318, 0x1E0, 0x20); - sp00 = gUnknown_84143D0; + sprSheet.data = sGroundSpriteGfx_Grass; + sprSheet.size = 0x3000; + sprSheet.tag = data->groundTilesTag; + LoadCompressedSpriteSheet(&sprSheet); + LoadPalette(sGroundSpritePal_Grass, 0x1E0, 0x20); + sprTemplate = sGroundSpriteTemplate_Static; break; case 2: - sp18.data = gUnknown_8413874; - sp18.size = 0x3000; - sp18.tag = data->field_08; - LoadCompressedSpriteSheet(&sp18); - LoadPalette(gUnknown_8413854, 0x1E0, 0x20); - sp00 = gUnknown_84143B8; + sprSheet.data = sGroundSpriteGfx_Dirt; + sprSheet.size = 0x3000; + sprSheet.tag = data->groundTilesTag; + LoadCompressedSpriteSheet(&sprSheet); + LoadPalette(sGroundSpritePal_Dirt, 0x1E0, 0x20); + sprTemplate = sGroundSpriteTemplate_Running; break; case 3: - sp18.data = gUnknown_8413DB8; - sp18.size = 0x3000; - sp18.tag = data->field_08; - LoadCompressedSpriteSheet(&sp18); - LoadPalette(gUnknown_8413D98, 0x1E0, 0x20); - sp00 = gUnknown_84143B8; + sprSheet.data = sGroundSpriteGfx_City; + sprSheet.size = 0x3000; + sprSheet.tag = data->groundTilesTag; + LoadCompressedSpriteSheet(&sprSheet); + LoadPalette(sGroundSpritePal_City, 0x1E0, 0x20); + sprTemplate = sGroundSpriteTemplate_Running; break; } - sp00.tileTag = data->field_08; - data->field_06 = CreateSprite(&sp00, r4, r9 + 0x26, 0); - gSprites[data->field_06].oam.paletteNum = 0xE; - gSprites[data->field_06].subpriority = 1; + sprTemplate.tileTag = data->groundTilesTag; + data->groundSpriteId = CreateSprite(&sprTemplate, x, y + 0x26, 0); + gSprites[data->groundSpriteId].oam.paletteNum = 0xE; + gSprites[data->groundSpriteId].subpriority = 1; } } diff --git a/src/quest_log.c b/src/quest_log.c index 7a3084d8c..303cdeb42 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -871,7 +871,7 @@ void sub_8110F90(u8 unused) gSaveBlock1Ptr->location.mapNum = 19; gSaveBlock1Ptr->location.warpId = -1; gUnknown_203ADF8 = 0; - gUnknown_2031DD8 = 1; + gDisableMapMusicChangeOnMapLoad = 1; sub_8082740(1); sub_8111368(); } @@ -1567,7 +1567,7 @@ void sub_81120AC(u8 taskId) switch (data[0]) { case 0: - gUnknown_2031DD8 = 0; + gDisableMapMusicChangeOnMapLoad = 0; Overworld_PlaySpecialMapMusic(); sub_811229C(); FillWindowPixelRect(gUnknown_203ADFE[0], 0xF, 0, 0, gUnknown_845661C[0].width * 8, gUnknown_845661C[0].height * 8); diff --git a/src/sound.c b/src/sound.c index dc4b9f604..41b9f5b7d 100644 --- a/src/sound.c +++ b/src/sound.c @@ -15,7 +15,7 @@ struct Fanfare }; // TODO: what are these -extern u8 gUnknown_2031DD8; +extern u8 gDisableMapMusicChangeOnMapLoad; extern u8 gUnknown_203ADFA; extern u8 gUnknown_203F174; @@ -571,7 +571,7 @@ void PlayBGM(u16 songNum) void PlaySE(u16 songNum) { - if(gUnknown_2031DD8 == 0 && gUnknown_203ADFA != 2) + if(gDisableMapMusicChangeOnMapLoad == 0 && gUnknown_203ADFA != 2) m4aSongNumStart(songNum); } diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index 25a8d4515..ee457a6df 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -278,7 +278,7 @@ u16 FreeAndDestroyMonPicSprite(u16 spriteId) return FreeAndDestroyPicSpriteInternal(spriteId); } -u16 sub_810C228(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId) +u16 LoadMonPicForCredits(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId) { return sub_810C0C0(species, otId, personality, isFrontPic, 0, 0, paletteSlot, windowId, FALSE); } diff --git a/sym_ewram.txt b/sym_ewram.txt index f6540358e..645b96031 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -529,7 +529,7 @@ gUnknown_2031DCC: @ 2031DCC gUnknown_2031DD4: @ 2031DD4 .space 0x4 -gUnknown_2031DD8: @ 2031DD8 +gDisableMapMusicChangeOnMapLoad: @ 2031DD8 .space 0x2 gUnknown_2031DDA: @ 2031DDA @@ -1099,8 +1099,7 @@ gUnknown_203AB38: @ 203AB38 gUnknown_203AB3C: @ 203AB3C .space 0x4 -gUnknown_203AB40: @ 203AB40 - .space 0x4 + .include "src/credits.o" gUnknown_203AB44: @ 203AB44 .space 0x4 From b843deb1e436a5b172f1c9ba60cb60344f0df938 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 25 Sep 2019 11:14:54 -0400 Subject: [PATCH 5/6] Fix address comments on word-aligned strings --- data/strings.s | 124 ++++++++++++++++++++++++------------------------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/data/strings.s b/data/strings.s index 02eefcef8..67c286052 100644 --- a/data/strings.s +++ b/data/strings.s @@ -3324,7 +3324,7 @@ gString_PokemonFireRed_Staff:: @ 841D198 .string "Pokémon FireRed Version\nStaff$" .align 2 -gString_PokemonLeafGreen_Staff:: @ 0x841D1B6 +gString_PokemonLeafGreen_Staff:: @ 0x841D1B8 .string "Pokémon LeafGreen Version\nStaff$" .align 2 @@ -3332,43 +3332,43 @@ gUnknown_841D1D8:: @ 0x841D1D8 .string "\n\nDirector\n\n\n\n$" .align 2 -gUnknown_841D1E8:: @ 0x841D1E7 +gUnknown_841D1E8:: @ 0x841D1E8 .string "\n\n\nJunichi Masuda\n\n\n$" .align 2 -gUnknown_841D200:: @ 0x841D1FD +gUnknown_841D200:: @ 0x841D200 .string "\nArt Director\n\nBattle Director\n\n\n$" .align 2 -gUnknown_841D224:: @ 0x841D222 +gUnknown_841D224:: @ 0x841D224 .string "\n\nKen Sugimori\n\nShigeki Morimoto\n\n$" .align 2 -gUnknown_841D248:: @ 0x841D247 +gUnknown_841D248:: @ 0x841D248 .string "Program Leader\n\nPlanning Leader\n\nGraphic Design Leader\n\n$" .align 2 -gUnknown_841D284:: @ 0x841D281 +gUnknown_841D284:: @ 0x841D284 .string "\nTetsuya Watanabe\n\nKoji Nishino\n\nTakao Unno\n$" .align 2 -gUnknown_841D2B4:: @ 0x841D2B1 +gUnknown_841D2B4:: @ 0x841D2B4 .string "Programmers\n\n\n\n\n$" .align 2 -gUnknown_841D2C8:: @ 0x841D2C5 +gUnknown_841D2C8:: @ 0x841D2C8 .string "\nHiroyuki Nakamura\nMasao Taya\nSatoshi Nohara\nMiyuki Iwasawa\nDaisuke Goto\n$" .align 2 -gUnknown_841D314:: @ 0x841D312 +gUnknown_841D314:: @ 0x841D314 .string "System Programmers\n\n\n\n\n\n$" .align 2 -gUnknown_841D330:: @ 0x841D32D +gUnknown_841D330:: @ 0x841D330 .string "\nTetsuya Watanabe\nAkito Mori\nHisashi Sogabe\nSousuke Tamada\n\n$" .align 2 -gUnknown_841D370:: @ 0x841D36D +gUnknown_841D370:: @ 0x841D370 .string "Graphic Designers\n\n\n\n\n\n$" .align 2 @@ -3376,7 +3376,7 @@ gUnknown_841D388:: @ 0x841D388 .string "\nTakao Unno\nAsuka Iwashita\nKanako Eo\nHiroki Fuchino\n\n$" .align 2 -gUnknown_841D3C0:: @ 0x841D3BE +gUnknown_841D3C0:: @ 0x841D3C0 .string "\nGraphic Designers\n\n\n\n\n$" .align 2 @@ -3384,7 +3384,7 @@ gUnknown_841D3D8:: @ 0x841D3D8 .string "\n\nKen Sugimori\nHironobu Yoshida\n\n\n$" .align 2 -gUnknown_841D3FC:: @ 0x841D3FB +gUnknown_841D3FC:: @ 0x841D3FC .string "\nMusic Composition\n\n\n\n\n$" .align 2 @@ -3400,23 +3400,23 @@ gUnknown_841D448:: @ 0x841D448 .string "\n\n\nGo Ichinose\n\n\n$" .align 2 -gUnknown_841D45C:: @ 0x841D45A +gUnknown_841D45C:: @ 0x841D45C .string "\nGame Designers\n\n\n\n\n$" .align 2 -gUnknown_841D474:: @ 0x841D471 +gUnknown_841D474:: @ 0x841D474 .string "\n\nJunichi Masuda\nKoji Nishino\nTetsuji Ohta\n\n$" .align 2 -gUnknown_841D4A4:: @ 0x841D4A1 +gUnknown_841D4A4:: @ 0x841D4A4 .string "\nGame Designers\n\n\n\n\n$" .align 2 -gUnknown_841D4BC:: @ 0x841D4B9 +gUnknown_841D4BC:: @ 0x841D4BC .string "\n\nHitomi Sato\nShigeru Ohmori\nTadashi Takahashi\n\n$" .align 2 -gUnknown_841D4F0:: @ 0x841D4ED +gUnknown_841D4F0:: @ 0x841D4F0 .string "\nGame Scenario\n\n\n\n\n$" .align 2 @@ -3428,27 +3428,27 @@ gUnknown_841D524:: @ 0x841D524 .string "\nScript Designer\n\nMap Designer\n\n\n$" .align 2 -gUnknown_841D548:: @ 0x841D546 +gUnknown_841D548:: @ 0x841D548 .string "\n\nSatoshi Nohara\n\nShigeru Ohmori\n\n$" .align 2 -gUnknown_841D56C:: @ 0x841D56B +gUnknown_841D56C:: @ 0x841D56C .string "\nParametric Designers\n\n\n\n\n$" .align 2 -gUnknown_841D588:: @ 0x841D587 +gUnknown_841D588:: @ 0x841D588 .string "\n\nKoji Nishino\nTetsuji Ohta\nShigeki Morimoto\n\n$" .align 2 -gUnknown_841D5B8:: @ 0x841D5B7 +gUnknown_841D5B8:: @ 0x841D5B8 .string "\n\nPOKéDEX Text\n\n\n\n$" .align 2 -gUnknown_841D5CC:: @ 0x841D5CB +gUnknown_841D5CC:: @ 0x841D5CC .string "\n\n\nKenji Matsushima\n\n\n$" .align 2 -gUnknown_841D5E4:: @ 0x841D5E3 +gUnknown_841D5E4:: @ 0x841D5E4 .string "POKéMON Designers\n\n\n\n\n\n$" .align 2 @@ -3464,7 +3464,7 @@ gUnknown_841D658:: @ 0x841D658 .string "\nSatoshi Ohta\nAsuka Iwashita\nTakao Unno\nKanako Eo\nAimi Tomita\n$" .align 2 -gUnknown_841D698:: @ 0x841D697 +gUnknown_841D698:: @ 0x841D698 .string "POKéMON Designers\n\n\n\n\n\n$" .align 2 @@ -3472,11 +3472,11 @@ gUnknown_841D6B0:: @ 0x841D6B0 .string "\nAtsuko Nishida\nMuneo Saito\nRena Yoshikawa\nJun Okutani\n\n$" .align 2 -gUnknown_841D6EC:: @ 0x841D6E9 +gUnknown_841D6EC:: @ 0x841D6EC .string "Supporting Programmers\n\n\n\n$" .align 2 -gUnknown_841D708:: @ 0x841D707 +gUnknown_841D708:: @ 0x841D708 .string "\nTeruyuki Yoshioka\nTakao Nakano\n\nSatoshi Mitsuhara\nDaisuke Hoshino\n$" .align 2 @@ -3484,31 +3484,31 @@ gUnknown_841D74C:: @ 0x841D74C .string "\n\nNCL Product Testing\n\n\n\n$" .align 2 -gUnknown_841D768:: @ 0x841D766 +gUnknown_841D768:: @ 0x841D768 .string "\n\n\nNCL Super Mario Club\n\n\n$" .align 2 -gUnknown_841D784:: @ 0x841D783 +gUnknown_841D784:: @ 0x841D784 .string "Special Thanks\n\n\n\n\n\n$" .align 2 -gUnknown_841D79C:: @ 0x841D799 +gUnknown_841D79C:: @ 0x841D79C .string "\nHiro Nakamura\nHiroyuki Uesugi\nTeruki Murakawa\n\nKazuya Suyama\n$" .align 2 -gUnknown_841D7DC:: @ 0x841D7DB +gUnknown_841D7DC:: @ 0x841D7DC .string "Special Thanks\n\n\n\n\n\n$" .align 2 -gUnknown_841D7F4:: @ 0x841D7F1 +gUnknown_841D7F4:: @ 0x841D7F4 .string "\nKenji Tominaga\n\nKenjiro Ito\nTomotaka Komura\nMichiko Takizawa\n$" .align 2 -gUnknown_841D834:: @ 0x841D833 +gUnknown_841D834:: @ 0x841D834 .string "Special Thanks\n\n\n\n\n\n$" .align 2 -gUnknown_841D84C:: @ 0x841D849 +gUnknown_841D84C:: @ 0x841D84C .string "\nMakiko Takada\nMikiko Ohashi\nShusaku Egami\nTakanao Kondo\nRui Kawaguchi\n$" .align 2 @@ -3516,7 +3516,7 @@ gUnknown_841D894:: @ 0x841D894 .string "\n\nBraille Code Check\n\n\n\n$" .align 2 -gUnknown_841D8B0:: @ 0x841D8AD +gUnknown_841D8B0:: @ 0x841D8B0 .string "\n\n\nJapan Braille Library\n\n\n$" .align 2 @@ -3524,19 +3524,19 @@ gUnknown_841D8CC:: @ 0x841D8CC .string "Information Supervisors\n\n\n\n\n\n$" .align 2 -gUnknown_841D8EC:: @ 0x841D8EA +gUnknown_841D8EC:: @ 0x841D8EC .string "\nHiroki Enomoto\nKazuyuki Terada\nYuri Sakurai\nYumi Funasaka\nNaoko Yanase\n$" .align 2 -gUnknown_841D938:: @ 0x841D935 +gUnknown_841D938:: @ 0x841D938 .string "Coordinators\n\n\n\n\n\n$" .align 2 -gUnknown_841D94C:: @ 0x841D94B +gUnknown_841D94C:: @ 0x841D94C .string "\nAzusa Tajima\nAkira Kinashi\nKazuki Yoshihara\n\nRetsuji Nomoto\n$" .align 2 -gUnknown_841D98C:: @ 0x841D98A +gUnknown_841D98C:: @ 0x841D98C .string "\nTask Managers\n\n\n\n\n$" .align 2 @@ -3552,27 +3552,27 @@ gUnknown_841D9D4:: @ 0x841D9D4 .string "\n\nHiroyuki Jinnai\nTakehiro Izushi\nHiroaki Tsuru\n\n$" .align 2 -gUnknown_841DA08:: @ 0x841DA06 +gUnknown_841DA08:: @ 0x841DA08 .string "\n\nExecutive Director\n\n\n\n$" .align 2 -gUnknown_841DA24:: @ 0x841DA21 +gUnknown_841DA24:: @ 0x841DA24 .string "\n\n\nSatoshi Tajiri\n\n\n$" .align 2 -gUnknown_841DA3C:: @ 0x841DA39 +gUnknown_841DA3C:: @ 0x841DA3C .string "\n\nExecutive Producer\n\n\n\n$" .align 2 -gUnknown_841DA58:: @ 0x841DA55 +gUnknown_841DA58:: @ 0x841DA58 .string "\n\n\nSatoru Iwata\n\n\n$" .align 2 -gUnknown_841DA6C:: @ 0x841DA6B +gUnknown_841DA6C:: @ 0x841DA6C .string "\n\nExecutive Producer\n\n\n\n$" .align 2 -gUnknown_841DA88:: @ 0x841DA85 +gUnknown_841DA88:: @ 0x841DA88 .string "\n\n\nTsunekaz Ishihara\n\n\n$" .align 2 @@ -3580,11 +3580,11 @@ gUnknown_841DAA0:: @ 0x841DAA0 .string "\nEnglish Version Coordinators\n\n\n\n\n$" .align 2 -gUnknown_841DAC4:: @ 0x841DAC3 +gUnknown_841DAC4:: @ 0x841DAC4 .string "\n\nHiro Nakamura\nSeth McMahill\n\n\n$" .align 2 -gUnknown_841DAE8:: @ 0x841DAE5 +gUnknown_841DAE8:: @ 0x841DAE8 .string "\nTranslator\n\nText Editor\n\n\n$" .align 2 @@ -3596,31 +3596,31 @@ gUnknown_841DB28:: @ 0x841DB28 .string "Programmers\n\n\n\n\n\n$" .align 2 -gUnknown_841DB3C:: @ 0x841DB3A +gUnknown_841DB3C:: @ 0x841DB3C .string "\nTeruki Murakawa\nSouichi Yamamoto\nYuichiro Ito\nAkira Kinashi\n\n$" .align 2 -gUnknown_841DB7C:: @ 0x841DB7B +gUnknown_841DB7C:: @ 0x841DB7C .string "\nEnvironment を Tool Programmers\n\n\n\n\n$" .align 2 -gUnknown_841DBA4:: @ 0x841DBA1 +gUnknown_841DBA4:: @ 0x841DBA4 .string "\n\nTeruki Murakawa\nSouichi Yamamoto\nKimiko Nakamichi\n\n$" .align 2 -gUnknown_841DBDC:: @ 0x841DBDA +gUnknown_841DBDC:: @ 0x841DBDC .string "NOA Product Testing\n\n\n\n\n\n$" .align 2 -gUnknown_841DBF8:: @ 0x841DBF6 +gUnknown_841DBF8:: @ 0x841DBF8 .string "\nThomas Hertzog\nKathy Huguenard\nMika Kurosawa\n\n\n$" .align 2 -gUnknown_841DC2C:: @ 0x841DC29 +gUnknown_841DC2C:: @ 0x841DC2C .string "Braille Code Check\n\n\n\n\n\n$" .align 2 -gUnknown_841DC48:: @ 0x841DC45 +gUnknown_841DC48:: @ 0x841DC48 .string "\nNational Federation\n{CLEAR_TO 0x13}of the Blind\nPatricia A. Maurer\nJapan Braille Library\nEuropean Blind Union\n$" .align 2 @@ -3628,15 +3628,15 @@ gUnknown_841DCAC:: @ 0x841DCAC .string "\nBraille Code Check\n\n\n\n\n$" .align 2 -gUnknown_841DCC8:: @ 0x841DCC5 +gUnknown_841DCC8:: @ 0x841DCC8 .string "\n\nNational Information Library\n{CLEAR_TO 0x2D}Service\nMargaret Campion\n\n$" .align 2 -gUnknown_841DD08:: @ 0x841DD05 +gUnknown_841DD08:: @ 0x841DD08 .string "Special Thanks\n\n\n\n\n\n$" .align 2 -gUnknown_841DD20:: @ 0x841DD1D +gUnknown_841DD20:: @ 0x841DD20 .string "\nTakehiro Izushi\nMotoyasu Tojima\nHitoshi Yamagami\nHiroyuki Uesugi\n\n$" .align 2 @@ -3644,23 +3644,23 @@ gUnknown_841DD64:: @ 0x841DD64 .string "Special Thanks\n\n\n\n\n\n$" .align 2 -gUnknown_841DD7C:: @ 0x841DD79 +gUnknown_841DD7C:: @ 0x841DD7C .string "\nNicola Pratt-Barlow\nShellie Dow\nAnthony Howitt\nNaoko Saeki\nKyoko Onishi\n$" .align 2 -gUnknown_841DDC8:: @ 0x841DDC6 +gUnknown_841DDC8:: @ 0x841DDC8 .string "\nBraille Code Check\n\n\n\n\n$" .align 2 -gUnknown_841DDE4:: @ 0x841DDE1 +gUnknown_841DDE4:: @ 0x841DDE4 .string "\n\nThe Royal New Zealand\nFoundation of the Blind\nGreg Moran\n\n$" .align 2 -gUnknown_841DE24:: @ 0x841DE21 +gUnknown_841DE24:: @ 0x841DE24 .string "\n\nGraphic Designer\n\n\n\n$" .align 2 -gUnknown_841DE3C:: @ 0x841DE3B +gUnknown_841DE3C:: @ 0x841DE3C .string "\n\n\nAkira Kinashi\n\n\n$" gJPText_MysteryGift:: @ 841DE50 From e0b3642edcbc7a1d713ca704686e11647fa8a6cc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 25 Sep 2019 13:41:43 -0400 Subject: [PATCH 6/6] Rename credits strings and document script --- asm/battle_setup.s | 4 +- asm/pokemon_summary_screen.s | 6 +- data/strings.s | 170 ++++++++++---------- include/strings.h | 170 ++++++++++---------- src/credits.c | 295 ++++++++++++++++++++++------------- 5 files changed, 361 insertions(+), 284 deletions(-) diff --git a/asm/battle_setup.s b/asm/battle_setup.s index 787b0fb8e..c5b4510b7 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -2107,12 +2107,12 @@ sub_80806C8: @ 80806C8 push {lr} cmp r0, 0 bne _080806D0 - ldr r0, _080806D4 @ =gUnknown_84161CD + ldr r0, _080806D4 @ =gString_Dummy _080806D0: pop {r1} bx r1 .align 2, 0 -_080806D4: .4byte gUnknown_84161CD +_080806D4: .4byte gString_Dummy thumb_func_end sub_80806C8 thumb_func_start sub_80806D8 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index ce3a4dbc6..fad7e397a 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -3476,7 +3476,7 @@ _0813622C: ldr r0, [r6] ldr r2, _08136308 @ =0x00003084 adds r0, r2 - ldr r1, _0813630C @ =gUnknown_84161CD + ldr r1, _0813630C @ =gString_Dummy bl StringCopy _08136238: cmp r4, 0x20 @@ -3498,7 +3498,7 @@ _08136240: ldr r0, [r5] ldr r1, _08136308 @ =0x00003084 adds r0, r1 - ldr r1, _0813630C @ =gUnknown_84161CD + ldr r1, _0813630C @ =gString_Dummy bl StringCopy _08136264: ldr r6, _08136310 @ =gUnknown_203B140 @@ -3572,7 +3572,7 @@ _08136264: b _08136342 .align 2, 0 _08136308: .4byte 0x00003084 -_0813630C: .4byte gUnknown_84161CD +_0813630C: .4byte gString_Dummy _08136310: .4byte gUnknown_203B140 _08136314: .4byte 0x00003034 _08136318: .4byte gSpeciesNames diff --git a/data/strings.s b/data/strings.s index 67c286052..603bce34f 100644 --- a/data/strings.s +++ b/data/strings.s @@ -393,7 +393,7 @@ gFameCheckerText_Cancel:: @ 84161C1 gOtherText_Exit:: @ 84161C8 .string "EXIT$" -gUnknown_84161CD:: @ 84161CD +gString_Dummy:: @ 84161CD .string "$" gUnknown_84161CE:: @@ -3328,339 +3328,339 @@ gString_PokemonLeafGreen_Staff:: @ 0x841D1B8 .string "Pokémon LeafGreen Version\nStaff$" .align 2 -gUnknown_841D1D8:: @ 0x841D1D8 +gCreditsString_Director:: @ 0x841D1D8 .string "\n\nDirector\n\n\n\n$" .align 2 -gUnknown_841D1E8:: @ 0x841D1E8 +gCreditsString_Junichi_Masuda:: @ 0x841D1E8 .string "\n\n\nJunichi Masuda\n\n\n$" .align 2 -gUnknown_841D200:: @ 0x841D200 +gCreditsString_Art_Director_Battle_Director:: @ 0x841D200 .string "\nArt Director\n\nBattle Director\n\n\n$" .align 2 -gUnknown_841D224:: @ 0x841D224 +gCreditsString_Ken_Sugimori_Shigeki_Morimoto:: @ 0x841D224 .string "\n\nKen Sugimori\n\nShigeki Morimoto\n\n$" .align 2 -gUnknown_841D248:: @ 0x841D248 +gCreditsString_Program_Leader_Planning_Leader_Graphic_Design_Leader:: @ 0x841D248 .string "Program Leader\n\nPlanning Leader\n\nGraphic Design Leader\n\n$" .align 2 -gUnknown_841D284:: @ 0x841D284 +gCreditsString_Tetsuya_Watanabe_Koji_Nishino_Takao_Unno:: @ 0x841D284 .string "\nTetsuya Watanabe\n\nKoji Nishino\n\nTakao Unno\n$" .align 2 -gUnknown_841D2B4:: @ 0x841D2B4 +gCreditsString_Programmers:: @ 0x841D2B4 .string "Programmers\n\n\n\n\n$" .align 2 -gUnknown_841D2C8:: @ 0x841D2C8 +gCreditsString_Hiroyuki_Nakamura_Masao_Taya_Satoshi_Nohara_Miyuki_Iwasawa_Daisuke_Goto:: @ 0x841D2C8 .string "\nHiroyuki Nakamura\nMasao Taya\nSatoshi Nohara\nMiyuki Iwasawa\nDaisuke Goto\n$" .align 2 -gUnknown_841D314:: @ 0x841D314 +gCreditsString_System_Programmers:: @ 0x841D314 .string "System Programmers\n\n\n\n\n\n$" .align 2 -gUnknown_841D330:: @ 0x841D330 +gCreditsString_Tetsuya_Watanabe_Akito_Mori_Hisashi_Sogabe_Sousuke_Tamada:: @ 0x841D330 .string "\nTetsuya Watanabe\nAkito Mori\nHisashi Sogabe\nSousuke Tamada\n\n$" .align 2 -gUnknown_841D370:: @ 0x841D370 +gCreditsString_Graphic_Designers:: @ 0x841D370 .string "Graphic Designers\n\n\n\n\n\n$" .align 2 -gUnknown_841D388:: @ 0x841D388 +gCreditsString_Takao_Unno_Asuka_Iwashita_Kanako_Eo_Hiroki_Fuchino:: @ 0x841D388 .string "\nTakao Unno\nAsuka Iwashita\nKanako Eo\nHiroki Fuchino\n\n$" .align 2 -gUnknown_841D3C0:: @ 0x841D3C0 +gCreditsString_Graphic_Designers_2:: @ 0x841D3C0 .string "\nGraphic Designers\n\n\n\n\n$" .align 2 -gUnknown_841D3D8:: @ 0x841D3D8 +gCreditsString_Ken_Sugimori_Hironobu_Yoshida:: @ 0x841D3D8 .string "\n\nKen Sugimori\nHironobu Yoshida\n\n\n$" .align 2 -gUnknown_841D3FC:: @ 0x841D3FC +gCreditsString_Music_Composition:: @ 0x841D3FC .string "\nMusic Composition\n\n\n\n\n$" .align 2 -gUnknown_841D414:: @ 0x841D414 +gCreditsString_Go_Ichinose_Junichi_Masuda:: @ 0x841D414 .string "\n\nGo Ichinose\nJunichi Masuda\n\n\n$" .align 2 -gUnknown_841D434:: @ 0x841D434 +gCreditsString_Sound_Effects:: @ 0x841D434 .string "\n\nSound Effects\n\n\n\n$" .align 2 -gUnknown_841D448:: @ 0x841D448 +gCreditsString_Go_Ichinose:: @ 0x841D448 .string "\n\n\nGo Ichinose\n\n\n$" .align 2 -gUnknown_841D45C:: @ 0x841D45C +gCreditsString_Game_Designers:: @ 0x841D45C .string "\nGame Designers\n\n\n\n\n$" .align 2 -gUnknown_841D474:: @ 0x841D474 +gCreditsString_Junichi_Masuda_Koji_Nishino_Tetsuji_Ohta:: @ 0x841D474 .string "\n\nJunichi Masuda\nKoji Nishino\nTetsuji Ohta\n\n$" .align 2 -gUnknown_841D4A4:: @ 0x841D4A4 +gCreditsString_Game_Designers_2:: @ 0x841D4A4 .string "\nGame Designers\n\n\n\n\n$" .align 2 -gUnknown_841D4BC:: @ 0x841D4BC +gCreditsString_Hitomi_Sato_Shigeru_Ohmori_Tadashi_Takahashi:: @ 0x841D4BC .string "\n\nHitomi Sato\nShigeru Ohmori\nTadashi Takahashi\n\n$" .align 2 -gUnknown_841D4F0:: @ 0x841D4F0 +gCreditsString_Game_Scenario:: @ 0x841D4F0 .string "\nGame Scenario\n\n\n\n\n$" .align 2 -gUnknown_841D504:: @ 0x841D504 +gCreditsString_Hitomi_Sato_Satoshi_Tajiri:: @ 0x841D504 .string "\n\nHitomi Sato\nSatoshi Tajiri\n\n\n$" .align 2 -gUnknown_841D524:: @ 0x841D524 +gCreditsString_Script_Designer_Map_Designer:: @ 0x841D524 .string "\nScript Designer\n\nMap Designer\n\n\n$" .align 2 -gUnknown_841D548:: @ 0x841D548 +gCreditsString_Satoshi_Nohara_Shigeru_Ohmori:: @ 0x841D548 .string "\n\nSatoshi Nohara\n\nShigeru Ohmori\n\n$" .align 2 -gUnknown_841D56C:: @ 0x841D56C +gCreditsString_Parametric_Designers:: @ 0x841D56C .string "\nParametric Designers\n\n\n\n\n$" .align 2 -gUnknown_841D588:: @ 0x841D588 +gCreditsString_Koji_Nishino_Tetsuji_Ohta_Shigeki_Morimoto:: @ 0x841D588 .string "\n\nKoji Nishino\nTetsuji Ohta\nShigeki Morimoto\n\n$" .align 2 -gUnknown_841D5B8:: @ 0x841D5B8 +gCreditsString_POKeDEX_Text:: @ 0x841D5B8 .string "\n\nPOKéDEX Text\n\n\n\n$" .align 2 -gUnknown_841D5CC:: @ 0x841D5CC +gCreditsString_Kenji_Matsushima:: @ 0x841D5CC .string "\n\n\nKenji Matsushima\n\n\n$" .align 2 -gUnknown_841D5E4:: @ 0x841D5E4 +gCreditsString_POKeMON_Designers:: @ 0x841D5E4 .string "POKéMON Designers\n\n\n\n\n\n$" .align 2 -gUnknown_841D5FC:: @ 0x841D5FC +gCreditsString_Ken_Sugimori_Motofumi_Fujiwara_Shigeki_Morimoto_Hironobu_Yoshida:: @ 0x841D5FC .string "\nKen Sugimori\nMotofumi Fujiwara\nShigeki Morimoto\nHironobu Yoshida\n\n$" .align 2 -gUnknown_841D640:: @ 0x841D640 +gCreditsString_POKeMON_Designers_2:: @ 0x841D640 .string "POKéMON Designers\n\n\n\n\n\n$" .align 2 -gUnknown_841D658:: @ 0x841D658 +gCreditsString_Satoshi_Ohta_Asuka_Iwashita_Takao_Unno_Kanako_Eo_Aimi_Tomita:: @ 0x841D658 .string "\nSatoshi Ohta\nAsuka Iwashita\nTakao Unno\nKanako Eo\nAimi Tomita\n$" .align 2 -gUnknown_841D698:: @ 0x841D698 +gCreditsString_POKeMON_Designers_3:: @ 0x841D698 .string "POKéMON Designers\n\n\n\n\n\n$" .align 2 -gUnknown_841D6B0:: @ 0x841D6B0 +gCreditsString_Atsuko_Nishida_Muneo_Saito_Rena_Yoshikawa_Jun_Okutani:: @ 0x841D6B0 .string "\nAtsuko Nishida\nMuneo Saito\nRena Yoshikawa\nJun Okutani\n\n$" .align 2 -gUnknown_841D6EC:: @ 0x841D6EC +gCreditsString_Supporting_Programmers:: @ 0x841D6EC .string "Supporting Programmers\n\n\n\n$" .align 2 -gUnknown_841D708:: @ 0x841D708 +gCreditsString_Teruyuki_Yoshioka_Takao_Nakano_Satoshi_Mitsuhara_Daisuke_Hoshino:: @ 0x841D708 .string "\nTeruyuki Yoshioka\nTakao Nakano\n\nSatoshi Mitsuhara\nDaisuke Hoshino\n$" .align 2 -gUnknown_841D74C:: @ 0x841D74C +gCreditsString_NCL_Product_Testing:: @ 0x841D74C .string "\n\nNCL Product Testing\n\n\n\n$" .align 2 -gUnknown_841D768:: @ 0x841D768 +gCreditsString_NCL_Super_Mario_Club:: @ 0x841D768 .string "\n\n\nNCL Super Mario Club\n\n\n$" .align 2 -gUnknown_841D784:: @ 0x841D784 +gCreditsString_Special_Thanks:: @ 0x841D784 .string "Special Thanks\n\n\n\n\n\n$" .align 2 -gUnknown_841D79C:: @ 0x841D79C +gCreditsString_Hiro_Nakamura_Hiroyuki_Uesugi_Teruki_Murakawa_Kazuya_Suyama:: @ 0x841D79C .string "\nHiro Nakamura\nHiroyuki Uesugi\nTeruki Murakawa\n\nKazuya Suyama\n$" .align 2 -gUnknown_841D7DC:: @ 0x841D7DC +gCreditsString_Special_Thanks_2:: @ 0x841D7DC .string "Special Thanks\n\n\n\n\n\n$" .align 2 -gUnknown_841D7F4:: @ 0x841D7F4 +gCreditsString_Kenji_Tominaga_Kenjiro_Ito_Tomotaka_Komura_Michiko_Takizawa:: @ 0x841D7F4 .string "\nKenji Tominaga\n\nKenjiro Ito\nTomotaka Komura\nMichiko Takizawa\n$" .align 2 -gUnknown_841D834:: @ 0x841D834 +gCreditsString_Special_Thanks_3:: @ 0x841D834 .string "Special Thanks\n\n\n\n\n\n$" .align 2 -gUnknown_841D84C:: @ 0x841D84C +gCreditsString_Makiko_Takada_Mikiko_Ohashi_Shusaku_Egami_Takanao_Kondo_Rui_Kawaguchi:: @ 0x841D84C .string "\nMakiko Takada\nMikiko Ohashi\nShusaku Egami\nTakanao Kondo\nRui Kawaguchi\n$" .align 2 -gUnknown_841D894:: @ 0x841D894 +gCreditsString_Braille_Code_Check:: @ 0x841D894 .string "\n\nBraille Code Check\n\n\n\n$" .align 2 -gUnknown_841D8B0:: @ 0x841D8B0 +gCreditsString_Japan_Braille_Library:: @ 0x841D8B0 .string "\n\n\nJapan Braille Library\n\n\n$" .align 2 -gUnknown_841D8CC:: @ 0x841D8CC +gCreditsString_Information_Supervisors:: @ 0x841D8CC .string "Information Supervisors\n\n\n\n\n\n$" .align 2 -gUnknown_841D8EC:: @ 0x841D8EC +gCreditsString_Hiroki_Enomoto_Kazuyuki_Terada_Yuri_Sakurai_Yumi_Funasaka_Naoko_Yanase:: @ 0x841D8EC .string "\nHiroki Enomoto\nKazuyuki Terada\nYuri Sakurai\nYumi Funasaka\nNaoko Yanase\n$" .align 2 -gUnknown_841D938:: @ 0x841D938 +gCreditsString_Coordinators:: @ 0x841D938 .string "Coordinators\n\n\n\n\n\n$" .align 2 -gUnknown_841D94C:: @ 0x841D94C +gCreditsString_Azusa_Tajima_Akira_Kinashi_Kazuki_Yoshihara_Retsuji_Nomoto:: @ 0x841D94C .string "\nAzusa Tajima\nAkira Kinashi\nKazuki Yoshihara\n\nRetsuji Nomoto\n$" .align 2 -gUnknown_841D98C:: @ 0x841D98C +gCreditsString_Task_Managers:: @ 0x841D98C .string "\nTask Managers\n\n\n\n\n$" .align 2 -gUnknown_841D9A0:: @ 0x841D9A0 +gCreditsString_Hitoshi_Yamagami_Gakuji_Nomoto:: @ 0x841D9A0 .string "\n\nHitoshi Yamagami\nGakuji Nomoto\n\n\n$" .align 2 -gUnknown_841D9C4:: @ 0x841D9C4 +gCreditsString_Producers:: @ 0x841D9C4 .string "\nProducers\n\n\n\n\n$" .align 2 -gUnknown_841D9D4:: @ 0x841D9D4 +gCreditsString_Hiroyuki_Jinnai_Takehiro_Izushi_Hiroaki_Tsuru:: @ 0x841D9D4 .string "\n\nHiroyuki Jinnai\nTakehiro Izushi\nHiroaki Tsuru\n\n$" .align 2 -gUnknown_841DA08:: @ 0x841DA08 +gCreditsString_Executive_Director:: @ 0x841DA08 .string "\n\nExecutive Director\n\n\n\n$" .align 2 -gUnknown_841DA24:: @ 0x841DA24 +gCreditsString_Satoshi_Tajiri:: @ 0x841DA24 .string "\n\n\nSatoshi Tajiri\n\n\n$" .align 2 -gUnknown_841DA3C:: @ 0x841DA3C +gCreditsString_Executive_Producer:: @ 0x841DA3C .string "\n\nExecutive Producer\n\n\n\n$" .align 2 -gUnknown_841DA58:: @ 0x841DA58 +gCreditsString_Satoru_Iwata:: @ 0x841DA58 .string "\n\n\nSatoru Iwata\n\n\n$" .align 2 -gUnknown_841DA6C:: @ 0x841DA6C +gCreditsString_Executive_Producer_2:: @ 0x841DA6C .string "\n\nExecutive Producer\n\n\n\n$" .align 2 -gUnknown_841DA88:: @ 0x841DA88 +gCreditsString_Tsunekaz_Ishihara:: @ 0x841DA88 .string "\n\n\nTsunekaz Ishihara\n\n\n$" .align 2 -gUnknown_841DAA0:: @ 0x841DAA0 +gCreditsString_English_Version_Coordinators:: @ 0x841DAA0 .string "\nEnglish Version Coordinators\n\n\n\n\n$" .align 2 -gUnknown_841DAC4:: @ 0x841DAC4 +gCreditsString_Hiro_Nakamura_Seth_McMahill:: @ 0x841DAC4 .string "\n\nHiro Nakamura\nSeth McMahill\n\n\n$" .align 2 -gUnknown_841DAE8:: @ 0x841DAE8 +gCreditsString_Translator_Text_Editor:: @ 0x841DAE8 .string "\nTranslator\n\nText Editor\n\n\n$" .align 2 -gUnknown_841DB04:: @ 0x841DB04 +gCreditsString_Nob_Ogasawara_Teresa_Lillygren:: @ 0x841DB04 .string "\n\nNob Ogasawara\n\nTeresa Lillygren\n\n$" .align 2 -gUnknown_841DB28:: @ 0x841DB28 +gCreditsString_Programmers_2:: @ 0x841DB28 .string "Programmers\n\n\n\n\n\n$" .align 2 -gUnknown_841DB3C:: @ 0x841DB3C +gCreditsString_Teruki_Murakawa_Souichi_Yamamoto_Yuichiro_Ito_Akira_Kinashi:: @ 0x841DB3C .string "\nTeruki Murakawa\nSouichi Yamamoto\nYuichiro Ito\nAkira Kinashi\n\n$" .align 2 -gUnknown_841DB7C:: @ 0x841DB7C +gCreditsString_Environment_Tool_Programmers:: @ 0x841DB7C .string "\nEnvironment を Tool Programmers\n\n\n\n\n$" .align 2 -gUnknown_841DBA4:: @ 0x841DBA4 +gCreditsString_Teruki_Murakawa_Souichi_Yamamoto_Kimiko_Nakamichi:: @ 0x841DBA4 .string "\n\nTeruki Murakawa\nSouichi Yamamoto\nKimiko Nakamichi\n\n$" .align 2 -gUnknown_841DBDC:: @ 0x841DBDC +gCreditsString_NOA_Product_Testing:: @ 0x841DBDC .string "NOA Product Testing\n\n\n\n\n\n$" .align 2 -gUnknown_841DBF8:: @ 0x841DBF8 +gCreditsString_Thomas_Hertzog_Kathy_Huguenard_Mika_Kurosawa:: @ 0x841DBF8 .string "\nThomas Hertzog\nKathy Huguenard\nMika Kurosawa\n\n\n$" .align 2 -gUnknown_841DC2C:: @ 0x841DC2C +gCreditsString_Braille_Code_Check_2:: @ 0x841DC2C .string "Braille Code Check\n\n\n\n\n\n$" .align 2 -gUnknown_841DC48:: @ 0x841DC48 +gCreditsString_National_Federation_of_the_Blind_Patricia_A_Maurer_Japan_Braille_Library_European_Blind_Union:: @ 0x841DC48 .string "\nNational Federation\n{CLEAR_TO 0x13}of the Blind\nPatricia A. Maurer\nJapan Braille Library\nEuropean Blind Union\n$" .align 2 -gUnknown_841DCAC:: @ 0x841DCAC +gCreditsString_Braille_Code_Check_3:: @ 0x841DCAC .string "\nBraille Code Check\n\n\n\n\n$" .align 2 -gUnknown_841DCC8:: @ 0x841DCC8 +gCreditsString_National_Information_Library_Service_Margaret_Campion:: @ 0x841DCC8 .string "\n\nNational Information Library\n{CLEAR_TO 0x2D}Service\nMargaret Campion\n\n$" .align 2 -gUnknown_841DD08:: @ 0x841DD08 +gCreditsString_Special_Thanks_4:: @ 0x841DD08 .string "Special Thanks\n\n\n\n\n\n$" .align 2 -gUnknown_841DD20:: @ 0x841DD20 +gCreditsString_Takehiro_Izushi_Motoyasu_Tojima_Hitoshi_Yamagami_Hiroyuki_Uesugi:: @ 0x841DD20 .string "\nTakehiro Izushi\nMotoyasu Tojima\nHitoshi Yamagami\nHiroyuki Uesugi\n\n$" .align 2 -gUnknown_841DD64:: @ 0x841DD64 +gCreditsString_Special_Thanks_5:: @ 0x841DD64 .string "Special Thanks\n\n\n\n\n\n$" .align 2 -gUnknown_841DD7C:: @ 0x841DD7C +gCreditsString_Nicola_Pratt_Barlow_Shellie_Dow_Anthony_Howitt_Naoko_Saeki_Kyoko_Onishi:: @ 0x841DD7C .string "\nNicola Pratt-Barlow\nShellie Dow\nAnthony Howitt\nNaoko Saeki\nKyoko Onishi\n$" .align 2 -gUnknown_841DDC8:: @ 0x841DDC8 +gCreditsString_Braille_Code_Check_4:: @ 0x841DDC8 .string "\nBraille Code Check\n\n\n\n\n$" .align 2 -gUnknown_841DDE4:: @ 0x841DDE4 +gCreditsString_The_Royal_New_Zealand_Foundation_of_the_Blind_Greg_Moran:: @ 0x841DDE4 .string "\n\nThe Royal New Zealand\nFoundation of the Blind\nGreg Moran\n\n$" .align 2 -gUnknown_841DE24:: @ 0x841DE24 +gCreditsString_Graphic_Designer:: @ 0x841DE24 .string "\n\nGraphic Designer\n\n\n\n$" .align 2 -gUnknown_841DE3C:: @ 0x841DE3C +gCreditsString_Akira_Kinashi:: @ 0x841DE3C .string "\n\n\nAkira Kinashi\n\n\n$" gJPText_MysteryGift:: @ 841DE50 diff --git a/include/strings.h b/include/strings.h index 9f521a65e..21a44d072 100644 --- a/include/strings.h +++ b/include/strings.h @@ -209,92 +209,92 @@ extern const u8 gString_QuitPlaying[]; extern const u8 gString_SlotMachineControls[]; // credits -extern const u8 gUnknown_84161CD[]; +extern const u8 gString_Dummy[]; extern const u8 gString_PokemonFireRed_Staff[]; // FR extern const u8 gString_PokemonLeafGreen_Staff[]; // LG -extern const u8 gUnknown_841D1D8[]; -extern const u8 gUnknown_841D1E8[]; -extern const u8 gUnknown_841D200[]; -extern const u8 gUnknown_841D224[]; -extern const u8 gUnknown_841D248[]; -extern const u8 gUnknown_841D284[]; -extern const u8 gUnknown_841D2B4[]; -extern const u8 gUnknown_841D2C8[]; -extern const u8 gUnknown_841D314[]; -extern const u8 gUnknown_841D330[]; -extern const u8 gUnknown_841D370[]; -extern const u8 gUnknown_841D388[]; -extern const u8 gUnknown_841D3C0[]; -extern const u8 gUnknown_841D3D8[]; -extern const u8 gUnknown_841D3FC[]; -extern const u8 gUnknown_841D414[]; -extern const u8 gUnknown_841D434[]; -extern const u8 gUnknown_841D448[]; -extern const u8 gUnknown_841D45C[]; -extern const u8 gUnknown_841D474[]; -extern const u8 gUnknown_841D4A4[]; -extern const u8 gUnknown_841D4BC[]; -extern const u8 gUnknown_841D4F0[]; -extern const u8 gUnknown_841D504[]; -extern const u8 gUnknown_841D524[]; -extern const u8 gUnknown_841D548[]; -extern const u8 gUnknown_841D56C[]; -extern const u8 gUnknown_841D588[]; -extern const u8 gUnknown_841D5B8[]; -extern const u8 gUnknown_841D5CC[]; -extern const u8 gUnknown_841D5E4[]; -extern const u8 gUnknown_841D5FC[]; -extern const u8 gUnknown_841D640[]; -extern const u8 gUnknown_841D658[]; -extern const u8 gUnknown_841D698[]; -extern const u8 gUnknown_841D6B0[]; -extern const u8 gUnknown_841D6EC[]; -extern const u8 gUnknown_841D708[]; -extern const u8 gUnknown_841D74C[]; -extern const u8 gUnknown_841D768[]; -extern const u8 gUnknown_841D784[]; -extern const u8 gUnknown_841D79C[]; -extern const u8 gUnknown_841D7DC[]; -extern const u8 gUnknown_841D7F4[]; -extern const u8 gUnknown_841D834[]; -extern const u8 gUnknown_841D84C[]; -extern const u8 gUnknown_841D894[]; -extern const u8 gUnknown_841D8B0[]; -extern const u8 gUnknown_841D8CC[]; -extern const u8 gUnknown_841D8EC[]; -extern const u8 gUnknown_841D938[]; -extern const u8 gUnknown_841D94C[]; -extern const u8 gUnknown_841D98C[]; -extern const u8 gUnknown_841D9A0[]; -extern const u8 gUnknown_841D9C4[]; -extern const u8 gUnknown_841D9D4[]; -extern const u8 gUnknown_841DA08[]; -extern const u8 gUnknown_841DA24[]; -extern const u8 gUnknown_841DA3C[]; -extern const u8 gUnknown_841DA58[]; -extern const u8 gUnknown_841DA6C[]; -extern const u8 gUnknown_841DA88[]; -extern const u8 gUnknown_841DAA0[]; -extern const u8 gUnknown_841DAC4[]; -extern const u8 gUnknown_841DAE8[]; -extern const u8 gUnknown_841DB04[]; -extern const u8 gUnknown_841DB28[]; -extern const u8 gUnknown_841DB3C[]; -extern const u8 gUnknown_841DB7C[]; -extern const u8 gUnknown_841DBA4[]; -extern const u8 gUnknown_841DBDC[]; -extern const u8 gUnknown_841DBF8[]; -extern const u8 gUnknown_841DC2C[]; -extern const u8 gUnknown_841DC48[]; -extern const u8 gUnknown_841DCAC[]; -extern const u8 gUnknown_841DCC8[]; -extern const u8 gUnknown_841DD08[]; -extern const u8 gUnknown_841DD20[]; -extern const u8 gUnknown_841DD64[]; -extern const u8 gUnknown_841DD7C[]; -extern const u8 gUnknown_841DDC8[]; -extern const u8 gUnknown_841DDE4[]; -extern const u8 gUnknown_841DE24[]; -extern const u8 gUnknown_841DE3C[]; +extern const u8 gCreditsString_Director[]; +extern const u8 gCreditsString_Junichi_Masuda[]; +extern const u8 gCreditsString_Art_Director_Battle_Director[]; +extern const u8 gCreditsString_Ken_Sugimori_Shigeki_Morimoto[]; +extern const u8 gCreditsString_Program_Leader_Planning_Leader_Graphic_Design_Leader[]; +extern const u8 gCreditsString_Tetsuya_Watanabe_Koji_Nishino_Takao_Unno[]; +extern const u8 gCreditsString_Programmers[]; +extern const u8 gCreditsString_Hiroyuki_Nakamura_Masao_Taya_Satoshi_Nohara_Miyuki_Iwasawa_Daisuke_Goto[]; +extern const u8 gCreditsString_System_Programmers[]; +extern const u8 gCreditsString_Tetsuya_Watanabe_Akito_Mori_Hisashi_Sogabe_Sousuke_Tamada[]; +extern const u8 gCreditsString_Graphic_Designers[]; +extern const u8 gCreditsString_Takao_Unno_Asuka_Iwashita_Kanako_Eo_Hiroki_Fuchino[]; +extern const u8 gCreditsString_Graphic_Designers_2[]; +extern const u8 gCreditsString_Ken_Sugimori_Hironobu_Yoshida[]; +extern const u8 gCreditsString_Music_Composition[]; +extern const u8 gCreditsString_Go_Ichinose_Junichi_Masuda[]; +extern const u8 gCreditsString_Sound_Effects[]; +extern const u8 gCreditsString_Go_Ichinose[]; +extern const u8 gCreditsString_Game_Designers[]; +extern const u8 gCreditsString_Junichi_Masuda_Koji_Nishino_Tetsuji_Ohta[]; +extern const u8 gCreditsString_Game_Designers_2[]; +extern const u8 gCreditsString_Hitomi_Sato_Shigeru_Ohmori_Tadashi_Takahashi[]; +extern const u8 gCreditsString_Game_Scenario[]; +extern const u8 gCreditsString_Hitomi_Sato_Satoshi_Tajiri[]; +extern const u8 gCreditsString_Script_Designer_Map_Designer[]; +extern const u8 gCreditsString_Satoshi_Nohara_Shigeru_Ohmori[]; +extern const u8 gCreditsString_Parametric_Designers[]; +extern const u8 gCreditsString_Koji_Nishino_Tetsuji_Ohta_Shigeki_Morimoto[]; +extern const u8 gCreditsString_POKeDEX_Text[]; +extern const u8 gCreditsString_Kenji_Matsushima[]; +extern const u8 gCreditsString_POKeMON_Designers[]; +extern const u8 gCreditsString_Ken_Sugimori_Motofumi_Fujiwara_Shigeki_Morimoto_Hironobu_Yoshida[]; +extern const u8 gCreditsString_POKeMON_Designers_2[]; +extern const u8 gCreditsString_Satoshi_Ohta_Asuka_Iwashita_Takao_Unno_Kanako_Eo_Aimi_Tomita[]; +extern const u8 gCreditsString_POKeMON_Designers_3[]; +extern const u8 gCreditsString_Atsuko_Nishida_Muneo_Saito_Rena_Yoshikawa_Jun_Okutani[]; +extern const u8 gCreditsString_Supporting_Programmers[]; +extern const u8 gCreditsString_Teruyuki_Yoshioka_Takao_Nakano_Satoshi_Mitsuhara_Daisuke_Hoshino[]; +extern const u8 gCreditsString_NCL_Product_Testing[]; +extern const u8 gCreditsString_NCL_Super_Mario_Club[]; +extern const u8 gCreditsString_Special_Thanks[]; +extern const u8 gCreditsString_Hiro_Nakamura_Hiroyuki_Uesugi_Teruki_Murakawa_Kazuya_Suyama[]; +extern const u8 gCreditsString_Special_Thanks_2[]; +extern const u8 gCreditsString_Kenji_Tominaga_Kenjiro_Ito_Tomotaka_Komura_Michiko_Takizawa[]; +extern const u8 gCreditsString_Special_Thanks_3[]; +extern const u8 gCreditsString_Makiko_Takada_Mikiko_Ohashi_Shusaku_Egami_Takanao_Kondo_Rui_Kawaguchi[]; +extern const u8 gCreditsString_Braille_Code_Check[]; +extern const u8 gCreditsString_Japan_Braille_Library[]; +extern const u8 gCreditsString_Information_Supervisors[]; +extern const u8 gCreditsString_Hiroki_Enomoto_Kazuyuki_Terada_Yuri_Sakurai_Yumi_Funasaka_Naoko_Yanase[]; +extern const u8 gCreditsString_Coordinators[]; +extern const u8 gCreditsString_Azusa_Tajima_Akira_Kinashi_Kazuki_Yoshihara_Retsuji_Nomoto[]; +extern const u8 gCreditsString_Task_Managers[]; +extern const u8 gCreditsString_Hitoshi_Yamagami_Gakuji_Nomoto[]; +extern const u8 gCreditsString_Producers[]; +extern const u8 gCreditsString_Hiroyuki_Jinnai_Takehiro_Izushi_Hiroaki_Tsuru[]; +extern const u8 gCreditsString_Executive_Director[]; +extern const u8 gCreditsString_Satoshi_Tajiri[]; +extern const u8 gCreditsString_Executive_Producer[]; +extern const u8 gCreditsString_Satoru_Iwata[]; +extern const u8 gCreditsString_Executive_Producer_2[]; +extern const u8 gCreditsString_Tsunekaz_Ishihara[]; +extern const u8 gCreditsString_English_Version_Coordinators[]; +extern const u8 gCreditsString_Hiro_Nakamura_Seth_McMahill[]; +extern const u8 gCreditsString_Translator_Text_Editor[]; +extern const u8 gCreditsString_Nob_Ogasawara_Teresa_Lillygren[]; +extern const u8 gCreditsString_Programmers_2[]; +extern const u8 gCreditsString_Teruki_Murakawa_Souichi_Yamamoto_Yuichiro_Ito_Akira_Kinashi[]; +extern const u8 gCreditsString_Environment_Tool_Programmers[]; +extern const u8 gCreditsString_Teruki_Murakawa_Souichi_Yamamoto_Kimiko_Nakamichi[]; +extern const u8 gCreditsString_NOA_Product_Testing[]; +extern const u8 gCreditsString_Thomas_Hertzog_Kathy_Huguenard_Mika_Kurosawa[]; +extern const u8 gCreditsString_Braille_Code_Check_2[]; +extern const u8 gCreditsString_National_Federation_of_the_Blind_Patricia_A_Maurer_Japan_Braille_Library_European_Blind_Union[]; +extern const u8 gCreditsString_Braille_Code_Check_3[]; +extern const u8 gCreditsString_National_Information_Library_Service_Margaret_Campion[]; +extern const u8 gCreditsString_Special_Thanks_4[]; +extern const u8 gCreditsString_Takehiro_Izushi_Motoyasu_Tojima_Hitoshi_Yamagami_Hiroyuki_Uesugi[]; +extern const u8 gCreditsString_Special_Thanks_5[]; +extern const u8 gCreditsString_Nicola_Pratt_Barlow_Shellie_Dow_Anthony_Howitt_Naoko_Saeki_Kyoko_Onishi[]; +extern const u8 gCreditsString_Braille_Code_Check_4[]; +extern const u8 gCreditsString_The_Royal_New_Zealand_Foundation_of_the_Blind_Greg_Moran[]; +extern const u8 gCreditsString_Graphic_Designer[]; +extern const u8 gCreditsString_Akira_Kinashi[]; #endif //GUARD_STRINGS_H diff --git a/src/credits.c b/src/credits.c index 146f647e7..997c1ea16 100644 --- a/src/credits.c +++ b/src/credits.c @@ -67,6 +67,76 @@ enum CreditsMon CREDITSMON_PIKACHU }; +enum CreditsClosingText +{ + CREDITSCLOSING_ALLRIGHTSRESERVED = 0, + CREDITSCLOSING_THEEND +}; + +enum CreditsString +{ + CREDITS_STRING_DIRECTOR = 0, + CREDITS_STRING_ART_DIRECTOR_BATTLE_DIRECTOR, + CREDITS_STRING_PROGRAM_LEADER_PLANNING_LEADER_GRAPHIC_DESIGN_LEADER, + CREDITS_STRING_PROGRAMMERS, + CREDITS_STRING_SYSTEM_PROGRAMMERS, + CREDITS_STRING_GRAPHIC_DESIGNERS, + CREDITS_STRING_GRAPHIC_DESIGNERS_2, + CREDITS_STRING_MUSIC_COMPOSITION, + CREDITS_STRING_SOUND_EFFECTS, + CREDITS_STRING_GAME_DESIGNERS, + CREDITS_STRING_GAME_DESIGNERS_2, + CREDITS_STRING_GAME_SCENARIO, + CREDITS_STRING_SCRIPT_DESIGNER_MAP_DESIGNER, + CREDITS_STRING_PARAMETRIC_DESIGNERS, + CREDITS_STRING_POKEDEX_TEXT, + CREDITS_STRING_POKEMON_DESIGNERS, + CREDITS_STRING_POKEMON_DESIGNERS_2, + CREDITS_STRING_POKEMON_DESIGNERS_3, + CREDITS_STRING_SUPPORTING_PROGRAMMERS, + CREDITS_STRING_NCL_PRODUCT_TESTING, + CREDITS_STRING_SPECIAL_THANKS, + CREDITS_STRING_SPECIAL_THANKS_2, + CREDITS_STRING_SPECIAL_THANKS_3, + CREDITS_STRING_BRAILLE_CODE_CHECK, + CREDITS_STRING_INFORMATION_SUPERVISORS, + CREDITS_STRING_COORDINATORS, + CREDITS_STRING_TASK_MANAGERS, + CREDITS_STRING_PRODUCERS, + CREDITS_STRING_EXECUTIVE_DIRECTOR, + CREDITS_STRING_EXECUTIVE_PRODUCER, + CREDITS_STRING_EXECUTIVE_PRODUCER_2, + CREDITS_STRING_ENGLISH_VERSION_COORDINATORS, + CREDITS_STRING_TRANSLATOR_TEXT_EDITOR, + CREDITS_STRING_PROGRAMMERS_2, + CREDITS_STRING_ENVIRONMENT_TOOL_PROGRAMMERS, + CREDITS_STRING_NOA_PRODUCT_TESTING, + CREDITS_STRING_BRAILLE_CODE_CHECK_2, + CREDITS_STRING_BRAILLE_CODE_CHECK_3, + CREDITS_STRING_SPECIAL_THANKS_4, + CREDITS_STRING_SPECIAL_THANKS_5, + CREDITS_STRING_BRAILLE_CODE_CHECK_4, + CREDITS_STRING_GRAPHIC_DESIGNER, + CREDITS_STRING_DUMMY +}; + +enum CreditsMap +{ + CREDITS_MAP_ROUTE23 = 0, + CREDITS_MAP_VIRIDIAN_CITY, + CREDITS_MAP_PEWTER_CITY, + CREDITS_MAP_CERULEAN_CITY, + CREDITS_MAP_ROUTE25, + CREDITS_MAP_VERMILION_CITY, + CREDITS_MAP_ROUTE10, + CREDITS_MAP_CELADON_CITY, + CREDITS_MAP_SAFFRON_CITY_DUPLICATE, + CREDITS_MAP_ROUTE17, + CREDITS_MAP_FUCHSIA_CITY, + CREDITS_MAP_CINNABAR_ISLAND, + CREDITS_MAP_ROUTE21_NORTH +}; + struct CreditsResources { u8 mainseqno; @@ -297,73 +367,80 @@ static const struct CompressedGraphicsHeader sCopyrightOrTheEndGfxHeaders[] = { } }; +#define CREDITS_PRINT(text, duration) { CREDITSSCRCMD_PRINT, CREDITS_STRING_##text, duration } +#define CREDITS_MAPNEXT(map, duration) { CREDITSSCRCMD_MAPNEXT, CREDITS_MAP_##map, duration } +#define CREDITS_MAP(map, duration) { CREDITSSCRCMD_MAP, CREDITS_MAP_##map, duration } +#define CREDITS_MON(mon) { CREDITSSCRCMD_MON, CREDITSMON_##mon } +#define CREDITS_THEENDGFX(idx, duration) { CREDITSSCRCMD_THEENDGFX, CREDITSCLOSING_##idx, duration } +#define CREDITS_WAITBUTTON(time) { CREDITSSCRCMD_WAITBUTTON, .duration = time } + static const struct CreditsScrcmd sCreditsScript[] = { - { CREDITSSCRCMD_MAPNEXT, 0, 16 }, - { CREDITSSCRCMD_PRINT, 0, 300 }, - { CREDITSSCRCMD_PRINT, 1, 300 }, - { CREDITSSCRCMD_PRINT, 2, 300 }, - { CREDITSSCRCMD_PRINT, 42, 60 }, - { CREDITSSCRCMD_MAPNEXT, 1, 0 }, - { CREDITSSCRCMD_PRINT, 3, 211 }, - { CREDITSSCRCMD_PRINT, 4, 211 }, - { CREDITSSCRCMD_PRINT, 5, 211 }, - { CREDITSSCRCMD_MAPNEXT, 2, 0 }, - { CREDITSSCRCMD_PRINT, 6, 211 }, - { CREDITSSCRCMD_PRINT, 7, 210 }, - { CREDITSSCRCMD_PRINT, 8, 210 }, - { CREDITSSCRCMD_MON, 0, 0 }, - { CREDITSSCRCMD_MAP, 3, 16 }, - { CREDITSSCRCMD_PRINT, 9, 211 }, - { CREDITSSCRCMD_PRINT, 10, 210 }, - { CREDITSSCRCMD_PRINT, 11, 210 }, - { CREDITSSCRCMD_MAPNEXT, 4, 16 }, - { CREDITSSCRCMD_PRINT, 12, 211 }, - { CREDITSSCRCMD_PRINT, 13, 210 }, - { CREDITSSCRCMD_PRINT, 14, 210 }, - { CREDITSSCRCMD_MAPNEXT, 5, 16 }, - { CREDITSSCRCMD_PRINT, 15, 211 }, - { CREDITSSCRCMD_PRINT, 16, 210 }, - { CREDITSSCRCMD_PRINT, 17, 210 }, - { CREDITSSCRCMD_MON, 1, 0 }, - { CREDITSSCRCMD_MAP, 6, 16 }, - { CREDITSSCRCMD_PRINT, 18, 211 }, - { CREDITSSCRCMD_PRINT, 19, 210 }, - { CREDITSSCRCMD_PRINT, 20, 210 }, - { CREDITSSCRCMD_MAPNEXT, 7, 16 }, - { CREDITSSCRCMD_PRINT, 21, 221 }, - { CREDITSSCRCMD_PRINT, 22, 221 }, - { CREDITSSCRCMD_PRINT, 23, 221 }, - { CREDITSSCRCMD_PRINT, 24, 221 }, - { CREDITSSCRCMD_PRINT, 42, 51 }, - { CREDITSSCRCMD_MAPNEXT, 8, 16 }, - { CREDITSSCRCMD_PRINT, 25, 211 }, - { CREDITSSCRCMD_PRINT, 26, 210 }, - { CREDITSSCRCMD_PRINT, 27, 210 }, - { CREDITSSCRCMD_MON, 2, 0 }, - { CREDITSSCRCMD_MAP, 9, 16 }, - { CREDITSSCRCMD_PRINT, 28, 331 }, - { CREDITSSCRCMD_PRINT, 29, 331 }, - { CREDITSSCRCMD_PRINT, 30, 331 }, - { CREDITSSCRCMD_MAPNEXT, 10, 16 }, - { CREDITSSCRCMD_PRINT, 31, 221 }, - { CREDITSSCRCMD_PRINT, 32, 221 }, - { CREDITSSCRCMD_PRINT, 33, 221 }, - { CREDITSSCRCMD_PRINT, 34, 221 }, - { CREDITSSCRCMD_PRINT, 42, 52 }, - { CREDITSSCRCMD_MAPNEXT, 11, 16 }, - { CREDITSSCRCMD_PRINT, 41, 210 }, - { CREDITSSCRCMD_PRINT, 35, 210 }, - { CREDITSSCRCMD_PRINT, 36, 211 }, - { CREDITSSCRCMD_MON, 3, 0 }, - { CREDITSSCRCMD_MAP, 12, 16 }, - { CREDITSSCRCMD_PRINT, 37, 221 }, - { CREDITSSCRCMD_PRINT, 40, 221 }, - { CREDITSSCRCMD_PRINT, 38, 221 }, - { CREDITSSCRCMD_PRINT, 39, 221 }, - { CREDITSSCRCMD_PRINT, 42, 52 }, - { CREDITSSCRCMD_THEENDGFX, 0, 224 }, - { CREDITSSCRCMD_THEENDGFX, 1, 240 }, - { CREDITSSCRCMD_WAITBUTTON, 0, 600 } + CREDITS_MAPNEXT(ROUTE23, 16), + CREDITS_PRINT(DIRECTOR, 300), + CREDITS_PRINT(ART_DIRECTOR_BATTLE_DIRECTOR, 300), + CREDITS_PRINT(PROGRAM_LEADER_PLANNING_LEADER_GRAPHIC_DESIGN_LEADER, 300), + CREDITS_PRINT(DUMMY, 60), + CREDITS_MAPNEXT(VIRIDIAN_CITY, 0), + CREDITS_PRINT(PROGRAMMERS, 211), + CREDITS_PRINT(SYSTEM_PROGRAMMERS, 211), + CREDITS_PRINT(GRAPHIC_DESIGNERS, 211), + CREDITS_MAPNEXT(PEWTER_CITY, 0), + CREDITS_PRINT(GRAPHIC_DESIGNERS_2, 211), + CREDITS_PRINT(MUSIC_COMPOSITION, 210), + CREDITS_PRINT(SOUND_EFFECTS, 210), + CREDITS_MON(CHARIZARD), + CREDITS_MAP(CERULEAN_CITY, 16), + CREDITS_PRINT(GAME_DESIGNERS, 211), + CREDITS_PRINT(GAME_DESIGNERS_2, 210), + CREDITS_PRINT(GAME_SCENARIO, 210), + CREDITS_MAPNEXT(ROUTE25, 16), + CREDITS_PRINT(SCRIPT_DESIGNER_MAP_DESIGNER, 211), + CREDITS_PRINT(PARAMETRIC_DESIGNERS, 210), + CREDITS_PRINT(POKEDEX_TEXT, 210), + CREDITS_MAPNEXT(VERMILION_CITY, 16), + CREDITS_PRINT(POKEMON_DESIGNERS, 211), + CREDITS_PRINT(POKEMON_DESIGNERS_2, 210), + CREDITS_PRINT(POKEMON_DESIGNERS_3, 210), + CREDITS_MON(VENUSAUR), + CREDITS_MAP(ROUTE10, 16), + CREDITS_PRINT(SUPPORTING_PROGRAMMERS, 211), + CREDITS_PRINT(NCL_PRODUCT_TESTING, 210), + CREDITS_PRINT(SPECIAL_THANKS, 210), + CREDITS_MAPNEXT(CELADON_CITY, 16), + CREDITS_PRINT(SPECIAL_THANKS_2, 221), + CREDITS_PRINT(SPECIAL_THANKS_3, 221), + CREDITS_PRINT(BRAILLE_CODE_CHECK, 221), + CREDITS_PRINT(INFORMATION_SUPERVISORS, 221), + CREDITS_PRINT(DUMMY, 51), + CREDITS_MAPNEXT(SAFFRON_CITY_DUPLICATE, 16), + CREDITS_PRINT(COORDINATORS, 211), + CREDITS_PRINT(TASK_MANAGERS, 210), + CREDITS_PRINT(PRODUCERS, 210), + CREDITS_MON(BLASTOISE), + CREDITS_MAP(ROUTE17, 16), + CREDITS_PRINT(EXECUTIVE_DIRECTOR, 331), + CREDITS_PRINT(EXECUTIVE_PRODUCER, 331), + CREDITS_PRINT(EXECUTIVE_PRODUCER_2, 331), + CREDITS_MAPNEXT(FUCHSIA_CITY, 16), + CREDITS_PRINT(ENGLISH_VERSION_COORDINATORS, 221), + CREDITS_PRINT(TRANSLATOR_TEXT_EDITOR, 221), + CREDITS_PRINT(PROGRAMMERS_2, 221), + CREDITS_PRINT(ENVIRONMENT_TOOL_PROGRAMMERS, 221), + CREDITS_PRINT(DUMMY, 52), + CREDITS_MAPNEXT(CINNABAR_ISLAND, 16), + CREDITS_PRINT(GRAPHIC_DESIGNER, 210), + CREDITS_PRINT(NOA_PRODUCT_TESTING, 210), + CREDITS_PRINT(BRAILLE_CODE_CHECK_2, 211), + CREDITS_MON(PIKACHU), + CREDITS_MAP(ROUTE21_NORTH, 16), + CREDITS_PRINT(BRAILLE_CODE_CHECK_3, 221), + CREDITS_PRINT(BRAILLE_CODE_CHECK_4, 221), + CREDITS_PRINT(SPECIAL_THANKS_4, 221), + CREDITS_PRINT(SPECIAL_THANKS_5, 221), + CREDITS_PRINT(DUMMY, 52), + CREDITS_THEENDGFX(ALLRIGHTSRESERVED, 224), + CREDITS_THEENDGFX(THEEND, 240), + CREDITS_WAITBUTTON(600) }; static const ALIGNED(4) u8 sTextColor_Unused[3] = {0, 1, 2}; @@ -593,49 +670,49 @@ static const struct CreditsOverworldCmd *const sOverworldMapScenes[] = { }; static const struct CreditsTextHeader sCreditsTexts[] = { - { gUnknown_841D1D8, gUnknown_841D1E8, FALSE }, - { gUnknown_841D200, gUnknown_841D224, FALSE }, - { gUnknown_841D248, gUnknown_841D284, FALSE }, - { gUnknown_841D2B4, gUnknown_841D2C8, FALSE }, - { gUnknown_841D314, gUnknown_841D330, TRUE }, - { gUnknown_841D370, gUnknown_841D388, TRUE }, - { gUnknown_841D3C0, gUnknown_841D3D8, TRUE }, - { gUnknown_841D3FC, gUnknown_841D414, TRUE }, - { gUnknown_841D434, gUnknown_841D448, FALSE }, - { gUnknown_841D45C, gUnknown_841D474, FALSE }, - { gUnknown_841D4A4, gUnknown_841D4BC, FALSE }, - { gUnknown_841D4F0, gUnknown_841D504, TRUE }, - { gUnknown_841D524, gUnknown_841D548, FALSE }, - { gUnknown_841D56C, gUnknown_841D588, FALSE }, - { gUnknown_841D5B8, gUnknown_841D5CC, FALSE }, - { gUnknown_841D5E4, gUnknown_841D5FC, TRUE }, - { gUnknown_841D640, gUnknown_841D658, FALSE }, - { gUnknown_841D698, gUnknown_841D6B0, TRUE }, - { gUnknown_841D6EC, gUnknown_841D708, FALSE }, - { gUnknown_841D74C, gUnknown_841D768, FALSE }, - { gUnknown_841D784, gUnknown_841D79C, FALSE }, - { gUnknown_841D7DC, gUnknown_841D7F4, FALSE }, - { gUnknown_841D834, gUnknown_841D84C, FALSE }, - { gUnknown_841D894, gUnknown_841D8B0, FALSE }, - { gUnknown_841D8CC, gUnknown_841D8EC, FALSE }, - { gUnknown_841D938, gUnknown_841D94C, FALSE }, - { gUnknown_841D98C, gUnknown_841D9A0, TRUE }, - { gUnknown_841D9C4, gUnknown_841D9D4, FALSE }, - { gUnknown_841DA08, gUnknown_841DA24, FALSE }, - { gUnknown_841DA3C, gUnknown_841DA58, FALSE }, - { gUnknown_841DA6C, gUnknown_841DA88, FALSE }, - { gUnknown_841DAA0, gUnknown_841DAC4, FALSE }, - { gUnknown_841DAE8, gUnknown_841DB04, FALSE }, - { gUnknown_841DB28, gUnknown_841DB3C, FALSE }, - { gUnknown_841DB7C, gUnknown_841DBA4, TRUE }, - { gUnknown_841DBDC, gUnknown_841DBF8, TRUE }, - { gUnknown_841DC2C, gUnknown_841DC48, TRUE }, - { gUnknown_841DCAC, gUnknown_841DCC8, TRUE }, - { gUnknown_841DD08, gUnknown_841DD20, FALSE }, - { gUnknown_841DD64, gUnknown_841DD7C, FALSE }, - { gUnknown_841DDC8, gUnknown_841DDE4, FALSE }, - { gUnknown_841DE24, gUnknown_841DE3C, FALSE }, - { gUnknown_84161CD, gUnknown_84161CD, FALSE } + { gCreditsString_Director, gCreditsString_Junichi_Masuda, FALSE }, + { gCreditsString_Art_Director_Battle_Director, gCreditsString_Ken_Sugimori_Shigeki_Morimoto, FALSE }, + { gCreditsString_Program_Leader_Planning_Leader_Graphic_Design_Leader, gCreditsString_Tetsuya_Watanabe_Koji_Nishino_Takao_Unno, FALSE }, + { gCreditsString_Programmers, gCreditsString_Hiroyuki_Nakamura_Masao_Taya_Satoshi_Nohara_Miyuki_Iwasawa_Daisuke_Goto, FALSE }, + { gCreditsString_System_Programmers, gCreditsString_Tetsuya_Watanabe_Akito_Mori_Hisashi_Sogabe_Sousuke_Tamada, TRUE }, + { gCreditsString_Graphic_Designers, gCreditsString_Takao_Unno_Asuka_Iwashita_Kanako_Eo_Hiroki_Fuchino, TRUE }, + { gCreditsString_Graphic_Designers_2, gCreditsString_Ken_Sugimori_Hironobu_Yoshida, TRUE }, + { gCreditsString_Music_Composition, gCreditsString_Go_Ichinose_Junichi_Masuda, TRUE }, + { gCreditsString_Sound_Effects, gCreditsString_Go_Ichinose, FALSE }, + { gCreditsString_Game_Designers, gCreditsString_Junichi_Masuda_Koji_Nishino_Tetsuji_Ohta, FALSE }, + { gCreditsString_Game_Designers_2, gCreditsString_Hitomi_Sato_Shigeru_Ohmori_Tadashi_Takahashi, FALSE }, + { gCreditsString_Game_Scenario, gCreditsString_Hitomi_Sato_Satoshi_Tajiri, TRUE }, + { gCreditsString_Script_Designer_Map_Designer, gCreditsString_Satoshi_Nohara_Shigeru_Ohmori, FALSE }, + { gCreditsString_Parametric_Designers, gCreditsString_Koji_Nishino_Tetsuji_Ohta_Shigeki_Morimoto, FALSE }, + { gCreditsString_POKeDEX_Text, gCreditsString_Kenji_Matsushima, FALSE }, + { gCreditsString_POKeMON_Designers, gCreditsString_Ken_Sugimori_Motofumi_Fujiwara_Shigeki_Morimoto_Hironobu_Yoshida, TRUE }, + { gCreditsString_POKeMON_Designers_2, gCreditsString_Satoshi_Ohta_Asuka_Iwashita_Takao_Unno_Kanako_Eo_Aimi_Tomita, FALSE }, + { gCreditsString_POKeMON_Designers_3, gCreditsString_Atsuko_Nishida_Muneo_Saito_Rena_Yoshikawa_Jun_Okutani, TRUE }, + { gCreditsString_Supporting_Programmers, gCreditsString_Teruyuki_Yoshioka_Takao_Nakano_Satoshi_Mitsuhara_Daisuke_Hoshino, FALSE }, + { gCreditsString_NCL_Product_Testing, gCreditsString_NCL_Super_Mario_Club, FALSE }, + { gCreditsString_Special_Thanks, gCreditsString_Hiro_Nakamura_Hiroyuki_Uesugi_Teruki_Murakawa_Kazuya_Suyama, FALSE }, + { gCreditsString_Special_Thanks_2, gCreditsString_Kenji_Tominaga_Kenjiro_Ito_Tomotaka_Komura_Michiko_Takizawa, FALSE }, + { gCreditsString_Special_Thanks_3, gCreditsString_Makiko_Takada_Mikiko_Ohashi_Shusaku_Egami_Takanao_Kondo_Rui_Kawaguchi, FALSE }, + { gCreditsString_Braille_Code_Check, gCreditsString_Japan_Braille_Library, FALSE }, + { gCreditsString_Information_Supervisors, gCreditsString_Hiroki_Enomoto_Kazuyuki_Terada_Yuri_Sakurai_Yumi_Funasaka_Naoko_Yanase, FALSE }, + { gCreditsString_Coordinators, gCreditsString_Azusa_Tajima_Akira_Kinashi_Kazuki_Yoshihara_Retsuji_Nomoto, FALSE }, + { gCreditsString_Task_Managers, gCreditsString_Hitoshi_Yamagami_Gakuji_Nomoto, TRUE }, + { gCreditsString_Producers, gCreditsString_Hiroyuki_Jinnai_Takehiro_Izushi_Hiroaki_Tsuru, FALSE }, + { gCreditsString_Executive_Director, gCreditsString_Satoshi_Tajiri, FALSE }, + { gCreditsString_Executive_Producer, gCreditsString_Satoru_Iwata, FALSE }, + { gCreditsString_Executive_Producer_2, gCreditsString_Tsunekaz_Ishihara, FALSE }, + { gCreditsString_English_Version_Coordinators, gCreditsString_Hiro_Nakamura_Seth_McMahill, FALSE }, + { gCreditsString_Translator_Text_Editor, gCreditsString_Nob_Ogasawara_Teresa_Lillygren, FALSE }, + { gCreditsString_Programmers_2, gCreditsString_Teruki_Murakawa_Souichi_Yamamoto_Yuichiro_Ito_Akira_Kinashi, FALSE }, + { gCreditsString_Environment_Tool_Programmers, gCreditsString_Teruki_Murakawa_Souichi_Yamamoto_Kimiko_Nakamichi, TRUE }, + { gCreditsString_NOA_Product_Testing, gCreditsString_Thomas_Hertzog_Kathy_Huguenard_Mika_Kurosawa, TRUE }, + { gCreditsString_Braille_Code_Check_2, gCreditsString_National_Federation_of_the_Blind_Patricia_A_Maurer_Japan_Braille_Library_European_Blind_Union, TRUE }, + { gCreditsString_Braille_Code_Check_3, gCreditsString_National_Information_Library_Service_Margaret_Campion, TRUE }, + { gCreditsString_Special_Thanks_4, gCreditsString_Takehiro_Izushi_Motoyasu_Tojima_Hitoshi_Yamagami_Hiroyuki_Uesugi, FALSE }, + { gCreditsString_Special_Thanks_5, gCreditsString_Nicola_Pratt_Barlow_Shellie_Dow_Anthony_Howitt_Naoko_Saeki_Kyoko_Onishi, FALSE }, + { gCreditsString_Braille_Code_Check_4, gCreditsString_The_Royal_New_Zealand_Foundation_of_the_Blind_Greg_Moran, FALSE }, + { gCreditsString_Graphic_Designer, gCreditsString_Akira_Kinashi, FALSE }, + { gString_Dummy, gString_Dummy, FALSE } }; void Special_Credits(void)