summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/bg_palette_buffer.s133
-rw-r--r--asm/code.s4
-rw-r--r--asm/code_800B540.s100
-rw-r--r--asm/code_800D090.s4
-rw-r--r--asm/code_8012A18.s272
-rw-r--r--asm/input.s94
-rw-r--r--asm/m4a.s4625
-rw-r--r--asm/m4a_1.s1647
-rw-r--r--asm/m4a_2.s70
-rw-r--r--asm/m4a_3.s574
-rw-r--r--asm/memory.s323
-rw-r--r--asm/rom_header.inc33
-rw-r--r--asm/save.s160
-rw-r--r--asm/sprite.s33
14 files changed, 2596 insertions, 5476 deletions
diff --git a/asm/bg_palette_buffer.s b/asm/bg_palette_buffer.s
index 9b42ee5..9cafb43 100644
--- a/asm/bg_palette_buffer.s
+++ b/asm/bg_palette_buffer.s
@@ -9,7 +9,7 @@
InitBGPaletteBuffer:
push {lr}
movs r2, 0
- ldr r1, _0800465C
+ ldr r1, =gBGPaletteBuffer
movs r0, 0x80
lsls r0, 2
_0800463E:
@@ -18,7 +18,7 @@ _0800463E:
subs r0, 0x1
cmp r0, 0
bne _0800463E
- ldr r1, _08004660
+ ldr r1, =gBGPaletteUsed
movs r2, 0x1
adds r0, r1, 0
adds r0, 0x1F
@@ -30,8 +30,7 @@ _08004650:
pop {r0}
bx r0
.align 2, 0
-_0800465C: .4byte gUnknown_20251F0
-_08004660: .4byte gUnknown_20251D0
+ .pool
thumb_func_end InitBGPaletteBuffer
thumb_func_start SetBGPaletteBufferColorRGB
@@ -47,7 +46,7 @@ _08004670:
ble _08004676
movs r2, 0x1F
_08004676:
- ldr r1, _080046CC
+ ldr r1, =gBGPaletteUsed
adds r0, r4, 0
cmp r4, 0
bge _08004680
@@ -59,7 +58,7 @@ _08004680:
strb r1, [r0]
cmp r3, 0
bne _080046D4
- ldr r0, _080046D0
+ ldr r0, =gBGPaletteBuffer
lsls r1, r4, 1
adds r6, r1, r0
ldrb r0, [r5, 0x2]
@@ -94,10 +93,9 @@ _080046C0:
strh r1, [r6]
b _08004722
.align 2, 0
-_080046CC: .4byte gUnknown_20251D0
-_080046D0: .4byte gUnknown_20251F0
+ .pool
_080046D4:
- ldr r1, _08004728
+ ldr r1, =gBGPaletteBuffer
lsls r0, r4, 1
adds r7, r0, r1
ldrb r0, [r5, 0x2]
@@ -144,120 +142,7 @@ _08004722:
pop {r0}
bx r0
.align 2, 0
-_08004728: .4byte gUnknown_20251F0
+ .pool
thumb_func_end SetBGPaletteBufferColorRGB
- thumb_func_start SetBGPaletteBufferColorArray
-SetBGPaletteBufferColorArray:
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- ldr r1, _08004764
- cmp r2, 0
- bge _0800473A
- adds r0, 0xF
-_0800473A:
- asrs r0, 4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08004768
- lsls r2, 1
- adds r2, r0
- ldrb r1, [r3, 0x2]
- lsrs r1, 3
- lsls r1, 10
- ldrb r0, [r3, 0x1]
- lsrs r0, 3
- lsls r0, 5
- orrs r1, r0
- ldrb r0, [r3]
- lsrs r0, 3
- orrs r0, r1
- strh r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_08004764: .4byte gUnknown_20251D0
-_08004768: .4byte gUnknown_20251F0
- thumb_func_end SetBGPaletteBufferColorArray
-
- thumb_func_start SetBGPaletteBufferColor
-SetBGPaletteBufferColor:
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- ldr r1, _08004790
- cmp r2, 0
- bge _0800477A
- adds r0, 0xF
-_0800477A:
- asrs r0, 4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, _08004794
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r3]
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08004790: .4byte gUnknown_20251D0
-_08004794: .4byte gUnknown_20251F0
- thumb_func_end SetBGPaletteBufferColor
-
- thumb_func_start nullsub_4
-nullsub_4:
- bx lr
- thumb_func_end nullsub_4
-
- thumb_func_start nullsub_5
-nullsub_5:
- bx lr
- thumb_func_end nullsub_5
-
- thumb_func_start nullsub_143
-nullsub_143:
- bx lr
- thumb_func_end nullsub_143
-
- thumb_func_start TransferBGPaletteBuffer
-TransferBGPaletteBuffer:
- push {r4-r6,lr}
- movs r6, 0
- movs r4, 0
- movs r5, 0xA0
- lsls r5, 19
-_080047AE:
- ldr r0, _080047DC
- adds r1, r6, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080047CA
- movs r0, 0
- strb r0, [r1]
- lsls r1, r4, 1
- ldr r0, _080047E0
- adds r1, r0
- adds r0, r5, 0
- movs r2, 0x20
- bl CpuCopy
-_080047CA:
- adds r6, 0x1
- adds r5, 0x20
- adds r4, 0x10
- ldr r0, _080047E4
- cmp r4, r0
- ble _080047AE
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080047DC: .4byte gUnknown_20251D0
-_080047E0: .4byte gUnknown_20251F0
-_080047E4: .4byte 0x000001ff
- thumb_func_end TransferBGPaletteBuffer
-
- .align 2, 0 @ Don't pad with nop.
+.align 2, 0 @ Don't pad with nop. \ No newline at end of file
diff --git a/asm/code.s b/asm/code.s
index ba969d1..8a85646 100644
--- a/asm/code.s
+++ b/asm/code.s
@@ -198,7 +198,7 @@ _08000406:
movs r0, 0x2
bl sub_800A8F8
movs r0, 0x1
- bl sub_8004D8C
+ bl ResetSprites
movs r0, 0
bl xxx_update_some_bg_tiles
bl sub_80097B0
@@ -431,7 +431,7 @@ xxx_update_stuff:
bl sub_8009908
bl xxx_call_update_bg_sound_input
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
pop {r0}
bx r0
.align 2, 0
diff --git a/asm/code_800B540.s b/asm/code_800B540.s
index 1f7afbc..85105f7 100644
--- a/asm/code_800B540.s
+++ b/asm/code_800B540.s
@@ -1062,7 +1062,7 @@ sub_800BD08:
ands r3, r1
strh r3, [r0, 0xA]
ldrh r0, [r0, 0xA]
- bl sub_80AEF24
+ bl m4aSoundInit
ldr r0, _0800BDB8
movs r2, 0
strh r2, [r0]
@@ -1184,7 +1184,7 @@ _0800BE4C:
movs r0, 0x1
strh r0, [r1]
adds r0, r6, 0
- bl sub_80AEFA8
+ bl m4aSongNumStart
_0800BE70:
cmp r4, 0
beq _0800BE78
@@ -1258,19 +1258,19 @@ _0800BEE0:
movs r1, 0x1
strh r1, [r0]
adds r0, r6, 0
- bl sub_80AEFA8
+ bl m4aSongNumStart
ldr r4, _0800BF44
adds r0, r4, 0
- bl sub_80AF198
+ bl m4aMPlayImmInit
adds r0, r4, 0
movs r1, 0xFF
movs r2, 0
- bl sub_80AFF50
+ bl m4aMPlayVolumeControl
adds r0, r6, 0
- bl sub_80AF074
+ bl m4aSongNumStop
adds r0, r4, 0
adds r1, r5, 0
- bl sub_80AF170
+ bl m4aMPlayFadeIn
_0800BF26:
cmp r7, 0
beq _0800BF2E
@@ -1333,7 +1333,7 @@ sub_800BF80:
cmp r1, r0
beq _0800BFA2
ldr r0, _0800BFC8
- bl sub_80AF7C0
+ bl m4aMPlayStop
_0800BFA2:
ldr r0, _0800BFC0
ldr r2, _0800BFC4
@@ -1392,7 +1392,7 @@ _0800BFE8:
strh r0, [r1]
ldr r0, _0800C028
adds r1, r4, 0
- bl sub_80AF140
+ bl m4aMPlayFadeOut
b _0800C044
.align 2, 0
_0800C018: .4byte gUnknown_202D690
@@ -1403,7 +1403,7 @@ _0800C028: .4byte gUnknown_20008F0
_0800C02C:
strh r2, [r3]
ldr r0, _0800C038
- bl sub_80AF7C0
+ bl m4aMPlayStop
b _0800C044
.align 2, 0
_0800C038: .4byte gUnknown_20008F0
@@ -1506,7 +1506,7 @@ _0800C0B4:
strb r2, [r0]
ldr r0, _0800C11C
movs r1, 0x1
- bl sub_80AF150
+ bl m4aMPlayFadeOutTemporarily
b _0800C15E
.align 2, 0
_0800C0FC: .4byte 0x000003e5
@@ -1529,9 +1529,9 @@ _0800C12C:
movs r0, 0x3
strh r0, [r4]
ldr r0, _0800C140
- bl sub_80AF7C0
+ bl m4aMPlayStop
ldrh r0, [r6]
- bl sub_80AEFA8
+ bl m4aSongNumStart
b _0800C15E
.align 2, 0
_0800C140: .4byte gUnknown_20008F0
@@ -1542,9 +1542,9 @@ _0800C144:
cmp r0, 0x1
bls _0800C15E
ldr r0, _0800C17C
- bl sub_80AF7C0
+ bl m4aMPlayStop
ldrh r0, [r6]
- bl sub_80AEFA8
+ bl m4aSongNumStart
movs r0, 0x3
_0800C15C:
strh r0, [r4]
@@ -1618,7 +1618,7 @@ _0800C1DC:
lsls r0, 24
lsrs r5, r0, 24
mov r0, r8
- bl sub_80AEFA8
+ bl m4aSongNumStart
movs r0, 0x1
strh r0, [r4]
mov r0, r8
@@ -1693,7 +1693,7 @@ _0800C22C:
mov r0, r8
movs r1, 0xF
adds r2, r7, 0
- bl sub_80AFF50
+ bl m4aMPlayVolumeControl
_0800C27E:
cmp r6, 0
beq _0800C286
@@ -1705,7 +1705,7 @@ _0800C286:
pop {r0}
bx r0
.align 2, 0
-_0800C290: .4byte gUnknown_9E8665C
+_0800C290: .4byte gMPlayTable
_0800C294: .4byte gUnknown_3000FD8
thumb_func_end sub_800C214
@@ -1736,7 +1736,7 @@ sub_800C298:
movs r5, 0x4
_0800C2C8:
ldr r0, [r6]
- bl sub_80AF7C0
+ bl m4aMPlayStop
strh r7, [r4]
mov r2, r8
strh r2, [r4, 0x2]
@@ -1756,7 +1756,7 @@ _0800C2C8:
.align 2, 0
_0800C2F0: .4byte 0x000003e5
_0800C2F4: .4byte gUnknown_3000FE8
-_0800C2F8: .4byte gUnknown_9E8665C
+_0800C2F8: .4byte gMPlayTable
_0800C2FC:
adds r0, r5, 0
bl sub_800CAAC
@@ -1782,7 +1782,7 @@ _0800C2FC:
bl nullsub_21
b _0800C3DE
.align 2, 0
-_0800C330: .4byte gUnknown_9E8665C
+_0800C330: .4byte gMPlayTable
_0800C334: .4byte gUnknown_3000FD8
_0800C338:
bl sub_800B620
@@ -1792,7 +1792,7 @@ _0800C338:
cmp r0, r5
bne _0800C35A
adds r0, r7, 0
- bl sub_80AF7C0
+ bl m4aMPlayStop
movs r1, 0
movs r0, 0
strh r0, [r4]
@@ -1823,7 +1823,7 @@ _0800C364:
mov r0, r8
strh r0, [r1]
ldr r0, _0800C3A4
- bl sub_80AF7C0
+ bl m4aMPlayStop
_0800C38C:
cmp r4, 0
beq _0800C3DE
@@ -1854,7 +1854,7 @@ _0800C3A8:
mov r2, r8
strh r2, [r1]
ldr r0, _0800C3F4
- bl sub_80AF7C0
+ bl m4aMPlayStop
_0800C3D6:
cmp r4, 0
beq _0800C3DE
@@ -1924,15 +1924,15 @@ _0800C43E:
beq _0800C46C
ldr r0, [r6]
mov r1, r9
- bl sub_80AF140
+ bl m4aMPlayFadeOut
b _0800C47E
.align 2, 0
_0800C460: .4byte 0x000003e5
_0800C464: .4byte gUnknown_3000FE8
-_0800C468: .4byte gUnknown_9E8665C
+_0800C468: .4byte gMPlayTable
_0800C46C:
ldr r0, [r6]
- bl sub_80AF7C0
+ bl m4aMPlayStop
strh r4, [r5]
mov r1, r8
strh r1, [r5, 0x2]
@@ -1985,14 +1985,14 @@ _0800C496:
beq _0800C4EC
adds r0, r6, 0
mov r1, r9
- bl sub_80AF140
+ bl m4aMPlayFadeOut
b _0800C4FE
.align 2, 0
_0800C4E4: .4byte gUnknown_3000FD8
-_0800C4E8: .4byte gUnknown_9E8665C
+_0800C4E8: .4byte gMPlayTable
_0800C4EC:
adds r0, r6, 0
- bl sub_80AF7C0
+ bl m4aMPlayStop
movs r0, 0
strh r4, [r5]
mov r1, r8
@@ -2026,7 +2026,7 @@ _0800C508:
beq _0800C54C
ldr r0, _0800C548
mov r1, r9
- bl sub_80AF140
+ bl m4aMPlayFadeOut
b _0800C556
.align 2, 0
_0800C53C: .4byte 0x000003e6
@@ -2035,7 +2035,7 @@ _0800C544: .4byte gUnknown_202D68E
_0800C548: .4byte gUnknown_2000970
_0800C54C:
ldr r0, _0800C560
- bl sub_80AF7C0
+ bl m4aMPlayStop
mov r0, r8
strh r0, [r4]
_0800C556:
@@ -2069,7 +2069,7 @@ _0800C564:
beq _0800C5AC
ldr r0, _0800C5A8
mov r1, r9
- bl sub_80AF140
+ bl m4aMPlayFadeOut
b _0800C5B6
.align 2, 0
_0800C5A0: .4byte gUnknown_202D690
@@ -2077,7 +2077,7 @@ _0800C5A4: .4byte gUnknown_202D68E
_0800C5A8: .4byte gUnknown_2000970
_0800C5AC:
ldr r0, _0800C5CC
- bl sub_80AF7C0
+ bl m4aMPlayStop
mov r1, r8
strh r1, [r5]
_0800C5B6:
@@ -2246,7 +2246,7 @@ _0800C6D8:
beq _0800C718
ldrh r0, [r2]
_0800C6E4:
- bl sub_80AEFA8
+ bl m4aSongNumStart
movs r0, 0x3
strh r0, [r4]
b _0800C8A2
@@ -2297,7 +2297,7 @@ _0800C74C: .4byte gUnknown_202D68E
_0800C750: .4byte 0x000003e5
_0800C754:
ldr r0, _0800C76C
- bl sub_80AF7C0
+ bl m4aMPlayStop
_0800C75A:
ldr r1, _0800C770
ldrh r0, [r1]
@@ -2324,7 +2324,7 @@ _0800C774:
cmp r0, 0
beq _0800C7A4
ldrh r0, [r3]
- bl sub_80AEFA8
+ bl m4aSongNumStart
b _0800C7BE
.align 2, 0
_0800C794: .4byte gUnknown_202D68A
@@ -2334,7 +2334,7 @@ _0800C7A0: .4byte gUnknown_202D694
_0800C7A4:
ldr r0, _0800C7B0
movs r1, 0x4
- bl sub_80AF170
+ bl m4aMPlayFadeIn
b _0800C7BE
.align 2, 0
_0800C7B0: .4byte gUnknown_20008F0
@@ -2342,7 +2342,7 @@ _0800C7B4:
ldr r0, _0800C7CC
strh r2, [r0]
ldr r0, _0800C7D0
- bl sub_80AF7C0
+ bl m4aMPlayStop
_0800C7BE:
ldr r1, _0800C7D4
movs r0, 0
@@ -2402,7 +2402,7 @@ _0800C834: .4byte gUnknown_202D68A
_0800C838: .4byte 0x000003e7
_0800C83C:
ldr r0, _0800C854
- bl sub_80AF7C0
+ bl m4aMPlayStop
_0800C842:
ldr r1, _0800C858
movs r0, 0
@@ -2436,7 +2436,7 @@ _0800C864:
ldr r0, _0800C898
strh r2, [r0]
adds r0, r1, 0
- bl sub_80AEFA8
+ bl m4aSongNumStart
strh r4, [r6]
b _0800C8A2
.align 2, 0
@@ -2503,10 +2503,10 @@ _0800C8F0:
ldr r0, [r0]
ldrh r2, [r4, 0x4]
movs r1, 0xFF
- bl sub_80AFF50
+ bl m4aMPlayVolumeControl
b _0800C926
.align 2, 0
-_0800C918: .4byte gUnknown_9E8665C
+_0800C918: .4byte gMPlayTable
_0800C91C:
strh r0, [r4]
mov r1, r8
@@ -2579,8 +2579,8 @@ _0800C9A8:
strh r0, [r4]
_0800C9AC:
ldr r0, _0800C9C8
- bl sub_80AF7C0
- bl sub_80AF5AC
+ bl m4aMPlayStop
+ bl m4aSoundVSyncOff
cmp r5, 0
beq _0800C9BE
bl sub_800B5F0
@@ -2599,7 +2599,7 @@ sub_800C9CC:
bl sub_800B620
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80AF628
+ bl m4aSoundVSyncOn
ldr r0, _0800CA08
ldrh r0, [r0]
cmp r0, 0
@@ -2620,7 +2620,7 @@ sub_800C9CC:
cmp r0, 0
beq _0800CA1C
ldrh r0, [r2]
- bl sub_80AEFA8
+ bl m4aSongNumStart
b _0800CA22
.align 2, 0
_0800CA08: .4byte gUnknown_202D690
@@ -2630,7 +2630,7 @@ _0800CA14: .4byte gUnknown_202D688
_0800CA18: .4byte gUnknown_202D694
_0800CA1C:
ldr r0, _0800CA30
- bl sub_80AF108
+ bl m4aMPlayContinue
_0800CA22:
cmp r4, 0
beq _0800CA2A
@@ -2762,7 +2762,7 @@ sub_800CAE0:
ldrh r0, [r0, 0x4]
bx lr
.align 2, 0
-_0800CAEC: .4byte gUnknown_9E866BC
+_0800CAEC: .4byte gSongTable
thumb_func_end sub_800CAE0
thumb_func_start sub_800CAF0
@@ -2782,7 +2782,7 @@ sub_800CAF0:
movs r0, 0x1
b _0800CB12
.align 2, 0
-_0800CB0C: .4byte gUnknown_9E8665C
+_0800CB0C: .4byte gMPlayTable
_0800CB10:
movs r0, 0
_0800CB12:
diff --git a/asm/code_800D090.s b/asm/code_800D090.s
index 583fe83..4f43b66 100644
--- a/asm/code_800D090.s
+++ b/asm/code_800D090.s
@@ -7661,7 +7661,7 @@ sub_8010960:
bl xxx_call_update_bg_sound_input
bl sub_8011860
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
pop {r4-r6}
pop {r0}
bx r0
@@ -9290,7 +9290,7 @@ sub_801169C:
bl xxx_call_update_bg_sound_input
bl sub_8011860
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
add sp, 0x8
pop {r4-r6}
pop {r0}
diff --git a/asm/code_8012A18.s b/asm/code_8012A18.s
index bf8e220..e462a67 100644
--- a/asm/code_8012A18.s
+++ b/asm/code_8012A18.s
@@ -25,7 +25,7 @@ sub_8012A18:
bl sub_8009908
bl xxx_call_update_bg_sound_input
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
pop {r0}
bx r0
.align 2, 0
@@ -4698,7 +4698,7 @@ _08014E10:
adds r4, r1, r0
b _08014F0C
.align 2, 0
-_08014E20: .4byte gUnknown_202D3B8
+_08014E20: .4byte gFileCache + 0x110
_08014E24:
adds r5, 0x1
movs r0, 0
@@ -17484,7 +17484,7 @@ sub_801B3C0:
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0x1
- bl sub_8004D8C
+ bl ResetSprites
ldr r4, _0801B40C
movs r0, 0x94
movs r1, 0x8
@@ -19806,7 +19806,7 @@ sub_801C620:
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
- bl sub_8004D8C
+ bl ResetSprites
ldr r5, _0801C670
movs r0, 0x94
movs r1, 0x8
@@ -26163,7 +26163,7 @@ sub_801F808:
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x1
- bl sub_8004D8C
+ bl ResetSprites
ldr r5, _0801F88C
movs r0, 0xD4
movs r1, 0x8
@@ -41273,7 +41273,7 @@ _0802706E:
sub_8027074:
push {r4,lr}
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
ldr r4, _080270A0
movs r0, 0xF0
lsls r0, 1
@@ -73146,7 +73146,7 @@ sub_8036FDC:
movs r2, 0x1
bl sub_800641C
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
ldr r5, _080370C0
ldr r0, [r5]
cmp r0, 0
@@ -73610,7 +73610,7 @@ sub_80373C4:
bl sub_8009908
bl xxx_call_update_bg_sound_input
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
pop {r0}
bx r0
thumb_func_end sub_80373C4
@@ -76245,7 +76245,7 @@ sub_8038830:
add r0, r12
str r5, [r0]
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
pop {r4,r5}
pop {r0}
bx r0
@@ -86812,10 +86812,10 @@ _0803DB54:
.align 2, 0
_0803DB84: .4byte gUnknown_80F60F8
_0803DB88: .4byte gUnknown_83B0000
-_0803DB8C: .4byte gUnknown_202EC88
+_0803DB8C: .4byte gDungeonNameBannerPalette
_0803DB90: .4byte gUnknown_80F6100
-_0803DB94: .4byte gUnknown_202EC8C
-_0803DB98: .4byte gUnknown_202EC90
+_0803DB94: .4byte gDungeonNameBannerFontFile
+_0803DB98: .4byte gDungeonNameBannerFont
_0803DB9C: .4byte 0x06000140
_0803DBA0: .4byte gUnknown_203B418
_0803DBA4: .4byte 0x00000645
@@ -86862,7 +86862,7 @@ _0803DBEA:
.align 2, 0
_0803DC08: .4byte gUnknown_80F6118
_0803DC0C: .4byte gUnknown_20274A5
-_0803DC10: .4byte gUnknown_202EC8C
+_0803DC10: .4byte gDungeonNameBannerFontFile
thumb_func_end ShowDungeonNameBanner
thumb_func_start sub_803DC14
@@ -87273,7 +87273,7 @@ sub_803DEC8:
adds r1, r5, r0
b _0803DF56
.align 2, 0
-_0803DEFC: .4byte gUnknown_202EC8C
+_0803DEFC: .4byte gDungeonNameBannerFontFile
_0803DF00: .4byte 0xffff0800
_0803DF04: .4byte 0x000007fe
_0803DF08:
@@ -87287,7 +87287,7 @@ _0803DF08:
adds r0, r2, r0
b _0803DF3A
.align 2, 0
-_0803DF1C: .4byte gUnknown_202EC90
+_0803DF1C: .4byte gDungeonNameBannerFont
_0803DF20:
lsls r0, r1, 3
adds r0, r5
@@ -88114,7 +88114,7 @@ _0803E5A2:
bl sub_8011860
bl sub_8040B60
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
movs r0, 0
bl nullsub_10
ldr r1, _0803E664
@@ -88186,7 +88186,7 @@ sub_803E668:
strb r1, [r0]
bl sub_8011860
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
movs r0, 0
bl nullsub_10
ldr r0, [r4]
@@ -88555,7 +88555,7 @@ _0803E9B4: .4byte 0x00018215
_0803E9B8: .4byte 0x0001c06c
_0803E9BC: .4byte gUnknown_202EE8C
_0803E9C0: .4byte gUnknown_202ECA4
-_0803E9C4: .4byte gUnknown_202EC88
+_0803E9C4: .4byte gDungeonNameBannerPalette
_0803E9C8: .4byte gUnknown_202D058
_0803E9CC: .4byte 0x000181e4
thumb_func_end sub_803E874
@@ -99078,7 +99078,7 @@ _08043984: .4byte 0xff00ffff
_08043988: .4byte gUnknown_202EDC8
_0804398C: .4byte gUnknown_81006A4
_08043990: .4byte 0x00000222
-_08043994: .4byte gUnknown_202EC88
+_08043994: .4byte gDungeonNameBannerPalette
_08043998: .4byte gUnknown_203B40C
_0804399C: .4byte gUnknown_203B41C
_080439A0:
@@ -104471,7 +104471,7 @@ sub_8046298:
ldrb r0, [r0, 0xD]
bx lr
.align 2, 0
-_080462A8: .4byte gUnknown_20389A4
+_080462A8: .4byte gItemParametersFile + 4
thumb_func_end sub_8046298
thumb_func_start sub_80462AC
@@ -245668,8 +245668,8 @@ _0808CDE4: .4byte gUnknown_203B45C
_0808CDE8: .4byte gUnknown_202F400
_0808CDEC: .4byte gUnknown_81075F4
_0808CDF0: .4byte gUnknown_8300500
-_0808CDF4: .4byte gUnknown_202F3E4
-_0808CDF8: .4byte gUnknown_202F3E0
+_0808CDF4: .4byte gMonsterParametersFile
+_0808CDF8: .4byte gMonsterParameters
_0808CDFC: .4byte gUnknown_20384E8
thumb_func_end LoadMonsterParameters
@@ -245907,7 +245907,7 @@ _0808CFB8:
pop {r0}
bx r0
.align 2, 0
-_0808CFC8: .4byte gUnknown_202F3E0
+_0808CFC8: .4byte gMonsterParameters
_0808CFCC: .4byte gUnknown_203B45C
thumb_func_end sub_808CE74
@@ -246197,7 +246197,7 @@ sub_808D1DC:
bne _0808D238
b _0808D268
.align 2, 0
-_0808D204: .4byte gUnknown_202F3E0
+_0808D204: .4byte gMonsterParameters
_0808D208: .4byte gUnknown_203B468
_0808D20C:
ldr r0, [r7]
@@ -246278,7 +246278,7 @@ sub_808D278:
bne _0808D2AA
b _0808D2DA
.align 2, 0
-_0808D29C: .4byte gUnknown_202F3E0
+_0808D29C: .4byte gMonsterParameters
_0808D2A0: .4byte gUnknown_203B468
_0808D2A4:
ldr r0, [r7]
@@ -247194,7 +247194,7 @@ sub_808D8BC:
pop {r0}
bx r0
.align 2, 0
-_0808D8DC: .4byte gUnknown_202F3E0
+_0808D8DC: .4byte gMonsterParameters
thumb_func_end sub_808D8BC
thumb_func_start sub_808D8E0
@@ -247216,7 +247216,7 @@ sub_808D8E0:
bx r0
.align 2, 0
_0808D900: .4byte gUnknown_8107600
-_0808D904: .4byte gUnknown_202F3E0
+_0808D904: .4byte gMonsterParameters
thumb_func_end sub_808D8E0
thumb_func_start sub_808D908
@@ -247238,7 +247238,7 @@ sub_808D908:
bx r0
.align 2, 0
_0808D928: .4byte gUnknown_8107608
-_0808D92C: .4byte gUnknown_202F3E0
+_0808D92C: .4byte gMonsterParameters
thumb_func_end sub_808D908
thumb_func_start sub_808D930
@@ -247287,7 +247287,7 @@ _0808D986:
bx r0
.align 2, 0
_0808D98C: .4byte gUnknown_8107638
-_0808D990: .4byte gUnknown_202F3E0
+_0808D990: .4byte gMonsterParameters
thumb_func_end sub_808D930
thumb_func_start sub_808D994
@@ -247303,7 +247303,7 @@ sub_808D994:
ldr r0, [r1]
bx lr
.align 2, 0
-_0808D9A8: .4byte gUnknown_202F3E0
+_0808D9A8: .4byte gMonsterParameters
thumb_func_end sub_808D994
thumb_func_start sub_808D9AC
@@ -247468,7 +247468,7 @@ sub_808DAB4:
ldr r0, [r1, 0x4]
bx lr
.align 2, 0
-_0808DAC8: .4byte gUnknown_202F3E0
+_0808DAC8: .4byte gMonsterParameters
thumb_func_end sub_808DAB4
thumb_func_start sub_808DACC
@@ -247484,7 +247484,7 @@ sub_808DACC:
ldrb r0, [r1, 0x9]
bx lr
.align 2, 0
-_0808DAE0: .4byte gUnknown_202F3E0
+_0808DAE0: .4byte gMonsterParameters
thumb_func_end sub_808DACC
thumb_func_start sub_808DAE4
@@ -247500,7 +247500,7 @@ sub_808DAE4:
ldrb r0, [r1, 0x19]
bx lr
.align 2, 0
-_0808DAF8: .4byte gUnknown_202F3E0
+_0808DAF8: .4byte gMonsterParameters
thumb_func_end sub_808DAE4
thumb_func_start sub_808DAFC
@@ -247516,7 +247516,7 @@ sub_808DAFC:
ldr r0, [r1, 0xC]
bx lr
.align 2, 0
-_0808DB10: .4byte gUnknown_202F3E0
+_0808DB10: .4byte gMonsterParameters
thumb_func_end sub_808DAFC
thumb_func_start sub_808DB14
@@ -247532,7 +247532,7 @@ sub_808DB14:
ldrb r0, [r1, 0x15]
bx lr
.align 2, 0
-_0808DB28: .4byte gUnknown_202F3E0
+_0808DB28: .4byte gMonsterParameters
thumb_func_end sub_808DB14
thumb_func_start sub_808DB2C
@@ -247550,7 +247550,7 @@ sub_808DB2C:
lsrs r0, 24
bx lr
.align 2, 0
-_0808DB44: .4byte gUnknown_202F3E0
+_0808DB44: .4byte gMonsterParameters
thumb_func_end sub_808DB2C
thumb_func_start sub_808DB48
@@ -247566,7 +247566,7 @@ sub_808DB48:
ldrb r0, [r1, 0x1C]
bx lr
.align 2, 0
-_0808DB5C: .4byte gUnknown_202F3E0
+_0808DB5C: .4byte gMonsterParameters
thumb_func_end sub_808DB48
thumb_func_start sub_808DB60
@@ -247582,7 +247582,7 @@ sub_808DB60:
ldrb r0, [r1, 0x1D]
bx lr
.align 2, 0
-_0808DB74: .4byte gUnknown_202F3E0
+_0808DB74: .4byte gMonsterParameters
thumb_func_end sub_808DB60
thumb_func_start sub_808DB78
@@ -247598,7 +247598,7 @@ sub_808DB78:
ldrh r0, [r1, 0x2C]
bx lr
.align 2, 0
-_0808DB8C: .4byte gUnknown_202F3E0
+_0808DB8C: .4byte gMonsterParameters
thumb_func_end sub_808DB78
thumb_func_start sub_808DB90
@@ -247614,7 +247614,7 @@ sub_808DB90:
ldrh r0, [r1, 0x2E]
bx lr
.align 2, 0
-_0808DBA4: .4byte gUnknown_202F3E0
+_0808DBA4: .4byte gMonsterParameters
thumb_func_end sub_808DB90
thumb_func_start sub_808DBA8
@@ -247630,7 +247630,7 @@ sub_808DBA8:
ldrb r0, [r1, 0x16]
bx lr
.align 2, 0
-_0808DBBC: .4byte gUnknown_202F3E0
+_0808DBBC: .4byte gMonsterParameters
thumb_func_end sub_808DBA8
thumb_func_start sub_808DBC0
@@ -247646,7 +247646,7 @@ sub_808DBC0:
ldrh r0, [r1, 0x1E]
bx lr
.align 2, 0
-_0808DBD4: .4byte gUnknown_202F3E0
+_0808DBD4: .4byte gMonsterParameters
thumb_func_end sub_808DBC0
thumb_func_start sub_808DBD8
@@ -247663,7 +247663,7 @@ sub_808DBD8:
ldrb r0, [r1]
bx lr
.align 2, 0
-_0808DBF0: .4byte gUnknown_202F3E0
+_0808DBF0: .4byte gMonsterParameters
thumb_func_end sub_808DBD8
thumb_func_start sub_808DBF4
@@ -247679,7 +247679,7 @@ sub_808DBF4:
ldrb r0, [r1, 0x12]
bx lr
.align 2, 0
-_0808DC08: .4byte gUnknown_202F3E0
+_0808DC08: .4byte gMonsterParameters
thumb_func_end sub_808DBF4
thumb_func_start sub_808DC0C
@@ -247696,7 +247696,7 @@ sub_808DC0C:
ldrsh r0, [r1, r2]
bx lr
.align 2, 0
-_0808DC24: .4byte gUnknown_202F3E0
+_0808DC24: .4byte gMonsterParameters
thumb_func_end sub_808DC0C
thumb_func_start sub_808DC28
@@ -247715,7 +247715,7 @@ sub_808DC28:
ldrh r0, [r2]
bx lr
.align 2, 0
-_0808DC44: .4byte gUnknown_202F3E0
+_0808DC44: .4byte gMonsterParameters
thumb_func_end sub_808DC28
thumb_func_start sub_808DC48
@@ -247734,7 +247734,7 @@ sub_808DC48:
ldrh r0, [r2]
bx lr
.align 2, 0
-_0808DC64: .4byte gUnknown_202F3E0
+_0808DC64: .4byte gMonsterParameters
thumb_func_end sub_808DC48
thumb_func_start sub_808DC68
@@ -247752,7 +247752,7 @@ sub_808DC68:
ldrb r0, [r2]
bx lr
.align 2, 0
-_0808DC80: .4byte gUnknown_202F3E0
+_0808DC80: .4byte gMonsterParameters
thumb_func_end sub_808DC68
thumb_func_start sub_808DC84
@@ -247770,7 +247770,7 @@ sub_808DC84:
ldrb r0, [r2]
bx lr
.align 2, 0
-_0808DC9C: .4byte gUnknown_202F3E0
+_0808DC9C: .4byte gMonsterParameters
thumb_func_end sub_808DC84
thumb_func_start sub_808DCA0
@@ -247790,7 +247790,7 @@ sub_808DCA0:
ldrsh r0, [r2, r1]
bx lr
.align 2, 0
-_0808DCBC: .4byte gUnknown_202F3E0
+_0808DCBC: .4byte gMonsterParameters
thumb_func_end sub_808DCA0
thumb_func_start sub_808DCC0
@@ -247808,7 +247808,7 @@ sub_808DCC0:
ldrsh r0, [r1, r2]
bx lr
.align 2, 0
-_0808DCD8: .4byte gUnknown_202F3E0
+_0808DCD8: .4byte gMonsterParameters
thumb_func_end sub_808DCC0
thumb_func_start sub_808DCDC
@@ -247828,7 +247828,7 @@ sub_808DCDC:
ldrsh r0, [r2, r1]
bx lr
.align 2, 0
-_0808DCF8: .4byte gUnknown_202F3E0
+_0808DCF8: .4byte gMonsterParameters
thumb_func_end sub_808DCDC
thumb_func_start sub_808DCFC
@@ -247845,7 +247845,7 @@ sub_808DCFC:
ldrsh r0, [r1, r2]
bx lr
.align 2, 0
-_0808DD14: .4byte gUnknown_202F3E0
+_0808DD14: .4byte gMonsterParameters
thumb_func_end sub_808DCFC
thumb_func_start sub_808DD18
@@ -247871,7 +247871,7 @@ sub_808DD18:
pop {r1}
bx r1
.align 2, 0
-_0808DD44: .4byte gUnknown_202F3E0
+_0808DD44: .4byte gMonsterParameters
thumb_func_end sub_808DD18
thumb_func_start sub_808DD48
@@ -247890,7 +247890,7 @@ sub_808DD48:
str r3, [r1, 0x4]
bx lr
.align 2, 0
-_0808DD64: .4byte gUnknown_202F3E0
+_0808DD64: .4byte gMonsterParameters
thumb_func_end sub_808DD48
thumb_func_start sub_808DD68
@@ -247909,7 +247909,7 @@ sub_808DD68:
ldrb r0, [r0, 0x8]
b _0808DD8A
.align 2, 0
-_0808DD84: .4byte gUnknown_202F3E0
+_0808DD84: .4byte gMonsterParameters
_0808DD88:
movs r0, 0xA
_0808DD8A:
@@ -247940,7 +247940,7 @@ sub_808DD90:
bl OpenFile
b _0808DDCA
.align 2, 0
-_0808DDBC: .4byte gUnknown_202F3E0
+_0808DDBC: .4byte gMonsterParameters
_0808DDC0: .4byte gUnknown_8107684
_0808DDC4: .4byte gUnknown_8510000
_0808DDC8:
@@ -247974,7 +247974,7 @@ sub_808DDD0:
bl OpenFileAndGetFileDataPtr
b _0808DE0A
.align 2, 0
-_0808DDFC: .4byte gUnknown_202F3E0
+_0808DDFC: .4byte gMonsterParameters
_0808DE00: .4byte gUnknown_8107684
_0808DE04: .4byte gUnknown_8510000
_0808DE08:
@@ -248001,7 +248001,7 @@ sub_808DE10:
ands r0, r1
bx lr
.align 2, 0
-_0808DE2C: .4byte gUnknown_202F3E0
+_0808DE2C: .4byte gMonsterParameters
thumb_func_end sub_808DE10
thumb_func_start sub_808DE30
@@ -253777,8 +253777,8 @@ _080909B8: .4byte gUnknown_203B460
_080909BC: .4byte gUnknown_20389A8
_080909C0: .4byte gUnknown_8109764
_080909C4: .4byte gUnknown_8300500
-_080909C8: .4byte gUnknown_20389A0
-_080909CC: .4byte gUnknown_20389A4
+_080909C8: .4byte gItemParametersFile
+_080909CC: .4byte gItemParametersFile + 4
thumb_func_end sub_8090998
thumb_func_start sub_80909D0
@@ -254085,7 +254085,7 @@ sub_8090BD0:
ldrb r0, [r0, 0xC]
bx lr
.align 2, 0
-_08090BE0: .4byte gUnknown_20389A4
+_08090BE0: .4byte gItemParametersFile + 4
thumb_func_end sub_8090BD0
thumb_func_start sub_8090BE4
@@ -254112,7 +254112,7 @@ _08090BF6:
ldr r0, [r0, 0x4]
b _08090C24
.align 2, 0
-_08090C10: .4byte gUnknown_20389A4
+_08090C10: .4byte gItemParametersFile + 4
_08090C14:
ldrb r0, [r4, 0x2]
ldr r1, _08090C2C
@@ -254127,7 +254127,7 @@ _08090C24:
pop {r1}
bx r1
.align 2, 0
-_08090C2C: .4byte gUnknown_20389A4
+_08090C2C: .4byte gItemParametersFile + 4
thumb_func_end sub_8090BE4
thumb_func_start sub_8090C30
@@ -254154,7 +254154,7 @@ _08090C42:
ldr r0, [r0, 0x8]
b _08090C70
.align 2, 0
-_08090C5C: .4byte gUnknown_20389A4
+_08090C5C: .4byte gItemParametersFile + 4
_08090C60:
ldrb r0, [r4, 0x2]
ldr r1, _08090C78
@@ -254169,7 +254169,7 @@ _08090C70:
pop {r1}
bx r1
.align 2, 0
-_08090C78: .4byte gUnknown_20389A4
+_08090C78: .4byte gItemParametersFile + 4
thumb_func_end sub_8090C30
thumb_func_start sub_8090C7C
@@ -254197,7 +254197,7 @@ _08090C90:
ldr r0, [r0, 0x4]
b _08090CC0
.align 2, 0
-_08090CAC: .4byte gUnknown_20389A4
+_08090CAC: .4byte gItemParametersFile + 4
_08090CB0:
ldrb r0, [r4, 0x2]
ldr r1, _08090CC8
@@ -254212,7 +254212,7 @@ _08090CC0:
pop {r1}
bx r1
.align 2, 0
-_08090CC8: .4byte gUnknown_20389A4
+_08090CC8: .4byte gItemParametersFile + 4
thumb_func_end sub_8090C7C
thumb_func_start sub_8090CCC
@@ -254240,7 +254240,7 @@ _08090CE0:
ldr r0, [r0, 0x8]
b _08090D10
.align 2, 0
-_08090CFC: .4byte gUnknown_20389A4
+_08090CFC: .4byte gItemParametersFile + 4
_08090D00:
ldrb r0, [r4, 0x2]
ldr r1, _08090D18
@@ -254255,7 +254255,7 @@ _08090D10:
pop {r1}
bx r1
.align 2, 0
-_08090D18: .4byte gUnknown_20389A4
+_08090D18: .4byte gItemParametersFile + 4
thumb_func_end sub_8090CCC
thumb_func_start sub_8090D1C
@@ -254268,7 +254268,7 @@ sub_8090D1C:
ldr r0, [r0, 0x4]
bx lr
.align 2, 0
-_08090D2C: .4byte gUnknown_20389A4
+_08090D2C: .4byte gItemParametersFile + 4
thumb_func_end sub_8090D1C
thumb_func_start sub_8090D30
@@ -254281,7 +254281,7 @@ sub_8090D30:
ldr r0, [r0, 0x8]
bx lr
.align 2, 0
-_08090D40: .4byte gUnknown_20389A4
+_08090D40: .4byte gItemParametersFile + 4
thumb_func_end sub_8090D30
thumb_func_start sub_8090D44
@@ -254294,7 +254294,7 @@ sub_8090D44:
ldrb r0, [r0, 0x1A]
bx lr
.align 2, 0
-_08090D54: .4byte gUnknown_20389A4
+_08090D54: .4byte gItemParametersFile + 4
thumb_func_end sub_8090D44
thumb_func_start sub_8090D58
@@ -254307,7 +254307,7 @@ sub_8090D58:
ldrb r0, [r0, 0x1D]
bx lr
.align 2, 0
-_08090D68: .4byte gUnknown_20389A4
+_08090D68: .4byte gItemParametersFile + 4
thumb_func_end sub_8090D58
thumb_func_start sub_8090D6C
@@ -254320,7 +254320,7 @@ sub_8090D6C:
ldrb r0, [r0, 0x1E]
bx lr
.align 2, 0
-_08090D7C: .4byte gUnknown_20389A4
+_08090D7C: .4byte gItemParametersFile + 4
thumb_func_end sub_8090D6C
thumb_func_start sub_8090D80
@@ -254335,7 +254335,7 @@ sub_8090D80:
ldrb r0, [r0]
bx lr
.align 2, 0
-_08090D94: .4byte gUnknown_20389A4
+_08090D94: .4byte gItemParametersFile + 4
thumb_func_end sub_8090D80
thumb_func_start sub_8090D98
@@ -254348,7 +254348,7 @@ sub_8090D98:
ldr r0, [r0, 0x10]
bx lr
.align 2, 0
-_08090DA8: .4byte gUnknown_20389A4
+_08090DA8: .4byte gItemParametersFile + 4
thumb_func_end sub_8090D98
thumb_func_start sub_8090DAC
@@ -254363,7 +254363,7 @@ sub_8090DAC:
ldrb r0, [r0]
bx lr
.align 2, 0
-_08090DC0: .4byte gUnknown_20389A4
+_08090DC0: .4byte gItemParametersFile + 4
thumb_func_end sub_8090DAC
thumb_func_start sub_8090DC4
@@ -254404,7 +254404,7 @@ sub_8090DC4:
pop {r0}
bx r0
.align 2, 0
-_08090E10: .4byte gUnknown_20389A4
+_08090E10: .4byte gItemParametersFile + 4
thumb_func_end sub_8090DC4
thumb_func_start sub_8090E14
@@ -254453,7 +254453,7 @@ _08090E50:
b _08090EC4
.align 2, 0
_08090E68: .4byte gUnknown_8109770
-_08090E6C: .4byte gUnknown_20389A4
+_08090E6C: .4byte gItemParametersFile + 4
_08090E70:
ldr r1, _08090E88
ldrb r0, [r5, 0x2]
@@ -254467,7 +254467,7 @@ _08090E70:
b _08090EC4
.align 2, 0
_08090E88: .4byte gUnknown_8109778
-_08090E8C: .4byte gUnknown_20389A4
+_08090E8C: .4byte gItemParametersFile + 4
_08090E90:
ldrb r0, [r5, 0x2]
cmp r0, 0x69
@@ -254544,7 +254544,7 @@ _08090F14:
bl sub_8090F58
b _08090F50
.align 2, 0
-_08090F2C: .4byte gUnknown_20389A4
+_08090F2C: .4byte gItemParametersFile + 4
_08090F30: .4byte gUnknown_8109784
_08090F34: .4byte gUnknown_810978C
_08090F38:
@@ -255209,7 +255209,7 @@ sub_80913CC:
ldrh r0, [r0, 0x18]
bx lr
.align 2, 0
-_080913DC: .4byte gUnknown_20389A4
+_080913DC: .4byte gItemParametersFile + 4
thumb_func_end sub_80913CC
thumb_func_start sub_80913E0
@@ -258154,7 +258154,7 @@ LoadWazaParameters:
.align 2, 0
_08092868: .4byte gUnknown_81098D0
_0809286C: .4byte gUnknown_8300500
-_08092870: .4byte gUnknown_2038C64
+_08092870: .4byte gWazaParametersFile
_08092874: .4byte gUnknown_2038C68
_08092878: .4byte gUnknown_2038C6C
thumb_func_end LoadWazaParameters
@@ -271490,7 +271490,7 @@ _080988F8:
bl GroundEffect_Action
bl nullsub_105
bl sub_809B474
- bl sub_80A2380
+ bl GroundScript_Unlock
bl sub_809D25C
bl sub_80A59DC
bl sub_809B614
@@ -271783,7 +271783,7 @@ _08098BD2:
sub_8098BDC:
push {lr}
bl sub_809B57C
- bl sub_80A2380
+ bl GroundScript_Unlock
bl sub_809D25C
bl sub_80A59DC
bl sub_809B614
@@ -273046,7 +273046,7 @@ _080995AE:
_08099604:
bl xxx_call_update_bg_sound_input
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
mov r2, r9
cmp r2, 0
beq _08099524
@@ -279959,7 +279959,7 @@ sub_809CBBC:
b _0809CC4A
.align 2, 0
_0809CC0C: .4byte gUnknown_81163E4
-_0809CC10: .4byte gUnknown_20389A4
+_0809CC10: .4byte gItemParametersFile + 4
_0809CC14: .4byte gUnknown_203B460
_0809CC18: .4byte 0x0001869f
_0809CC1C:
@@ -284745,28 +284745,28 @@ _0809F3DC: .4byte gUnknown_2039A32
_0809F3E0:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_80A7988
+ bl GroundLives_Cancel
adds r0, r6, 0
adds r1, r5, 0
- bl sub_80ABC5C
+ bl GroundObject_Cancel
adds r0, r6, 0
adds r1, r5, 0
- bl sub_80ACC98
+ bl GroundEffect_Cancel
b _0809F41E
_0809F3FA:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_80A7988
+ bl GroundLives_Cancel
bl _0809EAE0
_0809F406:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_80ABC5C
+ bl GroundObject_Cancel
bl _0809EAE0
_0809F412:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_80ACC98
+ bl GroundEffect_Cancel
bl _0809EAE0
_0809F41E:
adds r0, r6, 0
@@ -284777,10 +284777,10 @@ _0809F42A:
bl sub_80A79FC
bl _0809EAE0
_0809F432:
- bl sub_80ABCCC
+ bl GroundObject_CancelBlank
bl _0809EAE0
_0809F43A:
- bl sub_80ACD08
+ bl GroundEffect_CancelBlank
bl _0809EAE0
_0809F442:
mov r2, r9
@@ -290448,7 +290448,7 @@ _080A233A:
b _080A236A
_080A2346:
movs r0, 0
- bl sub_80A6C88
+ bl GroundSprite_ExtendPaletteDelete
b _080A236A
_080A234E:
movs r0, 0
@@ -290478,8 +290478,8 @@ _080A236C:
bx r1
thumb_func_end sub_80A14E8
- thumb_func_start sub_80A2380
-sub_80A2380:
+ thumb_func_start GroundScript_Unlock
+GroundScript_Unlock:
push {r4-r7,lr}
ldr r1, _080A241C
ldrb r0, [r1]
@@ -290557,7 +290557,7 @@ _080A241C: .4byte gUnknown_2039A36
_080A2420: .4byte gUnknown_2039A38
_080A2424: .4byte gUnknown_8116848
_080A2428: .4byte gUnknown_2039AC0
- thumb_func_end sub_80A2380
+ thumb_func_end GroundScript_Unlock
thumb_func_start sub_80A242C
sub_80A242C:
@@ -299178,7 +299178,7 @@ _080A6434:
_080A6444:
strh r0, [r5, 0xA]
movs r0, 0x1
- bl sub_8004D8C
+ bl ResetSprites
movs r0, 0x1
bl nullsub_10
pop {r3,r4}
@@ -299342,7 +299342,7 @@ sub_80A658C:
push {r4,lr}
bl sub_800DB7C
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
movs r0, 0
bl nullsub_10
bl sub_8005180
@@ -299986,7 +299986,7 @@ sub_80A69FC:
cmp r4, 0
blt _080A6A7A
adds r0, r6, 0
- bl sub_80A6C88
+ bl GroundSprite_ExtendPaletteDelete
movs r0, 0
str r0, [r5, 0x8]
str r0, [r5]
@@ -300303,8 +300303,8 @@ _080A6C78:
bx r0
thumb_func_end GroundSprite_ExtendPaletteAdd
- thumb_func_start sub_80A6C88
-sub_80A6C88:
+ thumb_func_start GroundSprite_ExtendPaletteDelete
+GroundSprite_ExtendPaletteDelete:
push {r4-r6,lr}
adds r2, r0, 0
cmp r2, 0
@@ -300360,7 +300360,7 @@ _080A6CE6:
.align 2, 0
_080A6CEC: .4byte gUnknown_3001B7C
_080A6CF0: .4byte gUnknown_81178C0
- thumb_func_end sub_80A6C88
+ thumb_func_end GroundSprite_ExtendPaletteDelete
thumb_func_start sub_80A6CF4
sub_80A6CF4:
@@ -300572,7 +300572,7 @@ _080A6E56:
sub_80A6E68:
push {lr}
movs r0, 0
- bl sub_8004D8C
+ bl ResetSprites
movs r0, 0
bl nullsub_10
bl sub_800E970
@@ -301931,7 +301931,7 @@ _080A787C:
cmp r0, r6
beq _080A788A
adds r0, r1, 0
- bl sub_80A8684
+ bl GroundLives_Delete
_080A788A:
adds r0, r5, 0
movs r1, 0x80
@@ -302062,8 +302062,8 @@ _080A7980: .4byte gUnknown_811808C
_080A7984: .4byte gUnknown_8118098
thumb_func_end GroundLives_Select
- thumb_func_start sub_80A7988
-sub_80A7988:
+ thumb_func_start GroundLives_Cancel
+GroundLives_Cancel:
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -302101,7 +302101,7 @@ _080A79B2:
bne _080A79D4
_080A79CE:
adds r0, r1, 0
- bl sub_80A8684
+ bl GroundLives_Delete
_080A79D4:
adds r0, r6, 0
movs r1, 0x80
@@ -302121,7 +302121,7 @@ _080A79D4:
.align 2, 0
_080A79F4: .4byte gUnknown_81180BC
_080A79F8: .4byte gUnknown_3001B84
- thumb_func_end sub_80A7988
+ thumb_func_end GroundLives_Cancel
thumb_func_start sub_80A79FC
sub_80A79FC:
@@ -302164,7 +302164,7 @@ _080A7A20:
cmp r0, 0
bne _080A7A50
adds r0, r6, 0
- bl sub_80A8684
+ bl GroundLives_Delete
_080A7A50:
adds r0, r6, 0x1
lsls r0, 16
@@ -303749,8 +303749,8 @@ _080A8674:
bx r1
thumb_func_end GroundLives_Add
- thumb_func_start sub_80A8684
-sub_80A8684:
+ thumb_func_start GroundLives_Delete
+GroundLives_Delete:
push {r4,lr}
adds r2, r0, 0
lsls r2, 16
@@ -303780,7 +303780,7 @@ sub_80A8684:
_080A86BC: .4byte gUnknown_3001B84
_080A86C0: .4byte gUnknown_8118194
_080A86C4: .4byte 0x0000ffff
- thumb_func_end sub_80A8684
+ thumb_func_end GroundLives_Delete
thumb_func_start sub_80A86C8
sub_80A86C8:
@@ -309318,7 +309318,7 @@ _080AB278:
b _080AB44C
_080AB292:
mov r0, r9
- bl sub_80A8684
+ bl GroundLives_Delete
b _080AB47C
.align 2, 0
_080AB29C: .4byte gUnknown_3001B84
@@ -310631,8 +310631,8 @@ _080ABC54: .4byte gUnknown_81183E4
_080ABC58: .4byte gUnknown_81183F0
thumb_func_end GroundObject_Select
- thumb_func_start sub_80ABC5C
-sub_80ABC5C:
+ thumb_func_start GroundObject_Cancel
+GroundObject_Cancel:
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -310689,10 +310689,10 @@ _080ABCA6:
.align 2, 0
_080ABCC4: .4byte gUnknown_8118414
_080ABCC8: .4byte gUnknown_3001B88
- thumb_func_end sub_80ABC5C
+ thumb_func_end GroundObject_Cancel
- thumb_func_start sub_80ABCCC
-sub_80ABCCC:
+ thumb_func_start GroundObject_CancelBlank
+GroundObject_CancelBlank:
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -310752,7 +310752,7 @@ _080ABD20:
.align 2, 0
_080ABD40: .4byte gUnknown_811842C
_080ABD44: .4byte gUnknown_3001B88
- thumb_func_end sub_80ABCCC
+ thumb_func_end GroundObject_CancelBlank
thumb_func_start sub_80ABD48
sub_80ABD48:
@@ -312792,7 +312792,7 @@ _080ACBE4:
cmp r0, r6
beq _080ACBF2
adds r0, r1, 0
- bl sub_80AD080
+ bl GroundEffect_Delete
_080ACBF2:
adds r0, r5, 0
movs r1, 0x80
@@ -312882,8 +312882,8 @@ _080ACC90: .4byte gUnknown_8118610
_080ACC94: .4byte gUnknown_811861C
thumb_func_end GroundEffect_Select
- thumb_func_start sub_80ACC98
-sub_80ACC98:
+ thumb_func_start GroundEffect_Cancel
+GroundEffect_Cancel:
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -312920,7 +312920,7 @@ _080ACCC0:
bne _080ACCE2
_080ACCDC:
adds r0, r1, 0
- bl sub_80AD080
+ bl GroundEffect_Delete
_080ACCE2:
adds r0, r6, 0
movs r1, 0x80
@@ -312940,10 +312940,10 @@ _080ACCE2:
.align 2, 0
_080ACD00: .4byte gUnknown_8118640
_080ACD04: .4byte gUnknown_3001B8C
- thumb_func_end sub_80ACC98
+ thumb_func_end GroundEffect_Cancel
- thumb_func_start sub_80ACD08
-sub_80ACD08:
+ thumb_func_start GroundEffect_CancelBlank
+GroundEffect_CancelBlank:
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -312983,7 +312983,7 @@ _080ACD2C:
cmp r0, 0
bne _080ACD5C
adds r0, r6, 0
- bl sub_80AD080
+ bl GroundEffect_Delete
_080ACD5C:
adds r0, r6, 0x1
lsls r0, 16
@@ -313003,7 +313003,7 @@ _080ACD5C:
.align 2, 0
_080ACD7C: .4byte gUnknown_8118658
_080ACD80: .4byte gUnknown_3001B8C
- thumb_func_end sub_80ACD08
+ thumb_func_end GroundEffect_CancelBlank
thumb_func_start sub_80ACD84
sub_80ACD84:
@@ -313399,8 +313399,8 @@ _080AD078: .4byte gUnknown_812F1F8
_080AD07C: .4byte gUnknown_81186CC
thumb_func_end GroundEffect_Add
- thumb_func_start sub_80AD080
-sub_80AD080:
+ thumb_func_start GroundEffect_Delete
+GroundEffect_Delete:
push {r4,lr}
adds r2, r0, 0
lsls r2, 16
@@ -313432,7 +313432,7 @@ sub_80AD080:
_080AD0BC: .4byte gUnknown_3001B8C
_080AD0C0: .4byte gUnknown_81186D8
_080AD0C4: .4byte 0x0000ffff
- thumb_func_end sub_80AD080
+ thumb_func_end GroundEffect_Delete
thumb_func_start sub_80AD0C8
sub_80AD0C8:
@@ -314398,7 +314398,7 @@ _080AD72C:
cmp r0, 0x4
bne _080AD768
adds r0, r7, 0
- bl sub_80AD080
+ bl GroundEffect_Delete
b _080AD78A
.align 2, 0
_080AD754: .4byte gUnknown_3001B8C
diff --git a/asm/input.s b/asm/input.s
index 7516a30..d439867 100644
--- a/asm/input.s
+++ b/asm/input.s
@@ -7,24 +7,24 @@
thumb_func_start InitInput
InitInput:
- ldr r0, _08004840
+ ldr r0, =gUnknown_20255F0
movs r3, 0
movs r2, 0
strh r2, [r0]
strh r2, [r0, 0x2]
strh r2, [r0, 0x4]
strh r2, [r0, 0x6]
- ldr r0, _08004844
+ ldr r0, =gUnknown_2025638
strh r2, [r0]
strh r2, [r0, 0x2]
strh r2, [r0, 0x4]
strh r2, [r0, 0x6]
- ldr r1, _08004848
- ldr r0, _0800484C
+ ldr r1, =gUnknown_202562C
+ ldr r0, =0x4a14c1
str r0, [r1]
- ldr r0, _08004850
+ ldr r0, =gUnknown_2025600
str r2, [r0, 0x20]
- ldr r1, _08004854
+ ldr r1, =0xffff
strh r1, [r0]
movs r1, 0x1
negs r1, r1
@@ -46,25 +46,19 @@ InitInput:
strb r3, [r1]
adds r0, 0x29
strb r3, [r0]
- ldr r0, _08004858
+ ldr r0, =gUnknown_2025668
strh r2, [r0]
strh r2, [r0, 0x2]
bx lr
.align 2, 0
-_08004840: .4byte gUnknown_20255F0
-_08004844: .4byte gUnknown_2025638
-_08004848: .4byte gUnknown_202562C
-_0800484C: .4byte 0x004a14c1
-_08004850: .4byte gUnknown_2025600
-_08004854: .4byte 0x0000ffff
-_08004858: .4byte gUnknown_2025668
+ .pool
thumb_func_end InitInput
thumb_func_start sub_800485C
sub_800485C:
push {r4,r5,lr}
- ldr r2, _080048A8
- ldr r1, _080048AC
+ ldr r2, =gUnknown_2025638
+ ldr r1, =gUnknown_20255F0
adds r0, r2, 0
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
@@ -76,8 +70,8 @@ sub_800485C:
strh r0, [r2, 0x2]
strh r0, [r2, 0x4]
strh r0, [r2, 0x6]
- ldr r0, _080048B0
- ldr r1, _080048B4
+ ldr r0, =gUnknown_2025600
+ ldr r1, =0xffff
strh r1, [r0]
movs r1, 0x1
negs r1, r1
@@ -101,10 +95,7 @@ sub_800485C:
pop {r0}
bx r0
.align 2, 0
-_080048A8: .4byte gUnknown_2025638
-_080048AC: .4byte gUnknown_20255F0
-_080048B0: .4byte gUnknown_2025600
-_080048B4: .4byte 0x0000ffff
+ .pool
thumb_func_end sub_800485C
thumb_func_start sub_80048B8
@@ -145,49 +136,44 @@ sub_80048CC:
thumb_func_start sub_80048D0
sub_80048D0:
- ldr r1, _080048E8
+ ldr r1, =gUnknown_20255F0
movs r0, 0
strh r0, [r1, 0x4]
- ldr r1, _080048EC
+ ldr r1, =gUnknown_2025648
str r0, [r1, 0xC]
strh r0, [r1, 0x8]
- ldr r1, _080048F0
- ldr r0, _080048F4
+ ldr r1, =gUnknown_2025668
+ ldr r0, =0x3e7
strh r0, [r1]
strh r0, [r1, 0x2]
bx lr
.align 2, 0
-_080048E8: .4byte gUnknown_20255F0
-_080048EC: .4byte gUnknown_2025648
-_080048F0: .4byte gUnknown_2025668
-_080048F4: .4byte 0x000003e7
+ .pool
thumb_func_end sub_80048D0
thumb_func_start sub_80048F8
sub_80048F8:
- ldr r0, _08004908
+ ldr r0, =gUnknown_20255F0
movs r1, 0
strh r1, [r0, 0x2]
- ldr r0, _0800490C
+ ldr r0, =gUnknown_2025638
strh r1, [r0, 0x2]
- ldr r0, _08004910
+ ldr r0, =gUnknown_2025648
strh r1, [r0, 0x2]
bx lr
.align 2, 0
-_08004908: .4byte gUnknown_20255F0
-_0800490C: .4byte gUnknown_2025638
-_08004910: .4byte gUnknown_2025648
+ .pool
thumb_func_end sub_80048F8
thumb_func_start sub_8004914
sub_8004914:
- ldr r0, _0800494C
+ ldr r0, =gUnknown_2025600
movs r1, 0x5
str r1, [r0, 0x20]
movs r2, 0
movs r1, 0
strh r1, [r0, 0x24]
- ldr r1, _08004950
+ ldr r1, =0xffff
strh r1, [r0]
movs r1, 0x1
negs r1, r1
@@ -209,15 +195,14 @@ sub_8004914:
strb r2, [r0]
bx lr
.align 2, 0
-_0800494C: .4byte gUnknown_2025600
-_08004950: .4byte 0x0000ffff
+ .pool
thumb_func_end sub_8004914
thumb_func_start UpdateInput
UpdateInput:
push {r4-r6,lr}
- ldr r4, _08004998
- ldr r5, _0800499C
+ ldr r4, =gUnknown_2025658
+ ldr r5, =gUnknown_2025648
adds r1, r4, 0
adds r0, r5, 0
ldm r0!, {r2,r3,r6}
@@ -249,8 +234,7 @@ UpdateInput:
str r0, [r5, 0xC]
b _080049AC
.align 2, 0
-_08004998: .4byte gUnknown_2025658
-_0800499C: .4byte gUnknown_2025648
+ .pool
_080049A0:
strh r2, [r5, 0x8]
movs r0, 0x1
@@ -260,7 +244,7 @@ _080049A8:
str r0, [r5, 0xC]
strh r0, [r5, 0x8]
_080049AC:
- ldr r0, _080049C4
+ ldr r0, =gUnknown_2025648
ldr r2, [r0, 0xC]
adds r3, r0, 0
cmp r2, 0x1
@@ -273,7 +257,7 @@ _080049AC:
strh r1, [r3, 0x4]
b _080049E0
.align 2, 0
-_080049C4: .4byte gUnknown_2025648
+ .pool
_080049C8:
cmp r2, 0x30
bne _080049DC
@@ -300,7 +284,7 @@ _080049E0:
lsrs r2, r0, 16
cmp r2, 0
beq _08004A0C
- ldr r0, _08004A08
+ ldr r0, =gUnknown_2025668
ldrh r2, [r0]
movs r4, 0
ldrsh r1, [r0, r4]
@@ -311,9 +295,9 @@ _080049E0:
strh r0, [r4]
b _08004A20
.align 2, 0
-_08004A08: .4byte gUnknown_2025668
+ .pool
_08004A0C:
- ldr r1, _08004A44
+ ldr r1, =gUnknown_2025668
ldrh r0, [r1]
subs r0, 0x2
lsls r0, 16
@@ -343,7 +327,7 @@ _08004A20:
strh r0, [r4, 0x2]
b _08004A5E
.align 2, 0
-_08004A44: .4byte gUnknown_2025668
+ .pool
_08004A48:
ldrh r0, [r4, 0x2]
subs r0, 0x2
@@ -358,7 +342,7 @@ _08004A48:
_08004A5C:
strh r2, [r4, 0x2]
_08004A5E:
- ldr r2, _08004A94
+ ldr r2, =gUnknown_2025638
ldrh r0, [r2]
ldrh r1, [r3]
orrs r0, r1
@@ -375,9 +359,9 @@ _08004A5E:
ldrh r1, [r3, 0x6]
orrs r0, r1
strh r0, [r2, 0x6]
- ldr r2, _08004A98
+ ldr r2, =gUnknown_202562C
ldrh r0, [r3]
- ldr r1, _08004A9C
+ ldr r1, =0x054a1c41
orrs r0, r1
ldr r1, [r2]
muls r0, r1
@@ -386,9 +370,7 @@ _08004A5E:
pop {r0}
bx r0
.align 2, 0
-_08004A94: .4byte gUnknown_2025638
-_08004A98: .4byte gUnknown_202562C
-_08004A9C: .4byte 0x054a1c41
+ .pool
thumb_func_end UpdateInput
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/m4a.s b/asm/m4a.s
deleted file mode 100644
index 7133670..0000000
--- a/asm/m4a.s
+++ /dev/null
@@ -1,4625 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start umul3232H32
-umul3232H32:
- adr r2, _080AE268
- bx r2
- .arm
-_080AE268:
- umull r2, r3, r0, r1
- add r0, r3, 0
- bx lr
- thumb_func_end umul3232H32
-
- thumb_func_start SoundMain
-SoundMain:
- ldr r0, _080AE2E0
- ldr r0, [r0]
- ldr r2, _080AE2E4
- ldr r3, [r0]
- cmp r2, r3
- beq _080AE282
- bx lr
-_080AE282:
- adds r3, 0x1
- str r3, [r0]
- push {r4-r7,lr}
- mov r1, r8
- mov r2, r9
- mov r3, r10
- mov r4, r11
- push {r0-r4}
- sub sp, 0x18
- ldrb r1, [r0, 0xC]
- cmp r1, 0
- beq _080AE2A6
- ldr r2, _080AE2EC
- ldrb r2, [r2]
- cmp r2, 0xA0
- bcs _080AE2A4
- adds r2, 0xE4
-_080AE2A4:
- adds r1, r2
-_080AE2A6:
- str r1, [sp, 0x14]
- ldr r3, [r0, 0x20]
- cmp r3, 0
- beq _080AE2B6
- ldr r0, [r0, 0x24]
- bl call_r3
- ldr r0, [sp, 0x18]
-_080AE2B6:
- ldr r3, [r0, 0x28]
- bl call_r3
- ldr r0, [sp, 0x18]
- ldr r3, [r0, 0x10]
- mov r8, r3
- ldr r5, _080AE2F0
- adds r5, r0
- ldrb r4, [r0, 0x4]
- subs r7, r4, 0x1
- bls _080AE2D6
- ldrb r1, [r0, 0xB]
- subs r1, r7
- mov r2, r8
- muls r2, r1
- adds r5, r2
-_080AE2D6:
- str r5, [sp, 0x8]
- ldr r6, _080AE2F4
- ldr r3, _080AE2E8
- bx r3
- .align 2, 0
-_080AE2E0: .4byte SOUND_INFO_PTR
-_080AE2E4: .4byte 0x68736d53
-_080AE2E8: .4byte SoundMainRAM_Buffer + 1
-_080AE2EC: .4byte 0x04000006
-_080AE2F0: .4byte 0x00000350
-_080AE2F4: .4byte 0x00000630
- thumb_func_end SoundMain
-
- thumb_func_start sub_80AE2F8
-sub_80AE2F8:
- ldrb r3, [r0, 0x5]
- cmp r3, 0
- beq _080AE358
- adr r1, _080AE304
- bx r1
- .arm
-_080AE304:
- cmp r4, 0x2
- addeq r7, r0, 0x350
- addne r7, r5, r8
- mov r4, r8
-_080AE314:
- ldrsb r0, [r5, r6]
- ldrsb r1, [r5]
- add r0, r0, r1
- ldrsb r1, [r7, r6]
- add r0, r0, r1
- ldrsb r1, [r7], 0x1
- add r0, r0, r1
- mul r1, r0, r3
- mov r0, r1, asr 9
- tst r0, 0x80
- addne r0, r0, 0x1
- strb r0, [r5, r6]
- strb r0, [r5], 0x1
- subs r4, r4, 0x1
- bgt _080AE314
- add r0, pc, 0x2F
- bx r0
- .thumb
-_080AE358:
- movs r0, 0
- mov r1, r8
- adds r6, r5
- lsrs r1, 3
- bcc _080AE366
- stm r5!, {r0}
- stm r6!, {r0}
-_080AE366:
- lsrs r1, 1
- bcc _080AE372
- stm r5!, {r0}
- stm r6!, {r0}
- stm r5!, {r0}
- stm r6!, {r0}
-_080AE372:
- stm r5!, {r0}
- stm r6!, {r0}
- stm r5!, {r0}
- stm r6!, {r0}
- stm r5!, {r0}
- stm r6!, {r0}
- stm r5!, {r0}
- stm r6!, {r0}
- subs r1, 0x1
- bgt _080AE372
- ldr r4, [sp, 0x18]
- ldr r0, [r4, 0x18]
- mov r12, r0
- ldrb r0, [r4, 0x6]
- adds r4, 0x50
-_080AE390:
- str r0, [sp, 0x4]
- ldr r3, [r4, 0x24]
- ldr r0, [sp, 0x14]
- cmp r0, 0
- beq _080AE3B0
- ldr r1, _080AE3AC
- ldrb r1, [r1]
- cmp r1, 0xA0
- bcs _080AE3A4
- adds r1, 0xE4
-_080AE3A4:
- cmp r1, r0
- bcc _080AE3B0
- b _080AE682
- .align 2, 0
-_080AE3AC: .4byte 0x04000006
-_080AE3B0:
- ldrb r6, [r4]
- movs r0, 0xC7
- tst r0, r6
- bne _080AE3BA
- b _080AE678
-_080AE3BA:
- movs r0, 0x80
- tst r0, r6
- beq _080AE3EA
- movs r0, 0x40
- tst r0, r6
- bne _080AE3FA
- movs r6, 0x3
- strb r6, [r4]
- adds r0, r3, 0
- adds r0, 0x10
- str r0, [r4, 0x28]
- ldr r0, [r3, 0xC]
- str r0, [r4, 0x18]
- movs r5, 0
- strb r5, [r4, 0x9]
- str r5, [r4, 0x1C]
- ldrb r2, [r3, 0x3]
- movs r0, 0xC0
- tst r0, r2
- beq _080AE442
- movs r0, 0x10
- orrs r6, r0
- strb r6, [r4]
- b _080AE442
-_080AE3EA:
- ldrb r5, [r4, 0x9]
- movs r0, 0x4
- tst r0, r6
- beq _080AE400
- ldrb r0, [r4, 0xD]
- subs r0, 0x1
- strb r0, [r4, 0xD]
- bhi _080AE450
-_080AE3FA:
- movs r0, 0
- strb r0, [r4]
- b _080AE678
-_080AE400:
- movs r0, 0x40
- tst r0, r6
- beq _080AE420
- ldrb r0, [r4, 0x7]
- muls r5, r0
- lsrs r5, 8
- ldrb r0, [r4, 0xC]
- cmp r5, r0
- bhi _080AE450
-_080AE412:
- ldrb r5, [r4, 0xC]
- cmp r5, 0
- beq _080AE3FA
- movs r0, 0x4
- orrs r6, r0
- strb r6, [r4]
- b _080AE450
-_080AE420:
- movs r2, 0x3
- ands r2, r6
- cmp r2, 0x2
- bne _080AE43E
- ldrb r0, [r4, 0x5]
- muls r5, r0
- lsrs r5, 8
- ldrb r0, [r4, 0x6]
- cmp r5, r0
- bhi _080AE450
- adds r5, r0, 0
- beq _080AE412
- subs r6, 0x1
- strb r6, [r4]
- b _080AE450
-_080AE43E:
- cmp r2, 0x3
- bne _080AE450
-_080AE442:
- ldrb r0, [r4, 0x4]
- adds r5, r0
- cmp r5, 0xFF
- bcc _080AE450
- movs r5, 0xFF
- subs r6, 0x1
- strb r6, [r4]
-_080AE450:
- strb r5, [r4, 0x9]
- ldr r0, [sp, 0x18]
- ldrb r0, [r0, 0x7]
- adds r0, 0x1
- muls r0, r5
- lsrs r5, r0, 4
- ldrb r0, [r4, 0x2]
- muls r0, r5
- lsrs r0, 8
- strb r0, [r4, 0xA]
- ldrb r0, [r4, 0x3]
- muls r0, r5
- lsrs r0, 8
- strb r0, [r4, 0xB]
- movs r0, 0x10
- ands r0, r6
- str r0, [sp, 0x10]
- beq _080AE484
- adds r0, r3, 0
- adds r0, 0x10
- ldr r1, [r3, 0x8]
- adds r0, r1
- str r0, [sp, 0xC]
- ldr r0, [r3, 0xC]
- subs r0, r1
- str r0, [sp, 0x10]
-_080AE484:
- ldr r5, [sp, 0x8]
- ldr r2, [r4, 0x18]
- ldr r3, [r4, 0x28]
- adr r0, _080AE490
- bx r0
- .arm
-_080AE490:
- str r8, [sp]
- ldrb r10, [r4, 0xA]
- ldrb r11, [r4, 0xB]
- mov r10, r10, lsl 16
- mov r11, r11, lsl 16
- ldrb r0, [r4, 0x1]
- tst r0, 0x8
- beq _080AE5D0
-_080AE4B0:
- cmp r2, 0x4
- ble _080AE520
- subs r2, r2, r8
- movgt lr, 0
- bgt _080AE4DC
- mov lr, r8
- add r2, r2, r8
- sub r8, r2, 0x4
- sub lr, lr, r8
- ands r2, r2, 0x3
- moveq r2, 0x4
-_080AE4DC:
- ldr r6, [r5]
- ldr r7, [r5, 0x630]
-_080AE4E4:
- ldrsb r0, [r3], 0x1
- mul r1, r10, r0
- bic r1, r1, 0xFF0000
- add r6, r1, r6, ror 8
- mul r1, r11, r0
- bic r1, r1, 0xFF0000
- add r7, r1, r7, ror 8
- adds r5, r5, 0x40000000
- bcc _080AE4E4
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- subs r8, r8, 0x4
- bgt _080AE4DC
- adds r8, r8, lr
- beq _080AE664
-_080AE520:
- ldr r6, [r5]
- ldr r7, [r5, 0x630]
-_080AE528:
- ldrsb r0, [r3], 0x1
- mul r1, r10, r0
- bic r1, r1, 0xFF0000
- add r6, r1, r6, ror 8
- mul r1, r11, r0
- bic r1, r1, 0xFF0000
- add r7, r1, r7, ror 8
- subs r2, r2, 0x1
- beq _080AE598
-_080AE54C:
- adds r5, r5, 0x40000000
- bcc _080AE528
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- subs r8, r8, 0x4
- bgt _080AE4B0
- b _080AE664
-_080AE568:
- ldr r0, [sp, 0x18]
- cmp r0, 0
- beq _080AE58C
- ldr r3, [sp, 0x14]
- rsb r9, r2, 0
-_080AE57C:
- adds r2, r0, r2
- bgt _080AE634
- sub r9, r9, r0
- b _080AE57C
-_080AE58C:
- ldmia sp!, {r4,r12}
- mov r2, 0
- b _080AE5A8
-_080AE598:
- ldr r2, [sp, 0x10]
- cmp r2, 0
- ldrne r3, [sp, 0xC]
- bne _080AE54C
-_080AE5A8:
- strb r2, [r4]
- mov r0, r5, lsr 30
- bic r5, r5, 0xC0000000
- rsb r0, r0, 0x3
- mov r0, r0, lsl 3
- mov r6, r6, ror r0
- mov r7, r7, ror r0
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- b _080AE66C
-_080AE5D0:
- stmdb sp!, {r4,r12}
- ldr lr, [r4, 0x1C]
- ldr r1, [r4, 0x20]
- mul r4, r12, r1
- ldrsb r0, [r3]
- ldrsb r1, [r3, 0x1]!
- sub r1, r1, r0
-_080AE5EC:
- ldr r6, [r5]
- ldr r7, [r5, 0x630]
-_080AE5F4:
- mul r9, lr, r1
- add r9, r0, r9, asr 23
- mul r12, r10, r9
- bic r12, r12, 0xFF0000
- add r6, r12, r6, ror 8
- mul r12, r11, r9
- bic r12, r12, 0xFF0000
- add r7, r12, r7, ror 8
- add lr, lr, r4
- movs r9, lr, lsr 23
- beq _080AE640
- bic lr, lr, 0x3F800000
- subs r2, r2, r9
- ble _080AE568
- subs r9, r9, 0x1
- addeq r0, r0, r1
-_080AE634:
- ldrsbne r0, [r3, r9]!
- ldrsb r1, [r3, 0x1]!
- sub r1, r1, r0
-_080AE640:
- adds r5, r5, 0x40000000
- bcc _080AE5F4
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- subs r8, r8, 0x4
- bgt _080AE5EC
- sub r3, r3, 0x1
- ldmia sp!, {r4,r12}
- str lr, [r4, 0x1C]
-_080AE664:
- str r2, [r4, 0x18]
- str r3, [r4, 0x28]
-_080AE66C:
- ldr r8, [sp]
- add r0, pc, 0x1
- bx r0
- .thumb
-_080AE678:
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- ble _080AE682
- adds r4, 0x40
- b _080AE390
-_080AE682:
- ldr r0, [sp, 0x18]
- ldr r3, _080AE698
- str r3, [r0]
- add sp, 0x1C
- pop {r0-r7}
- mov r8, r0
- mov r9, r1
- mov r10, r2
- mov r11, r3
- pop {r3}
-
-call_r3:
- bx r3
-
- .align 2, 0
-_080AE698: .4byte 0x68736D53
- thumb_func_end sub_80AE2F8
-
- thumb_func_start sub_80AE69C
-sub_80AE69C:
- mov r12, r4
- movs r1, 0
- movs r2, 0
- movs r3, 0
- movs r4, 0
- stm r0!, {r1-r4}
- stm r0!, {r1-r4}
- stm r0!, {r1-r4}
- stm r0!, {r1-r4}
- mov r4, r12
- bx lr
- thumb_func_end sub_80AE69C
-
- thumb_func_start sub_80AE6B4
-sub_80AE6B4:
- ldr r3, [r0, 0x2C]
- cmp r3, 0
- beq _080AE6D2
- ldr r1, [r0, 0x34]
- ldr r2, [r0, 0x30]
- cmp r2, 0
- beq _080AE6C6
- str r1, [r2, 0x34]
- b _080AE6C8
-_080AE6C6:
- str r1, [r3, 0x20]
-_080AE6C8:
- cmp r1, 0
- beq _080AE6CE
- str r2, [r1, 0x30]
-_080AE6CE:
- movs r1, 0
- str r1, [r0, 0x2C]
-_080AE6D2:
- bx lr
- thumb_func_end sub_80AE6B4
-
- thumb_func_start sub_80AE6D4
-sub_80AE6D4:
- push {r4,r5,lr}
- adds r5, r1, 0
- ldr r4, [r5, 0x20]
- cmp r4, 0
- beq _080AE6F8
-_080AE6DE:
- ldrb r1, [r4]
- movs r0, 0xC7
- tst r0, r1
- beq _080AE6EC
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r4]
-_080AE6EC:
- adds r0, r4, 0
- bl sub_80AE6B4
- ldr r4, [r4, 0x34]
- cmp r4, 0
- bne _080AE6DE
-_080AE6F8:
- movs r0, 0
- strb r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AE6D4
-
- thumb_func_start sub_80AE704
-sub_80AE704:
- mov r12, lr
- movs r1, 0x24
- ldr r2, _080AE734
-_080AE70A:
- ldr r3, [r2]
- bl _080AE71E
- stm r0!, {r3}
- adds r2, 0x4
- subs r1, 0x1
- bgt _080AE70A
- bx r12
- thumb_func_end sub_80AE704
-
- .align 2, 0
- .thumb_func
-_080AE71C:
- ldrb r3, [r2]
-
- .thumb_func
-_080AE71E:
- push {r0}
- lsrs r0, r2, 25
- bne _080AE730
- ldr r0, _080AE734
- cmp r2, r0
- bcc _080AE72E
- lsrs r0, r2, 14
- beq _080AE730
-_080AE72E:
- movs r3, 0
-_080AE730:
- pop {r0}
- bx lr
- .align 2, 0
-_080AE734: .4byte gUnknown_826F98C
-
- thumb_func_start sub_80AE738
-sub_80AE738:
- ldr r2, [r1, 0x40]
-_080AE73A:
- adds r3, r2, 0x1
- str r3, [r1, 0x40]
- ldrb r3, [r2]
- b _080AE71E
- thumb_func_end sub_80AE738
-
- thumb_func_start sub_80AE744
-sub_80AE744:
- push {lr}
-_080AE746:
- ldr r2, [r1, 0x40]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- ldrb r3, [r2, 0x2]
- orrs r0, r3
- lsls r0, 8
- ldrb r3, [r2, 0x1]
- orrs r0, r3
- lsls r0, 8
- bl _080AE71C
- orrs r0, r3
- str r0, [r1, 0x40]
- pop {r0}
- bx r0
- thumb_func_end sub_80AE744
-
- thumb_func_start sub_80AE764
-sub_80AE764:
- ldrb r2, [r1, 0x2]
- cmp r2, 0x3
- bcs _080AE77C
- lsls r2, 2
- adds r3, r1, r2
- ldr r2, [r1, 0x40]
- adds r2, 0x4
- str r2, [r3, 0x44]
- ldrb r2, [r1, 0x2]
- adds r2, 0x1
- strb r2, [r1, 0x2]
- b sub_80AE744
-_080AE77C:
- b sub_80AE6D4
- thumb_func_end sub_80AE764
-
- thumb_func_start sub_80AE780
-sub_80AE780:
- ldrb r2, [r1, 0x2]
- cmp r2, 0
- beq _080AE792
- subs r2, 0x1
- strb r2, [r1, 0x2]
- lsls r2, 2
- adds r3, r1, r2
- ldr r2, [r3, 0x44]
- str r2, [r1, 0x40]
-_080AE792:
- bx lr
- thumb_func_end sub_80AE780
-
- thumb_func_start sub_80AE794
-sub_80AE794:
- push {lr}
- ldr r2, [r1, 0x40]
- ldrb r3, [r2]
- cmp r3, 0
- bne _080AE7A4
- adds r2, 0x1
- str r2, [r1, 0x40]
- b _080AE746
-_080AE7A4:
- ldrb r3, [r1, 0x3]
- adds r3, 0x1
- strb r3, [r1, 0x3]
- mov r12, r3
- bl sub_80AE738
- cmp r12, r3
- bcs _080AE7B6
- b _080AE746
-_080AE7B6:
- movs r3, 0
- strb r3, [r1, 0x3]
- adds r2, 0x5
- str r2, [r1, 0x40]
- pop {r0}
- bx r0
- thumb_func_end sub_80AE794
-
- thumb_func_start sub_80AE7C4
-sub_80AE7C4:
- mov r12, lr
- bl sub_80AE738
- strb r3, [r1, 0x1D]
- bx r12
- thumb_func_end sub_80AE7C4
-
- thumb_func_start sub_80AE7D0
-sub_80AE7D0:
- mov r12, lr
- bl sub_80AE738
- lsls r3, 1
- strh r3, [r0, 0x1C]
- ldrh r2, [r0, 0x1E]
- muls r3, r2
- lsrs r3, 8
- strh r3, [r0, 0x20]
- bx r12
- thumb_func_end sub_80AE7D0
-
- thumb_func_start sub_80AE7E4
-sub_80AE7E4:
- mov r12, lr
- bl sub_80AE738
- strb r3, [r1, 0xA]
- ldrb r3, [r1]
- movs r2, 0xC
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end sub_80AE7E4
-
- thumb_func_start sub_80AE7F8
-sub_80AE7F8:
- mov r12, lr
- ldr r2, [r1, 0x40]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r1, 0x40]
- lsls r2, r3, 1
- adds r2, r3
- lsls r2, 2
- ldr r3, [r0, 0x30]
- adds r2, r3
- ldr r3, [r2]
- bl _080AE71E
- str r3, [r1, 0x24]
- ldr r3, [r2, 0x4]
- bl _080AE71E
- str r3, [r1, 0x28]
- ldr r3, [r2, 0x8]
- bl _080AE71E
- str r3, [r1, 0x2C]
- bx r12
- thumb_func_end sub_80AE7F8
-
- thumb_func_start sub_80AE828
-sub_80AE828:
- mov r12, lr
- bl sub_80AE738
- strb r3, [r1, 0x12]
- ldrb r3, [r1]
- movs r2, 0x3
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end sub_80AE828
-
- thumb_func_start sub_80AE83C
-sub_80AE83C:
- mov r12, lr
- bl sub_80AE738
- subs r3, 0x40
- strb r3, [r1, 0x14]
- ldrb r3, [r1]
- movs r2, 0x3
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end sub_80AE83C
-
- thumb_func_start sub_80AE850
-sub_80AE850:
- mov r12, lr
- bl sub_80AE738
- subs r3, 0x40
- strb r3, [r1, 0xE]
- ldrb r3, [r1]
- movs r2, 0xC
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end sub_80AE850
-
- thumb_func_start sub_80AE864
-sub_80AE864:
- mov r12, lr
- bl sub_80AE738
- strb r3, [r1, 0xF]
- ldrb r3, [r1]
- movs r2, 0xC
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end sub_80AE864
-
- thumb_func_start sub_80AE878
-sub_80AE878:
- mov r12, lr
- bl sub_80AE738
- strb r3, [r1, 0x1B]
- bx r12
- thumb_func_end sub_80AE878
-
- thumb_func_start sub_80AE884
-sub_80AE884:
- mov r12, lr
- bl sub_80AE738
- ldrb r0, [r1, 0x18]
- cmp r0, r3
- beq _080AE89A
- strb r3, [r1, 0x18]
- ldrb r3, [r1]
- movs r2, 0xF
- orrs r3, r2
- strb r3, [r1]
-_080AE89A:
- bx r12
- thumb_func_end sub_80AE884
-
- thumb_func_start sub_80AE89C
-sub_80AE89C:
- mov r12, lr
- bl sub_80AE738
- subs r3, 0x40
- strb r3, [r1, 0xC]
- ldrb r3, [r1]
- movs r2, 0xC
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end sub_80AE89C
-
- thumb_func_start sub_80AE8B0
-sub_80AE8B0:
- mov r12, lr
- ldr r2, [r1, 0x40]
- ldrb r3, [r2]
- adds r2, 0x1
- ldr r0, _080AE8C4
- adds r0, r3
- bl _080AE73A
- strb r3, [r0]
- bx r12
- .align 2, 0
-_080AE8C4: .4byte 0x04000060
- thumb_func_end sub_80AE8B0
-
- thumb_func_start m4aSoundVSync
-m4aSoundVSync:
- ldr r0, _080AEB74
- ldr r0, [r0]
- ldr r2, _080AEB78
- ldr r3, [r0]
- subs r3, r2
- cmp r3, 0x1
- bhi _080AE908
- ldrb r1, [r0, 0x4]
- subs r1, 0x1
- strb r1, [r0, 0x4]
- bgt _080AE908
- ldrb r1, [r0, 0xB]
- strb r1, [r0, 0x4]
- ldr r2, _080AE90C
- ldr r1, [r2, 0x8]
- lsls r1, 7
- bcc _080AE8EE
- ldr r1, _080AE910
- str r1, [r2, 0x8]
-_080AE8EE:
- ldr r1, [r2, 0x14]
- lsls r1, 7
- bcc _080AE8F8
- ldr r1, _080AE910
- str r1, [r2, 0x14]
-_080AE8F8:
- movs r1, 0x4
- lsls r1, 8
- strh r1, [r2, 0xA]
- strh r1, [r2, 0x16]
- movs r1, 0xB6
- lsls r1, 8
- strh r1, [r2, 0xA]
- strh r1, [r2, 0x16]
-_080AE908:
- bx lr
- .align 2, 0
-_080AE90C: .4byte 0x040000bc
-_080AE910: .4byte 0x84400004
- thumb_func_end m4aSoundVSync
-
- thumb_func_start sub_80AE914
-sub_80AE914:
- ldr r2, _080AEB78
- ldr r3, [r0, 0x34]
- cmp r2, r3
- beq _080AE91E
- bx lr
-_080AE91E:
- adds r3, 0x1
- str r3, [r0, 0x34]
- push {r0,lr}
- ldr r3, [r0, 0x38]
- cmp r3, 0
- beq _080AE930
- ldr r0, [r0, 0x3C]
- bl _080AEB6C
-_080AE930:
- pop {r0}
- push {r4-r7}
- mov r4, r8
- mov r5, r9
- mov r6, r10
- mov r7, r11
- push {r4-r7}
- adds r7, r0, 0
- ldr r0, [r7, 0x4]
- cmp r0, 0
- bge _080AE948
- b _080AEB5C
-_080AE948:
- ldr r0, _080AEB74
- ldr r0, [r0]
- mov r8, r0
- adds r0, r7, 0
- bl sub_80AF800
- ldr r0, [r7, 0x4]
- cmp r0, 0
- bge _080AE95C
- b _080AEB5C
-_080AE95C:
- ldrh r0, [r7, 0x22]
- ldrh r1, [r7, 0x20]
- adds r0, r1
- b _080AEAAC
-_080AE964:
- ldrb r6, [r7, 0x8]
- ldr r5, [r7, 0x2C]
- movs r3, 0x1
- movs r4, 0
-_080AE96C:
- ldrb r0, [r5]
- movs r1, 0x80
- tst r1, r0
- bne _080AE976
- b _080AEA88
-_080AE976:
- mov r10, r3
- orrs r4, r3
- mov r11, r4
- ldr r4, [r5, 0x20]
- cmp r4, 0
- beq _080AE9AA
-_080AE982:
- ldrb r1, [r4]
- movs r0, 0xC7
- tst r0, r1
- beq _080AE99E
- ldrb r0, [r4, 0x10]
- cmp r0, 0
- beq _080AE9A4
- subs r0, 0x1
- strb r0, [r4, 0x10]
- bne _080AE9A4
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r4]
- b _080AE9A4
-_080AE99E:
- adds r0, r4, 0
- bl sub_80AF2FC
-_080AE9A4:
- ldr r4, [r4, 0x34]
- cmp r4, 0
- bne _080AE982
-_080AE9AA:
- ldrb r3, [r5]
- movs r0, 0x40
- tst r0, r3
- beq _080AEA28
- adds r0, r5, 0
- bl sub_80AF310
- movs r0, 0x80
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0xF]
- movs r0, 0x40
- strb r0, [r5, 0x13]
- movs r0, 0x16
- strb r0, [r5, 0x19]
- movs r0, 0x1
- adds r1, r5, 0x6
- strb r0, [r1, 0x1E]
- b _080AEA28
-_080AE9D0:
- ldr r2, [r5, 0x40]
- ldrb r1, [r2]
- cmp r1, 0x80
- bcs _080AE9DC
- ldrb r1, [r5, 0x7]
- b _080AE9E6
-_080AE9DC:
- adds r2, 0x1
- str r2, [r5, 0x40]
- cmp r1, 0xBD
- bcc _080AE9E6
- strb r1, [r5, 0x7]
-_080AE9E6:
- cmp r1, 0xCF
- bcc _080AE9FC
- mov r0, r8
- ldr r3, [r0, 0x38]
- adds r0, r1, 0
- subs r0, 0xCF
- adds r1, r7, 0
- adds r2, r5, 0
- bl _080AEB6C
- b _080AEA28
-_080AE9FC:
- cmp r1, 0xB0
- bls _080AEA1E
- adds r0, r1, 0
- subs r0, 0xB1
- strb r0, [r7, 0xA]
- mov r3, r8
- ldr r3, [r3, 0x34]
- lsls r0, 2
- ldr r3, [r3, r0]
- adds r0, r7, 0
- adds r1, r5, 0
- bl _080AEB6C
- ldrb r0, [r5]
- cmp r0, 0
- beq _080AEA84
- b _080AEA28
-_080AEA1E:
- ldr r0, _080AEB70
- subs r1, 0x80
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r5, 0x1]
-_080AEA28:
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _080AE9D0
- subs r0, 0x1
- strb r0, [r5, 0x1]
- ldrb r1, [r5, 0x19]
- cmp r1, 0
- beq _080AEA84
- ldrb r0, [r5, 0x17]
- cmp r0, 0
- beq _080AEA84
- ldrb r0, [r5, 0x1C]
- cmp r0, 0
- beq _080AEA4A
- subs r0, 0x1
- strb r0, [r5, 0x1C]
- b _080AEA84
-_080AEA4A:
- ldrb r0, [r5, 0x1A]
- adds r0, r1
- strb r0, [r5, 0x1A]
- adds r1, r0, 0
- subs r0, 0x40
- lsls r0, 24
- bpl _080AEA5E
- lsls r2, r1, 24
- asrs r2, 24
- b _080AEA62
-_080AEA5E:
- movs r0, 0x80
- subs r2, r0, r1
-_080AEA62:
- ldrb r0, [r5, 0x17]
- muls r0, r2
- asrs r2, r0, 6
- ldrb r0, [r5, 0x16]
- eors r0, r2
- lsls r0, 24
- beq _080AEA84
- strb r2, [r5, 0x16]
- ldrb r0, [r5]
- ldrb r1, [r5, 0x18]
- cmp r1, 0
- bne _080AEA7E
- movs r1, 0xC
- b _080AEA80
-_080AEA7E:
- movs r1, 0x3
-_080AEA80:
- orrs r0, r1
- strb r0, [r5]
-_080AEA84:
- mov r3, r10
- mov r4, r11
-_080AEA88:
- subs r6, 0x1
- ble _080AEA94
- movs r0, 0x50
- adds r5, r0
- lsls r3, 1
- b _080AE96C
-_080AEA94:
- ldr r0, [r7, 0xC]
- adds r0, 0x1
- str r0, [r7, 0xC]
- cmp r4, 0
- bne _080AEAA6
- movs r0, 0x80
- lsls r0, 24
- str r0, [r7, 0x4]
- b _080AEB5C
-_080AEAA6:
- str r4, [r7, 0x4]
- ldrh r0, [r7, 0x22]
- subs r0, 0x96
-_080AEAAC:
- strh r0, [r7, 0x22]
- cmp r0, 0x96
- bcc _080AEAB4
- b _080AE964
-_080AEAB4:
- ldrb r2, [r7, 0x8]
- ldr r5, [r7, 0x2C]
-_080AEAB8:
- ldrb r0, [r5]
- movs r1, 0x80
- tst r1, r0
- beq _080AEB52
- movs r1, 0xF
- tst r1, r0
- beq _080AEB52
- mov r9, r2
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80AF8C8
- ldr r4, [r5, 0x20]
- cmp r4, 0
- beq _080AEB48
-_080AEAD6:
- ldrb r1, [r4]
- movs r0, 0xC7
- tst r0, r1
- bne _080AEAE6
- adds r0, r4, 0
- bl sub_80AF2FC
- b _080AEB42
-_080AEAE6:
- ldrb r0, [r4, 0x1]
- movs r6, 0x7
- ands r6, r0
- ldrb r3, [r5]
- movs r0, 0x3
- tst r0, r3
- beq _080AEB04
- bl sub_80AEBC0
- cmp r6, 0
- beq _080AEB04
- ldrb r0, [r4, 0x1D]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1D]
-_080AEB04:
- ldrb r3, [r5]
- movs r0, 0xC
- tst r0, r3
- beq _080AEB42
- ldrb r1, [r4, 0x8]
- movs r0, 0x8
- ldrsb r0, [r5, r0]
- adds r2, r1, r0
- bpl _080AEB18
- movs r2, 0
-_080AEB18:
- cmp r6, 0
- beq _080AEB36
- mov r0, r8
- ldr r3, [r0, 0x30]
- adds r1, r2, 0
- ldrb r2, [r5, 0x9]
- adds r0, r6, 0
- bl _080AEB6C
- str r0, [r4, 0x20]
- ldrb r0, [r4, 0x1D]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1D]
- b _080AEB42
-_080AEB36:
- adds r1, r2, 0
- ldrb r2, [r5, 0x9]
- ldr r0, [r4, 0x24]
- bl sub_80AEE80
- str r0, [r4, 0x20]
-_080AEB42:
- ldr r4, [r4, 0x34]
- cmp r4, 0
- bne _080AEAD6
-_080AEB48:
- ldrb r0, [r5]
- movs r1, 0xF0
- ands r0, r1
- strb r0, [r5]
- mov r2, r9
-_080AEB52:
- subs r2, 0x1
- ble _080AEB5C
- movs r0, 0x50
- adds r5, r0
- bgt _080AEAB8
-_080AEB5C:
- ldr r0, _080AEB78
- str r0, [r7, 0x34]
- pop {r0-r7}
- mov r8, r0
- mov r9, r1
- mov r10, r2
- mov r11, r3
- pop {r3}
-_080AEB6C:
- bx r3
- .align 2, 0
-_080AEB70: .4byte gUnknown_826FC00
-_080AEB74: .4byte SOUND_INFO_PTR
-_080AEB78: .4byte 0x68736d53
- thumb_func_end sub_80AE914
-
- thumb_func_start sub_80AEB7C
-sub_80AEB7C:
- push {r4-r6,lr}
- adds r5, r1, 0
- ldrb r1, [r5]
- movs r0, 0x80
- tst r0, r1
- beq _080AEBB4
- ldr r4, [r5, 0x20]
- cmp r4, 0
- beq _080AEBB2
- movs r6, 0
-_080AEB90:
- ldrb r0, [r4]
- cmp r0, 0
- beq _080AEBAA
- ldrb r0, [r4, 0x1]
- movs r3, 0x7
- ands r0, r3
- beq _080AEBA8
- ldr r3, _080AEBBC
- ldr r3, [r3]
- ldr r3, [r3, 0x2C]
- bl _080AEB6C
-_080AEBA8:
- strb r6, [r4]
-_080AEBAA:
- str r6, [r4, 0x2C]
- ldr r4, [r4, 0x34]
- cmp r4, 0
- bne _080AEB90
-_080AEBB2:
- str r4, [r5, 0x20]
-_080AEBB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEBBC: .4byte SOUND_INFO_PTR
- thumb_func_end sub_80AEB7C
-
- thumb_func_start sub_80AEBC0
-sub_80AEBC0:
- ldrb r1, [r4, 0x12]
- movs r0, 0x14
- ldrsb r2, [r4, r0]
- movs r3, 0x80
- adds r3, r2
- muls r3, r1
- ldrb r0, [r5, 0x10]
- muls r0, r3
- asrs r0, 14
- cmp r0, 0xFF
- bls _080AEBD8
- movs r0, 0xFF
-_080AEBD8:
- strb r0, [r4, 0x2]
- movs r3, 0x7F
- subs r3, r2
- muls r3, r1
- ldrb r0, [r5, 0x11]
- muls r0, r3
- asrs r0, 14
- cmp r0, 0xFF
- bls _080AEBEC
- movs r0, 0xFF
-_080AEBEC:
- strb r0, [r4, 0x3]
- bx lr
- thumb_func_end sub_80AEBC0
-
- thumb_func_start sub_80AEBF0
-sub_80AEBF0:
- push {r4-r7,lr}
- mov r4, r8
- mov r5, r9
- mov r6, r10
- mov r7, r11
- push {r4-r7}
- sub sp, 0x18
- str r1, [sp]
- adds r5, r2, 0
- ldr r1, _080AEDE8
- ldr r1, [r1]
- str r1, [sp, 0x4]
- ldr r1, _080AEDEC
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r5, 0x4]
- ldr r3, [r5, 0x40]
- ldrb r0, [r3]
- cmp r0, 0x80
- bcs _080AEC36
- strb r0, [r5, 0x5]
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0x80
- bcs _080AEC34
- strb r0, [r5, 0x6]
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0x80
- bcs _080AEC34
- ldrb r1, [r5, 0x4]
- adds r1, r0
- strb r1, [r5, 0x4]
- adds r3, 0x1
-_080AEC34:
- str r3, [r5, 0x40]
-_080AEC36:
- movs r0, 0
- str r0, [sp, 0x14]
- adds r4, r5, 0
- adds r4, 0x24
- ldrb r2, [r4]
- movs r0, 0xC0
- tst r0, r2
- beq _080AEC88
- ldrb r3, [r5, 0x5]
- movs r0, 0x40
- tst r0, r2
- beq _080AEC56
- ldr r1, [r5, 0x2C]
- adds r1, r3
- ldrb r0, [r1]
- b _080AEC58
-_080AEC56:
- adds r0, r3, 0
-_080AEC58:
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, [r5, 0x28]
- adds r1, r0
- mov r9, r1
- mov r6, r9
- ldrb r1, [r6]
- movs r0, 0xC0
- tst r0, r1
- beq _080AEC70
- b _080AEDD6
-_080AEC70:
- movs r0, 0x80
- tst r0, r2
- beq _080AEC8C
- ldrb r1, [r6, 0x3]
- movs r0, 0x80
- tst r0, r1
- beq _080AEC84
- subs r1, 0xC0
- lsls r1, 1
- str r1, [sp, 0x14]
-_080AEC84:
- ldrb r3, [r6, 0x1]
- b _080AEC8C
-_080AEC88:
- mov r9, r4
- ldrb r3, [r5, 0x5]
-_080AEC8C:
- str r3, [sp, 0x8]
- ldr r6, [sp]
- ldrb r1, [r6, 0x9]
- ldrb r0, [r5, 0x1D]
- adds r0, r1
- cmp r0, 0xFF
- bls _080AEC9C
- movs r0, 0xFF
-_080AEC9C:
- str r0, [sp, 0x10]
- mov r6, r9
- ldrb r0, [r6]
- movs r6, 0x7
- ands r6, r0
- str r6, [sp, 0xC]
- beq _080AECDC
- ldr r0, [sp, 0x4]
- ldr r4, [r0, 0x1C]
- cmp r4, 0
- bne _080AECB4
- b _080AEDD6
-_080AECB4:
- subs r6, 0x1
- lsls r0, r6, 6
- adds r4, r0
- ldrb r1, [r4]
- movs r0, 0xC7
- tst r0, r1
- beq _080AED30
- movs r0, 0x40
- tst r0, r1
- bne _080AED30
- ldrb r1, [r4, 0x13]
- ldr r0, [sp, 0x10]
- cmp r1, r0
- bcc _080AED30
- beq _080AECD4
- b _080AEDD6
-_080AECD4:
- ldr r0, [r4, 0x2C]
- cmp r0, r5
- bcs _080AED30
- b _080AEDD6
-_080AECDC:
- ldr r6, [sp, 0x10]
- adds r7, r5, 0
- movs r2, 0
- mov r8, r2
- ldr r4, [sp, 0x4]
- ldrb r3, [r4, 0x6]
- adds r4, 0x50
-_080AECEA:
- ldrb r1, [r4]
- movs r0, 0xC7
- tst r0, r1
- beq _080AED30
- movs r0, 0x40
- tst r0, r1
- beq _080AED04
- cmp r2, 0
- bne _080AED08
- adds r2, 0x1
- ldrb r6, [r4, 0x13]
- ldr r7, [r4, 0x2C]
- b _080AED22
-_080AED04:
- cmp r2, 0
- bne _080AED24
-_080AED08:
- ldrb r0, [r4, 0x13]
- cmp r0, r6
- bcs _080AED14
- adds r6, r0, 0
- ldr r7, [r4, 0x2C]
- b _080AED22
-_080AED14:
- bhi _080AED24
- ldr r0, [r4, 0x2C]
- cmp r0, r7
- bls _080AED20
- adds r7, r0, 0
- b _080AED22
-_080AED20:
- bcc _080AED24
-_080AED22:
- mov r8, r4
-_080AED24:
- adds r4, 0x40
- subs r3, 0x1
- bgt _080AECEA
- mov r4, r8
- cmp r4, 0
- beq _080AEDD6
-_080AED30:
- adds r0, r4, 0
- bl sub_80AF2FC
- movs r1, 0
- str r1, [r4, 0x30]
- ldr r3, [r5, 0x20]
- str r3, [r4, 0x34]
- cmp r3, 0
- beq _080AED44
- str r4, [r3, 0x30]
-_080AED44:
- str r4, [r5, 0x20]
- str r5, [r4, 0x2C]
- ldrb r0, [r5, 0x1B]
- strb r0, [r5, 0x1C]
- cmp r0, r1
- beq _080AED56
- adds r1, r5, 0
- bl sub_80AEE30
-_080AED56:
- ldr r0, [sp]
- adds r1, r5, 0
- bl sub_80AF8C8
- ldr r0, [r5, 0x4]
- str r0, [r4, 0x10]
- ldr r0, [sp, 0x10]
- strb r0, [r4, 0x13]
- ldr r0, [sp, 0x8]
- strb r0, [r4, 0x8]
- ldr r0, [sp, 0x14]
- strb r0, [r4, 0x14]
- mov r6, r9
- ldrb r0, [r6]
- strb r0, [r4, 0x1]
- ldr r7, [r6, 0x4]
- str r7, [r4, 0x24]
- ldr r0, [r6, 0x8]
- str r0, [r4, 0x4]
- ldrh r0, [r5, 0x1E]
- strh r0, [r4, 0xC]
- bl sub_80AEBC0
- ldrb r1, [r4, 0x8]
- movs r0, 0x8
- ldrsb r0, [r5, r0]
- adds r3, r1, r0
- bpl _080AED90
- movs r3, 0
-_080AED90:
- ldr r6, [sp, 0xC]
- cmp r6, 0
- beq _080AEDBE
- mov r6, r9
- ldrb r0, [r6, 0x2]
- strb r0, [r4, 0x1E]
- ldrb r1, [r6, 0x3]
- movs r0, 0x80
- tst r0, r1
- bne _080AEDAA
- movs r0, 0x70
- tst r0, r1
- bne _080AEDAC
-_080AEDAA:
- movs r1, 0x8
-_080AEDAC:
- strb r1, [r4, 0x1F]
- ldrb r2, [r5, 0x9]
- adds r1, r3, 0
- ldr r0, [sp, 0xC]
- ldr r3, [sp, 0x4]
- ldr r3, [r3, 0x30]
- bl _080AEB6C
- b _080AEDC8
-_080AEDBE:
- ldrb r2, [r5, 0x9]
- adds r1, r3, 0
- adds r0, r7, 0
- bl sub_80AEE80
-_080AEDC8:
- str r0, [r4, 0x20]
- movs r0, 0x80
- strb r0, [r4]
- ldrb r1, [r5]
- movs r0, 0xF0
- ands r0, r1
- strb r0, [r5]
-_080AEDD6:
- add sp, 0x18
- pop {r0-r7}
- mov r8, r0
- mov r9, r1
- mov r10, r2
- mov r11, r3
- pop {r0}
- bx r0
- .align 2, 0
-_080AEDE8: .4byte SOUND_INFO_PTR
-_080AEDEC: .4byte gUnknown_826FC00
- thumb_func_end sub_80AEBF0
-
- thumb_func_start sub_80AEDF0
-sub_80AEDF0:
- push {r4,r5}
- ldr r2, [r1, 0x40]
- ldrb r3, [r2]
- cmp r3, 0x80
- bcs _080AEE02
- strb r3, [r1, 0x5]
- adds r2, 0x1
- str r2, [r1, 0x40]
- b _080AEE04
-_080AEE02:
- ldrb r3, [r1, 0x5]
-_080AEE04:
- ldr r1, [r1, 0x20]
- cmp r1, 0
- beq _080AEE2C
- movs r4, 0x83
- movs r5, 0x40
-_080AEE0E:
- ldrb r2, [r1]
- tst r2, r4
- beq _080AEE26
- tst r2, r5
- bne _080AEE26
- ldrb r0, [r1, 0x11]
- cmp r0, r3
- bne _080AEE26
- movs r0, 0x40
- orrs r2, r0
- strb r2, [r1]
- b _080AEE2C
-_080AEE26:
- ldr r1, [r1, 0x34]
- cmp r1, 0
- bne _080AEE0E
-_080AEE2C:
- pop {r4,r5}
- bx lr
- thumb_func_end sub_80AEDF0
-
- thumb_func_start sub_80AEE30
-sub_80AEE30:
- movs r2, 0
- strb r2, [r1, 0x16]
- strb r2, [r1, 0x1A]
- ldrb r2, [r1, 0x18]
- cmp r2, 0
- bne _080AEE40
- movs r2, 0xC
- b _080AEE42
-_080AEE40:
- movs r2, 0x3
-_080AEE42:
- ldrb r3, [r1]
- orrs r3, r2
- strb r3, [r1]
- bx lr
- thumb_func_end sub_80AEE30
-
- thumb_func_start sub_80AEE4C
-sub_80AEE4C:
- ldr r2, [r1, 0x40]
- adds r3, r2, 0x1
- str r3, [r1, 0x40]
- ldrb r3, [r2]
- bx lr
- thumb_func_end sub_80AEE4C
-
- thumb_func_start sub_80AEE58
-sub_80AEE58:
- mov r12, lr
- bl sub_80AEE4C
- strb r3, [r1, 0x19]
- cmp r3, 0
- bne _080AEE68
- bl sub_80AEE30
-_080AEE68:
- bx r12
- thumb_func_end sub_80AEE58
-
- thumb_func_start sub_80AEE6C
-sub_80AEE6C:
- mov r12, lr
- bl sub_80AEE4C
- strb r3, [r1, 0x17]
- cmp r3, 0
- bne _080AEE7C
- bl sub_80AEE30
-_080AEE7C:
- bx r12
- thumb_func_end sub_80AEE6C
-
- thumb_func_start sub_80AEE80
-sub_80AEE80:
- push {r4-r7,lr}
- mov r12, r0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r7, r2, 24
- cmp r6, 0xB2
- bls _080AEE94
- movs r6, 0xB2
- movs r7, 0xFF
- lsls r7, 24
-_080AEE94:
- ldr r3, _080AEEDC
- adds r0, r6, r3
- ldrb r5, [r0]
- ldr r4, _080AEEE0
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- lsls r0, 2
- adds r0, r4
- lsrs r1, r5, 4
- ldr r5, [r0]
- lsrs r5, r1
- adds r0, r6, 0x1
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r1, 0
- ands r0, r2
- lsls r0, 2
- adds r0, r4
- lsrs r1, 4
- ldr r0, [r0]
- lsrs r0, r1
- mov r1, r12
- ldr r4, [r1, 0x4]
- subs r0, r5
- adds r1, r7, 0
- bl umul3232H32
- adds r1, r0, 0
- adds r1, r5, r1
- adds r0, r4, 0
- bl umul3232H32
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AEEDC: .4byte gUnknown_826FA1C
-_080AEEE0: .4byte gUnknown_826FAD0
- thumb_func_end sub_80AEE80
-
- thumb_func_start nullsub_212
-nullsub_212:
- bx lr
- thumb_func_end nullsub_212
-
- thumb_func_start sub_80AEEE8
-sub_80AEEE8:
- adds r2, r0, 0
- ldr r3, [r2, 0x34]
- ldr r0, _080AEEFC
- cmp r3, r0
- bne _080AEEFA
- ldr r0, [r2, 0x4]
- ldr r1, _080AEF00
- ands r0, r1
- str r0, [r2, 0x4]
-_080AEEFA:
- bx lr
- .align 2, 0
-_080AEEFC: .4byte 0x68736d53
-_080AEF00: .4byte 0x7fffffff
- thumb_func_end sub_80AEEE8
-
- thumb_func_start sub_80AEF04
-sub_80AEF04:
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [r2, 0x34]
- ldr r0, _080AEF20
- cmp r3, r0
- bne _080AEF1C
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r2, 0x28]
-_080AEF1C:
- bx lr
- .align 2, 0
-_080AEF20: .4byte 0x68736d53
- thumb_func_end sub_80AEF04
-
- thumb_func_start sub_80AEF24
-sub_80AEF24:
- push {r4-r6,lr}
- ldr r0, _080AEF78
- movs r1, 0x2
- negs r1, r1
- ands r0, r1
- ldr r1, _080AEF7C
- ldr r2, _080AEF80
- bl CpuSet
- ldr r0, _080AEF84
- bl sub_80AF324
- ldr r0, _080AEF88
- bl sub_80AF1E0
- ldr r0, _080AEF8C
- bl sub_80AF4C0
- ldr r0, _080AEF90
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080AEF72
- ldr r5, _080AEF94
- adds r6, r0, 0
-_080AEF56:
- ldr r4, [r5]
- ldr r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- adds r0, r4, 0
- bl sub_80AF664
- ldrh r0, [r5, 0xA]
- strb r0, [r4, 0xB]
- ldr r0, _080AEF98
- str r0, [r4, 0x18]
- adds r5, 0xC
- subs r6, 0x1
- cmp r6, 0
- bne _080AEF56
-_080AEF72:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEF78: .4byte sub_80AE2F8
-_080AEF7C: .4byte SoundMainRAM_Buffer
-_080AEF80: .4byte 0x04000100
-_080AEF84: .4byte gUnknown_2039ED0
-_080AEF88: .4byte gUnknown_203AF10
-_080AEF8C: .4byte 0x0096e500
-_080AEF90: .4byte 0x00000008
-_080AEF94: .4byte 0x09e8665c
-_080AEF98: .4byte gUnknown_2000A30
- thumb_func_end sub_80AEF24
-
- thumb_func_start m4aSoundMain
-m4aSoundMain:
- push {lr}
- bl SoundMain
- pop {r0}
- bx r0
- thumb_func_end m4aSoundMain
-
- thumb_func_start sub_80AEFA8
-sub_80AEFA8:
- push {lr}
- lsls r0, 16
- ldr r2, _080AEFCC
- ldr r1, _080AEFD0
- lsrs r0, 13
- adds r0, r1
- ldrh r3, [r0, 0x4]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, [r0]
- adds r0, r2, 0
- bl sub_80AF6DC
- pop {r0}
- bx r0
- .align 2, 0
-_080AEFCC: .4byte 0x09e8665c
-_080AEFD0: .4byte 0x09e866bc
- thumb_func_end sub_80AEFA8
-
- thumb_func_start sub_80AEFD4
-sub_80AEFD4:
- push {lr}
- lsls r0, 16
- ldr r2, _080AF000
- ldr r1, _080AF004
- lsrs r0, 13
- adds r0, r1
- ldrh r3, [r0, 0x4]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- ldr r3, [r1]
- ldr r2, [r0]
- cmp r3, r2
- beq _080AF008
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_80AF6DC
- b _080AF01C
- .align 2, 0
-_080AF000: .4byte 0x09e8665c
-_080AF004: .4byte 0x09e866bc
-_080AF008:
- ldr r2, [r1, 0x4]
- ldrh r0, [r1, 0x4]
- cmp r0, 0
- beq _080AF014
- cmp r2, 0
- bge _080AF01C
-_080AF014:
- adds r0, r1, 0
- adds r1, r3, 0
- bl sub_80AF6DC
-_080AF01C:
- pop {r0}
- bx r0
- thumb_func_end sub_80AEFD4
-
- thumb_func_start sub_80AF020
-sub_80AF020:
- push {lr}
- lsls r0, 16
- ldr r2, _080AF04C
- ldr r1, _080AF050
- lsrs r0, 13
- adds r0, r1
- ldrh r3, [r0, 0x4]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- ldr r3, [r1]
- ldr r2, [r0]
- cmp r3, r2
- beq _080AF054
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_80AF6DC
- b _080AF070
- .align 2, 0
-_080AF04C: .4byte 0x09e8665c
-_080AF050: .4byte 0x09e866bc
-_080AF054:
- ldr r2, [r1, 0x4]
- ldrh r0, [r1, 0x4]
- cmp r0, 0
- bne _080AF066
- adds r0, r1, 0
- adds r1, r3, 0
- bl sub_80AF6DC
- b _080AF070
-_080AF066:
- cmp r2, 0
- bge _080AF070
- adds r0, r1, 0
- bl sub_80AEEE8
-_080AF070:
- pop {r0}
- bx r0
- thumb_func_end sub_80AF020
-
- thumb_func_start sub_80AF074
-sub_80AF074:
- push {lr}
- lsls r0, 16
- ldr r2, _080AF0A0
- ldr r1, _080AF0A4
- lsrs r0, 13
- adds r0, r1
- ldrh r3, [r0, 0x4]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, [r2]
- ldr r0, [r0]
- cmp r1, r0
- bne _080AF09A
- adds r0, r2, 0
- bl sub_80AF7C0
-_080AF09A:
- pop {r0}
- bx r0
- .align 2, 0
-_080AF0A0: .4byte 0x09e8665c
-_080AF0A4: .4byte 0x09e866bc
- thumb_func_end sub_80AF074
-
- thumb_func_start sub_80AF0A8
-sub_80AF0A8:
- push {lr}
- lsls r0, 16
- ldr r2, _080AF0D4
- ldr r1, _080AF0D8
- lsrs r0, 13
- adds r0, r1
- ldrh r3, [r0, 0x4]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, [r2]
- ldr r0, [r0]
- cmp r1, r0
- bne _080AF0CE
- adds r0, r2, 0
- bl sub_80AEEE8
-_080AF0CE:
- pop {r0}
- bx r0
- .align 2, 0
-_080AF0D4: .4byte 0x09e8665c
-_080AF0D8: .4byte 0x09e866bc
- thumb_func_end sub_80AF0A8
-
- thumb_func_start sub_80AF0DC
-sub_80AF0DC:
- push {r4,r5,lr}
- ldr r0, _080AF100
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080AF0FA
- ldr r5, _080AF104
- adds r4, r0, 0
-_080AF0EC:
- ldr r0, [r5]
- bl sub_80AF7C0
- adds r5, 0xC
- subs r4, 0x1
- cmp r4, 0
- bne _080AF0EC
-_080AF0FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF100: .4byte 0x00000008
-_080AF104: .4byte 0x09e8665c
- thumb_func_end sub_80AF0DC
-
- thumb_func_start sub_80AF108
-sub_80AF108:
- push {lr}
- bl sub_80AEEE8
- pop {r0}
- bx r0
- thumb_func_end sub_80AF108
-
- thumb_func_start sub_80AF114
-sub_80AF114:
- push {r4,r5,lr}
- ldr r0, _080AF138
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080AF132
- ldr r5, _080AF13C
- adds r4, r0, 0
-_080AF124:
- ldr r0, [r5]
- bl sub_80AEEE8
- adds r5, 0xC
- subs r4, 0x1
- cmp r4, 0
- bne _080AF124
-_080AF132:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF138: .4byte 0x00000008
-_080AF13C: .4byte 0x09e8665c
- thumb_func_end sub_80AF114
-
- thumb_func_start sub_80AF140
-sub_80AF140:
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl sub_80AEF04
- pop {r0}
- bx r0
- thumb_func_end sub_80AF140
-
- thumb_func_start sub_80AF150
-sub_80AF150:
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [r2, 0x34]
- ldr r0, _080AF168
- cmp r3, r0
- bne _080AF166
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- ldr r0, _080AF16C
- strh r0, [r2, 0x28]
-_080AF166:
- bx lr
- .align 2, 0
-_080AF168: .4byte 0x68736d53
-_080AF16C: .4byte 0x00000101
- thumb_func_end sub_80AF150
-
- thumb_func_start sub_80AF170
-sub_80AF170:
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [r2, 0x34]
- ldr r0, _080AF190
- cmp r3, r0
- bne _080AF18E
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- movs r0, 0x2
- strh r0, [r2, 0x28]
- ldr r0, [r2, 0x4]
- ldr r1, _080AF194
- ands r0, r1
- str r0, [r2, 0x4]
-_080AF18E:
- bx lr
- .align 2, 0
-_080AF190: .4byte 0x68736d53
-_080AF194: .4byte 0x7fffffff
- thumb_func_end sub_80AF170
-
- thumb_func_start sub_80AF198
-sub_80AF198:
- push {r4-r7,lr}
- ldrb r5, [r0, 0x8]
- ldr r4, [r0, 0x2C]
- cmp r5, 0
- ble _080AF1DA
- movs r7, 0x80
-_080AF1A4:
- ldrb r1, [r4]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080AF1D2
- movs r6, 0x40
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080AF1D2
- adds r0, r4, 0
- bl sub_80AF310
- strb r7, [r4]
- movs r0, 0x2
- strb r0, [r4, 0xF]
- strb r6, [r4, 0x13]
- movs r0, 0x16
- strb r0, [r4, 0x19]
- adds r1, r4, 0
- adds r1, 0x24
- movs r0, 0x1
- strb r0, [r1]
-_080AF1D2:
- subs r5, 0x1
- adds r4, 0x50
- cmp r5, 0
- bgt _080AF1A4
-_080AF1DA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF198
-
- thumb_func_start sub_80AF1E0
-sub_80AF1E0:
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r1, _080AF2A8
- movs r0, 0x8F
- strh r0, [r1]
- ldr r3, _080AF2AC
- movs r2, 0
- strh r2, [r3]
- ldr r0, _080AF2B0
- movs r1, 0x8
- strb r1, [r0]
- adds r0, 0x6
- strb r1, [r0]
- adds r0, 0x10
- strb r1, [r0]
- subs r0, 0x14
- movs r1, 0x80
- strb r1, [r0]
- adds r0, 0x8
- strb r1, [r0]
- adds r0, 0x10
- strb r1, [r0]
- subs r0, 0xD
- strb r2, [r0]
- movs r0, 0x77
- strb r0, [r3]
- ldr r0, _080AF2B4
- ldr r4, [r0]
- ldr r6, [r4]
- ldr r0, _080AF2B8
- cmp r6, r0
- bne _080AF2A0
- adds r0, r6, 0x1
- str r0, [r4]
- ldr r1, _080AF2BC
- ldr r0, _080AF2C0
- str r0, [r1, 0x20]
- ldr r0, _080AF2C4
- str r0, [r1, 0x44]
- ldr r0, _080AF2C8
- str r0, [r1, 0x4C]
- ldr r0, _080AF2CC
- str r0, [r1, 0x70]
- ldr r0, _080AF2D0
- str r0, [r1, 0x74]
- ldr r0, _080AF2D4
- str r0, [r1, 0x78]
- ldr r0, _080AF2D8
- str r0, [r1, 0x7C]
- adds r2, r1, 0
- adds r2, 0x80
- ldr r0, _080AF2DC
- str r0, [r2]
- adds r1, 0x84
- ldr r0, _080AF2E0
- str r0, [r1]
- str r5, [r4, 0x1C]
- ldr r0, _080AF2E4
- str r0, [r4, 0x28]
- ldr r0, _080AF2E8
- str r0, [r4, 0x2C]
- ldr r0, _080AF2EC
- str r0, [r4, 0x30]
- ldr r0, _080AF2F0
- movs r1, 0
- strb r0, [r4, 0xC]
- str r1, [sp]
- ldr r2, _080AF2F4
- mov r0, sp
- adds r1, r5, 0
- bl CpuSet
- movs r0, 0x1
- strb r0, [r5, 0x1]
- movs r0, 0x11
- strb r0, [r5, 0x1C]
- adds r1, r5, 0
- adds r1, 0x41
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1B
- movs r0, 0x22
- strb r0, [r1]
- adds r1, 0x25
- movs r0, 0x3
- strb r0, [r1]
- adds r1, 0x1B
- movs r0, 0x44
- strb r0, [r1]
- adds r1, 0x24
- movs r0, 0x4
- strb r0, [r1, 0x1]
- movs r0, 0x88
- strb r0, [r1, 0x1C]
- str r6, [r4]
-_080AF2A0:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF2A8: .4byte 0x04000084
-_080AF2AC: .4byte 0x04000080
-_080AF2B0: .4byte 0x04000063
-_080AF2B4: .4byte SOUND_INFO_PTR
-_080AF2B8: .4byte 0x68736d53
-_080AF2BC: .4byte gUnknown_203AE80
-_080AF2C0: .4byte sub_80B019C
-_080AF2C4: .4byte sub_80AEE58
-_080AF2C8: .4byte sub_80AEE6C
-_080AF2CC: .4byte sub_80B02F4
-_080AF2D0: .4byte sub_80AEDF0
-_080AF2D4: .4byte sub_80AF41C
-_080AF2D8: .4byte sub_80AEB7C
-_080AF2DC: .4byte sub_80AF800
-_080AF2E0: .4byte sub_80AF8C8
-_080AF2E4: .4byte sub_80AFADC
-_080AF2E8: .4byte sub_80AFA24
-_080AF2EC: .4byte sub_80AF97C
-_080AF2F0: .4byte 0x00000000
-_080AF2F4: .4byte 0x05000040
- thumb_func_end sub_80AF1E0
-
- thumb_func_start sub_80AF2F8
-sub_80AF2F8:
- swi 0x2A
- bx lr
- thumb_func_end sub_80AF2F8
-
- thumb_func_start sub_80AF2FC
-sub_80AF2FC:
- push {lr}
- ldr r1, _080AF30C
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080AF30C: .4byte gUnknown_203AF08
- thumb_func_end sub_80AF2FC
-
- thumb_func_start sub_80AF310
-sub_80AF310:
- push {lr}
- ldr r1, _080AF320
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080AF320: .4byte gUnknown_203AF0C
- thumb_func_end sub_80AF310
-
- thumb_func_start sub_80AF324
-sub_80AF324:
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r3, 0
- str r3, [r5]
- ldr r1, _080AF3DC
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 18
- ands r0, r2
- cmp r0, 0
- beq _080AF340
- ldr r0, _080AF3E0
- str r0, [r1]
-_080AF340:
- ldr r1, _080AF3E4
- ldr r0, [r1]
- ands r0, r2
- cmp r0, 0
- beq _080AF34E
- ldr r0, _080AF3E0
- str r0, [r1]
-_080AF34E:
- ldr r0, _080AF3E8
- movs r2, 0x80
- lsls r2, 3
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- ldr r1, _080AF3EC
- movs r0, 0x8F
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _080AF3F0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080AF3F4
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080AF3F8
- movs r2, 0xD4
- lsls r2, 2
- adds r0, r5, r2
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _080AF3FC
- str r0, [r1]
- adds r1, 0x8
- movs r2, 0x98
- lsls r2, 4
- adds r0, r5, r2
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _080AF400
- str r0, [r1]
- ldr r0, _080AF404
- str r5, [r0]
- str r3, [sp]
- ldr r2, _080AF408
- mov r0, sp
- adds r1, r5, 0
- bl CpuSet
- movs r0, 0x8
- strb r0, [r5, 0x6]
- movs r0, 0xF
- strb r0, [r5, 0x7]
- ldr r0, _080AF40C
- str r0, [r5, 0x38]
- ldr r0, _080AF410
- str r0, [r5, 0x28]
- str r0, [r5, 0x2C]
- str r0, [r5, 0x30]
- str r0, [r5, 0x3C]
- ldr r4, _080AF414
- adds r0, r4, 0
- bl sub_80AE704
- str r4, [r5, 0x34]
- movs r0, 0x80
- lsls r0, 11
- bl sub_80AF41C
- ldr r0, _080AF418
- str r0, [r5]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF3DC: .4byte 0x040000c4
-_080AF3E0: .4byte 0x84400004
-_080AF3E4: .4byte 0x040000d0
-_080AF3E8: .4byte 0x040000c6
-_080AF3EC: .4byte 0x04000084
-_080AF3F0: .4byte 0x0000a90e
-_080AF3F4: .4byte 0x04000089
-_080AF3F8: .4byte 0x040000bc
-_080AF3FC: .4byte 0x040000a0
-_080AF400: .4byte 0x040000a4
-_080AF404: .4byte SOUND_INFO_PTR
-_080AF408: .4byte 0x050003ec
-_080AF40C: .4byte sub_80AEBF0
-_080AF410: .4byte nullsub_139
-_080AF414: .4byte gUnknown_203AE80
-_080AF418: .4byte 0x68736d53
- thumb_func_end sub_80AF324
-
- thumb_func_start sub_80AF41C
-sub_80AF41C:
- push {r4-r6,lr}
- adds r2, r0, 0
- ldr r0, _080AF49C
- ldr r4, [r0]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r2
- lsrs r2, r0, 16
- movs r6, 0
- strb r2, [r4, 0x8]
- ldr r1, _080AF4A0
- subs r0, r2, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r5, [r0]
- str r5, [r4, 0x10]
- movs r0, 0xC6
- lsls r0, 3
- adds r1, r5, 0
- bl __divsi3
- strb r0, [r4, 0xB]
- ldr r0, _080AF4A4
- muls r0, r5
- ldr r1, _080AF4A8
- adds r0, r1
- ldr r1, _080AF4AC
- bl __divsi3
- adds r1, r0, 0
- str r1, [r4, 0x14]
- movs r0, 0x80
- lsls r0, 17
- bl __divsi3
- adds r0, 0x1
- asrs r0, 1
- str r0, [r4, 0x18]
- ldr r0, _080AF4B0
- strh r6, [r0]
- ldr r4, _080AF4B4
- ldr r0, _080AF4B8
- adds r1, r5, 0
- bl __divsi3
- negs r0, r0
- strh r0, [r4]
- bl sub_80AF628
- ldr r1, _080AF4BC
-_080AF480:
- ldrb r0, [r1]
- cmp r0, 0x9F
- beq _080AF480
- ldr r1, _080AF4BC
-_080AF488:
- ldrb r0, [r1]
- cmp r0, 0x9F
- bne _080AF488
- ldr r1, _080AF4B0
- movs r0, 0x80
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF49C: .4byte SOUND_INFO_PTR
-_080AF4A0: .4byte gUnknown_826FB00
-_080AF4A4: .4byte 0x00091d1b
-_080AF4A8: .4byte 0x00001388
-_080AF4AC: .4byte 0x00002710
-_080AF4B0: .4byte 0x04000102
-_080AF4B4: .4byte 0x04000100
-_080AF4B8: .4byte 0x00044940
-_080AF4BC: .4byte 0x04000006
- thumb_func_end sub_80AF41C
-
- thumb_func_start sub_80AF4C0
-sub_80AF4C0:
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _080AF54C
- ldr r5, [r0]
- ldr r1, [r5]
- ldr r0, _080AF550
- cmp r1, r0
- bne _080AF546
- adds r0, r1, 0x1
- str r0, [r5]
- movs r4, 0xFF
- ands r4, r3
- cmp r4, 0
- beq _080AF4E2
- movs r0, 0x7F
- ands r4, r0
- strb r4, [r5, 0x5]
-_080AF4E2:
- movs r4, 0xF0
- lsls r4, 4
- ands r4, r3
- cmp r4, 0
- beq _080AF502
- lsrs r0, r4, 8
- strb r0, [r5, 0x6]
- movs r4, 0xC
- adds r0, r5, 0
- adds r0, 0x50
- movs r1, 0
-_080AF4F8:
- strb r1, [r0]
- subs r4, 0x1
- adds r0, 0x40
- cmp r4, 0
- bne _080AF4F8
-_080AF502:
- movs r4, 0xF0
- lsls r4, 8
- ands r4, r3
- cmp r4, 0
- beq _080AF510
- lsrs r0, r4, 12
- strb r0, [r5, 0x7]
-_080AF510:
- movs r4, 0xB0
- lsls r4, 16
- ands r4, r3
- cmp r4, 0
- beq _080AF52E
- movs r0, 0xC0
- lsls r0, 14
- ands r0, r4
- lsrs r4, r0, 14
- ldr r2, _080AF554
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- orrs r0, r4
- strb r0, [r2]
-_080AF52E:
- movs r4, 0xF0
- lsls r4, 12
- ands r4, r3
- cmp r4, 0
- beq _080AF542
- bl sub_80AF5AC
- adds r0, r4, 0
- bl sub_80AF41C
-_080AF542:
- ldr r0, _080AF550
- str r0, [r5]
-_080AF546:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF54C: .4byte SOUND_INFO_PTR
-_080AF550: .4byte 0x68736d53
-_080AF554: .4byte 0x04000089
- thumb_func_end sub_80AF4C0
-
- thumb_func_start sub_80AF558
-sub_80AF558:
- push {r4-r7,lr}
- ldr r0, _080AF5A4
- ldr r6, [r0]
- ldr r1, [r6]
- ldr r0, _080AF5A8
- cmp r1, r0
- bne _080AF59E
- adds r0, r1, 0x1
- str r0, [r6]
- movs r5, 0xC
- adds r4, r6, 0
- adds r4, 0x50
- movs r0, 0
-_080AF572:
- strb r0, [r4]
- subs r5, 0x1
- adds r4, 0x40
- cmp r5, 0
- bgt _080AF572
- ldr r4, [r6, 0x1C]
- cmp r4, 0
- beq _080AF59A
- movs r5, 0x1
- movs r7, 0
-_080AF586:
- lsls r0, r5, 24
- lsrs r0, 24
- ldr r1, [r6, 0x2C]
- bl _call_via_r1
- strb r7, [r4]
- adds r5, 0x1
- adds r4, 0x40
- cmp r5, 0x4
- ble _080AF586
-_080AF59A:
- ldr r0, _080AF5A8
- str r0, [r6]
-_080AF59E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF5A4: .4byte SOUND_INFO_PTR
-_080AF5A8: .4byte 0x68736d53
- thumb_func_end sub_80AF558
-
- thumb_func_start sub_80AF5AC
-sub_80AF5AC:
- push {lr}
- sub sp, 0x4
- ldr r0, _080AF60C
- ldr r2, [r0]
- ldr r1, [r2]
- ldr r3, _080AF610
- adds r0, r1, r3
- cmp r0, 0x1
- bhi _080AF604
- adds r0, r1, 0
- adds r0, 0xA
- str r0, [r2]
- ldr r1, _080AF614
- ldr r0, [r1]
- movs r3, 0x80
- lsls r3, 18
- ands r0, r3
- cmp r0, 0
- beq _080AF5D6
- ldr r0, _080AF618
- str r0, [r1]
-_080AF5D6:
- ldr r1, _080AF61C
- ldr r0, [r1]
- ands r0, r3
- cmp r0, 0
- beq _080AF5E4
- ldr r0, _080AF618
- str r0, [r1]
-_080AF5E4:
- ldr r0, _080AF620
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD4
- lsls r0, 2
- adds r1, r2, r0
- ldr r2, _080AF624
- mov r0, sp
- bl CpuSet
-_080AF604:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080AF60C: .4byte SOUND_INFO_PTR
-_080AF610: .4byte 0x978c92ad
-_080AF614: .4byte 0x040000c4
-_080AF618: .4byte 0x84400004
-_080AF61C: .4byte 0x040000d0
-_080AF620: .4byte 0x040000c6
-_080AF624: .4byte 0x05000318
- thumb_func_end sub_80AF5AC
-
- thumb_func_start sub_80AF628
-sub_80AF628:
- push {r4,lr}
- ldr r0, _080AF658
- ldr r2, [r0]
- ldr r3, [r2]
- ldr r0, _080AF65C
- cmp r3, r0
- beq _080AF650
- ldr r0, _080AF660
- movs r4, 0xB6
- lsls r4, 8
- adds r1, r4, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- ldrb r0, [r2, 0x4]
- movs r0, 0
- strb r0, [r2, 0x4]
- adds r0, r3, 0
- subs r0, 0xA
- str r0, [r2]
-_080AF650:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF658: .4byte SOUND_INFO_PTR
-_080AF65C: .4byte 0x68736d53
-_080AF660: .4byte 0x040000c6
- thumb_func_end sub_80AF628
-
- thumb_func_start sub_80AF664
-sub_80AF664:
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r4, 0
- beq _080AF6C8
- cmp r4, 0x10
- bls _080AF678
- movs r4, 0x10
-_080AF678:
- ldr r0, _080AF6D0
- ldr r5, [r0]
- ldr r1, [r5]
- ldr r0, _080AF6D4
- cmp r1, r0
- bne _080AF6C8
- adds r0, r1, 0x1
- str r0, [r5]
- adds r0, r7, 0
- bl sub_80AF310
- str r6, [r7, 0x2C]
- strb r4, [r7, 0x8]
- movs r0, 0x80
- lsls r0, 24
- str r0, [r7, 0x4]
- cmp r4, 0
- beq _080AF6AC
- movs r1, 0
-_080AF69E:
- strb r1, [r6]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, 0x50
- cmp r4, 0
- bne _080AF69E
-_080AF6AC:
- ldr r0, [r5, 0x20]
- cmp r0, 0
- beq _080AF6BC
- str r0, [r7, 0x38]
- ldr r0, [r5, 0x24]
- str r0, [r7, 0x3C]
- movs r0, 0
- str r0, [r5, 0x20]
-_080AF6BC:
- str r7, [r5, 0x24]
- ldr r0, _080AF6D8
- str r0, [r5, 0x20]
- ldr r0, _080AF6D4
- str r0, [r5]
- str r0, [r7, 0x34]
-_080AF6C8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF6D0: .4byte SOUND_INFO_PTR
-_080AF6D4: .4byte 0x68736d53
-_080AF6D8: .4byte sub_80AE914
- thumb_func_end sub_80AF664
-
- thumb_func_start sub_80AF6DC
-sub_80AF6DC:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r7, r1, 0
- ldr r1, [r5, 0x34]
- ldr r0, _080AF7BC
- cmp r1, r0
- bne _080AF7B2
- ldrb r0, [r5, 0xB]
- ldrb r2, [r7, 0x2]
- cmp r0, 0
- beq _080AF71E
- ldr r0, [r5]
- cmp r0, 0
- beq _080AF708
- ldr r1, [r5, 0x2C]
- movs r0, 0x40
- ldrb r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _080AF714
-_080AF708:
- ldr r1, [r5, 0x4]
- ldrh r0, [r5, 0x4]
- cmp r0, 0
- beq _080AF71E
- cmp r1, 0
- blt _080AF71E
-_080AF714:
- ldrb r0, [r7, 0x2]
- adds r2, r0, 0
- ldrb r0, [r5, 0x9]
- cmp r0, r2
- bhi _080AF7B2
-_080AF71E:
- ldr r0, [r5, 0x34]
- adds r0, 0x1
- str r0, [r5, 0x34]
- movs r1, 0
- str r1, [r5, 0x4]
- str r7, [r5]
- ldr r0, [r7, 0x4]
- str r0, [r5, 0x30]
- strb r2, [r5, 0x9]
- str r1, [r5, 0xC]
- movs r0, 0x96
- strh r0, [r5, 0x1C]
- strh r0, [r5, 0x20]
- adds r0, 0x6A
- strh r0, [r5, 0x1E]
- strh r1, [r5, 0x22]
- strh r1, [r5, 0x24]
- movs r6, 0
- ldr r4, [r5, 0x2C]
- ldrb r1, [r7]
- cmp r6, r1
- bge _080AF77E
- ldrb r0, [r5, 0x8]
- cmp r6, r0
- bge _080AF79E
- mov r8, r6
-_080AF752:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AEB7C
- movs r0, 0xC0
- strb r0, [r4]
- mov r1, r8
- str r1, [r4, 0x20]
- lsls r1, r6, 2
- adds r0, r7, 0
- adds r0, 0x8
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4, 0x40]
- adds r6, 0x1
- adds r4, 0x50
- ldrb r0, [r7]
- cmp r6, r0
- bge _080AF77E
- ldrb r1, [r5, 0x8]
- cmp r6, r1
- blt _080AF752
-_080AF77E:
- ldrb r0, [r5, 0x8]
- cmp r6, r0
- bge _080AF79E
- movs r1, 0
- mov r8, r1
-_080AF788:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AEB7C
- mov r0, r8
- strb r0, [r4]
- adds r6, 0x1
- adds r4, 0x50
- ldrb r1, [r5, 0x8]
- cmp r6, r1
- blt _080AF788
-_080AF79E:
- movs r0, 0x80
- ldrb r1, [r7, 0x3]
- ands r0, r1
- cmp r0, 0
- beq _080AF7AE
- ldrb r0, [r7, 0x3]
- bl sub_80AF4C0
-_080AF7AE:
- ldr r0, _080AF7BC
- str r0, [r5, 0x34]
-_080AF7B2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF7BC: .4byte 0x68736d53
- thumb_func_end sub_80AF6DC
-
- thumb_func_start sub_80AF7C0
-sub_80AF7C0:
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r1, [r6, 0x34]
- ldr r0, _080AF7FC
- cmp r1, r0
- bne _080AF7F6
- adds r0, r1, 0x1
- str r0, [r6, 0x34]
- ldr r0, [r6, 0x4]
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r6, 0x4]
- ldrb r4, [r6, 0x8]
- ldr r5, [r6, 0x2C]
- cmp r4, 0
- ble _080AF7F2
-_080AF7E2:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_80AEB7C
- subs r4, 0x1
- adds r5, 0x50
- cmp r4, 0
- bgt _080AF7E2
-_080AF7F2:
- ldr r0, _080AF7FC
- str r0, [r6, 0x34]
-_080AF7F6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF7FC: .4byte 0x68736d53
- thumb_func_end sub_80AF7C0
-
- thumb_func_start sub_80AF800
-sub_80AF800:
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r1, [r6, 0x24]
- cmp r1, 0
- beq _080AF8C2
- ldrh r0, [r6, 0x26]
- subs r0, 0x1
- strh r0, [r6, 0x26]
- ldr r3, _080AF840
- adds r2, r3, 0
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _080AF8C2
- strh r1, [r6, 0x26]
- ldrh r1, [r6, 0x28]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080AF844
- adds r0, r1, 0
- adds r0, 0x10
- strh r0, [r6, 0x28]
- ands r0, r2
- cmp r0, 0xFF
- bls _080AF896
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r6, 0x28]
- strh r3, [r6, 0x24]
- b _080AF896
- .align 2, 0
-_080AF840: .4byte 0x0000ffff
-_080AF844:
- adds r0, r1, 0
- subs r0, 0x10
- strh r0, [r6, 0x28]
- ands r0, r2
- lsls r0, 16
- cmp r0, 0
- bgt _080AF896
- ldrb r5, [r6, 0x8]
- ldr r4, [r6, 0x2C]
- cmp r5, 0
- ble _080AF876
-_080AF85A:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80AEB7C
- movs r0, 0x1
- ldrh r7, [r6, 0x28]
- ands r0, r7
- cmp r0, 0
- bne _080AF86E
- strb r0, [r4]
-_080AF86E:
- subs r5, 0x1
- adds r4, 0x50
- cmp r5, 0
- bgt _080AF85A
-_080AF876:
- movs r0, 0x1
- ldrh r1, [r6, 0x28]
- ands r0, r1
- cmp r0, 0
- beq _080AF88A
- ldr r0, [r6, 0x4]
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- b _080AF88E
-_080AF88A:
- movs r0, 0x80
- lsls r0, 24
-_080AF88E:
- str r0, [r6, 0x4]
- movs r0, 0
- strh r0, [r6, 0x24]
- b _080AF8C2
-_080AF896:
- ldrb r5, [r6, 0x8]
- ldr r4, [r6, 0x2C]
- cmp r5, 0
- ble _080AF8C2
- movs r3, 0x80
- movs r7, 0
- movs r2, 0x3
-_080AF8A4:
- ldrb r1, [r4]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080AF8BA
- ldrh r7, [r6, 0x28]
- lsrs r0, r7, 2
- strb r0, [r4, 0x13]
- adds r0, r1, 0
- orrs r0, r2
- strb r0, [r4]
-_080AF8BA:
- subs r5, 0x1
- adds r4, 0x50
- cmp r5, 0
- bgt _080AF8A4
-_080AF8C2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF800
-
- thumb_func_start sub_80AF8C8
-sub_80AF8C8:
- push {r4,lr}
- adds r2, r1, 0
- movs r0, 0x1
- ldrb r1, [r2]
- ands r0, r1
- cmp r0, 0
- beq _080AF92C
- ldrb r3, [r2, 0x13]
- ldrb r1, [r2, 0x12]
- adds r0, r3, 0
- muls r0, r1
- lsrs r3, r0, 5
- ldrb r4, [r2, 0x18]
- cmp r4, 0x1
- bne _080AF8F0
- movs r0, 0x16
- ldrsb r0, [r2, r0]
- adds r0, 0x80
- muls r0, r3
- lsrs r3, r0, 7
-_080AF8F0:
- movs r0, 0x14
- ldrsb r0, [r2, r0]
- lsls r0, 1
- movs r1, 0x15
- ldrsb r1, [r2, r1]
- adds r1, r0, r1
- cmp r4, 0x2
- bne _080AF906
- movs r0, 0x16
- ldrsb r0, [r2, r0]
- adds r1, r0
-_080AF906:
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- bge _080AF912
- adds r1, r0, 0
- b _080AF918
-_080AF912:
- cmp r1, 0x7F
- ble _080AF918
- movs r1, 0x7F
-_080AF918:
- adds r0, r1, 0
- adds r0, 0x80
- muls r0, r3
- lsrs r0, 8
- strb r0, [r2, 0x10]
- movs r0, 0x7F
- subs r0, r1
- muls r0, r3
- lsrs r0, 8
- strb r0, [r2, 0x11]
-_080AF92C:
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- adds r3, r1, 0
- cmp r0, 0
- beq _080AF970
- movs r0, 0xE
- ldrsb r0, [r2, r0]
- ldrb r1, [r2, 0xF]
- muls r0, r1
- movs r1, 0xC
- ldrsb r1, [r2, r1]
- adds r1, r0
- lsls r1, 2
- movs r0, 0xA
- ldrsb r0, [r2, r0]
- lsls r0, 8
- adds r1, r0
- movs r0, 0xB
- ldrsb r0, [r2, r0]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0xD]
- adds r1, r0, r1
- ldrb r0, [r2, 0x18]
- cmp r0, 0
- bne _080AF96A
- movs r0, 0x16
- ldrsb r0, [r2, r0]
- lsls r0, 4
- adds r1, r0
-_080AF96A:
- asrs r0, r1, 8
- strb r0, [r2, 0x8]
- strb r1, [r2, 0x9]
-_080AF970:
- movs r0, 0xFA
- ands r0, r3
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF8C8
-
- thumb_func_start sub_80AF97C
-sub_80AF97C:
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r12, r2
- cmp r0, 0x4
- bne _080AF9B4
- cmp r5, 0x14
- bhi _080AF998
- movs r5, 0
- b _080AF9A6
-_080AF998:
- adds r0, r5, 0
- subs r0, 0x15
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3B
- bls _080AF9A6
- movs r5, 0x3B
-_080AF9A6:
- ldr r0, _080AF9B0
- adds r0, r5, r0
- ldrb r0, [r0]
- b _080AFA16
- .align 2, 0
-_080AF9B0: .4byte gUnknown_826FBB4
-_080AF9B4:
- cmp r5, 0x23
- bhi _080AF9C0
- movs r0, 0
- mov r12, r0
- movs r5, 0
- b _080AF9D2
-_080AF9C0:
- adds r0, r5, 0
- subs r0, 0x24
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x82
- bls _080AF9D2
- movs r5, 0x82
- movs r1, 0xFF
- mov r12, r1
-_080AF9D2:
- ldr r3, _080AFA1C
- adds r0, r5, r3
- ldrb r6, [r0]
- ldr r4, _080AFA20
- movs r2, 0xF
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 1
- adds r0, r4
- movs r7, 0
- ldrsh r1, [r0, r7]
- asrs r0, r6, 4
- adds r6, r1, 0
- asrs r6, r0
- adds r0, r5, 0x1
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r1, 0
- ands r0, r2
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- asrs r1, 4
- asrs r0, r1
- subs r0, r6
- mov r7, r12
- muls r7, r0
- adds r0, r7, 0
- asrs r0, 8
- adds r0, r6, r0
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1
-_080AFA16:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AFA1C: .4byte gUnknown_826FB18
-_080AFA20: .4byte gUnknown_826FB9C
- thumb_func_end sub_80AF97C
-
- thumb_func_start sub_80AFA24
-sub_80AFA24:
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2
- beq _080AFA4C
- cmp r0, 0x2
- bgt _080AFA38
- cmp r0, 0x1
- beq _080AFA3E
- b _080AFA60
-_080AFA38:
- cmp r1, 0x3
- beq _080AFA54
- b _080AFA60
-_080AFA3E:
- ldr r1, _080AFA48
- movs r0, 0x8
- strb r0, [r1]
- adds r1, 0x2
- b _080AFA68
- .align 2, 0
-_080AFA48: .4byte 0x04000063
-_080AFA4C:
- ldr r1, _080AFA50
- b _080AFA62
- .align 2, 0
-_080AFA50: .4byte 0x04000069
-_080AFA54:
- ldr r1, _080AFA5C
- movs r0, 0
- b _080AFA6A
- .align 2, 0
-_080AFA5C: .4byte 0x04000070
-_080AFA60:
- ldr r1, _080AFA70
-_080AFA62:
- movs r0, 0x8
- strb r0, [r1]
- adds r1, 0x4
-_080AFA68:
- movs r0, 0x80
-_080AFA6A:
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080AFA70: .4byte 0x04000079
- thumb_func_end sub_80AFA24
-
- thumb_func_start sub_80AFA74
-sub_80AFA74:
- push {r4,lr}
- adds r1, r0, 0
- ldrb r0, [r1, 0x2]
- lsls r2, r0, 24
- lsrs r4, r2, 24
- ldrb r3, [r1, 0x3]
- lsls r0, r3, 24
- lsrs r3, r0, 24
- cmp r4, r3
- bcc _080AFA94
- lsrs r0, r2, 25
- cmp r0, r3
- bcc _080AFAA0
- movs r0, 0xF
- strb r0, [r1, 0x1B]
- b _080AFAAE
-_080AFA94:
- lsrs r0, 25
- cmp r0, r4
- bcc _080AFAA0
- movs r0, 0xF0
- strb r0, [r1, 0x1B]
- b _080AFAAE
-_080AFAA0:
- movs r0, 0xFF
- strb r0, [r1, 0x1B]
- ldrb r2, [r1, 0x3]
- ldrb r3, [r1, 0x2]
- adds r0, r2, r3
- lsrs r0, 4
- b _080AFABE
-_080AFAAE:
- ldrb r2, [r1, 0x3]
- ldrb r3, [r1, 0x2]
- adds r0, r2, r3
- lsrs r0, 4
- strb r0, [r1, 0xA]
- cmp r0, 0xF
- bls _080AFAC0
- movs r0, 0xF
-_080AFABE:
- strb r0, [r1, 0xA]
-_080AFAC0:
- ldrb r2, [r1, 0x6]
- ldrb r3, [r1, 0xA]
- adds r0, r2, 0
- muls r0, r3
- adds r0, 0xF
- asrs r0, 4
- strb r0, [r1, 0x19]
- ldrb r0, [r1, 0x1C]
- ldrb r2, [r1, 0x1B]
- ands r0, r2
- strb r0, [r1, 0x1B]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AFA74
-
- thumb_func_start sub_80AFADC
-sub_80AFADC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _080AFAFC
- ldr r0, [r0]
- str r0, [sp, 0x4]
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _080AFB00
- subs r0, 0x1
- ldr r1, [sp, 0x4]
- strb r0, [r1, 0xA]
- b _080AFB06
- .align 2, 0
-_080AFAFC: .4byte SOUND_INFO_PTR
-_080AFB00:
- movs r0, 0xE
- ldr r2, [sp, 0x4]
- strb r0, [r2, 0xA]
-_080AFB06:
- movs r6, 0x1
- ldr r0, [sp, 0x4]
- ldr r4, [r0, 0x1C]
-_080AFB0C:
- ldrb r1, [r4]
- movs r0, 0xC7
- ands r0, r1
- adds r2, r6, 0x1
- mov r10, r2
- movs r2, 0x40
- adds r2, r4
- mov r9, r2
- cmp r0, 0
- bne _080AFB22
- b _080AFF0C
-_080AFB22:
- cmp r6, 0x2
- beq _080AFB54
- cmp r6, 0x2
- bgt _080AFB30
- cmp r6, 0x1
- beq _080AFB36
- b _080AFB8C
-_080AFB30:
- cmp r6, 0x3
- beq _080AFB6C
- b _080AFB8C
-_080AFB36:
- ldr r0, _080AFB48
- str r0, [sp, 0x8]
- ldr r7, _080AFB4C
- ldr r2, _080AFB50
- str r2, [sp, 0xC]
- adds r0, 0x4
- str r0, [sp, 0x10]
- adds r2, 0x2
- b _080AFB9C
- .align 2, 0
-_080AFB48: .4byte 0x04000060
-_080AFB4C: .4byte 0x04000062
-_080AFB50: .4byte 0x04000063
-_080AFB54:
- ldr r0, _080AFB60
- str r0, [sp, 0x8]
- ldr r7, _080AFB64
- ldr r2, _080AFB68
- b _080AFB94
- .align 2, 0
-_080AFB60: .4byte 0x04000061
-_080AFB64: .4byte 0x04000068
-_080AFB68: .4byte 0x04000069
-_080AFB6C:
- ldr r0, _080AFB80
- str r0, [sp, 0x8]
- ldr r7, _080AFB84
- ldr r2, _080AFB88
- str r2, [sp, 0xC]
- adds r0, 0x4
- str r0, [sp, 0x10]
- adds r2, 0x2
- b _080AFB9C
- .align 2, 0
-_080AFB80: .4byte 0x04000070
-_080AFB84: .4byte 0x04000072
-_080AFB88: .4byte 0x04000073
-_080AFB8C:
- ldr r0, _080AFBEC
- str r0, [sp, 0x8]
- ldr r7, _080AFBF0
- ldr r2, _080AFBF4
-_080AFB94:
- str r2, [sp, 0xC]
- adds r0, 0xB
- str r0, [sp, 0x10]
- adds r2, 0x4
-_080AFB9C:
- str r2, [sp, 0x14]
- ldr r0, [sp, 0x4]
- ldrb r0, [r0, 0xA]
- str r0, [sp]
- ldr r2, [sp, 0xC]
- ldrb r0, [r2]
- mov r8, r0
- adds r2, r1, 0
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080AFC92
- movs r3, 0x40
- adds r0, r3, 0
- ands r0, r2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x1
- mov r10, r0
- movs r1, 0x40
- adds r1, r4
- mov r9, r1
- cmp r5, 0
- bne _080AFCB6
- movs r0, 0x3
- strb r0, [r4]
- strb r0, [r4, 0x1D]
- adds r0, r4, 0
- str r3, [sp, 0x18]
- bl sub_80AFA74
- ldr r3, [sp, 0x18]
- cmp r6, 0x2
- beq _080AFC04
- cmp r6, 0x2
- bgt _080AFBF8
- cmp r6, 0x1
- beq _080AFBFE
- b _080AFC58
- .align 2, 0
-_080AFBEC: .4byte 0x04000071
-_080AFBF0: .4byte 0x04000078
-_080AFBF4: .4byte 0x04000079
-_080AFBF8:
- cmp r6, 0x3
- beq _080AFC10
- b _080AFC58
-_080AFBFE:
- ldrb r0, [r4, 0x1F]
- ldr r2, [sp, 0x8]
- strb r0, [r2]
-_080AFC04:
- ldr r0, [r4, 0x24]
- lsls r0, 6
- ldrb r1, [r4, 0x1E]
- adds r0, r1, r0
- strb r0, [r7]
- b _080AFC64
-_080AFC10:
- ldr r1, [r4, 0x24]
- ldr r0, [r4, 0x28]
- cmp r1, r0
- beq _080AFC38
- ldr r2, [sp, 0x8]
- strb r3, [r2]
- ldr r1, _080AFC4C
- ldr r2, [r4, 0x24]
- ldr r0, [r2]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0x4]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0x8]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0xC]
- str r0, [r1]
- str r2, [r4, 0x28]
-_080AFC38:
- ldr r0, [sp, 0x8]
- strb r5, [r0]
- ldrb r0, [r4, 0x1E]
- strb r0, [r7]
- ldrb r0, [r4, 0x1E]
- cmp r0, 0
- beq _080AFC50
- movs r0, 0xC0
- b _080AFC72
- .align 2, 0
-_080AFC4C: .4byte 0x04000090
-_080AFC50:
- movs r1, 0x80
- negs r1, r1
- strb r1, [r4, 0x1A]
- b _080AFC74
-_080AFC58:
- ldrb r0, [r4, 0x1E]
- strb r0, [r7]
- ldr r0, [r4, 0x24]
- lsls r0, 3
- ldr r2, [sp, 0x10]
- strb r0, [r2]
-_080AFC64:
- ldrb r0, [r4, 0x4]
- adds r0, 0x8
- mov r8, r0
- ldrb r0, [r4, 0x1E]
- cmp r0, 0
- beq _080AFC72
- movs r0, 0x40
-_080AFC72:
- strb r0, [r4, 0x1A]
-_080AFC74:
- ldrb r1, [r4, 0x4]
- movs r2, 0
- strb r1, [r4, 0xB]
- movs r0, 0xFF
- ands r0, r1
- adds r1, r6, 0x1
- mov r10, r1
- movs r1, 0x40
- adds r1, r4
- mov r9, r1
- cmp r0, 0
- bne _080AFC8E
- b _080AFDCA
-_080AFC8E:
- strb r2, [r4, 0x9]
- b _080AFDF8
-_080AFC92:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _080AFCC4
- ldrb r0, [r4, 0xD]
- subs r0, 0x1
- strb r0, [r4, 0xD]
- movs r2, 0xFF
- ands r0, r2
- lsls r0, 24
- adds r1, r6, 0x1
- mov r10, r1
- movs r2, 0x40
- adds r2, r4
- mov r9, r2
- cmp r0, 0
- ble _080AFCB6
- b _080AFE0A
-_080AFCB6:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_80AFA24
- movs r0, 0
- strb r0, [r4]
- b _080AFF08
-_080AFCC4:
- movs r0, 0x40
- ands r0, r1
- adds r2, r6, 0x1
- mov r10, r2
- movs r2, 0x40
- adds r2, r4
- mov r9, r2
- cmp r0, 0
- beq _080AFD04
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080AFD04
- movs r0, 0xFC
- ands r0, r1
- movs r2, 0
- strb r0, [r4]
- ldrb r1, [r4, 0x7]
- strb r1, [r4, 0xB]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- beq _080AFD36
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
- cmp r6, 0x3
- beq _080AFDF8
- ldrb r2, [r4, 0x7]
- mov r8, r2
- b _080AFDF8
-_080AFD04:
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _080AFDF8
- cmp r6, 0x3
- bne _080AFD16
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
-_080AFD16:
- adds r0, r4, 0
- bl sub_80AFA74
- movs r0, 0x3
- ldrb r2, [r4]
- ands r0, r2
- cmp r0, 0
- bne _080AFD6A
- ldrb r0, [r4, 0x9]
- subs r0, 0x1
- strb r0, [r4, 0x9]
- movs r1, 0xFF
- ands r0, r1
- lsls r0, 24
- cmp r0, 0
- bgt _080AFD66
-_080AFD36:
- ldrb r2, [r4, 0xC]
- ldrb r1, [r4, 0xA]
- adds r0, r2, 0
- muls r0, r1
- adds r0, 0xFF
- asrs r0, 8
- movs r1, 0
- strb r0, [r4, 0x9]
- lsls r0, 24
- cmp r0, 0
- beq _080AFCB6
- movs r0, 0x4
- ldrb r2, [r4]
- orrs r0, r2
- strb r0, [r4]
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
- cmp r6, 0x3
- beq _080AFE0A
- movs r2, 0x8
- mov r8, r2
- b _080AFE0A
-_080AFD66:
- ldrb r0, [r4, 0x7]
- b _080AFDF6
-_080AFD6A:
- cmp r0, 0x1
- bne _080AFD76
-_080AFD6E:
- ldrb r0, [r4, 0x19]
- strb r0, [r4, 0x9]
- movs r0, 0x7
- b _080AFDF6
-_080AFD76:
- cmp r0, 0x2
- bne _080AFDBA
- ldrb r0, [r4, 0x9]
- subs r0, 0x1
- strb r0, [r4, 0x9]
- movs r1, 0xFF
- ands r0, r1
- lsls r0, 24
- ldrb r2, [r4, 0x19]
- lsls r1, r2, 24
- cmp r0, r1
- bgt _080AFDB6
-_080AFD8E:
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- bne _080AFD9E
- movs r0, 0xFC
- ldrb r1, [r4]
- ands r0, r1
- strb r0, [r4]
- b _080AFD36
-_080AFD9E:
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
- ldrb r2, [r4, 0x1D]
- orrs r0, r2
- strb r0, [r4, 0x1D]
- cmp r6, 0x3
- beq _080AFD6E
- movs r0, 0x8
- mov r8, r0
- b _080AFD6E
-_080AFDB6:
- ldrb r0, [r4, 0x5]
- b _080AFDF6
-_080AFDBA:
- ldrb r0, [r4, 0x9]
- adds r0, 0x1
- strb r0, [r4, 0x9]
- movs r1, 0xFF
- ands r0, r1
- ldrb r2, [r4, 0xA]
- cmp r0, r2
- bcc _080AFDF4
-_080AFDCA:
- ldrb r0, [r4]
- subs r0, 0x1
- movs r2, 0
- strb r0, [r4]
- ldrb r1, [r4, 0x5]
- strb r1, [r4, 0xB]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- beq _080AFD8E
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
- ldrb r0, [r4, 0xA]
- strb r0, [r4, 0x9]
- cmp r6, 0x3
- beq _080AFDF8
- ldrb r2, [r4, 0x5]
- mov r8, r2
- b _080AFDF8
-_080AFDF4:
- ldrb r0, [r4, 0x4]
-_080AFDF6:
- strb r0, [r4, 0xB]
-_080AFDF8:
- ldrb r0, [r4, 0xB]
- subs r0, 0x1
- strb r0, [r4, 0xB]
- ldr r0, [sp]
- cmp r0, 0
- bne _080AFE0A
- subs r0, 0x1
- str r0, [sp]
- b _080AFD04
-_080AFE0A:
- movs r0, 0x2
- ldrb r1, [r4, 0x1D]
- ands r0, r1
- cmp r0, 0
- beq _080AFE82
- cmp r6, 0x3
- bgt _080AFE4A
- movs r0, 0x8
- ldrb r2, [r4, 0x1]
- ands r0, r2
- cmp r0, 0
- beq _080AFE4A
- ldr r0, _080AFE34
- ldrb r0, [r0]
- cmp r0, 0x3F
- bgt _080AFE3C
- ldr r0, [r4, 0x20]
- adds r0, 0x2
- ldr r1, _080AFE38
- b _080AFE46
- .align 2, 0
-_080AFE34: .4byte 0x04000089
-_080AFE38: .4byte 0x000007fc
-_080AFE3C:
- cmp r0, 0x7F
- bgt _080AFE4A
- ldr r0, [r4, 0x20]
- adds r0, 0x1
- ldr r1, _080AFE58
-_080AFE46:
- ands r0, r1
- str r0, [r4, 0x20]
-_080AFE4A:
- cmp r6, 0x4
- beq _080AFE5C
- ldr r0, [r4, 0x20]
- ldr r1, [sp, 0x10]
- strb r0, [r1]
- b _080AFE6A
- .align 2, 0
-_080AFE58: .4byte 0x000007fe
-_080AFE5C:
- ldr r2, [sp, 0x10]
- ldrb r0, [r2]
- movs r1, 0x8
- ands r1, r0
- ldr r0, [r4, 0x20]
- orrs r0, r1
- strb r0, [r2]
-_080AFE6A:
- movs r0, 0xC0
- ldrb r1, [r4, 0x1A]
- ands r0, r1
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r0, r1, r0
- strb r0, [r4, 0x1A]
- movs r2, 0xFF
- ands r0, r2
- ldr r1, [sp, 0x14]
- strb r0, [r1]
-_080AFE82:
- movs r0, 0x1
- ldrb r2, [r4, 0x1D]
- ands r0, r2
- cmp r0, 0
- beq _080AFF08
- ldr r1, _080AFECC
- ldrb r0, [r1]
- ldrb r2, [r4, 0x1C]
- bics r0, r2
- ldrb r2, [r4, 0x1B]
- orrs r0, r2
- strb r0, [r1]
- cmp r6, 0x3
- bne _080AFED4
- ldr r0, _080AFED0
- ldrb r1, [r4, 0x9]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, [sp, 0xC]
- strb r0, [r2]
- movs r1, 0x80
- adds r0, r1, 0
- ldrb r2, [r4, 0x1A]
- ands r0, r2
- cmp r0, 0
- beq _080AFF08
- ldr r0, [sp, 0x8]
- strb r1, [r0]
- ldrb r0, [r4, 0x1A]
- ldr r1, [sp, 0x14]
- strb r0, [r1]
- movs r0, 0x7F
- ldrb r2, [r4, 0x1A]
- ands r0, r2
- strb r0, [r4, 0x1A]
- b _080AFF08
- .align 2, 0
-_080AFECC: .4byte 0x04000081
-_080AFED0: .4byte gUnknown_826FBF0
-_080AFED4:
- movs r0, 0xF
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldrb r2, [r4, 0x9]
- lsls r0, r2, 4
- add r0, r8
- ldr r1, [sp, 0xC]
- strb r0, [r1]
- movs r2, 0x80
- ldrb r0, [r4, 0x1A]
- orrs r0, r2
- ldr r1, [sp, 0x14]
- strb r0, [r1]
- cmp r6, 0x1
- bne _080AFF08
- ldr r0, [sp, 0x8]
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080AFF08
- ldrb r0, [r4, 0x1A]
- orrs r0, r2
- ldr r1, [sp, 0x14]
- strb r0, [r1]
-_080AFF08:
- movs r0, 0
- strb r0, [r4, 0x1D]
-_080AFF0C:
- mov r6, r10
- mov r4, r9
- cmp r6, 0x4
- bgt _080AFF16
- b _080AFB0C
-_080AFF16:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AFADC
-
- thumb_func_start sub_80AFF28
-sub_80AFF28:
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [r2, 0x34]
- ldr r0, _080AFF4C
- cmp r3, r0
- bne _080AFF44
- strh r1, [r2, 0x1E]
- ldrh r4, [r2, 0x1C]
- adds r0, r1, 0
- muls r0, r4
- asrs r0, 8
- strh r0, [r2, 0x20]
-_080AFF44:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFF4C: .4byte 0x68736d53
- thumb_func_end sub_80AFF28
-
- thumb_func_start sub_80AFF50
-sub_80AFF50:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r6, r2, 16
- ldr r3, [r4, 0x34]
- ldr r0, _080AFFB4
- cmp r3, r0
- bne _080AFFA8
- adds r0, r3, 0x1
- str r0, [r4, 0x34]
- ldrb r2, [r4, 0x8]
- ldr r1, [r4, 0x2C]
- movs r5, 0x1
- cmp r2, 0
- ble _080AFFA4
- movs r0, 0x80
- mov r8, r0
- lsrs r6, 18
- movs r0, 0x3
- mov r12, r0
-_080AFF80:
- adds r0, r7, 0
- ands r0, r5
- cmp r0, 0
- beq _080AFF9A
- ldrb r3, [r1]
- mov r0, r8
- ands r0, r3
- cmp r0, 0
- beq _080AFF9A
- strb r6, [r1, 0x13]
- mov r0, r12
- orrs r0, r3
- strb r0, [r1]
-_080AFF9A:
- subs r2, 0x1
- adds r1, 0x50
- lsls r5, 1
- cmp r2, 0
- bgt _080AFF80
-_080AFFA4:
- ldr r0, _080AFFB4
- str r0, [r4, 0x34]
-_080AFFA8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFFB4: .4byte 0x68736d53
- thumb_func_end sub_80AFF50
-
- thumb_func_start sub_80AFFB8
-sub_80AFFB8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r12, r1
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r3, [r4, 0x34]
- ldr r0, _080B0028
- cmp r3, r0
- bne _080B001A
- adds r0, r3, 0x1
- str r0, [r4, 0x34]
- ldrb r2, [r4, 0x8]
- ldr r3, [r4, 0x2C]
- movs r5, 0x1
- cmp r2, 0
- ble _080B0016
- movs r0, 0x80
- mov r9, r0
- lsls r0, r6, 16
- asrs r7, r0, 24
- movs r0, 0xC
- mov r8, r0
-_080AFFF0:
- mov r0, r12
- ands r0, r5
- cmp r0, 0
- beq _080B000C
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- beq _080B000C
- strb r7, [r3, 0xB]
- strb r6, [r3, 0xD]
- mov r0, r8
- orrs r0, r1
- strb r0, [r3]
-_080B000C:
- subs r2, 0x1
- adds r3, 0x50
- lsls r5, 1
- cmp r2, 0
- bgt _080AFFF0
-_080B0016:
- ldr r0, _080B0028
- str r0, [r4, 0x34]
-_080B001A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0028: .4byte 0x68736d53
- thumb_func_end sub_80AFFB8
-
- thumb_func_start sub_80B002C
-sub_80B002C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r3, [r4, 0x34]
- ldr r0, _080B0090
- cmp r3, r0
- bne _080B0084
- adds r0, r3, 0x1
- str r0, [r4, 0x34]
- ldrb r2, [r4, 0x8]
- ldr r1, [r4, 0x2C]
- movs r5, 0x1
- cmp r2, 0
- ble _080B0080
- movs r0, 0x80
- mov r8, r0
- movs r0, 0x3
- mov r12, r0
-_080B005C:
- adds r0, r7, 0
- ands r0, r5
- cmp r0, 0
- beq _080B0076
- ldrb r3, [r1]
- mov r0, r8
- ands r0, r3
- cmp r0, 0
- beq _080B0076
- strb r6, [r1, 0x15]
- mov r0, r12
- orrs r0, r3
- strb r0, [r1]
-_080B0076:
- subs r2, 0x1
- adds r1, 0x50
- lsls r5, 1
- cmp r2, 0
- bgt _080B005C
-_080B0080:
- ldr r0, _080B0090
- str r0, [r4, 0x34]
-_080B0084:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0090: .4byte 0x68736d53
- thumb_func_end sub_80B002C
-
- thumb_func_start sub_80B0094
-sub_80B0094:
- adds r1, r0, 0
- movs r2, 0
- movs r0, 0
- strb r0, [r1, 0x1A]
- strb r0, [r1, 0x16]
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- bne _080B00A8
- movs r0, 0xC
- b _080B00AA
-_080B00A8:
- movs r0, 0x3
-_080B00AA:
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- bx lr
- thumb_func_end sub_80B0094
-
- thumb_func_start sub_80B00B4
-sub_80B00B4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r1, [r6, 0x34]
- ldr r0, _080B0124
- cmp r1, r0
- bne _080B0114
- adds r0, r1, 0x1
- str r0, [r6, 0x34]
- ldrb r5, [r6, 0x8]
- ldr r4, [r6, 0x2C]
- movs r7, 0x1
- cmp r5, 0
- ble _080B0110
- mov r9, r8
-_080B00E4:
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _080B0106
- movs r0, 0x80
- ldrb r1, [r4]
- ands r0, r1
- cmp r0, 0
- beq _080B0106
- mov r0, r8
- strb r0, [r4, 0x17]
- mov r1, r9
- cmp r1, 0
- bne _080B0106
- adds r0, r4, 0
- bl sub_80B0094
-_080B0106:
- subs r5, 0x1
- adds r4, 0x50
- lsls r7, 1
- cmp r5, 0
- bgt _080B00E4
-_080B0110:
- ldr r0, _080B0124
- str r0, [r6, 0x34]
-_080B0114:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0124: .4byte 0x68736d53
- thumb_func_end sub_80B00B4
-
- thumb_func_start sub_80B0128
-sub_80B0128:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r1, [r6, 0x34]
- ldr r0, _080B0198
- cmp r1, r0
- bne _080B0188
- adds r0, r1, 0x1
- str r0, [r6, 0x34]
- ldrb r5, [r6, 0x8]
- ldr r4, [r6, 0x2C]
- movs r7, 0x1
- cmp r5, 0
- ble _080B0184
- mov r9, r8
-_080B0158:
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _080B017A
- movs r0, 0x80
- ldrb r1, [r4]
- ands r0, r1
- cmp r0, 0
- beq _080B017A
- mov r0, r8
- strb r0, [r4, 0x19]
- mov r1, r9
- cmp r1, 0
- bne _080B017A
- adds r0, r4, 0
- bl sub_80B0094
-_080B017A:
- subs r5, 0x1
- adds r4, 0x50
- lsls r7, 1
- cmp r5, 0
- bgt _080B0158
-_080B0184:
- ldr r0, _080B0198
- str r0, [r6, 0x34]
-_080B0188:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0198: .4byte 0x68736d53
- thumb_func_end sub_80B0128
-
- thumb_func_start sub_80B019C
-sub_80B019C:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r1, [r6, 0x40]
- ldrb r5, [r1]
- adds r2, r1, 0x1
- str r2, [r6, 0x40]
- ldr r0, [r4, 0x18]
- ldrb r1, [r1, 0x1]
- adds r3, r1, r0
- adds r0, r2, 0x1
- str r0, [r6, 0x40]
- ldrb r2, [r2, 0x1]
- adds r0, 0x1
- str r0, [r6, 0x40]
- cmp r5, 0x11
- bls _080B01C0
- b _080B02EE
-_080B01C0:
- lsls r0, r5, 2
- ldr r1, _080B01CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B01CC: .4byte _080B01D0
- .align 2, 0
-_080B01D0:
- .4byte _080B0218
- .4byte _080B021C
- .4byte _080B0224
- .4byte _080B022C
- .4byte _080B0236
- .4byte _080B0244
- .4byte _080B0252
- .4byte _080B025A
- .4byte _080B0262
- .4byte _080B026A
- .4byte _080B0272
- .4byte _080B027A
- .4byte _080B0282
- .4byte _080B0290
- .4byte _080B029E
- .4byte _080B02AC
- .4byte _080B02BA
- .4byte _080B02C8
-_080B0218:
- strb r2, [r3]
- b _080B02EE
-_080B021C:
- ldrb r1, [r3]
- adds r0, r1, r2
- strb r0, [r3]
- b _080B02EE
-_080B0224:
- ldrb r1, [r3]
- subs r0, r1, r2
- strb r0, [r3]
- b _080B02EE
-_080B022C:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- b _080B02EE
-_080B0236:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r1, [r3]
- ldrb r0, [r0]
- adds r0, r1, r0
- strb r0, [r3]
- b _080B02EE
-_080B0244:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r1, [r3]
- ldrb r0, [r0]
- subs r0, r1, r0
- strb r0, [r3]
- b _080B02EE
-_080B0252:
- ldrb r3, [r3]
- cmp r3, r2
- beq _080B02D4
- b _080B02E8
-_080B025A:
- ldrb r3, [r3]
- cmp r3, r2
- bne _080B02D4
- b _080B02E8
-_080B0262:
- ldrb r3, [r3]
- cmp r3, r2
- bhi _080B02D4
- b _080B02E8
-_080B026A:
- ldrb r3, [r3]
- cmp r3, r2
- bcs _080B02D4
- b _080B02E8
-_080B0272:
- ldrb r3, [r3]
- cmp r3, r2
- bls _080B02D4
- b _080B02E8
-_080B027A:
- ldrb r3, [r3]
- cmp r3, r2
- bcc _080B02D4
- b _080B02E8
-_080B0282:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- beq _080B02D4
- b _080B02E8
-_080B0290:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- bne _080B02D4
- b _080B02E8
-_080B029E:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- bhi _080B02D4
- b _080B02E8
-_080B02AC:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080B02D4
- b _080B02E8
-_080B02BA:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- bls _080B02D4
- b _080B02E8
-_080B02C8:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080B02E8
-_080B02D4:
- ldr r0, _080B02E4
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- bl _call_via_r2
- b _080B02EE
- .align 2, 0
-_080B02E4: .4byte gUnknown_203AE84
-_080B02E8:
- ldr r0, [r6, 0x40]
- adds r0, 0x4
- str r0, [r6, 0x40]
-_080B02EE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B019C
-
- thumb_func_start sub_80B02F4
-sub_80B02F4:
- push {lr}
- ldr r2, [r1, 0x40]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r1, 0x40]
- ldr r2, _080B0310
- lsls r3, 2
- adds r3, r2
- ldr r2, [r3]
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080B0310: .4byte gUnknown_826FC34
- thumb_func_end sub_80B02F4
-
- thumb_func_start sub_80B0314
-sub_80B0314:
- push {lr}
- ldr r2, _080B0324
- ldr r2, [r2]
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080B0324: .4byte gUnknown_203AE80
- thumb_func_end sub_80B0314
-
- thumb_func_start sub_80B0328
-sub_80B0328:
- push {r4,lr}
- ldr r2, [r1, 0x40]
- ldr r0, _080B0360
- ands r4, r0
- ldrb r0, [r2]
- orrs r4, r0
- ldrb r0, [r2, 0x1]
- lsls r3, r0, 8
- ldr r0, _080B0364
- ands r4, r0
- orrs r4, r3
- ldrb r0, [r2, 0x2]
- lsls r3, r0, 16
- ldr r0, _080B0368
- ands r4, r0
- orrs r4, r3
- ldrb r0, [r2, 0x3]
- lsls r3, r0, 24
- ldr r0, _080B036C
- ands r4, r0
- orrs r4, r3
- str r4, [r1, 0x28]
- adds r2, 0x4
- str r2, [r1, 0x40]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0360: .4byte 0xffffff00
-_080B0364: .4byte 0xffff00ff
-_080B0368: .4byte 0xff00ffff
-_080B036C: .4byte 0x00ffffff
- thumb_func_end sub_80B0328
-
- thumb_func_start sub_80B0370
-sub_80B0370:
- ldr r0, [r1, 0x40]
- ldrb r2, [r0]
- adds r0, r1, 0
- adds r0, 0x24
- strb r2, [r0]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end sub_80B0370
-
- thumb_func_start sub_80B0384
-sub_80B0384:
- ldr r0, [r1, 0x40]
- ldrb r2, [r0]
- adds r0, r1, 0
- adds r0, 0x2C
- strb r2, [r0]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end sub_80B0384
-
- thumb_func_start sub_80B0398
-sub_80B0398:
- ldr r0, [r1, 0x40]
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x2D
- strb r0, [r2]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end sub_80B0398
-
- thumb_func_start sub_80B03AC
-sub_80B03AC:
- ldr r0, [r1, 0x40]
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x2E
- strb r0, [r2]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end sub_80B03AC
-
- thumb_func_start sub_80B03C0
-sub_80B03C0:
- ldr r0, [r1, 0x40]
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x2F
- strb r0, [r2]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end sub_80B03C0
-
- thumb_func_start sub_80B03D4
-sub_80B03D4:
- ldr r0, [r1, 0x40]
- ldrb r2, [r0]
- strb r2, [r1, 0x1E]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end sub_80B03D4
-
- thumb_func_start sub_80B03E0
-sub_80B03E0:
- ldr r0, [r1, 0x40]
- ldrb r2, [r0]
- strb r2, [r1, 0x1F]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end sub_80B03E0
-
- thumb_func_start sub_80B03EC
-sub_80B03EC:
- ldr r0, [r1, 0x40]
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x26
- strb r0, [r2]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end sub_80B03EC
-
- thumb_func_start ply_xswee
-ply_xswee:
- ldr r0, [r1, 0x40]
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x27
- strb r0, [r2]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end ply_xswee
-
- thumb_func_start nullsub_139
-nullsub_139:
- bx lr
- thumb_func_end nullsub_139
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/m4a_1.s b/asm/m4a_1.s
new file mode 100644
index 0000000..8c1d78a
--- /dev/null
+++ b/asm/m4a_1.s
@@ -0,0 +1,1647 @@
+ .include "asm/macros.inc"
+ .include "constants/gba_constants.inc"
+ .include "constants/m4a_constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start umul3232H32
+umul3232H32:
+ adr r2, __umul3232H32
+ bx r2
+ .arm
+__umul3232H32:
+ umull r2, r3, r0, r1
+ add r0, r3, 0
+ bx lr
+ thumb_func_end umul3232H32
+
+ thumb_func_start SoundMain
+SoundMain:
+ ldr r0, lt_SOUND_INFO_PTR
+ ldr r0, [r0]
+ ldr r2, lt_ID_NUMBER
+ ldr r3, [r0, o_SoundInfo_ident]
+ cmp r2, r3
+ beq SoundMain_1
+ bx lr @ Exit the function if ident doesn't match ID_NUMBER.
+SoundMain_1:
+ adds r3, 1
+ str r3, [r0, o_SoundInfo_ident]
+ push {r4-r7,lr}
+ mov r1, r8
+ mov r2, r9
+ mov r3, r10
+ mov r4, r11
+ push {r0-r4}
+ sub sp, 0x18
+ ldrb r1, [r0, o_SoundInfo_maxLines]
+ cmp r1, 0 @ if maxLines is 0, there is no maximum
+ beq SoundMain_3
+ ldr r2, lt_REG_VCOUNT
+ ldrb r2, [r2]
+ cmp r2, VCOUNT_VBLANK
+ bhs SoundMain_2
+ adds r2, TOTAL_SCANLINES
+SoundMain_2:
+ adds r1, r2
+SoundMain_3:
+ str r1, [sp, 0x14]
+ ldr r3, [r0, o_SoundInfo_func]
+ cmp r3, 0
+ beq SoundMain_4
+ ldr r0, [r0, o_SoundInfo_intp]
+ bl call_r3
+ ldr r0, [sp, 0x18]
+SoundMain_4:
+ ldr r3, [r0, o_SoundInfo_CgbSound]
+ bl call_r3
+ ldr r0, [sp, 0x18]
+ ldr r3, [r0, o_SoundInfo_pcmSamplesPerVBlank]
+ mov r8, r3
+ ldr r5, lt_o_SoundInfo_pcmBuffer
+ adds r5, r0
+ ldrb r4, [r0, o_SoundInfo_pcmDmaCounter]
+ subs r7, r4, 1
+ bls SoundMain_5
+ ldrb r1, [r0, o_SoundInfo_pcmDmaPeriod]
+ subs r1, r7
+ mov r2, r8
+ muls r2, r1
+ adds r5, r2
+SoundMain_5:
+ str r5, [sp, 0x8]
+ ldr r6, lt_PCM_DMA_BUF_SIZE
+ ldr r3, lt_SoundMainRAM_Buffer
+ bx r3
+
+ .align 2, 0
+lt_SOUND_INFO_PTR: .word SOUND_INFO_PTR
+lt_ID_NUMBER: .word ID_NUMBER
+lt_SoundMainRAM_Buffer: .word SoundMainRAM_Buffer + 1
+lt_REG_VCOUNT: .word REG_VCOUNT
+lt_o_SoundInfo_pcmBuffer: .word o_SoundInfo_pcmBuffer
+lt_PCM_DMA_BUF_SIZE: .word PCM_DMA_BUF_SIZE
+ thumb_func_end SoundMain
+
+ thumb_func_start SoundMainRAM
+SoundMainRAM:
+ ldrb r3, [r0, o_SoundInfo_reverb]
+ cmp r3, 0
+ beq SoundMainRAM_NoReverb
+ adr r1, SoundMainRAM_Reverb
+ bx r1
+ .arm
+SoundMainRAM_Reverb:
+ cmp r4, 0x2
+ addeq r7, r0, o_SoundInfo_pcmBuffer
+ addne r7, r5, r8
+ mov r4, r8
+_080AE314:
+ ldrsb r0, [r5, r6]
+ ldrsb r1, [r5]
+ add r0, r0, r1
+ ldrsb r1, [r7, r6]
+ add r0, r0, r1
+ ldrsb r1, [r7], 0x1
+ add r0, r0, r1
+ mul r1, r0, r3
+ mov r0, r1, asr 9
+ tst r0, 0x80
+ addne r0, r0, 0x1
+ strb r0, [r5, r6]
+ strb r0, [r5], 0x1
+ subs r4, r4, 0x1
+ bgt _080AE314
+ add r0, pc, 0x2F
+ bx r0
+ .thumb
+SoundMainRAM_NoReverb:
+ movs r0, 0
+ mov r1, r8
+ adds r6, r5
+ lsrs r1, 3
+ bcc SoundMainRAM_NoReverb_Ok
+ stm r5!, {r0}
+ stm r6!, {r0}
+SoundMainRAM_NoReverb_Ok:
+ lsrs r1, 1
+ bcc SoundMainRAM_NoReverb_Loop
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+SoundMainRAM_NoReverb_Loop:
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+ subs r1, 0x1
+ bgt SoundMainRAM_NoReverb_Loop
+_080AE386:
+ ldr r4, [sp, 0x18]
+ ldr r0, [r4, o_SoundInfo_divFreq]
+ mov r12, r0
+ ldrb r0, [r4, o_SoundInfo_maxChans]
+ adds r4, o_SoundInfo_chans
+SoundMainRAM_ChanLoop:
+ str r0, [sp, 0x4]
+ ldr r3, [r4, o_SoundChannel_wav]
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ beq _080AE3B0
+ ldr r1, =REG_VCOUNT
+ ldrb r1, [r1]
+ cmp r1, VCOUNT_VBLANK
+ bhs _080AE3A4
+ adds r1, TOTAL_SCANLINES
+_080AE3A4:
+ cmp r1, r0
+ bcc _080AE3B0
+ b _080AE682
+
+ .pool
+
+_080AE3B0:
+ ldrb r6, [r4, o_SoundChannel_status]
+ movs r0, 0xC7
+ tst r0, r6
+ bne _080AE3BA
+ b _080AE678
+_080AE3BA:
+ movs r0, 0x80
+ tst r0, r6
+ beq _080AE3EA
+ movs r0, 0x40
+ tst r0, r6
+ bne _080AE3FA
+ movs r6, 0x3
+ strb r6, [r4, o_SoundChannel_status]
+ adds r0, r3, 0
+ adds r0, 0x10
+ str r0, [r4, o_SoundChannel_cp]
+ ldr r0, [r3, 0xC]
+ str r0, [r4, o_SoundChannel_ct]
+ movs r5, 0
+ strb r5, [r4, o_SoundChannel_ev]
+ str r5, [r4, o_SoundChannel_fw]
+ ldrb r2, [r3, 0x3]
+ movs r0, 0xC0
+ tst r0, r2
+ beq _080AE442
+ movs r0, 0x10
+ orrs r6, r0
+ strb r6, [r4, o_SoundChannel_status]
+ b _080AE442
+_080AE3EA:
+ ldrb r5, [r4, o_SoundChannel_ev]
+ movs r0, 0x4
+ tst r0, r6
+ beq _080AE400
+ ldrb r0, [r4, o_SoundChannel_iel]
+ subs r0, 0x1
+ strb r0, [r4, o_SoundChannel_iel]
+ bhi _080AE450
+_080AE3FA:
+ movs r0, 0
+ strb r0, [r4, o_SoundChannel_status]
+ b _080AE678
+_080AE400:
+ movs r0, 0x40
+ tst r0, r6
+ beq _080AE420
+ ldrb r0, [r4, o_SoundChannel_release]
+ muls r5, r0
+ lsrs r5, 8
+ ldrb r0, [r4, o_SoundChannel_iev]
+ cmp r5, r0
+ bhi _080AE450
+_080AE412:
+ ldrb r5, [r4, o_SoundChannel_iev]
+ cmp r5, 0
+ beq _080AE3FA
+ movs r0, 0x4
+ orrs r6, r0
+ strb r6, [r4, o_SoundChannel_status]
+ b _080AE450
+_080AE420:
+ movs r2, 0x3
+ ands r2, r6
+ cmp r2, 0x2
+ bne _080AE43E
+ ldrb r0, [r4, o_SoundChannel_decay]
+ muls r5, r0
+ lsrs r5, 8
+ ldrb r0, [r4, o_SoundChannel_sustain]
+ cmp r5, r0
+ bhi _080AE450
+ adds r5, r0, 0
+ beq _080AE412
+ subs r6, 0x1
+ strb r6, [r4, o_SoundChannel_status]
+ b _080AE450
+_080AE43E:
+ cmp r2, 0x3
+ bne _080AE450
+_080AE442:
+ ldrb r0, [r4, o_SoundChannel_attack]
+ adds r5, r0
+ cmp r5, 0xFF
+ bcc _080AE450
+ movs r5, 0xFF
+ subs r6, 0x1
+ strb r6, [r4, o_SoundChannel_status]
+_080AE450:
+ strb r5, [r4, o_SoundChannel_ev]
+ ldr r0, [sp, 0x18]
+ ldrb r0, [r0, o_SoundChannel_release]
+ adds r0, 0x1
+ muls r0, r5
+ lsrs r5, r0, 4
+ ldrb r0, [r4, o_SoundChannel_rightVolume]
+ muls r0, r5
+ lsrs r0, 8
+ strb r0, [r4, o_SoundChannel_er]
+ ldrb r0, [r4, o_SoundChannel_leftVolume]
+ muls r0, r5
+ lsrs r0, 8
+ strb r0, [r4, o_SoundChannel_el]
+ movs r0, 0x10
+ ands r0, r6
+ str r0, [sp, 0x10]
+ beq _080AE484
+ adds r0, r3, 0
+ adds r0, 0x10
+ ldr r1, [r3, 0x8]
+ adds r0, r1
+ str r0, [sp, 0xC]
+ ldr r0, [r3, 0xC]
+ subs r0, r1
+ str r0, [sp, 0x10]
+_080AE484:
+ ldr r5, [sp, 0x8]
+ ldr r2, [r4, o_SoundChannel_ct]
+ ldr r3, [r4, o_SoundChannel_cp]
+ adr r0, _080AE490
+ bx r0
+ .arm
+_080AE490:
+ str r8, [sp]
+ ldrb r10, [r4, o_SoundChannel_er]
+ ldrb r11, [r4, o_SoundChannel_el]
+ mov r10, r10, lsl 16
+ mov r11, r11, lsl 16
+ ldrb r0, [r4, o_SoundChannel_type]
+ tst r0, 0x8
+ beq _080AE5D0
+_080AE4B0:
+ cmp r2, 0x4
+ ble _080AE520
+ subs r2, r2, r8
+ movgt lr, 0
+ bgt _080AE4DC
+ mov lr, r8
+ add r2, r2, r8
+ sub r8, r2, 0x4
+ sub lr, lr, r8
+ ands r2, r2, 0x3
+ moveq r2, 0x4
+_080AE4DC:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_080AE4E4:
+ ldrsb r0, [r3], 0x1
+ mul r1, r10, r0
+ bic r1, r1, 0xFF0000
+ add r6, r1, r6, ror 8
+ mul r1, r11, r0
+ bic r1, r1, 0xFF0000
+ add r7, r1, r7, ror 8
+ adds r5, r5, 0x40000000
+ bcc _080AE4E4
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ subs r8, r8, 0x4
+ bgt _080AE4DC
+ adds r8, r8, lr
+ beq _080AE664
+_080AE520:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_080AE528:
+ ldrsb r0, [r3], 0x1
+ mul r1, r10, r0
+ bic r1, r1, 0xFF0000
+ add r6, r1, r6, ror 8
+ mul r1, r11, r0
+ bic r1, r1, 0xFF0000
+ add r7, r1, r7, ror 8
+ subs r2, r2, 0x1
+ beq _080AE598
+_080AE54C:
+ adds r5, r5, 0x40000000
+ bcc _080AE528
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ subs r8, r8, 0x4
+ bgt _080AE4B0
+ b _080AE664
+_080AE568:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0
+ beq _080AE58C
+ ldr r3, [sp, 0x14]
+ rsb r9, r2, 0
+_080AE57C:
+ adds r2, r0, r2
+ bgt _080AE634
+ sub r9, r9, r0
+ b _080AE57C
+_080AE58C:
+ ldmia sp!, {r4,r12}
+ mov r2, 0
+ b _080AE5A8
+_080AE598:
+ ldr r2, [sp, 0x10]
+ cmp r2, 0
+ ldrne r3, [sp, 0xC]
+ bne _080AE54C
+_080AE5A8:
+ strb r2, [r4, o_SoundChannel_status]
+ mov r0, r5, lsr 30
+ bic r5, r5, 0xC0000000
+ rsb r0, r0, 0x3
+ mov r0, r0, lsl 3
+ mov r6, r6, ror r0
+ mov r7, r7, ror r0
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ b _080AE66C
+_080AE5D0:
+ stmdb sp!, {r4,r12}
+ ldr lr, [r4, o_SoundChannel_fw]
+ ldr r1, [r4, o_SoundChannel_freq]
+ mul r4, r12, r1
+ ldrsb r0, [r3]
+ ldrsb r1, [r3, 0x1]!
+ sub r1, r1, r0
+_080AE5EC:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_080AE5F4:
+ mul r9, lr, r1
+ add r9, r0, r9, asr 23
+ mul r12, r10, r9
+ bic r12, r12, 0xFF0000
+ add r6, r12, r6, ror 8
+ mul r12, r11, r9
+ bic r12, r12, 0xFF0000
+ add r7, r12, r7, ror 8
+ add lr, lr, r4
+ movs r9, lr, lsr 23
+ beq _080AE640
+ bic lr, lr, 0x3F800000
+ subs r2, r2, r9
+ ble _080AE568
+ subs r9, r9, 0x1
+ addeq r0, r0, r1
+_080AE634:
+ ldrsbne r0, [r3, r9]!
+ ldrsb r1, [r3, 0x1]!
+ sub r1, r1, r0
+_080AE640:
+ adds r5, r5, 0x40000000
+ bcc _080AE5F4
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ subs r8, r8, 0x4
+ bgt _080AE5EC
+ sub r3, r3, 0x1
+ ldmia sp!, {r4,r12}
+ str lr, [r4, o_SoundChannel_fw]
+_080AE664:
+ str r2, [r4, o_SoundChannel_ct]
+ str r3, [r4, o_SoundChannel_cp]
+_080AE66C:
+ ldr r8, [sp]
+ add r0, pc, 0x1
+ bx r0
+ .thumb
+_080AE678:
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ ble _080AE682
+ adds r4, SoundChannel_size
+ b SoundMainRAM_ChanLoop
+_080AE682:
+ ldr r0, [sp, 0x18]
+ ldr r3, =ID_NUMBER
+ str r3, [r0]
+ add sp, 0x1C
+ pop {r0-r7}
+ mov r8, r0
+ mov r9, r1
+ mov r10, r2
+ mov r11, r3
+ pop {r3}
+
+call_r3:
+ bx r3
+ .pool
+ thumb_func_end SoundMainRAM
+
+ thumb_func_start SoundMainBTM
+SoundMainBTM:
+ mov r12, r4
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ movs r4, 0
+ stm r0!, {r1-r4}
+ stm r0!, {r1-r4}
+ stm r0!, {r1-r4}
+ stm r0!, {r1-r4}
+ mov r4, r12
+ bx lr
+ thumb_func_end SoundMainBTM
+
+ thumb_func_start RealClearChain
+RealClearChain:
+ ldr r3, [r0, 0x2C]
+ cmp r3, 0
+ beq _080AE6D2
+ ldr r1, [r0, 0x34]
+ ldr r2, [r0, 0x30]
+ cmp r2, 0
+ beq _080AE6C6
+ str r1, [r2, 0x34]
+ b _080AE6C8
+_080AE6C6:
+ str r1, [r3, 0x20]
+_080AE6C8:
+ cmp r1, 0
+ beq _080AE6CE
+ str r2, [r1, 0x30]
+_080AE6CE:
+ movs r1, 0
+ str r1, [r0, 0x2C]
+_080AE6D2:
+ bx lr
+ thumb_func_end RealClearChain
+
+ thumb_func_start ply_fine
+ply_fine:
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ ldr r4, [r5, o_MusicPlayerTrack_chan]
+ cmp r4, 0
+ beq ply_fine_done
+ply_fine_loop:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq ply_fine_ok
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r4]
+ply_fine_ok:
+ adds r0, r4, 0
+ bl RealClearChain
+ ldr r4, [r4, 0x34]
+ cmp r4, 0
+ bne ply_fine_loop
+ply_fine_done:
+ movs r0, 0
+ strb r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ply_fine
+
+ thumb_func_start MPlayJumpTableCopy
+MPlayJumpTableCopy:
+ mov r12, lr
+ movs r1, 0x24
+ ldr r2, lt_MPlayJumpTableTemplate
+MPlayJumpTableCopy_Loop:
+ ldr r3, [r2]
+ bl chk_adr_r2
+ stm r0!, {r3}
+ adds r2, 0x4
+ subs r1, 0x1
+ bgt MPlayJumpTableCopy_Loop
+ bx r12
+ thumb_func_end MPlayJumpTableCopy
+
+ .align 2, 0
+ .thumb_func
+ldrb_r3_r2:
+ ldrb r3, [r2]
+
+ .thumb_func
+chk_adr_r2:
+ push {r0}
+ lsrs r0, r2, 25
+ bne chk_adr_r2_done
+ ldr r0, lt_MPlayJumpTableTemplate
+ cmp r2, r0
+ bcc chk_adr_r2_reject
+ lsrs r0, r2, 14
+ beq chk_adr_r2_done
+chk_adr_r2_reject:
+ movs r3, 0
+chk_adr_r2_done:
+ pop {r0}
+ bx lr
+ .align 2, 0
+lt_MPlayJumpTableTemplate: .word gMPlayJumpTableTemplate
+
+ thumb_func_start ld_r3_tp_adr_i
+ld_r3_tp_adr_i:
+ ldr r2, [r1, 0x40]
+_080AE73A:
+ adds r3, r2, 0x1
+ str r3, [r1, 0x40]
+ ldrb r3, [r2]
+ b chk_adr_r2
+ thumb_func_end ld_r3_tp_adr_i
+
+ thumb_func_start ply_goto
+ply_goto:
+ push {lr}
+ply_goto_1:
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ ldrb r3, [r2, 0x2]
+ orrs r0, r3
+ lsls r0, 8
+ ldrb r3, [r2, 0x1]
+ orrs r0, r3
+ lsls r0, 8
+ bl ldrb_r3_r2
+ orrs r0, r3
+ str r0, [r1, o_MusicPlayerTrack_cmdPtr]
+ pop {r0}
+ bx r0
+ thumb_func_end ply_goto
+
+ thumb_func_start ply_patt
+ply_patt:
+ ldrb r2, [r1, o_MusicPlayerTrack_patternLevel]
+ cmp r2, 0x3
+ bcs _080AE77C
+ lsls r2, 2
+ adds r3, r1, r2
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ adds r2, 0x4
+ str r2, [r3, o_MusicPlayerTrack_patternStack]
+ ldrb r2, [r1, o_MusicPlayerTrack_patternLevel]
+ adds r2, 0x1
+ strb r2, [r1, o_MusicPlayerTrack_patternLevel]
+ b ply_goto
+_080AE77C:
+ b ply_fine
+ thumb_func_end ply_patt
+
+ thumb_func_start ply_pend
+ply_pend:
+ ldrb r2, [r1, o_MusicPlayerTrack_patternLevel]
+ cmp r2, 0
+ beq ply_pend_done
+ subs r2, 1
+ strb r2, [r1, o_MusicPlayerTrack_patternLevel]
+ lsls r2, 2
+ adds r3, r1, r2
+ ldr r2, [r3, o_MusicPlayerTrack_patternStack]
+ str r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ply_pend_done:
+ bx lr
+ thumb_func_end ply_pend
+
+ thumb_func_start ply_rept
+ply_rept:
+ push {lr}
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldrb r3, [r2]
+ cmp r3, 0
+ bne ply_rept_1
+ adds r2, 1
+ str r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ b ply_goto_1
+ply_rept_1:
+ ldrb r3, [r1, o_MusicPlayerTrack_repN]
+ adds r3, 1
+ strb r3, [r1, o_MusicPlayerTrack_repN]
+ mov r12, r3
+ bl ld_r3_tp_adr_i
+ cmp r12, r3
+ bhs ply_rept_2
+ b ply_goto_1
+ply_rept_2:
+ movs r3, 0
+ strb r3, [r1, o_MusicPlayerTrack_repN]
+ adds r2, 5
+ str r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ pop {r0}
+ bx r0
+ thumb_func_end ply_rept
+
+ thumb_func_start ply_prio
+ply_prio:
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ strb r3, [r1, o_MusicPlayerTrack_priority]
+ bx r12
+ thumb_func_end ply_prio
+
+ thumb_func_start ply_tempo
+ply_tempo:
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ lsls r3, 1
+ strh r3, [r0, o_MusicPlayerInfo_tempoD]
+ ldrh r2, [r0, o_MusicPlayerInfo_tempoU]
+ muls r3, r2
+ lsrs r3, 8
+ strh r3, [r0, o_MusicPlayerInfo_tempoI]
+ bx r12
+ thumb_func_end ply_tempo
+
+ thumb_func_start ply_keysh
+ply_keysh:
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ strb r3, [r1, o_MusicPlayerTrack_keyShift]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1, o_MusicPlayerTrack_flags]
+ bx r12
+ thumb_func_end ply_keysh
+
+ thumb_func_start ply_voice
+ply_voice:
+ mov r12, lr
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldrb r3, [r2]
+ adds r2, 1
+ str r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ lsls r2, r3, 1
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, [r0, o_MusicPlayerInfo_tone]
+ adds r2, r3
+ ldr r3, [r2]
+ bl chk_adr_r2
+ str r3, [r1, o_MusicPlayerTrack_ToneData_type]
+ ldr r3, [r2, 0x4]
+ bl chk_adr_r2
+ str r3, [r1, o_MusicPlayerTrack_ToneData_wav]
+ ldr r3, [r2, 0x8]
+ bl chk_adr_r2
+ str r3, [r1, o_MusicPlayerTrack_ToneData_attack]
+ bx r12
+ thumb_func_end ply_voice
+
+ thumb_func_start ply_vol
+ply_vol:
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ strb r3, [r1, o_MusicPlayerTrack_vol]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ movs r2, 0x3
+ orrs r3, r2
+ strb r3, [r1, o_MusicPlayerTrack_flags]
+ bx r12
+ thumb_func_end ply_vol
+
+ thumb_func_start ply_pan
+ply_pan:
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ subs r3, 0x40
+ strb r3, [r1, o_MusicPlayerTrack_pan]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ movs r2, 0x3
+ orrs r3, r2
+ strb r3, [r1, o_MusicPlayerTrack_flags]
+ bx r12
+ thumb_func_end ply_pan
+
+ thumb_func_start ply_bend
+ply_bend:
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ subs r3, 0x40
+ strb r3, [r1, o_MusicPlayerTrack_bend]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1, o_MusicPlayerTrack_flags]
+ bx r12
+ thumb_func_end ply_bend
+
+ thumb_func_start ply_bendr
+ply_bendr:
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ strb r3, [r1, o_MusicPlayerTrack_bendRange]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1, o_MusicPlayerTrack_flags]
+ bx r12
+ thumb_func_end ply_bendr
+
+ thumb_func_start ply_lfodl
+ply_lfodl:
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ strb r3, [r1, o_MusicPlayerTrack_lfoDelay]
+ bx r12
+ thumb_func_end ply_lfodl
+
+ thumb_func_start ply_modt
+ply_modt:
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ ldrb r0, [r1, o_MusicPlayerTrack_modT]
+ cmp r0, r3
+ beq _080AE89A
+ strb r3, [r1, o_MusicPlayerTrack_modT]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ movs r2, 0xF
+ orrs r3, r2
+ strb r3, [r1, o_MusicPlayerTrack_flags]
+_080AE89A:
+ bx r12
+ thumb_func_end ply_modt
+
+ thumb_func_start ply_tune
+ply_tune:
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ subs r3, 0x40
+ strb r3, [r1, o_MusicPlayerTrack_tune]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1, o_MusicPlayerTrack_flags]
+ bx r12
+ thumb_func_end ply_tune
+
+ thumb_func_start ply_port
+ply_port:
+ mov r12, lr
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ ldr r0, =REG_SOUND1CNT_L @ sound register base address
+ adds r0, r3
+ bl _080AE73A
+ strb r3, [r0]
+ bx r12
+ .pool
+ thumb_func_end ply_port
+
+ thumb_func_start m4aSoundVSync
+m4aSoundVSync:
+ ldr r0, lt2_SOUND_INFO_PTR
+ ldr r0, [r0]
+
+ @ Exit the function if ident is not ID_NUMBER or ID_NUMBER+1.
+ ldr r2, lt2_ID_NUMBER
+ ldr r3, [r0, o_SoundInfo_ident]
+ subs r3, r2
+ cmp r3, 0x1
+ bhi m4aSoundVSync_Done
+
+ @ Decrement the PCM DMA counter. If it reaches 0, we need to do a DMA.
+ ldrb r1, [r0, o_SoundInfo_pcmDmaCounter]
+ subs r1, 0x1
+ strb r1, [r0, o_SoundInfo_pcmDmaCounter]
+ bgt m4aSoundVSync_Done
+
+ @ Reload the PCM DMA counter.
+ ldrb r1, [r0, o_SoundInfo_pcmDmaPeriod]
+ strb r1, [r0, o_SoundInfo_pcmDmaCounter]
+
+ ldr r2, =REG_DMA1
+
+ ldr r1, [r2, 0x8] @ DMA1CNT
+ lsls r1, 7
+ bcc m4aSoundVSync_SkipDMA1
+
+ ldr r1, =((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4
+ str r1, [r2, 0x8] @ DMA1CNT
+
+m4aSoundVSync_SkipDMA1:
+ ldr r1, [r2, 0xC + 0x8] @ DMA2CNT
+ lsls r1, 7
+ bcc m4aSoundVSync_SkipDMA2
+ ldr r1, =((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4
+ str r1, [r2, 0xC + 0x8] @ DMA2CNT
+
+m4aSoundVSync_SkipDMA2:
+ movs r1, DMA_32BIT >> 8
+ lsls r1, 8
+ strh r1, [r2, 0xA] @ DMA1CNT_H
+ strh r1, [r2, 0xC + 0xA] @ DMA2CNT_H
+
+ movs r1, (DMA_ENABLE | DMA_START_SPECIAL | DMA_32BIT | DMA_REPEAT) >> 8
+ lsls r1, 8 @ LSB is 0, so DMA_SRC_INC is used (destination is always fixed in FIFO mode)
+ strh r1, [r2, 0xA] @ DMA1CNT_H
+ strh r1, [r2, 0xC + 0xA] @ DMA2CNT_H
+
+m4aSoundVSync_Done:
+ bx lr
+
+ .pool
+ thumb_func_end m4aSoundVSync
+
+ thumb_func_start MPlayMain
+MPlayMain:
+ ldr r2, lt2_ID_NUMBER
+ ldr r3, [r0, o_MusicPlayerInfo_ident]
+ cmp r2, r3
+ beq _080AE91E
+ bx lr
+_080AE91E:
+ adds r3, 0x1
+ str r3, [r0, o_MusicPlayerInfo_ident]
+ push {r0,lr}
+ ldr r3, [r0, o_MusicPlayerInfo_func]
+ cmp r3, 0
+ beq _080AE930
+ ldr r0, [r0, o_MusicPlayerInfo_intp]
+ bl call_r3_2
+_080AE930:
+ pop {r0}
+ push {r4-r7}
+ mov r4, r8
+ mov r5, r9
+ mov r6, r10
+ mov r7, r11
+ push {r4-r7}
+ adds r7, r0, 0
+ ldr r0, [r7, o_MusicPlayerInfo_status]
+ cmp r0, 0
+ bge _080AE948
+ b _080AEB5C
+_080AE948:
+ ldr r0, lt2_SOUND_INFO_PTR
+ ldr r0, [r0]
+ mov r8, r0
+ adds r0, r7, 0
+ bl FadeOutBody
+ ldr r0, [r7, o_MusicPlayerInfo_status]
+ cmp r0, 0
+ bge _080AE95C
+ b _080AEB5C
+_080AE95C:
+ ldrh r0, [r7, o_MusicPlayerInfo_tempoC]
+ ldrh r1, [r7, o_MusicPlayerInfo_tempoI]
+ adds r0, r1
+ b _080AEAAC
+_080AE964:
+ ldrb r6, [r7, o_MusicPlayerInfo_trackCount]
+ ldr r5, [r7, o_MusicPlayerInfo_tracks]
+ movs r3, 0x1
+ movs r4, 0
+_080AE96C:
+ ldrb r0, [r5]
+ movs r1, 0x80
+ tst r1, r0
+ bne _080AE976
+ b _080AEA88
+_080AE976:
+ mov r10, r3
+ orrs r4, r3
+ mov r11, r4
+ ldr r4, [r5, o_MusicPlayerTrack_chan]
+ cmp r4, 0
+ beq _080AE9AA
+_080AE982:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _080AE99E
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0
+ beq _080AE9A4
+ subs r0, 0x1
+ strb r0, [r4, 0x10]
+ bne _080AE9A4
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r4]
+ b _080AE9A4
+_080AE99E:
+ adds r0, r4, 0
+ bl ClearChain
+_080AE9A4:
+ ldr r4, [r4, 0x34]
+ cmp r4, 0
+ bne _080AE982
+_080AE9AA:
+ ldrb r3, [r5, o_MusicPlayerTrack_flags]
+ movs r0, 0x40
+ tst r0, r3
+ beq _080AEA28
+ adds r0, r5, 0
+ bl Clear64byte
+ movs r0, 0x80
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, o_MusicPlayerTrack_bendRange]
+ movs r0, 0x40
+ strb r0, [r5, o_MusicPlayerTrack_volX]
+ movs r0, 0x16
+ strb r0, [r5, o_MusicPlayerTrack_lfoSpeed]
+ movs r0, 0x1
+ adds r1, r5, 0x6
+ strb r0, [r1, o_MusicPlayerTrack_ToneData_type - 0x6]
+ b _080AEA28
+_080AE9D0:
+ ldr r2, [r5, o_MusicPlayerTrack_cmdPtr]
+ ldrb r1, [r2]
+ cmp r1, 0x80
+ bcs _080AE9DC
+ ldrb r1, [r5, o_MusicPlayerTrack_runningStatus]
+ b _080AE9E6
+_080AE9DC:
+ adds r2, 0x1
+ str r2, [r5, o_MusicPlayerTrack_cmdPtr]
+ cmp r1, 0xBD
+ bcc _080AE9E6
+ strb r1, [r5, o_MusicPlayerTrack_runningStatus]
+_080AE9E6:
+ cmp r1, 0xCF
+ bcc _080AE9FC
+ mov r0, r8
+ ldr r3, [r0, o_SoundInfo_plynote]
+ adds r0, r1, 0
+ subs r0, 0xCF
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl call_r3_2
+ b _080AEA28
+_080AE9FC:
+ cmp r1, 0xB0
+ bls _080AEA1E
+ adds r0, r1, 0
+ subs r0, 0xB1
+ strb r0, [r7, o_MusicPlayerInfo_cmd]
+ mov r3, r8
+ ldr r3, [r3, o_SoundInfo_MPlayJumpTable]
+ lsls r0, 2
+ ldr r3, [r3, r0]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl call_r3_2
+ ldrb r0, [r5, o_MusicPlayerTrack_flags]
+ cmp r0, 0
+ beq _080AEA84
+ b _080AEA28
+_080AEA1E:
+ ldr r0, lt_gClockTable
+ subs r1, 0x80
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r5, o_MusicPlayerTrack_wait]
+_080AEA28:
+ ldrb r0, [r5, o_MusicPlayerTrack_wait]
+ cmp r0, 0
+ beq _080AE9D0
+ subs r0, 0x1
+ strb r0, [r5, o_MusicPlayerTrack_wait]
+ ldrb r1, [r5, o_MusicPlayerTrack_lfoSpeed]
+ cmp r1, 0
+ beq _080AEA84
+ ldrb r0, [r5, o_MusicPlayerTrack_mod]
+ cmp r0, 0
+ beq _080AEA84
+ ldrb r0, [r5, o_MusicPlayerTrack_lfoDelayC]
+ cmp r0, 0
+ beq _080AEA4A
+ subs r0, 0x1
+ strb r0, [r5, o_MusicPlayerTrack_lfoDelayC]
+ b _080AEA84
+_080AEA4A:
+ ldrb r0, [r5, o_MusicPlayerTrack_lfoSpeedC]
+ adds r0, r1
+ strb r0, [r5, o_MusicPlayerTrack_lfoSpeedC]
+ adds r1, r0, 0
+ subs r0, 0x40
+ lsls r0, 24
+ bpl _080AEA5E
+ lsls r2, r1, 24
+ asrs r2, 24
+ b _080AEA62
+_080AEA5E:
+ movs r0, 0x80
+ subs r2, r0, r1
+_080AEA62:
+ ldrb r0, [r5, o_MusicPlayerTrack_mod]
+ muls r0, r2
+ asrs r2, r0, 6
+ ldrb r0, [r5, o_MusicPlayerTrack_modM]
+ eors r0, r2
+ lsls r0, 24
+ beq _080AEA84
+ strb r2, [r5, o_MusicPlayerTrack_modM]
+ ldrb r0, [r5]
+ ldrb r1, [r5, o_MusicPlayerTrack_modT]
+ cmp r1, 0
+ bne _080AEA7E
+ movs r1, 0xC
+ b _080AEA80
+_080AEA7E:
+ movs r1, 0x3
+_080AEA80:
+ orrs r0, r1
+ strb r0, [r5, o_MusicPlayerTrack_flags]
+_080AEA84:
+ mov r3, r10
+ mov r4, r11
+_080AEA88:
+ subs r6, 0x1
+ ble _080AEA94
+ movs r0, 0x50
+ adds r5, r0
+ lsls r3, 1
+ b _080AE96C
+_080AEA94:
+ ldr r0, [r7, o_MusicPlayerInfo_clock]
+ adds r0, 0x1
+ str r0, [r7, o_MusicPlayerInfo_clock]
+ cmp r4, 0
+ bne _080AEAA6
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r7, o_MusicPlayerInfo_status]
+ b _080AEB5C
+_080AEAA6:
+ str r4, [r7, o_MusicPlayerInfo_status]
+ ldrh r0, [r7, o_MusicPlayerInfo_tempoC]
+ subs r0, 0x96
+_080AEAAC:
+ strh r0, [r7, o_MusicPlayerInfo_tempoC]
+ cmp r0, 0x96
+ bcc _080AEAB4
+ b _080AE964
+_080AEAB4:
+ ldrb r2, [r7, o_MusicPlayerInfo_trackCount]
+ ldr r5, [r7, o_MusicPlayerInfo_tracks]
+_080AEAB8:
+ ldrb r0, [r5, o_MusicPlayerTrack_flags]
+ movs r1, 0x80
+ tst r1, r0
+ beq _080AEB52
+ movs r1, 0xF
+ tst r1, r0
+ beq _080AEB52
+ mov r9, r2
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl TrkVolPitSet
+ ldr r4, [r5, o_MusicPlayerTrack_chan]
+ cmp r4, 0
+ beq _080AEB48
+_080AEAD6:
+ ldrb r1, [r4, o_SoundChannel_status]
+ movs r0, 0xC7
+ tst r0, r1
+ bne _080AEAE6
+ adds r0, r4, 0
+ bl ClearChain
+ b _080AEB42
+_080AEAE6:
+ ldrb r0, [r4, o_SoundChannel_type]
+ movs r6, 0x7
+ ands r6, r0
+ ldrb r3, [r5, o_MusicPlayerTrack_flags]
+ movs r0, 0x3
+ tst r0, r3
+ beq _080AEB04
+ bl ChnVolSetAsm
+ cmp r6, 0
+ beq _080AEB04
+ ldrb r0, [r4, o_CgbChannel_mo]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, o_CgbChannel_mo]
+_080AEB04:
+ ldrb r3, [r5, o_MusicPlayerTrack_flags]
+ movs r0, 0xC
+ tst r0, r3
+ beq _080AEB42
+ ldrb r1, [r4, o_SoundChannel_ky]
+ movs r0, 0x8
+ ldrsb r0, [r5, r0]
+ adds r2, r1, r0
+ bpl _080AEB18
+ movs r2, 0
+_080AEB18:
+ cmp r6, 0
+ beq _080AEB36
+ mov r0, r8
+ ldr r3, [r0, o_SoundInfo_MidiKeyToCgbFreq]
+ adds r1, r2, 0
+ ldrb r2, [r5, o_MusicPlayerTrack_pitM]
+ adds r0, r6, 0
+ bl call_r3_2
+ str r0, [r4, o_CgbChannel_fr]
+ ldrb r0, [r4, o_CgbChannel_mo]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4, o_CgbChannel_mo]
+ b _080AEB42
+_080AEB36:
+ adds r1, r2, 0
+ ldrb r2, [r5, o_MusicPlayerTrack_pitM]
+ ldr r0, [r4, o_SoundChannel_wav]
+ bl MidiKeyToFreq
+ str r0, [r4, o_SoundChannel_freq]
+_080AEB42:
+ ldr r4, [r4, o_SoundChannel_np]
+ cmp r4, 0
+ bne _080AEAD6
+_080AEB48:
+ ldrb r0, [r5, o_MusicPlayerTrack_flags]
+ movs r1, 0xF0
+ ands r0, r1
+ strb r0, [r5, o_MusicPlayerTrack_flags]
+ mov r2, r9
+_080AEB52:
+ subs r2, 0x1
+ ble _080AEB5C
+ movs r0, 0x50
+ adds r5, r0
+ bgt _080AEAB8
+_080AEB5C:
+ ldr r0, lt2_ID_NUMBER
+ str r0, [r7, o_MusicPlayerInfo_ident]
+ pop {r0-r7}
+ mov r8, r0
+ mov r9, r1
+ mov r10, r2
+ mov r11, r3
+ pop {r3}
+call_r3_2:
+ bx r3
+ .align 2, 0
+
+lt_gClockTable: .word gClockTable
+lt2_SOUND_INFO_PTR: .word SOUND_INFO_PTR
+lt2_ID_NUMBER: .word ID_NUMBER
+ thumb_func_end MPlayMain
+
+ thumb_func_start TrackStop
+TrackStop:
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ ldrb r1, [r5, o_MusicPlayerTrack_flags]
+ movs r0, 0x80
+ tst r0, r1
+ beq TrackStop_Done
+ ldr r4, [r5, o_MusicPlayerTrack_chan]
+ cmp r4, 0
+ beq TrackStop_3
+ movs r6, 0
+TrackStop_Loop:
+ ldrb r0, [r4, o_SoundChannel_status]
+ cmp r0, 0
+ beq TrackStop_2
+ ldrb r0, [r4, o_SoundChannel_type]
+ movs r3, 0x7
+ ands r0, r3
+ beq TrackStop_1
+ ldr r3, =SOUND_INFO_PTR
+ ldr r3, [r3]
+ ldr r3, [r3, o_SoundInfo_CgbOscOff]
+ bl call_r3_2
+TrackStop_1:
+ strb r6, [r4, o_SoundChannel_status]
+TrackStop_2:
+ str r6, [r4, o_SoundChannel_track]
+ ldr r4, [r4, o_SoundChannel_np]
+ cmp r4, 0
+ bne TrackStop_Loop
+TrackStop_3:
+ str r4, [r5, o_MusicPlayerTrack_chan]
+TrackStop_Done:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end TrackStop
+
+ thumb_func_start ChnVolSetAsm
+ChnVolSetAsm:
+ ldrb r1, [r4, 0x12]
+ movs r0, 0x14
+ ldrsb r2, [r4, r0]
+ movs r3, 0x80
+ adds r3, r2
+ muls r3, r1
+ ldrb r0, [r5, 0x10]
+ muls r0, r3
+ asrs r0, 14
+ cmp r0, 0xFF
+ bls _080AEBD8
+ movs r0, 0xFF
+_080AEBD8:
+ strb r0, [r4, 0x2]
+ movs r3, 0x7F
+ subs r3, r2
+ muls r3, r1
+ ldrb r0, [r5, 0x11]
+ muls r0, r3
+ asrs r0, 14
+ cmp r0, 0xFF
+ bls _080AEBEC
+ movs r0, 0xFF
+_080AEBEC:
+ strb r0, [r4, 0x3]
+ bx lr
+ thumb_func_end ChnVolSetAsm
+
+ thumb_func_start ply_note
+ply_note:
+ push {r4-r7,lr}
+ mov r4, r8
+ mov r5, r9
+ mov r6, r10
+ mov r7, r11
+ push {r4-r7}
+ sub sp, 0x18
+ str r1, [sp]
+ adds r5, r2, 0
+ ldr r1, =SOUND_INFO_PTR
+ ldr r1, [r1]
+ str r1, [sp, 0x4]
+ ldr r1, =gClockTable
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r5, o_MusicPlayerTrack_gateTime]
+ ldr r3, [r5, o_MusicPlayerTrack_cmdPtr]
+ ldrb r0, [r3]
+ cmp r0, 0x80
+ bcs _080AEC36
+ strb r0, [r5, o_MusicPlayerTrack_key]
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0x80
+ bcs _080AEC34
+ strb r0, [r5, o_MusicPlayerTrack_velocity]
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0x80
+ bcs _080AEC34
+ ldrb r1, [r5, o_MusicPlayerTrack_gateTime]
+ adds r1, r0
+ strb r1, [r5, o_MusicPlayerTrack_gateTime]
+ adds r3, 0x1
+_080AEC34:
+ str r3, [r5, o_MusicPlayerTrack_cmdPtr]
+_080AEC36:
+ movs r0, 0
+ str r0, [sp, 0x14]
+ adds r4, r5, 0
+ adds r4, o_MusicPlayerTrack_ToneData_type
+ ldrb r2, [r4]
+ movs r0, TONEDATA_TYPE_RHY | TONEDATA_TYPE_SPL
+ tst r0, r2
+ beq _080AEC88
+ ldrb r3, [r5, o_MusicPlayerTrack_key]
+ movs r0, TONEDATA_TYPE_SPL
+ tst r0, r2
+ beq _080AEC56
+ ldr r1, [r5, o_MusicPlayerTrack_ToneData_keySplitTable]
+ adds r1, r3
+ ldrb r0, [r1]
+ b _080AEC58
+_080AEC56:
+ adds r0, r3, 0
+_080AEC58:
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r5, o_MusicPlayerTrack_ToneData_wav]
+ adds r1, r0
+ mov r9, r1
+ mov r6, r9
+ ldrb r1, [r6]
+ movs r0, 0xC0
+ tst r0, r1
+ beq _080AEC70
+ b _080AEDD6
+_080AEC70:
+ movs r0, 0x80
+ tst r0, r2
+ beq _080AEC8C
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x80
+ tst r0, r1
+ beq _080AEC84
+ subs r1, 0xC0
+ lsls r1, 1
+ str r1, [sp, 0x14]
+_080AEC84:
+ ldrb r3, [r6, 0x1]
+ b _080AEC8C
+_080AEC88:
+ mov r9, r4
+ ldrb r3, [r5, 0x5]
+_080AEC8C:
+ str r3, [sp, 0x8]
+ ldr r6, [sp]
+ ldrb r1, [r6, 0x9]
+ ldrb r0, [r5, 0x1D]
+ adds r0, r1
+ cmp r0, 0xFF
+ bls _080AEC9C
+ movs r0, 0xFF
+_080AEC9C:
+ str r0, [sp, 0x10]
+ mov r6, r9
+ ldrb r0, [r6]
+ movs r6, 0x7
+ ands r6, r0
+ str r6, [sp, 0xC]
+ beq _080AECDC
+ ldr r0, [sp, 0x4]
+ ldr r4, [r0, 0x1C]
+ cmp r4, 0
+ bne _080AECB4
+ b _080AEDD6
+_080AECB4:
+ subs r6, 0x1
+ lsls r0, r6, 6
+ adds r4, r0
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _080AED30
+ movs r0, 0x40
+ tst r0, r1
+ bne _080AED30
+ ldrb r1, [r4, 0x13]
+ ldr r0, [sp, 0x10]
+ cmp r1, r0
+ bcc _080AED30
+ beq _080AECD4
+ b _080AEDD6
+_080AECD4:
+ ldr r0, [r4, 0x2C]
+ cmp r0, r5
+ bcs _080AED30
+ b _080AEDD6
+_080AECDC:
+ ldr r6, [sp, 0x10]
+ adds r7, r5, 0
+ movs r2, 0
+ mov r8, r2
+ ldr r4, [sp, 0x4]
+ ldrb r3, [r4, 0x6]
+ adds r4, 0x50
+_080AECEA:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _080AED30
+ movs r0, 0x40
+ tst r0, r1
+ beq _080AED04
+ cmp r2, 0
+ bne _080AED08
+ adds r2, 0x1
+ ldrb r6, [r4, 0x13]
+ ldr r7, [r4, 0x2C]
+ b _080AED22
+_080AED04:
+ cmp r2, 0
+ bne _080AED24
+_080AED08:
+ ldrb r0, [r4, 0x13]
+ cmp r0, r6
+ bcs _080AED14
+ adds r6, r0, 0
+ ldr r7, [r4, 0x2C]
+ b _080AED22
+_080AED14:
+ bhi _080AED24
+ ldr r0, [r4, 0x2C]
+ cmp r0, r7
+ bls _080AED20
+ adds r7, r0, 0
+ b _080AED22
+_080AED20:
+ bcc _080AED24
+_080AED22:
+ mov r8, r4
+_080AED24:
+ adds r4, 0x40
+ subs r3, 0x1
+ bgt _080AECEA
+ mov r4, r8
+ cmp r4, 0
+ beq _080AEDD6
+_080AED30:
+ adds r0, r4, 0
+ bl ClearChain
+ movs r1, 0
+ str r1, [r4, 0x30]
+ ldr r3, [r5, 0x20]
+ str r3, [r4, 0x34]
+ cmp r3, 0
+ beq _080AED44
+ str r4, [r3, 0x30]
+_080AED44:
+ str r4, [r5, 0x20]
+ str r5, [r4, 0x2C]
+ ldrb r0, [r5, 0x1B]
+ strb r0, [r5, 0x1C]
+ cmp r0, r1
+ beq _080AED56
+ adds r1, r5, 0
+ bl clear_modM
+_080AED56:
+ ldr r0, [sp]
+ adds r1, r5, 0
+ bl TrkVolPitSet
+ ldr r0, [r5, 0x4]
+ str r0, [r4, 0x10]
+ ldr r0, [sp, 0x10]
+ strb r0, [r4, 0x13]
+ ldr r0, [sp, 0x8]
+ strb r0, [r4, 0x8]
+ ldr r0, [sp, 0x14]
+ strb r0, [r4, 0x14]
+ mov r6, r9
+ ldrb r0, [r6]
+ strb r0, [r4, 0x1]
+ ldr r7, [r6, 0x4]
+ str r7, [r4, 0x24]
+ ldr r0, [r6, 0x8]
+ str r0, [r4, 0x4]
+ ldrh r0, [r5, 0x1E]
+ strh r0, [r4, 0xC]
+ bl ChnVolSetAsm
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x8
+ ldrsb r0, [r5, r0]
+ adds r3, r1, r0
+ bpl _080AED90
+ movs r3, 0
+_080AED90:
+ ldr r6, [sp, 0xC]
+ cmp r6, 0
+ beq _080AEDBE
+ mov r6, r9
+ ldrb r0, [r6, 0x2]
+ strb r0, [r4, 0x1E]
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x80
+ tst r0, r1
+ bne _080AEDAA
+ movs r0, 0x70
+ tst r0, r1
+ bne _080AEDAC
+_080AEDAA:
+ movs r1, 0x8
+_080AEDAC:
+ strb r1, [r4, 0x1F]
+ ldrb r2, [r5, 0x9]
+ adds r1, r3, 0
+ ldr r0, [sp, 0xC]
+ ldr r3, [sp, 0x4]
+ ldr r3, [r3, 0x30]
+ bl call_r3_2
+ b _080AEDC8
+_080AEDBE:
+ ldrb r2, [r5, 0x9]
+ adds r1, r3, 0
+ adds r0, r7, 0
+ bl MidiKeyToFreq
+_080AEDC8:
+ str r0, [r4, 0x20]
+ movs r0, 0x80
+ strb r0, [r4]
+ ldrb r1, [r5]
+ movs r0, 0xF0
+ ands r0, r1
+ strb r0, [r5]
+_080AEDD6:
+ add sp, 0x18
+ pop {r0-r7}
+ mov r8, r0
+ mov r9, r1
+ mov r10, r2
+ mov r11, r3
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ply_note
+
+ thumb_func_start ply_endtie
+ply_endtie:
+ push {r4,r5}
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldrb r3, [r2]
+ cmp r3, 0x80
+ bcs _080AEE02
+ strb r3, [r1, o_MusicPlayerTrack_key]
+ adds r2, 0x1
+ str r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ b _080AEE04
+_080AEE02:
+ ldrb r3, [r1, o_MusicPlayerTrack_key]
+_080AEE04:
+ ldr r1, [r1, o_MusicPlayerTrack_chan]
+ cmp r1, 0
+ beq _080AEE2C
+ movs r4, 0x83
+ movs r5, 0x40
+_080AEE0E:
+ ldrb r2, [r1, o_SoundChannel_status]
+ tst r2, r4
+ beq _080AEE26
+ tst r2, r5
+ bne _080AEE26
+ ldrb r0, [r1, o_SoundChannel_mk]
+ cmp r0, r3
+ bne _080AEE26
+ movs r0, 0x40
+ orrs r2, r0
+ strb r2, [r1, o_SoundChannel_status]
+ b _080AEE2C
+_080AEE26:
+ ldr r1, [r1, o_SoundChannel_np]
+ cmp r1, 0
+ bne _080AEE0E
+_080AEE2C:
+ pop {r4,r5}
+ bx lr
+ thumb_func_end ply_endtie
+
+ thumb_func_start clear_modM
+clear_modM:
+ movs r2, 0
+ strb r2, [r1, o_MusicPlayerTrack_modM]
+ strb r2, [r1, o_MusicPlayerTrack_lfoSpeedC]
+ ldrb r2, [r1, o_MusicPlayerTrack_modT]
+ cmp r2, 0
+ bne _080AEE40
+ movs r2, 0xC
+ b _080AEE42
+_080AEE40:
+ movs r2, 0x3
+_080AEE42:
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ orrs r3, r2
+ strb r3, [r1, o_MusicPlayerTrack_flags]
+ bx lr
+ thumb_func_end clear_modM
+
+ thumb_func_start ld_r3_tp_adr_i_unchecked
+ld_r3_tp_adr_i_unchecked:
+ ldr r2, [r1, 0x40]
+ adds r3, r2, 0x1
+ str r3, [r1, 0x40]
+ ldrb r3, [r2]
+ bx lr
+ thumb_func_end ld_r3_tp_adr_i_unchecked
+
+ thumb_func_start ply_lfos
+ply_lfos:
+ mov r12, lr
+ bl ld_r3_tp_adr_i_unchecked
+ strb r3, [r1, o_MusicPlayerTrack_lfoSpeed]
+ cmp r3, 0
+ bne _080AEE68
+ bl clear_modM
+_080AEE68:
+ bx r12
+ thumb_func_end ply_lfos
+
+ thumb_func_start ply_mod
+ply_mod:
+ mov r12, lr
+ bl ld_r3_tp_adr_i_unchecked
+ strb r3, [r1, o_MusicPlayerTrack_mod]
+ cmp r3, 0
+ bne _080AEE7C
+ bl clear_modM
+_080AEE7C:
+ bx r12
+ thumb_func_end ply_mod
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/m4a_2.s b/asm/m4a_2.s
new file mode 100644
index 0000000..eb525ce
--- /dev/null
+++ b/asm/m4a_2.s
@@ -0,0 +1,70 @@
+ .include "asm/macros.inc"
+ .include "constants/gba_constants.inc"
+ .include "constants/m4a_constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start CgbModVol
+CgbModVol:
+ push {r4,lr}
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x2]
+ lsls r2, r0, 24
+ lsrs r4, r2, 24
+ ldrb r3, [r1, 0x3]
+ lsls r0, r3, 24
+ lsrs r3, r0, 24
+ cmp r4, r3
+ bcc _080AFA94
+ lsrs r0, r2, 25
+ cmp r0, r3
+ bcc _080AFAA0
+ movs r0, 0xF
+ strb r0, [r1, 0x1B]
+ b _080AFAAE
+_080AFA94:
+ lsrs r0, 25
+ cmp r0, r4
+ bcc _080AFAA0
+ movs r0, 0xF0
+ strb r0, [r1, 0x1B]
+ b _080AFAAE
+_080AFAA0:
+ movs r0, 0xFF
+ strb r0, [r1, 0x1B]
+ ldrb r2, [r1, 0x3]
+ ldrb r3, [r1, 0x2]
+ adds r0, r2, r3
+ lsrs r0, 4
+ b _080AFABE
+_080AFAAE:
+ ldrb r2, [r1, 0x3]
+ ldrb r3, [r1, 0x2]
+ adds r0, r2, r3
+ lsrs r0, 4
+ strb r0, [r1, 0xA]
+ cmp r0, 0xF
+ bls _080AFAC0
+ movs r0, 0xF
+_080AFABE:
+ strb r0, [r1, 0xA]
+_080AFAC0:
+ ldrb r2, [r1, 0x6]
+ ldrb r3, [r1, 0xA]
+ adds r0, r2, 0
+ muls r0, r3
+ adds r0, 0xF
+ asrs r0, 4
+ strb r0, [r1, 0x19]
+ ldrb r0, [r1, 0x1C]
+ ldrb r2, [r1, 0x1B]
+ ands r0, r2
+ strb r0, [r1, 0x1B]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end CgbModVol
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/m4a_3.s b/asm/m4a_3.s
new file mode 100644
index 0000000..4747b3f
--- /dev/null
+++ b/asm/m4a_3.s
@@ -0,0 +1,574 @@
+ .include "asm/macros.inc"
+ .include "constants/gba_constants.inc"
+ .include "constants/m4a_constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start CgbSound
+CgbSound:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, =SOUND_INFO_PTR
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _080AFB00
+ subs r0, 0x1
+ ldr r1, [sp, 0x4]
+ strb r0, [r1, 0xA]
+ b _080AFB06
+ .pool
+_080AFB00:
+ movs r0, 0xE
+ ldr r2, [sp, 0x4]
+ strb r0, [r2, 0xA]
+_080AFB06:
+ movs r6, 0x1
+ ldr r0, [sp, 0x4]
+ ldr r4, [r0, 0x1C]
+_080AFB0C:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ ands r0, r1
+ adds r2, r6, 0x1
+ mov r10, r2
+ movs r2, 0x40
+ adds r2, r4
+ mov r9, r2
+ cmp r0, 0
+ bne _080AFB22
+ b _080AFF0C
+_080AFB22:
+ cmp r6, 0x2
+ beq _080AFB54
+ cmp r6, 0x2
+ bgt _080AFB30
+ cmp r6, 0x1
+ beq _080AFB36
+ b _080AFB8C
+_080AFB30:
+ cmp r6, 0x3
+ beq _080AFB6C
+ b _080AFB8C
+_080AFB36:
+ ldr r0, =REG_NR10
+ str r0, [sp, 0x8]
+ ldr r7, =REG_NR11
+ ldr r2, =REG_NR12
+ str r2, [sp, 0xC]
+ adds r0, 0x4
+ str r0, [sp, 0x10]
+ adds r2, 0x2
+ b _080AFB9C
+ .pool
+_080AFB54:
+ ldr r0, =REG_NR10 + 1
+ str r0, [sp, 0x8]
+ ldr r7, =REG_NR21
+ ldr r2, =REG_NR22
+ b _080AFB94
+ .pool
+_080AFB6C:
+ ldr r0, =REG_NR30
+ str r0, [sp, 0x8]
+ ldr r7, =REG_NR31
+ ldr r2, =REG_NR32
+ str r2, [sp, 0xC]
+ adds r0, 0x4
+ str r0, [sp, 0x10]
+ adds r2, 0x2
+ b _080AFB9C
+ .pool
+_080AFB8C:
+ ldr r0, =REG_NR30 + 1
+ str r0, [sp, 0x8]
+ ldr r7, =REG_NR41
+ ldr r2, =REG_NR42
+_080AFB94:
+ str r2, [sp, 0xC]
+ adds r0, 0xB
+ str r0, [sp, 0x10]
+ adds r2, 0x4
+_080AFB9C:
+ str r2, [sp, 0x14]
+ ldr r0, [sp, 0x4]
+ ldrb r0, [r0, 0xA]
+ str r0, [sp]
+ ldr r2, [sp, 0xC]
+ ldrb r0, [r2]
+ mov r8, r0
+ adds r2, r1, 0
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080AFC92
+ movs r3, 0x40
+ adds r0, r3, 0
+ ands r0, r2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0x1
+ mov r10, r0
+ movs r1, 0x40
+ adds r1, r4
+ mov r9, r1
+ cmp r5, 0
+ bne _080AFCB6
+ movs r0, 0x3
+ strb r0, [r4]
+ strb r0, [r4, 0x1D]
+ adds r0, r4, 0
+ str r3, [sp, 0x18]
+ bl CgbModVol
+ ldr r3, [sp, 0x18]
+ cmp r6, 0x2
+ beq _080AFC04
+ cmp r6, 0x2
+ bgt _080AFBF8
+ cmp r6, 0x1
+ beq _080AFBFE
+ b _080AFC58
+ .pool
+_080AFBF8:
+ cmp r6, 0x3
+ beq _080AFC10
+ b _080AFC58
+_080AFBFE:
+ ldrb r0, [r4, 0x1F]
+ ldr r2, [sp, 0x8]
+ strb r0, [r2]
+_080AFC04:
+ ldr r0, [r4, 0x24]
+ lsls r0, 6
+ ldrb r1, [r4, 0x1E]
+ adds r0, r1, r0
+ strb r0, [r7]
+ b _080AFC64
+_080AFC10:
+ ldr r1, [r4, 0x24]
+ ldr r0, [r4, 0x28]
+ cmp r1, r0
+ beq _080AFC38
+ ldr r2, [sp, 0x8]
+ strb r3, [r2]
+ ldr r1, =REG_WAVE_RAM
+ ldr r2, [r4, 0x24]
+ ldr r0, [r2]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0x8]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0xC]
+ str r0, [r1]
+ str r2, [r4, 0x28]
+_080AFC38:
+ ldr r0, [sp, 0x8]
+ strb r5, [r0]
+ ldrb r0, [r4, 0x1E]
+ strb r0, [r7]
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0
+ beq _080AFC50
+ movs r0, 0xC0
+ b _080AFC72
+ .pool
+_080AFC50:
+ movs r1, 0x80
+ negs r1, r1
+ strb r1, [r4, 0x1A]
+ b _080AFC74
+_080AFC58:
+ ldrb r0, [r4, 0x1E]
+ strb r0, [r7]
+ ldr r0, [r4, 0x24]
+ lsls r0, 3
+ ldr r2, [sp, 0x10]
+ strb r0, [r2]
+_080AFC64:
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x8
+ mov r8, r0
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0
+ beq _080AFC72
+ movs r0, 0x40
+_080AFC72:
+ strb r0, [r4, 0x1A]
+_080AFC74:
+ ldrb r1, [r4, 0x4]
+ movs r2, 0
+ strb r1, [r4, 0xB]
+ movs r0, 0xFF
+ ands r0, r1
+ adds r1, r6, 0x1
+ mov r10, r1
+ movs r1, 0x40
+ adds r1, r4
+ mov r9, r1
+ cmp r0, 0
+ bne _080AFC8E
+ b _080AFDCA
+_080AFC8E:
+ strb r2, [r4, 0x9]
+ b _080AFDF8
+_080AFC92:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _080AFCC4
+ ldrb r0, [r4, 0xD]
+ subs r0, 0x1
+ strb r0, [r4, 0xD]
+ movs r2, 0xFF
+ ands r0, r2
+ lsls r0, 24
+ adds r1, r6, 0x1
+ mov r10, r1
+ movs r2, 0x40
+ adds r2, r4
+ mov r9, r2
+ cmp r0, 0
+ ble _080AFCB6
+ b _080AFE0A
+_080AFCB6:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl CgbOscOff
+ movs r0, 0
+ strb r0, [r4]
+ b _080AFF08
+_080AFCC4:
+ movs r0, 0x40
+ ands r0, r1
+ adds r2, r6, 0x1
+ mov r10, r2
+ movs r2, 0x40
+ adds r2, r4
+ mov r9, r2
+ cmp r0, 0
+ beq _080AFD04
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080AFD04
+ movs r0, 0xFC
+ ands r0, r1
+ movs r2, 0
+ strb r0, [r4]
+ ldrb r1, [r4, 0x7]
+ strb r1, [r4, 0xB]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ beq _080AFD36
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ cmp r6, 0x3
+ beq _080AFDF8
+ ldrb r2, [r4, 0x7]
+ mov r8, r2
+ b _080AFDF8
+_080AFD04:
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _080AFDF8
+ cmp r6, 0x3
+ bne _080AFD16
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+_080AFD16:
+ adds r0, r4, 0
+ bl CgbModVol
+ movs r0, 0x3
+ ldrb r2, [r4]
+ ands r0, r2
+ cmp r0, 0
+ bne _080AFD6A
+ ldrb r0, [r4, 0x9]
+ subs r0, 0x1
+ strb r0, [r4, 0x9]
+ movs r1, 0xFF
+ ands r0, r1
+ lsls r0, 24
+ cmp r0, 0
+ bgt _080AFD66
+_080AFD36:
+ ldrb r2, [r4, 0xC]
+ ldrb r1, [r4, 0xA]
+ adds r0, r2, 0
+ muls r0, r1
+ adds r0, 0xFF
+ asrs r0, 8
+ movs r1, 0
+ strb r0, [r4, 0x9]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AFCB6
+ movs r0, 0x4
+ ldrb r2, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ cmp r6, 0x3
+ beq _080AFE0A
+ movs r2, 0x8
+ mov r8, r2
+ b _080AFE0A
+_080AFD66:
+ ldrb r0, [r4, 0x7]
+ b _080AFDF6
+_080AFD6A:
+ cmp r0, 0x1
+ bne _080AFD76
+_080AFD6E:
+ ldrb r0, [r4, 0x19]
+ strb r0, [r4, 0x9]
+ movs r0, 0x7
+ b _080AFDF6
+_080AFD76:
+ cmp r0, 0x2
+ bne _080AFDBA
+ ldrb r0, [r4, 0x9]
+ subs r0, 0x1
+ strb r0, [r4, 0x9]
+ movs r1, 0xFF
+ ands r0, r1
+ lsls r0, 24
+ ldrb r2, [r4, 0x19]
+ lsls r1, r2, 24
+ cmp r0, r1
+ bgt _080AFDB6
+_080AFD8E:
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0
+ bne _080AFD9E
+ movs r0, 0xFC
+ ldrb r1, [r4]
+ ands r0, r1
+ strb r0, [r4]
+ b _080AFD36
+_080AFD9E:
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+ ldrb r2, [r4, 0x1D]
+ orrs r0, r2
+ strb r0, [r4, 0x1D]
+ cmp r6, 0x3
+ beq _080AFD6E
+ movs r0, 0x8
+ mov r8, r0
+ b _080AFD6E
+_080AFDB6:
+ ldrb r0, [r4, 0x5]
+ b _080AFDF6
+_080AFDBA:
+ ldrb r0, [r4, 0x9]
+ adds r0, 0x1
+ strb r0, [r4, 0x9]
+ movs r1, 0xFF
+ ands r0, r1
+ ldrb r2, [r4, 0xA]
+ cmp r0, r2
+ bcc _080AFDF4
+_080AFDCA:
+ ldrb r0, [r4]
+ subs r0, 0x1
+ movs r2, 0
+ strb r0, [r4]
+ ldrb r1, [r4, 0x5]
+ strb r1, [r4, 0xB]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ beq _080AFD8E
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ ldrb r0, [r4, 0xA]
+ strb r0, [r4, 0x9]
+ cmp r6, 0x3
+ beq _080AFDF8
+ ldrb r2, [r4, 0x5]
+ mov r8, r2
+ b _080AFDF8
+_080AFDF4:
+ ldrb r0, [r4, 0x4]
+_080AFDF6:
+ strb r0, [r4, 0xB]
+_080AFDF8:
+ ldrb r0, [r4, 0xB]
+ subs r0, 0x1
+ strb r0, [r4, 0xB]
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _080AFE0A
+ subs r0, 0x1
+ str r0, [sp]
+ b _080AFD04
+_080AFE0A:
+ movs r0, 0x2
+ ldrb r1, [r4, 0x1D]
+ ands r0, r1
+ cmp r0, 0
+ beq _080AFE82
+ cmp r6, 0x3
+ bgt _080AFE4A
+ movs r0, 0x8
+ ldrb r2, [r4, 0x1]
+ ands r0, r2
+ cmp r0, 0
+ beq _080AFE4A
+ ldr r0, =REG_SOUNDBIAS + 1
+ ldrb r0, [r0]
+ cmp r0, 0x3F
+ bgt _080AFE3C
+ ldr r0, [r4, 0x20]
+ adds r0, 0x2
+ ldr r1, =0x000007fc
+ b _080AFE46
+ .pool
+_080AFE3C:
+ cmp r0, 0x7F
+ bgt _080AFE4A
+ ldr r0, [r4, 0x20]
+ adds r0, 0x1
+ ldr r1, =0x000007fe
+_080AFE46:
+ ands r0, r1
+ str r0, [r4, 0x20]
+_080AFE4A:
+ cmp r6, 0x4
+ beq _080AFE5C
+ ldr r0, [r4, 0x20]
+ ldr r1, [sp, 0x10]
+ strb r0, [r1]
+ b _080AFE6A
+ .pool
+_080AFE5C:
+ ldr r2, [sp, 0x10]
+ ldrb r0, [r2]
+ movs r1, 0x8
+ ands r1, r0
+ ldr r0, [r4, 0x20]
+ orrs r0, r1
+ strb r0, [r2]
+_080AFE6A:
+ movs r0, 0xC0
+ ldrb r1, [r4, 0x1A]
+ ands r0, r1
+ adds r1, r4, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ adds r0, r1, r0
+ strb r0, [r4, 0x1A]
+ movs r2, 0xFF
+ ands r0, r2
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+_080AFE82:
+ movs r0, 0x1
+ ldrb r2, [r4, 0x1D]
+ ands r0, r2
+ cmp r0, 0
+ beq _080AFF08
+ ldr r1, =REG_NR51
+ ldrb r0, [r1]
+ ldrb r2, [r4, 0x1C]
+ bics r0, r2
+ ldrb r2, [r4, 0x1B]
+ orrs r0, r2
+ strb r0, [r1]
+ cmp r6, 0x3
+ bne _080AFED4
+ ldr r0, =gCgb3Vol
+ ldrb r1, [r4, 0x9]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, [sp, 0xC]
+ strb r0, [r2]
+ movs r1, 0x80
+ adds r0, r1, 0
+ ldrb r2, [r4, 0x1A]
+ ands r0, r2
+ cmp r0, 0
+ beq _080AFF08
+ ldr r0, [sp, 0x8]
+ strb r1, [r0]
+ ldrb r0, [r4, 0x1A]
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+ movs r0, 0x7F
+ ldrb r2, [r4, 0x1A]
+ ands r0, r2
+ strb r0, [r4, 0x1A]
+ b _080AFF08
+ .pool
+_080AFED4:
+ movs r0, 0xF
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldrb r2, [r4, 0x9]
+ lsls r0, r2, 4
+ add r0, r8
+ ldr r1, [sp, 0xC]
+ strb r0, [r1]
+ movs r2, 0x80
+ ldrb r0, [r4, 0x1A]
+ orrs r0, r2
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+ cmp r6, 0x1
+ bne _080AFF08
+ ldr r0, [sp, 0x8]
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080AFF08
+ ldrb r0, [r4, 0x1A]
+ orrs r0, r2
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+_080AFF08:
+ movs r0, 0
+ strb r0, [r4, 0x1D]
+_080AFF0C:
+ mov r6, r10
+ mov r4, r9
+ cmp r6, 0x4
+ bgt _080AFF16
+ b _080AFB0C
+_080AFF16:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end CgbSound
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/memory.s b/asm/memory.s
index e364f1b..1b9d36e 100644
--- a/asm/memory.s
+++ b/asm/memory.s
@@ -4,268 +4,7 @@
.syntax unified
.text
-
- thumb_func_start InitHeap
-InitHeap:
- push {lr}
- bl InitHeapInternal
- pop {r0}
- bx r0
- thumb_func_end InitHeap
-
- thumb_func_start MemoryClear8
-MemoryClear8:
- push {lr}
- cmp r1, 0
- ble _08002EAA
- movs r2, 0
-_08002EA0:
- subs r1, 0x1
- strb r2, [r0]
- adds r0, 0x1
- cmp r1, 0
- bgt _08002EA0
-_08002EAA:
- pop {r0}
- bx r0
- thumb_func_end MemoryClear8
-
- thumb_func_start MemoryClear16
-MemoryClear16:
- push {lr}
- cmp r1, 0
- ble _08002EC2
- movs r2, 0
-_08002EB8:
- subs r1, 0x2
- strh r2, [r0]
- adds r0, 0x2
- cmp r1, 0
- bgt _08002EB8
-_08002EC2:
- pop {r0}
- bx r0
- thumb_func_end MemoryClear16
-
- thumb_func_start MemoryClear32
-MemoryClear32:
- push {lr}
- bl CpuClear
- pop {r0}
- bx r0
- thumb_func_end MemoryClear32
-
- thumb_func_start MemoryFill8
-MemoryFill8:
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r2, 0
- ble _08002EE8
-_08002EDE:
- subs r2, 0x1
- strb r1, [r0]
- adds r0, 0x1
- cmp r2, 0
- bgt _08002EDE
-_08002EE8:
- pop {r0}
- bx r0
- thumb_func_end MemoryFill8
-
- thumb_func_start MemoryFill16
-MemoryFill16:
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- cmp r2, 0
- ble _08002F00
-_08002EF6:
- subs r2, 0x2
- strh r1, [r0]
- adds r0, 0x2
- cmp r2, 0
- bgt _08002EF6
-_08002F00:
- pop {r0}
- bx r0
- thumb_func_end MemoryFill16
-
- thumb_func_start MemoryFill32
-MemoryFill32:
- push {lr}
- cmp r2, 0
- ble _08002F12
-_08002F0A:
- subs r2, 0x4
- stm r0!, {r1}
- cmp r2, 0
- bgt _08002F0A
-_08002F12:
- pop {r0}
- bx r0
- thumb_func_end MemoryFill32
-
- thumb_func_start MemoryCopy8
-MemoryCopy8:
- push {lr}
- adds r3, r0, 0
- cmp r2, 0
- ble _08002F2E
-_08002F20:
- subs r2, 0x1
- ldrb r0, [r1]
- strb r0, [r3]
- adds r1, 0x1
- adds r3, 0x1
- cmp r2, 0
- bgt _08002F20
-_08002F2E:
- pop {r0}
- bx r0
- thumb_func_end MemoryCopy8
-
- thumb_func_start MemoryCopy16
-MemoryCopy16:
- push {lr}
- adds r3, r0, 0
- cmp r2, 0
- ble _08002F4A
-_08002F3C:
- subs r2, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- cmp r2, 0
- bgt _08002F3C
-_08002F4A:
- pop {r0}
- bx r0
- thumb_func_end MemoryCopy16
-
- thumb_func_start MemoryCopy32
-MemoryCopy32:
- push {lr}
- adds r3, r0, 0
- cmp r2, 0
- ble _08002F62
-_08002F58:
- subs r2, 0x4
- ldm r1!, {r0}
- stm r3!, {r0}
- cmp r2, 0
- bgt _08002F58
-_08002F62:
- pop {r0}
- bx r0
- thumb_func_end MemoryCopy32
-
- thumb_func_start InitHeapInternal
-InitHeapInternal:
- push {lr}
- sub sp, 0x8
- ldr r0, _08002F90
- str r0, [sp]
- movs r0, 0x90
- lsls r0, 10
- str r0, [sp, 0x4]
- ldr r1, _08002F94
- movs r0, 0
- str r0, [r1]
- ldr r0, _08002F98
- ldr r2, _08002F9C
- mov r1, sp
- movs r3, 0x20
- bl DoInitHeap
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08002F90: .4byte gUnknown_20011D0
-_08002F94: .4byte gUnknown_2000EA8
-_08002F98: .4byte gUnknown_2000EB0
-_08002F9C: .4byte gUnknown_2000ED0
- thumb_func_end InitHeapInternal
-
- thumb_func_start DoInitHeap
-DoInitHeap:
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r4, [r1, 0x4]
- mov r9, r4
- movs r4, 0x4
- negs r4, r4
- mov r5, r9
- ands r5, r4
- mov r9, r5
- ldr r6, _08002FFC
- ldr r4, _08003000
- mov r8, r4
- ldr r5, [r4]
- lsls r4, r5, 2
- adds r4, r6
- str r0, [r4]
- adds r5, 0x1
- mov r4, r8
- str r5, [r4]
- ldr r5, [r1]
- str r5, [r0, 0x14]
- mov r1, r9
- str r1, [r0, 0x18]
- movs r1, 0x2
- str r1, [r0]
- movs r4, 0
- str r4, [r0, 0x4]
- str r2, [r0, 0x8]
- movs r1, 0x1
- str r1, [r0, 0xC]
- str r3, [r0, 0x10]
- str r4, [r2]
- str r4, [r2, 0x4]
- str r5, [r2, 0xC]
- mov r5, r9
- str r5, [r2, 0x10]
- str r4, [r2, 0x14]
- str r4, [r2, 0x8]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08002FFC: .4byte gUnknown_2000E88
-_08003000: .4byte gUnknown_2000EA8
- thumb_func_end DoInitHeap
-
- thumb_func_start InitSubHeap
-InitSubHeap:
- push {r4,r5,lr}
- sub sp, 0x8
- adds r3, r2, 0
- lsls r4, r3, 1
- adds r4, r3
- movs r2, 0x4
- negs r2, r2
- lsls r4, 3
- ldr r5, [r1, 0x4]
- subs r5, r4
- ands r5, r2
- ldr r2, [r1]
- adds r4, r2, r4
- str r4, [sp]
- str r5, [sp, 0x4]
- mov r1, sp
- bl DoInitHeap
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end InitSubHeap
-
+
thumb_func_start xxx_memory_attr_related
xxx_memory_attr_related:
push {lr}
@@ -454,7 +193,7 @@ _0800315E:
_08003168:
movs r7, 0x1
negs r7, r7
- ldr r6, _080031A4
+ ldr r6, =0x24001
ldr r0, [r4, 0xC]
subs r3, r0, 0x1
lsls r0, r3, 1
@@ -486,7 +225,7 @@ _080031A0:
adds r0, r7, 0
b _080031AC
.align 2, 0
-_080031A4: .4byte 0x00024001
+ .pool
_080031A8:
movs r0, 0x1
negs r0, r0
@@ -561,13 +300,12 @@ _08003222:
str r2, [r1, 0xC]
cmp r2, r8
ble _08003240
- ldr r0, _08003238
- ldr r1, _0800323C
+ ldr r0, =gUnknown_80B7EB8
+ ldr r1, =gUnknown_80B7EC4
mov r3, r8
bl FatalError
.align 2, 0
-_08003238: .4byte gUnknown_80B7EB8
-_0800323C: .4byte gUnknown_80B7EC4
+ .pool
_08003240:
ldr r0, [sp, 0xC]
add r0, r9
@@ -671,13 +409,12 @@ _080032F6:
str r2, [r7, 0xC]
cmp r2, r8
ble _08003314
- ldr r0, _0800330C
- ldr r1, _08003310
+ ldr r0, =gUnknown_80B7EFC
+ ldr r1, =gUnknown_80B7EC4
mov r3, r8
bl FatalError
.align 2, 0
-_0800330C: .4byte gUnknown_80B7EFC
-_08003310: .4byte gUnknown_80B7EC4
+ .pool
_08003314:
ldr r0, [r4, 0x10]
ldr r1, [sp, 0x10]
@@ -717,7 +454,7 @@ _LocateSet:
adds r6, r2, 0
cmp r5, 0
bne _0800335C
- ldr r5, _08003390
+ ldr r5, =gMainHeapDescriptor
_0800335C:
asrs r4, r6, 8
movs r0, 0x1
@@ -743,7 +480,7 @@ _0800335C:
ldr r0, [r0, 0xC]
b _080033CC
.align 2, 0
-_08003390: .4byte gUnknown_2000EB0
+ .pool
_08003394:
adds r0, r5, 0
adds r1, r4, 0
@@ -760,16 +497,15 @@ _08003394:
ldr r0, [r0, 0xC]
b _080033CC
_080033B4:
- ldr r0, _080033C4
- ldr r1, _080033C8
+ ldr r0, =gUnknown_80B7F14
+ ldr r1, =gUnknown_80B7F20
str r4, [sp]
str r6, [sp, 0x4]
adds r2, r5, 0
adds r3, r7, 0
bl FatalError
.align 2, 0
-_080033C4: .4byte gUnknown_80B7F14
-_080033C8: .4byte gUnknown_80B7F20
+ .pool
_080033CC:
add sp, 0x8
pop {r4-r7}
@@ -782,25 +518,25 @@ MemoryAlloc:
push {lr}
adds r3, r0, 0
adds r2, r1, 0
- ldr r0, _080033E8
+ ldr r0, =gMainHeapDescriptor
adds r1, r3, 0
bl DoAlloc
pop {r1}
bx r1
.align 2, 0
-_080033E8: .4byte gUnknown_2000EB0
+ .pool
thumb_func_end MemoryAlloc
thumb_func_start MemoryFree
MemoryFree:
push {lr}
adds r1, r0, 0
- ldr r0, _080033FC
+ ldr r0, =gMainHeapDescriptor
bl DoFree
pop {r0}
bx r0
.align 2, 0
-_080033FC: .4byte gUnknown_2000EB0
+ .pool
thumb_func_end MemoryFree
thumb_func_start MemoryLocate_LocalCreate
@@ -813,7 +549,7 @@ MemoryLocate_LocalCreate:
adds r6, r3, 0
cmp r4, 0
bne _08003412
- ldr r4, _0800342C
+ ldr r4, =gMainHeapDescriptor
_08003412:
adds r0, r4, 0
movs r1, 0x9
@@ -822,14 +558,12 @@ _08003412:
adds r1, r0, 0
cmp r1, 0
bge _08003438
- ldr r0, _08003430
- ldr r1, _08003434
+ ldr r0, =gUnknown_80B7F88
+ ldr r1, =gUnknown_80B7F94
adds r2, r5, 0
bl FatalError
.align 2, 0
-_0800342C: .4byte gUnknown_2000EB0
-_08003430: .4byte gUnknown_80B7F88
-_08003434: .4byte gUnknown_80B7F94
+ .pool
_08003438:
str r6, [sp]
adds r0, r4, 0
@@ -893,11 +627,11 @@ _080034A2:
movs r0, 0
mov r12, r0
movs r3, 0
- ldr r6, _080034E0
+ ldr r6, =gHeapCount
ldr r0, [r6]
cmp r12, r0
bge _080034F2
- ldr r5, _080034E4
+ ldr r5, =gHeapDescriptorList
adds r1, r6, 0
adds r7, r5, 0
movs r2, 0
@@ -911,7 +645,7 @@ _080034BC:
str r0, [r1]
cmp r3, r0
bge _080034F8
- ldr r1, _080034E0
+ ldr r1, =gHeapCount
adds r2, r7
_080034D2:
ldr r0, [r2, 0x4]
@@ -922,8 +656,7 @@ _080034D2:
blt _080034D2
b _080034F8
.align 2, 0
-_080034E0: .4byte gUnknown_2000EA8
-_080034E4: .4byte gUnknown_2000E88
+ .pool
_080034E8:
adds r2, 0x4
adds r3, 0x1
@@ -966,7 +699,7 @@ DoFree:
adds r4, r0, 0
cmp r4, 0
bne _0800352E
- ldr r4, _080035D4
+ ldr r4, =gMainHeapDescriptor
_0800352E:
cmp r1, 0
beq _080035E4
@@ -1056,7 +789,7 @@ _080035BA:
blt _080035BA
b _080035E4
.align 2, 0
-_080035D4: .4byte gUnknown_2000EB0
+ .pool
_080035D8:
movs r0, 0x1
add r8, r0
diff --git a/asm/rom_header.inc b/asm/rom_header.inc
index 09b95ec..6730efa 100644
--- a/asm/rom_header.inc
+++ b/asm/rom_header.inc
@@ -1,37 +1,19 @@
.global RomHeaderNintendoLogo
RomHeaderNintendoLogo:
- .byte 0x24,0xff,0xae,0x51,0x69,0x9a,0xa2,0x21
- .byte 0x3d,0x84,0x82,0x0a,0x84,0xe4,0x09,0xad
- .byte 0x11,0x24,0x8b,0x98,0xc0,0x81,0x7f,0x21
- .byte 0xa3,0x52,0xbe,0x19,0x93,0x09,0xce,0x20
- .byte 0x10,0x46,0x4a,0x4a,0xf8,0x27,0x31,0xec
- .byte 0x58,0xc7,0xe8,0x33,0x82,0xe3,0xce,0xbf
- .byte 0x85,0xf4,0xdf,0x94,0xce,0x4b,0x09,0xc1
- .byte 0x94,0x56,0x8a,0xc0,0x13,0x72,0xa7,0xfc
- .byte 0x9f,0x84,0x4d,0x73,0xa3,0xca,0x9a,0x61
- .byte 0x58,0x97,0xa3,0x27,0xfc,0x03,0x98,0x76
- .byte 0x23,0x1d,0xc7,0x61,0x03,0x04,0xae,0x56
- .byte 0xbf,0x38,0x84,0x00,0x40,0xa7,0x0e,0xfd
- .byte 0xff,0x52,0xfe,0x03,0x6f,0x95,0x30,0xf1
- .byte 0x97,0xfb,0xc0,0x85,0x60,0xd6,0x80,0x25
- .byte 0xa9,0x63,0xbe,0x03,0x01,0x4e,0x38,0xe2
- .byte 0xf9,0xa2,0x34,0xff,0xbb,0x3e,0x03,0x44
- .byte 0x78,0x00,0x90,0xcb,0x88,0x11,0x3a,0x94
- .byte 0x65,0xc0,0x7c,0x63,0x87,0xf0,0x3c,0xaf
- .byte 0xd6,0x25,0xe4,0x8b,0x38,0x0a,0xac,0x72
- .byte 0x21,0xd4,0xf8,0x07
+ .space 156
RomHeaderGameTitle:
- .ascii "POKE DUNGEON"
+ .space 12
+ .global RomHeaderGameCode
RomHeaderGameCode:
- .ascii "B24E"
+ .space 4
RomHeaderMakerCode:
- .ascii "01"
+ .space 2
RomHeaderMagic:
- .byte 0x96
+ .byte 0
RomHeaderMainUnitCode:
.byte 0
@@ -42,11 +24,12 @@ RomHeaderDeviceType:
RomHeaderReserved1:
.space 7
+ .global RomHeaderSoftwareVersion
RomHeaderSoftwareVersion:
.byte 0
RomHeaderChecksum:
- .byte 0xA4
+ .byte 0
RomHeaderReserved2:
.space 2
diff --git a/asm/save.s b/asm/save.s
index f88c219..2ebaaa4 100644
--- a/asm/save.s
+++ b/asm/save.s
@@ -5,116 +5,18 @@
.text
- thumb_func_start sub_8011C1C
-sub_8011C1C:
- ldr r0, _08011C24
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08011C24: .4byte gUnknown_203B17C
- thumb_func_end sub_8011C1C
-
- thumb_func_start sub_8011C28
-sub_8011C28:
- ldr r1, _08011C30
- str r0, [r1]
- bx lr
- .align 2, 0
-_08011C30: .4byte gUnknown_203B17C
- thumb_func_end sub_8011C28
-
- thumb_func_start sub_8011C34
-sub_8011C34:
- ldr r0, _08011C3C
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08011C3C: .4byte gUnknown_202DE28
- thumb_func_end sub_8011C34
-
- thumb_func_start sub_8011C40
-sub_8011C40:
- ldr r1, _08011C48
- str r0, [r1]
- bx lr
- .align 2, 0
-_08011C48: .4byte gUnknown_202DE28
- thumb_func_end sub_8011C40
-
- thumb_func_start sub_8011C4C
-sub_8011C4C:
- ldr r0, _08011C54
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08011C54: .4byte gUnknown_203B180
- thumb_func_end sub_8011C4C
-
- thumb_func_start sub_8011C58
-sub_8011C58:
- push {r4,lr}
- adds r4, r0, 0
- movs r2, 0
- lsrs r1, 2
- cmp r1, 0x1
- ble _08011C72
- adds r3, r4, 0x4
- subs r1, 0x1
-_08011C68:
- ldm r3!, {r0}
- adds r2, r0
- subs r1, 0x1
- cmp r1, 0
- bne _08011C68
-_08011C72:
- str r2, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8011C58
-
- thumb_func_start sub_8011C7C
-sub_8011C7C:
- push {r4,lr}
- adds r4, r0, 0
- movs r2, 0
- lsrs r1, 2
- cmp r1, 0x1
- ble _08011C96
- adds r3, r4, 0x4
- subs r1, 0x1
-_08011C8C:
- ldm r3!, {r0}
- adds r2, r0
- subs r1, 0x1
- cmp r1, 0
- bne _08011C8C
-_08011C96:
- ldr r0, [r4]
- cmp r0, r2
- bne _08011CA0
- movs r0, 0
- b _08011CA2
-_08011CA0:
- movs r0, 0x1
-_08011CA2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8011C7C
-
thumb_func_start sub_8011CA8
sub_8011CA8:
push {lr}
adds r3, r0, 0
adds r2, r1, 0
- ldr r0, _08011CCC
+ ldr r0, =gUnknown_203B184
ldr r0, [r0]
- ldr r0, _08011CD0
+ ldr r0, =0xfff
adds r1, r2, r0
cmp r1, 0
bge _08011CBE
- ldr r0, _08011CD4
+ ldr r0, =0x1ffe
adds r1, r2, r0
_08011CBE:
asrs r1, 12
@@ -124,13 +26,11 @@ _08011CBE:
pop {r0}
bx r0
.align 2, 0
-_08011CCC: .4byte gUnknown_203B184
-_08011CD0: .4byte 0x00000fff
-_08011CD4: .4byte 0x00001ffe
+ .pool
thumb_func_end sub_8011CA8
- thumb_func_start sub_8011CD8
-sub_8011CD8:
+ thumb_func_start WriteSaveSector
+WriteSaveSector:
push {r4-r6,lr}
adds r5, r1, 0
adds r4, r2, 0
@@ -139,7 +39,7 @@ sub_8011CD8:
bl sub_8011CA8
adds r0, r5, 0
adds r1, r4, 0
- bl sub_8011C58
+ bl CalculateChecksum
ldr r0, _08011D04
ldr r0, [r0]
cmp r0, 0
@@ -183,10 +83,10 @@ _08011D3A:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_8011CD8
+ thumb_func_end WriteSaveSector
- thumb_func_start sub_8011D40
-sub_8011D40:
+ thumb_func_start ReadSaveSector
+ReadSaveSector:
push {r4-r6,lr}
adds r5, r1, 0
adds r4, r2, 0
@@ -228,7 +128,7 @@ _08011D8A:
_08011D8E:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_8011C7C
+ bl ValidateChecksum
lsls r0, 24
cmp r0, 0
bne _08011DA0
@@ -240,7 +140,7 @@ _08011DA2:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_8011D40
+ thumb_func_end ReadSaveSector
thumb_func_start sub_8011DA8
sub_8011DA8:
@@ -265,14 +165,14 @@ sub_8011DAC:
adds r0, r6, 0
adds r1, r5, 0
mov r2, r8
- bl sub_8011D40
+ bl ReadSaveSector
adds r7, r0, 0
cmp r7, 0
beq _08011DE8
adds r0, r6, 0
adds r1, r5, 0
mov r2, r8
- bl sub_8011D40
+ bl ReadSaveSector
adds r7, r0, 0
b _08011DF0
.align 2, 0
@@ -491,7 +391,7 @@ _08011F98: .4byte 0x00000444
thumb_func_start sub_8011F9C
sub_8011F9C:
push {lr}
- bl sub_8011D40
+ bl ReadSaveSector
pop {r1}
bx r1
thumb_func_end sub_8011F9C
@@ -511,7 +411,7 @@ sub_8011FA8:
mov r0, sp
adds r1, r5, 0
adds r2, r4, 0
- bl sub_8011D40
+ bl ReadSaveSector
adds r2, r0, 0
cmp r2, 0
bne _08011FD8
@@ -554,7 +454,7 @@ sub_8011FF8:
mov r0, sp
adds r1, r5, 0
adds r2, r4, 0
- bl sub_8011D40
+ bl ReadSaveSector
cmp r0, 0
bne _08012028
ldr r1, [r5, 0x14]
@@ -722,12 +622,12 @@ _080120E8:
adds r0, r7, 0
adds r1, r6, 0
adds r2, r4, 0
- bl sub_8011CD8
+ bl WriteSaveSector
adds r5, r0, 0
adds r0, r7, 0
adds r1, r6, 0
adds r2, r4, 0
- bl sub_8011CD8
+ bl WriteSaveSector
adds r4, r0, 0
adds r0, r6, 0
bl MemoryFree
@@ -760,7 +660,7 @@ _080121CE:
thumb_func_start sub_80121D4
sub_80121D4:
push {lr}
- bl sub_8011CD8
+ bl WriteSaveSector
pop {r1}
bx r1
thumb_func_end sub_80121D4
@@ -796,7 +696,7 @@ sub_80121E0:
mov r0, sp
adds r1, r4, 0
adds r2, r6, 0
- bl sub_8011CD8
+ bl WriteSaveSector
adds r5, r0, 0
adds r0, r4, 0
bl MemoryFree
@@ -1792,22 +1692,4 @@ _080129F2:
bx r1
thumb_func_end sub_80128B0
- thumb_func_start sub_80129FC
-sub_80129FC:
- push {r4,lr}
- ldr r4, _08012A14
- ldr r0, [r4]
- cmp r0, 0
- beq _08012A0E
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08012A0E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08012A14: .4byte gUnknown_203B194
- thumb_func_end sub_80129FC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/sprite.s b/asm/sprite.s
index 5081f37..284526c 100644
--- a/asm/sprite.s
+++ b/asm/sprite.s
@@ -5,19 +5,8 @@
.text
- thumb_func_start InitSprites
-InitSprites:
- push {lr}
- movs r0, 0x1
- bl sub_8004D8C
- movs r0, 0
- bl SetSavingIconCoords
- pop {r0}
- bx r0
- thumb_func_end InitSprites
-
- thumb_func_start sub_8004D8C
-sub_8004D8C:
+ thumb_func_start ResetSprites
+ResetSprites:
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -131,8 +120,8 @@ _08004E50:
pop {r0}
bx r0
.align 2, 0
-_08004E68: .4byte gUnknown_20266A8
-_08004E6C: .4byte gUnknown_2026E30
+_08004E68: .4byte gSpriteCount
+_08004E6C: .4byte gCharMemCursor
_08004E70: .4byte 0x06010000
_08004E74: .4byte gUnknown_203B074
_08004E78: .4byte gUnknown_20266B0
@@ -140,7 +129,7 @@ _08004E7C: .4byte gUnknown_20256A0
_08004E80: .4byte gUnknown_20262A8
_08004E84: .4byte gUnknown_2025EA8
_08004E88: .4byte 0x00000804
- thumb_func_end sub_8004D8C
+ thumb_func_end ResetSprites
thumb_func_start sub_8004E8C
sub_8004E8C:
@@ -241,7 +230,7 @@ _08004F20:
strh r0, [r1, 0x2]
b _08004F86
.align 2, 0
-_08004F40: .4byte gUnknown_20266A8
+_08004F40: .4byte gSpriteCount
_08004F44: .4byte 0x0000fcff
_08004F48: .4byte 0x0000f1ff
_08004F4C: .4byte 0x000003ff
@@ -459,7 +448,7 @@ _080050D8:
strh r0, [r2, 0x2]
b _08005128
.align 2, 0
-_080050F4: .4byte gUnknown_20266A8
+_080050F4: .4byte gSpriteCount
_080050F8: .4byte gUnknown_20262A8
_080050FC:
ldrh r1, [r6]
@@ -524,7 +513,7 @@ _08005168:
bx r0
.align 2, 0
_08005174: .4byte gUnknown_2025EA8
-_08005178: .4byte gUnknown_20266A8
+_08005178: .4byte gSpriteCount
_0800517C: .4byte gUnknown_20256A0
thumb_func_end AddSprite
@@ -739,8 +728,8 @@ _080052F2:
bx r0
.align 2, 0
_080052F8: .4byte gUnknown_203B074
-_080052FC: .4byte gUnknown_2026E30
-_08005300: .4byte gUnknown_2026E30
+_080052FC: .4byte gCharMemCursor
+_08005300: .4byte gCharMemCursor
thumb_func_end sub_80052BC
thumb_func_start sub_8005304
@@ -801,7 +790,7 @@ sub_800533C:
str r0, [r1]
b _0800538E
.align 2, 0
-_08005368: .4byte gUnknown_2026E30
+_08005368: .4byte gCharMemCursor
_0800536C: .4byte 0x06010000
_08005370:
cmp r6, 0