From 1941ac610b4320112b08fd4d418b57e26e44fc34 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 17 Oct 2021 21:32:37 +1000 Subject: [PATCH] Decompile admaInit --- ld/libfiles.ntsc-beta.inc | 2 +- ld/libfiles.ntsc-final.inc | 2 +- ld/libfiles.pal-final.inc | 2 +- src/include/lib/audiodma.h | 12 ++++++++++ src/include/lib/lib_09660.h | 12 ---------- src/lib/{lib_09660.c => audiodma.c} | 37 ++++++++++------------------- src/lib/audiomgr.c | 10 ++++---- src/lib/boot.c | 1 - src/lib/crash.c | 1 - src/lib/main.c | 1 - src/lib/sched.c | 1 - src/lib/vi.c | 1 - 12 files changed, 33 insertions(+), 49 deletions(-) create mode 100644 src/include/lib/audiodma.h delete mode 100644 src/include/lib/lib_09660.h rename src/lib/{lib_09660.c => audiodma.c} (94%) diff --git a/ld/libfiles.ntsc-beta.inc b/ld/libfiles.ntsc-beta.inc index 4eb6e6c49..884e4bc9e 100644 --- a/ld/libfiles.ntsc-beta.inc +++ b/ld/libfiles.ntsc-beta.inc @@ -30,7 +30,7 @@ build/ROMID/lib/vm.o (section); \ build/ROMID/lib/rzip.o (section); \ build/ROMID/lib/audiomgr.o (section); \ - build/ROMID/lib/lib_09660.o (section); \ + build/ROMID/lib/audiodma.o (section); \ build/ROMID/lib/vi.o (section); \ build/ROMID/lib/fault.o (section); \ build/ROMID/lib/crash.o (section); \ diff --git a/ld/libfiles.ntsc-final.inc b/ld/libfiles.ntsc-final.inc index afe3b364c..5a8bda4bc 100644 --- a/ld/libfiles.ntsc-final.inc +++ b/ld/libfiles.ntsc-final.inc @@ -29,7 +29,7 @@ build/ROMID/lib/vm.o (section); \ build/ROMID/lib/rzip.o (section); \ build/ROMID/lib/audiomgr.o (section); \ - build/ROMID/lib/lib_09660.o (section); \ + build/ROMID/lib/audiodma.o (section); \ build/ROMID/lib/vi.o (section); \ build/ROMID/lib/fault.o (section); \ build/ROMID/lib/crash.o (section); \ diff --git a/ld/libfiles.pal-final.inc b/ld/libfiles.pal-final.inc index f360fb492..3d9d685bc 100644 --- a/ld/libfiles.pal-final.inc +++ b/ld/libfiles.pal-final.inc @@ -29,7 +29,7 @@ build/ROMID/lib/vm.o (section); \ build/ROMID/lib/rzip.o (section); \ build/ROMID/lib/audiomgr.o (section); \ - build/ROMID/lib/lib_09660.o (section); \ + build/ROMID/lib/audiodma.o (section); \ build/ROMID/lib/vi.o (section); \ build/ROMID/lib/fault.o (section); \ build/ROMID/lib/crash.o (section); \ diff --git a/src/include/lib/audiodma.h b/src/include/lib/audiodma.h new file mode 100644 index 000000000..1920e55d9 --- /dev/null +++ b/src/include/lib/audiodma.h @@ -0,0 +1,12 @@ +#ifndef _IN_LIB_AUDIODMA_H +#define _IN_LIB_AUDIODMA_H +#include +#include "data.h" +#include "types.h" + +void admaInit(void); +void admaExec(void); +void admaClear(void); +u32 adma00009a08(void); + +#endif diff --git a/src/include/lib/lib_09660.h b/src/include/lib/lib_09660.h deleted file mode 100644 index f3df91b0f..000000000 --- a/src/include/lib/lib_09660.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _IN_LIB_LIB_09660_H -#define _IN_LIB_LIB_09660_H -#include -#include "data.h" -#include "types.h" - -void func00009660(void); -void func00009844(void); -void amgrClearDmaBuffers(void); -u32 func00009a08(void); - -#endif diff --git a/src/lib/lib_09660.c b/src/lib/audiodma.c similarity index 94% rename from src/lib/lib_09660.c rename to src/lib/audiodma.c index 4e2b944bd..6c52db90a 100644 --- a/src/lib/lib_09660.c +++ b/src/lib/audiodma.c @@ -6,7 +6,7 @@ #include "game/game_176080.h" #include "game/options.h" #include "bss.h" -#include "lib/lib_09660.h" +#include "lib/audiodma.h" #include "lib/memory.h" #include "lib/mtx.h" #include "data.h" @@ -18,27 +18,16 @@ u32 var80091900[4]; u32 var80091910[400]; u32 var80091f50[480]; OSMesgQueue var800926d0; -u32 var800926e8[80]; +OSMesg var800926e8[80]; u32 var80092828; -GLOBAL_ASM( -glabel func00009660 -/* 9660: 27bdffe8 */ addiu $sp,$sp,-24 -/* 9664: afbf0014 */ sw $ra,0x14($sp) -/* 9668: 3c048009 */ lui $a0,%hi(var800926d0) -/* 966c: 3c058009 */ lui $a1,%hi(var800926e8) -/* 9670: 24a526e8 */ addiu $a1,$a1,%lo(var800926e8) -/* 9674: 248426d0 */ addiu $a0,$a0,%lo(var800926d0) -/* 9678: 0c0120d0 */ jal osCreateMesgQueue -/* 967c: 24060050 */ addiu $a2,$zero,0x50 -/* 9680: 8fbf0014 */ lw $ra,0x14($sp) -/* 9684: 27bd0018 */ addiu $sp,$sp,0x18 -/* 9688: 03e00008 */ jr $ra -/* 968c: 00000000 */ nop -); +void admaInit(void) +{ + osCreateMesgQueue(&var800926d0, var800926e8, 80); +} GLOBAL_ASM( -glabel func00009690 +glabel adma00009690 /* 9690: 27bdffc0 */ addiu $sp,$sp,-64 /* 9694: 3c088009 */ lui $t0,%hi(var80091900) /* 9698: 25081900 */ addiu $t0,$t0,%lo(var80091900) @@ -160,7 +149,7 @@ glabel func00009690 #if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( -glabel func00009844 +glabel admaExec /* 9754: 27bdffc8 */ addiu $sp,$sp,-56 /* 9758: 3c038009 */ lui $v1,0x8009 /* 975c: 24631e50 */ addiu $v1,$v1,0x1e50 @@ -221,7 +210,7 @@ glabel func00009844 ); #else GLOBAL_ASM( -glabel func00009844 +glabel admaExec /* 9844: 27bdffc8 */ addiu $sp,$sp,-56 /* 9848: 3c0e8009 */ lui $t6,%hi(g_Is4Mb) /* 984c: 91ce0af0 */ lbu $t6,%lo(g_Is4Mb)($t6) @@ -278,8 +267,8 @@ glabel func00009844 /* 9908: a0680000 */ sb $t0,0x0($v1) .L0000990c: /* 990c: 8fa90038 */ lw $t1,0x38($sp) -/* 9910: 3c027001 */ lui $v0,%hi(func00009690) -/* 9914: 24429690 */ addiu $v0,$v0,%lo(func00009690) +/* 9910: 3c027001 */ lui $v0,%hi(adma00009690) +/* 9914: 24429690 */ addiu $v0,$v0,%lo(adma00009690) /* 9918: ad230000 */ sw $v1,0x0($t1) /* 991c: 8fbf0034 */ lw $ra,0x34($sp) /* 9920: 8fb40030 */ lw $s4,0x30($sp) @@ -293,7 +282,7 @@ glabel func00009844 #endif GLOBAL_ASM( -glabel amgrClearDmaBuffers +glabel admaClear /* 993c: 27bdffd8 */ addiu $sp,$sp,-40 /* 9940: afb2001c */ sw $s2,0x1c($sp) /* 9944: 3c128009 */ lui $s2,%hi(var80091900) @@ -353,7 +342,7 @@ glabel amgrClearDmaBuffers ); GLOBAL_ASM( -glabel func00009a08 +glabel adma00009a08 /* 9a08: 27bdffd8 */ addiu $sp,$sp,-40 /* 9a0c: afb30020 */ sw $s3,0x20($sp) /* 9a10: 3c138006 */ lui $s3,%hi(var8005d520) diff --git a/src/lib/audiomgr.c b/src/lib/audiomgr.c index d18122489..7c68d6739 100644 --- a/src/lib/audiomgr.c +++ b/src/lib/audiomgr.c @@ -3,7 +3,7 @@ #include "lib/sched.h" #include "constants.h" #include "bss.h" -#include "lib/lib_09660.h" +#include "lib/audiodma.h" #include "lib/lib_2fba0.h" #include "lib/lib_2fc60.h" #include "lib/libc/ll.h" @@ -61,7 +61,7 @@ void amgrCreate(ALSynConfig *config) s32 i; config->outputRate = osAiSetFrequency(22020); - config->dmaproc = func00009844; + config->dmaproc = admaExec; #if VERSION >= VERSION_PAL_FINAL freqpertick = settings[1] * (f32)config->outputRate / 25.0f; @@ -84,7 +84,7 @@ void amgrCreate(ALSynConfig *config) var800918e4 = g_AmgrFreqPerTick + 80; var8005cf94 = 0; - func00009660(); + admaInit(); osCreateMesgQueue(&g_AudioManager.audioReplyMsgQ, g_AudioManager.audioReplyMsgBuf, ARRAYCOUNT(g_AudioManager.audioFrameMsgBuf)); osCreateMesgQueue(&g_AudioManager.audioFrameMsgQ, g_AudioManager.audioFrameMsgBuf, ARRAYCOUNT(g_AudioManager.audioFrameMsgBuf)); @@ -187,7 +187,7 @@ void amgrMain(void *arg) var80091588 = osGetTime(); vi00009aa0(0x30000); amgrHandleFrameMsg(g_AudioManager.audioInfo[var80092828 % 3], info); - func00009a08(); + adma00009a08(); count++; vi00009aa0(0x60000); @@ -241,7 +241,7 @@ void amgrHandleFrameMsg(AudioInfo *info, AudioInfo *previnfo) __scHandleRetraceViaPri(&g_Sched, g_AmgrCurrentCmdList); } - amgrClearDmaBuffers(); + admaClear(); somevalue = IO_READ(OS_PHYSICAL_TO_K1(AI_LEN_REG)) / 4; datastart = g_AudioManager.ACMDList[var8005cf90]; diff --git a/src/lib/boot.c b/src/lib/boot.c index c4afd6df4..a2e0ebcd6 100644 --- a/src/lib/boot.c +++ b/src/lib/boot.c @@ -8,7 +8,6 @@ #include "bss.h" #include "lib/args.h" #include "lib/rzip.h" -#include "lib/lib_09660.h" #include "lib/crash.h" #include "lib/main.h" #include "lib/snd.h" diff --git a/src/lib/crash.c b/src/lib/crash.c index 02e3f0d38..f756ac0e0 100644 --- a/src/lib/crash.c +++ b/src/lib/crash.c @@ -3,7 +3,6 @@ #include "constants.h" #include "bss.h" #include "lib/tlb.h" -#include "lib/lib_09660.h" #include "lib/crash.h" #include "lib/rmon.h" #include "data.h" diff --git a/src/lib/main.c b/src/lib/main.c index 5decadf74..3c2846398 100644 --- a/src/lib/main.c +++ b/src/lib/main.c @@ -44,7 +44,6 @@ #include "lib/args.h" #include "lib/vm.h" #include "lib/rzip.h" -#include "lib/lib_09660.h" #include "lib/vi.h" #include "lib/fault.h" #include "lib/crash.h" diff --git a/src/lib/sched.c b/src/lib/sched.c index 38f0fcf73..c26346622 100644 --- a/src/lib/sched.c +++ b/src/lib/sched.c @@ -7,7 +7,6 @@ #include "lib/args.h" #include "lib/audiomgr.h" #include "lib/rzip.h" -#include "lib/lib_09660.h" #include "lib/crash.h" #include "lib/main.h" #include "lib/snd.h" diff --git a/src/lib/vi.c b/src/lib/vi.c index 2a7ad4f82..e51ad37bd 100644 --- a/src/lib/vi.c +++ b/src/lib/vi.c @@ -8,7 +8,6 @@ #include "game/gfxmemory.h" #include "game/options.h" #include "bss.h" -#include "lib/lib_09660.h" #include "lib/vi.h" #include "lib/memory.h" #include "lib/mtx.h"