From fb084ebdb796ccb096d96dbfb3436b78467fdbc1 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 27 Aug 2020 20:08:40 +1000 Subject: [PATCH] Decompile audioPlayXTrack --- src/game/game_16cfa0.c | 35 ++++++++-------------------------- src/gvars/gvars.c | 15 +++------------ src/include/game/game_16cfa0.h | 2 +- src/include/gvars/gvars.h | 6 +++--- 4 files changed, 15 insertions(+), 43 deletions(-) diff --git a/src/game/game_16cfa0.c b/src/game/game_16cfa0.c index b307ca992..324d0407d 100644 --- a/src/game/game_16cfa0.c +++ b/src/game/game_16cfa0.c @@ -1238,33 +1238,14 @@ glabel audioRestartAuxTrack /* f16e054: 00000000 */ nop ); -GLOBAL_ASM( -glabel audioPlayXTrack -/* f16e058: 3c0e800b */ lui $t6,%hi(var800aaa68) -/* f16e05c: 25ceaa68 */ addiu $t6,$t6,%lo(var800aaa68) -/* f16e060: 00041080 */ sll $v0,$a0,0x2 -/* f16e064: 004e1821 */ addu $v1,$v0,$t6 -/* f16e068: 8c6f0000 */ lw $t7,0x0($v1) -/* f16e06c: 240400f0 */ addiu $a0,$zero,0xf0 -/* f16e070: 15e0000e */ bnez $t7,.L0f16e0ac -/* f16e074: 00000000 */ nop -/* f16e078: 00a40019 */ multu $a1,$a0 -/* f16e07c: 24180001 */ addiu $t8,$zero,0x1 -/* f16e080: 3c01800b */ lui $at,%hi(var800aaa78) -/* f16e084: ac780000 */ sw $t8,0x0($v1) -/* f16e088: 00220821 */ addu $at,$at,$v0 -/* f16e08c: 0000c812 */ mflo $t9 -/* f16e090: ac39aa78 */ sw $t9,%lo(var800aaa78)($at) -/* f16e094: 3c01800b */ lui $at,%hi(var800aaa88) -/* f16e098: 00c40019 */ multu $a2,$a0 -/* f16e09c: 00220821 */ addu $at,$at,$v0 -/* f16e0a0: 00004012 */ mflo $t0 -/* f16e0a4: ac28aa88 */ sw $t0,%lo(var800aaa88)($at) -/* f16e0a8: 00000000 */ nop -.L0f16e0ac: -/* f16e0ac: 03e00008 */ jr $ra -/* f16e0b0: 00000000 */ nop -); +void audioPlayXTrack(s32 index, u32 arg1, u32 duration) +{ + if (var800aaa68[index] == 0) { + var800aaa68[index] = 1; + var800aaa78[index] = arg1 * 240; + var800aaa88[index] = duration * 240; + } +} GLOBAL_ASM( glabel audioStopTrack diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index f06765ecc..f3dd0c2d2 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -18617,18 +18617,9 @@ u32 var800aaa58 = 0; u32 var800aaa5c = 0; u32 var800aaa60 = 0; u32 var800aaa64 = 0; -u32 var800aaa68 = 0; -u32 var800aaa6c = 0; -u32 var800aaa70 = 0; -u32 var800aaa74 = 0; -u32 var800aaa78 = 0; -u32 var800aaa7c = 0; -u32 var800aaa80 = 0; -u32 var800aaa84 = 0; -u32 var800aaa88 = 0; -u32 var800aaa8c = 0; -u32 var800aaa90 = 0; -u32 var800aaa94 = 0; +u32 var800aaa68[4] = {0}; +u32 var800aaa78[4] = {0}; +u32 var800aaa88[4] = {0}; u32 var800aaa98 = 0; u32 var800aaa9c = 0; char *g_LangBanks[69] = {NULL}; diff --git a/src/include/game/game_16cfa0.h b/src/include/game/game_16cfa0.h index f48564af3..9b8d3218c 100644 --- a/src/include/game/game_16cfa0.h +++ b/src/include/game/game_16cfa0.h @@ -37,7 +37,7 @@ u32 audioSetTrack(u32 arg0); u32 audioRestartDefaultTrack(void); u32 audioSetAuxTrack(u32 arg0); u32 audioRestartAuxTrack(void); -void audioPlayXTrack(u32 arg0, u32 arg1, u32 arg2); +void audioPlayXTrack(s32 index, u32 arg1, u32 duration); u32 audioStopTrack(u32 arg0); u32 func0f16e138(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 7cc36f050..a66bb46f4 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -765,9 +765,9 @@ extern u32 var800aa5cc; extern s32 var800aa5d0; // stage number extern struct var800aa5d8 var800aa5d8; extern u32 var800aaa38; -extern u32 var800aaa68; -extern u32 var800aaa78; -extern u32 var800aaa88; +extern u32 var800aaa68[4]; +extern u32 var800aaa78[4]; +extern u32 var800aaa88[4]; extern u32 var800aaa98; extern char *g_LangBanks[69]; extern void *var800aabb4;