diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-09-24 14:00:30 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-09-24 14:00:30 -0400 |
commit | 89c98f2ab74e6097fd85b05b64965c10c9941b5b (patch) | |
tree | 6a839497e6bcfa7937972d3053c49f65a7740701 | |
parent | d9d90b5a9fdb6d3dc0645b10444e02efab08d82e (diff) |
Start credits (nonmatching sub_80F3BD0)
-rw-r--r-- | asm/credits.s | 966 | ||||
-rw-r--r-- | data/credits.s | 70 | ||||
-rw-r--r-- | data/data_83FECCC.s | 66 | ||||
-rw-r--r-- | include/credits.h | 6 | ||||
-rw-r--r-- | include/field_weather.h | 1 | ||||
-rw-r--r-- | include/overworld.h | 3 | ||||
-rw-r--r-- | include/strings.h | 3 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/credits.c | 1116 |
9 files changed, 1202 insertions, 1032 deletions
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 |