mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
5285 lines
83 KiB
ArmAsm
5285 lines
83 KiB
ArmAsm
thumb_func_start umul3232H32
|
|
umul3232H32: ; 82DF04C
|
|
adr r2, _082DF050
|
|
bx r2
|
|
.arm
|
|
_082DF050:
|
|
umull r2, r3, r0, r1
|
|
add r0, r3, 0
|
|
bx lr
|
|
thumb_func_end umul3232H32
|
|
|
|
thumb_func_start SoundMain
|
|
SoundMain: ; 82DF05C
|
|
ldr r0, _082DF0C8
|
|
ldr r0, [r0]
|
|
ldr r2, _082DF0CC
|
|
ldr r3, [r0]
|
|
cmp r2, r3
|
|
beq _082DF06A
|
|
bx lr
|
|
_082DF06A:
|
|
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 _082DF08E
|
|
ldr r2, _082DF0D4
|
|
ldrb r2, [r2]
|
|
cmp r2, 0xA0
|
|
bcs _082DF08C
|
|
adds r2, 0xE4
|
|
_082DF08C:
|
|
adds r1, r2
|
|
_082DF08E:
|
|
str r1, [sp, 0x14]
|
|
ldr r3, [r0, 0x20]
|
|
cmp r3, 0
|
|
beq _082DF09E
|
|
ldr r0, [r0, 0x24]
|
|
bl _082DF496
|
|
ldr r0, [sp, 0x18]
|
|
_082DF09E:
|
|
ldr r3, [r0, 0x28]
|
|
bl _082DF496
|
|
ldr r0, [sp, 0x18]
|
|
ldr r3, [r0, 0x10]
|
|
mov r8, r3
|
|
ldr r5, _082DF0D8
|
|
adds r5, r0
|
|
ldrb r4, [r0, 0x4]
|
|
subs r7, r4, 0x1
|
|
bls _082DF0BE
|
|
ldrb r1, [r0, 0xB]
|
|
subs r1, r7
|
|
mov r2, r8
|
|
muls r2, r1
|
|
adds r5, r2
|
|
_082DF0BE:
|
|
str r5, [sp, 0x8]
|
|
ldr r6, _082DF0DC
|
|
ldr r3, _082DF0D0
|
|
bx r3
|
|
.align 2, 0
|
|
_082DF0C8: .4byte 0x03007ff0
|
|
_082DF0CC: .4byte 0x68736d53
|
|
_082DF0D0: .4byte 0x03001aa9
|
|
_082DF0D4: .4byte 0x04000006
|
|
_082DF0D8: .4byte 0x00000350
|
|
_082DF0DC: .4byte 0x00000630
|
|
thumb_func_end SoundMain
|
|
|
|
thumb_func_start SoundMainRAM
|
|
SoundMainRAM: ; 82DF0E0
|
|
ldrb r3, [r0, 0x5]
|
|
cmp r3, 0
|
|
beq _082DF140
|
|
adr r1, _082DF0EC
|
|
bx r1
|
|
.arm
|
|
_082DF0EC:
|
|
cmp r4, 0x2
|
|
addeq r7, r0, 0x350
|
|
addne r7, r5, r8
|
|
mov r4, r8
|
|
_082DF0FC:
|
|
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 _082DF0FC
|
|
add r0, pc, 0x2F
|
|
bx r0
|
|
.thumb
|
|
_082DF140:
|
|
movs r0, 0
|
|
mov r1, r8
|
|
adds r6, r5
|
|
lsrs r1, 3
|
|
bcc _082DF14E
|
|
stm r5!, {r0}
|
|
stm r6!, {r0}
|
|
_082DF14E:
|
|
lsrs r1, 1
|
|
bcc _082DF15A
|
|
stm r5!, {r0}
|
|
stm r6!, {r0}
|
|
stm r5!, {r0}
|
|
stm r6!, {r0}
|
|
_082DF15A:
|
|
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 _082DF15A
|
|
ldr r4, [sp, 0x18]
|
|
ldr r0, [r4, 0x18]
|
|
mov r12, r0
|
|
ldrb r0, [r4, 0x6]
|
|
adds r4, 0x50
|
|
_082DF178:
|
|
str r0, [sp, 0x4]
|
|
ldr r3, [r4, 0x24]
|
|
ldr r0, [sp, 0x14]
|
|
cmp r0, 0
|
|
beq _082DF198
|
|
ldr r1, _082DF194
|
|
ldrb r1, [r1]
|
|
cmp r1, 0xA0
|
|
bcs _082DF18C
|
|
adds r1, 0xE4
|
|
_082DF18C:
|
|
cmp r1, r0
|
|
bcc _082DF198
|
|
b _082DF482
|
|
.align 2, 0
|
|
_082DF194: .4byte 0x04000006
|
|
_082DF198:
|
|
ldrb r6, [r4]
|
|
movs r0, 0xC7
|
|
tst r0, r6
|
|
bne _082DF1A2
|
|
b _082DF478
|
|
_082DF1A2:
|
|
movs r0, 0x80
|
|
tst r0, r6
|
|
beq _082DF1D8
|
|
movs r0, 0x40
|
|
tst r0, r6
|
|
bne _082DF1E8
|
|
movs r6, 0x3
|
|
strb r6, [r4]
|
|
adds r0, r3, 0
|
|
adds r0, 0x10
|
|
ldr r1, [r4, 0x18]
|
|
adds r0, r1
|
|
str r0, [r4, 0x28]
|
|
ldr r0, [r3, 0xC]
|
|
subs r0, r1
|
|
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 _082DF230
|
|
movs r0, 0x10
|
|
orrs r6, r0
|
|
strb r6, [r4]
|
|
b _082DF230
|
|
_082DF1D8:
|
|
ldrb r5, [r4, 0x9]
|
|
movs r0, 0x4
|
|
tst r0, r6
|
|
beq _082DF1EE
|
|
ldrb r0, [r4, 0xD]
|
|
subs r0, 0x1
|
|
strb r0, [r4, 0xD]
|
|
bhi _082DF23E
|
|
_082DF1E8:
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
b _082DF478
|
|
_082DF1EE:
|
|
movs r0, 0x40
|
|
tst r0, r6
|
|
beq _082DF20E
|
|
ldrb r0, [r4, 0x7]
|
|
muls r5, r0
|
|
lsrs r5, 8
|
|
ldrb r0, [r4, 0xC]
|
|
cmp r5, r0
|
|
bhi _082DF23E
|
|
_082DF200:
|
|
ldrb r5, [r4, 0xC]
|
|
cmp r5, 0
|
|
beq _082DF1E8
|
|
movs r0, 0x4
|
|
orrs r6, r0
|
|
strb r6, [r4]
|
|
b _082DF23E
|
|
_082DF20E:
|
|
movs r2, 0x3
|
|
ands r2, r6
|
|
cmp r2, 0x2
|
|
bne _082DF22C
|
|
ldrb r0, [r4, 0x5]
|
|
muls r5, r0
|
|
lsrs r5, 8
|
|
ldrb r0, [r4, 0x6]
|
|
cmp r5, r0
|
|
bhi _082DF23E
|
|
adds r5, r0, 0
|
|
beq _082DF200
|
|
subs r6, 0x1
|
|
strb r6, [r4]
|
|
b _082DF23E
|
|
_082DF22C:
|
|
cmp r2, 0x3
|
|
bne _082DF23E
|
|
_082DF230:
|
|
ldrb r0, [r4, 0x4]
|
|
adds r5, r0
|
|
cmp r5, 0xFF
|
|
bcc _082DF23E
|
|
movs r5, 0xFF
|
|
subs r6, 0x1
|
|
strb r6, [r4]
|
|
_082DF23E:
|
|
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 _082DF272
|
|
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]
|
|
_082DF272:
|
|
ldr r5, [sp, 0x8]
|
|
ldr r2, [r4, 0x18]
|
|
ldr r3, [r4, 0x28]
|
|
adr r0, _082DF27C
|
|
bx r0
|
|
.arm
|
|
_082DF27C:
|
|
str r8, [sp]
|
|
ldr r9, [r4, 0x1C]
|
|
ldrb r10, [r4, 0xA]
|
|
ldrb r11, [r4, 0xB]
|
|
ldrb r0, [r4, 0x1]
|
|
tst r0, 0x30
|
|
beq _082DF2A0
|
|
bl sub_82DF49C
|
|
b _082DF460
|
|
_082DF2A0:
|
|
mov r10, r10, lsl 16
|
|
mov r11, r11, lsl 16
|
|
ldrb r0, [r4, 0x1]
|
|
tst r0, 0x8
|
|
beq _082DF3D4
|
|
_082DF2B4:
|
|
cmp r2, 0x4
|
|
ble _082DF324
|
|
subs r2, r2, r8
|
|
movgt r9, 0
|
|
bgt _082DF2E0
|
|
mov r9, r8
|
|
add r2, r2, r8
|
|
sub r8, r2, 0x4
|
|
sub r9, r9, r8
|
|
ands r2, r2, 0x3
|
|
moveq r2, 0x4
|
|
_082DF2E0:
|
|
ldr r6, [r5]
|
|
ldr r7, [r5, 0x630]
|
|
_082DF2E8:
|
|
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 _082DF2E8
|
|
str r7, [r5, 0x630]
|
|
str r6, [r5], 0x4
|
|
subs r8, r8, 0x4
|
|
bgt _082DF2E0
|
|
adds r8, r8, r9
|
|
beq _082DF464
|
|
_082DF324:
|
|
ldr r6, [r5]
|
|
ldr r7, [r5, 0x630]
|
|
_082DF32C:
|
|
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 _082DF39C
|
|
_082DF350:
|
|
adds r5, r5, 0x40000000
|
|
bcc _082DF32C
|
|
str r7, [r5, 0x630]
|
|
str r6, [r5], 0x4
|
|
subs r8, r8, 0x4
|
|
bgt _082DF2B4
|
|
b _082DF464
|
|
_082DF36C:
|
|
ldr r0, [sp, 0x18]
|
|
cmp r0, 0
|
|
beq _082DF390
|
|
ldr r3, [sp, 0x14]
|
|
rsb lr, r2, 0
|
|
_082DF380:
|
|
adds r2, r0, r2
|
|
bgt _082DF434
|
|
sub lr, lr, r0
|
|
b _082DF380
|
|
_082DF390:
|
|
ldmia sp!, {r4,r12}
|
|
mov r2, 0
|
|
b _082DF3AC
|
|
_082DF39C:
|
|
ldr r2, [sp, 0x10]
|
|
cmp r2, 0
|
|
ldrne r3, [sp, 0xC]
|
|
bne _082DF350
|
|
_082DF3AC:
|
|
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 _082DF46C
|
|
_082DF3D4:
|
|
stmdb sp!, {r4,r12}
|
|
ldr r1, [r4, 0x20]
|
|
mul r4, r12, r1
|
|
ldrsb r0, [r3]
|
|
ldrsb r1, [r3, 0x1]!
|
|
sub r1, r1, r0
|
|
_082DF3EC:
|
|
ldr r6, [r5]
|
|
ldr r7, [r5, 0x630]
|
|
_082DF3F4:
|
|
mul lr, r9, r1
|
|
add lr, r0, lr, asr 23
|
|
mul r12, r10, lr
|
|
bic r12, r12, 0xFF0000
|
|
add r6, r12, r6, ror 8
|
|
mul r12, r11, lr
|
|
bic r12, r12, 0xFF0000
|
|
add r7, r12, r7, ror 8
|
|
add r9, r9, r4
|
|
movs lr, r9, lsr 23
|
|
beq _082DF440
|
|
bic r9, r9, 0x3F800000
|
|
subs r2, r2, lr
|
|
ble _082DF36C
|
|
subs lr, lr, 0x1
|
|
addeq r0, r0, r1
|
|
_082DF434:
|
|
ldrsbne r0, [r3, lr]!
|
|
ldrsb r1, [r3, 0x1]!
|
|
sub r1, r1, r0
|
|
_082DF440:
|
|
adds r5, r5, 0x40000000
|
|
bcc _082DF3F4
|
|
str r7, [r5, 0x630]
|
|
str r6, [r5], 0x4
|
|
subs r8, r8, 0x4
|
|
bgt _082DF3EC
|
|
sub r3, r3, 0x1
|
|
ldmia sp!, {r4,r12}
|
|
_082DF460:
|
|
str r9, [r4, 0x1C]
|
|
_082DF464:
|
|
str r2, [r4, 0x18]
|
|
str r3, [r4, 0x28]
|
|
_082DF46C:
|
|
ldr r8, [sp]
|
|
add r0, pc, 0x1
|
|
bx r0
|
|
.thumb
|
|
_082DF478:
|
|
ldr r0, [sp, 0x4]
|
|
subs r0, 0x1
|
|
ble _082DF482
|
|
adds r4, 0x40
|
|
b _082DF178
|
|
_082DF482:
|
|
ldr r0, [sp, 0x18]
|
|
ldr r3, _082DF498
|
|
str r3, [r0]
|
|
add sp, 0x1C
|
|
pop {r0-r7}
|
|
mov r8, r0
|
|
mov r9, r1
|
|
mov r10, r2
|
|
mov r11, r3
|
|
pop {r3}
|
|
_082DF496:
|
|
bx r3
|
|
.align 2, 0
|
|
_082DF498: .4byte 0x68736d53
|
|
thumb_func_end SoundMainRAM
|
|
|
|
arm_func_start sub_82DF49C
|
|
sub_82DF49C: ; 82DF49C
|
|
ldr r6, [r4, 0x24]
|
|
ldrb r0, [r4]
|
|
tst r0, 0x20
|
|
bne _082DF4EC
|
|
orr r0, r0, 0x20
|
|
strb r0, [r4]
|
|
ldrb r0, [r4, 0x1]
|
|
tst r0, 0x10
|
|
beq _082DF4D4
|
|
ldr r1, [r6, 0xC]
|
|
add r1, r1, r6, lsl 1
|
|
add r1, r1, 0x20
|
|
sub r3, r1, r3
|
|
str r3, [r4, 0x28]
|
|
_082DF4D4:
|
|
ldrh r0, [r6]
|
|
cmp r0, 0
|
|
beq _082DF4EC
|
|
sub r3, r3, r6
|
|
sub r3, r3, 0x10
|
|
str r3, [r4, 0x28]
|
|
_082DF4EC:
|
|
stmdb sp!, {r8,r12,lr}
|
|
mov r10, r10, lsl 16
|
|
mov r11, r11, lsl 16
|
|
ldr r1, [r4, 0x20]
|
|
ldrb r0, [r4, 0x1]
|
|
tst r0, 0x8
|
|
movne r8, 0x800000
|
|
muleq r8, r12, r1
|
|
ldrh r0, [r6]
|
|
cmp r0, 0
|
|
beq _082DF6A0
|
|
mov r0, 0xFF000000
|
|
str r0, [r4, 0x3C]
|
|
ldrb r0, [r4, 0x1]
|
|
tst r0, 0x10
|
|
bne _082DF5F8
|
|
bl sub_82DF758
|
|
mov r0, r1
|
|
add r3, r3, 0x1
|
|
bl sub_82DF758
|
|
sub r1, r1, r0
|
|
_082DF540:
|
|
ldr r6, [r5]
|
|
ldr r7, [r5, 0x630]
|
|
_082DF548:
|
|
mul lr, r9, r1
|
|
add lr, r0, lr, asr 23
|
|
mul r12, r10, lr
|
|
bic r12, r12, 0xFF0000
|
|
add r6, r12, r6, ror 8
|
|
mul r12, r11, lr
|
|
bic r12, r12, 0xFF0000
|
|
add r7, r12, r7, ror 8
|
|
add r9, r9, r8
|
|
movs lr, r9, lsr 23
|
|
beq _082DF5A8
|
|
bic r9, r9, 0x3F800000
|
|
subs r2, r2, lr
|
|
ble _082DF5D0
|
|
subs lr, lr, 0x1
|
|
bne _082DF590
|
|
add r0, r0, r1
|
|
b _082DF59C
|
|
_082DF590:
|
|
add r3, r3, lr
|
|
bl sub_82DF758
|
|
mov r0, r1
|
|
_082DF59C:
|
|
add r3, r3, 0x1
|
|
bl sub_82DF758
|
|
sub r1, r1, r0
|
|
_082DF5A8:
|
|
adds r5, r5, 0x40000000
|
|
bcc _082DF548
|
|
str r7, [r5, 0x630]
|
|
str r6, [r5], 0x4
|
|
ldr r6, [sp]
|
|
subs r6, r6, 0x4
|
|
str r6, [sp]
|
|
bgt _082DF540
|
|
sub r3, r3, 0x1
|
|
b _082DF728
|
|
_082DF5D0:
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r0, 0
|
|
beq _082DF72C
|
|
ldr r3, [r4, 0x24]
|
|
ldr r3, [r3, 0x8]
|
|
rsb lr, r2, 0
|
|
_082DF5E8:
|
|
adds r2, r2, r0
|
|
bgt _082DF590
|
|
sub lr, lr, r0
|
|
b _082DF5E8
|
|
_082DF5F8:
|
|
sub r3, r3, 0x1
|
|
bl sub_82DF758
|
|
mov r0, r1
|
|
sub r3, r3, 0x1
|
|
bl sub_82DF758
|
|
sub r1, r1, r0
|
|
_082DF610:
|
|
ldr r6, [r5]
|
|
ldr r7, [r5, 0x630]
|
|
_082DF618:
|
|
mul lr, r9, r1
|
|
add lr, r0, lr, asr 23
|
|
mul r12, r10, lr
|
|
bic r12, r12, 0xFF0000
|
|
add r6, r12, r6, ror 8
|
|
mul r12, r11, lr
|
|
bic r12, r12, 0xFF0000
|
|
add r7, r12, r7, ror 8
|
|
add r9, r9, r8
|
|
movs lr, r9, lsr 23
|
|
beq _082DF678
|
|
bic r9, r9, 0x3F800000
|
|
subs r2, r2, lr
|
|
ble _082DF72C
|
|
subs lr, lr, 0x1
|
|
bne _082DF660
|
|
add r0, r0, r1
|
|
b _082DF66C
|
|
_082DF660:
|
|
sub r3, r3, lr
|
|
bl sub_82DF758
|
|
mov r0, r1
|
|
_082DF66C:
|
|
sub r3, r3, 0x1
|
|
bl sub_82DF758
|
|
sub r1, r1, r0
|
|
_082DF678:
|
|
adds r5, r5, 0x40000000
|
|
bcc _082DF618
|
|
str r7, [r5, 0x630]
|
|
str r6, [r5], 0x4
|
|
ldr r6, [sp]
|
|
subs r6, r6, 0x4
|
|
str r6, [sp]
|
|
bgt _082DF610
|
|
add r3, r3, 0x2
|
|
b _082DF728
|
|
_082DF6A0:
|
|
ldrb r0, [r4, 0x1]
|
|
tst r0, 0x10
|
|
beq _082DF728
|
|
ldrsb r0, [r3, -0x1]!
|
|
ldrsb r1, [r3, -0x1]
|
|
sub r1, r1, r0
|
|
_082DF6B8:
|
|
ldr r6, [r5]
|
|
ldr r7, [r5, 0x630]
|
|
_082DF6C0:
|
|
mul lr, r9, r1
|
|
add lr, r0, lr, asr 23
|
|
mul r12, r10, lr
|
|
bic r12, r12, 0xFF0000
|
|
add r6, r12, r6, ror 8
|
|
mul r12, r11, lr
|
|
bic r12, r12, 0xFF0000
|
|
add r7, r12, r7, ror 8
|
|
add r9, r9, r8
|
|
movs lr, r9, lsr 23
|
|
beq _082DF704
|
|
bic r9, r9, 0x3F800000
|
|
subs r2, r2, lr
|
|
ble _082DF72C
|
|
ldrsb r0, [r3, -lr]!
|
|
ldrsb r1, [r3, -0x1]
|
|
sub r1, r1, r0
|
|
_082DF704:
|
|
adds r5, r5, 0x40000000
|
|
bcc _082DF6C0
|
|
str r7, [r5, 0x630]
|
|
str r6, [r5], 0x4
|
|
ldr r6, [sp]
|
|
subs r6, r6, 0x4
|
|
str r6, [sp]
|
|
bgt _082DF6B8
|
|
add r3, r3, 0x1
|
|
_082DF728:
|
|
ldmia sp!, {r8,r12,pc}
|
|
_082DF72C:
|
|
mov r2, 0
|
|
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
|
|
ldmia sp!, {r8,r12,pc}
|
|
arm_func_end sub_82DF49C
|
|
|
|
arm_func_start sub_82DF758
|
|
sub_82DF758: ; 82DF758
|
|
stmdb sp!, {r0,r2,r5-r7,lr}
|
|
mov r0, r3, lsr 6
|
|
ldr r1, [r4, 0x3C]
|
|
cmp r0, r1
|
|
beq _082DF7CC
|
|
str r0, [r4, 0x3C]
|
|
mov r1, 0x21
|
|
mul r2, r1, r0
|
|
ldr r1, [r4, 0x24]
|
|
add r2, r2, r1
|
|
add r2, r2, 0x10
|
|
ldr r5, _082DF7DC
|
|
ldr r6, _082DF7E0
|
|
mov r7, 0x40
|
|
ldrb lr, [r2], 0x1
|
|
strb lr, [r5], 0x1
|
|
ldrb r1, [r2], 0x1
|
|
b _082DF7B4
|
|
_082DF7A0:
|
|
ldrb r1, [r2], 0x1
|
|
mov r0, r1, lsr 4
|
|
ldrsb r0, [r6, r0]
|
|
add lr, lr, r0
|
|
strb lr, [r5], 0x1
|
|
_082DF7B4:
|
|
and r0, r1, 0xF
|
|
ldrsb r0, [r6, r0]
|
|
add lr, lr, r0
|
|
strb lr, [r5], 0x1
|
|
subs r7, r7, 0x2
|
|
bgt _082DF7A0
|
|
_082DF7CC:
|
|
ldr r5, _082DF7DC
|
|
and r0, r3, 0x3F
|
|
ldrsb r1, [r5, r0]
|
|
ldmia sp!, {r0,r2,r5-r7,pc}
|
|
.align 2, 0
|
|
_082DF7DC: .4byte 0x03001300
|
|
_082DF7E0: .4byte gUnknown_08675A70
|
|
arm_func_end sub_82DF758
|
|
|
|
thumb_func_start SoundMainBTM
|
|
SoundMainBTM: ; 82DF7E4
|
|
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 ClearChain
|
|
ClearChain: ; 82DF7FC
|
|
ldr r3, [r0, 0x2C]
|
|
cmp r3, 0
|
|
beq _082DF81A
|
|
ldr r1, [r0, 0x34]
|
|
ldr r2, [r0, 0x30]
|
|
cmp r2, 0
|
|
beq _082DF80E
|
|
str r1, [r2, 0x34]
|
|
b _082DF810
|
|
_082DF80E:
|
|
str r1, [r3, 0x20]
|
|
_082DF810:
|
|
cmp r1, 0
|
|
beq _082DF816
|
|
str r2, [r1, 0x30]
|
|
_082DF816:
|
|
movs r1, 0
|
|
str r1, [r0, 0x2C]
|
|
_082DF81A:
|
|
bx lr
|
|
thumb_func_end ClearChain
|
|
|
|
thumb_func_start ply_fine
|
|
ply_fine: ; 82DF81C
|
|
push {r4,r5,lr}
|
|
adds r5, r1, 0
|
|
ldr r4, [r5, 0x20]
|
|
cmp r4, 0
|
|
beq _082DF840
|
|
_082DF826:
|
|
ldrb r1, [r4]
|
|
movs r0, 0xC7
|
|
tst r0, r1
|
|
beq _082DF834
|
|
movs r0, 0x40
|
|
orrs r1, r0
|
|
strb r1, [r4]
|
|
_082DF834:
|
|
adds r0, r4, 0
|
|
bl ClearChain
|
|
ldr r4, [r4, 0x34]
|
|
cmp r4, 0
|
|
bne _082DF826
|
|
_082DF840:
|
|
movs r0, 0
|
|
strb r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ply_fine
|
|
|
|
thumb_func_start MPlyJmpTblCopy
|
|
MPlyJmpTblCopy: ; 82DF84C
|
|
mov r12, lr
|
|
movs r1, 0x24
|
|
ldr r2, _082DF87C
|
|
_082DF852:
|
|
ldr r3, [r2]
|
|
bl chk_adr_r2
|
|
stm r0!, {r3}
|
|
adds r2, 0x4
|
|
subs r1, 0x1
|
|
bgt _082DF852
|
|
bx r12
|
|
thumb_func_end MPlyJmpTblCopy
|
|
|
|
thumb_func_start ldrb_r3_r2
|
|
ldrb_r3_r2: ; 82DF864
|
|
ldrb r3, [r2]
|
|
thumb_func_end ldrb_r3_r2
|
|
|
|
non_word_aligned_thumb_func_start chk_adr_r2
|
|
chk_adr_r2: ; 82DF866
|
|
push {r0}
|
|
lsrs r0, r2, 25
|
|
bne _082DF878
|
|
ldr r0, _082DF87C
|
|
cmp r2, r0
|
|
bcc _082DF876
|
|
lsrs r0, r2, 14
|
|
beq _082DF878
|
|
_082DF876:
|
|
movs r3, 0
|
|
_082DF878:
|
|
pop {r0}
|
|
bx lr
|
|
.align 2, 0
|
|
_082DF87C: .4byte gUnknown_086759E0
|
|
thumb_func_end chk_adr_r2
|
|
|
|
thumb_func_start ld_r3_tp_adr_i
|
|
ld_r3_tp_adr_i: ; 82DF880
|
|
ldr r2, [r1, 0x40]
|
|
_082DF882:
|
|
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: ; 82DF88C
|
|
push {lr}
|
|
_082DF88E:
|
|
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 ldrb_r3_r2
|
|
orrs r0, r3
|
|
str r0, [r1, 0x40]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ply_goto
|
|
|
|
thumb_func_start ply_patt
|
|
ply_patt: ; 82DF8AC
|
|
ldrb r2, [r1, 0x2]
|
|
cmp r2, 0x3
|
|
bcs _082DF8C4
|
|
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 ply_goto
|
|
_082DF8C4:
|
|
b ply_fine
|
|
thumb_func_end ply_patt
|
|
|
|
thumb_func_start play_pend
|
|
play_pend: ; 82DF8C8
|
|
ldrb r2, [r1, 0x2]
|
|
cmp r2, 0
|
|
beq _082DF8DA
|
|
subs r2, 0x1
|
|
strb r2, [r1, 0x2]
|
|
lsls r2, 2
|
|
adds r3, r1, r2
|
|
ldr r2, [r3, 0x44]
|
|
str r2, [r1, 0x40]
|
|
_082DF8DA:
|
|
bx lr
|
|
thumb_func_end play_pend
|
|
|
|
thumb_func_start ply_rept
|
|
ply_rept: ; 82DF8DC
|
|
push {lr}
|
|
ldr r2, [r1, 0x40]
|
|
ldrb r3, [r2]
|
|
cmp r3, 0
|
|
bne _082DF8EC
|
|
adds r2, 0x1
|
|
str r2, [r1, 0x40]
|
|
b _082DF88E
|
|
_082DF8EC:
|
|
ldrb r3, [r1, 0x3]
|
|
adds r3, 0x1
|
|
strb r3, [r1, 0x3]
|
|
mov r12, r3
|
|
bl ld_r3_tp_adr_i
|
|
cmp r12, r3
|
|
bcs _082DF8FE
|
|
b _082DF88E
|
|
_082DF8FE:
|
|
movs r3, 0
|
|
strb r3, [r1, 0x3]
|
|
adds r2, 0x5
|
|
str r2, [r1, 0x40]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ply_rept
|
|
|
|
thumb_func_start ply_prio
|
|
ply_prio: ; 82DF90C
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i
|
|
strb r3, [r1, 0x1D]
|
|
bx r12
|
|
thumb_func_end ply_prio
|
|
|
|
thumb_func_start ply_tempo
|
|
ply_tempo: ; 82DF918
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i
|
|
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 ply_tempo
|
|
|
|
thumb_func_start ply_keysh
|
|
ply_keysh: ; 82DF92C
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i
|
|
strb r3, [r1, 0xA]
|
|
ldrb r3, [r1]
|
|
movs r2, 0xC
|
|
orrs r3, r2
|
|
strb r3, [r1]
|
|
bx r12
|
|
thumb_func_end ply_keysh
|
|
|
|
thumb_func_start ply_voice
|
|
ply_voice: ; 82DF940
|
|
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 chk_adr_r2
|
|
str r3, [r1, 0x24]
|
|
ldr r3, [r2, 0x4]
|
|
bl chk_adr_r2
|
|
str r3, [r1, 0x28]
|
|
ldr r3, [r2, 0x8]
|
|
bl chk_adr_r2
|
|
str r3, [r1, 0x2C]
|
|
bx r12
|
|
thumb_func_end ply_voice
|
|
|
|
thumb_func_start ply_vol
|
|
ply_vol: ; 82DF970
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i
|
|
strb r3, [r1, 0x12]
|
|
ldrb r3, [r1]
|
|
movs r2, 0x3
|
|
orrs r3, r2
|
|
strb r3, [r1]
|
|
bx r12
|
|
thumb_func_end ply_vol
|
|
|
|
thumb_func_start ply_pan
|
|
ply_pan: ; 82DF984
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i
|
|
subs r3, 0x40
|
|
strb r3, [r1, 0x14]
|
|
ldrb r3, [r1]
|
|
movs r2, 0x3
|
|
orrs r3, r2
|
|
strb r3, [r1]
|
|
bx r12
|
|
thumb_func_end ply_pan
|
|
|
|
thumb_func_start ply_bend
|
|
ply_bend: ; 82DF998
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i
|
|
subs r3, 0x40
|
|
strb r3, [r1, 0xE]
|
|
ldrb r3, [r1]
|
|
movs r2, 0xC
|
|
orrs r3, r2
|
|
strb r3, [r1]
|
|
bx r12
|
|
thumb_func_end ply_bend
|
|
|
|
thumb_func_start ply_bendr
|
|
ply_bendr: ; 82DF9AC
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i
|
|
strb r3, [r1, 0xF]
|
|
ldrb r3, [r1]
|
|
movs r2, 0xC
|
|
orrs r3, r2
|
|
strb r3, [r1]
|
|
bx r12
|
|
thumb_func_end ply_bendr
|
|
|
|
thumb_func_start ply_lfodl
|
|
ply_lfodl: ; 82DF9C0
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i
|
|
strb r3, [r1, 0x1B]
|
|
bx r12
|
|
thumb_func_end ply_lfodl
|
|
|
|
thumb_func_start ply_modt
|
|
ply_modt: ; 82DF9CC
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i
|
|
ldrb r0, [r1, 0x18]
|
|
cmp r0, r3
|
|
beq _082DF9E2
|
|
strb r3, [r1, 0x18]
|
|
ldrb r3, [r1]
|
|
movs r2, 0xF
|
|
orrs r3, r2
|
|
strb r3, [r1]
|
|
_082DF9E2:
|
|
bx r12
|
|
thumb_func_end ply_modt
|
|
|
|
thumb_func_start ply_tune
|
|
ply_tune: ; 82DF9E4
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i
|
|
subs r3, 0x40
|
|
strb r3, [r1, 0xC]
|
|
ldrb r3, [r1]
|
|
movs r2, 0xC
|
|
orrs r3, r2
|
|
strb r3, [r1]
|
|
bx r12
|
|
thumb_func_end ply_tune
|
|
|
|
thumb_func_start ply_port
|
|
ply_port: ; 82DF9F8
|
|
mov r12, lr
|
|
ldr r2, [r1, 0x40]
|
|
ldrb r3, [r2]
|
|
adds r2, 0x1
|
|
ldr r0, _082DFA0C
|
|
adds r0, r3
|
|
bl _082DF882
|
|
strb r3, [r0]
|
|
bx r12
|
|
.align 2, 0
|
|
_082DFA0C: .4byte 0x04000060
|
|
thumb_func_end ply_port
|
|
|
|
thumb_func_start SoundVSync_rev01
|
|
SoundVSync_rev01: ; 82DFA10
|
|
ldr r0, _082DFCBC
|
|
ldr r0, [r0]
|
|
ldr r2, _082DFCC0
|
|
ldr r3, [r0]
|
|
subs r3, r2
|
|
cmp r3, 0x1
|
|
bhi _082DFA50
|
|
ldrb r1, [r0, 0x4]
|
|
subs r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
bgt _082DFA50
|
|
ldrb r1, [r0, 0xB]
|
|
strb r1, [r0, 0x4]
|
|
ldr r2, _082DFA54
|
|
ldr r1, [r2, 0x8]
|
|
lsls r1, 7
|
|
bcc _082DFA36
|
|
ldr r1, _082DFA58
|
|
str r1, [r2, 0x8]
|
|
_082DFA36:
|
|
ldr r1, [r2, 0x14]
|
|
lsls r1, 7
|
|
bcc _082DFA40
|
|
ldr r1, _082DFA58
|
|
str r1, [r2, 0x14]
|
|
_082DFA40:
|
|
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]
|
|
_082DFA50:
|
|
bx lr
|
|
.align 2, 0
|
|
_082DFA54: .4byte 0x040000bc
|
|
_082DFA58: .4byte 0x84400004
|
|
thumb_func_end SoundVSync_rev01
|
|
|
|
thumb_func_start MPlayMain_rev01
|
|
MPlayMain_rev01: ; 82DFA5C
|
|
ldr r2, _082DFCC0
|
|
ldr r3, [r0, 0x34]
|
|
cmp r2, r3
|
|
beq _082DFA66
|
|
bx lr
|
|
_082DFA66:
|
|
adds r3, 0x1
|
|
str r3, [r0, 0x34]
|
|
push {r0,lr}
|
|
ldr r3, [r0, 0x38]
|
|
cmp r3, 0
|
|
beq _082DFA78
|
|
ldr r0, [r0, 0x3C]
|
|
bl _082DFCB4
|
|
_082DFA78:
|
|
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 _082DFA90
|
|
b _082DFCA4
|
|
_082DFA90:
|
|
ldr r0, _082DFCBC
|
|
ldr r0, [r0]
|
|
mov r8, r0
|
|
adds r0, r7, 0
|
|
bl FadeOutBody_rev01
|
|
ldr r0, [r7, 0x4]
|
|
cmp r0, 0
|
|
bge _082DFAA4
|
|
b _082DFCA4
|
|
_082DFAA4:
|
|
ldrh r0, [r7, 0x22]
|
|
ldrh r1, [r7, 0x20]
|
|
adds r0, r1
|
|
b _082DFBF4
|
|
_082DFAAC:
|
|
ldrb r6, [r7, 0x8]
|
|
ldr r5, [r7, 0x2C]
|
|
movs r3, 0x1
|
|
movs r4, 0
|
|
_082DFAB4:
|
|
ldrb r0, [r5]
|
|
movs r1, 0x80
|
|
tst r1, r0
|
|
bne _082DFABE
|
|
b _082DFBD0
|
|
_082DFABE:
|
|
mov r10, r3
|
|
orrs r4, r3
|
|
mov r11, r4
|
|
ldr r4, [r5, 0x20]
|
|
cmp r4, 0
|
|
beq _082DFAF2
|
|
_082DFACA:
|
|
ldrb r1, [r4]
|
|
movs r0, 0xC7
|
|
tst r0, r1
|
|
beq _082DFAE6
|
|
ldrb r0, [r4, 0x10]
|
|
cmp r0, 0
|
|
beq _082DFAEC
|
|
subs r0, 0x1
|
|
strb r0, [r4, 0x10]
|
|
bne _082DFAEC
|
|
movs r0, 0x40
|
|
orrs r1, r0
|
|
strb r1, [r4]
|
|
b _082DFAEC
|
|
_082DFAE6:
|
|
adds r0, r4, 0
|
|
bl ClearChain_rev
|
|
_082DFAEC:
|
|
ldr r4, [r4, 0x34]
|
|
cmp r4, 0
|
|
bne _082DFACA
|
|
_082DFAF2:
|
|
ldrb r3, [r5]
|
|
movs r0, 0x40
|
|
tst r0, r3
|
|
beq _082DFB70
|
|
adds r0, r5, 0
|
|
bl Clear64byte_rev
|
|
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 _082DFB70
|
|
_082DFB18:
|
|
ldr r2, [r5, 0x40]
|
|
ldrb r1, [r2]
|
|
cmp r1, 0x80
|
|
bcs _082DFB24
|
|
ldrb r1, [r5, 0x7]
|
|
b _082DFB2E
|
|
_082DFB24:
|
|
adds r2, 0x1
|
|
str r2, [r5, 0x40]
|
|
cmp r1, 0xBD
|
|
bcc _082DFB2E
|
|
strb r1, [r5, 0x7]
|
|
_082DFB2E:
|
|
cmp r1, 0xCF
|
|
bcc _082DFB44
|
|
mov r0, r8
|
|
ldr r3, [r0, 0x38]
|
|
adds r0, r1, 0
|
|
subs r0, 0xCF
|
|
adds r1, r7, 0
|
|
adds r2, r5, 0
|
|
bl _082DFCB4
|
|
b _082DFB70
|
|
_082DFB44:
|
|
cmp r1, 0xB0
|
|
bls _082DFB66
|
|
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 _082DFCB4
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _082DFBCC
|
|
b _082DFB70
|
|
_082DFB66:
|
|
ldr r0, _082DFCB8
|
|
subs r1, 0x80
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
strb r0, [r5, 0x1]
|
|
_082DFB70:
|
|
ldrb r0, [r5, 0x1]
|
|
cmp r0, 0
|
|
beq _082DFB18
|
|
subs r0, 0x1
|
|
strb r0, [r5, 0x1]
|
|
ldrb r1, [r5, 0x19]
|
|
cmp r1, 0
|
|
beq _082DFBCC
|
|
ldrb r0, [r5, 0x17]
|
|
cmp r0, 0
|
|
beq _082DFBCC
|
|
ldrb r0, [r5, 0x1C]
|
|
cmp r0, 0
|
|
beq _082DFB92
|
|
subs r0, 0x1
|
|
strb r0, [r5, 0x1C]
|
|
b _082DFBCC
|
|
_082DFB92:
|
|
ldrb r0, [r5, 0x1A]
|
|
adds r0, r1
|
|
strb r0, [r5, 0x1A]
|
|
adds r1, r0, 0
|
|
subs r0, 0x40
|
|
lsls r0, 24
|
|
bpl _082DFBA6
|
|
lsls r2, r1, 24
|
|
asrs r2, 24
|
|
b _082DFBAA
|
|
_082DFBA6:
|
|
movs r0, 0x80
|
|
subs r2, r0, r1
|
|
_082DFBAA:
|
|
ldrb r0, [r5, 0x17]
|
|
muls r0, r2
|
|
asrs r2, r0, 6
|
|
ldrb r0, [r5, 0x16]
|
|
eors r0, r2
|
|
lsls r0, 24
|
|
beq _082DFBCC
|
|
strb r2, [r5, 0x16]
|
|
ldrb r0, [r5]
|
|
ldrb r1, [r5, 0x18]
|
|
cmp r1, 0
|
|
bne _082DFBC6
|
|
movs r1, 0xC
|
|
b _082DFBC8
|
|
_082DFBC6:
|
|
movs r1, 0x3
|
|
_082DFBC8:
|
|
orrs r0, r1
|
|
strb r0, [r5]
|
|
_082DFBCC:
|
|
mov r3, r10
|
|
mov r4, r11
|
|
_082DFBD0:
|
|
subs r6, 0x1
|
|
ble _082DFBDC
|
|
movs r0, 0x50
|
|
adds r5, r0
|
|
lsls r3, 1
|
|
b _082DFAB4
|
|
_082DFBDC:
|
|
ldr r0, [r7, 0xC]
|
|
adds r0, 0x1
|
|
str r0, [r7, 0xC]
|
|
cmp r4, 0
|
|
bne _082DFBEE
|
|
movs r0, 0x80
|
|
lsls r0, 24
|
|
str r0, [r7, 0x4]
|
|
b _082DFCA4
|
|
_082DFBEE:
|
|
str r4, [r7, 0x4]
|
|
ldrh r0, [r7, 0x22]
|
|
subs r0, 0x96
|
|
_082DFBF4:
|
|
strh r0, [r7, 0x22]
|
|
cmp r0, 0x96
|
|
bcc _082DFBFC
|
|
b _082DFAAC
|
|
_082DFBFC:
|
|
ldrb r2, [r7, 0x8]
|
|
ldr r5, [r7, 0x2C]
|
|
_082DFC00:
|
|
ldrb r0, [r5]
|
|
movs r1, 0x80
|
|
tst r1, r0
|
|
beq _082DFC9A
|
|
movs r1, 0xF
|
|
tst r1, r0
|
|
beq _082DFC9A
|
|
mov r9, r2
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl TrkVolPitSet_rev01
|
|
ldr r4, [r5, 0x20]
|
|
cmp r4, 0
|
|
beq _082DFC90
|
|
_082DFC1E:
|
|
ldrb r1, [r4]
|
|
movs r0, 0xC7
|
|
tst r0, r1
|
|
bne _082DFC2E
|
|
adds r0, r4, 0
|
|
bl ClearChain_rev
|
|
b _082DFC8A
|
|
_082DFC2E:
|
|
ldrb r0, [r4, 0x1]
|
|
movs r6, 0x7
|
|
ands r6, r0
|
|
ldrb r3, [r5]
|
|
movs r0, 0x3
|
|
tst r0, r3
|
|
beq _082DFC4C
|
|
bl ChnVolSetAsm
|
|
cmp r6, 0
|
|
beq _082DFC4C
|
|
ldrb r0, [r4, 0x1D]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1D]
|
|
_082DFC4C:
|
|
ldrb r3, [r5]
|
|
movs r0, 0xC
|
|
tst r0, r3
|
|
beq _082DFC8A
|
|
ldrb r1, [r4, 0x8]
|
|
movs r0, 0x8
|
|
ldrsb r0, [r5, r0]
|
|
adds r2, r1, r0
|
|
bpl _082DFC60
|
|
movs r2, 0
|
|
_082DFC60:
|
|
cmp r6, 0
|
|
beq _082DFC7E
|
|
mov r0, r8
|
|
ldr r3, [r0, 0x30]
|
|
adds r1, r2, 0
|
|
ldrb r2, [r5, 0x9]
|
|
adds r0, r6, 0
|
|
bl _082DFCB4
|
|
str r0, [r4, 0x20]
|
|
ldrb r0, [r4, 0x1D]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1D]
|
|
b _082DFC8A
|
|
_082DFC7E:
|
|
adds r1, r2, 0
|
|
ldrb r2, [r5, 0x9]
|
|
ldr r0, [r4, 0x24]
|
|
bl MidiKey2fr
|
|
str r0, [r4, 0x20]
|
|
_082DFC8A:
|
|
ldr r4, [r4, 0x34]
|
|
cmp r4, 0
|
|
bne _082DFC1E
|
|
_082DFC90:
|
|
ldrb r0, [r5]
|
|
movs r1, 0xF0
|
|
ands r0, r1
|
|
strb r0, [r5]
|
|
mov r2, r9
|
|
_082DFC9A:
|
|
subs r2, 0x1
|
|
ble _082DFCA4
|
|
movs r0, 0x50
|
|
adds r5, r0
|
|
bgt _082DFC00
|
|
_082DFCA4:
|
|
ldr r0, _082DFCC0
|
|
str r0, [r7, 0x34]
|
|
pop {r0-r7}
|
|
mov r8, r0
|
|
mov r9, r1
|
|
mov r10, r2
|
|
mov r11, r3
|
|
pop {r3}
|
|
_082DFCB4:
|
|
bx r3
|
|
.align 2, 0
|
|
_082DFCB8: .4byte gUnknown_08675C64
|
|
_082DFCBC: .4byte 0x03007ff0
|
|
_082DFCC0: .4byte 0x68736d53
|
|
thumb_func_end MPlayMain_rev01
|
|
|
|
thumb_func_start TrackStop_rev01
|
|
TrackStop_rev01: ; 82DFCC4
|
|
push {r4-r6,lr}
|
|
adds r5, r1, 0
|
|
ldrb r1, [r5]
|
|
movs r0, 0x80
|
|
tst r0, r1
|
|
beq _082DFCFC
|
|
ldr r4, [r5, 0x20]
|
|
cmp r4, 0
|
|
beq _082DFCFA
|
|
movs r6, 0
|
|
_082DFCD8:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _082DFCF2
|
|
ldrb r0, [r4, 0x1]
|
|
movs r3, 0x7
|
|
ands r0, r3
|
|
beq _082DFCF0
|
|
ldr r3, _082DFD04
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, 0x2C]
|
|
bl _082DFCB4
|
|
_082DFCF0:
|
|
strb r6, [r4]
|
|
_082DFCF2:
|
|
str r6, [r4, 0x2C]
|
|
ldr r4, [r4, 0x34]
|
|
cmp r4, 0
|
|
bne _082DFCD8
|
|
_082DFCFA:
|
|
str r4, [r5, 0x20]
|
|
_082DFCFC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082DFD04: .4byte 0x03007ff0
|
|
thumb_func_end TrackStop_rev01
|
|
|
|
thumb_func_start ChnVolSetAsm
|
|
ChnVolSetAsm: ; 82DFD08
|
|
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 _082DFD20
|
|
movs r0, 0xFF
|
|
_082DFD20:
|
|
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 _082DFD34
|
|
movs r0, 0xFF
|
|
_082DFD34:
|
|
strb r0, [r4, 0x3]
|
|
bx lr
|
|
thumb_func_end ChnVolSetAsm
|
|
|
|
thumb_func_start ply_note_rev01
|
|
ply_note_rev01: ; 82DFD38
|
|
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, _082DFF34
|
|
ldr r1, [r1]
|
|
str r1, [sp, 0x4]
|
|
ldr r1, _082DFF38
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r5, 0x4]
|
|
ldr r3, [r5, 0x40]
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x80
|
|
bcs _082DFD7E
|
|
strb r0, [r5, 0x5]
|
|
adds r3, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x80
|
|
bcs _082DFD7C
|
|
strb r0, [r5, 0x6]
|
|
adds r3, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x80
|
|
bcs _082DFD7C
|
|
ldrb r1, [r5, 0x4]
|
|
adds r1, r0
|
|
strb r1, [r5, 0x4]
|
|
adds r3, 0x1
|
|
_082DFD7C:
|
|
str r3, [r5, 0x40]
|
|
_082DFD7E:
|
|
movs r0, 0
|
|
str r0, [sp, 0x14]
|
|
adds r4, r5, 0
|
|
adds r4, 0x24
|
|
ldrb r2, [r4]
|
|
movs r0, 0xC0
|
|
tst r0, r2
|
|
beq _082DFDD0
|
|
ldrb r3, [r5, 0x5]
|
|
movs r0, 0x40
|
|
tst r0, r2
|
|
beq _082DFD9E
|
|
ldr r1, [r5, 0x2C]
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
b _082DFDA0
|
|
_082DFD9E:
|
|
adds r0, r3, 0
|
|
_082DFDA0:
|
|
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 _082DFDB8
|
|
b _082DFF22
|
|
_082DFDB8:
|
|
movs r0, 0x80
|
|
tst r0, r2
|
|
beq _082DFDD4
|
|
ldrb r1, [r6, 0x3]
|
|
movs r0, 0x80
|
|
tst r0, r1
|
|
beq _082DFDCC
|
|
subs r1, 0xC0
|
|
lsls r1, 1
|
|
str r1, [sp, 0x14]
|
|
_082DFDCC:
|
|
ldrb r3, [r6, 0x1]
|
|
b _082DFDD4
|
|
_082DFDD0:
|
|
mov r9, r4
|
|
ldrb r3, [r5, 0x5]
|
|
_082DFDD4:
|
|
str r3, [sp, 0x8]
|
|
ldr r6, [sp]
|
|
ldrb r1, [r6, 0x9]
|
|
ldrb r0, [r5, 0x1D]
|
|
adds r0, r1
|
|
cmp r0, 0xFF
|
|
bls _082DFDE4
|
|
movs r0, 0xFF
|
|
_082DFDE4:
|
|
str r0, [sp, 0x10]
|
|
mov r6, r9
|
|
ldrb r0, [r6]
|
|
movs r6, 0x7
|
|
ands r6, r0
|
|
str r6, [sp, 0xC]
|
|
beq _082DFE24
|
|
ldr r0, [sp, 0x4]
|
|
ldr r4, [r0, 0x1C]
|
|
cmp r4, 0
|
|
bne _082DFDFC
|
|
b _082DFF22
|
|
_082DFDFC:
|
|
subs r6, 0x1
|
|
lsls r0, r6, 6
|
|
adds r4, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0xC7
|
|
tst r0, r1
|
|
beq _082DFE78
|
|
movs r0, 0x40
|
|
tst r0, r1
|
|
bne _082DFE78
|
|
ldrb r1, [r4, 0x13]
|
|
ldr r0, [sp, 0x10]
|
|
cmp r1, r0
|
|
bcc _082DFE78
|
|
beq _082DFE1C
|
|
b _082DFF22
|
|
_082DFE1C:
|
|
ldr r0, [r4, 0x2C]
|
|
cmp r0, r5
|
|
bcs _082DFE78
|
|
b _082DFF22
|
|
_082DFE24:
|
|
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
|
|
_082DFE32:
|
|
ldrb r1, [r4]
|
|
movs r0, 0xC7
|
|
tst r0, r1
|
|
beq _082DFE78
|
|
movs r0, 0x40
|
|
tst r0, r1
|
|
beq _082DFE4C
|
|
cmp r2, 0
|
|
bne _082DFE50
|
|
adds r2, 0x1
|
|
ldrb r6, [r4, 0x13]
|
|
ldr r7, [r4, 0x2C]
|
|
b _082DFE6A
|
|
_082DFE4C:
|
|
cmp r2, 0
|
|
bne _082DFE6C
|
|
_082DFE50:
|
|
ldrb r0, [r4, 0x13]
|
|
cmp r0, r6
|
|
bcs _082DFE5C
|
|
adds r6, r0, 0
|
|
ldr r7, [r4, 0x2C]
|
|
b _082DFE6A
|
|
_082DFE5C:
|
|
bhi _082DFE6C
|
|
ldr r0, [r4, 0x2C]
|
|
cmp r0, r7
|
|
bls _082DFE68
|
|
adds r7, r0, 0
|
|
b _082DFE6A
|
|
_082DFE68:
|
|
bcc _082DFE6C
|
|
_082DFE6A:
|
|
mov r8, r4
|
|
_082DFE6C:
|
|
adds r4, 0x40
|
|
subs r3, 0x1
|
|
bgt _082DFE32
|
|
mov r4, r8
|
|
cmp r4, 0
|
|
beq _082DFF22
|
|
_082DFE78:
|
|
adds r0, r4, 0
|
|
bl ClearChain_rev
|
|
movs r1, 0
|
|
str r1, [r4, 0x30]
|
|
ldr r3, [r5, 0x20]
|
|
str r3, [r4, 0x34]
|
|
cmp r3, 0
|
|
beq _082DFE8C
|
|
str r4, [r3, 0x30]
|
|
_082DFE8C:
|
|
str r4, [r5, 0x20]
|
|
str r5, [r4, 0x2C]
|
|
ldrb r0, [r5, 0x1B]
|
|
strb r0, [r5, 0x1C]
|
|
cmp r0, r1
|
|
beq _082DFE9E
|
|
adds r1, r5, 0
|
|
bl clear_modM
|
|
_082DFE9E:
|
|
ldr r0, [sp]
|
|
adds r1, r5, 0
|
|
bl TrkVolPitSet_rev01
|
|
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 _082DFED8
|
|
movs r3, 0
|
|
_082DFED8:
|
|
ldr r6, [sp, 0xC]
|
|
cmp r6, 0
|
|
beq _082DFF06
|
|
mov r6, r9
|
|
ldrb r0, [r6, 0x2]
|
|
strb r0, [r4, 0x1E]
|
|
ldrb r1, [r6, 0x3]
|
|
movs r0, 0x80
|
|
tst r0, r1
|
|
bne _082DFEF2
|
|
movs r0, 0x70
|
|
tst r0, r1
|
|
bne _082DFEF4
|
|
_082DFEF2:
|
|
movs r1, 0x8
|
|
_082DFEF4:
|
|
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 _082DFCB4
|
|
b _082DFF14
|
|
_082DFF06:
|
|
ldr r0, [r5, 0x3C]
|
|
str r0, [r4, 0x18]
|
|
ldrb r2, [r5, 0x9]
|
|
adds r1, r3, 0
|
|
adds r0, r7, 0
|
|
bl MidiKey2fr
|
|
_082DFF14:
|
|
str r0, [r4, 0x20]
|
|
movs r0, 0x80
|
|
strb r0, [r4]
|
|
ldrb r1, [r5]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
strb r0, [r5]
|
|
_082DFF22:
|
|
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
|
|
_082DFF34: .4byte 0x03007ff0
|
|
_082DFF38: .4byte gUnknown_08675C64
|
|
thumb_func_end ply_note_rev01
|
|
|
|
thumb_func_start ply_endtie_rev01
|
|
ply_endtie_rev01: ; 82DFF3C
|
|
push {r4,r5}
|
|
ldr r2, [r1, 0x40]
|
|
ldrb r3, [r2]
|
|
cmp r3, 0x80
|
|
bcs _082DFF4E
|
|
strb r3, [r1, 0x5]
|
|
adds r2, 0x1
|
|
str r2, [r1, 0x40]
|
|
b _082DFF50
|
|
_082DFF4E:
|
|
ldrb r3, [r1, 0x5]
|
|
_082DFF50:
|
|
ldr r1, [r1, 0x20]
|
|
cmp r1, 0
|
|
beq _082DFF78
|
|
movs r4, 0x83
|
|
movs r5, 0x40
|
|
_082DFF5A:
|
|
ldrb r2, [r1]
|
|
tst r2, r4
|
|
beq _082DFF72
|
|
tst r2, r5
|
|
bne _082DFF72
|
|
ldrb r0, [r1, 0x11]
|
|
cmp r0, r3
|
|
bne _082DFF72
|
|
movs r0, 0x40
|
|
orrs r2, r0
|
|
strb r2, [r1]
|
|
b _082DFF78
|
|
_082DFF72:
|
|
ldr r1, [r1, 0x34]
|
|
cmp r1, 0
|
|
bne _082DFF5A
|
|
_082DFF78:
|
|
pop {r4,r5}
|
|
bx lr
|
|
thumb_func_end ply_endtie_rev01
|
|
|
|
thumb_func_start clear_modM
|
|
clear_modM: ; 82DFF7C
|
|
movs r2, 0
|
|
strb r2, [r1, 0x16]
|
|
strb r2, [r1, 0x1A]
|
|
ldrb r2, [r1, 0x18]
|
|
cmp r2, 0
|
|
bne _082DFF8C
|
|
movs r2, 0xC
|
|
b _082DFF8E
|
|
_082DFF8C:
|
|
movs r2, 0x3
|
|
_082DFF8E:
|
|
ldrb r3, [r1]
|
|
orrs r3, r2
|
|
strb r3, [r1]
|
|
bx lr
|
|
thumb_func_end clear_modM
|
|
|
|
thumb_func_start ld_r3_tp_adr_i_rev
|
|
ld_r3_tp_adr_i_rev: ; 82DFF98
|
|
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_rev
|
|
|
|
thumb_func_start ply_lfos_rev01
|
|
ply_lfos_rev01: ; 82DFFA4
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i_rev
|
|
strb r3, [r1, 0x19]
|
|
cmp r3, 0
|
|
bne _082DFFB4
|
|
bl clear_modM
|
|
_082DFFB4:
|
|
bx r12
|
|
thumb_func_end ply_lfos_rev01
|
|
|
|
thumb_func_start ply_mod_rev01
|
|
ply_mod_rev01: ; 82DFFB8
|
|
mov r12, lr
|
|
bl ld_r3_tp_adr_i_rev
|
|
strb r3, [r1, 0x17]
|
|
cmp r3, 0
|
|
bne _082DFFC8
|
|
bl clear_modM
|
|
_082DFFC8:
|
|
bx r12
|
|
thumb_func_end ply_mod_rev01
|
|
|
|
thumb_func_start MidiKey2fr
|
|
MidiKey2fr: ; 82DFFCC
|
|
push {r4-r7,lr}
|
|
mov r12, r0
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
lsls r7, r2, 24
|
|
cmp r6, 0xB2
|
|
bls _082DFFE0
|
|
movs r6, 0xB2
|
|
movs r7, 0xFF
|
|
lsls r7, 24
|
|
_082DFFE0:
|
|
ldr r3, _082E0028
|
|
adds r0, r6, r3
|
|
ldrb r5, [r0]
|
|
ldr r4, _082E002C
|
|
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
|
|
_082E0028: .4byte gUnknown_08675A80
|
|
_082E002C: .4byte gUnknown_08675B34
|
|
thumb_func_end MidiKey2fr
|
|
|
|
thumb_func_start DummyFunc
|
|
DummyFunc: ; 82E0030
|
|
bx lr
|
|
thumb_func_end DummyFunc
|
|
|
|
thumb_func_start MPlayContinue
|
|
MPlayContinue: ; 82E0034
|
|
adds r2, r0, 0
|
|
ldr r3, [r2, 0x34]
|
|
ldr r0, _082E0048
|
|
cmp r3, r0
|
|
bne _082E0046
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, _082E004C
|
|
ands r0, r1
|
|
str r0, [r2, 0x4]
|
|
_082E0046:
|
|
bx lr
|
|
.align 2, 0
|
|
_082E0048: .4byte 0x68736d53
|
|
_082E004C: .4byte 0x7fffffff
|
|
thumb_func_end MPlayContinue
|
|
|
|
thumb_func_start MPlayFadeOut
|
|
; void MPlayFadeOut(mplay_table_entry *a1, s16 a2)
|
|
MPlayFadeOut: ; 82E0050
|
|
adds r2, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r3, [r2, 0x34]
|
|
ldr r0, _082E006C
|
|
cmp r3, r0
|
|
bne _082E0068
|
|
strh r1, [r2, 0x26]
|
|
strh r1, [r2, 0x24]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r2, 0x28]
|
|
_082E0068:
|
|
bx lr
|
|
.align 2, 0
|
|
_082E006C: .4byte 0x68736d53
|
|
thumb_func_end MPlayFadeOut
|
|
|
|
thumb_func_start m4aSoundInit
|
|
m4aSoundInit: ; 82E0070
|
|
push {r4-r6,lr}
|
|
ldr r0, _082E00F0
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
ands r0, r1
|
|
ldr r1, _082E00F4
|
|
ldr r2, _082E00F8
|
|
bl CpuSet
|
|
ldr r0, _082E00FC
|
|
bl SoundInit_rev01
|
|
ldr r0, _082E0100
|
|
bl MPlayExtender
|
|
ldr r0, _082E0104
|
|
bl SoundMode_rev01
|
|
ldr r0, _082E0108
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
beq _082E00BE
|
|
ldr r6, _082E010C
|
|
adds r5, r0, 0
|
|
_082E00A2:
|
|
ldr r4, [r6]
|
|
ldr r1, [r6, 0x4]
|
|
ldrb r2, [r6, 0x8]
|
|
adds r0, r4, 0
|
|
bl MPlayOpen_rev01
|
|
ldrh r0, [r6, 0xA]
|
|
strb r0, [r4, 0xB]
|
|
ldr r0, _082E0110
|
|
str r0, [r4, 0x18]
|
|
adds r6, 0xC
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bne _082E00A2
|
|
_082E00BE:
|
|
ldr r0, _082E0114
|
|
ldr r1, _082E0118
|
|
movs r2, 0x34
|
|
bl memcpy
|
|
movs r5, 0
|
|
movs r6, 0
|
|
_082E00CC:
|
|
lsls r0, r5, 6
|
|
ldr r1, _082E011C
|
|
adds r0, r1
|
|
ldr r4, _082E0120
|
|
adds r4, r6, r4
|
|
adds r1, r4, 0
|
|
movs r2, 0x2
|
|
bl MPlayOpen_rev01
|
|
movs r0, 0
|
|
str r0, [r4, 0x20]
|
|
adds r6, 0xA0
|
|
adds r5, 0x1
|
|
cmp r5, 0x1
|
|
ble _082E00CC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E00F0: .4byte SoundMainRAM
|
|
_082E00F4: .4byte 0x03001aa8
|
|
_082E00F8: .4byte 0x04000200
|
|
_082E00FC: .4byte 0x03006380
|
|
_082E0100: .4byte 0x030074f0
|
|
_082E0104: .4byte 0x0094c500
|
|
_082E0108: .4byte 0x00000004
|
|
_082E010C: .4byte gUnknown_086B49C0
|
|
_082E0110: .4byte 0x030077f0
|
|
_082E0114: .4byte 0x030077b0
|
|
_082E0118: .4byte gUnknown_08675C98
|
|
_082E011C: .4byte 0x030073a0
|
|
_082E0120: .4byte 0x03007670
|
|
thumb_func_end m4aSoundInit
|
|
|
|
thumb_func_start m4aSoundMain
|
|
m4aSoundMain: ; 82E0124
|
|
push {lr}
|
|
bl SoundMain
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end m4aSoundMain
|
|
|
|
thumb_func_start m4aSongNumStart
|
|
m4aSongNumStart: ; 82E0130
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r2, _082E0154
|
|
ldr r1, _082E0158
|
|
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 MPlayStart_rev01
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E0154: .4byte gUnknown_086B49C0
|
|
_082E0158: .4byte gUnknown_086B49F0
|
|
thumb_func_end m4aSongNumStart
|
|
|
|
thumb_func_start m4aSongNumStartOrChange
|
|
m4aSongNumStartOrChange: ; 82E015C
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r2, _082E0188
|
|
ldr r1, _082E018C
|
|
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 _082E0190
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
bl MPlayStart_rev01
|
|
b _082E01A4
|
|
.align 2, 0
|
|
_082E0188: .4byte gUnknown_086B49C0
|
|
_082E018C: .4byte gUnknown_086B49F0
|
|
_082E0190:
|
|
ldr r2, [r1, 0x4]
|
|
ldrh r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _082E019C
|
|
cmp r2, 0
|
|
bge _082E01A4
|
|
_082E019C:
|
|
adds r0, r1, 0
|
|
adds r1, r3, 0
|
|
bl MPlayStart_rev01
|
|
_082E01A4:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end m4aSongNumStartOrChange
|
|
|
|
thumb_func_start m4aSongNumStartOrContinue
|
|
m4aSongNumStartOrContinue: ; 82E01A8
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r2, _082E01D4
|
|
ldr r1, _082E01D8
|
|
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 _082E01DC
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
bl MPlayStart_rev01
|
|
b _082E01F8
|
|
.align 2, 0
|
|
_082E01D4: .4byte gUnknown_086B49C0
|
|
_082E01D8: .4byte gUnknown_086B49F0
|
|
_082E01DC:
|
|
ldr r2, [r1, 0x4]
|
|
ldrh r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bne _082E01EE
|
|
adds r0, r1, 0
|
|
adds r1, r3, 0
|
|
bl MPlayStart_rev01
|
|
b _082E01F8
|
|
_082E01EE:
|
|
cmp r2, 0
|
|
bge _082E01F8
|
|
adds r0, r1, 0
|
|
bl MPlayContinue
|
|
_082E01F8:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end m4aSongNumStartOrContinue
|
|
|
|
thumb_func_start m4aSongNumStop
|
|
m4aSongNumStop: ; 82E01FC
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r2, _082E0228
|
|
ldr r1, _082E022C
|
|
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 _082E0222
|
|
adds r0, r2, 0
|
|
bl MPlayStop_rev01
|
|
_082E0222:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E0228: .4byte gUnknown_086B49C0
|
|
_082E022C: .4byte gUnknown_086B49F0
|
|
thumb_func_end m4aSongNumStop
|
|
|
|
thumb_func_start m4aSongNumContinue
|
|
m4aSongNumContinue: ; 82E0230
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r2, _082E025C
|
|
ldr r1, _082E0260
|
|
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 _082E0256
|
|
adds r0, r2, 0
|
|
bl MPlayContinue
|
|
_082E0256:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E025C: .4byte gUnknown_086B49C0
|
|
_082E0260: .4byte gUnknown_086B49F0
|
|
thumb_func_end m4aSongNumContinue
|
|
|
|
thumb_func_start m4aMPlayAllStop
|
|
m4aMPlayAllStop: ; 82E0264
|
|
push {r4,r5,lr}
|
|
ldr r0, _082E029C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
beq _082E0282
|
|
ldr r5, _082E02A0
|
|
adds r4, r0, 0
|
|
_082E0274:
|
|
ldr r0, [r5]
|
|
bl MPlayStop_rev01
|
|
adds r5, 0xC
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _082E0274
|
|
_082E0282:
|
|
ldr r5, _082E02A4
|
|
movs r4, 0x1
|
|
_082E0286:
|
|
adds r0, r5, 0
|
|
bl MPlayStop_rev01
|
|
adds r5, 0x40
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _082E0286
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E029C: .4byte 0x00000004
|
|
_082E02A0: .4byte gUnknown_086B49C0
|
|
_082E02A4: .4byte 0x030073a0
|
|
thumb_func_end m4aMPlayAllStop
|
|
|
|
thumb_func_start m4aMPlayContinue
|
|
m4aMPlayContinue: ; 82E02A8
|
|
push {lr}
|
|
bl MPlayContinue
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end m4aMPlayContinue
|
|
|
|
thumb_func_start m4aMPlayAllContinue
|
|
m4aMPlayAllContinue: ; 82E02B2
|
|
push {r4,r5,lr}
|
|
ldr r0, _082E02EC
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
beq _082E02D2
|
|
ldr r5, _082E02F0
|
|
adds r4, r0, 0
|
|
_082E02C4:
|
|
ldr r0, [r5]
|
|
bl MPlayContinue
|
|
adds r5, 0xC
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _082E02C4
|
|
_082E02D2:
|
|
ldr r5, _082E02F4
|
|
movs r4, 0x1
|
|
_082E02D6:
|
|
adds r0, r5, 0
|
|
bl MPlayContinue
|
|
adds r5, 0x40
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _082E02D6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E02EC: .4byte 0x00000004
|
|
_082E02F0: .4byte gUnknown_086B49C0
|
|
_082E02F4: .4byte 0x030073a0
|
|
thumb_func_end m4aMPlayAllContinue
|
|
|
|
thumb_func_start m4aMPlayFadeOut
|
|
; void m4aMPlayFadeOut(mplay_table_entry *a1, u16 a2)
|
|
m4aMPlayFadeOut: ; 82E02F8
|
|
push {lr}
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl MPlayFadeOut
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end m4aMPlayFadeOut
|
|
|
|
thumb_func_start sub_82E0308
|
|
sub_82E0308: ; 82E0308
|
|
adds r2, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r3, [r2, 0x34]
|
|
ldr r0, _082E0320
|
|
cmp r3, r0
|
|
bne _082E031E
|
|
strh r1, [r2, 0x26]
|
|
strh r1, [r2, 0x24]
|
|
ldr r0, _082E0324
|
|
strh r0, [r2, 0x28]
|
|
_082E031E:
|
|
bx lr
|
|
.align 2, 0
|
|
_082E0320: .4byte 0x68736d53
|
|
_082E0324: .4byte 0x00000101
|
|
thumb_func_end sub_82E0308
|
|
|
|
thumb_func_start sub_82E0328
|
|
sub_82E0328: ; 82E0328
|
|
adds r2, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r3, [r2, 0x34]
|
|
ldr r0, _082E0348
|
|
cmp r3, r0
|
|
bne _082E0346
|
|
strh r1, [r2, 0x26]
|
|
strh r1, [r2, 0x24]
|
|
movs r0, 0x2
|
|
strh r0, [r2, 0x28]
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, _082E034C
|
|
ands r0, r1
|
|
str r0, [r2, 0x4]
|
|
_082E0346:
|
|
bx lr
|
|
.align 2, 0
|
|
_082E0348: .4byte 0x68736d53
|
|
_082E034C: .4byte 0x7fffffff
|
|
thumb_func_end sub_82E0328
|
|
|
|
thumb_func_start m4aMPlayImmInit
|
|
m4aMPlayImmInit: ; 82E0350
|
|
push {r4-r7,lr}
|
|
ldrb r5, [r0, 0x8]
|
|
ldr r4, [r0, 0x2C]
|
|
cmp r5, 0
|
|
ble _082E0392
|
|
movs r7, 0x80
|
|
_082E035C:
|
|
ldrb r1, [r4]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E038A
|
|
movs r6, 0x40
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E038A
|
|
adds r0, r4, 0
|
|
bl Clear64byte_rev
|
|
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]
|
|
_082E038A:
|
|
subs r5, 0x1
|
|
adds r4, 0x50
|
|
cmp r5, 0
|
|
bgt _082E035C
|
|
_082E0392:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end m4aMPlayImmInit
|
|
|
|
thumb_func_start MPlayExtender
|
|
; int MPlayExtender(void *dest)
|
|
MPlayExtender: ; 82E0398
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
ldr r1, _082E0460
|
|
movs r0, 0x8F
|
|
strh r0, [r1]
|
|
ldr r3, _082E0464
|
|
movs r2, 0
|
|
strh r2, [r3]
|
|
ldr r0, _082E0468
|
|
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, _082E046C
|
|
ldr r4, [r0]
|
|
ldr r6, [r4]
|
|
ldr r0, _082E0470
|
|
cmp r6, r0
|
|
bne _082E0458
|
|
adds r0, r6, 0x1
|
|
str r0, [r4]
|
|
ldr r1, _082E0474
|
|
ldr r0, _082E0478
|
|
str r0, [r1, 0x20]
|
|
ldr r0, _082E047C
|
|
str r0, [r1, 0x44]
|
|
ldr r0, _082E0480
|
|
str r0, [r1, 0x4C]
|
|
ldr r0, _082E0484
|
|
str r0, [r1, 0x70]
|
|
ldr r0, _082E0488
|
|
str r0, [r1, 0x74]
|
|
ldr r0, _082E048C
|
|
str r0, [r1, 0x78]
|
|
ldr r0, _082E0490
|
|
str r0, [r1, 0x7C]
|
|
adds r2, r1, 0
|
|
adds r2, 0x80
|
|
ldr r0, _082E0494
|
|
str r0, [r2]
|
|
adds r1, 0x84
|
|
ldr r0, _082E0498
|
|
str r0, [r1]
|
|
str r5, [r4, 0x1C]
|
|
ldr r0, _082E049C
|
|
str r0, [r4, 0x28]
|
|
ldr r0, _082E04A0
|
|
str r0, [r4, 0x2C]
|
|
ldr r0, _082E04A4
|
|
str r0, [r4, 0x30]
|
|
ldr r0, _082E04A8
|
|
movs r1, 0
|
|
strb r0, [r4, 0xC]
|
|
str r1, [sp]
|
|
ldr r2, _082E04AC
|
|
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]
|
|
_082E0458:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E0460: .4byte 0x04000084
|
|
_082E0464: .4byte 0x04000080
|
|
_082E0468: .4byte 0x04000063
|
|
_082E046C: .4byte 0x03007ff0
|
|
_082E0470: .4byte 0x68736d53
|
|
_082E0474: .4byte 0x03007460
|
|
_082E0478: .4byte ply_memacc
|
|
_082E047C: .4byte ply_lfos_rev01
|
|
_082E0480: .4byte ply_mod_rev01
|
|
_082E0484: .4byte ply_xcmd
|
|
_082E0488: .4byte ply_endtie_rev01
|
|
_082E048C: .4byte SampFreqSet_rev01
|
|
_082E0490: .4byte TrackStop_rev01
|
|
_082E0494: .4byte FadeOutBody_rev01
|
|
_082E0498: .4byte TrkVolPitSet_rev01
|
|
_082E049C: .4byte CgbSound
|
|
_082E04A0: .4byte CgbOscOff
|
|
_082E04A4: .4byte MidiKey2CgbFr
|
|
_082E04A8: .4byte 0x00000000
|
|
_082E04AC: .4byte 0x05000040
|
|
thumb_func_end MPlayExtender
|
|
|
|
thumb_func_start MusicPlayerJumpTableCopy
|
|
MusicPlayerJumpTableCopy: ; 82E04B0
|
|
swi 0x2A
|
|
bx lr
|
|
thumb_func_end MusicPlayerJumpTableCopy
|
|
|
|
thumb_func_start ClearChain_rev
|
|
ClearChain_rev: ; 82E04B4
|
|
push {lr}
|
|
ldr r1, _082E04C4
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E04C4: .4byte 0x030074e8
|
|
thumb_func_end ClearChain_rev
|
|
|
|
thumb_func_start Clear64byte_rev
|
|
Clear64byte_rev: ; 82E04C8
|
|
push {lr}
|
|
ldr r1, _082E04D8
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E04D8: .4byte 0x030074ec
|
|
thumb_func_end Clear64byte_rev
|
|
|
|
thumb_func_start SoundInit_rev01
|
|
; int SoundInit_rev01(void *dest)
|
|
SoundInit_rev01: ; 82E04DC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r3, 0
|
|
str r3, [r5]
|
|
ldr r1, _082E0594
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 18
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _082E04F8
|
|
ldr r0, _082E0598
|
|
str r0, [r1]
|
|
_082E04F8:
|
|
ldr r1, _082E059C
|
|
ldr r0, [r1]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _082E0506
|
|
ldr r0, _082E0598
|
|
str r0, [r1]
|
|
_082E0506:
|
|
ldr r0, _082E05A0
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
adds r0, 0xC
|
|
strh r1, [r0]
|
|
ldr r1, _082E05A4
|
|
movs r0, 0x8F
|
|
strh r0, [r1]
|
|
subs r1, 0x2
|
|
ldr r2, _082E05A8
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r2, _082E05AC
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _082E05B0
|
|
movs r2, 0xD4
|
|
lsls r2, 2
|
|
adds r0, r5, r2
|
|
str r0, [r1]
|
|
adds r1, 0x4
|
|
ldr r0, _082E05B4
|
|
str r0, [r1]
|
|
adds r1, 0x8
|
|
movs r2, 0x98
|
|
lsls r2, 4
|
|
adds r0, r5, r2
|
|
str r0, [r1]
|
|
adds r1, 0x4
|
|
ldr r0, _082E05B8
|
|
str r0, [r1]
|
|
ldr r0, _082E05BC
|
|
str r5, [r0]
|
|
str r3, [sp]
|
|
ldr r2, _082E05C0
|
|
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, _082E05C4
|
|
str r0, [r5, 0x38]
|
|
ldr r0, _082E05C8
|
|
str r0, [r5, 0x28]
|
|
str r0, [r5, 0x2C]
|
|
str r0, [r5, 0x30]
|
|
str r0, [r5, 0x3C]
|
|
ldr r4, _082E05CC
|
|
adds r0, r4, 0
|
|
bl MPlyJmpTblCopy
|
|
str r4, [r5, 0x34]
|
|
movs r0, 0x80
|
|
lsls r0, 11
|
|
bl SampFreqSet_rev01
|
|
ldr r0, _082E05D0
|
|
str r0, [r5]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E0594: .4byte 0x040000c4
|
|
_082E0598: .4byte 0x84400004
|
|
_082E059C: .4byte 0x040000d0
|
|
_082E05A0: .4byte 0x040000c6
|
|
_082E05A4: .4byte 0x04000084
|
|
_082E05A8: .4byte 0x0000a90e
|
|
_082E05AC: .4byte 0x04000089
|
|
_082E05B0: .4byte 0x040000bc
|
|
_082E05B4: .4byte 0x040000a0
|
|
_082E05B8: .4byte 0x040000a4
|
|
_082E05BC: .4byte 0x03007ff0
|
|
_082E05C0: .4byte 0x050003ec
|
|
_082E05C4: .4byte ply_note_rev01
|
|
_082E05C8: .4byte DummyFunc_rev
|
|
_082E05CC: .4byte 0x03007460
|
|
_082E05D0: .4byte 0x68736d53
|
|
thumb_func_end SoundInit_rev01
|
|
|
|
thumb_func_start SampFreqSet_rev01
|
|
SampFreqSet_rev01: ; 82E05D4
|
|
push {r4-r6,lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _082E0654
|
|
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, _082E0658
|
|
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, _082E065C
|
|
muls r0, r5
|
|
ldr r1, _082E0660
|
|
adds r0, r1
|
|
ldr r1, _082E0664
|
|
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, _082E0668
|
|
strh r6, [r0]
|
|
ldr r4, _082E066C
|
|
ldr r0, _082E0670
|
|
adds r1, r5, 0
|
|
bl __divsi3
|
|
negs r0, r0
|
|
strh r0, [r4]
|
|
bl SoundVSyncOn_rev01
|
|
ldr r1, _082E0674
|
|
_082E0638:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x9F
|
|
beq _082E0638
|
|
ldr r1, _082E0674
|
|
_082E0640:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x9F
|
|
bne _082E0640
|
|
ldr r1, _082E0668
|
|
movs r0, 0x80
|
|
strh r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E0654: .4byte 0x03007ff0
|
|
_082E0658: .4byte gUnknown_08675B64
|
|
_082E065C: .4byte 0x00091d1b
|
|
_082E0660: .4byte 0x00001388
|
|
_082E0664: .4byte 0x00002710
|
|
_082E0668: .4byte 0x04000102
|
|
_082E066C: .4byte 0x04000100
|
|
_082E0670: .4byte 0x00044940
|
|
_082E0674: .4byte 0x04000006
|
|
thumb_func_end SampFreqSet_rev01
|
|
|
|
thumb_func_start SoundMode_rev01
|
|
SoundMode_rev01: ; 82E0678
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
ldr r0, _082E0704
|
|
ldr r5, [r0]
|
|
ldr r1, [r5]
|
|
ldr r0, _082E0708
|
|
cmp r1, r0
|
|
bne _082E06FE
|
|
adds r0, r1, 0x1
|
|
str r0, [r5]
|
|
movs r4, 0xFF
|
|
ands r4, r3
|
|
cmp r4, 0
|
|
beq _082E069A
|
|
movs r0, 0x7F
|
|
ands r4, r0
|
|
strb r4, [r5, 0x5]
|
|
_082E069A:
|
|
movs r4, 0xF0
|
|
lsls r4, 4
|
|
ands r4, r3
|
|
cmp r4, 0
|
|
beq _082E06BA
|
|
lsrs r0, r4, 8
|
|
strb r0, [r5, 0x6]
|
|
movs r4, 0xC
|
|
adds r0, r5, 0
|
|
adds r0, 0x50
|
|
movs r1, 0
|
|
_082E06B0:
|
|
strb r1, [r0]
|
|
subs r4, 0x1
|
|
adds r0, 0x40
|
|
cmp r4, 0
|
|
bne _082E06B0
|
|
_082E06BA:
|
|
movs r4, 0xF0
|
|
lsls r4, 8
|
|
ands r4, r3
|
|
cmp r4, 0
|
|
beq _082E06C8
|
|
lsrs r0, r4, 12
|
|
strb r0, [r5, 0x7]
|
|
_082E06C8:
|
|
movs r4, 0xB0
|
|
lsls r4, 16
|
|
ands r4, r3
|
|
cmp r4, 0
|
|
beq _082E06E6
|
|
movs r0, 0xC0
|
|
lsls r0, 14
|
|
ands r0, r4
|
|
lsrs r4, r0, 14
|
|
ldr r2, _082E070C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
orrs r0, r4
|
|
strb r0, [r2]
|
|
_082E06E6:
|
|
movs r4, 0xF0
|
|
lsls r4, 12
|
|
ands r4, r3
|
|
cmp r4, 0
|
|
beq _082E06FA
|
|
bl SoundVSyncOff_rev01
|
|
adds r0, r4, 0
|
|
bl SampFreqSet_rev01
|
|
_082E06FA:
|
|
ldr r0, _082E0708
|
|
str r0, [r5]
|
|
_082E06FE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E0704: .4byte 0x03007ff0
|
|
_082E0708: .4byte 0x68736d53
|
|
_082E070C: .4byte 0x04000089
|
|
thumb_func_end SoundMode_rev01
|
|
|
|
thumb_func_start SoundClear_rev01
|
|
SoundClear_rev01: ; 82E0710
|
|
push {r4-r7,lr}
|
|
ldr r0, _082E075C
|
|
ldr r6, [r0]
|
|
ldr r1, [r6]
|
|
ldr r0, _082E0760
|
|
cmp r1, r0
|
|
bne _082E0756
|
|
adds r0, r1, 0x1
|
|
str r0, [r6]
|
|
movs r5, 0xC
|
|
adds r4, r6, 0
|
|
adds r4, 0x50
|
|
movs r0, 0
|
|
_082E072A:
|
|
strb r0, [r4]
|
|
subs r5, 0x1
|
|
adds r4, 0x40
|
|
cmp r5, 0
|
|
bgt _082E072A
|
|
ldr r4, [r6, 0x1C]
|
|
cmp r4, 0
|
|
beq _082E0752
|
|
movs r5, 0x1
|
|
movs r7, 0
|
|
_082E073E:
|
|
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 _082E073E
|
|
_082E0752:
|
|
ldr r0, _082E0760
|
|
str r0, [r6]
|
|
_082E0756:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E075C: .4byte 0x03007ff0
|
|
_082E0760: .4byte 0x68736d53
|
|
thumb_func_end SoundClear_rev01
|
|
|
|
thumb_func_start SoundVSyncOff_rev01
|
|
SoundVSyncOff_rev01: ; 82E0764
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, _082E07C4
|
|
ldr r2, [r0]
|
|
ldr r1, [r2]
|
|
ldr r3, _082E07C8
|
|
adds r0, r1, r3
|
|
cmp r0, 0x1
|
|
bhi _082E07BC
|
|
adds r0, r1, 0
|
|
adds r0, 0xA
|
|
str r0, [r2]
|
|
ldr r1, _082E07CC
|
|
ldr r0, [r1]
|
|
movs r3, 0x80
|
|
lsls r3, 18
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _082E078E
|
|
ldr r0, _082E07D0
|
|
str r0, [r1]
|
|
_082E078E:
|
|
ldr r1, _082E07D4
|
|
ldr r0, [r1]
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _082E079C
|
|
ldr r0, _082E07D0
|
|
str r0, [r1]
|
|
_082E079C:
|
|
ldr r0, _082E07D8
|
|
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, _082E07DC
|
|
mov r0, sp
|
|
bl CpuSet
|
|
_082E07BC:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E07C4: .4byte 0x03007ff0
|
|
_082E07C8: .4byte 0x978c92ad
|
|
_082E07CC: .4byte 0x040000c4
|
|
_082E07D0: .4byte 0x84400004
|
|
_082E07D4: .4byte 0x040000d0
|
|
_082E07D8: .4byte 0x040000c6
|
|
_082E07DC: .4byte 0x05000318
|
|
thumb_func_end SoundVSyncOff_rev01
|
|
|
|
thumb_func_start SoundVSyncOn_rev01
|
|
SoundVSyncOn_rev01: ; 82E07E0
|
|
push {r4,lr}
|
|
ldr r0, _082E0810
|
|
ldr r2, [r0]
|
|
ldr r3, [r2]
|
|
ldr r0, _082E0814
|
|
cmp r3, r0
|
|
beq _082E0808
|
|
ldr r0, _082E0818
|
|
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]
|
|
_082E0808:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E0810: .4byte 0x03007ff0
|
|
_082E0814: .4byte 0x68736d53
|
|
_082E0818: .4byte 0x040000c6
|
|
thumb_func_end SoundVSyncOn_rev01
|
|
|
|
thumb_func_start MPlayOpen_rev01
|
|
MPlayOpen_rev01: ; 82E081C
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
adds r6, r1, 0
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
cmp r4, 0
|
|
beq _082E0880
|
|
cmp r4, 0x10
|
|
bls _082E0830
|
|
movs r4, 0x10
|
|
_082E0830:
|
|
ldr r0, _082E0888
|
|
ldr r5, [r0]
|
|
ldr r1, [r5]
|
|
ldr r0, _082E088C
|
|
cmp r1, r0
|
|
bne _082E0880
|
|
adds r0, r1, 0x1
|
|
str r0, [r5]
|
|
adds r0, r7, 0
|
|
bl Clear64byte_rev
|
|
str r6, [r7, 0x2C]
|
|
strb r4, [r7, 0x8]
|
|
movs r0, 0x80
|
|
lsls r0, 24
|
|
str r0, [r7, 0x4]
|
|
cmp r4, 0
|
|
beq _082E0864
|
|
movs r1, 0
|
|
_082E0856:
|
|
strb r1, [r6]
|
|
subs r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r6, 0x50
|
|
cmp r4, 0
|
|
bne _082E0856
|
|
_082E0864:
|
|
ldr r0, [r5, 0x20]
|
|
cmp r0, 0
|
|
beq _082E0874
|
|
str r0, [r7, 0x38]
|
|
ldr r0, [r5, 0x24]
|
|
str r0, [r7, 0x3C]
|
|
movs r0, 0
|
|
str r0, [r5, 0x20]
|
|
_082E0874:
|
|
str r7, [r5, 0x24]
|
|
ldr r0, _082E0890
|
|
str r0, [r5, 0x20]
|
|
ldr r0, _082E088C
|
|
str r0, [r5]
|
|
str r0, [r7, 0x34]
|
|
_082E0880:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E0888: .4byte 0x03007ff0
|
|
_082E088C: .4byte 0x68736d53
|
|
_082E0890: .4byte MPlayMain_rev01
|
|
thumb_func_end MPlayOpen_rev01
|
|
|
|
thumb_func_start MPlayStart_rev01
|
|
MPlayStart_rev01: ; 82E0894
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
ldr r1, [r5, 0x34]
|
|
ldr r0, _082E0974
|
|
cmp r1, r0
|
|
bne _082E096A
|
|
ldrb r0, [r5, 0xB]
|
|
ldrb r2, [r7, 0x2]
|
|
cmp r0, 0
|
|
beq _082E08D6
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _082E08C0
|
|
ldr r1, [r5, 0x2C]
|
|
movs r0, 0x40
|
|
ldrb r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _082E08CC
|
|
_082E08C0:
|
|
ldr r1, [r5, 0x4]
|
|
ldrh r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
beq _082E08D6
|
|
cmp r1, 0
|
|
blt _082E08D6
|
|
_082E08CC:
|
|
ldrb r0, [r7, 0x2]
|
|
adds r2, r0, 0
|
|
ldrb r0, [r5, 0x9]
|
|
cmp r0, r2
|
|
bhi _082E096A
|
|
_082E08D6:
|
|
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 _082E0936
|
|
ldrb r0, [r5, 0x8]
|
|
cmp r6, r0
|
|
bge _082E0956
|
|
mov r8, r6
|
|
_082E090A:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl TrackStop_rev01
|
|
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 _082E0936
|
|
ldrb r1, [r5, 0x8]
|
|
cmp r6, r1
|
|
blt _082E090A
|
|
_082E0936:
|
|
ldrb r0, [r5, 0x8]
|
|
cmp r6, r0
|
|
bge _082E0956
|
|
movs r1, 0
|
|
mov r8, r1
|
|
_082E0940:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl TrackStop_rev01
|
|
mov r0, r8
|
|
strb r0, [r4]
|
|
adds r6, 0x1
|
|
adds r4, 0x50
|
|
ldrb r1, [r5, 0x8]
|
|
cmp r6, r1
|
|
blt _082E0940
|
|
_082E0956:
|
|
movs r0, 0x80
|
|
ldrb r1, [r7, 0x3]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E0966
|
|
ldrb r0, [r7, 0x3]
|
|
bl SoundMode_rev01
|
|
_082E0966:
|
|
ldr r0, _082E0974
|
|
str r0, [r5, 0x34]
|
|
_082E096A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E0974: .4byte 0x68736d53
|
|
thumb_func_end MPlayStart_rev01
|
|
|
|
thumb_func_start MPlayStop_rev01
|
|
MPlayStop_rev01: ; 82E0978
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldr r1, [r6, 0x34]
|
|
ldr r0, _082E09B4
|
|
cmp r1, r0
|
|
bne _082E09AE
|
|
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 _082E09AA
|
|
_082E099A:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl TrackStop_rev01
|
|
subs r4, 0x1
|
|
adds r5, 0x50
|
|
cmp r4, 0
|
|
bgt _082E099A
|
|
_082E09AA:
|
|
ldr r0, _082E09B4
|
|
str r0, [r6, 0x34]
|
|
_082E09AE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E09B4: .4byte 0x68736d53
|
|
thumb_func_end MPlayStop_rev01
|
|
|
|
thumb_func_start FadeOutBody_rev01
|
|
FadeOutBody_rev01: ; 82E09B8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
ldrh r1, [r6, 0x24]
|
|
cmp r1, 0
|
|
beq _082E0A7A
|
|
ldrh r0, [r6, 0x26]
|
|
subs r0, 0x1
|
|
strh r0, [r6, 0x26]
|
|
ldr r3, _082E09F8
|
|
adds r2, r3, 0
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0
|
|
bne _082E0A7A
|
|
strh r1, [r6, 0x26]
|
|
ldrh r1, [r6, 0x28]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E09FC
|
|
adds r0, r1, 0
|
|
adds r0, 0x10
|
|
strh r0, [r6, 0x28]
|
|
ands r0, r2
|
|
cmp r0, 0xFF
|
|
bls _082E0A4E
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r6, 0x28]
|
|
strh r3, [r6, 0x24]
|
|
b _082E0A4E
|
|
.align 2, 0
|
|
_082E09F8: .4byte 0x0000ffff
|
|
_082E09FC:
|
|
adds r0, r1, 0
|
|
subs r0, 0x10
|
|
strh r0, [r6, 0x28]
|
|
ands r0, r2
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _082E0A4E
|
|
ldrb r5, [r6, 0x8]
|
|
ldr r4, [r6, 0x2C]
|
|
cmp r5, 0
|
|
ble _082E0A2E
|
|
_082E0A12:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl TrackStop_rev01
|
|
movs r0, 0x1
|
|
ldrh r7, [r6, 0x28]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _082E0A26
|
|
strb r0, [r4]
|
|
_082E0A26:
|
|
subs r5, 0x1
|
|
adds r4, 0x50
|
|
cmp r5, 0
|
|
bgt _082E0A12
|
|
_082E0A2E:
|
|
movs r0, 0x1
|
|
ldrh r1, [r6, 0x28]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E0A42
|
|
ldr r0, [r6, 0x4]
|
|
movs r1, 0x80
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
b _082E0A46
|
|
_082E0A42:
|
|
movs r0, 0x80
|
|
lsls r0, 24
|
|
_082E0A46:
|
|
str r0, [r6, 0x4]
|
|
movs r0, 0
|
|
strh r0, [r6, 0x24]
|
|
b _082E0A7A
|
|
_082E0A4E:
|
|
ldrb r5, [r6, 0x8]
|
|
ldr r4, [r6, 0x2C]
|
|
cmp r5, 0
|
|
ble _082E0A7A
|
|
movs r3, 0x80
|
|
movs r7, 0
|
|
movs r2, 0x3
|
|
_082E0A5C:
|
|
ldrb r1, [r4]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E0A72
|
|
ldrh r7, [r6, 0x28]
|
|
lsrs r0, r7, 2
|
|
strb r0, [r4, 0x13]
|
|
adds r0, r1, 0
|
|
orrs r0, r2
|
|
strb r0, [r4]
|
|
_082E0A72:
|
|
subs r5, 0x1
|
|
adds r4, 0x50
|
|
cmp r5, 0
|
|
bgt _082E0A5C
|
|
_082E0A7A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end FadeOutBody_rev01
|
|
|
|
thumb_func_start TrkVolPitSet_rev01
|
|
TrkVolPitSet_rev01: ; 82E0A80
|
|
push {r4,lr}
|
|
adds r2, r1, 0
|
|
movs r0, 0x1
|
|
ldrb r1, [r2]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E0AE4
|
|
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 _082E0AA8
|
|
movs r0, 0x16
|
|
ldrsb r0, [r2, r0]
|
|
adds r0, 0x80
|
|
muls r0, r3
|
|
lsrs r3, r0, 7
|
|
_082E0AA8:
|
|
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 _082E0ABE
|
|
movs r0, 0x16
|
|
ldrsb r0, [r2, r0]
|
|
adds r1, r0
|
|
_082E0ABE:
|
|
movs r0, 0x80
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bge _082E0ACA
|
|
adds r1, r0, 0
|
|
b _082E0AD0
|
|
_082E0ACA:
|
|
cmp r1, 0x7F
|
|
ble _082E0AD0
|
|
movs r1, 0x7F
|
|
_082E0AD0:
|
|
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]
|
|
_082E0AE4:
|
|
ldrb r1, [r2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
adds r3, r1, 0
|
|
cmp r0, 0
|
|
beq _082E0B28
|
|
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 _082E0B22
|
|
movs r0, 0x16
|
|
ldrsb r0, [r2, r0]
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
_082E0B22:
|
|
asrs r0, r1, 8
|
|
strb r0, [r2, 0x8]
|
|
strb r1, [r2, 0x9]
|
|
_082E0B28:
|
|
movs r0, 0xFA
|
|
ands r0, r3
|
|
strb r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end TrkVolPitSet_rev01
|
|
|
|
thumb_func_start MidiKey2CgbFr
|
|
MidiKey2CgbFr: ; 82E0B34
|
|
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 _082E0B6C
|
|
cmp r5, 0x14
|
|
bhi _082E0B50
|
|
movs r5, 0
|
|
b _082E0B5E
|
|
_082E0B50:
|
|
adds r0, r5, 0
|
|
subs r0, 0x15
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3B
|
|
bls _082E0B5E
|
|
movs r5, 0x3B
|
|
_082E0B5E:
|
|
ldr r0, _082E0B68
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
b _082E0BCE
|
|
.align 2, 0
|
|
_082E0B68: .4byte gUnknown_08675C18
|
|
_082E0B6C:
|
|
cmp r5, 0x23
|
|
bhi _082E0B78
|
|
movs r0, 0
|
|
mov r12, r0
|
|
movs r5, 0
|
|
b _082E0B8A
|
|
_082E0B78:
|
|
adds r0, r5, 0
|
|
subs r0, 0x24
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x82
|
|
bls _082E0B8A
|
|
movs r5, 0x82
|
|
movs r1, 0xFF
|
|
mov r12, r1
|
|
_082E0B8A:
|
|
ldr r3, _082E0BD4
|
|
adds r0, r5, r3
|
|
ldrb r6, [r0]
|
|
ldr r4, _082E0BD8
|
|
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
|
|
_082E0BCE:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_082E0BD4: .4byte gUnknown_08675B7C
|
|
_082E0BD8: .4byte gUnknown_08675C00
|
|
thumb_func_end MidiKey2CgbFr
|
|
|
|
thumb_func_start CgbOscOff
|
|
CgbOscOff: ; 82E0BDC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0x2
|
|
beq _082E0C04
|
|
cmp r0, 0x2
|
|
bgt _082E0BF0
|
|
cmp r0, 0x1
|
|
beq _082E0BF6
|
|
b _082E0C18
|
|
_082E0BF0:
|
|
cmp r1, 0x3
|
|
beq _082E0C0C
|
|
b _082E0C18
|
|
_082E0BF6:
|
|
ldr r1, _082E0C00
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
adds r1, 0x2
|
|
b _082E0C20
|
|
.align 2, 0
|
|
_082E0C00: .4byte 0x04000063
|
|
_082E0C04:
|
|
ldr r1, _082E0C08
|
|
b _082E0C1A
|
|
.align 2, 0
|
|
_082E0C08: .4byte 0x04000069
|
|
_082E0C0C:
|
|
ldr r1, _082E0C14
|
|
movs r0, 0
|
|
b _082E0C22
|
|
.align 2, 0
|
|
_082E0C14: .4byte 0x04000070
|
|
_082E0C18:
|
|
ldr r1, _082E0C28
|
|
_082E0C1A:
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
adds r1, 0x4
|
|
_082E0C20:
|
|
movs r0, 0x80
|
|
_082E0C22:
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_082E0C28: .4byte 0x04000079
|
|
thumb_func_end CgbOscOff
|
|
|
|
thumb_func_start CgbModVol
|
|
CgbModVol: ; 82E0C2C
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _082E0C5C
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
ldrb r1, [r1, 0x9]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _082E0C6C
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r1, r0, 24
|
|
lsrs r4, r1, 24
|
|
ldrb r3, [r2, 0x3]
|
|
lsls r0, r3, 24
|
|
lsrs r3, r0, 24
|
|
cmp r4, r3
|
|
bcc _082E0C60
|
|
lsrs r0, r1, 25
|
|
cmp r0, r3
|
|
bcc _082E0C6C
|
|
movs r0, 0xF
|
|
strb r0, [r2, 0x1B]
|
|
b _082E0C7A
|
|
.align 2, 0
|
|
_082E0C5C: .4byte 0x03007ff0
|
|
_082E0C60:
|
|
lsrs r0, 25
|
|
cmp r0, r4
|
|
bcc _082E0C6C
|
|
movs r0, 0xF0
|
|
strb r0, [r2, 0x1B]
|
|
b _082E0C7A
|
|
_082E0C6C:
|
|
movs r0, 0xFF
|
|
strb r0, [r2, 0x1B]
|
|
ldrb r1, [r2, 0x3]
|
|
ldrb r3, [r2, 0x2]
|
|
adds r0, r1, r3
|
|
lsrs r0, 4
|
|
b _082E0C8A
|
|
_082E0C7A:
|
|
ldrb r1, [r2, 0x3]
|
|
ldrb r3, [r2, 0x2]
|
|
adds r0, r1, r3
|
|
lsrs r0, 4
|
|
strb r0, [r2, 0xA]
|
|
cmp r0, 0xF
|
|
bls _082E0C8C
|
|
movs r0, 0xF
|
|
_082E0C8A:
|
|
strb r0, [r2, 0xA]
|
|
_082E0C8C:
|
|
ldrb r1, [r2, 0x6]
|
|
ldrb r3, [r2, 0xA]
|
|
adds r0, r1, 0
|
|
muls r0, r3
|
|
adds r0, 0xF
|
|
asrs r0, 4
|
|
strb r0, [r2, 0x19]
|
|
ldrb r0, [r2, 0x1C]
|
|
ldrb r1, [r2, 0x1B]
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1B]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CgbModVol
|
|
|
|
thumb_func_start CgbSound
|
|
CgbSound: ; 82E0CA8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
ldr r0, _082E0CC8
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x4]
|
|
ldrb r0, [r0, 0xA]
|
|
cmp r0, 0
|
|
beq _082E0CCC
|
|
subs r0, 0x1
|
|
ldr r1, [sp, 0x4]
|
|
strb r0, [r1, 0xA]
|
|
b _082E0CD2
|
|
.align 2, 0
|
|
_082E0CC8: .4byte 0x03007ff0
|
|
_082E0CCC:
|
|
movs r0, 0xE
|
|
ldr r2, [sp, 0x4]
|
|
strb r0, [r2, 0xA]
|
|
_082E0CD2:
|
|
movs r6, 0x1
|
|
ldr r0, [sp, 0x4]
|
|
ldr r4, [r0, 0x1C]
|
|
_082E0CD8:
|
|
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 _082E0CEE
|
|
b _082E10D8
|
|
_082E0CEE:
|
|
cmp r6, 0x2
|
|
beq _082E0D20
|
|
cmp r6, 0x2
|
|
bgt _082E0CFC
|
|
cmp r6, 0x1
|
|
beq _082E0D02
|
|
b _082E0D58
|
|
_082E0CFC:
|
|
cmp r6, 0x3
|
|
beq _082E0D38
|
|
b _082E0D58
|
|
_082E0D02:
|
|
ldr r0, _082E0D14
|
|
str r0, [sp, 0x8]
|
|
ldr r7, _082E0D18
|
|
ldr r2, _082E0D1C
|
|
str r2, [sp, 0xC]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x10]
|
|
adds r2, 0x2
|
|
b _082E0D68
|
|
.align 2, 0
|
|
_082E0D14: .4byte 0x04000060
|
|
_082E0D18: .4byte 0x04000062
|
|
_082E0D1C: .4byte 0x04000063
|
|
_082E0D20:
|
|
ldr r0, _082E0D2C
|
|
str r0, [sp, 0x8]
|
|
ldr r7, _082E0D30
|
|
ldr r2, _082E0D34
|
|
b _082E0D60
|
|
.align 2, 0
|
|
_082E0D2C: .4byte 0x04000061
|
|
_082E0D30: .4byte 0x04000068
|
|
_082E0D34: .4byte 0x04000069
|
|
_082E0D38:
|
|
ldr r0, _082E0D4C
|
|
str r0, [sp, 0x8]
|
|
ldr r7, _082E0D50
|
|
ldr r2, _082E0D54
|
|
str r2, [sp, 0xC]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x10]
|
|
adds r2, 0x2
|
|
b _082E0D68
|
|
.align 2, 0
|
|
_082E0D4C: .4byte 0x04000070
|
|
_082E0D50: .4byte 0x04000072
|
|
_082E0D54: .4byte 0x04000073
|
|
_082E0D58:
|
|
ldr r0, _082E0DB8
|
|
str r0, [sp, 0x8]
|
|
ldr r7, _082E0DBC
|
|
ldr r2, _082E0DC0
|
|
_082E0D60:
|
|
str r2, [sp, 0xC]
|
|
adds r0, 0xB
|
|
str r0, [sp, 0x10]
|
|
adds r2, 0x4
|
|
_082E0D68:
|
|
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 _082E0E5E
|
|
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 _082E0E82
|
|
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 _082E0DD0
|
|
cmp r6, 0x2
|
|
bgt _082E0DC4
|
|
cmp r6, 0x1
|
|
beq _082E0DCA
|
|
b _082E0E24
|
|
.align 2, 0
|
|
_082E0DB8: .4byte 0x04000071
|
|
_082E0DBC: .4byte 0x04000078
|
|
_082E0DC0: .4byte 0x04000079
|
|
_082E0DC4:
|
|
cmp r6, 0x3
|
|
beq _082E0DDC
|
|
b _082E0E24
|
|
_082E0DCA:
|
|
ldrb r0, [r4, 0x1F]
|
|
ldr r2, [sp, 0x8]
|
|
strb r0, [r2]
|
|
_082E0DD0:
|
|
ldr r0, [r4, 0x24]
|
|
lsls r0, 6
|
|
ldrb r1, [r4, 0x1E]
|
|
adds r0, r1, r0
|
|
strb r0, [r7]
|
|
b _082E0E30
|
|
_082E0DDC:
|
|
ldr r1, [r4, 0x24]
|
|
ldr r0, [r4, 0x28]
|
|
cmp r1, r0
|
|
beq _082E0E04
|
|
ldr r2, [sp, 0x8]
|
|
strb r3, [r2]
|
|
ldr r1, _082E0E18
|
|
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]
|
|
_082E0E04:
|
|
ldr r0, [sp, 0x8]
|
|
strb r5, [r0]
|
|
ldrb r0, [r4, 0x1E]
|
|
strb r0, [r7]
|
|
ldrb r0, [r4, 0x1E]
|
|
cmp r0, 0
|
|
beq _082E0E1C
|
|
movs r0, 0xC0
|
|
b _082E0E3E
|
|
.align 2, 0
|
|
_082E0E18: .4byte 0x04000090
|
|
_082E0E1C:
|
|
movs r1, 0x80
|
|
negs r1, r1
|
|
strb r1, [r4, 0x1A]
|
|
b _082E0E40
|
|
_082E0E24:
|
|
ldrb r0, [r4, 0x1E]
|
|
strb r0, [r7]
|
|
ldr r0, [r4, 0x24]
|
|
lsls r0, 3
|
|
ldr r2, [sp, 0x10]
|
|
strb r0, [r2]
|
|
_082E0E30:
|
|
ldrb r0, [r4, 0x4]
|
|
adds r0, 0x8
|
|
mov r8, r0
|
|
ldrb r0, [r4, 0x1E]
|
|
cmp r0, 0
|
|
beq _082E0E3E
|
|
movs r0, 0x40
|
|
_082E0E3E:
|
|
strb r0, [r4, 0x1A]
|
|
_082E0E40:
|
|
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 _082E0E5A
|
|
b _082E0F96
|
|
_082E0E5A:
|
|
strb r2, [r4, 0x9]
|
|
b _082E0FC4
|
|
_082E0E5E:
|
|
movs r0, 0x4
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _082E0E90
|
|
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 _082E0E82
|
|
b _082E0FD6
|
|
_082E0E82:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
bl CgbOscOff
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
b _082E10D4
|
|
_082E0E90:
|
|
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 _082E0ED0
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E0ED0
|
|
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 _082E0F02
|
|
movs r0, 0x1
|
|
ldrb r1, [r4, 0x1D]
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1D]
|
|
cmp r6, 0x3
|
|
beq _082E0FC4
|
|
ldrb r2, [r4, 0x7]
|
|
mov r8, r2
|
|
b _082E0FC4
|
|
_082E0ED0:
|
|
ldrb r0, [r4, 0xB]
|
|
cmp r0, 0
|
|
bne _082E0FC4
|
|
cmp r6, 0x3
|
|
bne _082E0EE2
|
|
movs r0, 0x1
|
|
ldrb r1, [r4, 0x1D]
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1D]
|
|
_082E0EE2:
|
|
adds r0, r4, 0
|
|
bl CgbModVol
|
|
movs r0, 0x3
|
|
ldrb r2, [r4]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _082E0F36
|
|
ldrb r0, [r4, 0x9]
|
|
subs r0, 0x1
|
|
strb r0, [r4, 0x9]
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bgt _082E0F32
|
|
_082E0F02:
|
|
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 _082E0E82
|
|
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 _082E0FD6
|
|
movs r2, 0x8
|
|
mov r8, r2
|
|
b _082E0FD6
|
|
_082E0F32:
|
|
ldrb r0, [r4, 0x7]
|
|
b _082E0FC2
|
|
_082E0F36:
|
|
cmp r0, 0x1
|
|
bne _082E0F42
|
|
_082E0F3A:
|
|
ldrb r0, [r4, 0x19]
|
|
strb r0, [r4, 0x9]
|
|
movs r0, 0x7
|
|
b _082E0FC2
|
|
_082E0F42:
|
|
cmp r0, 0x2
|
|
bne _082E0F86
|
|
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 _082E0F82
|
|
_082E0F5A:
|
|
ldrb r0, [r4, 0x6]
|
|
cmp r0, 0
|
|
bne _082E0F6A
|
|
movs r0, 0xFC
|
|
ldrb r1, [r4]
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
b _082E0F02
|
|
_082E0F6A:
|
|
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 _082E0F3A
|
|
movs r0, 0x8
|
|
mov r8, r0
|
|
b _082E0F3A
|
|
_082E0F82:
|
|
ldrb r0, [r4, 0x5]
|
|
b _082E0FC2
|
|
_082E0F86:
|
|
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 _082E0FC0
|
|
_082E0F96:
|
|
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 _082E0F5A
|
|
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 _082E0FC4
|
|
ldrb r2, [r4, 0x5]
|
|
mov r8, r2
|
|
b _082E0FC4
|
|
_082E0FC0:
|
|
ldrb r0, [r4, 0x4]
|
|
_082E0FC2:
|
|
strb r0, [r4, 0xB]
|
|
_082E0FC4:
|
|
ldrb r0, [r4, 0xB]
|
|
subs r0, 0x1
|
|
strb r0, [r4, 0xB]
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bne _082E0FD6
|
|
subs r0, 0x1
|
|
str r0, [sp]
|
|
b _082E0ED0
|
|
_082E0FD6:
|
|
movs r0, 0x2
|
|
ldrb r1, [r4, 0x1D]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E104E
|
|
cmp r6, 0x3
|
|
bgt _082E1016
|
|
movs r0, 0x8
|
|
ldrb r2, [r4, 0x1]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _082E1016
|
|
ldr r0, _082E1000
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3F
|
|
bgt _082E1008
|
|
ldr r0, [r4, 0x20]
|
|
adds r0, 0x2
|
|
ldr r1, _082E1004
|
|
b _082E1012
|
|
.align 2, 0
|
|
_082E1000: .4byte 0x04000089
|
|
_082E1004: .4byte 0x000007fc
|
|
_082E1008:
|
|
cmp r0, 0x7F
|
|
bgt _082E1016
|
|
ldr r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
ldr r1, _082E1024
|
|
_082E1012:
|
|
ands r0, r1
|
|
str r0, [r4, 0x20]
|
|
_082E1016:
|
|
cmp r6, 0x4
|
|
beq _082E1028
|
|
ldr r0, [r4, 0x20]
|
|
ldr r1, [sp, 0x10]
|
|
strb r0, [r1]
|
|
b _082E1036
|
|
.align 2, 0
|
|
_082E1024: .4byte 0x000007fe
|
|
_082E1028:
|
|
ldr r2, [sp, 0x10]
|
|
ldrb r0, [r2]
|
|
movs r1, 0x8
|
|
ands r1, r0
|
|
ldr r0, [r4, 0x20]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_082E1036:
|
|
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]
|
|
_082E104E:
|
|
movs r0, 0x1
|
|
ldrb r2, [r4, 0x1D]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _082E10D4
|
|
ldr r1, _082E1098
|
|
ldrb r0, [r1]
|
|
ldrb r2, [r4, 0x1C]
|
|
bics r0, r2
|
|
ldrb r2, [r4, 0x1B]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
cmp r6, 0x3
|
|
bne _082E10A0
|
|
ldr r0, _082E109C
|
|
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 _082E10D4
|
|
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 _082E10D4
|
|
.align 2, 0
|
|
_082E1098: .4byte 0x04000081
|
|
_082E109C: .4byte gUnknown_08675C54
|
|
_082E10A0:
|
|
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 _082E10D4
|
|
ldr r0, [sp, 0x8]
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _082E10D4
|
|
ldrb r0, [r4, 0x1A]
|
|
orrs r0, r2
|
|
ldr r1, [sp, 0x14]
|
|
strb r0, [r1]
|
|
_082E10D4:
|
|
movs r0, 0
|
|
strb r0, [r4, 0x1D]
|
|
_082E10D8:
|
|
mov r6, r10
|
|
mov r4, r9
|
|
cmp r6, 0x4
|
|
bgt _082E10E2
|
|
b _082E0CD8
|
|
_082E10E2:
|
|
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
|
|
|
|
thumb_func_start MPlayTempoControl
|
|
MPlayTempoControl: ; 82E10F4
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r3, [r2, 0x34]
|
|
ldr r0, _082E1118
|
|
cmp r3, r0
|
|
bne _082E1110
|
|
strh r1, [r2, 0x1E]
|
|
ldrh r4, [r2, 0x1C]
|
|
adds r0, r1, 0
|
|
muls r0, r4
|
|
asrs r0, 8
|
|
strh r0, [r2, 0x20]
|
|
_082E1110:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E1118: .4byte 0x68736d53
|
|
thumb_func_end MPlayTempoControl
|
|
|
|
thumb_func_start MPlayVolumeControl
|
|
MPlayVolumeControl: ; 82E111C
|
|
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, _082E1180
|
|
cmp r3, r0
|
|
bne _082E1174
|
|
adds r0, r3, 0x1
|
|
str r0, [r4, 0x34]
|
|
ldrb r2, [r4, 0x8]
|
|
ldr r1, [r4, 0x2C]
|
|
movs r5, 0x1
|
|
cmp r2, 0
|
|
ble _082E1170
|
|
movs r0, 0x80
|
|
mov r8, r0
|
|
lsrs r6, 18
|
|
movs r0, 0x3
|
|
mov r12, r0
|
|
_082E114C:
|
|
adds r0, r7, 0
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _082E1166
|
|
ldrb r3, [r1]
|
|
mov r0, r8
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _082E1166
|
|
strb r6, [r1, 0x13]
|
|
mov r0, r12
|
|
orrs r0, r3
|
|
strb r0, [r1]
|
|
_082E1166:
|
|
subs r2, 0x1
|
|
adds r1, 0x50
|
|
lsls r5, 1
|
|
cmp r2, 0
|
|
bgt _082E114C
|
|
_082E1170:
|
|
ldr r0, _082E1180
|
|
str r0, [r4, 0x34]
|
|
_082E1174:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E1180: .4byte 0x68736d53
|
|
thumb_func_end MPlayVolumeControl
|
|
|
|
thumb_func_start MPlayPitchControl
|
|
MPlayPitchControl: ; 82E1184
|
|
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, _082E11F4
|
|
cmp r3, r0
|
|
bne _082E11E6
|
|
adds r0, r3, 0x1
|
|
str r0, [r4, 0x34]
|
|
ldrb r2, [r4, 0x8]
|
|
ldr r3, [r4, 0x2C]
|
|
movs r5, 0x1
|
|
cmp r2, 0
|
|
ble _082E11E2
|
|
movs r0, 0x80
|
|
mov r9, r0
|
|
lsls r0, r6, 16
|
|
asrs r7, r0, 24
|
|
movs r0, 0xC
|
|
mov r8, r0
|
|
_082E11BC:
|
|
mov r0, r12
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _082E11D8
|
|
ldrb r1, [r3]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E11D8
|
|
strb r7, [r3, 0xB]
|
|
strb r6, [r3, 0xD]
|
|
mov r0, r8
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_082E11D8:
|
|
subs r2, 0x1
|
|
adds r3, 0x50
|
|
lsls r5, 1
|
|
cmp r2, 0
|
|
bgt _082E11BC
|
|
_082E11E2:
|
|
ldr r0, _082E11F4
|
|
str r0, [r4, 0x34]
|
|
_082E11E6:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E11F4: .4byte 0x68736d53
|
|
thumb_func_end MPlayPitchControl
|
|
|
|
thumb_func_start MPlayPanpotControl
|
|
MPlayPanpotControl: ; 82E11F8
|
|
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, _082E125C
|
|
cmp r3, r0
|
|
bne _082E1250
|
|
adds r0, r3, 0x1
|
|
str r0, [r4, 0x34]
|
|
ldrb r2, [r4, 0x8]
|
|
ldr r1, [r4, 0x2C]
|
|
movs r5, 0x1
|
|
cmp r2, 0
|
|
ble _082E124C
|
|
movs r0, 0x80
|
|
mov r8, r0
|
|
movs r0, 0x3
|
|
mov r12, r0
|
|
_082E1228:
|
|
adds r0, r7, 0
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _082E1242
|
|
ldrb r3, [r1]
|
|
mov r0, r8
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _082E1242
|
|
strb r6, [r1, 0x15]
|
|
mov r0, r12
|
|
orrs r0, r3
|
|
strb r0, [r1]
|
|
_082E1242:
|
|
subs r2, 0x1
|
|
adds r1, 0x50
|
|
lsls r5, 1
|
|
cmp r2, 0
|
|
bgt _082E1228
|
|
_082E124C:
|
|
ldr r0, _082E125C
|
|
str r0, [r4, 0x34]
|
|
_082E1250:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E125C: .4byte 0x68736d53
|
|
thumb_func_end MPlayPanpotControl
|
|
|
|
thumb_func_start MP_clear_modM
|
|
MP_clear_modM: ; 82E1260
|
|
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 _082E1274
|
|
movs r0, 0xC
|
|
b _082E1276
|
|
_082E1274:
|
|
movs r0, 0x3
|
|
_082E1276:
|
|
ldrb r2, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
bx lr
|
|
thumb_func_end MP_clear_modM
|
|
|
|
thumb_func_start MPlayModDepthSet
|
|
MPlayModDepthSet: ; 82E1280
|
|
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, _082E12F0
|
|
cmp r1, r0
|
|
bne _082E12E0
|
|
adds r0, r1, 0x1
|
|
str r0, [r6, 0x34]
|
|
ldrb r5, [r6, 0x8]
|
|
ldr r4, [r6, 0x2C]
|
|
movs r7, 0x1
|
|
cmp r5, 0
|
|
ble _082E12DC
|
|
mov r9, r8
|
|
_082E12B0:
|
|
mov r0, r10
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _082E12D2
|
|
movs r0, 0x80
|
|
ldrb r1, [r4]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E12D2
|
|
mov r0, r8
|
|
strb r0, [r4, 0x17]
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
bne _082E12D2
|
|
adds r0, r4, 0
|
|
bl MP_clear_modM
|
|
_082E12D2:
|
|
subs r5, 0x1
|
|
adds r4, 0x50
|
|
lsls r7, 1
|
|
cmp r5, 0
|
|
bgt _082E12B0
|
|
_082E12DC:
|
|
ldr r0, _082E12F0
|
|
str r0, [r6, 0x34]
|
|
_082E12E0:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E12F0: .4byte 0x68736d53
|
|
thumb_func_end MPlayModDepthSet
|
|
|
|
thumb_func_start MPlayLFOSpeedSet
|
|
MPlayLFOSpeedSet: ; 82E12F4
|
|
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, _082E1364
|
|
cmp r1, r0
|
|
bne _082E1354
|
|
adds r0, r1, 0x1
|
|
str r0, [r6, 0x34]
|
|
ldrb r5, [r6, 0x8]
|
|
ldr r4, [r6, 0x2C]
|
|
movs r7, 0x1
|
|
cmp r5, 0
|
|
ble _082E1350
|
|
mov r9, r8
|
|
_082E1324:
|
|
mov r0, r10
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _082E1346
|
|
movs r0, 0x80
|
|
ldrb r1, [r4]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _082E1346
|
|
mov r0, r8
|
|
strb r0, [r4, 0x19]
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
bne _082E1346
|
|
adds r0, r4, 0
|
|
bl MP_clear_modM
|
|
_082E1346:
|
|
subs r5, 0x1
|
|
adds r4, 0x50
|
|
lsls r7, 1
|
|
cmp r5, 0
|
|
bgt _082E1324
|
|
_082E1350:
|
|
ldr r0, _082E1364
|
|
str r0, [r6, 0x34]
|
|
_082E1354:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E1364: .4byte 0x68736d53
|
|
thumb_func_end MPlayLFOSpeedSet
|
|
|
|
thumb_func_start ply_memacc
|
|
ply_memacc: ; 82E1368
|
|
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 _082E138C
|
|
b _082E14BA
|
|
_082E138C:
|
|
lsls r0, r5, 2
|
|
ldr r1, _082E1398
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_082E1398: .4byte _082E139C
|
|
.align 2, 0
|
|
_082E139C:
|
|
.4byte _082E13E4
|
|
.4byte _082E13E8
|
|
.4byte _082E13F0
|
|
.4byte _082E13F8
|
|
.4byte _082E1402
|
|
.4byte _082E1410
|
|
.4byte _082E141E
|
|
.4byte _082E1426
|
|
.4byte _082E142E
|
|
.4byte _082E1436
|
|
.4byte _082E143E
|
|
.4byte _082E1446
|
|
.4byte _082E144E
|
|
.4byte _082E145C
|
|
.4byte _082E146A
|
|
.4byte _082E1478
|
|
.4byte _082E1486
|
|
.4byte _082E1494
|
|
_082E13E4:
|
|
strb r2, [r3]
|
|
b _082E14BA
|
|
_082E13E8:
|
|
ldrb r1, [r3]
|
|
adds r0, r1, r2
|
|
strb r0, [r3]
|
|
b _082E14BA
|
|
_082E13F0:
|
|
ldrb r1, [r3]
|
|
subs r0, r1, r2
|
|
strb r0, [r3]
|
|
b _082E14BA
|
|
_082E13F8:
|
|
ldr r0, [r4, 0x18]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
b _082E14BA
|
|
_082E1402:
|
|
ldr r0, [r4, 0x18]
|
|
adds r0, r2
|
|
ldrb r1, [r3]
|
|
ldrb r0, [r0]
|
|
adds r0, r1, r0
|
|
strb r0, [r3]
|
|
b _082E14BA
|
|
_082E1410:
|
|
ldr r0, [r4, 0x18]
|
|
adds r0, r2
|
|
ldrb r1, [r3]
|
|
ldrb r0, [r0]
|
|
subs r0, r1, r0
|
|
strb r0, [r3]
|
|
b _082E14BA
|
|
_082E141E:
|
|
ldrb r3, [r3]
|
|
cmp r3, r2
|
|
beq _082E14A0
|
|
b _082E14B4
|
|
_082E1426:
|
|
ldrb r3, [r3]
|
|
cmp r3, r2
|
|
bne _082E14A0
|
|
b _082E14B4
|
|
_082E142E:
|
|
ldrb r3, [r3]
|
|
cmp r3, r2
|
|
bhi _082E14A0
|
|
b _082E14B4
|
|
_082E1436:
|
|
ldrb r3, [r3]
|
|
cmp r3, r2
|
|
bcs _082E14A0
|
|
b _082E14B4
|
|
_082E143E:
|
|
ldrb r3, [r3]
|
|
cmp r3, r2
|
|
bls _082E14A0
|
|
b _082E14B4
|
|
_082E1446:
|
|
ldrb r3, [r3]
|
|
cmp r3, r2
|
|
bcc _082E14A0
|
|
b _082E14B4
|
|
_082E144E:
|
|
ldr r0, [r4, 0x18]
|
|
adds r0, r2
|
|
ldrb r3, [r3]
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
beq _082E14A0
|
|
b _082E14B4
|
|
_082E145C:
|
|
ldr r0, [r4, 0x18]
|
|
adds r0, r2
|
|
ldrb r3, [r3]
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bne _082E14A0
|
|
b _082E14B4
|
|
_082E146A:
|
|
ldr r0, [r4, 0x18]
|
|
adds r0, r2
|
|
ldrb r3, [r3]
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bhi _082E14A0
|
|
b _082E14B4
|
|
_082E1478:
|
|
ldr r0, [r4, 0x18]
|
|
adds r0, r2
|
|
ldrb r3, [r3]
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcs _082E14A0
|
|
b _082E14B4
|
|
_082E1486:
|
|
ldr r0, [r4, 0x18]
|
|
adds r0, r2
|
|
ldrb r3, [r3]
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bls _082E14A0
|
|
b _082E14B4
|
|
_082E1494:
|
|
ldr r0, [r4, 0x18]
|
|
adds r0, r2
|
|
ldrb r3, [r3]
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcs _082E14B4
|
|
_082E14A0:
|
|
ldr r0, _082E14B0
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
b _082E14BA
|
|
.align 2, 0
|
|
_082E14B0: .4byte 0x03007464
|
|
_082E14B4:
|
|
ldr r0, [r6, 0x40]
|
|
adds r0, 0x4
|
|
str r0, [r6, 0x40]
|
|
_082E14BA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ply_memacc
|
|
|
|
thumb_func_start ply_xcmd
|
|
ply_xcmd: ; 82E14C0
|
|
push {lr}
|
|
ldr r2, [r1, 0x40]
|
|
ldrb r3, [r2]
|
|
adds r2, 0x1
|
|
str r2, [r1, 0x40]
|
|
ldr r2, _082E14DC
|
|
lsls r3, 2
|
|
adds r3, r2
|
|
ldr r2, [r3]
|
|
bl _call_via_r2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E14DC: .4byte gUnknown_08675CCC
|
|
thumb_func_end ply_xcmd
|
|
|
|
thumb_func_start ply_xxx
|
|
ply_xxx: ; 82E14E0
|
|
push {lr}
|
|
ldr r2, _082E14F0
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E14F0: .4byte 0x03007460
|
|
thumb_func_end ply_xxx
|
|
|
|
thumb_func_start ply_xwave
|
|
ply_xwave: ; 82E14F4
|
|
push {r4,lr}
|
|
ldr r2, [r1, 0x40]
|
|
ldr r0, _082E152C
|
|
ands r4, r0
|
|
ldrb r0, [r2]
|
|
orrs r4, r0
|
|
ldrb r0, [r2, 0x1]
|
|
lsls r3, r0, 8
|
|
ldr r0, _082E1530
|
|
ands r4, r0
|
|
orrs r4, r3
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r3, r0, 16
|
|
ldr r0, _082E1534
|
|
ands r4, r0
|
|
orrs r4, r3
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r3, r0, 24
|
|
ldr r0, _082E1538
|
|
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
|
|
_082E152C: .4byte 0xffffff00
|
|
_082E1530: .4byte 0xffff00ff
|
|
_082E1534: .4byte 0xff00ffff
|
|
_082E1538: .4byte 0x00ffffff
|
|
thumb_func_end ply_xwave
|
|
|
|
thumb_func_start ply_xtype
|
|
ply_xtype: ; 82E153C
|
|
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 ply_xtype
|
|
|
|
thumb_func_start ply_xatta
|
|
ply_xatta: ; 82E1550
|
|
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 ply_xatta
|
|
|
|
thumb_func_start ply_xdeca
|
|
ply_xdeca: ; 82E1564
|
|
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 ply_xdeca
|
|
|
|
thumb_func_start ply_xsust
|
|
ply_xsust: ; 82E1578
|
|
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 ply_xsust
|
|
|
|
thumb_func_start ply_xrele
|
|
ply_xrele: ; 82E158C
|
|
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 ply_xrele
|
|
|
|
thumb_func_start ply_xiecv
|
|
ply_xiecv: ; 82E15A0
|
|
ldr r0, [r1, 0x40]
|
|
ldrb r2, [r0]
|
|
strb r2, [r1, 0x1E]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x40]
|
|
bx lr
|
|
thumb_func_end ply_xiecv
|
|
|
|
thumb_func_start ply_xiecl
|
|
ply_xiecl: ; 82E15AC
|
|
ldr r0, [r1, 0x40]
|
|
ldrb r2, [r0]
|
|
strb r2, [r1, 0x1F]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x40]
|
|
bx lr
|
|
thumb_func_end ply_xiecl
|
|
|
|
thumb_func_start ply_xleng
|
|
ply_xleng: ; 82E15B8
|
|
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 ply_xleng
|
|
|
|
thumb_func_start ply_xswee
|
|
ply_xswee: ; 82E15CC
|
|
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 ply_xcmd0C
|
|
ply_xcmd0C: ; 82E15E0
|
|
push {r4,lr}
|
|
adds r3, r1, 0
|
|
ldr r4, [r3, 0x40]
|
|
ldr r0, _082E1610
|
|
ands r2, r0
|
|
ldrb r0, [r4]
|
|
orrs r2, r0
|
|
ldrb r0, [r4, 0x1]
|
|
lsls r1, r0, 8
|
|
ldr r0, _082E1614
|
|
ands r2, r0
|
|
orrs r2, r1
|
|
ldrh r1, [r3, 0x3A]
|
|
lsls r0, r2, 16
|
|
lsrs r0, 16
|
|
cmp r1, r0
|
|
bcs _082E1618
|
|
adds r0, r1, 0x1
|
|
strh r0, [r3, 0x3A]
|
|
subs r0, r4, 0x2
|
|
str r0, [r3, 0x40]
|
|
movs r0, 0x1
|
|
strb r0, [r3, 0x1]
|
|
b _082E1620
|
|
.align 2, 0
|
|
_082E1610: .4byte 0xffffff00
|
|
_082E1614: .4byte 0xffff00ff
|
|
_082E1618:
|
|
movs r0, 0
|
|
strh r0, [r3, 0x3A]
|
|
adds r0, r4, 0x2
|
|
str r0, [r3, 0x40]
|
|
_082E1620:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ply_xcmd0C
|
|
|
|
thumb_func_start ply_xcmd0D
|
|
ply_xcmd0D: ; 82E1628
|
|
push {r4,lr}
|
|
ldr r2, [r1, 0x40]
|
|
ldr r0, _082E1660
|
|
ands r4, r0
|
|
ldrb r0, [r2]
|
|
orrs r4, r0
|
|
ldrb r0, [r2, 0x1]
|
|
lsls r3, r0, 8
|
|
ldr r0, _082E1664
|
|
ands r4, r0
|
|
orrs r4, r3
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r3, r0, 16
|
|
ldr r0, _082E1668
|
|
ands r4, r0
|
|
orrs r4, r3
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r3, r0, 24
|
|
ldr r0, _082E166C
|
|
ands r4, r0
|
|
orrs r4, r3
|
|
str r4, [r1, 0x3C]
|
|
adds r2, 0x4
|
|
str r2, [r1, 0x40]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E1660: .4byte 0xffffff00
|
|
_082E1664: .4byte 0xffff00ff
|
|
_082E1668: .4byte 0xff00ffff
|
|
_082E166C: .4byte 0x00ffffff
|
|
thumb_func_end ply_xcmd0D
|
|
|
|
thumb_func_start DummyFunc_rev
|
|
DummyFunc_rev: ; 82E1670
|
|
bx lr
|
|
thumb_func_end DummyFunc_rev
|
|
|
|
thumb_func_start sub_82E1674
|
|
sub_82E1674: ; 82E1674
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r9, r0
|
|
movs r6, 0
|
|
movs r1, 0
|
|
movs r4, 0
|
|
ldr r0, _082E1730
|
|
mov r8, r0
|
|
ldr r7, _082E1734
|
|
ldr r0, _082E1738
|
|
mov r10, r0
|
|
mov r5, r8
|
|
adds r5, 0xC
|
|
movs r3, 0
|
|
ldr r0, _082E173C
|
|
mov r12, r0
|
|
_082E169A:
|
|
mov r0, r12
|
|
adds r2, r3, r0
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _082E16B0
|
|
ldr r0, [r2, 0x20]
|
|
cmp r0, 0
|
|
beq _082E16C6
|
|
ldr r0, [r0, 0x2C]
|
|
cmp r0, r2
|
|
bne _082E16C6
|
|
_082E16B0:
|
|
ldr r0, [r5]
|
|
cmp r6, r0
|
|
bcs _082E16BA
|
|
adds r6, r0, 0
|
|
adds r1, r4, 0
|
|
_082E16BA:
|
|
adds r5, 0x40
|
|
adds r3, 0xA0
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _082E169A
|
|
adds r4, r1, 0
|
|
_082E16C6:
|
|
lsls r5, r4, 6
|
|
add r5, r8
|
|
ldr r0, [r5, 0x34]
|
|
adds r0, 0x1
|
|
str r0, [r5, 0x34]
|
|
movs r0, 0x34
|
|
muls r4, r0
|
|
adds r6, r4, r7
|
|
adds r0, r6, 0
|
|
mov r1, r10
|
|
movs r2, 0x34
|
|
bl memcpy
|
|
adds r0, r7, 0x4
|
|
adds r0, r4, r0
|
|
mov r1, r9
|
|
str r1, [r0]
|
|
adds r1, r7, 0
|
|
adds r1, 0x8
|
|
adds r1, r4, r1
|
|
adds r0, r7, 0
|
|
adds r0, 0x11
|
|
adds r0, r4, r0
|
|
str r0, [r1]
|
|
adds r1, r7, 0
|
|
adds r1, 0xC
|
|
adds r1, r4, r1
|
|
adds r0, r7, 0
|
|
adds r0, 0x18
|
|
adds r0, r4, r0
|
|
str r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0x14
|
|
adds r0, r4, r0
|
|
adds r1, r7, 0
|
|
adds r1, 0x1A
|
|
adds r4, r1
|
|
str r4, [r0]
|
|
ldr r0, _082E1740
|
|
str r0, [r5, 0x34]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl MPlayStart_rev01
|
|
adds r0, r5, 0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_082E1730: .4byte 0x030073a0
|
|
_082E1734: .4byte 0x03007330
|
|
_082E1738: .4byte 0x030077b0
|
|
_082E173C: .4byte 0x03007670
|
|
_082E1740: .4byte 0x68736d53
|
|
thumb_func_end sub_82E1674
|
|
|
|
thumb_func_start sub_82E1744
|
|
sub_82E1744: ; 82E1744
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _082E1754
|
|
movs r1, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1D]
|
|
bx lr
|
|
.align 2, 0
|
|
_082E1754: .4byte 0x030077b0
|
|
thumb_func_end sub_82E1744
|
|
|
|
thumb_func_start sub_82E1758
|
|
sub_82E1758: ; 82E1758
|
|
ldr r2, _082E176C
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, 0x40
|
|
movs r1, 0x7F
|
|
ands r0, r1
|
|
adds r2, 0x28
|
|
strb r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_082E176C: .4byte 0x030077b0
|
|
thumb_func_end sub_82E1758
|
|
|
|
thumb_func_start sub_82E1770
|
|
sub_82E1770: ; 82E1770
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
ldr r3, _082E17A4
|
|
ldrb r2, [r3, 0x19]
|
|
ldrb r4, [r3, 0x12]
|
|
subs r1, r2, r4
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r6, 0x80
|
|
lsls r6, 16
|
|
adds r0, r6
|
|
asrs r2, r0, 24
|
|
movs r5, 0x7F
|
|
movs r4, 0x7F
|
|
ands r2, r4
|
|
movs r6, 0x2A
|
|
strb r2, [r6, r3]
|
|
asrs r0, 17
|
|
ands r0, r4
|
|
strb r0, [r3, 0x12]
|
|
adds r1, r0
|
|
ands r1, r5
|
|
strb r1, [r3, 0x19]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_082E17A4: .4byte 0x030077b0
|
|
thumb_func_end sub_82E1770
|
|
|
|
thumb_func_start sub_82E17A8
|
|
sub_82E17A8: ; 82E17A8
|
|
ldr r1, _082E17B0
|
|
strh r0, [r1, 0x2E]
|
|
bx lr
|
|
.align 2, 0
|
|
_082E17B0: .4byte 0x030077b0
|
|
thumb_func_end sub_82E17A8
|
|
|
|
thumb_func_start sub_82E17B4
|
|
sub_82E17B4: ; 82E17B4
|
|
ldr r1, _082E17BC
|
|
adds r1, 0x26
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_082E17BC: .4byte 0x030077b0
|
|
thumb_func_end sub_82E17B4
|
|
|
|
thumb_func_start sub_82E17C0
|
|
sub_82E17C0: ; 82E17C0
|
|
ldr r1, _082E17C8
|
|
str r0, [r1, 0x20]
|
|
bx lr
|
|
.align 2, 0
|
|
_082E17C8: .4byte 0x030077b0
|
|
thumb_func_end sub_82E17C0
|
|
|
|
thumb_func_start sub_82E17CC
|
|
sub_82E17CC: ; 82E17CC
|
|
ldr r1, [r0, 0x2C]
|
|
ldr r0, [r1, 0x20]
|
|
cmp r0, 0
|
|
beq _082E17DE
|
|
ldr r0, [r0, 0x2C]
|
|
cmp r0, r1
|
|
bne _082E17DE
|
|
movs r0, 0x1
|
|
b _082E17E0
|
|
_082E17DE:
|
|
movs r0, 0
|
|
_082E17E0:
|
|
bx lr
|
|
thumb_func_end sub_82E17CC
|
|
|
|
thumb_func_start sub_82E17E4
|
|
sub_82E17E4: ; 82E17E4
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r0, 0
|
|
beq _082E1804
|
|
ldr r2, _082E1800
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
ldrb r3, [r2, 0x12]
|
|
adds r0, r3, r1
|
|
movs r1, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x19]
|
|
b _082E180A
|
|
.align 2, 0
|
|
_082E1800: .4byte 0x030077b0
|
|
_082E1804:
|
|
ldr r1, _082E180C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_082E180A:
|
|
bx lr
|
|
.align 2, 0
|
|
_082E180C: .4byte 0x030077b0
|
|
thumb_func_end sub_82E17E4
|
|
|
|
thumb_func_start sub_82E1810
|
|
sub_82E1810: ; 82E1810
|
|
ldr r1, _082E1828
|
|
ldr r2, [r1]
|
|
cmp r0, 0
|
|
beq _082E1834
|
|
ldr r1, _082E182C
|
|
ldr r3, _082E1830
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
movs r0, 0xFE
|
|
ldrb r1, [r2, 0x9]
|
|
ands r0, r1
|
|
b _082E1842
|
|
.align 2, 0
|
|
_082E1828: .4byte 0x03007ff0
|
|
_082E182C: .4byte 0x04000082
|
|
_082E1830: .4byte 0x0000210e
|
|
_082E1834:
|
|
ldr r1, _082E1848
|
|
ldr r3, _082E184C
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
ldrb r1, [r2, 0x9]
|
|
orrs r0, r1
|
|
_082E1842:
|
|
strb r0, [r2, 0x9]
|
|
bx lr
|
|
.align 2, 0
|
|
_082E1848: .4byte 0x04000082
|
|
_082E184C: .4byte 0x00003302
|
|
thumb_func_end sub_82E1810
|
|
|
|
thumb_func_start sub_82E1850
|
|
sub_82E1850: ; 82E1850
|
|
ldr r1, _082E1858
|
|
strb r0, [r1, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_082E1858: .4byte 0x030077b0
|
|
thumb_func_end sub_82E1850
|