mirror of https://github.com/zeldaret/tmc.git
280 lines
4.8 KiB
ArmAsm
280 lines
4.8 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start PlaySFX
|
|
PlaySFX: @ 0x080A3268
|
|
push {r4, r5, lr}
|
|
adds r3, r0, #0
|
|
ldr r0, _080A32AC @ =gUnk_03001000
|
|
ldrb r2, [r0, #7]
|
|
cmp r2, #0
|
|
beq _080A3276
|
|
b _080A347C
|
|
_080A3276:
|
|
ldr r5, _080A32B0 @ =gUnk_02021EE0
|
|
ldr r4, _080A32B4 @ =0x0000FFFF
|
|
ands r4, r3
|
|
ldr r1, _080A32B8 @ =0xFFFF0000
|
|
ands r1, r3
|
|
ldr r0, _080A32BC @ =0x80090000
|
|
cmp r1, r0
|
|
bne _080A3288
|
|
b _080A33A0
|
|
_080A3288:
|
|
cmp r1, r0
|
|
bhi _080A3310
|
|
ldr r0, _080A32C0 @ =0x80040000
|
|
cmp r1, r0
|
|
bne _080A3294
|
|
b _080A33F4
|
|
_080A3294:
|
|
cmp r1, r0
|
|
bhi _080A32D8
|
|
ldr r0, _080A32C4 @ =0x80020000
|
|
cmp r1, r0
|
|
bne _080A32A0
|
|
b _080A3384
|
|
_080A32A0:
|
|
cmp r1, r0
|
|
bhi _080A32CC
|
|
ldr r0, _080A32C8 @ =0x80010000
|
|
cmp r1, r0
|
|
beq _080A337C
|
|
b _080A3458
|
|
.align 2, 0
|
|
_080A32AC: .4byte gUnk_03001000
|
|
_080A32B0: .4byte gUnk_02021EE0
|
|
_080A32B4: .4byte 0x0000FFFF
|
|
_080A32B8: .4byte 0xFFFF0000
|
|
_080A32BC: .4byte 0x80090000
|
|
_080A32C0: .4byte 0x80040000
|
|
_080A32C4: .4byte 0x80020000
|
|
_080A32C8: .4byte 0x80010000
|
|
_080A32CC:
|
|
ldr r0, _080A32D4 @ =0x80030000
|
|
cmp r1, r0
|
|
beq _080A338C
|
|
b _080A3458
|
|
.align 2, 0
|
|
_080A32D4: .4byte 0x80030000
|
|
_080A32D8:
|
|
ldr r0, _080A32F0 @ =0x80060000
|
|
cmp r1, r0
|
|
bne _080A32E0
|
|
b _080A340A
|
|
_080A32E0:
|
|
cmp r1, r0
|
|
bhi _080A32F8
|
|
ldr r0, _080A32F4 @ =0x80050000
|
|
cmp r1, r0
|
|
bne _080A32EC
|
|
b _080A33FE
|
|
_080A32EC:
|
|
b _080A3458
|
|
.align 2, 0
|
|
_080A32F0: .4byte 0x80060000
|
|
_080A32F4: .4byte 0x80050000
|
|
_080A32F8:
|
|
ldr r0, _080A3308 @ =0x80070000
|
|
cmp r1, r0
|
|
bne _080A3300
|
|
b _080A340E
|
|
_080A3300:
|
|
ldr r0, _080A330C @ =0x80080000
|
|
cmp r1, r0
|
|
beq _080A3398
|
|
b _080A3458
|
|
.align 2, 0
|
|
_080A3308: .4byte 0x80070000
|
|
_080A330C: .4byte 0x80080000
|
|
_080A3310:
|
|
ldr r0, _080A3330 @ =0x800D0000
|
|
cmp r1, r0
|
|
bne _080A3318
|
|
b _080A343A
|
|
_080A3318:
|
|
cmp r1, r0
|
|
bhi _080A3348
|
|
ldr r0, _080A3334 @ =0x800B0000
|
|
cmp r1, r0
|
|
bne _080A3324
|
|
b _080A3420
|
|
_080A3324:
|
|
cmp r1, r0
|
|
bhi _080A333C
|
|
ldr r0, _080A3338 @ =0x800A0000
|
|
cmp r1, r0
|
|
beq _080A33B6
|
|
b _080A3458
|
|
.align 2, 0
|
|
_080A3330: .4byte 0x800D0000
|
|
_080A3334: .4byte 0x800B0000
|
|
_080A3338: .4byte 0x800A0000
|
|
_080A333C:
|
|
ldr r0, _080A3344 @ =0x800C0000
|
|
cmp r1, r0
|
|
beq _080A33CC
|
|
b _080A3458
|
|
.align 2, 0
|
|
_080A3344: .4byte 0x800C0000
|
|
_080A3348:
|
|
ldr r0, _080A335C @ =0x800F0000
|
|
cmp r1, r0
|
|
bne _080A3350
|
|
b _080A344E
|
|
_080A3350:
|
|
cmp r1, r0
|
|
bhi _080A3364
|
|
ldr r0, _080A3360 @ =0x800E0000
|
|
cmp r1, r0
|
|
beq _080A3446
|
|
b _080A3458
|
|
.align 2, 0
|
|
_080A335C: .4byte 0x800F0000
|
|
_080A3360: .4byte 0x800E0000
|
|
_080A3364:
|
|
ldr r0, _080A3374 @ =0x80100000
|
|
cmp r1, r0
|
|
beq _080A343E
|
|
ldr r0, _080A3378 @ =0x80110000
|
|
cmp r1, r0
|
|
beq _080A3454
|
|
b _080A3458
|
|
.align 2, 0
|
|
_080A3374: .4byte 0x80100000
|
|
_080A3378: .4byte 0x80110000
|
|
_080A337C:
|
|
strh r2, [r5, #0x14]
|
|
bl m4aMPlayAllStop
|
|
b _080A347C
|
|
_080A3384:
|
|
movs r0, #0
|
|
bl sub_080A3234
|
|
b _080A347C
|
|
_080A338C:
|
|
bl sub_080A35C8
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r5, #0x12]
|
|
b _080A3418
|
|
_080A3398:
|
|
ldrh r0, [r5, #0x14]
|
|
bl sub_080A35B4
|
|
b _080A347C
|
|
_080A33A0:
|
|
cmp r4, #0
|
|
bne _080A33A6
|
|
ldrh r4, [r5, #0x14]
|
|
_080A33A6:
|
|
subs r0, r4, #1
|
|
cmp r0, #0x62
|
|
bhi _080A347C
|
|
strh r4, [r5, #0x14]
|
|
adds r0, r4, #0
|
|
bl m4aSongNumStart
|
|
b _080A33C4
|
|
_080A33B6:
|
|
subs r0, r4, #1
|
|
cmp r0, #0x62
|
|
bhi _080A347C
|
|
strh r4, [r5, #0x14]
|
|
adds r0, r4, #0
|
|
bl m4aSongNumStartOrContinue
|
|
_080A33C4:
|
|
adds r0, r4, #0
|
|
bl sub_080A35A0
|
|
b _080A347C
|
|
_080A33CC:
|
|
ldr r2, _080A33EC @ =gUnk_08A11C3C
|
|
ldr r1, _080A33F0 @ =gUnk_08A11DBC
|
|
ldrh r0, [r5, #0x14]
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
adds r1, r4, #0
|
|
bl m4aMPlayTempoControl
|
|
b _080A347C
|
|
.align 2, 0
|
|
_080A33EC: .4byte gUnk_08A11C3C
|
|
_080A33F0: .4byte gUnk_08A11DBC
|
|
_080A33F4:
|
|
bl m4aMPlayAllStop
|
|
bl m4aSoundVSyncOff
|
|
b _080A347C
|
|
_080A33FE:
|
|
ldrh r0, [r5, #0x14]
|
|
cmp r0, #0
|
|
beq _080A347C
|
|
bl m4aSongNumStop
|
|
b _080A347C
|
|
_080A340A:
|
|
bl m4aSoundVSyncOn
|
|
_080A340E:
|
|
ldrh r0, [r5, #0x14]
|
|
cmp r0, #0
|
|
beq _080A347C
|
|
bl m4aSongNumStartOrContinue
|
|
_080A3418:
|
|
ldrh r0, [r5, #0x14]
|
|
bl sub_080A353C
|
|
b _080A347C
|
|
_080A3420:
|
|
subs r0, r4, #1
|
|
cmp r0, #0x62
|
|
bhi _080A347C
|
|
strh r4, [r5, #0x14]
|
|
adds r0, r4, #0
|
|
bl m4aSongNumStartOrContinue
|
|
bl sub_080A35C8
|
|
adds r0, r4, #0
|
|
bl sub_080A353C
|
|
b _080A347C
|
|
_080A343A:
|
|
strh r2, [r5, #0x10]
|
|
b _080A347C
|
|
_080A343E:
|
|
strh r2, [r5, #0x10]
|
|
movs r0, #1
|
|
strb r0, [r5, #2]
|
|
b _080A347C
|
|
_080A3446:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r5, #0x10]
|
|
b _080A347C
|
|
_080A344E:
|
|
bl sub_080A35C8
|
|
b _080A347C
|
|
_080A3454:
|
|
strh r2, [r5, #0x14]
|
|
b _080A347C
|
|
_080A3458:
|
|
cmp r4, #0
|
|
beq _080A347C
|
|
subs r0, r4, #1
|
|
cmp r0, #0x62
|
|
bhi _080A3470
|
|
strh r4, [r5, #0x14]
|
|
adds r0, r4, #0
|
|
bl m4aSongNumStart
|
|
bl sub_080A35C8
|
|
b _080A3476
|
|
_080A3470:
|
|
adds r0, r4, #0
|
|
bl m4aSongNumStart
|
|
_080A3476:
|
|
adds r0, r4, #0
|
|
bl sub_080A353C
|
|
_080A347C:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0 |