From f0129a658930a8335564fc46ce8a189f36c7eb5c Mon Sep 17 00:00:00 2001 From: Bolu Date: Mon, 19 Feb 2024 23:54:16 +0100 Subject: [PATCH] Match all of music_wrappers.h --- asm/audio_internal.s | 12 +- asm/disasm_0x080010c4.s | 22 +- asm/disasm_0x08002a58.s | 2098 +------------------------------------- include/music_wrappers.h | 4 +- linker.ld | 3 + src/audio_wrappers.c | 4 +- src/music_wrappers.c | 52 +- 7 files changed, 76 insertions(+), 2119 deletions(-) diff --git a/asm/audio_internal.s b/asm/audio_internal.s index ff138907..df7f09c0 100644 --- a/asm/audio_internal.s +++ b/asm/audio_internal.s @@ -608,8 +608,8 @@ lbl_08004b44: .4byte gMusicInfo lbl_08004b48: .4byte sDma1ControlPointer lbl_08004b4c: .4byte sDma1ControlValue - thumb_func_start sub_08004b50 -sub_08004b50: @ 0x08004b50 + thumb_func_start InitTrack +InitTrack: @ 0x08004b50 push {r4, r5, r6, r7, lr} sub sp, #4 adds r4, r0, #0 @@ -756,7 +756,7 @@ lbl_08004c4e: ands r1, r3 subs r1, #1 adds r0, r4, #0 - bl sub_080024c0 + bl ClearRegistersForPsg movs r3, #0 strb r3, [r4] str r3, [r4, #0x24] @@ -820,7 +820,7 @@ lbl_08004cbc: ands r1, r3 subs r1, #1 adds r0, r4, #0 - bl sub_080024c0 + bl ClearRegistersForPsg movs r3, #0 strb r3, [r4] str r3, [r4, #0x24] @@ -914,7 +914,7 @@ lbl_08004d5c: beq lbl_08004d52 ldr r0, [r4] ldr r1, [r6, #4] - bl sub_08004b50 + bl InitTrack movs r0, #0 str r0, [r6] str r0, [r6, #4] @@ -1222,7 +1222,7 @@ sub_08004f8c: @ 0x08004f8c movs r2, #2 orrs r1, r2 strb r1, [r4, #0x13] - bl sub_080020a4 + bl unk_20a4 ldr r0, [r5, #0x48] cmp r0, #0 beq lbl_08004fa8 diff --git a/asm/disasm_0x080010c4.s b/asm/disasm_0x080010c4.s index 373be2ae..b6f9a5a8 100644 --- a/asm/disasm_0x080010c4.s +++ b/asm/disasm_0x080010c4.s @@ -371,7 +371,7 @@ lbl_08001354: b lbl_080013d4 lbl_0800137c: adds r0, r4, #0 - bl sub_080020a4 + bl unk_20a4 b lbl_080013d4 lbl_08001384: ldrb r0, [r4, #0xd] @@ -383,7 +383,7 @@ lbl_08001384: bne lbl_0800139a strb r0, [r4] adds r0, r4, #0 - bl sub_080020a4 + bl unk_20a4 lbl_0800139a: strb r5, [r4, #0x10] lsls r1, r5, #0x10 @@ -949,7 +949,7 @@ lbl_080017ae: lbl_080017b6: adds r0, r4, #0 mov r1, r8 - bl sub_080024c0 + bl ClearRegistersForPsg b lbl_08001834 lbl_080017c0: lsls r0, r2, #0x18 @@ -958,7 +958,7 @@ lbl_080017c0: bne lbl_08001834 adds r0, r4, #0 mov r1, r8 - bl sub_080024c0 + bl ClearRegistersForPsg strb r5, [r4] b lbl_08001834 lbl_080017d4: @@ -1508,7 +1508,7 @@ lbl_08001bc8: cmp r0, #0 beq lbl_08001bde ldrb r0, [r6] - bl sub_08003d4c + bl ReplayQueuedMusic lbl_08001bde: mov r2, sl strb r4, [r2] @@ -2189,8 +2189,8 @@ lbl_0800207a: pop {r0} bx r0 - thumb_func_start sub_080020a4 -sub_080020a4: @ 0x080020a4 + thumb_func_start unk_20a4 +unk_20a4: @ 0x080020a4 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x28] @@ -2296,7 +2296,7 @@ sub_08002140: @ 0x08002140 lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r0, r2, #0 - bl sub_080024c0 + bl ClearRegistersForPsg ldr r0, [r4, #0x4c] movs r1, #0 strb r1, [r0] @@ -2357,7 +2357,7 @@ sub_080021b0: @ 0x080021b0 lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r0, r2, #0 - bl sub_080024c0 + bl ClearRegistersForPsg ldr r0, [r4, #0x4c] movs r1, #0 strb r1, [r0] @@ -2809,8 +2809,8 @@ Music_EmptyCommand: @ 0x080024bc bx lr .align 2, 0 - thumb_func_start sub_080024c0 -sub_080024c0: @ 0x080024c0 + thumb_func_start ClearRegistersForPsg +ClearRegistersForPsg: @ 0x080024c0 push {lr} lsls r1, r1, #0x18 lsrs r1, r1, #0x18 diff --git a/asm/disasm_0x08002a58.s b/asm/disasm_0x08002a58.s index 75d6e58d..07710f29 100644 --- a/asm/disasm_0x08002a58.s +++ b/asm/disasm_0x08002a58.s @@ -74,8 +74,8 @@ lbl_08002a7e: lbl_08002a84: .4byte 0x00000009 lbl_08002a88: .4byte sMusicTrackDataRom - thumb_func_start sub_08002a8c -sub_08002a8c: @ 0x08002a8c + thumb_func_start unk_2a8c +unk_2a8c: @ 0x08002a8c push {r4, r5, lr} ldr r0, lbl_08002ac4 @ =0x00000009 lsls r0, r0, #0x10 @@ -119,28 +119,28 @@ FadeAllSounds: @ 0x08002acc ldr r5, lbl_08002b1c @ =sMusicTrackDataRom ldr r0, [r5, #0xc] adds r1, r4, #0 - bl sub_08002c94 + bl ApplyMusicSoundFading ldr r0, [r5, #0x18] adds r1, r4, #0 - bl sub_08002c94 + bl ApplyMusicSoundFading ldr r0, [r5, #0x24] adds r1, r4, #0 - bl sub_08002c94 + bl ApplyMusicSoundFading ldr r0, [r5, #0x30] adds r1, r4, #0 - bl sub_08002c94 + bl ApplyMusicSoundFading ldr r0, [r5, #0x3c] adds r1, r4, #0 - bl sub_08002c94 + bl ApplyMusicSoundFading ldr r0, [r5, #0x48] adds r1, r4, #0 - bl sub_08002c94 + bl ApplyMusicSoundFading ldr r0, [r5, #0x54] adds r1, r4, #0 - bl sub_08002c94 + bl ApplyMusicSoundFading ldr r0, [r5, #0x60] adds r1, r4, #0 - bl sub_08002c94 + bl ApplyMusicSoundFading pop {r4, r5} pop {r0} bx r0 @@ -351,8 +351,8 @@ SoundFade: @ 0x08002c80 bx r0 .align 2, 0 - thumb_func_start sub_08002c94 -sub_08002c94: @ 0x08002c94 + thumb_func_start ApplyMusicSoundFading +ApplyMusicSoundFading: @ 0x08002c94 push {r4, lr} adds r4, r0, #0 lsls r1, r1, #0x10 @@ -397,8 +397,8 @@ lbl_08002cde: .align 2, 0 lbl_08002ce4: .4byte 0x0000ffff - thumb_func_start sub_08002ce8 -sub_08002ce8: @ 0x08002ce8 + thumb_func_start ApplyRawMusicSoundFading +ApplyRawMusicSoundFading: @ 0x08002ce8 push {r4, lr} adds r4, r0, #0 lsls r1, r1, #0x10 @@ -558,7 +558,7 @@ InitFadingMusic: @ 0x08002dfc adds r5, r0, #0 lsls r2, r2, #0x10 lsrs r6, r2, #0x10 - bl sub_08004b50 + bl InitTrack cmp r6, #0 beq lbl_08002e2a ldrb r1, [r5, #0x1c] @@ -582,8 +582,8 @@ lbl_08002e2a: .align 2, 0 lbl_08002e30: .4byte 0x0000ffff - thumb_func_start sub_08002e34 -sub_08002e34: @ 0x08002e34 + thumb_func_start unk_2e34 +unk_2e34: @ 0x08002e34 push {r4, r5, lr} adds r4, r0, #0 lsls r1, r1, #0x10 @@ -805,7 +805,7 @@ lbl_08002fac: strb r0, [r1] adds r0, r6, #0 adds r1, r7, #0 - bl sub_08004b50 + bl InitTrack movs r0, #0x42 strb r0, [r6] mov r0, r8 @@ -868,8 +868,8 @@ lbl_08003052: pop {r0} bx r0 - thumb_func_start sub_08003058 -sub_08003058: @ 0x08003058 + thumb_func_start unk_3058 +unk_3058: @ 0x08003058 push {r4, r5, r6, r7, lr} adds r4, r0, #0 lsls r1, r1, #0x10 @@ -1325,2061 +1325,3 @@ lbl_08003370: pop {r4, r5, r6, r7} pop {r0} bx r0 - - thumb_func_start DMA2IntrCode -DMA2IntrCode: @ 0x08003380 - push {r4, lr} - ldr r3, lbl_080033c8 @ =gMusicInfo - ldrb r0, [r3, #0x10] - adds r0, #1 - strb r0, [r3, #0x10] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r3, #0xe] - cmp r0, r1 - bne lbl_080033c0 - ldr r0, lbl_080033cc @ =0x040000c4 - ldr r1, lbl_080033d0 @ =0x84400004 - str r1, [r0] - adds r0, #0xc - str r1, [r0] - ldr r2, lbl_080033d4 @ =0x040000c6 - movs r4, #0xa0 - lsls r4, r4, #3 - adds r0, r4, #0 - strh r0, [r2] - ldr r1, lbl_080033d8 @ =0x040000d2 - strh r0, [r1] - movs r4, #0xb6 - lsls r4, r4, #8 - adds r0, r4, #0 - strh r0, [r2] - movs r2, #0xf6 - lsls r2, r2, #8 - adds r0, r2, #0 - strh r0, [r1] - movs r0, #0 - strb r0, [r3, #0x10] -lbl_080033c0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -lbl_080033c8: .4byte gMusicInfo -lbl_080033cc: .4byte 0x040000c4 -lbl_080033d0: .4byte 0x84400004 -lbl_080033d4: .4byte 0x040000c6 -lbl_080033d8: .4byte 0x040000d2 - - thumb_func_start unk_33dc -unk_33dc: @ 0x080033dc - push {r4, r5, lr} - sub sp, #4 - ldr r5, lbl_08003440 @ =gMusicInfo - ldrb r4, [r5, #1] - cmp r4, #0 - bne lbl_08003438 - movs r0, #1 - strb r0, [r5, #1] - ldr r0, lbl_08003444 @ =0x04000064 - movs r2, #0x80 - lsls r2, r2, #8 - adds r1, r2, #0 - strh r1, [r0] - adds r0, #5 - movs r2, #8 - strb r2, [r0] - adds r0, #3 - strh r1, [r0] - adds r0, #4 - strb r4, [r0] - adds r0, #9 - strb r2, [r0] - adds r0, #3 - strh r1, [r0] - adds r0, #0x48 - ldr r1, lbl_08003448 @ =0x84400004 - str r1, [r0] - adds r0, #0xc - str r1, [r0] - subs r0, #0xa - movs r2, #0xa0 - lsls r2, r2, #3 - adds r1, r2, #0 - strh r1, [r0] - adds r0, #0xc - strh r1, [r0] - str r4, [sp] - ldr r0, lbl_0800344c @ =0x00000c24 - adds r1, r5, r0 - ldr r2, lbl_08003450 @ =0x05000300 - mov r0, sp - bl CpuSet - ldr r0, lbl_08003454 @ =0x04000084 - strb r4, [r0] - strb r4, [r5, #1] -lbl_08003438: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003440: .4byte gMusicInfo -lbl_08003444: .4byte 0x04000064 -lbl_08003448: .4byte 0x84400004 -lbl_0800344c: .4byte 0x00000c24 -lbl_08003450: .4byte 0x05000300 -lbl_08003454: .4byte 0x04000084 - - thumb_func_start unk_3458 -unk_3458: @ 0x08003458 - push {r4, r5, lr} - sub sp, #4 - ldr r5, lbl_08003498 @ =gMusicInfo - ldrb r4, [r5, #1] - cmp r4, #0 - bne lbl_08003490 - movs r0, #1 - strb r0, [r5, #1] - ldr r0, lbl_0800349c @ =0x040000c4 - ldr r1, lbl_080034a0 @ =0x84400004 - str r1, [r0] - adds r0, #0xc - str r1, [r0] - subs r0, #0xa - movs r2, #0xa0 - lsls r2, r2, #3 - adds r1, r2, #0 - strh r1, [r0] - adds r0, #0xc - strh r1, [r0] - str r4, [sp] - ldr r0, lbl_080034a4 @ =0x00000c24 - adds r1, r5, r0 - ldr r2, lbl_080034a8 @ =0x05000300 - mov r0, sp - bl CpuSet - strb r4, [r5, #1] -lbl_08003490: - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003498: .4byte gMusicInfo -lbl_0800349c: .4byte 0x040000c4 -lbl_080034a0: .4byte 0x84400004 -lbl_080034a4: .4byte 0x00000c24 -lbl_080034a8: .4byte 0x05000300 - - thumb_func_start sub_080034ac -sub_080034ac: @ 0x080034ac - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r3, #0 - movs r0, #1 - ldr r1, [sp] - cmp r1, #0 - bne lbl_080034ca - movs r0, #2 -lbl_080034ca: - adds r2, r0, #0 - ldr r0, lbl_0800352c @ =0x00000009 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bhs lbl_080035ba - str r0, [sp, #4] -lbl_080034d8: - cmp r2, #2 - bne lbl_080034e2 - ldr r0, [sp] - cmp r0, #0 - beq lbl_080034f4 -lbl_080034e2: - movs r1, #0xa5 - lsls r1, r1, #1 - asrs r1, r2 - movs r0, #1 - ands r1, r0 - adds r0, r2, #1 - mov sl, r0 - cmp r1, #0 - beq lbl_080035ae -lbl_080034f4: - ldr r0, lbl_08003530 @ =sMusicTrackDataRom - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r6, [r1] - ldrb r0, [r6, #0x1c] - adds r2, #1 - mov sl, r2 - cmp r0, #0 - bne lbl_080035ae - movs r2, #1 - strb r2, [r6, #0x1c] - ldrb r1, [r6, #0x1e] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne lbl_080035aa - ldrb r1, [r6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq lbl_080035aa - strb r2, [r6, #0x1e] - movs r1, #0 - ldr r4, [r6, #0x18] - b lbl_080035a4 - .align 2, 0 -lbl_0800352c: .4byte 0x00000009 -lbl_08003530: .4byte sMusicTrackDataRom -lbl_08003534: - adds r0, r4, #0 - adds r0, #0x34 - ldrb r2, [r0] - movs r0, #0xc0 - ands r0, r2 - adds r1, #1 - mov r8, r1 - movs r1, #0x50 - adds r1, r1, r4 - mov sb, r1 - cmp r0, #0 - bne lbl_0800359c - ldr r0, [r4, #0x4c] - cmp r0, #0 - beq lbl_08003564 - movs r1, #7 - ands r1, r2 - subs r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r3, [sp, #8] - bl sub_080024c0 - ldr r3, [sp, #8] -lbl_08003564: - ldr r0, [r4, #0x48] - cmp r0, #0 - beq lbl_0800359c - adds r4, r0, #0 - ldr r7, lbl_080035cc @ =gSoundChannelBackup - movs r5, #0 -lbl_08003570: - lsls r0, r3, #3 - subs r0, r0, r3 - lsls r0, r0, #3 - adds r0, r0, r7 - stm r0!, {r4} - adds r1, r4, #0 - movs r2, #0x34 - str r3, [sp, #8] - bl memcpy - ldr r3, [sp, #8] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - strb r5, [r4] - str r5, [r4, #0x28] - ldr r0, [r4, #0x30] - str r5, [r4, #0x30] - str r5, [r4, #0x2c] - adds r4, r0, #0 - cmp r4, #0 - bne lbl_08003570 -lbl_0800359c: - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r1, r0, #0x18 - mov r4, sb -lbl_080035a4: - ldrb r0, [r6, #1] - cmp r1, r0 - blo lbl_08003534 -lbl_080035aa: - movs r0, #0 - strb r0, [r6, #0x1c] -lbl_080035ae: - mov r1, sl - lsls r0, r1, #0x18 - lsrs r2, r0, #0x18 - ldr r0, [sp, #4] - cmp r2, r0 - blo lbl_080034d8 -lbl_080035ba: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_080035cc: .4byte gSoundChannelBackup - - thumb_func_start sub_080035d0 -sub_080035d0: @ 0x080035d0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - movs r0, #0 - mov sb, r0 - movs r0, #1 - ldr r1, [sp] - cmp r1, #0 - bne lbl_080035f0 - movs r0, #2 -lbl_080035f0: - adds r2, r0, #0 - ldr r0, lbl_0800364c @ =0x00000009 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bhs lbl_080036ba - str r0, [sp, #4] -lbl_080035fe: - cmp r2, #2 - bne lbl_08003608 - ldr r0, [sp] - cmp r0, #0 - beq lbl_0800361a -lbl_08003608: - movs r0, #0xa5 - lsls r0, r0, #1 - asrs r0, r2 - movs r1, #1 - ands r0, r1 - adds r1, r2, #1 - mov sl, r1 - cmp r0, #0 - beq lbl_080036ae -lbl_0800361a: - ldr r0, lbl_08003650 @ =sMusicTrackDataRom - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r5, [r1] - ldrb r0, [r5, #0x1c] - adds r2, #1 - mov sl, r2 - cmp r0, #0 - bne lbl_080036ae - movs r0, #1 - strb r0, [r5, #0x1c] - ldrb r1, [r5, #0x1e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq lbl_080036aa - movs r0, #0xfe - ands r0, r1 - strb r0, [r5, #0x1e] - movs r3, #0 - ldr r2, [r5, #0x18] - b lbl_080036a4 - .align 2, 0 -lbl_0800364c: .4byte 0x00000009 -lbl_08003650: .4byte sMusicTrackDataRom -lbl_08003654: - adds r0, r2, #0 - adds r0, #0x34 - ldrb r1, [r0] - movs r0, #0xc0 - ands r0, r1 - adds r6, r3, #1 - adds r7, r2, #0 - adds r7, #0x50 - cmp r0, #0 - bne lbl_0800369e - ldr r0, [r2, #0x48] - cmp r0, #0 - beq lbl_0800369e - adds r4, r0, #0 - ldr r0, lbl_080036cc @ =gSoundChannelBackup - mov r8, r0 -lbl_08003674: - adds r0, r4, #0 - bl sub_080020a4 - mov r0, sb - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #3 - add r1, r8 - adds r1, #4 - adds r0, r4, #0 - movs r2, #0x34 - bl memcpy - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r4, [r4, #0x30] - cmp r4, #0 - bne lbl_08003674 -lbl_0800369e: - lsls r0, r6, #0x18 - lsrs r3, r0, #0x18 - adds r2, r7, #0 -lbl_080036a4: - ldrb r1, [r5, #1] - cmp r3, r1 - blo lbl_08003654 -lbl_080036aa: - movs r0, #0 - strb r0, [r5, #0x1c] -lbl_080036ae: - mov r1, sl - lsls r0, r1, #0x18 - lsrs r2, r0, #0x18 - ldr r0, [sp, #4] - cmp r2, r0 - blo lbl_080035fe -lbl_080036ba: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_080036cc: .4byte gSoundChannelBackup - - thumb_func_start CheckSetNewMusicTrack -CheckSetNewMusicTrack: @ 0x080036d0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, lbl_080036fc @ =gMusicInfo - mov r8, r0 - adds r0, #0x21 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne lbl_08003776 - movs r0, #0x70 - ands r0, r1 - cmp r0, #0 - beq lbl_08003700 - adds r0, r4, #0 - bl sub_0800378c - b lbl_08003776 - .align 2, 0 -lbl_080036fc: .4byte gMusicInfo -lbl_08003700: - lsls r0, r1, #0x18 - cmp r0, #0 - bne lbl_08003776 - mov r1, r8 - ldrb r5, [r1, #1] - cmp r5, #0 - bne lbl_08003776 - movs r0, #1 - strb r0, [r1, #1] - ldr r6, lbl_08003780 @ =sMusicTrackDataRom - ldr r0, [r6, #0x48] - movs r1, #0xa - bl sub_08002c94 - ldr r0, [r6, #0x60] - movs r1, #0xa - bl sub_08002c94 - ldr r3, lbl_08003784 @ =gSoundQueue - adds r2, r3, #0 - adds r2, #0x30 - ldrb r1, [r2] - movs r7, #3 - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq lbl_08003738 - strb r5, [r2] -lbl_08003738: - adds r2, r3, #0 - adds r2, #0x40 - ldrb r1, [r2] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq lbl_08003748 - strb r5, [r2] -lbl_08003748: - ldr r6, [r6] - cmp r4, #0 - bne lbl_08003750 - movs r4, #0xa9 -lbl_08003750: - adds r0, r4, #0 - bl sub_08003980 - adds r4, r0, #0 - ldr r1, lbl_08003788 @ =sSoundDataEntries - lsls r0, r4, #3 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, [r6, #0x10] - cmp r1, r0 - beq lbl_08003772 - adds r0, r6, #0 - movs r1, #0x1e - bl sub_08002c94 - mov r0, r8 - strh r4, [r0, #0x22] -lbl_08003772: - mov r1, r8 - strb r5, [r1, #1] -lbl_08003776: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003780: .4byte sMusicTrackDataRom -lbl_08003784: .4byte gSoundQueue -lbl_08003788: .4byte sSoundDataEntries - - thumb_func_start sub_0800378c -sub_0800378c: @ 0x0800378c - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r7, lbl_08003808 @ =gMusicInfo - ldrb r6, [r7, #1] - cmp r6, #0 - bne lbl_08003866 - movs r0, #1 - strb r0, [r7, #1] - ldr r4, lbl_0800380c @ =sMusicTrackDataRom - ldr r0, [r4, #0x48] - movs r1, #0xa - bl sub_08002c94 - ldr r0, [r4, #0x60] - movs r1, #0xa - bl sub_08002c94 - ldr r3, lbl_08003810 @ =gSoundQueue - adds r2, r3, #0 - adds r2, #0x30 - ldrb r1, [r2] - movs r4, #3 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq lbl_080037c4 - strb r6, [r2] -lbl_080037c4: - adds r2, r3, #0 - adds r2, #0x40 - ldrb r1, [r2] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq lbl_080037d4 - strb r6, [r2] -lbl_080037d4: - adds r0, r7, #0 - adds r0, #0x21 - ldrb r1, [r0] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0 - beq lbl_08003822 - ldrh r0, [r7, #0x1c] - subs r0, #0x5a - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #9 - bhi lbl_08003814 - adds r0, r5, #0 - subs r0, #0x5a - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #9 - bls lbl_0800383a - movs r0, #0x10 - ands r0, r1 - movs r5, #0x49 - cmp r0, #0 - beq lbl_0800383a - movs r5, #0x46 - b lbl_0800383a - .align 2, 0 -lbl_08003808: .4byte gMusicInfo -lbl_0800380c: .4byte sMusicTrackDataRom -lbl_08003810: .4byte gSoundQueue -lbl_08003814: - adds r0, r5, #0 - subs r0, #0x5a - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #9 - bls lbl_0800383a - b lbl_08003860 -lbl_08003822: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq lbl_0800383a - adds r0, r5, #0 - subs r0, #0x5a - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #9 - bhi lbl_08003860 - strh r5, [r7, #0x22] - b lbl_08003860 -lbl_0800383a: - ldr r0, lbl_0800386c @ =sMusicTrackDataRom - ldr r6, [r0] - ldr r4, lbl_08003870 @ =sSoundDataEntries - adds r0, r5, #0 - bl sub_08003980 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xd - adds r0, r0, r4 - ldr r1, [r0] - ldr r0, [r6, #0x10] - cmp r1, r0 - beq lbl_08003860 - adds r0, r6, #0 - movs r1, #0x1e - bl sub_08002c94 - ldr r0, lbl_08003874 @ =gMusicInfo - strh r5, [r0, #0x22] -lbl_08003860: - ldr r1, lbl_08003874 @ =gMusicInfo - movs r0, #0 - strb r0, [r1, #1] -lbl_08003866: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_0800386c: .4byte sMusicTrackDataRom -lbl_08003870: .4byte sSoundDataEntries -lbl_08003874: .4byte gMusicInfo - - thumb_func_start CheckPlayTransitionMusicTrack -CheckPlayTransitionMusicTrack: @ 0x08003878 - push {r4, r5, lr} - ldr r4, lbl_08003898 @ =gMusicInfo - adds r0, r4, #0 - adds r0, #0x21 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne lbl_080038c8 - movs r0, #0x70 - ands r0, r1 - cmp r0, #0 - beq lbl_0800389c - bl sub_080038d8 - b lbl_080038c8 - .align 2, 0 -lbl_08003898: .4byte gMusicInfo -lbl_0800389c: - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne lbl_080038c8 - ldrh r0, [r4, #0x22] - cmp r0, #0 - beq lbl_080038c8 - ldr r0, lbl_080038d0 @ =sMusicTrackDataRom - ldr r0, [r0] - ldr r2, lbl_080038d4 @ =sSoundDataEntries - ldrh r1, [r4, #0x22] - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_08004b50 - adds r0, r4, #0 - adds r0, #0x20 - strb r5, [r0] - ldrh r0, [r4, #0x22] - strh r0, [r4, #0x1c] - strh r5, [r4, #0x22] -lbl_080038c8: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -lbl_080038d0: .4byte sMusicTrackDataRom -lbl_080038d4: .4byte sSoundDataEntries - - thumb_func_start sub_080038d8 -sub_080038d8: @ 0x080038d8 - push {r4, r5, r6, r7, lr} - ldr r6, lbl_08003924 @ =gMusicInfo - adds r0, r6, #0 - adds r0, #0x21 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - bne lbl_08003918 - ldrh r0, [r6, #0x22] - cmp r0, #0 - beq lbl_08003918 - ldr r0, lbl_08003928 @ =sMusicTrackDataRom - ldr r5, [r0] - ldr r4, lbl_0800392c @ =sSoundDataEntries - ldrh r0, [r6, #0x22] - bl sub_08003980 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xd - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl sub_08004b50 - adds r0, r6, #0 - adds r0, #0x20 - strb r7, [r0] - ldrh r0, [r6, #0x22] - strh r0, [r6, #0x1c] -lbl_08003918: - ldr r1, lbl_08003924 @ =gMusicInfo - movs r0, #0 - strh r0, [r1, #0x22] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003924: .4byte gMusicInfo -lbl_08003928: .4byte sMusicTrackDataRom -lbl_0800392c: .4byte sSoundDataEntries - - thumb_func_start UpdateMusicAfterAlarmDisable -UpdateMusicAfterAlarmDisable: @ 0x08003930 - push {lr} - ldr r1, lbl_08003950 @ =gMusicInfo - adds r2, r1, #0 - adds r2, #0x21 - movs r0, #0x20 - strb r0, [r2] - ldrh r0, [r1, #0x22] - cmp r0, #0 - bne lbl_08003954 - movs r0, #5 - movs r1, #0x49 - movs r2, #0x20 - bl FadeCurrentMusicAndQueueNextMusic - b lbl_0800397a - .align 2, 0 -lbl_08003950: .4byte gMusicInfo -lbl_08003954: - subs r0, #0x5a - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #9 - bhi lbl_08003970 - ldr r0, lbl_0800396c @ =sMusicTrackDataRom - ldr r0, [r0] - movs r1, #5 - bl sub_08002c94 - b lbl_0800397a - .align 2, 0 -lbl_0800396c: .4byte sMusicTrackDataRom -lbl_08003970: - movs r0, #5 - movs r1, #0x49 - movs r2, #0x20 - bl FadeCurrentMusicAndQueueNextMusic -lbl_0800397a: - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_08003980 -sub_08003980: @ 0x08003980 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r0, #0 - subs r1, #0x5a - cmp r1, #4 - bhi lbl_080039c2 - lsls r0, r1, #2 - ldr r1, lbl_08003998 @ =lbl_0800399c - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -lbl_08003998: .4byte lbl_0800399c -lbl_0800399c: @ jump table - .4byte lbl_080039b0 @ case 0 - .4byte lbl_080039b4 @ case 1 - .4byte lbl_080039b8 @ case 2 - .4byte lbl_080039bc @ case 3 - .4byte lbl_080039c0 @ case 4 -lbl_080039b0: - movs r0, #0xe - b lbl_080039c2 -lbl_080039b4: - movs r0, #0xc - b lbl_080039c2 -lbl_080039b8: - movs r0, #3 - b lbl_080039c2 -lbl_080039bc: - movs r0, #0x17 - b lbl_080039c2 -lbl_080039c0: - movs r0, #0x46 -lbl_080039c2: - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start unk_39c8 -unk_39c8: @ 0x080039c8 - push {r4, lr} - ldr r0, lbl_080039ec @ =gMusicInfo - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - bne lbl_080039e6 - ldr r4, lbl_080039f0 @ =sMusicTrackDataRom - ldr r0, [r4, #0x48] - movs r1, #0xa - bl sub_08002c94 - ldr r0, [r4, #0x60] - movs r1, #0xa - bl sub_08002c94 -lbl_080039e6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -lbl_080039ec: .4byte gMusicInfo -lbl_080039f0: .4byte sMusicTrackDataRom - - thumb_func_start PlayMusic -PlayMusic: @ 0x080039f4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r7, r6, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, lbl_08003a60 @ =gMusicInfo - ldrb r0, [r3, #1] - cmp r0, #0 - bne lbl_08003a58 - movs r0, #1 - strb r0, [r3, #1] - adds r5, r3, #0 - adds r5, #0x21 - ldrb r2, [r5] - movs r4, #0x84 - ands r4, r2 - cmp r4, #0 - bne lbl_08003a52 - movs r0, #0x80 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldr r1, lbl_08003a64 @ =sSoundDataEntries - lsls r0, r6, #3 - adds r0, r0, r1 - ldr r5, [r0] - ldr r0, lbl_08003a68 @ =sMusicTrackDataRom - ldr r2, [r0] - ldr r0, [r2, #0x10] - cmp r5, r0 - bne lbl_08003a3e - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne lbl_08003a52 -lbl_08003a3e: - adds r0, r3, #0 - adds r0, #0x20 - strb r4, [r0] - movs r0, #0 - strh r7, [r3, #0x1c] - strb r0, [r3, #1] - adds r0, r2, #0 - adds r1, r5, #0 - bl sub_08004b50 -lbl_08003a52: - ldr r1, lbl_08003a60 @ =gMusicInfo - movs r0, #0 - strb r0, [r1, #1] -lbl_08003a58: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003a60: .4byte gMusicInfo -lbl_08003a64: .4byte sSoundDataEntries -lbl_08003a68: .4byte sMusicTrackDataRom - - thumb_func_start sub_08003a6c -sub_08003a6c: @ 0x08003a6c - push {lr} - ldr r0, lbl_08003a80 @ =gMusicInfo - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - bne lbl_08003a88 - ldr r0, lbl_08003a84 @ =sMusicTrackDataRom - ldr r0, [r0] - b lbl_08003a8c - .align 2, 0 -lbl_08003a80: .4byte gMusicInfo -lbl_08003a84: .4byte sMusicTrackDataRom -lbl_08003a88: - ldr r0, lbl_08003a94 @ =sMusicTrackDataRom - ldr r0, [r0, #0xc] -lbl_08003a8c: - bl stop_music_or_sound - pop {r0} - bx r0 - .align 2, 0 -lbl_08003a94: .4byte sMusicTrackDataRom - - thumb_func_start FadeMusic -FadeMusic: @ 0x08003a98 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, lbl_08003ac8 @ =gMusicInfo - ldrb r0, [r1, #1] - cmp r0, #0 - bne lbl_08003ada - movs r0, #1 - strb r0, [r1, #1] - adds r0, r1, #0 - adds r0, #0x21 - ldrb r1, [r0] - movs r0, #0x84 - ands r0, r1 - cmp r0, #0 - bne lbl_08003ad4 - ldr r0, lbl_08003acc @ =sMusicTrackDataRom - ldr r0, [r0] - cmp r2, #0 - beq lbl_08003ad0 - adds r1, r2, #0 - bl sub_08002c94 - b lbl_08003ad4 - .align 2, 0 -lbl_08003ac8: .4byte gMusicInfo -lbl_08003acc: .4byte sMusicTrackDataRom -lbl_08003ad0: - bl stop_music_or_sound -lbl_08003ad4: - ldr r1, lbl_08003ae0 @ =gMusicInfo - movs r0, #0 - strb r0, [r1, #1] -lbl_08003ada: - pop {r0} - bx r0 - .align 2, 0 -lbl_08003ae0: .4byte gMusicInfo - - thumb_func_start FadeMusicForDemo -FadeMusicForDemo: @ 0x08003ae4 - push {lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, lbl_08003b14 @ =gMusicInfo - ldrb r0, [r1, #1] - cmp r0, #0 - bne lbl_08003b26 - movs r0, #1 - strb r0, [r1, #1] - adds r0, r1, #0 - adds r0, #0x21 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne lbl_08003b20 - ldr r0, lbl_08003b18 @ =sMusicTrackDataRom - ldr r0, [r0] - cmp r2, #0 - beq lbl_08003b1c - adds r1, r2, #0 - bl sub_08002c94 - b lbl_08003b20 - .align 2, 0 -lbl_08003b14: .4byte gMusicInfo -lbl_08003b18: .4byte sMusicTrackDataRom -lbl_08003b1c: - bl stop_music_or_sound -lbl_08003b20: - ldr r1, lbl_08003b2c @ =gMusicInfo - movs r0, #0 - strb r0, [r1, #1] -lbl_08003b26: - pop {r0} - bx r0 - .align 2, 0 -lbl_08003b2c: .4byte gMusicInfo - - thumb_func_start FadeCurrentMusicAndQueueNextMusic -FadeCurrentMusicAndQueueNextMusic: @ 0x08003b30 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r7, r4, #0 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - adds r6, r3, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r5, r2, #0 - ldr r0, lbl_08003b60 @ =gMusicInfo - adds r0, #0x21 - ldrb r1, [r0] - movs r0, #0x84 - ands r0, r1 - cmp r0, #0 - bne lbl_08003b72 - cmp r4, #0 - bne lbl_08003b64 - adds r0, r3, #0 - adds r1, r2, #0 - bl PlayMusic - b lbl_08003b72 - .align 2, 0 -lbl_08003b60: .4byte gMusicInfo -lbl_08003b64: - ldr r0, lbl_08003b78 @ =sMusicTrackDataRom - ldr r0, [r0] - strh r6, [r0, #0x20] - strb r5, [r0, #0x1f] - adds r1, r7, #0 - bl sub_08002c94 -lbl_08003b72: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003b78: .4byte sMusicTrackDataRom - - thumb_func_start FadeCurrentInsertMusicQueueCurrent -FadeCurrentInsertMusicQueueCurrent: @ 0x08003b7c - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r7, r5, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r3, r4, #0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r6, r2, #0 - ldr r0, lbl_08003bac @ =gMusicInfo - adds r0, #0x21 - ldrb r1, [r0] - movs r0, #0x84 - ands r0, r1 - cmp r0, #0 - bne lbl_08003bc6 - cmp r5, #0 - bne lbl_08003bb0 - adds r0, r4, #0 - adds r1, r2, #0 - bl PlayMusic - b lbl_08003bc6 - .align 2, 0 -lbl_08003bac: .4byte gMusicInfo -lbl_08003bb0: - ldr r0, lbl_08003bcc @ =sMusicTrackDataRom - ldr r0, [r0] - movs r2, #0x80 - lsls r2, r2, #8 - adds r1, r2, #0 - orrs r3, r1 - strh r3, [r0, #0x20] - strb r6, [r0, #0x1f] - adds r1, r7, #0 - bl sub_08002ce8 -lbl_08003bc6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003bcc: .4byte sMusicTrackDataRom - - thumb_func_start unk_3bd0 -unk_3bd0: @ 0x08003bd0 - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r0, lbl_08003c14 @ =gMusicInfo - adds r0, #0x21 - ldrb r1, [r0] - movs r0, #0x84 - ands r0, r1 - cmp r0, #0 - bne lbl_08003c0c - ldr r3, lbl_08003c18 @ =sMusicTrackDataRom - ldr r0, lbl_08003c1c @ =sSoundDataEntries - lsls r2, r2, #3 - adds r2, r2, r0 - ldrh r1, [r2, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r3, [r0] - ldr r1, [r2] - ldr r0, [r3, #0x10] - cmp r1, r0 - bne lbl_08003c0c - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_08002e34 -lbl_08003c0c: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003c14: .4byte gMusicInfo -lbl_08003c18: .4byte sMusicTrackDataRom -lbl_08003c1c: .4byte sSoundDataEntries - - thumb_func_start CheckPlayFadingMusic -CheckPlayFadingMusic: @ 0x08003c20 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r7, r6, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov ip, r1 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r3, lbl_08003c94 @ =gMusicInfo - ldrb r0, [r3, #1] - cmp r0, #0 - bne lbl_08003c8c - movs r0, #1 - strb r0, [r3, #1] - adds r5, r3, #0 - adds r5, #0x21 - ldrb r1, [r5] - movs r4, #0x84 - ands r4, r1 - cmp r4, #0 - bne lbl_08003c86 - movs r0, #0x80 - ands r0, r1 - orrs r0, r2 - strb r0, [r5] - ldr r1, lbl_08003c98 @ =sSoundDataEntries - lsls r0, r6, #3 - adds r0, r0, r1 - ldr r5, [r0] - ldr r0, lbl_08003c9c @ =sMusicTrackDataRom - ldr r2, [r0] - ldrb r1, [r2] - movs r0, #0x1a - ands r0, r1 - cmp r0, #2 - bne lbl_08003c70 - ldr r0, [r2, #0x10] - cmp r5, r0 - beq lbl_08003c86 -lbl_08003c70: - adds r0, r3, #0 - adds r0, #0x20 - strb r4, [r0] - movs r0, #0 - strh r7, [r3, #0x1c] - strb r0, [r3, #1] - adds r0, r2, #0 - adds r1, r5, #0 - mov r2, ip - bl InitFadingMusic -lbl_08003c86: - ldr r1, lbl_08003c94 @ =gMusicInfo - movs r0, #0 - strb r0, [r1, #1] -lbl_08003c8c: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003c94: .4byte gMusicInfo -lbl_08003c98: .4byte sSoundDataEntries -lbl_08003c9c: .4byte sMusicTrackDataRom - - thumb_func_start InsertMusicAndQueueCurrent -InsertMusicAndQueueCurrent: @ 0x08003ca0 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - adds r6, r3, #0 - ldr r1, lbl_08003d00 @ =gMusicInfo - ldrb r0, [r1, #1] - cmp r0, #0 - bne lbl_08003d40 - movs r7, #0 - movs r0, #1 - strb r0, [r1, #1] - adds r0, r1, #0 - adds r0, #0x21 - ldrb r1, [r0] - movs r0, #0x84 - ands r0, r1 - cmp r0, #0 - bne lbl_08003d3a - ldr r1, lbl_08003d04 @ =sSoundDataEntries - lsls r0, r2, #3 - adds r0, r0, r1 - ldr r5, [r0] - ldr r2, lbl_08003d08 @ =sMusicTrackDataRom - ldr r4, [r2] - ldrb r1, [r4] - movs r0, #0x1a - ands r0, r1 - cmp r0, #2 - bne lbl_08003ce4 - ldr r0, [r4, #0x10] - cmp r5, r0 - beq lbl_08003d3a -lbl_08003ce4: - cmp r3, #0 - bne lbl_08003d0c - ldr r0, [r2, #0x24] - bl stop_music_or_sound - movs r0, #1 - bl sub_080034ac - bl sub_08002a8c - adds r2, r4, #0 - adds r2, #0x28 - ldrb r0, [r2] - b lbl_08003d1e - .align 2, 0 -lbl_08003d00: .4byte gMusicInfo -lbl_08003d04: .4byte sSoundDataEntries -lbl_08003d08: .4byte sMusicTrackDataRom -lbl_08003d0c: - cmp r6, #1 - bne lbl_08003d24 - bl sub_08002a8c - adds r2, r4, #0 - adds r2, #0x28 - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 -lbl_08003d1e: - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] -lbl_08003d24: - ldr r3, lbl_08003d48 @ =gMusicInfo - adds r1, r3, #0 - adds r1, #0x20 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - strb r2, [r3, #1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08004b50 -lbl_08003d3a: - ldr r1, lbl_08003d48 @ =gMusicInfo - movs r0, #0 - strb r0, [r1, #1] -lbl_08003d40: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003d48: .4byte gMusicInfo - - thumb_func_start sub_08003d4c -sub_08003d4c: @ 0x08003d4c - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r4, lbl_08003d98 @ =gMusicInfo - ldrb r5, [r4, #1] - cmp r5, #0 - bne lbl_08003e02 - movs r0, #1 - strb r0, [r4, #1] - movs r0, #0x40 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - bne lbl_08003d76 - movs r0, #1 - bl sub_080035d0 -lbl_08003d76: - ldr r0, lbl_08003d9c @ =sMusicTrackDataRom - ldr r6, [r0] - adds r0, r4, #0 - adds r0, #0x20 - strb r5, [r0] - ldrh r0, [r4, #0x1c] - subs r0, #0x5a - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #9 - bhi lbl_08003da0 - ldrh r0, [r4, #0x1c] - bl sub_08003980 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - b lbl_08003da2 - .align 2, 0 -lbl_08003d98: .4byte gMusicInfo -lbl_08003d9c: .4byte sMusicTrackDataRom -lbl_08003da0: - ldrh r0, [r4, #0x1c] -lbl_08003da2: - ldr r1, lbl_08003e10 @ =sSoundDataEntries - lsls r0, r0, #3 - adds r0, r0, r1 - ldr r1, [r0] - ldr r7, lbl_08003e14 @ =gMusicInfo - movs r0, #0 - mov sb, r0 - mov r0, sb - strb r0, [r7, #1] - adds r0, r6, #0 - bl sub_08004b50 - movs r0, #0x40 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq lbl_08003dcc - adds r0, r6, #0 - movs r1, #0x3c - bl sub_080041ec -lbl_08003dcc: - ldrb r1, [r7, #0xb] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq lbl_08003dfe - ldr r5, lbl_08003e18 @ =sMusicTrackDataRom - ldr r0, [r5] - ldr r6, lbl_08003e1c @ =0x0000ffff - ldr r4, lbl_08003e20 @ =0x00000050 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_08003058 - ldr r0, [r5, #0xc] - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_08003058 - ldr r0, [r5, #0x54] - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_08003058 -lbl_08003dfe: - mov r0, sb - strb r0, [r7, #1] -lbl_08003e02: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003e10: .4byte sSoundDataEntries -lbl_08003e14: .4byte gMusicInfo -lbl_08003e18: .4byte sMusicTrackDataRom -lbl_08003e1c: .4byte 0x0000ffff -lbl_08003e20: .4byte 0x00000050 - - thumb_func_start sub_08003e24 -sub_08003e24: @ 0x08003e24 - push {lr} - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, lbl_08003e3c @ =gMusicInfo - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - bne lbl_08003e44 - ldr r0, lbl_08003e40 @ =sMusicTrackDataRom - ldr r0, [r0] - b lbl_08003e48 - .align 2, 0 -lbl_08003e3c: .4byte gMusicInfo -lbl_08003e40: .4byte sMusicTrackDataRom -lbl_08003e44: - ldr r0, lbl_08003e54 @ =sMusicTrackDataRom - ldr r0, [r0, #0xc] -lbl_08003e48: - cmp r1, #0 - beq lbl_08003e58 - bl sub_08002c94 - b lbl_08003e5c - .align 2, 0 -lbl_08003e54: .4byte sMusicTrackDataRom -lbl_08003e58: - bl stop_music_or_sound -lbl_08003e5c: - pop {r0} - bx r0 - - thumb_func_start UpdateMusicPriority -UpdateMusicPriority: @ 0x08003e60 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r4, r2, #0 - ldr r1, lbl_08003e88 @ =gMusicInfo - ldrb r0, [r1, #1] - adds r3, r1, #0 - cmp r0, #0 - bne lbl_08003eb0 - movs r0, #1 - strb r0, [r3, #1] - cmp r2, #0x80 - bne lbl_08003e8c - adds r4, r3, #0 - adds r4, #0x21 - ldrb r1, [r4] - adds r0, r2, #0 - orrs r0, r1 - strb r0, [r4] - b lbl_08003eac - .align 2, 0 -lbl_08003e88: .4byte gMusicInfo -lbl_08003e8c: - cmp r2, #0xff - bne lbl_08003e9e - adds r2, r3, #0 - adds r2, #0x21 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - b lbl_08003eac -lbl_08003e9e: - adds r2, r3, #0 - adds r2, #0x21 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - orrs r4, r0 - strb r4, [r2] -lbl_08003eac: - movs r0, #0 - strb r0, [r3, #1] -lbl_08003eb0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start PlayCurrentMusicTrack -PlayCurrentMusicTrack: @ 0x08003eb8 - push {r4, r5, r6, lr} - ldr r1, lbl_08003ef0 @ =gMusicInfo - ldrb r2, [r1, #1] - cmp r2, #0 - bne lbl_08003f12 - movs r0, #1 - strb r0, [r1, #1] - ldr r0, lbl_08003ef4 @ =sMusicTrackDataRom - ldr r6, [r0] - adds r0, r1, #0 - adds r0, #0x20 - strb r2, [r0] - ldrh r2, [r1, #0x1c] - adds r0, r2, #0 - subs r0, #0x5a - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #9 - bhi lbl_08003efc - ldr r4, lbl_08003ef8 @ =sSoundDataEntries - adds r0, r2, #0 - bl sub_08003980 - lsls r0, r0, #0x10 - lsrs r0, r0, #0xd - adds r0, r0, r4 - b lbl_08003f02 - .align 2, 0 -lbl_08003ef0: .4byte gMusicInfo -lbl_08003ef4: .4byte sMusicTrackDataRom -lbl_08003ef8: .4byte sSoundDataEntries -lbl_08003efc: - ldr r1, lbl_08003f18 @ =sSoundDataEntries - lsls r0, r2, #3 - adds r0, r0, r1 -lbl_08003f02: - ldr r1, [r0] - ldr r5, lbl_08003f1c @ =gMusicInfo - movs r4, #0 - strb r4, [r5, #1] - adds r0, r6, #0 - bl sub_08004b50 - strb r4, [r5, #1] -lbl_08003f12: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003f18: .4byte sSoundDataEntries -lbl_08003f1c: .4byte gMusicInfo - - thumb_func_start DecreaseMusicVolume -DecreaseMusicVolume: @ 0x08003f20 - push {r4, r5, r6, lr} - movs r0, #0x63 - bl SoundPlay - movs r0, #0 - bl sub_080034ac - ldr r2, lbl_08003f5c @ =gMusicInfo - ldrb r1, [r2, #0xb] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0xb] - ldr r5, lbl_08003f60 @ =sMusicTrackDataRom - ldr r0, [r5] - ldr r6, lbl_08003f64 @ =0x0000ffff - ldr r4, lbl_08003f68 @ =0x00000050 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_08003058 - ldr r0, [r5, #0xc] - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_08003058 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003f5c: .4byte gMusicInfo -lbl_08003f60: .4byte sMusicTrackDataRom -lbl_08003f64: .4byte 0x0000ffff -lbl_08003f68: .4byte 0x00000050 - - thumb_func_start ResetMusicVolume -ResetMusicVolume: @ 0x08003f6c - push {r4, r5, r6, lr} - ldr r4, lbl_08003fa0 @ =sMusicTrackDataRom - ldr r0, [r4] - ldr r5, lbl_08003fa4 @ =0x0000ffff - movs r6, #0x80 - lsls r6, r6, #1 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_08003058 - ldr r0, [r4, #0xc] - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_08003058 - ldr r2, lbl_08003fa8 @ =gMusicInfo - ldrb r1, [r2, #0xb] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0xb] - movs r0, #0 - bl sub_080035d0 -lbl_08003f9a: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -lbl_08003fa0: .4byte sMusicTrackDataRom -lbl_08003fa4: .4byte 0x0000ffff -lbl_08003fa8: .4byte gMusicInfo - - thumb_func_start QueueSound -QueueSound: @ 0x08003fac - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r1, lbl_08003fec @ =sSoundDataEntries - lsrs r0, r0, #0xd - adds r0, r0, r1 - ldrb r2, [r0, #4] - ldr r5, [r0] - ldr r0, lbl_08003ff0 @ =sArray_808cee2 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r6, lbl_08003ff4 @ =gSoundQueue - cmp r0, #0 - beq lbl_08003fe0 - lsls r0, r2, #3 - adds r3, r0, r6 - ldrb r1, [r3] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq lbl_08003fe0 - ldrb r0, [r3, #1] - ldrb r1, [r5, #2] - cmp r0, r1 - bhi lbl_0800400e -lbl_08003fe0: - cmp r4, #0 - bne lbl_08003ff8 - lsls r2, r2, #3 - adds r1, r2, r6 - movs r0, #1 - b lbl_08003ffe - .align 2, 0 -lbl_08003fec: .4byte sSoundDataEntries -lbl_08003ff0: .4byte sArray_808cee2 -lbl_08003ff4: .4byte gSoundQueue -lbl_08003ff8: - lsls r2, r2, #3 - adds r1, r2, r6 - movs r0, #2 -lbl_08003ffe: - strb r0, [r1] - strh r4, [r1, #2] - adds r1, r2, r6 - ldrb r0, [r5, #2] - strb r0, [r1, #1] - adds r0, r6, #4 - adds r0, r2, r0 - str r5, [r0] -lbl_0800400e: - pop {r4, r5, r6} - pop {r0} - bx r0 - - thumb_func_start StopOrFadeSound -StopOrFadeSound: @ 0x08004014 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - ldr r1, lbl_08004048 @ =sSoundDataEntries - lsrs r0, r0, #0xd - adds r0, r0, r1 - ldrb r2, [r0, #4] - ldr r6, [r0] - ldr r5, lbl_0800404c @ =gSoundQueue - lsls r3, r2, #3 - adds r4, r3, r5 - ldrb r1, [r4] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq lbl_08004050 - adds r0, r5, #4 - adds r0, r3, r0 - ldr r0, [r0] - cmp r6, r0 - bne lbl_08004050 - movs r0, #0 - strb r0, [r4] - b lbl_0800407c - .align 2, 0 -lbl_08004048: .4byte sSoundDataEntries -lbl_0800404c: .4byte gSoundQueue -lbl_08004050: - ldr r0, lbl_08004070 @ =sMusicTrackDataRom - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - ldr r0, [r1, #0x10] - cmp r6, r0 - bne lbl_0800407c - cmp r7, #0 - bne lbl_08004074 - adds r0, r1, #0 - bl stop_music_or_sound - b lbl_0800407c - .align 2, 0 -lbl_08004070: .4byte sMusicTrackDataRom -lbl_08004074: - adds r0, r1, #0 - adds r1, r7, #0 - bl sub_08002c94 -lbl_0800407c: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_08004084: - .byte 0x70, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00 - - thumb_func_start BackupTrackData2SoundChannels -BackupTrackData2SoundChannels: @ 0x0800408c - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r7, #0 - ldr r0, lbl_080040c4 @ =sMusicTrackDataRom - ldr r6, [r0, #0x18] - ldrb r0, [r6, #0x1c] - cmp r0, #0 - bne lbl_0800413a - movs r2, #1 - strb r2, [r6, #0x1c] - ldrb r1, [r6, #0x1e] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne lbl_0800413a - ldrb r1, [r6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq lbl_0800413a - strb r2, [r6, #0x1e] - movs r1, #0 - ldr r4, [r6, #0x18] - b lbl_08004134 - .align 2, 0 -lbl_080040c4: .4byte sMusicTrackDataRom -lbl_080040c8: - adds r0, r4, #0 - adds r0, #0x34 - ldrb r2, [r0] - movs r0, #0xc0 - ands r0, r2 - adds r1, #1 - mov r8, r1 - movs r1, #0x50 - adds r1, r1, r4 - mov sb, r1 - cmp r0, #0 - bne lbl_0800412c - ldr r0, [r4, #0x4c] - cmp r0, #0 - beq lbl_080040f4 - movs r1, #7 - ands r1, r2 - subs r1, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_080024c0 -lbl_080040f4: - ldr r0, [r4, #0x48] - cmp r0, #0 - beq lbl_0800412c - adds r4, r0, #0 - ldr r3, lbl_0800414c @ =gSoundChannelTrack2Backup - movs r5, #0 -lbl_08004100: - lsls r0, r7, #3 - subs r0, r0, r7 - lsls r0, r0, #3 - adds r0, r0, r3 - stm r0!, {r4} - adds r1, r4, #0 - movs r2, #0x34 - str r3, [sp] - bl memcpy - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - strb r5, [r4] - str r5, [r4, #0x28] - ldr r0, [r4, #0x30] - str r5, [r4, #0x30] - str r5, [r4, #0x2c] - adds r4, r0, #0 - ldr r3, [sp] - cmp r4, #0 - bne lbl_08004100 -lbl_0800412c: - mov r1, r8 - lsls r0, r1, #0x18 - lsrs r1, r0, #0x18 - mov r4, sb -lbl_08004134: - ldrb r0, [r6, #1] - cmp r1, r0 - blo lbl_080040c8 -lbl_0800413a: - movs r0, #0 - strb r0, [r6, #0x1c] - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_0800414c: .4byte gSoundChannelTrack2Backup - - thumb_func_start RetrieveTrackData2SoundChannels -RetrieveTrackData2SoundChannels: @ 0x08004150 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r6, #0 - ldr r0, lbl_080041e4 @ =sMusicTrackDataRom - ldr r5, [r0, #0x18] - ldrb r0, [r5, #0x1c] - cmp r0, #0 - bne lbl_080041d2 - movs r0, #1 - strb r0, [r5, #0x1c] - ldrb r1, [r5, #0x1e] - ands r0, r1 - cmp r0, #0 - beq lbl_080041d2 - movs r0, #0xfe - ands r0, r1 - strb r0, [r5, #0x1e] - movs r3, #0 - ldr r2, [r5, #0x18] - ldrb r0, [r5, #1] - cmp r3, r0 - bhs lbl_080041d2 -lbl_08004180: - adds r0, r2, #0 - adds r0, #0x34 - ldrb r1, [r0] - movs r0, #0xc0 - ands r0, r1 - adds r7, r3, #1 - movs r1, #0x50 - adds r1, r1, r2 - mov r8, r1 - cmp r0, #0 - bne lbl_080041c6 - ldr r0, [r2, #0x48] - cmp r0, #0 - beq lbl_080041c6 - adds r4, r0, #0 - ldr r0, lbl_080041e8 @ =gSoundChannelTrack2Backup - mov sb, r0 -lbl_080041a2: - adds r0, r4, #0 - bl sub_080020a4 - lsls r1, r6, #3 - subs r1, r1, r6 - lsls r1, r1, #3 - add r1, sb - adds r1, #4 - adds r0, r4, #0 - movs r2, #0x34 - bl memcpy - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, [r4, #0x30] - cmp r4, #0 - bne lbl_080041a2 -lbl_080041c6: - lsls r0, r7, #0x18 - lsrs r3, r0, #0x18 - mov r2, r8 - ldrb r1, [r5, #1] - cmp r3, r1 - blo lbl_08004180 -lbl_080041d2: - movs r0, #0 - strb r0, [r5, #0x1c] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -lbl_080041e4: .4byte sMusicTrackDataRom -lbl_080041e8: .4byte gSoundChannelTrack2Backup - - thumb_func_start sub_080041ec -sub_080041ec: @ 0x080041ec - push {r4, lr} - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldrb r0, [r3, #0x1c] - cmp r0, #0 - bne lbl_0800421e - movs r0, #1 - strb r0, [r3, #0x1c] - movs r1, #0 - ldr r2, [r3, #0x18] - b lbl_08004218 -lbl_08004204: - ldrb r0, [r2] - cmp r0, #0 - beq lbl_08004210 - ldrb r0, [r2, #2] - adds r0, r0, r4 - strb r0, [r2, #2] -lbl_08004210: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, #0x50 -lbl_08004218: - ldrb r0, [r3, #1] - cmp r1, r0 - blo lbl_08004204 -lbl_0800421e: - movs r0, #0 - strb r0, [r3, #0x1c] - pop {r4} - pop {r0} - bx r0 - - thumb_func_start PlaySoundTest -PlaySoundTest: @ 0x08004228 - push {r4, r5, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, lbl_08004258 @ =gMusicInfo - ldrh r0, [r0, #0x1c] - cmp r5, r0 - beq lbl_08004250 - ldr r0, lbl_0800425c @ =sMusicTrackDataRom - ldr r4, [r0] - adds r0, r4, #0 - bl stop_music_or_sound - adds r0, r5, #0 - movs r1, #8 - bl PlayMusic - adds r0, r4, #0 - movs r1, #0x1e - bl sub_080041ec -lbl_08004250: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -lbl_08004258: .4byte gMusicInfo -lbl_0800425c: .4byte sMusicTrackDataRom - - thumb_func_start ReplaySoundTest -ReplaySoundTest: @ 0x08004260 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl SoundPlay - ldr r0, lbl_08004278 @ =sMusicTrackDataRom - ldr r0, [r0] - movs r1, #0x1e - bl sub_080041ec - pop {r0} - bx r0 - .align 2, 0 -lbl_08004278: .4byte sMusicTrackDataRom - - thumb_func_start CheckReplayFileSelectMusic -CheckReplayFileSelectMusic: @ 0x0800427c - push {r4, lr} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, lbl_080042a4 @ =sMusicTrackDataRom - ldr r2, [r0] - ldr r0, lbl_080042a8 @ =sSoundDataEntries - ldr r3, [r0, #0x48] - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq lbl_080042ac - ldr r0, [r2, #0x10] - cmp r3, r0 - bne lbl_080042ac - movs r0, #2 - bl UpdateMusicPriority - b lbl_080042b6 - .align 2, 0 -lbl_080042a4: .4byte sMusicTrackDataRom -lbl_080042a8: .4byte sSoundDataEntries -lbl_080042ac: - adds r0, r4, #0 - movs r1, #9 - movs r2, #2 - bl FadeCurrentMusicAndQueueNextMusic -lbl_080042b6: - pop {r4} - pop {r0} - bx r0 - - thumb_func_start sub_080042bc -sub_080042bc: @ 0x080042bc - push {r4, r5, r6, lr} - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r4, lbl_08004300 @ =gMusicInfo - ldrb r6, [r4, #1] - cmp r6, #0 - bne lbl_080042f8 - movs r0, #1 - strb r0, [r4, #1] - adds r2, r4, #0 - adds r2, #0x21 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - strb r0, [r2] - cmp r5, #0 - bne lbl_080042e0 - ldr r5, lbl_08004304 @ =0x0000012b -lbl_080042e0: - ldr r0, lbl_08004308 @ =sMusicTrackDataRom - ldr r0, [r0] - ldr r2, lbl_0800430c @ =sSoundDataEntries - lsls r1, r5, #3 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_08004b50 - adds r0, r4, #0 - adds r0, #0x20 - strb r6, [r0] - strh r5, [r4, #0x1c] -lbl_080042f8: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -lbl_08004300: .4byte gMusicInfo -lbl_08004304: .4byte 0x0000012b -lbl_08004308: .4byte sMusicTrackDataRom -lbl_0800430c: .4byte sSoundDataEntries - - \ No newline at end of file diff --git a/include/music_wrappers.h b/include/music_wrappers.h index 267b323e..800ce7e8 100644 --- a/include/music_wrappers.h +++ b/include/music_wrappers.h @@ -13,7 +13,7 @@ void unk_378c(u16 musicTrack); void CheckPlayTransitionMusicTrack(void); void unk_38d8(void); void UpdateMusicAfterAlarmDisable(void); -u16 DetermineNewMusicTrack(u16 musicTrack); +u32 DetermineNewMusicTrack(u16 musicTrack); void unk_39c8(void); void PlayMusic(u16 musicTrack, u8 priority); void unk_3a6c(void); @@ -42,4 +42,4 @@ void ReplaySoundTest(u16 musicTrack); void CheckReplayFileSelectMusic(u16 timer); void unk_42bc(u16 musicTrack); -#endif /* MUSIC_WRAPPERS_H */ \ No newline at end of file +#endif /* MUSIC_WRAPPERS_H */ diff --git a/linker.ld b/linker.ld index caae792b..dd5ab21c 100644 --- a/linker.ld +++ b/linker.ld @@ -409,6 +409,9 @@ SECTIONS { asm/disasm_0x080010c4.o(.text); asm/disasm_0x08002a58.o(.text); + + src/music_wrappers.o(.text); + asm/audio_internal.o(.text); asm/syscalls.o(.text); diff --git a/src/audio_wrappers.c b/src/audio_wrappers.c index aa764aa0..a5794b4d 100644 --- a/src/audio_wrappers.c +++ b/src/audio_wrappers.c @@ -530,7 +530,7 @@ void PlayFadingSound(u16 sound, u16 timer) */ void InitFadingMusic(struct TrackData* pTrack, const u8* pHeader, u16 timer) { - init_track(pTrack, pHeader); + InitTrack(pTrack, pHeader); if (timer != 0 && !pTrack->occupied) { @@ -686,7 +686,7 @@ void unk_2f00(u16 musicTrack1, u16 musicTrack2, u16 timer) pTrack2->unk_24 = 0; pTrack2->maxSoundChannels = gMusicInfo.maxSoundChannels; - init_track(pTrack1, pHeader); + InitTrack(pTrack1, pHeader); pTrack1->flags = 0x40 | 0x2; pTrack1->maybe_volume = 0; pTrack1->fadingTimer = pTrack2->fadingTimer; diff --git a/src/music_wrappers.c b/src/music_wrappers.c index 2a69d422..593f2e63 100644 --- a/src/music_wrappers.c +++ b/src/music_wrappers.c @@ -1,4 +1,5 @@ #include "music_wrappers.h" +#include "audio.h" #include "audio_wrappers.h" #include "syscalls.h" #include "gba.h" @@ -130,7 +131,7 @@ void unk_34ac(u8 param_1) { if (pVariables->pSoundPSG != NULL) { - clear_registers_for_psg(pVariables->pSoundPSG, (u8)((pVariables->channel & 7) - 1)); + ClearRegistersForPsg(pVariables->pSoundPSG, (u8)((pVariables->channel & 7) - 1)); } if (pVariables->pChannel == NULL) @@ -214,10 +215,13 @@ void unk_35d0(u8 param_1) } } +/** + * @brief 36d0 | bc | Checks if r0 is a new music track + * + * @param musicTrack Music Track + */ void CheckSetNewMusicTrack(u16 musicTrack) { - // https://decomp.me/scratch/HGig0 - struct TrackData* pTrack; u32 newTrack; @@ -245,7 +249,8 @@ void CheckSetNewMusicTrack(u16 musicTrack) gSoundQueue[6].exists = 0; if (gSoundQueue[8].exists & 3) - gSoundQueue[8].exists = 0; + // The following line is written like that to produce matching code: + do { gSoundQueue[8].exists = 0; } while (0); pTrack = sMusicTrackDataRom[0].pTrack; @@ -263,10 +268,13 @@ void CheckSetNewMusicTrack(u16 musicTrack) gMusicInfo.occupied = FALSE; } +/** + * @brief 378c | ec | To document + * + * @param musicTrack Music Track + */ void unk_378c(u16 musicTrack) { - // https://decomp.me/scratch/ETNx6 - u16 newTrack; struct TrackData* pTrack; s32 var_0; @@ -304,7 +312,11 @@ void unk_378c(u16 musicTrack) { newTrack = musicTrack - 0x5A; if (newTrack >= 10) + { + // The following line is needed to produce matching code: + gSoundQueue[8].exists += 0; var_0 = FALSE; + } else var_0 = TRUE; } @@ -324,7 +336,7 @@ void unk_378c(u16 musicTrack) if (var_0) { pTrack = sMusicTrackDataRom[0].pTrack; - if (sSoundDataEntries[DetermineNewMusicTrack(musicTrack)].pHeader != pTrack->pHeader) + if (sSoundDataEntries[(u16)DetermineNewMusicTrack(musicTrack)].pHeader != pTrack->pHeader) { ApplyMusicSoundFading(pTrack, 30); gMusicInfo.musicTrackOnTransition = musicTrack; @@ -350,7 +362,7 @@ void CheckPlayTransitionMusicTrack(void) if (gMusicInfo.priority == 0 && gMusicInfo.musicTrackOnTransition != MUSIC_NONE) { - init_track(sMusicTrackDataRom[0].pTrack, sSoundDataEntries[gMusicInfo.musicTrackOnTransition].pHeader); + InitTrack(sMusicTrackDataRom[0].pTrack, sSoundDataEntries[gMusicInfo.musicTrackOnTransition].pHeader); gMusicInfo.unk_20 = 0; gMusicInfo.musicTrack = gMusicInfo.musicTrackOnTransition; @@ -367,8 +379,8 @@ void unk_38d8(void) { if (!(gMusicInfo.priority & 0x40) && gMusicInfo.musicTrackOnTransition != MUSIC_NONE) { - init_track(sMusicTrackDataRom[0].pTrack, - sSoundDataEntries[DetermineNewMusicTrack(gMusicInfo.musicTrackOnTransition)].pHeader); + InitTrack(sMusicTrackDataRom[0].pTrack, + sSoundDataEntries[(u16)DetermineNewMusicTrack(gMusicInfo.musicTrackOnTransition)].pHeader); gMusicInfo.unk_20 = 0; gMusicInfo.musicTrack = gMusicInfo.musicTrackOnTransition; } @@ -403,9 +415,9 @@ void UpdateMusicAfterAlarmDisable(void) * @brief 3980 | 48 | Determines a new music track based on something? * * @param musicTrack Music track - * @return u16 New music track + * @return u32 New music track */ -u16 DetermineNewMusicTrack(u16 musicTrack) +u32 DetermineNewMusicTrack(u16 musicTrack) { switch (musicTrack) { @@ -474,7 +486,7 @@ void PlayMusic(u16 musicTrack, u8 priority) gMusicInfo.unk_20 = 0; gMusicInfo.musicTrack = musicTrack; gMusicInfo.occupied = FALSE; - init_track(pTrack, pHeader); + InitTrack(pTrack, pHeader); } } @@ -695,7 +707,7 @@ void InsertMusicAndQueueCurrent(u16 musicTrack, u8 param_2) gMusicInfo.unk_20 = 1; gMusicInfo.occupied = FALSE; - init_track(pTrack, pHeader); + InitTrack(pTrack, pHeader); } } @@ -725,13 +737,13 @@ void ReplayQueuedMusic(u8 queueFlags) gMusicInfo.unk_20 = 0; if ((u16)(gMusicInfo.musicTrack - 0x5A) < 0xA) - music = DetermineNewMusicTrack(gMusicInfo.musicTrack); + music = (u16)DetermineNewMusicTrack(gMusicInfo.musicTrack); else music = gMusicInfo.musicTrack; pHeader = sSoundDataEntries[music].pHeader; gMusicInfo.occupied = FALSE; - init_track(pTrack, pHeader); + InitTrack(pTrack, pHeader); if (queueFlags & 0x40) DelayMusicStart(pTrack, 60); @@ -810,12 +822,12 @@ void PlayCurrentMusicTrack(void) currTrack = gMusicInfo.musicTrack; musicTrack = currTrack - 0x5A; if (musicTrack < 10) - pHeader = sSoundDataEntries[DetermineNewMusicTrack(currTrack)].pHeader; + pHeader = sSoundDataEntries[(u16)DetermineNewMusicTrack(currTrack)].pHeader; else pHeader = sSoundDataEntries[currTrack].pHeader; gMusicInfo.occupied = FALSE; - init_track(pTrack, pHeader); + InitTrack(pTrack, pHeader); gMusicInfo.occupied = FALSE; } @@ -958,7 +970,7 @@ void BackupTrackData2SoundChannels(void) if (!(pVariables->channel & 0xC0)) { if (pVariables->pSoundPSG) - clear_registers_for_psg(pVariables->pSoundPSG, (pVariables->channel & 7) - 1); // Undefined, definition required + ClearRegistersForPsg(pVariables->pSoundPSG, (pVariables->channel & 7) - 1); if (pVariables->pChannel) { @@ -1136,7 +1148,7 @@ void unk_42bc(u16 musicTrack) if (musicTrack == MUSIC_NONE) musicTrack = 0x12B; - init_track(sMusicTrackDataRom[0].pTrack, sSoundDataEntries[musicTrack].pHeader); + InitTrack(sMusicTrackDataRom[0].pTrack, sSoundDataEntries[musicTrack].pHeader); gMusicInfo.unk_20 = 0; gMusicInfo.musicTrack = musicTrack;