summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/credits.s966
-rw-r--r--data/credits.s70
-rw-r--r--data/data_83FECCC.s66
-rw-r--r--include/credits.h6
-rw-r--r--include/field_weather.h1
-rw-r--r--include/overworld.h3
-rw-r--r--include/strings.h3
-rw-r--r--ld_script.txt3
-rw-r--r--src/credits.c1116
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