From aab727b13f9edecb4424be3afa4ecb3f2b8d5de0 Mon Sep 17 00:00:00 2001 From: jdflyer Date: Sun, 1 Jan 2023 18:00:01 -0700 Subject: [PATCH] JAUBankTable --- include/JSystem/JAudio2/JASWaveArcLoader.h | 6 +-- include/JSystem/JAudio2/JAUBankTable.h | 24 +++++++++ libs/JSystem/JAudio2/JAUBankTable.cpp | 58 ++-------------------- 3 files changed, 31 insertions(+), 57 deletions(-) diff --git a/include/JSystem/JAudio2/JASWaveArcLoader.h b/include/JSystem/JAudio2/JASWaveArcLoader.h index b9f8ba68b3..fc0b2c172a 100644 --- a/include/JSystem/JAudio2/JASWaveArcLoader.h +++ b/include/JSystem/JAudio2/JASWaveArcLoader.h @@ -1,16 +1,16 @@ #ifndef JASWAVEARCLOADER_H #define JASWAVEARCLOADER_H +#include "dol2asm.h" #include "dolphin/types.h" #include "global.h" -#include "dol2asm.h" #include "MSL_C/MSL_Common/Src/string.h" #include "dolphin/os/OSMutex.h" #include "JSystem/JAudio2/JASDvdThread.h" -#include "JSystem/JKernel/JKRDvdAramRipper.h" #include "JSystem/JAudio2/JASHeapCtrl.h" +#include "JSystem/JKernel/JKRDvdAramRipper.h" #include "JSystem/JKernel/JKRSolidHeap.h" struct JASDisposer { @@ -29,7 +29,7 @@ struct JASHeap : JSUTree { /* 802906F0 */ void getTailHeap(); /* 8029077C */ void getTailOffset(); /* 802907E0 */ void getCurOffset(); - /* 80290B54 */ ~JASHeap() {}; + /* 80290B54 */ ~JASHeap(){}; void* getBase() { return mBase; } /*0x1c*/ OSMutex mMutex; diff --git a/include/JSystem/JAudio2/JAUBankTable.h b/include/JSystem/JAudio2/JAUBankTable.h index 96f0360a8c..c441f8ff30 100644 --- a/include/JSystem/JAudio2/JAUBankTable.h +++ b/include/JSystem/JAudio2/JAUBankTable.h @@ -1,6 +1,30 @@ #ifndef JAUBANKTABLE_H #define JAUBANKTABLE_H +#include "JSystem/JSupport/JSUList.h" #include "dolphin/types.h" +template +struct JASPtrTable { + T* get(u32 value) const { + if (value >= mLength) { + return NULL; + } + return mTable[value]; + } + T** mTable; + u32 mLength; +}; + +struct JASBank; +struct JAUBankTable { + /* 802A4AA0 */ /*virtual*/ JASBank* getBank(u32) const; + /* 0x0 */ void* vtable; + /* 0x4 */ JASPtrTable mBankPtrTable; +}; + +struct JAUBankTableDictionary : JSUList { + /* 802A4A80 */ void appendBankTable(JSULink*); +}; + #endif /* JAUBANKTABLE_H */ diff --git a/libs/JSystem/JAudio2/JAUBankTable.cpp b/libs/JSystem/JAudio2/JAUBankTable.cpp index ae28058b26..23215ad725 100644 --- a/libs/JSystem/JAudio2/JAUBankTable.cpp +++ b/libs/JSystem/JAudio2/JAUBankTable.cpp @@ -7,63 +7,13 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JSUPtrLink {}; - -struct JSUPtrList { - /* 802DBF4C */ void append(JSUPtrLink*); -}; - -template -struct JSULink {}; -/* JSULink */ -struct JSULink__template0 {}; - -struct JAUBankTable { - /* 802A4AA0 */ void getBank(u32) const; -}; - -struct JAUBankTableDictionary { - /* 802A4A80 */ void appendBankTable(JSULink*); -}; - -// -// Forward References: -// - -extern "C" void func_802A4A80(); -extern "C" void getBank__12JAUBankTableCFUl(); - -// -// External References: -// - -extern "C" void append__10JSUPtrListFP10JSUPtrLink(); - -// -// Declarations: -// - /* 802A4A80-802A4AA0 29F3C0 0020+00 0/0 1/1 0/0 .text * appendBankTable__22JAUBankTableDictionaryFP23JSULink<12JAUBankTable> */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUBankTableDictionary::appendBankTable(JSULink* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAUBankTable/func_802A4A80.s" +void JAUBankTableDictionary::appendBankTable(JSULink* bankTableList) { + append(bankTableList); } -#pragma pop /* 802A4AA0-802A4AC4 29F3E0 0024+00 0/0 2/0 0/0 .text getBank__12JAUBankTableCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAUBankTable::getBank(u32 param_0) const { - nofralloc -#include "asm/JSystem/JAudio2/JAUBankTable/getBank__12JAUBankTableCFUl.s" +JASBank* JAUBankTable::getBank(u32 bank) const { + return mBankPtrTable.get(bank); } -#pragma pop