From a63c0a7de474f26b01ab05525419df205dfff07f Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 27 Aug 2020 20:43:32 +1000 Subject: [PATCH] Decompile audioPlayTrack --- src/game/game_16cfa0.c | 44 ++++++++--------------------- src/game/title.c | 14 ++++----- src/include/game/data/data_0083d0.h | 8 +++--- src/include/game/game_16cfa0.h | 6 ++-- 4 files changed, 26 insertions(+), 46 deletions(-) diff --git a/src/game/game_16cfa0.c b/src/game/game_16cfa0.c index 4cc46484f..31c038b4e 100644 --- a/src/game/game_16cfa0.c +++ b/src/game/game_16cfa0.c @@ -1059,38 +1059,18 @@ glabel func0f16ddb0 /* f16de08: 27bd0018 */ addiu $sp,$sp,0x18 ); -GLOBAL_ASM( -glabel audioPlayTrack -/* f16de0c: 27bdffe8 */ addiu $sp,$sp,-24 -/* f16de10: afbf0014 */ sw $ra,0x14($sp) -/* f16de14: 0fc5b50c */ jal func0f16d430 -/* f16de18: afa40018 */ sw $a0,0x18($sp) -/* f16de1c: 0fc5b490 */ jal func0f16d240 -/* f16de20: 24040003 */ addiu $a0,$zero,0x3 -/* f16de24: 0fc5b490 */ jal func0f16d240 -/* f16de28: 24040004 */ addiu $a0,$zero,0x4 -/* f16de2c: 0fc5b82d */ jal audioStopTrack -/* f16de30: 2404ffff */ addiu $a0,$zero,-1 -/* f16de34: 0fc5b490 */ jal func0f16d240 -/* f16de38: 24040002 */ addiu $a0,$zero,0x2 -/* f16de3c: 0fc5b490 */ jal func0f16d240 -/* f16de40: 24040001 */ addiu $a0,$zero,0x1 -/* f16de44: 0fc5b490 */ jal func0f16d240 -/* f16de48: 24040005 */ addiu $a0,$zero,0x5 -/* f16de4c: 0fc5b3e8 */ jal func0f16cfa0 -/* f16de50: 00000000 */ nop -/* f16de54: 24040001 */ addiu $a0,$zero,0x1 -/* f16de58: 8fa50018 */ lw $a1,0x18($sp) -/* f16de5c: 24060000 */ addiu $a2,$zero,0x0 -/* f16de60: 0fc5b46f */ jal func0f16d1bc -/* f16de64: 3047ffff */ andi $a3,$v0,0xffff -/* f16de68: 0fc5b513 */ jal func0f16d44c -/* f16de6c: 00000000 */ nop -/* f16de70: 8fbf0014 */ lw $ra,0x14($sp) -/* f16de74: 27bd0018 */ addiu $sp,$sp,0x18 -/* f16de78: 03e00008 */ jr $ra -/* f16de7c: 00000000 */ nop -); +void audioPlayTrack(s32 tracknum) +{ + func0f16d430(); + func0f16d240(3); + func0f16d240(4); + audioStopTrack(-1); + func0f16d240(2); + func0f16d240(1); + func0f16d240(5); + func0f16d1bc(1, tracknum, 0, func0f16cfa0()); + func0f16d44c(); +} void audioRestartTrack(void) { diff --git a/src/game/title.c b/src/game/title.c index 7fdad4262..2cf336ca3 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -201,7 +201,7 @@ u32 var80062720 = 0x00000000; u32 var80062724 = 0x00000000; u32 var80062728 = 0x00000000; u32 var8006272c = 0x00000001; -u32 var80062730 = 0x00000001; +s32 var80062730 = 1; u32 var80062734 = 0x00000000; char *mpPlayerGetWeaponOfChoiceName(u32 playernum, u32 slot) @@ -1369,7 +1369,7 @@ f32 var800627b0 = 0; f32 var800627b4 = 0; f32 var800627b8 = 1; f32 var800627bc = 0; -u32 var800627c0 = 0x00000000; +s32 var800627c0 = 0; f32 var800627c4 = 0; f32 var800627c8 = 1; u32 var800627cc = 0x00000000; @@ -1383,13 +1383,13 @@ u32 var800627e8 = 0x00000000; u32 var800627ec = 0x00000000; u32 var800627f0 = 0x00000000; f32 var800627f4 = 0; -u32 var800627f8 = 0x00000000; -u32 var800627fc = 0x00000000; +s32 var800627f8 = 0; +s32 var800627fc = 0; u32 var80062800 = 0x00000000; -u32 var80062804 = 0x00000001; +s32 var80062804 = 1; f32 var80062808 = 1.5705462694168; -u32 var8006280c = 0x00000000; -u32 var80062810 = 0x00000000; +s32 var8006280c = 0; +s32 var80062810 = 0; f32 var80062814 = 0; u32 var80062818 = 0x00000000; u32 var8006281c = 0x00000001; diff --git a/src/include/game/data/data_0083d0.h b/src/include/game/data/data_0083d0.h index 4b0b7d48e..b4009e572 100644 --- a/src/include/game/data/data_0083d0.h +++ b/src/include/game/data/data_0083d0.h @@ -47,7 +47,7 @@ extern u32 var80062598; extern u32 var800625a8; extern u32 var800625f0; extern u32 var800626ec; -extern u32 var80062730; +extern s32 var80062730; extern u32 var80062738; extern u32 var80062744; extern u32 var80062750; @@ -65,11 +65,11 @@ extern u32 var800627dc; extern u32 var800627e0; extern u32 var800627e8; extern u32 var800627f0; -extern u32 var800627f8; -extern u32 var800627fc; +extern s32 var800627f8; +extern s32 var800627fc; extern u32 var80062800; extern f32 var80062808; -extern u32 var80062810; +extern s32 var80062810; extern f32 var80062814; extern u32 var80062818; extern u32 var80062858; diff --git a/src/include/game/game_16cfa0.h b/src/include/game/game_16cfa0.h index cc77b3528..1234f303e 100644 --- a/src/include/game/game_16cfa0.h +++ b/src/include/game/game_16cfa0.h @@ -12,8 +12,8 @@ void func0f16d240(s32 arg0); void func0f16d2ac(s32 arg0, f32 arg1, s32 arg2); void func0f16d324(void); void func0f16d3d0(void); -u32 func0f16d430(void); -u32 func0f16d44c(void); +void func0f16d430(void); +void func0f16d44c(void); void func0f16d4b8(f32 arg0); void func0f16d548(f32 arg0); u32 func0f16d6c0(void); @@ -30,7 +30,7 @@ void func0f16dba4(void); u32 func0f16dc78(void); void func0f16dd14(void); u32 func0f16ddb0(void); -u32 audioPlayTrack(u32 arg0); +void audioPlayTrack(s32 tracknum); void audioRestartTrack(void); void func0f16deb8(s32 tracknum); void audioSetTrack(s32 tracknum);