summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJcw87 <Jcw87@users.noreply.github.com>2025-12-27 14:23:15 -0800
committerGitHub <noreply@github.com>2025-12-27 15:23:15 -0700
commit038b8fd62fde1f214cca7d129293cdd8afa1007a (patch)
tree955b511b5676bf746a0ee930172028bd9fbe1c9f /include
parentce41820bf0eaf00d5bc094793dc08598df6f38ae (diff)
JAudio2 debug (#3006)
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/JAudio2/JAISeMgr.h6
-rw-r--r--include/JSystem/JAudio2/JAISeq.h3
-rw-r--r--include/JSystem/JAudio2/JAISeqDataMgr.h4
-rw-r--r--include/JSystem/JAudio2/JAISound.h32
-rw-r--r--include/JSystem/JAudio2/JAISoundHandles.h28
-rw-r--r--include/JSystem/JAudio2/JAIStream.h2
-rw-r--r--include/JSystem/JAudio2/JASAiCtrl.h4
-rw-r--r--include/JSystem/JAudio2/JASAudioReseter.h4
-rw-r--r--include/JSystem/JAudio2/JASBNKParser.h5
-rw-r--r--include/JSystem/JAudio2/JASBasicWaveBank.h10
-rw-r--r--include/JSystem/JAudio2/JASDSPChannel.h3
-rw-r--r--include/JSystem/JAudio2/JASDSPInterface.h14
-rw-r--r--include/JSystem/JAudio2/JASDriverIF.h1
-rw-r--r--include/JSystem/JAudio2/JAUAudioArcLoader.h19
-rw-r--r--include/JSystem/JAudio2/JAUSectionHeap.h10
-rw-r--r--include/JSystem/JAudio2/JAUSeqCollection.h2
-rw-r--r--include/JSystem/JAudio2/JAUSeqDataBlockMgr.h2
-rw-r--r--include/JSystem/JAudio2/JAUStreamFileTable.h6
-rw-r--r--include/JSystem/JKernel/JKRHeap.h1
19 files changed, 100 insertions, 56 deletions
diff --git a/include/JSystem/JAudio2/JAISeMgr.h b/include/JSystem/JAudio2/JAISeMgr.h
index 10f559595c..a2f1fff791 100644
--- a/include/JSystem/JAudio2/JAISeMgr.h
+++ b/include/JSystem/JAudio2/JAISeMgr.h
@@ -111,7 +111,11 @@ public:
virtual bool isUsingSeqData(const JAISeqDataRegion& seqDataRegion);
virtual int releaseSeqData(const JAISeqDataRegion& seqDataRegion);
- JAISeCategoryMgr* getCategory(int index) { return &mCategoryMgrs[index]; }
+ JAISeCategoryMgr* getCategory(int categoryIndex) {
+ JUT_ASSERT(222, categoryIndex >= 0);
+ JUT_ASSERT(223, categoryIndex < NUM_CATEGORIES);
+ return &mCategoryMgrs[categoryIndex];
+ }
JAIAudience* getAudience() { return mAudience; }
JAIAudience* getAudience(int index) {
if (index >= 0 && index < NUM_CATEGORIES) {
diff --git a/include/JSystem/JAudio2/JAISeq.h b/include/JSystem/JAudio2/JAISeq.h
index b619ea4396..3752e0adc7 100644
--- a/include/JSystem/JAudio2/JAISeq.h
+++ b/include/JSystem/JAudio2/JAISeq.h
@@ -12,7 +12,7 @@ class JAISoundChild;
* @ingroup jsystem-jaudio
*
*/
-class JAISeq : public JASPoolAllocObject<JAISeq>, public JAISound, public JSULink<JAISeq> {
+class JAISeq : public JAISound, public JSULink<JAISeq>, public JASPoolAllocObject<JAISeq> {
public:
static const int NUM_CHILDREN = 32;
@@ -53,6 +53,7 @@ public:
void JAISeqMgr_mixOut_(const JASSoundParams& params, JAISoundActivity activity);
const JAISeqData& getSeqData() const { return inner_.mSeqData; }
+ s32 getCategory() const { return inner_.field_0x39c; }
/* 0x0A8 */ TInner inner_;
/* 0x3A8 */ JAISoundStrategyMgr__unknown<JAISeq>* field_0x3a8;
diff --git a/include/JSystem/JAudio2/JAISeqDataMgr.h b/include/JSystem/JAudio2/JAISeqDataMgr.h
index bbedc12a18..510f1f4905 100644
--- a/include/JSystem/JAudio2/JAISeqDataMgr.h
+++ b/include/JSystem/JAudio2/JAISeqDataMgr.h
@@ -14,8 +14,8 @@ struct JAISeqData {
field_0x4 = param_1;
}
- void set(void* param_0, u32 param_1) {
- field_0x0 = param_0;
+ void set(const void* param_0, u32 param_1) {
+ field_0x0 = (void*)param_0;
field_0x4 = param_1;
}
diff --git a/include/JSystem/JAudio2/JAISound.h b/include/JSystem/JAudio2/JAISound.h
index 2a7fc1c0f9..50c45562b9 100644
--- a/include/JSystem/JAudio2/JAISound.h
+++ b/include/JSystem/JAudio2/JAISound.h
@@ -6,6 +6,36 @@
#include "JSystem/JUtility/JUTAssert.h"
#include "global.h"
+class JAISound;
+
+/**
+ * @ingroup jsystem-jaudio
+ *
+ */
+class JAISoundHandle {
+public:
+ JAISoundHandle() {sound_ = NULL;};
+ ~JAISoundHandle() { releaseSound(); }
+
+ bool isSoundAttached() const { return sound_ != NULL; }
+
+ JAISound* getSound() {
+ JUT_ASSERT(41, sound_ != NULL);
+ return sound_;
+ }
+
+ JAISound* operator->() const {
+ JUT_ASSERT(58, sound_ != NULL);
+ return sound_;
+ }
+
+ operator bool() const { return isSoundAttached(); }
+
+ void releaseSound();
+
+ JAISound* sound_;
+};
+
/**
* @ingroup jsystem-jaudio
*
@@ -63,7 +93,7 @@ struct JAISoundStatus_ {
bool isMute() const { return field_0x0.flags.mute; }
bool isPaused() const { return field_0x0.flags.paused; }
void pauseWhenOut() {
- field_0x1.flags.flag6 = 1;
+ field_0x1.flags.flag3 = 1;
}
/* 0x0 */ union {
diff --git a/include/JSystem/JAudio2/JAISoundHandles.h b/include/JSystem/JAudio2/JAISoundHandles.h
index 9bcd7de88a..0681009e88 100644
--- a/include/JSystem/JAudio2/JAISoundHandles.h
+++ b/include/JSystem/JAudio2/JAISoundHandles.h
@@ -11,34 +11,6 @@ class JAISoundID;
* @ingroup jsystem-jaudio
*
*/
-class JAISoundHandle {
-public:
- JAISoundHandle() {sound_ = NULL;};
- ~JAISoundHandle() { releaseSound(); }
-
- bool isSoundAttached() const { return sound_ != NULL; }
-
- JAISound* getSound() {
- JUT_ASSERT(41, sound_ != NULL);
- return sound_;
- }
-
- JAISound* operator->() const {
- JUT_ASSERT(58, sound_ != NULL);
- return sound_;
- }
-
- operator bool() const { return isSoundAttached(); }
-
- void releaseSound();
-
- JAISound* sound_;
-};
-
-/**
- * @ingroup jsystem-jaudio
- *
- */
class JAISoundHandles {
public:
JAISoundHandles(JAISoundHandle* handle, int handleNum) {
diff --git a/include/JSystem/JAudio2/JAIStream.h b/include/JSystem/JAudio2/JAIStream.h
index 3594f05459..d6d6694be0 100644
--- a/include/JSystem/JAudio2/JAIStream.h
+++ b/include/JSystem/JAudio2/JAIStream.h
@@ -11,7 +11,7 @@ class JAIStreamMgr;
* @ingroup jsystem-jaudio
*
*/
-class JAIStream : public JASPoolAllocObject<JAIStream>, public JAISound, public JSULink<JAIStream> {
+class JAIStream : public JAISound, public JSULink<JAIStream>, public JASPoolAllocObject<JAIStream> {
public:
struct TInner {
JASAramStream aramStream_;
diff --git a/include/JSystem/JAudio2/JASAiCtrl.h b/include/JSystem/JAudio2/JASAiCtrl.h
index a13dad1586..d7e7ff73fe 100644
--- a/include/JSystem/JAudio2/JASAiCtrl.h
+++ b/include/JSystem/JAudio2/JASAiCtrl.h
@@ -17,6 +17,7 @@ enum JASMixMode {
namespace JASDriver {
typedef s16* (*MixCallback)(s32);
typedef void (*MixFunc)(s16*, u32, MixCallback);
+ typedef void (*DSPBufCallback)(s16*, u32);
void initAI(void (*)(void));
void startDMA();
@@ -27,6 +28,7 @@ namespace JASDriver {
void readDspBuffer(s16*, u32);
void finishDSPFrame();
void registerMixCallback(MixCallback, JASMixMode);
+ void registDSPBufCallback(DSPBufCallback);
f32 getDacRate();
u32 getSubFrames();
u32 getDacSize();
@@ -48,7 +50,7 @@ namespace JASDriver {
extern s32 sDspDacWriteBuffer;
extern s32 sDspDacReadBuffer;
extern s32 sDspStatus;
- extern void (*sDspDacCallback)(s16*, u32);
+ extern DSPBufCallback sDspDacCallback;
extern s16* lastRspMadep;
extern void (*dacCallbackFunc)(s16*, u32);
extern MixCallback extMixCallback;
diff --git a/include/JSystem/JAudio2/JASAudioReseter.h b/include/JSystem/JAudio2/JASAudioReseter.h
index 91e34dc8fd..18850e8832 100644
--- a/include/JSystem/JAudio2/JASAudioReseter.h
+++ b/include/JSystem/JAudio2/JASAudioReseter.h
@@ -18,8 +18,8 @@ struct JASAudioReseter {
/* 0x0 */ u32 field_0x0;
/* 0x4 */ f32 mDSPLevel;
- /* 0x8 */ s32 mIsDone;
- /* 0xC */ bool field_0xc;
+ /* 0x8 */ s32 mDoneFlag;
+ /* 0xC */ bool mThreadStopFlag;
}; // Size: 0x10
#endif /* JASAUDIORESETER_H */
diff --git a/include/JSystem/JAudio2/JASBNKParser.h b/include/JSystem/JAudio2/JASBNKParser.h
index bebe1a1f05..df742ed681 100644
--- a/include/JSystem/JAudio2/JASBNKParser.h
+++ b/include/JSystem/JAudio2/JASBNKParser.h
@@ -132,7 +132,10 @@ namespace JASBNKParser {
JASBank* createBank(void const*, JKRHeap*);
JASBasicBank* createBasicBank(void const*, JKRHeap*);
- inline u32 getBankNumber(const void* param_0) { return ((u32*)param_0)[2]; }
+ inline u32 getBankNumber(const void* param_0) {
+ u32* ptr = (u32*)param_0;
+ return ptr[2];
+ }
extern u32 sUsedHeapSize;
};
diff --git a/include/JSystem/JAudio2/JASBasicWaveBank.h b/include/JSystem/JAudio2/JASBasicWaveBank.h
index 820eae2fc3..73a6b9fdd4 100644
--- a/include/JSystem/JAudio2/JASBasicWaveBank.h
+++ b/include/JSystem/JAudio2/JASBasicWaveBank.h
@@ -10,9 +10,9 @@
*/
struct JASBasicWaveBank : public JASWaveBank {
struct TWaveHandle : public JASWaveHandle {
- int getWavePtr() const;
TWaveHandle() { mHeap = NULL; }
- const JASWaveInfo* getWaveInfo() const { return &field_0x4; }
+ virtual int getWavePtr() const;
+ virtual const JASWaveInfo* getWaveInfo() const { return &field_0x4; }
bool compareHeap(JASHeap* heap) const { return mHeap == heap;}
/* 0x04 */ JASWaveInfo field_0x4;
@@ -31,10 +31,10 @@ struct JASBasicWaveBank : public JASWaveBank {
struct TWaveGroup : JASWaveArc {
TWaveGroup();
- ~TWaveGroup();
+ virtual ~TWaveGroup();
void setWaveCount(u32, JKRHeap*);
- void onLoadDone();
- void onEraseDone();
+ virtual void onLoadDone();
+ virtual void onEraseDone();
u32 getWaveID(int) const;
/* 0x74 */ JASBasicWaveBank* mBank;
diff --git a/include/JSystem/JAudio2/JASDSPChannel.h b/include/JSystem/JAudio2/JASDSPChannel.h
index dce5c6cd52..0bf221ef4a 100644
--- a/include/JSystem/JAudio2/JASDSPChannel.h
+++ b/include/JSystem/JAudio2/JASDSPChannel.h
@@ -38,6 +38,9 @@ struct JASDSPChannel {
static void updateAll();
static int killActiveChannel();
static JASDSPChannel* getHandle(u32);
+ static u32 getNumUse();
+ static u32 getNumFree();
+ static u32 getNumBreak();
static JASDSPChannel* sDspChannels;
diff --git a/include/JSystem/JAudio2/JASDSPInterface.h b/include/JSystem/JAudio2/JASDSPInterface.h
index 3081075486..7c519402f9 100644
--- a/include/JSystem/JAudio2/JASDSPInterface.h
+++ b/include/JSystem/JAudio2/JASDSPInterface.h
@@ -19,14 +19,14 @@ namespace JASDsp {
};
typedef struct {
- s16 field_0x0;
- s16 field_0x2;
+ u16 field_0x0;
+ u16 field_0x2;
s16* field_0x4;
- s16 field_0x8;
+ u16 field_0x8;
s16 field_0xa;
- s16 field_0xc;
+ u16 field_0xc;
s16 field_0xe;
- s16 field_0x10[8];
+ u16 field_0x10[8];
} FxBuf;
struct TChannel {
@@ -63,7 +63,7 @@ namespace JASDsp {
/* 0x00E */ short field_0x00E;
/* 0x010 */ u16 field_0x010[1][4]; // array size unknown
/* 0x018 */ u8 field_0x018[0x050 - 0x018];
- /* 0x050 */ short field_0x050;
+ /* 0x050 */ u16 field_0x050;
/* 0x052 */ u16 field_0x052;
/* 0x054 */ u16 field_0x054;
/* 0x056 */ u16 field_0x056;
@@ -106,11 +106,13 @@ namespace JASDsp {
void setDSPMixerLevel(f32);
f32 getDSPMixerLevel();
TChannel* getDSPHandle(int);
+ TChannel* getDSPHandleNc(int);
void setFilterTable(s16*, s16*, u32);
void flushBuffer();
void invalChannelAll();
void initBuffer();
int setFXLine(u8, s16*, JASDsp::FxlineConfig_*);
+ BOOL changeFXLineParam(u8, u8, u32);
extern u8 const DSPADPCM_FILTER[64];
extern u32 const DSPRES_FILTER[320];
diff --git a/include/JSystem/JAudio2/JASDriverIF.h b/include/JSystem/JAudio2/JASDriverIF.h
index c44dab2b43..319c826345 100644
--- a/include/JSystem/JAudio2/JASDriverIF.h
+++ b/include/JSystem/JAudio2/JASDriverIF.h
@@ -8,6 +8,7 @@ typedef s32 (*DriverCallback)(void*);
namespace JASDriver {
void setDSPLevel(f32);
u16 getChannelLevel_dsp();
+ f32 getChannelLevel();
f32 getDSPLevel();
void setOutputMode(u32);
u32 getOutputMode();
diff --git a/include/JSystem/JAudio2/JAUAudioArcLoader.h b/include/JSystem/JAudio2/JAUAudioArcLoader.h
index 6e5440626b..21a1266e41 100644
--- a/include/JSystem/JAudio2/JAUAudioArcLoader.h
+++ b/include/JSystem/JAudio2/JAUAudioArcLoader.h
@@ -31,4 +31,23 @@ public:
/* 0x0C */ JAUSection* mSection;
};
+class JAUAudioArcLoader_withoutCopy : public JAUAudioArcInterpreter {
+ virtual void readWS(u32, void const*, u32);
+ virtual void readBNK(u32, void const*);
+ virtual void readBSC(void const*, u32);
+ virtual void readBST(void const*, u32);
+ virtual void readBSTN(void const*, u32);
+ virtual void readBMS(u32, void const*, u32);
+ virtual void readBMS_fromArchive(u32);
+ virtual void newVoiceBank(u32, u32);
+ virtual void newDynamicSeqBlock(u32);
+ virtual void readBSFT(void const*);
+ virtual void beginBNKList(u32, u32);
+ virtual void endBNKList();
+ virtual void readMaxSeCategory(int, int, int);
+ virtual ~JAUAudioArcLoader_withoutCopy() {}
+
+ /* 0x0C */ JAUSection* mSection;
+};
+
#endif /* JAUAUDIOARCLOADER_H */
diff --git a/include/JSystem/JAudio2/JAUSectionHeap.h b/include/JSystem/JAudio2/JAUSectionHeap.h
index 21049065f1..25eee17d55 100644
--- a/include/JSystem/JAudio2/JAUSectionHeap.h
+++ b/include/JSystem/JAudio2/JAUSectionHeap.h
@@ -64,7 +64,12 @@ public:
bool isBuilding() const { return field_0x2c; }
bool isOpen() const;
- JAUSectionHeap* asSectionHeap() { return (JAUSection*)sectionHeap_ == this ? sectionHeap_ : NULL; }
+ JAUSectionHeap* asSectionHeap() {
+ if ((JAUSection*)sectionHeap_ == this) {
+ return sectionHeap_;
+ }
+ return NULL;
+ }
const TSectionData& getSectionData() const { return data_; }
JKRHeap* getHeap_();
@@ -99,6 +104,7 @@ public:
u32 releaseIdleDynamicSeqDataBlock();
JAUSectionHeap(JKRSolidHeap*, bool, s32);
JAUSection* getOpenSection();
+ JAUSection* getSection(int);
bool setSeqDataUser(JAISeqDataUser*);
bool newDynamicSeqBlock(u32);
SeqDataReturnValue getSeqData(JAISoundID, JAISeqData*);
@@ -123,7 +129,7 @@ public:
};
inline JKRHeap* JAUSection::getHeap_() { return sectionHeap_->mHeap; }
-inline bool JAUSection::isOpen() const { return this == sectionHeap_->getOpenSection(); }
+inline bool JAUSection::isOpen() const { return sectionHeap_->getOpenSection() == this; }
JAUSectionHeap* JAUNewSectionHeap(bool);
diff --git a/include/JSystem/JAudio2/JAUSeqCollection.h b/include/JSystem/JAudio2/JAUSeqCollection.h
index 586f33e4a7..fae2688bed 100644
--- a/include/JSystem/JAudio2/JAUSeqCollection.h
+++ b/include/JSystem/JAudio2/JAUSeqCollection.h
@@ -29,7 +29,7 @@ public:
bool getSeqData(int, int, JAISeqData*);
bool getSeqDataRegion(JAISeqDataRegion*);
- bool isValid() { return field_0x8; }
+ bool isValid() const { return field_0x8; }
/* 0x00 */ u16 field_0x0;
/* 0x04 */ const u32* field_0x4;
diff --git a/include/JSystem/JAudio2/JAUSeqDataBlockMgr.h b/include/JSystem/JAudio2/JAUSeqDataBlockMgr.h
index 41a4115040..aa77383a4f 100644
--- a/include/JSystem/JAudio2/JAUSeqDataBlockMgr.h
+++ b/include/JSystem/JAudio2/JAUSeqDataBlockMgr.h
@@ -17,7 +17,7 @@ struct JAUSeqDataBlock {
/* 0x00 */ JSULink<JAUSeqDataBlock> field_0x0;
/* 0x10 */ JAISoundID field_0x10;
- /* 0x14 */ JAISeqDataRegion field_0x14;
+ /* 0x14 */ JAISeqDataRegion region;
/* 0x1C */ int field_0x1c;
};
diff --git a/include/JSystem/JAudio2/JAUStreamFileTable.h b/include/JSystem/JAudio2/JAUStreamFileTable.h
index 00f660509f..5e7e894940 100644
--- a/include/JSystem/JAudio2/JAUStreamFileTable.h
+++ b/include/JSystem/JAudio2/JAUStreamFileTable.h
@@ -4,8 +4,8 @@
#include "JSystem/JAudio2/JAIStreamDataMgr.h"
struct BinaryStreamFileTable {
- /* 0x0 */ char mIdentifier[4];
- /* 0x4 */ int mNumFiles;
+ /* 0x0 */ u8 mIdentifier[4];
+ /* 0x4 */ u32 mNumFiles;
/* 0x8 */ int mFilePathOffsets[];
};
@@ -16,7 +16,7 @@ struct BinaryStreamFileTable {
struct JAUStreamFileTable {
JAUStreamFileTable();
void init(void const*);
- int getNumFiles() const;
+ u32 getNumFiles() const;
const char* getFilePath(int) const;
bool isValid() { return mData; }
diff --git a/include/JSystem/JKernel/JKRHeap.h b/include/JSystem/JKernel/JKRHeap.h
index 0284012f49..0f149dc7b9 100644
--- a/include/JSystem/JKernel/JKRHeap.h
+++ b/include/JSystem/JKernel/JKRHeap.h
@@ -65,6 +65,7 @@ public:
bool setErrorFlag(bool errorFlag);
bool isSubHeap(JKRHeap* heap) const;
+ void* getAltAramStartAdr();
/* vt[03] */ virtual void callAllDisposer();
/* vt[04] */ virtual u32 getHeapType() = 0;