mirror of https://github.com/zeldaret/tmc.git
3027 lines
51 KiB
ArmAsm
3027 lines
51 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start MidiKeyToFreq
|
|
MidiKeyToFreq: @ 0x080AFE9C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov ip, r0
|
|
lsls r1, r1, #0x18
|
|
lsrs r6, r1, #0x18
|
|
lsls r7, r2, #0x18
|
|
cmp r6, #0xb2
|
|
bls _080AFEB0
|
|
movs r6, #0xb2
|
|
movs r7, #0xff
|
|
lsls r7, r7, #0x18
|
|
_080AFEB0:
|
|
ldr r3, _080AFEF8 @ =gUnk_089FC754
|
|
adds r0, r6, r3
|
|
ldrb r5, [r0]
|
|
ldr r4, _080AFEFC @ =gUnk_089FC808
|
|
movs r2, #0xf
|
|
adds r0, r5, #0
|
|
ands r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
lsrs r1, r5, #4
|
|
ldr r5, [r0]
|
|
lsrs r5, r1
|
|
adds r0, r6, #1
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0]
|
|
adds r0, r1, #0
|
|
ands r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
lsrs r1, r1, #4
|
|
ldr r0, [r0]
|
|
lsrs r0, r1
|
|
mov r1, ip
|
|
ldr r4, [r1, #4]
|
|
subs r0, r0, r5
|
|
adds r1, r7, #0
|
|
bl umul3232H32
|
|
adds r1, r0, #0
|
|
adds r1, r5, r1
|
|
adds r0, r4, #0
|
|
bl umul3232H32
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080AFEF8: .4byte gUnk_089FC754
|
|
_080AFEFC: .4byte gUnk_089FC808
|
|
|
|
thumb_func_start nullsub_543
|
|
nullsub_543: @ 0x080AFF00
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start MPlayContinue
|
|
MPlayContinue: @ 0x080AFF04
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldr r3, [r2, #0x34]
|
|
ldr r0, _080AFF1C @ =0x68736D53
|
|
cmp r3, r0
|
|
bne _080AFF18
|
|
ldr r0, [r2, #4]
|
|
ldr r1, _080AFF20 @ =0x7FFFFFFF
|
|
ands r0, r1
|
|
str r0, [r2, #4]
|
|
_080AFF18:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AFF1C: .4byte 0x68736D53
|
|
_080AFF20: .4byte 0x7FFFFFFF
|
|
|
|
thumb_func_start MPlayFadeOut
|
|
MPlayFadeOut: @ 0x080AFF24
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
ldr r3, [r2, #0x34]
|
|
ldr r0, _080AFF44 @ =0x68736D53
|
|
cmp r3, r0
|
|
bne _080AFF3E
|
|
strh r1, [r2, #0x26]
|
|
strh r1, [r2, #0x24]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r2, #0x28]
|
|
_080AFF3E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AFF44: .4byte 0x68736D53
|
|
|
|
thumb_func_start m4aSoundInit
|
|
m4aSoundInit: @ 0x080AFF48
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _080AFF9C @ =SoundMainRAM
|
|
movs r1, #2
|
|
rsbs r1, r1, #0
|
|
ands r0, r1
|
|
ldr r1, _080AFFA0 @ =gUnk_0300404C
|
|
ldr r2, _080AFFA4 @ =0x040000E0
|
|
bl CpuSet
|
|
ldr r0, _080AFFA8 @ =gUnk_030043D0
|
|
bl SoundInit
|
|
ldr r0, _080AFFAC @ =gUnk_03004DE0
|
|
bl MPlayExtender
|
|
ldr r0, _080AFFB0 @ =0x0095F800
|
|
bl m4aSoundMode
|
|
ldr r0, _080AFFB4 @ =0x00000020
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _080AFF96
|
|
ldr r5, _080AFFB8 @ =gUnk_08A11C3C
|
|
adds r6, r0, #0
|
|
_080AFF7A:
|
|
ldr r4, [r5]
|
|
ldr r1, [r5, #4]
|
|
ldrb r2, [r5, #8]
|
|
adds r0, r4, #0
|
|
bl MPlayOpen
|
|
ldrh r0, [r5, #0xa]
|
|
strb r0, [r4, #0xb]
|
|
ldr r0, _080AFFBC @ =gUnk_030055E0
|
|
str r0, [r4, #0x18]
|
|
adds r5, #0xc
|
|
subs r6, #1
|
|
cmp r6, #0
|
|
bne _080AFF7A
|
|
_080AFF96:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AFF9C: .4byte SoundMainRAM
|
|
_080AFFA0: .4byte gUnk_0300404C
|
|
_080AFFA4: .4byte 0x040000E0
|
|
_080AFFA8: .4byte gUnk_030043D0
|
|
_080AFFAC: .4byte gUnk_03004DE0
|
|
_080AFFB0: .4byte 0x0095F800
|
|
_080AFFB4: .4byte 0x00000020
|
|
_080AFFB8: .4byte gUnk_08A11C3C
|
|
_080AFFBC: .4byte gUnk_030055E0
|
|
|
|
thumb_func_start m4aSoundMain
|
|
m4aSoundMain: @ 0x080AFFC0
|
|
push {lr}
|
|
bl SoundMain
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start m4aSongNumStart
|
|
m4aSongNumStart: @ 0x080AFFCC
|
|
push {lr}
|
|
lsls r0, r0, #0x10
|
|
ldr r3, _080AFFF0 @ =gUnk_08A11C3C
|
|
ldr r1, _080AFFF4 @ =gUnk_08A11DBC
|
|
lsrs r0, r0, #0xd
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r3
|
|
ldr r2, [r1]
|
|
ldr r1, [r0]
|
|
adds r0, r2, #0
|
|
bl MPlayStart
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AFFF0: .4byte gUnk_08A11C3C
|
|
_080AFFF4: .4byte gUnk_08A11DBC
|
|
|
|
thumb_func_start m4aSongNumStartOrChange
|
|
m4aSongNumStartOrChange: @ 0x080AFFF8
|
|
push {lr}
|
|
lsls r0, r0, #0x10
|
|
ldr r3, _080B0024 @ =gUnk_08A11C3C
|
|
ldr r1, _080B0028 @ =gUnk_08A11DBC
|
|
lsrs r0, r0, #0xd
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r3
|
|
ldr r1, [r1]
|
|
ldr r3, [r1]
|
|
ldr r2, [r0]
|
|
cmp r3, r2
|
|
beq _080B002C
|
|
adds r0, r1, #0
|
|
adds r1, r2, #0
|
|
bl MPlayStart
|
|
b _080B0040
|
|
.align 2, 0
|
|
_080B0024: .4byte gUnk_08A11C3C
|
|
_080B0028: .4byte gUnk_08A11DBC
|
|
_080B002C:
|
|
ldr r2, [r1, #4]
|
|
ldrh r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _080B0038
|
|
cmp r2, #0
|
|
bge _080B0040
|
|
_080B0038:
|
|
adds r0, r1, #0
|
|
adds r1, r3, #0
|
|
bl MPlayStart
|
|
_080B0040:
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start m4aSongNumStartOrContinue
|
|
m4aSongNumStartOrContinue: @ 0x080B0044
|
|
push {lr}
|
|
lsls r0, r0, #0x10
|
|
ldr r3, _080B0070 @ =gUnk_08A11C3C
|
|
ldr r1, _080B0074 @ =gUnk_08A11DBC
|
|
lsrs r0, r0, #0xd
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r3
|
|
ldr r1, [r1]
|
|
ldr r3, [r1]
|
|
ldr r2, [r0]
|
|
cmp r3, r2
|
|
beq _080B0078
|
|
adds r0, r1, #0
|
|
adds r1, r2, #0
|
|
bl MPlayStart
|
|
b _080B0094
|
|
.align 2, 0
|
|
_080B0070: .4byte gUnk_08A11C3C
|
|
_080B0074: .4byte gUnk_08A11DBC
|
|
_080B0078:
|
|
ldr r2, [r1, #4]
|
|
ldrh r0, [r1, #4]
|
|
cmp r0, #0
|
|
bne _080B008A
|
|
adds r0, r1, #0
|
|
adds r1, r3, #0
|
|
bl MPlayStart
|
|
b _080B0094
|
|
_080B008A:
|
|
cmp r2, #0
|
|
bge _080B0094
|
|
adds r0, r1, #0
|
|
bl MPlayContinue
|
|
_080B0094:
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start m4aSongNumStop
|
|
m4aSongNumStop: @ 0x080B0098
|
|
push {lr}
|
|
lsls r0, r0, #0x10
|
|
ldr r3, _080B00C4 @ =gUnk_08A11C3C
|
|
ldr r1, _080B00C8 @ =gUnk_08A11DBC
|
|
lsrs r0, r0, #0xd
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r3
|
|
ldr r2, [r1]
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
bne _080B00BE
|
|
adds r0, r2, #0
|
|
bl MPlayStop
|
|
_080B00BE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B00C4: .4byte gUnk_08A11C3C
|
|
_080B00C8: .4byte gUnk_08A11DBC
|
|
|
|
thumb_func_start m4aSongNumContinue
|
|
m4aSongNumContinue: @ 0x080B00CC
|
|
push {lr}
|
|
lsls r0, r0, #0x10
|
|
ldr r3, _080B00F8 @ =gUnk_08A11C3C
|
|
ldr r1, _080B00FC @ =gUnk_08A11DBC
|
|
lsrs r0, r0, #0xd
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r3
|
|
ldr r2, [r1]
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
bne _080B00F2
|
|
adds r0, r2, #0
|
|
bl MPlayContinue
|
|
_080B00F2:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B00F8: .4byte gUnk_08A11C3C
|
|
_080B00FC: .4byte gUnk_08A11DBC
|
|
|
|
thumb_func_start m4aMPlayAllStop
|
|
m4aMPlayAllStop: @ 0x080B0100
|
|
push {r4, r5, lr}
|
|
ldr r0, _080B0124 @ =0x00000020
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _080B011E
|
|
ldr r5, _080B0128 @ =gUnk_08A11C3C
|
|
adds r4, r0, #0
|
|
_080B0110:
|
|
ldr r0, [r5]
|
|
bl MPlayStop
|
|
adds r5, #0xc
|
|
subs r4, #1
|
|
cmp r4, #0
|
|
bne _080B0110
|
|
_080B011E:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0124: .4byte 0x00000020
|
|
_080B0128: .4byte gUnk_08A11C3C
|
|
|
|
thumb_func_start m4aMPlayContinue
|
|
m4aMPlayContinue: @ 0x080B012C
|
|
push {lr}
|
|
bl MPlayContinue
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start m4aMPlayAllContinue
|
|
m4aMPlayAllContinue: @ 0x080B0138
|
|
push {r4, r5, lr}
|
|
ldr r0, _080B015C @ =0x00000020
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _080B0156
|
|
ldr r5, _080B0160 @ =gUnk_08A11C3C
|
|
adds r4, r0, #0
|
|
_080B0148:
|
|
ldr r0, [r5]
|
|
bl MPlayContinue
|
|
adds r5, #0xc
|
|
subs r4, #1
|
|
cmp r4, #0
|
|
bne _080B0148
|
|
_080B0156:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B015C: .4byte 0x00000020
|
|
_080B0160: .4byte gUnk_08A11C3C
|
|
|
|
thumb_func_start m4aMPlayFadeOut
|
|
m4aMPlayFadeOut: @ 0x080B0164
|
|
push {lr}
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
bl MPlayFadeOut
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start m4aMPlayFadeOutTemporarily
|
|
m4aMPlayFadeOutTemporarily: @ 0x080B0174
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
ldr r3, [r2, #0x34]
|
|
ldr r0, _080B0190 @ =0x68736D53
|
|
cmp r3, r0
|
|
bne _080B018C
|
|
strh r1, [r2, #0x26]
|
|
strh r1, [r2, #0x24]
|
|
ldr r0, _080B0194 @ =0x00000101
|
|
strh r0, [r2, #0x28]
|
|
_080B018C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0190: .4byte 0x68736D53
|
|
_080B0194: .4byte 0x00000101
|
|
|
|
thumb_func_start m4aMPlayFadeIn
|
|
m4aMPlayFadeIn: @ 0x080B0198
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
ldr r3, [r2, #0x34]
|
|
ldr r0, _080B01BC @ =0x68736D53
|
|
cmp r3, r0
|
|
bne _080B01B8
|
|
strh r1, [r2, #0x26]
|
|
strh r1, [r2, #0x24]
|
|
movs r0, #2
|
|
strh r0, [r2, #0x28]
|
|
ldr r0, [r2, #4]
|
|
ldr r1, _080B01C0 @ =0x7FFFFFFF
|
|
ands r0, r1
|
|
str r0, [r2, #4]
|
|
_080B01B8:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B01BC: .4byte 0x68736D53
|
|
_080B01C0: .4byte 0x7FFFFFFF
|
|
|
|
thumb_func_start m4aMPlayImmInit
|
|
m4aMPlayImmInit: @ 0x080B01C4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #4
|
|
adds r7, r0, #0
|
|
ldr r1, [r7, #0x34]
|
|
ldr r0, _080B0228 @ =0x68736D53
|
|
cmp r1, r0
|
|
bne _080B021E
|
|
adds r0, r1, #1
|
|
str r0, [r7, #0x34]
|
|
ldrb r5, [r7, #8]
|
|
ldr r4, [r7, #0x2c]
|
|
cmp r5, #0
|
|
ble _080B021A
|
|
movs r2, #0x80
|
|
_080B01E0:
|
|
ldrb r1, [r4]
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B0212
|
|
movs r6, #0x40
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B0212
|
|
adds r0, r4, #0
|
|
str r2, [sp]
|
|
bl Clear64byte
|
|
ldr r2, [sp]
|
|
strb r2, [r4]
|
|
movs r0, #2
|
|
strb r0, [r4, #0xf]
|
|
strb r6, [r4, #0x13]
|
|
movs r0, #0x16
|
|
strb r0, [r4, #0x19]
|
|
adds r1, r4, #0
|
|
adds r1, #0x24
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
_080B0212:
|
|
subs r5, #1
|
|
adds r4, #0x50
|
|
cmp r5, #0
|
|
bgt _080B01E0
|
|
_080B021A:
|
|
ldr r0, _080B0228 @ =0x68736D53
|
|
str r0, [r7, #0x34]
|
|
_080B021E:
|
|
add sp, #4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0228: .4byte 0x68736D53
|
|
|
|
thumb_func_start MPlayExtender
|
|
MPlayExtender: @ 0x080B022C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
adds r5, r0, #0
|
|
ldr r1, _080B02F4 @ =0x04000084
|
|
movs r0, #0x8f
|
|
strh r0, [r1]
|
|
ldr r3, _080B02F8 @ =0x04000080
|
|
movs r2, #0
|
|
strh r2, [r3]
|
|
ldr r0, _080B02FC @ =0x04000063
|
|
movs r1, #8
|
|
strb r1, [r0]
|
|
adds r0, #6
|
|
strb r1, [r0]
|
|
adds r0, #0x10
|
|
strb r1, [r0]
|
|
subs r0, #0x14
|
|
movs r1, #0x80
|
|
strb r1, [r0]
|
|
adds r0, #8
|
|
strb r1, [r0]
|
|
adds r0, #0x10
|
|
strb r1, [r0]
|
|
subs r0, #0xd
|
|
strb r2, [r0]
|
|
movs r0, #0x77
|
|
strb r0, [r3]
|
|
ldr r0, _080B0300 @ =0x03007FF0
|
|
ldr r4, [r0]
|
|
ldr r6, [r4]
|
|
ldr r0, _080B0304 @ =0x68736D53
|
|
cmp r6, r0
|
|
bne _080B02EC
|
|
adds r0, r6, #1
|
|
str r0, [r4]
|
|
ldr r1, _080B0308 @ =gUnk_03004D50
|
|
ldr r0, _080B030C @ =ply_memacc
|
|
str r0, [r1, #0x20]
|
|
ldr r0, _080B0310 @ =ply_lfos
|
|
str r0, [r1, #0x44]
|
|
ldr r0, _080B0314 @ =ply_mod
|
|
str r0, [r1, #0x4c]
|
|
ldr r0, _080B0318 @ =ply_xcmd
|
|
str r0, [r1, #0x70]
|
|
ldr r0, _080B031C @ =ply_endtie
|
|
str r0, [r1, #0x74]
|
|
ldr r0, _080B0320 @ =SampleFreqSet
|
|
str r0, [r1, #0x78]
|
|
ldr r0, _080B0324 @ =TrackStop
|
|
str r0, [r1, #0x7c]
|
|
adds r2, r1, #0
|
|
adds r2, #0x80
|
|
ldr r0, _080B0328 @ =FadeOutBody
|
|
str r0, [r2]
|
|
adds r1, #0x84
|
|
ldr r0, _080B032C @ =TrkVolPitSet
|
|
str r0, [r1]
|
|
str r5, [r4, #0x1c]
|
|
ldr r0, _080B0330 @ =CgbSound
|
|
str r0, [r4, #0x28]
|
|
ldr r0, _080B0334 @ =CgbOscOff
|
|
str r0, [r4, #0x2c]
|
|
ldr r0, _080B0338 @ =MidiKeyToCgbFreq
|
|
str r0, [r4, #0x30]
|
|
ldr r0, _080B033C @ =0x00000000
|
|
movs r1, #0
|
|
strb r0, [r4, #0xc]
|
|
str r1, [sp]
|
|
ldr r2, _080B0340 @ =0x05000040
|
|
mov r0, sp
|
|
adds r1, r5, #0
|
|
bl CpuSet
|
|
movs r0, #1
|
|
strb r0, [r5, #1]
|
|
movs r0, #0x11
|
|
strb r0, [r5, #0x1c]
|
|
adds r1, r5, #0
|
|
adds r1, #0x41
|
|
movs r0, #2
|
|
strb r0, [r1]
|
|
adds r1, #0x1b
|
|
movs r0, #0x22
|
|
strb r0, [r1]
|
|
adds r1, #0x25
|
|
movs r0, #3
|
|
strb r0, [r1]
|
|
adds r1, #0x1b
|
|
movs r0, #0x44
|
|
strb r0, [r1]
|
|
adds r1, #0x24
|
|
movs r0, #4
|
|
strb r0, [r1, #1]
|
|
movs r0, #0x88
|
|
strb r0, [r1, #0x1c]
|
|
str r6, [r4]
|
|
_080B02EC:
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B02F4: .4byte 0x04000084
|
|
_080B02F8: .4byte 0x04000080
|
|
_080B02FC: .4byte 0x04000063
|
|
_080B0300: .4byte 0x03007FF0
|
|
_080B0304: .4byte 0x68736D53
|
|
_080B0308: .4byte gUnk_03004D50
|
|
_080B030C: .4byte ply_memacc
|
|
_080B0310: .4byte ply_lfos
|
|
_080B0314: .4byte ply_mod
|
|
_080B0318: .4byte ply_xcmd
|
|
_080B031C: .4byte ply_endtie
|
|
_080B0320: .4byte SampleFreqSet
|
|
_080B0324: .4byte TrackStop
|
|
_080B0328: .4byte FadeOutBody
|
|
_080B032C: .4byte TrkVolPitSet
|
|
_080B0330: .4byte CgbSound
|
|
_080B0334: .4byte CgbOscOff
|
|
_080B0338: .4byte MidiKeyToCgbFreq
|
|
_080B033C: .4byte 0x00000000
|
|
_080B0340: .4byte 0x05000040
|
|
|
|
thumb_func_start MusicPlayerJumpTableCopy
|
|
MusicPlayerJumpTableCopy: @ 0x080B0344
|
|
svc #0x2a
|
|
bx lr
|
|
|
|
thumb_func_start ClearChain
|
|
ClearChain: @ 0x080B0348
|
|
push {lr}
|
|
ldr r1, _080B0358 @ =gUnk_03004DD8
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0358: .4byte gUnk_03004DD8
|
|
|
|
thumb_func_start Clear64byte
|
|
Clear64byte: @ 0x080B035C
|
|
push {lr}
|
|
ldr r1, _080B036C @ =gUnk_03004DDC
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B036C: .4byte gUnk_03004DDC
|
|
|
|
thumb_func_start SoundInit
|
|
SoundInit: @ 0x080B0370
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r5, r0, #0
|
|
movs r3, #0
|
|
str r3, [r5]
|
|
ldr r2, _080B0408 @ =0x040000C4
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B038C
|
|
ldr r0, _080B040C @ =0x84400004
|
|
str r0, [r2]
|
|
_080B038C:
|
|
ldr r1, _080B0410 @ =0x040000C6
|
|
movs r2, #0x80
|
|
lsls r2, r2, #3
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
subs r1, #0x42
|
|
movs r0, #0x8f
|
|
strh r0, [r1]
|
|
subs r1, #2
|
|
ldr r2, _080B0414 @ =0x00000B0E
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
ldr r2, _080B0418 @ =0x04000089
|
|
ldrb r1, [r2]
|
|
movs r0, #0x3f
|
|
ands r0, r1
|
|
movs r1, #0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _080B041C @ =0x040000BC
|
|
movs r2, #0xd4
|
|
lsls r2, r2, #2
|
|
adds r0, r5, r2
|
|
str r0, [r1]
|
|
adds r1, #4
|
|
ldr r0, _080B0420 @ =0x040000A0
|
|
str r0, [r1]
|
|
ldr r0, _080B0424 @ =0x03007FF0
|
|
str r5, [r0]
|
|
str r3, [sp]
|
|
ldr r2, _080B0428 @ =0x05000260
|
|
mov r0, sp
|
|
adds r1, r5, #0
|
|
bl CpuSet
|
|
movs r0, #8
|
|
strb r0, [r5, #6]
|
|
movs r0, #0xf
|
|
strb r0, [r5, #7]
|
|
ldr r0, _080B042C @ =ply_note
|
|
str r0, [r5, #0x38]
|
|
ldr r0, _080B0430 @ =nullsub_544
|
|
str r0, [r5, #0x28]
|
|
str r0, [r5, #0x2c]
|
|
str r0, [r5, #0x30]
|
|
str r0, [r5, #0x3c]
|
|
ldr r4, _080B0434 @ =gUnk_03004D50
|
|
adds r0, r4, #0
|
|
bl MPlayJumpTableCopy
|
|
str r4, [r5, #0x34]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xb
|
|
bl SampleFreqSet
|
|
ldr r0, _080B0438 @ =0x68736D53
|
|
str r0, [r5]
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0408: .4byte 0x040000C4
|
|
_080B040C: .4byte 0x84400004
|
|
_080B0410: .4byte 0x040000C6
|
|
_080B0414: .4byte 0x00000B0E
|
|
_080B0418: .4byte 0x04000089
|
|
_080B041C: .4byte 0x040000BC
|
|
_080B0420: .4byte 0x040000A0
|
|
_080B0424: .4byte 0x03007FF0
|
|
_080B0428: .4byte 0x05000260
|
|
_080B042C: .4byte ply_note
|
|
_080B0430: .4byte nullsub_544
|
|
_080B0434: .4byte gUnk_03004D50
|
|
_080B0438: .4byte 0x68736D53
|
|
|
|
thumb_func_start SampleFreqSet
|
|
SampleFreqSet: @ 0x080B043C
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
bl m4aSoundVSyncOff
|
|
ldr r0, _080B0494 @ =0x03007FF0
|
|
ldr r5, [r0]
|
|
movs r0, #0xf0
|
|
lsls r0, r0, #0xc
|
|
ands r0, r4
|
|
lsrs r4, r0, #0x10
|
|
strb r4, [r5, #8]
|
|
ldr r1, _080B0498 @ =gUnk_089FC838
|
|
subs r0, r4, #1
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r4, [r0]
|
|
str r4, [r5, #0x10]
|
|
movs r0, #0xc6
|
|
lsls r0, r0, #3
|
|
adds r1, r4, #0
|
|
bl __divsi3
|
|
strb r0, [r5, #0xb]
|
|
ldr r0, _080B049C @ =0x00091D1B
|
|
muls r0, r4, r0
|
|
ldr r1, _080B04A0 @ =0x00001388
|
|
adds r0, r0, r1
|
|
ldr r1, _080B04A4 @ =0x00002710
|
|
bl __divsi3
|
|
adds r1, r0, #0
|
|
str r1, [r5, #0x14]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x11
|
|
bl __divsi3
|
|
adds r0, #1
|
|
asrs r0, r0, #1
|
|
str r0, [r5, #0x18]
|
|
bl m4aSoundVSyncOn
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0494: .4byte 0x03007FF0
|
|
_080B0498: .4byte gUnk_089FC838
|
|
_080B049C: .4byte 0x00091D1B
|
|
_080B04A0: .4byte 0x00001388
|
|
_080B04A4: .4byte 0x00002710
|
|
|
|
thumb_func_start m4aSoundMode
|
|
m4aSoundMode: @ 0x080B04A8
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldr r0, _080B0530 @ =0x03007FF0
|
|
ldr r4, [r0]
|
|
ldr r1, [r4]
|
|
ldr r0, _080B0534 @ =0x68736D53
|
|
cmp r1, r0
|
|
bne _080B052A
|
|
adds r0, r1, #1
|
|
str r0, [r4]
|
|
movs r3, #0xff
|
|
ands r3, r5
|
|
cmp r3, #0
|
|
beq _080B04CA
|
|
movs r0, #0x7f
|
|
ands r3, r0
|
|
strb r3, [r4, #5]
|
|
_080B04CA:
|
|
movs r3, #0xf0
|
|
lsls r3, r3, #4
|
|
ands r3, r5
|
|
cmp r3, #0
|
|
beq _080B04EA
|
|
lsrs r0, r3, #8
|
|
strb r0, [r4, #6]
|
|
movs r3, #0xc
|
|
adds r0, r4, #0
|
|
adds r0, #0x50
|
|
movs r1, #0
|
|
_080B04E0:
|
|
strb r1, [r0]
|
|
subs r3, #1
|
|
adds r0, #0x40
|
|
cmp r3, #0
|
|
bne _080B04E0
|
|
_080B04EA:
|
|
movs r3, #0xf0
|
|
lsls r3, r3, #8
|
|
ands r3, r5
|
|
cmp r3, #0
|
|
beq _080B04F8
|
|
lsrs r0, r3, #0xc
|
|
strb r0, [r4, #7]
|
|
_080B04F8:
|
|
movs r3, #0xb0
|
|
lsls r3, r3, #0x10
|
|
ands r3, r5
|
|
cmp r3, #0
|
|
beq _080B0516
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #0xe
|
|
ands r0, r3
|
|
lsrs r3, r0, #0xe
|
|
ldr r2, _080B0538 @ =0x04000089
|
|
ldrb r1, [r2]
|
|
movs r0, #0x3f
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
_080B0516:
|
|
movs r3, #0xf0
|
|
lsls r3, r3, #0xc
|
|
ands r3, r5
|
|
cmp r3, #0
|
|
beq _080B0526
|
|
adds r0, r3, #0
|
|
bl SampleFreqSet
|
|
_080B0526:
|
|
ldr r0, _080B0534 @ =0x68736D53
|
|
str r0, [r4]
|
|
_080B052A:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0530: .4byte 0x03007FF0
|
|
_080B0534: .4byte 0x68736D53
|
|
_080B0538: .4byte 0x04000089
|
|
|
|
thumb_func_start SoundClear
|
|
SoundClear: @ 0x080B053C
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r0, _080B0588 @ =0x03007FF0
|
|
ldr r6, [r0]
|
|
ldr r1, [r6]
|
|
ldr r0, _080B058C @ =0x68736D53
|
|
cmp r1, r0
|
|
bne _080B0582
|
|
adds r0, r1, #1
|
|
str r0, [r6]
|
|
movs r5, #0xc
|
|
adds r4, r6, #0
|
|
adds r4, #0x50
|
|
movs r0, #0
|
|
_080B0556:
|
|
strb r0, [r4]
|
|
subs r5, #1
|
|
adds r4, #0x40
|
|
cmp r5, #0
|
|
bgt _080B0556
|
|
ldr r4, [r6, #0x1c]
|
|
cmp r4, #0
|
|
beq _080B057E
|
|
movs r5, #1
|
|
movs r7, #0
|
|
_080B056A:
|
|
lsls r0, r5, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r1, [r6, #0x2c]
|
|
bl _call_via_r1
|
|
strb r7, [r4]
|
|
adds r5, #1
|
|
adds r4, #0x40
|
|
cmp r5, #4
|
|
ble _080B056A
|
|
_080B057E:
|
|
ldr r0, _080B058C @ =0x68736D53
|
|
str r0, [r6]
|
|
_080B0582:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0588: .4byte 0x03007FF0
|
|
_080B058C: .4byte 0x68736D53
|
|
|
|
thumb_func_start m4aSoundVSyncOff
|
|
m4aSoundVSyncOff: @ 0x080B0590
|
|
push {lr}
|
|
sub sp, #4
|
|
ldr r0, _080B05E4 @ =0x03007FF0
|
|
ldr r2, [r0]
|
|
ldr r1, [r2]
|
|
ldr r3, _080B05E8 @ =0x978C92AD
|
|
adds r0, r1, r3
|
|
cmp r0, #1
|
|
bhi _080B05DC
|
|
adds r0, r1, #0
|
|
adds r0, #0xa
|
|
str r0, [r2]
|
|
ldr r1, _080B05EC @ =0x04000102
|
|
movs r0, #0
|
|
strh r0, [r1]
|
|
ldr r3, _080B05F0 @ =0x040000C4
|
|
ldr r0, [r3]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B05C0
|
|
ldr r0, _080B05F4 @ =0x84400004
|
|
str r0, [r3]
|
|
_080B05C0:
|
|
ldr r1, _080B05F8 @ =0x040000C6
|
|
movs r3, #0x80
|
|
lsls r3, r3, #3
|
|
adds r0, r3, #0
|
|
strh r0, [r1]
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0xd4
|
|
lsls r0, r0, #2
|
|
adds r1, r2, r0
|
|
ldr r2, _080B05FC @ =0x0500018C
|
|
mov r0, sp
|
|
bl CpuSet
|
|
_080B05DC:
|
|
add sp, #4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B05E4: .4byte 0x03007FF0
|
|
_080B05E8: .4byte 0x978C92AD
|
|
_080B05EC: .4byte 0x04000102
|
|
_080B05F0: .4byte 0x040000C4
|
|
_080B05F4: .4byte 0x84400004
|
|
_080B05F8: .4byte 0x040000C6
|
|
_080B05FC: .4byte 0x0500018C
|
|
|
|
thumb_func_start m4aSoundVSyncOn
|
|
m4aSoundVSyncOn: @ 0x080B0600
|
|
push {r4, lr}
|
|
ldr r0, _080B0658 @ =0x03007FF0
|
|
ldr r2, [r0]
|
|
ldr r3, [r2]
|
|
ldr r0, _080B065C @ =0x68736D53
|
|
cmp r3, r0
|
|
beq _080B0650
|
|
ldr r1, _080B0660 @ =0x040000C6
|
|
movs r4, #0xb6
|
|
lsls r4, r4, #8
|
|
adds r0, r4, #0
|
|
strh r0, [r1]
|
|
ldrb r0, [r2, #4]
|
|
movs r0, #0
|
|
strb r0, [r2, #4]
|
|
adds r0, r3, #0
|
|
subs r0, #0xa
|
|
str r0, [r2]
|
|
ldr r3, _080B0664 @ =0x04000006
|
|
ldrb r0, [r3]
|
|
ldr r1, [r2, #0x10]
|
|
cmp r0, #0x9f
|
|
bne _080B0636
|
|
adds r2, r3, #0
|
|
_080B0630:
|
|
ldrb r0, [r2]
|
|
cmp r0, #0x9f
|
|
beq _080B0630
|
|
_080B0636:
|
|
ldr r2, _080B0664 @ =0x04000006
|
|
_080B0638:
|
|
ldrb r0, [r2]
|
|
cmp r0, #0x9f
|
|
bne _080B0638
|
|
ldr r4, _080B0668 @ =0x04000100
|
|
ldr r0, _080B066C @ =0x00044940
|
|
bl __divsi3
|
|
rsbs r0, r0, #0
|
|
strh r0, [r4]
|
|
ldr r1, _080B0670 @ =0x04000102
|
|
movs r0, #0x80
|
|
strh r0, [r1]
|
|
_080B0650:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0658: .4byte 0x03007FF0
|
|
_080B065C: .4byte 0x68736D53
|
|
_080B0660: .4byte 0x040000C6
|
|
_080B0664: .4byte 0x04000006
|
|
_080B0668: .4byte 0x04000100
|
|
_080B066C: .4byte 0x00044940
|
|
_080B0670: .4byte 0x04000102
|
|
|
|
thumb_func_start m4aSoundVSync
|
|
m4aSoundVSync: @ 0x080B0674
|
|
push {lr}
|
|
ldr r0, _080B06C4 @ =0x03007FF0
|
|
ldr r2, [r0]
|
|
ldr r0, [r2]
|
|
ldr r1, _080B06C8 @ =0x978C92AD
|
|
adds r0, r0, r1
|
|
cmp r0, #1
|
|
bhi _080B06BE
|
|
ldrb r0, [r2, #4]
|
|
subs r0, #1
|
|
ldrb r1, [r2, #4]
|
|
strb r0, [r2, #4]
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bgt _080B06BE
|
|
ldrb r0, [r2, #0xb]
|
|
ldrb r1, [r2, #4]
|
|
strb r0, [r2, #4]
|
|
ldr r2, _080B06CC @ =0x040000C4
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B06AC
|
|
ldr r0, _080B06D0 @ =0x84400004
|
|
str r0, [r2]
|
|
_080B06AC:
|
|
ldr r0, _080B06D4 @ =0x040000C6
|
|
movs r2, #0x80
|
|
lsls r2, r2, #3
|
|
adds r1, r2, #0
|
|
strh r1, [r0]
|
|
movs r2, #0xb6
|
|
lsls r2, r2, #8
|
|
adds r1, r2, #0
|
|
strh r1, [r0]
|
|
_080B06BE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B06C4: .4byte 0x03007FF0
|
|
_080B06C8: .4byte 0x978C92AD
|
|
_080B06CC: .4byte 0x040000C4
|
|
_080B06D0: .4byte 0x84400004
|
|
_080B06D4: .4byte 0x040000C6
|
|
|
|
thumb_func_start MPlayOpen
|
|
MPlayOpen: @ 0x080B06D8
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r7, r0, #0
|
|
adds r6, r1, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r4, r2, #0x18
|
|
cmp r4, #0
|
|
beq _080B073C
|
|
cmp r4, #0x10
|
|
bls _080B06EC
|
|
movs r4, #0x10
|
|
_080B06EC:
|
|
ldr r0, _080B0744 @ =0x03007FF0
|
|
ldr r5, [r0]
|
|
ldr r1, [r5]
|
|
ldr r0, _080B0748 @ =0x68736D53
|
|
cmp r1, r0
|
|
bne _080B073C
|
|
adds r0, r1, #1
|
|
str r0, [r5]
|
|
adds r0, r7, #0
|
|
bl Clear64byte
|
|
str r6, [r7, #0x2c]
|
|
strb r4, [r7, #8]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x18
|
|
str r0, [r7, #4]
|
|
cmp r4, #0
|
|
beq _080B0720
|
|
movs r1, #0
|
|
_080B0712:
|
|
strb r1, [r6]
|
|
subs r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
adds r6, #0x50
|
|
cmp r4, #0
|
|
bne _080B0712
|
|
_080B0720:
|
|
ldr r0, [r5, #0x20]
|
|
cmp r0, #0
|
|
beq _080B0730
|
|
str r0, [r7, #0x38]
|
|
ldr r0, [r5, #0x24]
|
|
str r0, [r7, #0x3c]
|
|
movs r0, #0
|
|
str r0, [r5, #0x20]
|
|
_080B0730:
|
|
str r7, [r5, #0x24]
|
|
ldr r0, _080B074C @ =MPlayMain
|
|
str r0, [r5, #0x20]
|
|
ldr r0, _080B0748 @ =0x68736D53
|
|
str r0, [r5]
|
|
str r0, [r7, #0x34]
|
|
_080B073C:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0744: .4byte 0x03007FF0
|
|
_080B0748: .4byte 0x68736D53
|
|
_080B074C: .4byte MPlayMain
|
|
|
|
thumb_func_start MPlayStart
|
|
MPlayStart: @ 0x080B0750
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, #0
|
|
adds r7, r1, #0
|
|
ldr r1, [r5, #0x34]
|
|
ldr r0, _080B0830 @ =0x68736D53
|
|
cmp r1, r0
|
|
bne _080B0824
|
|
adds r0, r1, #1
|
|
str r0, [r5, #0x34]
|
|
ldrb r0, [r5, #0xb]
|
|
ldrb r2, [r7, #2]
|
|
cmp r0, #0
|
|
beq _080B0796
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _080B0780
|
|
ldr r0, [r5, #0x2c]
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080B078C
|
|
_080B0780:
|
|
ldr r1, [r5, #4]
|
|
ldrh r0, [r5, #4]
|
|
cmp r0, #0
|
|
beq _080B0796
|
|
cmp r1, #0
|
|
blt _080B0796
|
|
_080B078C:
|
|
ldrb r0, [r7, #2]
|
|
ldrb r1, [r5, #9]
|
|
adds r2, r0, #0
|
|
cmp r1, r2
|
|
bhi _080B0820
|
|
_080B0796:
|
|
movs r1, #0
|
|
str r1, [r5, #4]
|
|
str r7, [r5]
|
|
ldr r0, [r7, #4]
|
|
str r0, [r5, #0x30]
|
|
strb r2, [r5, #9]
|
|
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 r0, [r7]
|
|
cmp r6, r0
|
|
bge _080B07F0
|
|
ldrb r0, [r5, #8]
|
|
cmp r6, r0
|
|
bge _080B0810
|
|
mov r8, r6
|
|
_080B07C4:
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl TrackStop
|
|
movs r0, #0xc0
|
|
strb r0, [r4]
|
|
mov r0, r8
|
|
str r0, [r4, #0x20]
|
|
lsls r1, r6, #2
|
|
adds r0, r7, #0
|
|
adds r0, #8
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r4, #0x40]
|
|
adds r6, #1
|
|
adds r4, #0x50
|
|
ldrb r0, [r7]
|
|
cmp r6, r0
|
|
bge _080B07F0
|
|
ldrb r0, [r5, #8]
|
|
cmp r6, r0
|
|
blt _080B07C4
|
|
_080B07F0:
|
|
ldrb r0, [r5, #8]
|
|
cmp r6, r0
|
|
bge _080B0810
|
|
movs r0, #0
|
|
mov r8, r0
|
|
_080B07FA:
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl TrackStop
|
|
mov r0, r8
|
|
strb r0, [r4]
|
|
adds r6, #1
|
|
adds r4, #0x50
|
|
ldrb r0, [r5, #8]
|
|
cmp r6, r0
|
|
blt _080B07FA
|
|
_080B0810:
|
|
ldrb r1, [r7, #3]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B0820
|
|
ldrb r0, [r7, #3]
|
|
bl m4aSoundMode
|
|
_080B0820:
|
|
ldr r0, _080B0830 @ =0x68736D53
|
|
str r0, [r5, #0x34]
|
|
_080B0824:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0830: .4byte 0x68736D53
|
|
|
|
thumb_func_start MPlayStop
|
|
MPlayStop: @ 0x080B0834
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
ldr r1, [r6, #0x34]
|
|
ldr r0, _080B0870 @ =0x68736D53
|
|
cmp r1, r0
|
|
bne _080B086A
|
|
adds r0, r1, #1
|
|
str r0, [r6, #0x34]
|
|
ldr r0, [r6, #4]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x18
|
|
orrs r0, r1
|
|
str r0, [r6, #4]
|
|
ldrb r4, [r6, #8]
|
|
ldr r5, [r6, #0x2c]
|
|
cmp r4, #0
|
|
ble _080B0866
|
|
_080B0856:
|
|
adds r0, r6, #0
|
|
adds r1, r5, #0
|
|
bl TrackStop
|
|
subs r4, #1
|
|
adds r5, #0x50
|
|
cmp r4, #0
|
|
bgt _080B0856
|
|
_080B0866:
|
|
ldr r0, _080B0870 @ =0x68736D53
|
|
str r0, [r6, #0x34]
|
|
_080B086A:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0870: .4byte 0x68736D53
|
|
|
|
thumb_func_start FadeOutBody
|
|
FadeOutBody: @ 0x080B0874
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r6, r0, #0
|
|
ldrh r1, [r6, #0x24]
|
|
cmp r1, #0
|
|
beq _080B0936
|
|
ldrh r0, [r6, #0x26]
|
|
subs r0, #1
|
|
strh r0, [r6, #0x26]
|
|
ldr r3, _080B08B4 @ =0x0000FFFF
|
|
adds r2, r3, #0
|
|
lsls r0, r0, #0x10
|
|
lsrs r3, r0, #0x10
|
|
cmp r3, #0
|
|
bne _080B0936
|
|
strh r1, [r6, #0x26]
|
|
ldrh r1, [r6, #0x28]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B08B8
|
|
adds r0, r1, #0
|
|
adds r0, #0x10
|
|
strh r0, [r6, #0x28]
|
|
ands r0, r2
|
|
cmp r0, #0xff
|
|
bls _080B090A
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r6, #0x28]
|
|
strh r3, [r6, #0x24]
|
|
b _080B090A
|
|
.align 2, 0
|
|
_080B08B4: .4byte 0x0000FFFF
|
|
_080B08B8:
|
|
adds r0, r1, #0
|
|
subs r0, #0x10
|
|
strh r0, [r6, #0x28]
|
|
ands r0, r2
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bgt _080B090A
|
|
ldrb r5, [r6, #8]
|
|
ldr r4, [r6, #0x2c]
|
|
cmp r5, #0
|
|
ble _080B08EA
|
|
_080B08CE:
|
|
adds r0, r6, #0
|
|
adds r1, r4, #0
|
|
bl TrackStop
|
|
ldrh r0, [r6, #0x28]
|
|
movs r1, #1
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _080B08E2
|
|
strb r1, [r4]
|
|
_080B08E2:
|
|
subs r5, #1
|
|
adds r4, #0x50
|
|
cmp r5, #0
|
|
bgt _080B08CE
|
|
_080B08EA:
|
|
ldrh r1, [r6, #0x28]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B08FE
|
|
ldr r0, [r6, #4]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x18
|
|
orrs r0, r1
|
|
b _080B0902
|
|
_080B08FE:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x18
|
|
_080B0902:
|
|
str r0, [r6, #4]
|
|
movs r0, #0
|
|
strh r0, [r6, #0x24]
|
|
b _080B0936
|
|
_080B090A:
|
|
ldrb r5, [r6, #8]
|
|
ldr r4, [r6, #0x2c]
|
|
cmp r5, #0
|
|
ble _080B0936
|
|
movs r3, #0x80
|
|
movs r7, #0
|
|
movs r2, #3
|
|
_080B0918:
|
|
ldrb r1, [r4]
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B092E
|
|
ldrh r0, [r6, #0x28]
|
|
lsrs r0, r0, #2
|
|
strb r0, [r4, #0x13]
|
|
adds r0, r1, #0
|
|
orrs r0, r2
|
|
strb r0, [r4]
|
|
_080B092E:
|
|
subs r5, #1
|
|
adds r4, #0x50
|
|
cmp r5, #0
|
|
bgt _080B0918
|
|
_080B0936:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start TrkVolPitSet
|
|
TrkVolPitSet: @ 0x080B093C
|
|
push {r4, lr}
|
|
adds r2, r1, #0
|
|
ldrb r1, [r2]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B099E
|
|
ldrb r0, [r2, #0x12]
|
|
ldrb r1, [r2, #0x13]
|
|
muls r0, r1, r0
|
|
lsrs r3, r0, #5
|
|
ldrb r4, [r2, #0x18]
|
|
cmp r4, #1
|
|
bne _080B0962
|
|
movs r0, #0x16
|
|
ldrsb r0, [r2, r0]
|
|
adds r0, #0x80
|
|
muls r0, r3, r0
|
|
lsrs r3, r0, #7
|
|
_080B0962:
|
|
movs r0, #0x14
|
|
ldrsb r0, [r2, r0]
|
|
lsls r0, r0, #1
|
|
movs r1, #0x15
|
|
ldrsb r1, [r2, r1]
|
|
adds r1, r0, r1
|
|
cmp r4, #2
|
|
bne _080B0978
|
|
movs r0, #0x16
|
|
ldrsb r0, [r2, r0]
|
|
adds r1, r1, r0
|
|
_080B0978:
|
|
movs r0, #0x80
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
bge _080B0984
|
|
adds r1, r0, #0
|
|
b _080B098A
|
|
_080B0984:
|
|
cmp r1, #0x7f
|
|
ble _080B098A
|
|
movs r1, #0x7f
|
|
_080B098A:
|
|
adds r0, r1, #0
|
|
adds r0, #0x80
|
|
muls r0, r3, r0
|
|
lsrs r0, r0, #8
|
|
strb r0, [r2, #0x10]
|
|
movs r0, #0x7f
|
|
subs r0, r0, r1
|
|
muls r0, r3, r0
|
|
lsrs r0, r0, #8
|
|
strb r0, [r2, #0x11]
|
|
_080B099E:
|
|
ldrb r1, [r2]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
adds r3, r1, #0
|
|
cmp r0, #0
|
|
beq _080B09E2
|
|
movs r1, #0xe
|
|
ldrsb r1, [r2, r1]
|
|
ldrb r0, [r2, #0xf]
|
|
muls r0, r1, r0
|
|
movs r1, #0xc
|
|
ldrsb r1, [r2, r1]
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
movs r0, #0xa
|
|
ldrsb r0, [r2, r0]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
movs r0, #0xb
|
|
ldrsb r0, [r2, r0]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #0xd]
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #0x18]
|
|
cmp r0, #0
|
|
bne _080B09DC
|
|
movs r0, #0x16
|
|
ldrsb r0, [r2, r0]
|
|
lsls r0, r0, #4
|
|
adds r1, r1, r0
|
|
_080B09DC:
|
|
asrs r0, r1, #8
|
|
strb r0, [r2, #8]
|
|
strb r1, [r2, #9]
|
|
_080B09E2:
|
|
movs r0, #0xfa
|
|
ands r0, r3
|
|
strb r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start MidiKeyToCgbFreq
|
|
MidiKeyToCgbFreq: @ 0x080B09F0
|
|
push {r4, r5, r6, r7, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r5, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov ip, r2
|
|
cmp r0, #4
|
|
bne _080B0A28
|
|
cmp r5, #0x14
|
|
bhi _080B0A0C
|
|
movs r5, #0
|
|
b _080B0A1A
|
|
_080B0A0C:
|
|
adds r0, r5, #0
|
|
subs r0, #0x15
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
cmp r5, #0x3b
|
|
bls _080B0A1A
|
|
movs r5, #0x3b
|
|
_080B0A1A:
|
|
ldr r0, _080B0A24 @ =gUnk_089FC8EC
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
b _080B0A8A
|
|
.align 2, 0
|
|
_080B0A24: .4byte gUnk_089FC8EC
|
|
_080B0A28:
|
|
cmp r5, #0x23
|
|
bhi _080B0A34
|
|
movs r0, #0
|
|
mov ip, r0
|
|
movs r5, #0
|
|
b _080B0A46
|
|
_080B0A34:
|
|
adds r0, r5, #0
|
|
subs r0, #0x24
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
cmp r5, #0x82
|
|
bls _080B0A46
|
|
movs r5, #0x82
|
|
movs r1, #0xff
|
|
mov ip, r1
|
|
_080B0A46:
|
|
ldr r3, _080B0A90 @ =gUnk_089FC850
|
|
adds r0, r5, r3
|
|
ldrb r6, [r0]
|
|
ldr r4, _080B0A94 @ =gUnk_089FC8D4
|
|
movs r2, #0xf
|
|
adds r0, r6, #0
|
|
ands r0, r2
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r4
|
|
movs r7, #0
|
|
ldrsh r1, [r0, r7]
|
|
asrs r0, r6, #4
|
|
adds r6, r1, #0
|
|
asrs r6, r0
|
|
adds r0, r5, #1
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0]
|
|
adds r0, r1, #0
|
|
ands r0, r2
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r4
|
|
movs r2, #0
|
|
ldrsh r0, [r0, r2]
|
|
asrs r1, r1, #4
|
|
asrs r0, r1
|
|
subs r0, r0, r6
|
|
mov r7, ip
|
|
muls r7, r0, r7
|
|
adds r0, r7, #0
|
|
asrs r0, r0, #8
|
|
adds r0, r6, r0
|
|
movs r1, #0x80
|
|
lsls r1, r1, #4
|
|
adds r0, r0, r1
|
|
_080B0A8A:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080B0A90: .4byte gUnk_089FC850
|
|
_080B0A94: .4byte gUnk_089FC8D4
|
|
|
|
thumb_func_start CgbOscOff
|
|
CgbOscOff: @ 0x080B0A98
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
adds r1, r0, #0
|
|
cmp r0, #2
|
|
beq _080B0AC4
|
|
cmp r0, #2
|
|
bgt _080B0AAE
|
|
cmp r0, #1
|
|
beq _080B0AB4
|
|
b _080B0AD8
|
|
_080B0AAE:
|
|
cmp r1, #3
|
|
beq _080B0ACC
|
|
b _080B0AD8
|
|
_080B0AB4:
|
|
ldr r1, _080B0AC0 @ =0x04000063
|
|
movs r0, #8
|
|
strb r0, [r1]
|
|
adds r1, #2
|
|
b _080B0AE0
|
|
.align 2, 0
|
|
_080B0AC0: .4byte 0x04000063
|
|
_080B0AC4:
|
|
ldr r1, _080B0AC8 @ =0x04000069
|
|
b _080B0ADA
|
|
.align 2, 0
|
|
_080B0AC8: .4byte 0x04000069
|
|
_080B0ACC:
|
|
ldr r1, _080B0AD4 @ =0x04000070
|
|
movs r0, #0
|
|
b _080B0AE2
|
|
.align 2, 0
|
|
_080B0AD4: .4byte 0x04000070
|
|
_080B0AD8:
|
|
ldr r1, _080B0AE8 @ =0x04000079
|
|
_080B0ADA:
|
|
movs r0, #8
|
|
strb r0, [r1]
|
|
adds r1, #4
|
|
_080B0AE0:
|
|
movs r0, #0x80
|
|
_080B0AE2:
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0AE8: .4byte 0x04000079
|
|
|
|
thumb_func_start CgbModVol
|
|
CgbModVol: @ 0x080B0AEC
|
|
push {r4, lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #2]
|
|
ldrb r1, [r2, #3]
|
|
lsls r3, r0, #0x18
|
|
lsrs r4, r3, #0x18
|
|
lsls r0, r1, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r4, r1
|
|
blo _080B0B0C
|
|
lsrs r0, r3, #0x19
|
|
cmp r0, r1
|
|
blo _080B0B18
|
|
movs r0, #0xf
|
|
strb r0, [r2, #0x1b]
|
|
b _080B0B26
|
|
_080B0B0C:
|
|
lsrs r0, r0, #0x19
|
|
cmp r0, r4
|
|
blo _080B0B18
|
|
movs r0, #0xf0
|
|
strb r0, [r2, #0x1b]
|
|
b _080B0B26
|
|
_080B0B18:
|
|
movs r0, #0xff
|
|
strb r0, [r2, #0x1b]
|
|
ldrb r0, [r2, #2]
|
|
ldrb r1, [r2, #3]
|
|
adds r0, r0, r1
|
|
lsrs r0, r0, #4
|
|
b _080B0B36
|
|
_080B0B26:
|
|
ldrb r0, [r2, #2]
|
|
ldrb r1, [r2, #3]
|
|
adds r0, r0, r1
|
|
lsrs r0, r0, #4
|
|
strb r0, [r2, #0xa]
|
|
cmp r0, #0xf
|
|
bls _080B0B38
|
|
movs r0, #0xf
|
|
_080B0B36:
|
|
strb r0, [r2, #0xa]
|
|
_080B0B38:
|
|
ldrb r1, [r2, #0xa]
|
|
ldrb r0, [r2, #6]
|
|
muls r0, r1, r0
|
|
adds r0, #0xf
|
|
asrs r0, r0, #4
|
|
strb r0, [r2, #0x19]
|
|
ldrb r1, [r2, #0x1b]
|
|
ldrb r0, [r2, #0x1c]
|
|
ands r0, r1
|
|
strb r0, [r2, #0x1b]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start CgbSound
|
|
CgbSound: @ 0x080B0B54
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x24
|
|
ldr r0, _080B0B74 @ =0x03007FF0
|
|
ldr r0, [r0]
|
|
str r0, [sp, #8]
|
|
ldrb r0, [r0, #0xa]
|
|
cmp r0, #0
|
|
beq _080B0B78
|
|
subs r0, #1
|
|
ldr r1, [sp, #8]
|
|
strb r0, [r1, #0xa]
|
|
b _080B0B7E
|
|
.align 2, 0
|
|
_080B0B74: .4byte 0x03007FF0
|
|
_080B0B78:
|
|
movs r0, #0xe
|
|
ldr r3, [sp, #8]
|
|
strb r0, [r3, #0xa]
|
|
_080B0B7E:
|
|
movs r6, #1
|
|
ldr r0, [sp, #8]
|
|
ldr r4, [r0, #0x1c]
|
|
mov r1, sp
|
|
str r1, [sp, #0x1c]
|
|
_080B0B88:
|
|
ldrb r1, [r4]
|
|
movs r0, #0xc7
|
|
ands r0, r1
|
|
adds r3, r6, #1
|
|
mov sl, r3
|
|
movs r1, #0x40
|
|
adds r1, r1, r4
|
|
mov sb, r1
|
|
cmp r0, #0
|
|
bne _080B0B9E
|
|
b _080B0FBA
|
|
_080B0B9E:
|
|
cmp r6, #2
|
|
beq _080B0BD4
|
|
cmp r6, #2
|
|
bgt _080B0BAC
|
|
cmp r6, #1
|
|
beq _080B0BB2
|
|
b _080B0C1C
|
|
_080B0BAC:
|
|
cmp r6, #3
|
|
beq _080B0BF8
|
|
b _080B0C1C
|
|
_080B0BB2:
|
|
ldr r3, _080B0BC8 @ =0x04000060
|
|
str r3, [sp, #0xc]
|
|
adds r3, #2
|
|
ldr r0, _080B0BCC @ =0x04000063
|
|
str r0, [sp, #0x10]
|
|
ldr r1, _080B0BD0 @ =0x04000064
|
|
str r1, [sp, #0x14]
|
|
adds r0, #2
|
|
str r0, [sp, #0x18]
|
|
movs r0, #0
|
|
b _080B0C30
|
|
.align 2, 0
|
|
_080B0BC8: .4byte 0x04000060
|
|
_080B0BCC: .4byte 0x04000063
|
|
_080B0BD0: .4byte 0x04000064
|
|
_080B0BD4:
|
|
ldr r3, _080B0BEC @ =0x04000061
|
|
str r3, [sp, #0xc]
|
|
adds r3, #7
|
|
ldr r0, _080B0BF0 @ =0x04000069
|
|
str r0, [sp, #0x10]
|
|
ldr r1, _080B0BF4 @ =0x0400006C
|
|
str r1, [sp, #0x14]
|
|
adds r0, #4
|
|
str r0, [sp, #0x18]
|
|
movs r0, #1
|
|
b _080B0C30
|
|
.align 2, 0
|
|
_080B0BEC: .4byte 0x04000061
|
|
_080B0BF0: .4byte 0x04000069
|
|
_080B0BF4: .4byte 0x0400006C
|
|
_080B0BF8:
|
|
ldr r3, _080B0C10 @ =0x04000070
|
|
str r3, [sp, #0xc]
|
|
adds r3, #2
|
|
ldr r0, _080B0C14 @ =0x04000073
|
|
str r0, [sp, #0x10]
|
|
ldr r1, _080B0C18 @ =0x04000074
|
|
str r1, [sp, #0x14]
|
|
adds r0, #2
|
|
str r0, [sp, #0x18]
|
|
movs r0, #2
|
|
b _080B0C30
|
|
.align 2, 0
|
|
_080B0C10: .4byte 0x04000070
|
|
_080B0C14: .4byte 0x04000073
|
|
_080B0C18: .4byte 0x04000074
|
|
_080B0C1C:
|
|
ldr r3, _080B0C84 @ =0x04000071
|
|
str r3, [sp, #0xc]
|
|
adds r3, #7
|
|
ldr r0, _080B0C88 @ =0x04000079
|
|
str r0, [sp, #0x10]
|
|
ldr r1, _080B0C8C @ =0x0400007C
|
|
str r1, [sp, #0x14]
|
|
adds r0, #4
|
|
str r0, [sp, #0x18]
|
|
movs r0, #3
|
|
_080B0C30:
|
|
ldr r1, [sp, #0x1c]
|
|
strb r0, [r1]
|
|
ldr r0, [sp, #8]
|
|
ldrb r0, [r0, #0xa]
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
ldrb r0, [r1]
|
|
mov r8, r0
|
|
ldrb r2, [r4]
|
|
movs r0, #0x80
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _080B0D2A
|
|
movs r7, #0x40
|
|
adds r0, r7, #0
|
|
ands r0, r2
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
adds r0, r6, #1
|
|
mov sl, r0
|
|
movs r1, #0x40
|
|
adds r1, r1, r4
|
|
mov sb, r1
|
|
cmp r5, #0
|
|
beq _080B0C64
|
|
b _080B0D60
|
|
_080B0C64:
|
|
movs r0, #3
|
|
strb r0, [r4]
|
|
strb r0, [r4, #0x1d]
|
|
adds r0, r4, #0
|
|
str r3, [sp, #0x20]
|
|
bl CgbModVol
|
|
ldr r3, [sp, #0x20]
|
|
cmp r6, #2
|
|
beq _080B0C9C
|
|
cmp r6, #2
|
|
bgt _080B0C90
|
|
cmp r6, #1
|
|
beq _080B0C96
|
|
b _080B0CF0
|
|
.align 2, 0
|
|
_080B0C84: .4byte 0x04000071
|
|
_080B0C88: .4byte 0x04000079
|
|
_080B0C8C: .4byte 0x0400007C
|
|
_080B0C90:
|
|
cmp r6, #3
|
|
beq _080B0CA8
|
|
b _080B0CF0
|
|
_080B0C96:
|
|
ldrb r0, [r4, #0x1f]
|
|
ldr r1, [sp, #0xc]
|
|
strb r0, [r1]
|
|
_080B0C9C:
|
|
ldr r0, [r4, #0x24]
|
|
lsls r0, r0, #6
|
|
ldrb r1, [r4, #0x1e]
|
|
adds r0, r0, r1
|
|
strb r0, [r3]
|
|
b _080B0CFC
|
|
_080B0CA8:
|
|
ldr r1, [r4, #0x24]
|
|
ldr r0, [r4, #0x28]
|
|
cmp r1, r0
|
|
beq _080B0CD0
|
|
ldr r0, [sp, #0xc]
|
|
strb r7, [r0]
|
|
ldr r1, _080B0CE4 @ =0x04000090
|
|
ldr r2, [r4, #0x24]
|
|
ldr r0, [r2]
|
|
str r0, [r1]
|
|
adds r1, #4
|
|
ldr r0, [r2, #4]
|
|
str r0, [r1]
|
|
adds r1, #4
|
|
ldr r0, [r2, #8]
|
|
str r0, [r1]
|
|
adds r1, #4
|
|
ldr r0, [r2, #0xc]
|
|
str r0, [r1]
|
|
str r2, [r4, #0x28]
|
|
_080B0CD0:
|
|
ldr r1, [sp, #0xc]
|
|
strb r5, [r1]
|
|
ldrb r0, [r4, #0x1e]
|
|
strb r0, [r3]
|
|
ldrb r0, [r4, #0x1e]
|
|
cmp r0, #0
|
|
beq _080B0CE8
|
|
movs r0, #0xc0
|
|
b _080B0D0A
|
|
.align 2, 0
|
|
_080B0CE4: .4byte 0x04000090
|
|
_080B0CE8:
|
|
movs r3, #0x80
|
|
rsbs r3, r3, #0
|
|
strb r3, [r4, #0x1a]
|
|
b _080B0D0C
|
|
_080B0CF0:
|
|
ldrb r0, [r4, #0x1e]
|
|
strb r0, [r3]
|
|
ldr r0, [r4, #0x24]
|
|
lsls r0, r0, #3
|
|
ldr r1, [sp, #0x14]
|
|
strb r0, [r1]
|
|
_080B0CFC:
|
|
ldrb r0, [r4, #4]
|
|
adds r0, #8
|
|
mov r8, r0
|
|
ldrb r0, [r4, #0x1e]
|
|
cmp r0, #0
|
|
beq _080B0D0A
|
|
movs r0, #0x40
|
|
_080B0D0A:
|
|
strb r0, [r4, #0x1a]
|
|
_080B0D0C:
|
|
ldrb r1, [r4, #4]
|
|
movs r2, #0
|
|
strb r1, [r4, #0xb]
|
|
movs r0, #0xff
|
|
ands r0, r1
|
|
adds r3, r6, #1
|
|
mov sl, r3
|
|
movs r1, #0x40
|
|
adds r1, r1, r4
|
|
mov sb, r1
|
|
cmp r0, #0
|
|
bne _080B0D26
|
|
b _080B0E7A
|
|
_080B0D26:
|
|
strb r2, [r4, #9]
|
|
b _080B0EA8
|
|
_080B0D2A:
|
|
movs r0, #4
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _080B0D44
|
|
ldr r0, _080B0D70 @ =0x04000084
|
|
ldrb r1, [r0]
|
|
ldr r3, [sp, #0x1c]
|
|
ldrb r0, [r3]
|
|
asrs r1, r0
|
|
movs r0, #1
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _080B0D74
|
|
_080B0D44:
|
|
ldrb r0, [r4, #0xd]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xd]
|
|
movs r1, #0xff
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
adds r3, r6, #1
|
|
mov sl, r3
|
|
movs r1, #0x40
|
|
adds r1, r1, r4
|
|
mov sb, r1
|
|
cmp r0, #0
|
|
ble _080B0D60
|
|
b _080B0EBA
|
|
_080B0D60:
|
|
lsls r0, r6, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl CgbOscOff
|
|
movs r0, #0
|
|
strb r0, [r4]
|
|
b _080B0FB6
|
|
.align 2, 0
|
|
_080B0D70: .4byte 0x04000084
|
|
_080B0D74:
|
|
movs r0, #0x40
|
|
ands r0, r2
|
|
adds r3, r6, #1
|
|
mov sl, r3
|
|
movs r1, #0x40
|
|
adds r1, r1, r4
|
|
mov sb, r1
|
|
cmp r0, #0
|
|
beq _080B0DB4
|
|
movs r0, #3
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _080B0DB4
|
|
movs r0, #0xfc
|
|
ands r0, r2
|
|
movs r2, #0
|
|
strb r0, [r4]
|
|
ldrb r1, [r4, #7]
|
|
strb r1, [r4, #0xb]
|
|
movs r0, #0xff
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B0DE6
|
|
ldrb r0, [r4, #0x1d]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1d]
|
|
cmp r6, #3
|
|
beq _080B0EA8
|
|
ldrb r3, [r4, #7]
|
|
mov r8, r3
|
|
b _080B0EA8
|
|
_080B0DB4:
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #0
|
|
bne _080B0EA8
|
|
cmp r6, #3
|
|
bne _080B0DC6
|
|
ldrb r1, [r4, #0x1d]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1d]
|
|
_080B0DC6:
|
|
adds r0, r4, #0
|
|
bl CgbModVol
|
|
ldrb r0, [r4]
|
|
movs r1, #3
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _080B0E18
|
|
ldrb r0, [r4, #9]
|
|
subs r0, #1
|
|
strb r0, [r4, #9]
|
|
movs r1, #0xff
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bgt _080B0E14
|
|
_080B0DE6:
|
|
ldrb r1, [r4, #0xa]
|
|
ldrb r0, [r4, #0xc]
|
|
muls r0, r1, r0
|
|
adds r0, #0xff
|
|
asrs r0, r0, #8
|
|
movs r1, #0
|
|
strb r0, [r4, #9]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080B0D60
|
|
ldrb r0, [r4]
|
|
movs r1, #4
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
ldrb r0, [r4, #0x1d]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1d]
|
|
cmp r6, #3
|
|
beq _080B0EBA
|
|
movs r3, #8
|
|
mov r8, r3
|
|
b _080B0EBA
|
|
_080B0E14:
|
|
ldrb r0, [r4, #7]
|
|
b _080B0EA6
|
|
_080B0E18:
|
|
cmp r1, #1
|
|
bne _080B0E24
|
|
_080B0E1C:
|
|
ldrb r0, [r4, #0x19]
|
|
strb r0, [r4, #9]
|
|
movs r0, #7
|
|
b _080B0EA6
|
|
_080B0E24:
|
|
cmp r1, #2
|
|
bne _080B0E6A
|
|
ldrb r0, [r4, #9]
|
|
subs r0, #1
|
|
strb r0, [r4, #9]
|
|
movs r1, #0xff
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
movs r1, #0x19
|
|
ldrsb r1, [r4, r1]
|
|
cmp r0, r1
|
|
bgt _080B0E66
|
|
_080B0E3E:
|
|
ldrb r0, [r4, #6]
|
|
cmp r0, #0
|
|
bne _080B0E4E
|
|
ldrb r1, [r4]
|
|
movs r0, #0xfc
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
b _080B0DE6
|
|
_080B0E4E:
|
|
ldrb r0, [r4]
|
|
subs r0, #1
|
|
strb r0, [r4]
|
|
ldrb r1, [r4, #0x1d]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1d]
|
|
cmp r6, #3
|
|
beq _080B0E1C
|
|
movs r3, #8
|
|
mov r8, r3
|
|
b _080B0E1C
|
|
_080B0E66:
|
|
ldrb r0, [r4, #5]
|
|
b _080B0EA6
|
|
_080B0E6A:
|
|
ldrb r0, [r4, #9]
|
|
adds r0, #1
|
|
strb r0, [r4, #9]
|
|
movs r1, #0xff
|
|
ands r0, r1
|
|
ldrb r3, [r4, #0xa]
|
|
cmp r0, r3
|
|
blo _080B0EA4
|
|
_080B0E7A:
|
|
ldrb r0, [r4]
|
|
subs r0, #1
|
|
movs r2, #0
|
|
strb r0, [r4]
|
|
ldrb r1, [r4, #5]
|
|
strb r1, [r4, #0xb]
|
|
movs r0, #0xff
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B0E3E
|
|
ldrb r0, [r4, #0x1d]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1d]
|
|
ldrb r0, [r4, #0xa]
|
|
strb r0, [r4, #9]
|
|
cmp r6, #3
|
|
beq _080B0EA8
|
|
ldrb r0, [r4, #5]
|
|
mov r8, r0
|
|
b _080B0EA8
|
|
_080B0EA4:
|
|
ldrb r0, [r4, #4]
|
|
_080B0EA6:
|
|
strb r0, [r4, #0xb]
|
|
_080B0EA8:
|
|
ldrb r0, [r4, #0xb]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xb]
|
|
ldr r1, [sp, #4]
|
|
cmp r1, #0
|
|
bne _080B0EBA
|
|
subs r1, #1
|
|
str r1, [sp, #4]
|
|
b _080B0DB4
|
|
_080B0EBA:
|
|
ldrb r1, [r4, #0x1d]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B0F34
|
|
cmp r6, #3
|
|
bgt _080B0EFA
|
|
ldrb r1, [r4, #1]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B0EFA
|
|
ldr r0, _080B0EE4 @ =0x04000089
|
|
ldrb r0, [r0]
|
|
adds r1, r0, #0
|
|
cmp r1, #0x3f
|
|
bgt _080B0EEC
|
|
ldr r0, [r4, #0x20]
|
|
adds r0, #2
|
|
ldr r1, _080B0EE8 @ =0x000007FC
|
|
b _080B0EF6
|
|
.align 2, 0
|
|
_080B0EE4: .4byte 0x04000089
|
|
_080B0EE8: .4byte 0x000007FC
|
|
_080B0EEC:
|
|
cmp r1, #0x7f
|
|
bgt _080B0EFA
|
|
ldr r0, [r4, #0x20]
|
|
adds r0, #1
|
|
ldr r1, _080B0F04 @ =0x000007FE
|
|
_080B0EF6:
|
|
ands r0, r1
|
|
str r0, [r4, #0x20]
|
|
_080B0EFA:
|
|
cmp r6, #4
|
|
beq _080B0F08
|
|
ldr r0, [r4, #0x20]
|
|
b _080B0F14
|
|
.align 2, 0
|
|
_080B0F04: .4byte 0x000007FE
|
|
_080B0F08:
|
|
ldr r1, [sp, #0x14]
|
|
ldrb r0, [r1]
|
|
movs r1, #8
|
|
ands r1, r0
|
|
ldr r0, [r4, #0x20]
|
|
orrs r0, r1
|
|
_080B0F14:
|
|
ldr r3, [sp, #0x14]
|
|
strb r0, [r3]
|
|
ldrb r0, [r4, #0x1a]
|
|
movs r1, #0xc0
|
|
ands r1, r0
|
|
ldr r0, [r4, #0x20]
|
|
movs r2, #0xfc
|
|
lsls r2, r2, #6
|
|
ands r0, r2
|
|
lsrs r0, r0, #8
|
|
adds r1, r1, r0
|
|
strb r1, [r4, #0x1a]
|
|
movs r0, #0xff
|
|
ands r1, r0
|
|
ldr r3, [sp, #0x18]
|
|
strb r1, [r3]
|
|
_080B0F34:
|
|
ldrb r1, [r4, #0x1d]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B0FB6
|
|
ldr r2, _080B0F7C @ =0x04000081
|
|
ldrb r1, [r4, #0x1c]
|
|
ldrb r0, [r2]
|
|
bics r0, r1
|
|
ldrb r1, [r4, #0x1b]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
cmp r6, #3
|
|
bne _080B0F84
|
|
ldr r1, _080B0F80 @ =gUnk_089FC928
|
|
ldrb r0, [r4, #9]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
ldr r1, [sp, #0x10]
|
|
strb r0, [r1]
|
|
ldrb r1, [r4, #0x1a]
|
|
movs r2, #0x80
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B0FB6
|
|
ldr r3, [sp, #0xc]
|
|
strb r2, [r3]
|
|
ldrb r0, [r4, #0x1a]
|
|
ldr r1, [sp, #0x18]
|
|
strb r0, [r1]
|
|
ldrb r1, [r4, #0x1a]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r4, #0x1a]
|
|
b _080B0FB6
|
|
.align 2, 0
|
|
_080B0F7C: .4byte 0x04000081
|
|
_080B0F80: .4byte gUnk_089FC928
|
|
_080B0F84:
|
|
movs r0, #0xf
|
|
mov r3, r8
|
|
ands r3, r0
|
|
mov r8, r3
|
|
ldrb r0, [r4, #9]
|
|
lsls r0, r0, #4
|
|
add r0, r8
|
|
ldr r1, [sp, #0x10]
|
|
strb r0, [r1]
|
|
ldrb r0, [r4, #0x1a]
|
|
movs r2, #0x80
|
|
orrs r0, r2
|
|
ldr r3, [sp, #0x18]
|
|
strb r0, [r3]
|
|
cmp r6, #1
|
|
bne _080B0FB6
|
|
ldr r0, [sp, #0xc]
|
|
ldrb r1, [r0]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080B0FB6
|
|
ldrb r0, [r4, #0x1a]
|
|
orrs r0, r2
|
|
strb r0, [r3]
|
|
_080B0FB6:
|
|
movs r0, #0
|
|
strb r0, [r4, #0x1d]
|
|
_080B0FBA:
|
|
mov r6, sl
|
|
mov r4, sb
|
|
cmp r6, #4
|
|
bgt _080B0FC4
|
|
b _080B0B88
|
|
_080B0FC4:
|
|
add sp, #0x24
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start m4aMPlayTempoControl
|
|
m4aMPlayTempoControl: @ 0x080B0FD4
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
ldr r3, [r2, #0x34]
|
|
ldr r0, _080B0FF4 @ =0x68736D53
|
|
cmp r3, r0
|
|
bne _080B0FF0
|
|
strh r1, [r2, #0x1e]
|
|
ldrh r1, [r2, #0x1c]
|
|
ldrh r0, [r2, #0x1e]
|
|
muls r0, r1, r0
|
|
asrs r0, r0, #8
|
|
strh r0, [r2, #0x20]
|
|
_080B0FF0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0FF4: .4byte 0x68736D53
|
|
|
|
thumb_func_start m4aMPlayVolumeControl
|
|
m4aMPlayVolumeControl: @ 0x080B0FF8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
adds r4, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r7, r1, #0x10
|
|
lsls r6, r2, #0x10
|
|
ldr r3, [r4, #0x34]
|
|
ldr r0, _080B105C @ =0x68736D53
|
|
cmp r3, r0
|
|
bne _080B1050
|
|
adds r0, r3, #1
|
|
str r0, [r4, #0x34]
|
|
ldrb r2, [r4, #8]
|
|
ldr r1, [r4, #0x2c]
|
|
movs r5, #1
|
|
cmp r2, #0
|
|
ble _080B104C
|
|
movs r0, #0x80
|
|
mov r8, r0
|
|
lsrs r6, r6, #0x12
|
|
movs r0, #3
|
|
mov ip, r0
|
|
_080B1028:
|
|
adds r0, r7, #0
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _080B1042
|
|
ldrb r3, [r1]
|
|
mov r0, r8
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
beq _080B1042
|
|
strb r6, [r1, #0x13]
|
|
mov r0, ip
|
|
orrs r0, r3
|
|
strb r0, [r1]
|
|
_080B1042:
|
|
subs r2, #1
|
|
adds r1, #0x50
|
|
lsls r5, r5, #1
|
|
cmp r2, #0
|
|
bgt _080B1028
|
|
_080B104C:
|
|
ldr r0, _080B105C @ =0x68736D53
|
|
str r0, [r4, #0x34]
|
|
_080B1050:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B105C: .4byte 0x68736D53
|
|
|
|
thumb_func_start m4aMPlayPitchControl
|
|
m4aMPlayPitchControl: @ 0x080B1060
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
adds r4, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
mov ip, r1
|
|
lsls r2, r2, #0x10
|
|
lsrs r6, r2, #0x10
|
|
ldr r3, [r4, #0x34]
|
|
ldr r0, _080B10D0 @ =0x68736D53
|
|
cmp r3, r0
|
|
bne _080B10C2
|
|
adds r0, r3, #1
|
|
str r0, [r4, #0x34]
|
|
ldrb r2, [r4, #8]
|
|
ldr r3, [r4, #0x2c]
|
|
movs r5, #1
|
|
cmp r2, #0
|
|
ble _080B10BE
|
|
movs r0, #0x80
|
|
mov sb, r0
|
|
lsls r0, r6, #0x10
|
|
asrs r7, r0, #0x18
|
|
movs r0, #0xc
|
|
mov r8, r0
|
|
_080B1098:
|
|
mov r0, ip
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _080B10B4
|
|
ldrb r1, [r3]
|
|
mov r0, sb
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B10B4
|
|
strb r7, [r3, #0xb]
|
|
strb r6, [r3, #0xd]
|
|
mov r0, r8
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080B10B4:
|
|
subs r2, #1
|
|
adds r3, #0x50
|
|
lsls r5, r5, #1
|
|
cmp r2, #0
|
|
bgt _080B1098
|
|
_080B10BE:
|
|
ldr r0, _080B10D0 @ =0x68736D53
|
|
str r0, [r4, #0x34]
|
|
_080B10C2:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B10D0: .4byte 0x68736D53
|
|
|
|
thumb_func_start m4aMPlayPanpotControl
|
|
m4aMPlayPanpotControl: @ 0x080B10D4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
adds r4, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r7, r1, #0x10
|
|
lsls r2, r2, #0x18
|
|
lsrs r6, r2, #0x18
|
|
ldr r3, [r4, #0x34]
|
|
ldr r0, _080B1138 @ =0x68736D53
|
|
cmp r3, r0
|
|
bne _080B112C
|
|
adds r0, r3, #1
|
|
str r0, [r4, #0x34]
|
|
ldrb r2, [r4, #8]
|
|
ldr r1, [r4, #0x2c]
|
|
movs r5, #1
|
|
cmp r2, #0
|
|
ble _080B1128
|
|
movs r0, #0x80
|
|
mov r8, r0
|
|
movs r0, #3
|
|
mov ip, r0
|
|
_080B1104:
|
|
adds r0, r7, #0
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _080B111E
|
|
ldrb r3, [r1]
|
|
mov r0, r8
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
beq _080B111E
|
|
strb r6, [r1, #0x15]
|
|
mov r0, ip
|
|
orrs r0, r3
|
|
strb r0, [r1]
|
|
_080B111E:
|
|
subs r2, #1
|
|
adds r1, #0x50
|
|
lsls r5, r5, #1
|
|
cmp r2, #0
|
|
bgt _080B1104
|
|
_080B1128:
|
|
ldr r0, _080B1138 @ =0x68736D53
|
|
str r0, [r4, #0x34]
|
|
_080B112C:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1138: .4byte 0x68736D53
|
|
|
|
thumb_func_start ClearModM
|
|
ClearModM: @ 0x080B113C
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
movs r1, #0
|
|
movs r0, #0
|
|
strb r0, [r2, #0x1a]
|
|
strb r0, [r2, #0x16]
|
|
ldrb r0, [r2, #0x18]
|
|
cmp r0, #0
|
|
bne _080B1154
|
|
ldrb r0, [r2]
|
|
movs r1, #0xc
|
|
b _080B1158
|
|
_080B1154:
|
|
ldrb r0, [r2]
|
|
movs r1, #3
|
|
_080B1158:
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start m4aMPlayModDepthSet
|
|
m4aMPlayModDepthSet: @ 0x080B1160
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
adds r6, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
mov sl, r1
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov r8, r2
|
|
ldr r1, [r6, #0x34]
|
|
ldr r0, _080B11D0 @ =0x68736D53
|
|
cmp r1, r0
|
|
bne _080B11C0
|
|
adds r0, r1, #1
|
|
str r0, [r6, #0x34]
|
|
ldrb r5, [r6, #8]
|
|
ldr r4, [r6, #0x2c]
|
|
movs r7, #1
|
|
cmp r5, #0
|
|
ble _080B11BC
|
|
mov sb, r8
|
|
_080B1190:
|
|
mov r0, sl
|
|
ands r0, r7
|
|
cmp r0, #0
|
|
beq _080B11B2
|
|
ldrb r1, [r4]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B11B2
|
|
mov r0, r8
|
|
strb r0, [r4, #0x17]
|
|
mov r0, sb
|
|
cmp r0, #0
|
|
bne _080B11B2
|
|
adds r0, r4, #0
|
|
bl ClearModM
|
|
_080B11B2:
|
|
subs r5, #1
|
|
adds r4, #0x50
|
|
lsls r7, r7, #1
|
|
cmp r5, #0
|
|
bgt _080B1190
|
|
_080B11BC:
|
|
ldr r0, _080B11D0 @ =0x68736D53
|
|
str r0, [r6, #0x34]
|
|
_080B11C0:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B11D0: .4byte 0x68736D53
|
|
|
|
thumb_func_start m4aMPlayLFOSpeedSet
|
|
m4aMPlayLFOSpeedSet: @ 0x080B11D4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
adds r6, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
mov sl, r1
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov r8, r2
|
|
ldr r1, [r6, #0x34]
|
|
ldr r0, _080B1244 @ =0x68736D53
|
|
cmp r1, r0
|
|
bne _080B1234
|
|
adds r0, r1, #1
|
|
str r0, [r6, #0x34]
|
|
ldrb r5, [r6, #8]
|
|
ldr r4, [r6, #0x2c]
|
|
movs r7, #1
|
|
cmp r5, #0
|
|
ble _080B1230
|
|
mov sb, r8
|
|
_080B1204:
|
|
mov r0, sl
|
|
ands r0, r7
|
|
cmp r0, #0
|
|
beq _080B1226
|
|
ldrb r1, [r4]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080B1226
|
|
mov r0, r8
|
|
strb r0, [r4, #0x19]
|
|
mov r0, sb
|
|
cmp r0, #0
|
|
bne _080B1226
|
|
adds r0, r4, #0
|
|
bl ClearModM
|
|
_080B1226:
|
|
subs r5, #1
|
|
adds r4, #0x50
|
|
lsls r7, r7, #1
|
|
cmp r5, #0
|
|
bgt _080B1204
|
|
_080B1230:
|
|
ldr r0, _080B1244 @ =0x68736D53
|
|
str r0, [r6, #0x34]
|
|
_080B1234:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1244: .4byte 0x68736D53
|
|
|
|
thumb_func_start ply_memacc
|
|
ply_memacc: @ 0x080B1248
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
adds r6, r1, #0
|
|
ldr r0, [r6, #0x40]
|
|
ldrb r5, [r0]
|
|
adds r1, r0, #1
|
|
str r1, [r6, #0x40]
|
|
ldrb r2, [r0, #1]
|
|
ldr r0, [r4, #0x18]
|
|
adds r2, r0, r2
|
|
adds r0, r1, #1
|
|
str r0, [r6, #0x40]
|
|
ldrb r3, [r1, #1]
|
|
adds r0, #1
|
|
str r0, [r6, #0x40]
|
|
cmp r5, #0x11
|
|
bls _080B126C
|
|
b _080B139A
|
|
_080B126C:
|
|
lsls r0, r5, #2
|
|
ldr r1, _080B1278 @ =_080B127C
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B1278: .4byte _080B127C
|
|
_080B127C: @ jump table
|
|
.4byte _080B12C4 @ case 0
|
|
.4byte _080B12C8 @ case 1
|
|
.4byte _080B12D0 @ case 2
|
|
.4byte _080B12D8 @ case 3
|
|
.4byte _080B12E2 @ case 4
|
|
.4byte _080B12F0 @ case 5
|
|
.4byte _080B12FE @ case 6
|
|
.4byte _080B1306 @ case 7
|
|
.4byte _080B130E @ case 8
|
|
.4byte _080B1316 @ case 9
|
|
.4byte _080B131E @ case 10
|
|
.4byte _080B1326 @ case 11
|
|
.4byte _080B132E @ case 12
|
|
.4byte _080B133C @ case 13
|
|
.4byte _080B134A @ case 14
|
|
.4byte _080B1358 @ case 15
|
|
.4byte _080B1366 @ case 16
|
|
.4byte _080B1374 @ case 17
|
|
_080B12C4:
|
|
strb r3, [r2]
|
|
b _080B139A
|
|
_080B12C8:
|
|
ldrb r0, [r2]
|
|
adds r0, r3, r0
|
|
strb r0, [r2]
|
|
b _080B139A
|
|
_080B12D0:
|
|
ldrb r0, [r2]
|
|
subs r0, r0, r3
|
|
strb r0, [r2]
|
|
b _080B139A
|
|
_080B12D8:
|
|
ldr r0, [r4, #0x18]
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
b _080B139A
|
|
_080B12E2:
|
|
ldr r0, [r4, #0x18]
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r2]
|
|
adds r0, r0, r1
|
|
strb r0, [r2]
|
|
b _080B139A
|
|
_080B12F0:
|
|
ldr r0, [r4, #0x18]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
subs r1, r1, r0
|
|
strb r1, [r2]
|
|
b _080B139A
|
|
_080B12FE:
|
|
ldrb r0, [r2]
|
|
cmp r0, r3
|
|
beq _080B1380
|
|
b _080B1394
|
|
_080B1306:
|
|
ldrb r0, [r2]
|
|
cmp r0, r3
|
|
bne _080B1380
|
|
b _080B1394
|
|
_080B130E:
|
|
ldrb r0, [r2]
|
|
cmp r0, r3
|
|
bhi _080B1380
|
|
b _080B1394
|
|
_080B1316:
|
|
ldrb r0, [r2]
|
|
cmp r0, r3
|
|
bhs _080B1380
|
|
b _080B1394
|
|
_080B131E:
|
|
ldrb r0, [r2]
|
|
cmp r0, r3
|
|
bls _080B1380
|
|
b _080B1394
|
|
_080B1326:
|
|
ldrb r0, [r2]
|
|
cmp r0, r3
|
|
blo _080B1380
|
|
b _080B1394
|
|
_080B132E:
|
|
ldr r0, [r4, #0x18]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
beq _080B1380
|
|
b _080B1394
|
|
_080B133C:
|
|
ldr r0, [r4, #0x18]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _080B1380
|
|
b _080B1394
|
|
_080B134A:
|
|
ldr r0, [r4, #0x18]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bhi _080B1380
|
|
b _080B1394
|
|
_080B1358:
|
|
ldr r0, [r4, #0x18]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bhs _080B1380
|
|
b _080B1394
|
|
_080B1366:
|
|
ldr r0, [r4, #0x18]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bls _080B1380
|
|
b _080B1394
|
|
_080B1374:
|
|
ldr r0, [r4, #0x18]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bhs _080B1394
|
|
_080B1380:
|
|
ldr r0, _080B1390 @ =gUnk_03004D54
|
|
ldr r2, [r0]
|
|
adds r0, r4, #0
|
|
adds r1, r6, #0
|
|
bl _call_via_r2
|
|
b _080B139A
|
|
.align 2, 0
|
|
_080B1390: .4byte gUnk_03004D54
|
|
_080B1394:
|
|
ldr r0, [r6, #0x40]
|
|
adds r0, #4
|
|
str r0, [r6, #0x40]
|
|
_080B139A:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start ply_xcmd
|
|
ply_xcmd: @ 0x080B13A0
|
|
push {lr}
|
|
ldr r2, [r1, #0x40]
|
|
ldrb r3, [r2]
|
|
adds r2, #1
|
|
str r2, [r1, #0x40]
|
|
ldr r2, _080B13BC @ =gUnk_089FC96C
|
|
lsls r3, r3, #2
|
|
adds r3, r3, r2
|
|
ldr r2, [r3]
|
|
bl _call_via_r2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B13BC: .4byte gUnk_089FC96C
|
|
|
|
thumb_func_start ply_xxx
|
|
ply_xxx: @ 0x080B13C0
|
|
push {lr}
|
|
ldr r2, _080B13D0 @ =gUnk_03004D50
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B13D0: .4byte gUnk_03004D50
|
|
|
|
thumb_func_start ply_xwave
|
|
ply_xwave: @ 0x080B13D4
|
|
push {r4, lr}
|
|
ldr r3, [r1, #0x40]
|
|
ldrb r2, [r3]
|
|
ldr r0, _080B140C @ =0xFFFFFF00
|
|
ands r4, r0
|
|
orrs r4, r2
|
|
ldrb r0, [r3, #1]
|
|
lsls r0, r0, #8
|
|
ldr r2, _080B1410 @ =0xFFFF00FF
|
|
ands r4, r2
|
|
orrs r4, r0
|
|
ldrb r0, [r3, #2]
|
|
lsls r0, r0, #0x10
|
|
ldr r2, _080B1414 @ =0xFF00FFFF
|
|
ands r4, r2
|
|
orrs r4, r0
|
|
ldrb r0, [r3, #3]
|
|
lsls r0, r0, #0x18
|
|
ldr r2, _080B1418 @ =0x00FFFFFF
|
|
ands r4, r2
|
|
orrs r4, r0
|
|
str r4, [r1, #0x28]
|
|
adds r3, #4
|
|
str r3, [r1, #0x40]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B140C: .4byte 0xFFFFFF00
|
|
_080B1410: .4byte 0xFFFF00FF
|
|
_080B1414: .4byte 0xFF00FFFF
|
|
_080B1418: .4byte 0x00FFFFFF
|
|
|
|
thumb_func_start ply_xtype
|
|
ply_xtype: @ 0x080B141C
|
|
ldr r0, [r1, #0x40]
|
|
ldrb r2, [r0]
|
|
adds r0, r1, #0
|
|
adds r0, #0x24
|
|
strb r2, [r0]
|
|
ldr r0, [r1, #0x40]
|
|
adds r0, #1
|
|
str r0, [r1, #0x40]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start ply_xatta
|
|
ply_xatta: @ 0x080B1430
|
|
ldr r0, [r1, #0x40]
|
|
ldrb r2, [r0]
|
|
adds r0, r1, #0
|
|
adds r0, #0x2c
|
|
strb r2, [r0]
|
|
ldr r0, [r1, #0x40]
|
|
adds r0, #1
|
|
str r0, [r1, #0x40]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start ply_xdeca
|
|
ply_xdeca: @ 0x080B1444
|
|
ldr r0, [r1, #0x40]
|
|
ldrb r0, [r0]
|
|
adds r2, r1, #0
|
|
adds r2, #0x2d
|
|
strb r0, [r2]
|
|
ldr r0, [r1, #0x40]
|
|
adds r0, #1
|
|
str r0, [r1, #0x40]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start ply_xsust
|
|
ply_xsust: @ 0x080B1458
|
|
ldr r0, [r1, #0x40]
|
|
ldrb r0, [r0]
|
|
adds r2, r1, #0
|
|
adds r2, #0x2e
|
|
strb r0, [r2]
|
|
ldr r0, [r1, #0x40]
|
|
adds r0, #1
|
|
str r0, [r1, #0x40]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start ply_xrele
|
|
ply_xrele: @ 0x080B146C
|
|
ldr r0, [r1, #0x40]
|
|
ldrb r0, [r0]
|
|
adds r2, r1, #0
|
|
adds r2, #0x2f
|
|
strb r0, [r2]
|
|
ldr r0, [r1, #0x40]
|
|
adds r0, #1
|
|
str r0, [r1, #0x40]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start ply_xiecv
|
|
ply_xiecv: @ 0x080B1480
|
|
ldr r0, [r1, #0x40]
|
|
ldrb r2, [r0]
|
|
strb r2, [r1, #0x1e]
|
|
adds r0, #1
|
|
str r0, [r1, #0x40]
|
|
bx lr
|
|
|
|
thumb_func_start ply_xiecl
|
|
ply_xiecl: @ 0x080B148C
|
|
ldr r0, [r1, #0x40]
|
|
ldrb r2, [r0]
|
|
strb r2, [r1, #0x1f]
|
|
adds r0, #1
|
|
str r0, [r1, #0x40]
|
|
bx lr
|
|
|
|
thumb_func_start ply_xleng
|
|
ply_xleng: @ 0x080B1498
|
|
ldr r0, [r1, #0x40]
|
|
ldrb r0, [r0]
|
|
adds r2, r1, #0
|
|
adds r2, #0x26
|
|
strb r0, [r2]
|
|
ldr r0, [r1, #0x40]
|
|
adds r0, #1
|
|
str r0, [r1, #0x40]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start ply_xswee
|
|
ply_xswee: @ 0x080B14AC
|
|
ldr r0, [r1, #0x40]
|
|
ldrb r0, [r0]
|
|
adds r2, r1, #0
|
|
adds r2, #0x27
|
|
strb r0, [r2]
|
|
ldr r0, [r1, #0x40]
|
|
adds r0, #1
|
|
str r0, [r1, #0x40]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start nullsub_544
|
|
nullsub_544: @ 0x080B14C0
|
|
bx lr
|
|
.align 2, 0
|
|
|