summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/code_800B5F0.s877
-rw-r--r--asm/code_800C9CC.s761
2 files changed, 763 insertions, 875 deletions
diff --git a/asm/code_800B5F0.s b/asm/code_800B5F0.s
index fb03810..020ff3a 100644
--- a/asm/code_800B5F0.s
+++ b/asm/code_800B5F0.s
@@ -891,7 +891,7 @@ sub_800BDFC:
lsrs r4, r0, 16
adds r6, r4, 0
adds r0, r4, 0
- bl sub_800CA9C
+ bl IsBGSong
lsls r0, 24
cmp r0, 0
beq _0800BE78
@@ -961,7 +961,7 @@ sub_800BE8C:
lsls r4, r1, 16
lsrs r5, r4, 16
adds r0, r6, 0
- bl sub_800CA9C
+ bl IsBGSong
lsls r0, 24
cmp r0, 0
beq _0800BF2E
@@ -2280,878 +2280,5 @@ _0800C926:
bx r0
thumb_func_end UpdateSound
- thumb_func_start sub_800C93C
-sub_800C93C:
- push {r4,r5,lr}
- ldr r0, _0800C984
- movs r1, 0x10
- bl sub_800C3F8
- ldr r0, _0800C988
- movs r1, 0x10
- bl sub_800C3F8
- bl DisableInterrupts
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0800C98C
- ldrh r3, [r0]
- cmp r3, 0
- bne _0800C9AC
- ldr r0, _0800C990
- ldrh r1, [r0]
- ldr r0, _0800C994
- cmp r1, r0
- beq _0800C9AC
- ldr r1, _0800C998
- ldrh r2, [r1]
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r0, 16
- adds r4, r1, 0
- cmp r0, 0x1
- bhi _0800C9AC
- adds r1, r2, 0
- cmp r1, 0x2
- bne _0800C9A0
- ldr r0, _0800C99C
- strb r3, [r0]
- b _0800C9A8
- .align 2, 0
-_0800C984: .4byte 0x000003e5
-_0800C988: .4byte 0x000003e6
-_0800C98C: .4byte gUnknown_202D690
-_0800C990: .4byte gUnknown_202D68A
-_0800C994: .4byte 0x000003e7
-_0800C998: .4byte gUnknown_202D688
-_0800C99C: .4byte gUnknown_202D694
-_0800C9A0:
- cmp r1, 0x1
- bne _0800C9A8
- ldr r0, _0800C9C4
- strb r1, [r0]
-_0800C9A8:
- movs r0, 0x4
- strh r0, [r4]
-_0800C9AC:
- ldr r0, _0800C9C8
- bl m4aMPlayStop
- bl m4aSoundVSyncOff
- cmp r5, 0
- beq _0800C9BE
- bl EnableInterrupts
-_0800C9BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C9C4: .4byte gUnknown_202D694
-_0800C9C8: .4byte gUnknown_20008F0
- thumb_func_end sub_800C93C
-
- thumb_func_start sub_800C9CC
-sub_800C9CC:
- push {r4,lr}
- bl DisableInterrupts
- lsls r0, 24
- lsrs r4, r0, 24
- bl m4aSoundVSyncOn
- ldr r0, _0800CA08
- ldrh r0, [r0]
- cmp r0, 0
- bne _0800CA22
- ldr r2, _0800CA0C
- ldrh r1, [r2]
- ldr r0, _0800CA10
- cmp r1, r0
- beq _0800CA22
- ldr r1, _0800CA14
- ldrh r0, [r1]
- cmp r0, 0x4
- bne _0800CA22
- movs r0, 0x1
- strh r0, [r1]
- ldr r0, _0800CA18
- ldrb r0, [r0]
- cmp r0, 0
- beq _0800CA1C
- ldrh r0, [r2]
- bl m4aSongNumStart
- b _0800CA22
- .align 2, 0
-_0800CA08: .4byte gUnknown_202D690
-_0800CA0C: .4byte gUnknown_202D68A
-_0800CA10: .4byte 0x000003e7
-_0800CA14: .4byte gUnknown_202D688
-_0800CA18: .4byte gUnknown_202D694
-_0800CA1C:
- ldr r0, _0800CA30
- bl m4aMPlayContinue
-_0800CA22:
- cmp r4, 0
- beq _0800CA2A
- bl EnableInterrupts
-_0800CA2A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CA30: .4byte gUnknown_20008F0
- thumb_func_end sub_800C9CC
-
- thumb_func_start nullsub_179
-nullsub_179:
- bx lr
- thumb_func_end nullsub_179
-
- thumb_func_start sub_800CA38
-sub_800CA38:
- push {r4,lr}
- adds r4, r0, 0
- bl sub_800CA9C
- lsls r0, 24
- cmp r0, 0
- beq _0800CA54
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_800CAE0
- lsls r0, 16
- cmp r0, 0
- beq _0800CA70
-_0800CA54:
- adds r0, r4, 0
- bl sub_800CACC
- lsls r0, 24
- cmp r0, 0
- beq _0800CA74
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_800CAE0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0800CA90
-_0800CA70:
- movs r0, 0x1
- b _0800CA92
-_0800CA74:
- adds r0, r4, 0
- bl sub_800CAAC
- lsls r0, 24
- cmp r0, 0
- beq _0800CA90
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_800CAE0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0800CA70
-_0800CA90:
- movs r0, 0
-_0800CA92:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_800CA38
-
- thumb_func_start nullsub_19
-nullsub_19:
- bx lr
- thumb_func_end nullsub_19
-
- thumb_func_start sub_800CA9C
-sub_800CA9C:
- push {lr}
- cmp r0, 0x80
- bls _0800CAA6
- movs r0, 0
- b _0800CAA8
-_0800CAA6:
- movs r0, 0x1
-_0800CAA8:
- pop {r1}
- bx r1
- thumb_func_end sub_800CA9C
-
- thumb_func_start sub_800CAAC
-sub_800CAAC:
- push {lr}
- ldr r1, _0800CABC
- adds r0, r1
- ldr r1, _0800CAC0
- cmp r0, r1
- bls _0800CAC4
- movs r0, 0
- b _0800CAC6
- .align 2, 0
-_0800CABC: .4byte 0xfffffed4
-_0800CAC0: .4byte 0x0000027f
-_0800CAC4:
- movs r0, 0x1
-_0800CAC6:
- pop {r1}
- bx r1
- thumb_func_end sub_800CAAC
-
- thumb_func_start sub_800CACC
-sub_800CACC:
- push {lr}
- subs r0, 0xC8
- cmp r0, 0x13
- bls _0800CAD8
- movs r0, 0
- b _0800CADA
-_0800CAD8:
- movs r0, 0x1
-_0800CADA:
- pop {r1}
- bx r1
- thumb_func_end sub_800CACC
-
- thumb_func_start sub_800CAE0
-sub_800CAE0:
- lsls r0, 16
- ldr r1, _0800CAEC
- lsrs r0, 13
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bx lr
- .align 2, 0
-_0800CAEC: .4byte gSongTable
- thumb_func_end sub_800CAE0
-
- thumb_func_start sub_800CAF0
-sub_800CAF0:
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0800CB0C
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- beq _0800CB10
- movs r0, 0x1
- b _0800CB12
- .align 2, 0
-_0800CB0C: .4byte gMPlayTable
-_0800CB10:
- movs r0, 0
-_0800CB12:
- pop {r1}
- bx r1
- thumb_func_end sub_800CAF0
-
- thumb_func_start nullsub_20
-nullsub_20:
- bx lr
- thumb_func_end nullsub_20
-
- thumb_func_start nullsub_21
-nullsub_21:
- bx lr
- thumb_func_end nullsub_21
-
- thumb_func_start sub_800CB20
-sub_800CB20:
- push {lr}
- bl sub_800BA5C
- ldr r1, _0800CB48
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _0800CB4C
- ldrh r1, [r0]
- movs r0, 0x5
- ands r0, r1
- cmp r0, 0
- beq _0800CB3E
- bl Random
-_0800CB3E:
- bl Random
- pop {r0}
- bx r0
- .align 2, 0
-_0800CB48: .4byte gUnknown_203B0B8
-_0800CB4C: .4byte gUnknown_203B0BC
- thumb_func_end sub_800CB20
-
- thumb_func_start sub_800CB50
-sub_800CB50:
- ldr r0, _0800CB58
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0800CB58: .4byte gUnknown_203B0B8
- thumb_func_end sub_800CB50
-
- thumb_func_start nullsub_180
-nullsub_180:
- bx lr
- thumb_func_end nullsub_180
-
- thumb_func_start xxx_call_update_bg_sound_input
-xxx_call_update_bg_sound_input:
- push {lr}
- bl xxx_update_bg_sound_input
- pop {r0}
- bx r0
- thumb_func_end xxx_call_update_bg_sound_input
-
- thumb_func_start nullsub_181
-nullsub_181:
- bx lr
- thumb_func_end nullsub_181
-
- thumb_func_start sub_800CB70
-sub_800CB70:
- movs r0, 0
- bx lr
- thumb_func_end sub_800CB70
-
- thumb_func_start ReadKeyInput
-ReadKeyInput:
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _0800CC38
- ldrh r1, [r0]
- ldr r3, _0800CC3C
- adds r0, r3, 0
- adds r3, r0, 0
- eors r3, r1
- movs r0, 0
- strh r0, [r2]
- movs r1, 0x40
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800CB94
- strh r1, [r2]
-_0800CB94:
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0800CBA4
- ldrh r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strh r0, [r2]
-_0800CBA4:
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0800CBB4
- ldrh r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strh r0, [r2]
-_0800CBB4:
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _0800CBC4
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
-_0800CBC4:
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0800CBD4
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
-_0800CBD4:
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- beq _0800CBE4
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
-_0800CBE4:
- movs r0, 0x8
- ands r0, r3
- cmp r0, 0
- beq _0800CBF4
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
-_0800CBF4:
- movs r0, 0x4
- ands r0, r3
- cmp r0, 0
- beq _0800CC04
- ldrh r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strh r0, [r2]
-_0800CC04:
- movs r4, 0x80
- lsls r4, 1
- adds r0, r3, 0
- ands r0, r4
- cmp r0, 0
- beq _0800CC18
- ldrh r1, [r2]
- adds r0, r4, 0
- orrs r0, r1
- strh r0, [r2]
-_0800CC18:
- movs r4, 0x80
- lsls r4, 2
- adds r0, r3, 0
- ands r0, r4
- cmp r0, 0
- beq _0800CC2C
- ldrh r1, [r2]
- adds r0, r4, 0
- orrs r0, r1
- strh r0, [r2]
-_0800CC2C:
- ldr r0, _0800CC40
- strh r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CC38: .4byte 0x04000130
-_0800CC3C: .4byte 0x000003ff
-_0800CC40: .4byte gUnknown_203B0BC
- thumb_func_end ReadKeyInput
-
- thumb_func_start sub_800CC44
-sub_800CC44:
- push {lr}
- adds r2, r1, 0
- cmp r0, 0
- bge _0800CC50
- movs r0, 0
- b _0800CC56
-_0800CC50:
- cmp r0, 0x10
- ble _0800CC56
- movs r0, 0x10
-_0800CC56:
- cmp r2, 0
- bge _0800CC5E
- movs r2, 0
- b _0800CC64
-_0800CC5E:
- cmp r2, 0x10
- ble _0800CC64
- movs r2, 0x10
-_0800CC64:
- ldr r1, _0800CC7C
- strb r0, [r1]
- ldr r0, _0800CC80
- strb r2, [r0]
- ldr r2, _0800CC84
- ldrb r1, [r1]
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_0800CC7C: .4byte gUnknown_202D6B8
-_0800CC80: .4byte gUnknown_202D6B9
-_0800CC84: .4byte gUnknown_202D7FA
- thumb_func_end sub_800CC44
-
- thumb_func_start sub_800CC88
-sub_800CC88:
- ldr r2, _0800CC90
- strh r0, [r2, 0x4]
- strh r1, [r2, 0x6]
- bx lr
- .align 2, 0
-_0800CC90: .4byte gUnknown_202D698
- thumb_func_end sub_800CC88
-
- thumb_func_start sub_800CC94
-sub_800CC94:
- ldr r2, _0800CC9C
- strh r0, [r2, 0x4]
- strh r1, [r2, 0x6]
- bx lr
- .align 2, 0
-_0800CC9C: .4byte gUnknown_202D6A0
- thumb_func_end sub_800CC94
-
- thumb_func_start sub_800CCA0
-sub_800CCA0:
- ldr r2, _0800CCA8
- strh r0, [r2, 0x4]
- strh r1, [r2, 0x6]
- bx lr
- .align 2, 0
-_0800CCA8: .4byte gUnknown_202D6A8
- thumb_func_end sub_800CCA0
-
- thumb_func_start sub_800CCAC
-sub_800CCAC:
- ldr r2, _0800CCB4
- strh r0, [r2, 0x4]
- strh r1, [r2, 0x6]
- bx lr
- .align 2, 0
-_0800CCB4: .4byte gUnknown_202D6B0
- thumb_func_end sub_800CCAC
-
- thumb_func_start sub_800CCB8
-sub_800CCB8:
- push {lr}
- cmp r0, 0x1
- beq _0800CCD4
- cmp r0, 0x1
- ble _0800CCCA
- cmp r0, 0x2
- beq _0800CCDE
- cmp r0, 0x3
- beq _0800CCE8
-_0800CCCA:
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_800CC88
- b _0800CCF0
-_0800CCD4:
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_800CC94
- b _0800CCF0
-_0800CCDE:
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_800CCA0
- b _0800CCF0
-_0800CCE8:
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_800CCAC
-_0800CCF0:
- pop {r0}
- bx r0
- thumb_func_end sub_800CCB8
-
- thumb_func_start sub_800CCF4
-sub_800CCF4:
- push {lr}
- cmp r0, 0x1
- beq _0800CD10
- cmp r0, 0x1
- ble _0800CD06
- cmp r0, 0x2
- beq _0800CD18
- cmp r0, 0x3
- beq _0800CD20
-_0800CD06:
- ldr r0, _0800CD0C
- b _0800CD22
- .align 2, 0
-_0800CD0C: .4byte gUnknown_202D698
-_0800CD10:
- ldr r0, _0800CD14
- b _0800CD22
- .align 2, 0
-_0800CD14: .4byte gUnknown_202D6A0
-_0800CD18:
- ldr r0, _0800CD1C
- b _0800CD22
- .align 2, 0
-_0800CD1C: .4byte gUnknown_202D6A8
-_0800CD20:
- ldr r0, _0800CD28
-_0800CD22:
- strh r1, [r0, 0x4]
- pop {r0}
- bx r0
- .align 2, 0
-_0800CD28: .4byte gUnknown_202D6B0
- thumb_func_end sub_800CCF4
-
- thumb_func_start sub_800CD2C
-sub_800CD2C:
- push {lr}
- cmp r0, 0x1
- beq _0800CD48
- cmp r0, 0x1
- ble _0800CD3E
- cmp r0, 0x2
- beq _0800CD50
- cmp r0, 0x3
- beq _0800CD58
-_0800CD3E:
- ldr r0, _0800CD44
- b _0800CD5A
- .align 2, 0
-_0800CD44: .4byte gUnknown_202D698
-_0800CD48:
- ldr r0, _0800CD4C
- b _0800CD5A
- .align 2, 0
-_0800CD4C: .4byte gUnknown_202D6A0
-_0800CD50:
- ldr r0, _0800CD54
- b _0800CD5A
- .align 2, 0
-_0800CD54: .4byte gUnknown_202D6A8
-_0800CD58:
- ldr r0, _0800CD60
-_0800CD5A:
- strh r1, [r0, 0x6]
- pop {r0}
- bx r0
- .align 2, 0
-_0800CD60: .4byte gUnknown_202D6B0
- thumb_func_end sub_800CD2C
-
- thumb_func_start sub_800CD64
-sub_800CD64:
- ldr r2, _0800CD7C
- strb r1, [r2]
- ldr r2, _0800CD80
- negs r1, r0
- orrs r1, r0
- asrs r1, 31
- movs r3, 0x80
- lsls r3, 8
- adds r0, r3, 0
- ands r1, r0
- strh r1, [r2, 0x2]
- bx lr
- .align 2, 0
-_0800CD7C: .4byte gUnknown_202D7FE
-_0800CD80: .4byte gUnknown_202D6A8
- thumb_func_end sub_800CD64
-
- thumb_func_start SetBGOBJEnableFlags
-SetBGOBJEnableFlags:
- push {r4,lr}
- movs r3, 0x80
- lsls r3, 19
- ldrh r1, [r3]
- ldr r2, _0800CDA4
- ands r2, r1
- lsls r0, 8
- movs r4, 0xF8
- lsls r4, 5
- adds r1, r4, 0
- bics r1, r0
- orrs r2, r1
- strh r2, [r3]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CDA4: .4byte 0x0000e0ff
- thumb_func_end SetBGOBJEnableFlags
-
- thumb_func_start sub_800CDA8
-sub_800CDA8:
- ldr r1, _0800CDBC
- str r0, [r1]
- ldr r2, _0800CDC0
- ldr r1, _0800CDC4
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0800CDBC: .4byte gUnknown_202D800
-_0800CDC0: .4byte gUnknown_202D7FC
-_0800CDC4: .4byte gUnknown_203B0BE
- thumb_func_end sub_800CDA8
-
- thumb_func_start sub_800CDC8
-sub_800CDC8:
- ldr r0, _0800CDD0
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0800CDD0: .4byte gUnknown_202D800
- thumb_func_end sub_800CDC8
-
- thumb_func_start SetWindowTitle
-SetWindowTitle:
- bx lr
- thumb_func_end SetWindowTitle
-
- thumb_func_start nullsub_23
-nullsub_23:
- bx lr
- thumb_func_end nullsub_23
-
- thumb_func_start nullsub_182
-nullsub_182:
- bx lr
- thumb_func_end nullsub_182
-
- thumb_func_start sub_800CDE0
-sub_800CDE0:
- movs r0, 0x1
- bx lr
- thumb_func_end sub_800CDE0
-
- thumb_func_start CpuCopy
-CpuCopy:
- push {lr}
- adds r3, r0, 0
- cmp r2, 0
- bge _0800CDEE
- adds r2, 0x3
-_0800CDEE:
- lsls r2, 9
- lsrs r2, 11
- movs r0, 0x80
- lsls r0, 19
- orrs r2, r0
- adds r0, r1, 0
- adds r1, r3, 0
- bl CpuSet
- pop {r0}
- bx r0
- thumb_func_end CpuCopy
-
- thumb_func_start CpuClear
-CpuClear:
- push {lr}
- sub sp, 0x4
- adds r3, r0, 0
- movs r0, 0
- str r0, [sp]
- cmp r1, 0
- bge _0800CE14
- adds r1, 0x3
-_0800CE14:
- lsls r2, r1, 9
- lsrs r2, 11
- movs r0, 0xA0
- lsls r0, 19
- orrs r2, r0
- mov r0, sp
- adds r1, r3, 0
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end CpuClear
-
- thumb_func_start CpuFill
-CpuFill:
- push {lr}
- sub sp, 0x4
- adds r3, r0, 0
- str r1, [sp]
- cmp r2, 0
- bge _0800CE3A
- adds r2, 0x3
-_0800CE3A:
- lsls r2, 9
- lsrs r2, 11
- movs r0, 0xA0
- lsls r0, 19
- orrs r2, r0
- mov r0, sp
- adds r1, r3, 0
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end CpuFill
-
- thumb_func_start sub_800CE54
-sub_800CE54:
- push {lr}
- ldr r2, _0800CEC0
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- ldr r1, _0800CEC4
- ands r0, r1
- strh r0, [r2]
- mov r8, r8
- mov r8, r8
- mov r8, r8
- mov r8, r8
- ldr r1, _0800CEC8
- ands r0, r1
- strh r0, [r2]
- ldr r1, _0800CECC
- ldr r2, _0800CED0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x3D
- strh r0, [r1]
- adds r1, 0x6
- ldr r0, _0800CED4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800CED8
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, _0800CEDC
- ldrb r1, [r0]
- cmp r1, 0
- beq _0800CEF4
- ldr r1, _0800CEE0
- ldr r0, _0800CEE4
- ldr r2, [r0]
- adds r0, r2, 0x4
- str r0, [r1]
- ldr r3, _0800CEE8
- str r3, [r1, 0x4]
- ldr r0, _0800CEEC
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldrh r0, [r2]
- strh r0, [r3]
- subs r1, 0x6E
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- ldr r0, _0800CEF0
- movs r1, 0xA0
- b _0800CEFE
- .align 2, 0
-_0800CEC0: .4byte 0x040000ba
-_0800CEC4: .4byte 0x0000cdff
-_0800CEC8: .4byte 0x00007fff
-_0800CECC: .4byte 0x04000048
-_0800CED0: .4byte 0x00003f3f
-_0800CED4: .4byte gUnknown_202D7FC
-_0800CED8: .4byte gUnknown_202D7FA
-_0800CEDC: .4byte gUnknown_2026E38
-_0800CEE0: .4byte 0x040000b0
-_0800CEE4: .4byte gUnknown_2026E3C
-_0800CEE8: .4byte 0x04000040
-_0800CEEC: .4byte 0xa2600002
-_0800CEF0: .4byte 0x04000044
-_0800CEF4:
- ldr r0, _0800CF08
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
-_0800CEFE:
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0800CF08: .4byte 0x04000040
- thumb_func_end sub_800CE54
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/code_800C9CC.s b/asm/code_800C9CC.s
new file mode 100644
index 0000000..99fd217
--- /dev/null
+++ b/asm/code_800C9CC.s
@@ -0,0 +1,761 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_800CA38
+sub_800CA38:
+ push {r4,lr}
+ adds r4, r0, 0
+ bl IsBGSong
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800CA54
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl sub_800CAE0
+ lsls r0, 16
+ cmp r0, 0
+ beq _0800CA70
+_0800CA54:
+ adds r0, r4, 0
+ bl sub_800CACC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800CA74
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl sub_800CAE0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _0800CA90
+_0800CA70:
+ movs r0, 0x1
+ b _0800CA92
+_0800CA74:
+ adds r0, r4, 0
+ bl sub_800CAAC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800CA90
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl sub_800CAE0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0800CA70
+_0800CA90:
+ movs r0, 0
+_0800CA92:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800CA38
+
+ thumb_func_start nullsub_19
+nullsub_19:
+ bx lr
+ thumb_func_end nullsub_19
+
+ thumb_func_start IsBGSong
+IsBGSong:
+ push {lr}
+ cmp r0, 128 @ Anything less than/equal 128 is a BG song
+ bls _0800CAA6
+ movs r0, 0
+ b _0800CAA8
+_0800CAA6:
+ movs r0, 0x1
+_0800CAA8:
+ pop {r1}
+ bx r1
+ thumb_func_end IsBGSong
+
+ thumb_func_start sub_800CAAC
+sub_800CAAC:
+ push {lr}
+ ldr r1, _0800CABC
+ adds r0, r1
+ ldr r1, _0800CAC0
+ cmp r0, r1
+ bls _0800CAC4
+ movs r0, 0
+ b _0800CAC6
+ .align 2, 0
+_0800CABC: .4byte 0xfffffed4 @ -299
+_0800CAC0: .4byte 0x0000027f
+_0800CAC4:
+ movs r0, 0x1
+_0800CAC6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800CAAC
+
+ thumb_func_start sub_800CACC
+sub_800CACC:
+ push {lr}
+ @ Checking a table between 200 and 219... level up/trap sound effects?
+ subs r0, 0xC8
+ cmp r0, 0x13
+ bls _0800CAD8
+ movs r0, 0
+ b _0800CADA
+_0800CAD8:
+ movs r0, 0x1
+_0800CADA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800CACC
+
+ thumb_func_start sub_800CAE0
+sub_800CAE0:
+ lsls r0, 16
+ ldr r1, _0800CAEC
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_0800CAEC: .4byte gSongTable
+ thumb_func_end sub_800CAE0
+
+ thumb_func_start sub_800CAF0
+sub_800CAF0:
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0800CB0C
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ beq _0800CB10
+ movs r0, 0x1
+ b _0800CB12
+ .align 2, 0
+_0800CB0C: .4byte gMPlayTable
+_0800CB10:
+ movs r0, 0
+_0800CB12:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800CAF0
+
+ thumb_func_start nullsub_20
+nullsub_20:
+ bx lr
+ thumb_func_end nullsub_20
+
+ thumb_func_start nullsub_21
+nullsub_21:
+ bx lr
+ thumb_func_end nullsub_21
+
+ thumb_func_start sub_800CB20
+sub_800CB20:
+ push {lr}
+ bl sub_800BA5C
+ ldr r1, _0800CB48
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r0, _0800CB4C
+ ldrh r1, [r0]
+ movs r0, 0x5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800CB3E
+ bl Random
+_0800CB3E:
+ bl Random
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CB48: .4byte gUnknown_203B0B8
+_0800CB4C: .4byte gUnknown_203B0BC
+ thumb_func_end sub_800CB20
+
+ thumb_func_start sub_800CB50
+sub_800CB50:
+ ldr r0, _0800CB58
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_0800CB58: .4byte gUnknown_203B0B8
+ thumb_func_end sub_800CB50
+
+ thumb_func_start nullsub_180
+nullsub_180:
+ bx lr
+ thumb_func_end nullsub_180
+
+ thumb_func_start xxx_call_update_bg_sound_input
+xxx_call_update_bg_sound_input:
+ push {lr}
+ bl xxx_update_bg_sound_input
+ pop {r0}
+ bx r0
+ thumb_func_end xxx_call_update_bg_sound_input
+
+ thumb_func_start nullsub_181
+nullsub_181:
+ bx lr
+ thumb_func_end nullsub_181
+
+ thumb_func_start sub_800CB70
+sub_800CB70:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_800CB70
+
+ thumb_func_start ReadKeyInput
+ReadKeyInput:
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r0, _0800CC38
+ ldrh r1, [r0]
+ ldr r3, _0800CC3C
+ adds r0, r3, 0
+ adds r3, r0, 0
+ eors r3, r1
+ movs r0, 0
+ strh r0, [r2]
+ movs r1, 0x40
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800CB94
+ strh r1, [r2]
+_0800CB94:
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _0800CBA4
+ ldrh r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strh r0, [r2]
+_0800CBA4:
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _0800CBB4
+ ldrh r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strh r0, [r2]
+_0800CBB4:
+ movs r0, 0x10
+ ands r0, r3
+ cmp r0, 0
+ beq _0800CBC4
+ ldrh r0, [r2]
+ movs r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+_0800CBC4:
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0800CBD4
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+_0800CBD4:
+ movs r0, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _0800CBE4
+ ldrh r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+_0800CBE4:
+ movs r0, 0x8
+ ands r0, r3
+ cmp r0, 0
+ beq _0800CBF4
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+_0800CBF4:
+ movs r0, 0x4
+ ands r0, r3
+ cmp r0, 0
+ beq _0800CC04
+ ldrh r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strh r0, [r2]
+_0800CC04:
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r3, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _0800CC18
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+_0800CC18:
+ movs r4, 0x80
+ lsls r4, 2
+ adds r0, r3, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _0800CC2C
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+_0800CC2C:
+ ldr r0, _0800CC40
+ strh r3, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CC38: .4byte 0x04000130
+_0800CC3C: .4byte 0x000003ff
+_0800CC40: .4byte gUnknown_203B0BC
+ thumb_func_end ReadKeyInput
+
+ thumb_func_start sub_800CC44
+sub_800CC44:
+ push {lr}
+ adds r2, r1, 0
+ cmp r0, 0
+ bge _0800CC50
+ movs r0, 0
+ b _0800CC56
+_0800CC50:
+ cmp r0, 0x10
+ ble _0800CC56
+ movs r0, 0x10
+_0800CC56:
+ cmp r2, 0
+ bge _0800CC5E
+ movs r2, 0
+ b _0800CC64
+_0800CC5E:
+ cmp r2, 0x10
+ ble _0800CC64
+ movs r2, 0x10
+_0800CC64:
+ ldr r1, _0800CC7C
+ strb r0, [r1]
+ ldr r0, _0800CC80
+ strb r2, [r0]
+ ldr r2, _0800CC84
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CC7C: .4byte gUnknown_202D6B8
+_0800CC80: .4byte gUnknown_202D6B9
+_0800CC84: .4byte gUnknown_202D7FA
+ thumb_func_end sub_800CC44
+
+ thumb_func_start sub_800CC88
+sub_800CC88:
+ ldr r2, _0800CC90
+ strh r0, [r2, 0x4]
+ strh r1, [r2, 0x6]
+ bx lr
+ .align 2, 0
+_0800CC90: .4byte gUnknown_202D698
+ thumb_func_end sub_800CC88
+
+ thumb_func_start sub_800CC94
+sub_800CC94:
+ ldr r2, _0800CC9C
+ strh r0, [r2, 0x4]
+ strh r1, [r2, 0x6]
+ bx lr
+ .align 2, 0
+_0800CC9C: .4byte gUnknown_202D6A0
+ thumb_func_end sub_800CC94
+
+ thumb_func_start sub_800CCA0
+sub_800CCA0:
+ ldr r2, _0800CCA8
+ strh r0, [r2, 0x4]
+ strh r1, [r2, 0x6]
+ bx lr
+ .align 2, 0
+_0800CCA8: .4byte gUnknown_202D6A8
+ thumb_func_end sub_800CCA0
+
+ thumb_func_start sub_800CCAC
+sub_800CCAC:
+ ldr r2, _0800CCB4
+ strh r0, [r2, 0x4]
+ strh r1, [r2, 0x6]
+ bx lr
+ .align 2, 0
+_0800CCB4: .4byte gUnknown_202D6B0
+ thumb_func_end sub_800CCAC
+
+ thumb_func_start sub_800CCB8
+sub_800CCB8:
+ push {lr}
+ cmp r0, 0x1
+ beq _0800CCD4
+ cmp r0, 0x1
+ ble _0800CCCA
+ cmp r0, 0x2
+ beq _0800CCDE
+ cmp r0, 0x3
+ beq _0800CCE8
+_0800CCCA:
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl sub_800CC88
+ b _0800CCF0
+_0800CCD4:
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl sub_800CC94
+ b _0800CCF0
+_0800CCDE:
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl sub_800CCA0
+ b _0800CCF0
+_0800CCE8:
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl sub_800CCAC
+_0800CCF0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800CCB8
+
+ thumb_func_start sub_800CCF4
+sub_800CCF4:
+ push {lr}
+ cmp r0, 0x1
+ beq _0800CD10
+ cmp r0, 0x1
+ ble _0800CD06
+ cmp r0, 0x2
+ beq _0800CD18
+ cmp r0, 0x3
+ beq _0800CD20
+_0800CD06:
+ ldr r0, _0800CD0C
+ b _0800CD22
+ .align 2, 0
+_0800CD0C: .4byte gUnknown_202D698
+_0800CD10:
+ ldr r0, _0800CD14
+ b _0800CD22
+ .align 2, 0
+_0800CD14: .4byte gUnknown_202D6A0
+_0800CD18:
+ ldr r0, _0800CD1C
+ b _0800CD22
+ .align 2, 0
+_0800CD1C: .4byte gUnknown_202D6A8
+_0800CD20:
+ ldr r0, _0800CD28
+_0800CD22:
+ strh r1, [r0, 0x4]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CD28: .4byte gUnknown_202D6B0
+ thumb_func_end sub_800CCF4
+
+ thumb_func_start sub_800CD2C
+sub_800CD2C:
+ push {lr}
+ cmp r0, 0x1
+ beq _0800CD48
+ cmp r0, 0x1
+ ble _0800CD3E
+ cmp r0, 0x2
+ beq _0800CD50
+ cmp r0, 0x3
+ beq _0800CD58
+_0800CD3E:
+ ldr r0, _0800CD44
+ b _0800CD5A
+ .align 2, 0
+_0800CD44: .4byte gUnknown_202D698
+_0800CD48:
+ ldr r0, _0800CD4C
+ b _0800CD5A
+ .align 2, 0
+_0800CD4C: .4byte gUnknown_202D6A0
+_0800CD50:
+ ldr r0, _0800CD54
+ b _0800CD5A
+ .align 2, 0
+_0800CD54: .4byte gUnknown_202D6A8
+_0800CD58:
+ ldr r0, _0800CD60
+_0800CD5A:
+ strh r1, [r0, 0x6]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CD60: .4byte gUnknown_202D6B0
+ thumb_func_end sub_800CD2C
+
+ thumb_func_start sub_800CD64
+sub_800CD64:
+ ldr r2, _0800CD7C
+ strb r1, [r2]
+ ldr r2, _0800CD80
+ negs r1, r0
+ orrs r1, r0
+ asrs r1, 31
+ movs r3, 0x80
+ lsls r3, 8
+ adds r0, r3, 0
+ ands r1, r0
+ strh r1, [r2, 0x2]
+ bx lr
+ .align 2, 0
+_0800CD7C: .4byte gUnknown_202D7FE
+_0800CD80: .4byte gUnknown_202D6A8
+ thumb_func_end sub_800CD64
+
+ thumb_func_start SetBGOBJEnableFlags
+SetBGOBJEnableFlags:
+ push {r4,lr}
+ movs r3, 0x80
+ lsls r3, 19
+ ldrh r1, [r3]
+ ldr r2, _0800CDA4
+ ands r2, r1
+ lsls r0, 8
+ movs r4, 0xF8
+ lsls r4, 5
+ adds r1, r4, 0
+ bics r1, r0
+ orrs r2, r1
+ strh r2, [r3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CDA4: .4byte 0x0000e0ff
+ thumb_func_end SetBGOBJEnableFlags
+
+ thumb_func_start sub_800CDA8
+sub_800CDA8:
+ ldr r1, _0800CDBC
+ str r0, [r1]
+ ldr r2, _0800CDC0
+ ldr r1, _0800CDC4
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0800CDBC: .4byte gUnknown_202D800
+_0800CDC0: .4byte gUnknown_202D7FC
+_0800CDC4: .4byte gUnknown_203B0BE
+ thumb_func_end sub_800CDA8
+
+ thumb_func_start sub_800CDC8
+sub_800CDC8:
+ ldr r0, _0800CDD0
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_0800CDD0: .4byte gUnknown_202D800
+ thumb_func_end sub_800CDC8
+
+ thumb_func_start SetWindowTitle
+SetWindowTitle:
+ bx lr
+ thumb_func_end SetWindowTitle
+
+ thumb_func_start nullsub_23
+nullsub_23:
+ bx lr
+ thumb_func_end nullsub_23
+
+ thumb_func_start nullsub_182
+nullsub_182:
+ bx lr
+ thumb_func_end nullsub_182
+
+ thumb_func_start sub_800CDE0
+sub_800CDE0:
+ movs r0, 0x1
+ bx lr
+ thumb_func_end sub_800CDE0
+
+ thumb_func_start CpuCopy
+CpuCopy:
+ push {lr}
+ adds r3, r0, 0
+ cmp r2, 0
+ bge _0800CDEE
+ adds r2, 0x3
+_0800CDEE:
+ lsls r2, 9
+ lsrs r2, 11
+ movs r0, 0x80
+ lsls r0, 19
+ orrs r2, r0
+ adds r0, r1, 0
+ adds r1, r3, 0
+ bl CpuSet
+ pop {r0}
+ bx r0
+ thumb_func_end CpuCopy
+
+ thumb_func_start CpuClear
+CpuClear:
+ push {lr}
+ sub sp, 0x4
+ adds r3, r0, 0
+ movs r0, 0
+ str r0, [sp]
+ cmp r1, 0
+ bge _0800CE14
+ adds r1, 0x3
+_0800CE14:
+ lsls r2, r1, 9
+ lsrs r2, 11
+ movs r0, 0xA0
+ lsls r0, 19
+ orrs r2, r0
+ mov r0, sp
+ adds r1, r3, 0
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end CpuClear
+
+ thumb_func_start CpuFill
+CpuFill:
+ push {lr}
+ sub sp, 0x4
+ adds r3, r0, 0
+ str r1, [sp]
+ cmp r2, 0
+ bge _0800CE3A
+ adds r2, 0x3
+_0800CE3A:
+ lsls r2, 9
+ lsrs r2, 11
+ movs r0, 0xA0
+ lsls r0, 19
+ orrs r2, r0
+ mov r0, sp
+ adds r1, r3, 0
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end CpuFill
+
+ thumb_func_start sub_800CE54
+sub_800CE54:
+ push {lr}
+ ldr r2, _0800CEC0
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ ldr r1, _0800CEC4
+ ands r0, r1
+ strh r0, [r2]
+ mov r8, r8
+ mov r8, r8
+ mov r8, r8
+ mov r8, r8
+ ldr r1, _0800CEC8
+ ands r0, r1
+ strh r0, [r2]
+ ldr r1, _0800CECC
+ ldr r2, _0800CED0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x3D
+ strh r0, [r1]
+ adds r1, 0x6
+ ldr r0, _0800CED4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800CED8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r0, _0800CEDC
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _0800CEF4
+ ldr r1, _0800CEE0
+ ldr r0, _0800CEE4
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ str r0, [r1]
+ ldr r3, _0800CEE8
+ str r3, [r1, 0x4]
+ ldr r0, _0800CEEC
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ subs r1, 0x6E
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ ldr r0, _0800CEF0
+ movs r1, 0xA0
+ b _0800CEFE
+ .align 2, 0
+_0800CEC0: .4byte 0x040000ba
+_0800CEC4: .4byte 0x0000cdff
+_0800CEC8: .4byte 0x00007fff
+_0800CECC: .4byte 0x04000048
+_0800CED0: .4byte 0x00003f3f
+_0800CED4: .4byte gUnknown_202D7FC
+_0800CED8: .4byte gUnknown_202D7FA
+_0800CEDC: .4byte gUnknown_2026E38
+_0800CEE0: .4byte 0x040000b0
+_0800CEE4: .4byte gUnknown_2026E3C
+_0800CEE8: .4byte 0x04000040
+_0800CEEC: .4byte 0xa2600002
+_0800CEF0: .4byte 0x04000044
+_0800CEF4:
+ ldr r0, _0800CF08
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+_0800CEFE:
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800CF08: .4byte 0x04000040
+ thumb_func_end sub_800CE54
+
+ .align 2,0