Names mixed in with some BE fixes

This commit is contained in:
PJB3005
2026-03-15 01:23:11 +01:00
parent 2f38d70db8
commit d759bcffbd
16 changed files with 114 additions and 111 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ public:
virtual ~Z2HioSeSeqDataMgr() {}
virtual SeqDataReturnValue getSeqData(JAISoundID param_1, JAISeqData* param_2) {
if (field_0x18->getSeqList()->getSeqData(param_1, param_2)) {
param_2->field_0x4 = 4;
param_2->mOffset = 4;
return SeqDataReturnValue_2;
} else {
return JAUSeqDataMgr_SeqCollection::getSeqData(param_1, param_2);
@@ -10,17 +10,17 @@
*/
struct JAISeqData {
JAISeqData(const void* param_0, u32 param_1) {
field_0x0 = (void*)param_0;
field_0x4 = param_1;
mBase = (void*)param_0;
mOffset = param_1;
}
void set(const void* param_0, u32 param_1) {
field_0x0 = (void*)param_0;
field_0x4 = param_1;
mBase = (void*)param_0;
mOffset = param_1;
}
/* 0x00 */ void* field_0x0;
/* 0x04 */ u32 field_0x4;
/* 0x00 */ void* mBase;
/* 0x04 */ u32 mOffset;
};
/**
@@ -29,10 +29,10 @@ struct JAISeqData {
*/
struct JAISeqDataRegion {
bool intersects(const JAISeqData& seqData) const {
if ((uintptr_t)addr + size < (uintptr_t)seqData.field_0x0) {
if ((uintptr_t)addr + size < (uintptr_t)seqData.mBase) {
return false;
}
if ((uintptr_t)seqData.field_0x0 + seqData.field_0x4 < (uintptr_t)addr) {
if ((uintptr_t)seqData.mBase + seqData.mOffset < (uintptr_t)addr) {
return false;
}
return true;
@@ -14,9 +14,9 @@ public:
enum BranchCondition {};
struct CmdInfo {
s32 (JASSeqParser::*field_0x0)(JASTrack*, u32*);
u16 field_0xc;
u16 field_0xe;
s32 (JASSeqParser::*mHandler)(JASTrack*, u32*);
u16 mParameterCount;
u16 mParameterTypes;
};
virtual ~JASSeqParser() {}
@@ -3,6 +3,8 @@
#include <types.h>
#define JAS_SEQ_STACK_SIZE 8
/**
* @ingroup jsystem-jaudio
*
@@ -19,55 +21,55 @@ public:
int readMidiValue();
void jump(u32 param_1) {
field_0x04 = field_0x00 + param_1;
mCurPos = mBase + param_1;
}
void jump(void* param_1) {
field_0x04 = (u8*)param_1;
mCurPos = (u8*)param_1;
}
u32 get24(u32 param_0) const {
return (*(u32*)(field_0x00 + param_0 - 1)) & 0xffffff;
return (*(BE(u32)*)(mBase + param_0 - 1)) & 0xffffff;
}
u32* getBase() { return (u32*)field_0x00; }
void* getAddr(u32 param_0) { return field_0x00 + param_0; }
u8 getByte(u32 param_0) const { return *(field_0x00 + param_0); }
u16 get16(u32 param_0) const { return *(u16*)(field_0x00 + param_0); }
u32 get32(u32 param_0) const { return *(u32*)(field_0x00 + param_0); }
u8* getCur() { return field_0x04; }
u32 readByte() { return *field_0x04++; }
u32* getBase() { return (u32*)mBase; }
void* getAddr(u32 param_0) { return mBase + param_0; }
u8 getByte(u32 param_0) const { return *(mBase + param_0); }
u16 get16(u32 param_0) const { return *(BE(u16)*)(mBase + param_0); }
u32 get32(u32 param_0) const { return *(BE(u32)*)(mBase + param_0); }
u8* getCur() { return mCurPos; }
u32 readByte() { return *mCurPos++; }
u32 read16() {
#ifdef __MWERKS__
return *((u16*)field_0x04)++;
return *((u16*)mCurPos)++;
#else
BE(u16)* value = (BE(u16)*)field_0x04;
field_0x04 += 2;
BE(u16)* value = (BE(u16)*)mCurPos;
mCurPos += 2;
return *value;
#endif
}
u32 read24() {
field_0x04--;
mCurPos--;
#ifdef __MWERKS__
return (*((u32*)field_0x04)++) & 0x00ffffff;
return (*((u32*)mCurPos)++) & 0x00ffffff;
#else
BE(u32)* value = (BE(u32)*)field_0x04;
field_0x04 += 4;
BE(u32)* value = (BE(u32)*)mCurPos;
mCurPos += 4;
return (*value) & 0x00ffffff;
#endif
}
u16 getLoopCount() const {
if (field_0x08 == 0) {
if (mCurStackDepth == 0) {
return 0;
}
return field_0x2c[field_0x08 - 1];
return mLoopCount[mCurStackDepth - 1];
}
/* 0x00 */ u8* field_0x00;
/* 0x04 */ u8* field_0x04;
/* 0x08 */ u32 field_0x08;
/* 0x0C */ u16* field_0x0c[8];
/* 0x2C */ u16 field_0x2c[8];
/* 0x00 */ u8* mBase;
/* 0x04 */ u8* mCurPos;
/* 0x08 */ u32 mCurStackDepth;
/* 0x0C */ u16* mReturnAddr[JAS_SEQ_STACK_SIZE];
/* 0x2C */ u16 mLoopCount[JAS_SEQ_STACK_SIZE];
};
#endif /* JASSEQREADER_H */
@@ -19,12 +19,12 @@ public:
u32 checkImport(u32) const;
u32 checkExport(u32) const;
u16 get(u32 param_0) const { return field_0x4[param_0]; }
void set(u32 param_0, u16 param_1) { field_0x4[param_0] = param_1; }
u16 get(u32 param_0) const { return mPortValues[param_0]; }
void set(u32 param_0, u16 param_1) { mPortValues[param_0] = param_1; }
u16 field_0x0;
u16 field_0x2;
u16 field_0x4[MAX_PORTS];
u16 mPortValues[MAX_PORTS];
};
#endif /* JASTRACKPORT_H */
@@ -2,6 +2,7 @@
#define JAUAUDIBLEPARAM_H
#include <types.h>
#include "dusk/endian.h"
/**
* @ingroup jsystem-jaudio
@@ -14,8 +15,8 @@ struct JAUAudibleParam {
union {
struct {
u16 f0;
u16 f1;
BE(u16) f0;
BE(u16) f1;
} half;
struct {
u8 b0_0 : 4;
@@ -29,7 +30,7 @@ struct JAUAudibleParam {
u8 b2;
u8 b3;
} bytes;
u32 raw;
BE(u32) raw;
} field_0x0;
};
@@ -11,11 +11,11 @@ struct JAISeqDataRegion;
*
*/
struct JAUSeqCollectionData {
s8 field_0x0;
s8 field_0x1;
BE(u16) field_0x2;
BE(u32) field_0x4;
BE(u32) field_0x8;
s8 mMagic1; // 'S'
s8 mMagic2; // 'C'
BE(u16) mNumSoundCategories;
BE(u32) mSectionSize;
BE(u32) mTableOffsets[0]; // VLA
};
/**
@@ -29,12 +29,12 @@ public:
bool getSeqData(int, int, JAISeqData*);
bool getSeqDataRegion(JAISeqDataRegion*);
bool isValid() const { return field_0x8; }
bool isValid() const { return mHeader; }
/* 0x00 */ u16 field_0x0;
/* 0x04 */ const BE(u32)* field_0x4;
/* 0x08 */ const JAUSeqCollectionData* field_0x8;
/* 0x0C */ int field_0xc;
/* 0x00 */ u16 mNumSoundCategories;
/* 0x04 */ const BE(u32)* mTableOffsets;
/* 0x08 */ const JAUSeqCollectionData* mHeader;
/* 0x0C */ u32 mSectionSize;
};
/**
@@ -49,7 +49,7 @@ public:
SeqDataReturnValue getSeqData(JAISoundID, JAISeqData*);
~JAUSeqDataMgr_SeqCollection();
const void* getResource() const { return field_0x4; }
const void* getResource() const { return mTableOffsets; }
void init(const void* param_1) { JAUSeqCollection::init(param_1); }
/* 0x14 */ JAISeqDataUser* user_;
+1 -1
View File
@@ -57,7 +57,7 @@ void JAISe::startTrack_(const JASSoundParams& params) {
}
inner_.field_0x26c = 1;
inner_.track.setSeqData(inner_.mSeqData.field_0x0, inner_.mSeqData.field_0x4);
inner_.track.setSeqData(inner_.mSeqData.mBase, inner_.mSeqData.mOffset);
inner_.track.startSeq();
}
+1 -1
View File
@@ -40,7 +40,7 @@ void JAISeq::JAISeqMgr_startID_(JAISoundID id, const JGeometry::TVec3<f32>* posP
void JAISeq::playSeqData_(const JASSoundParams& params, JAISoundActivity activity) {
JUT_ASSERT(72, JASTrack_isFreeOrStopped( & inner_.outputTrack ));
inner_.outputTrack.setSeqData(inner_.mSeqData.field_0x0, inner_.mSeqData.field_0x4);
inner_.outputTrack.setSeqData(inner_.mSeqData.mBase, inner_.mSeqData.mOffset);
if (audible_) {
initTrack_JAISound_(&inner_.outputTrack);
} else {
+3 -3
View File
@@ -34,9 +34,9 @@ void JASSeqCtrl::init() {
field_0x51 = 0;
}
void JASSeqCtrl::start(void* param_0, u32 param_1) {
mReader.init(param_0);
mReader.jump(param_1);
void JASSeqCtrl::start(void* base, u32 offset) {
mReader.init(base);
mReader.jump(offset);
}
int JASSeqCtrl::tickProc(JASTrack* param_0) {
+4 -4
View File
@@ -959,10 +959,10 @@ s32 JASSeqParser::parseCommand(JASTrack* param_0, u8 cmd, u16 param_2) {
} else {
cmdInfo = &sExtCmdInfo[seqCtrl->readByte() & 0xff];
}
u16 r28 = (u16)cmdInfo->field_0xe;
u16 r28 = (u16)cmdInfo->mParameterTypes;
r28 |= param_2;
u32 stack_28[8];
for (int i = 0; i < cmdInfo->field_0xc; i++, r28 >>= 2) {
for (int i = 0; i < cmdInfo->mParameterCount; i++, r28 >>= 2) {
int r27 = 0;
switch (r28 & 3) {
case 0:
@@ -980,11 +980,11 @@ s32 JASSeqParser::parseCommand(JASTrack* param_0, u8 cmd, u16 param_2) {
}
stack_28[i] = r27;
}
s32 (JASSeqParser::*ptr)(JASTrack*, u32*) = cmdInfo->field_0x0;
s32 (JASSeqParser::*ptr)(JASTrack*, u32*) = cmdInfo->mHandler;
if (!ptr) {
return 0;
}
return execCommand(param_0, ptr, cmdInfo->field_0xc, stack_28);
return execCommand(param_0, ptr, cmdInfo->mParameterCount, stack_28);
}
s32 JASSeqParser::parseRegCommand(JASTrack* param_0, int param_1) {
+26 -26
View File
@@ -8,81 +8,81 @@
#include "JSystem/JAudio2/JASSeqReader.h"
void JASSeqReader::init() {
field_0x00 = 0;
field_0x04 = 0;
field_0x08 = 0;
mBase = 0;
mCurPos = 0;
mCurStackDepth = 0;
for (int i = 0; i < 8; i++) {
field_0x0c[i] = NULL;
field_0x2c[i] = 0;
for (int i = 0; i < JAS_SEQ_STACK_SIZE; i++) {
mReturnAddr[i] = NULL;
mLoopCount[i] = 0;
}
}
void JASSeqReader::init(void* param_0) {
field_0x00 = (u8*)param_0;
field_0x04 = field_0x00;
field_0x08 = 0;
void JASSeqReader::init(void* base) {
mBase = (u8*)base;
mCurPos = mBase;
mCurStackDepth = 0;
for (int i = 0; i < 8; i++) {
field_0x0c[i] = NULL;
field_0x2c[i] = 0;
for (int i = 0; i < JAS_SEQ_STACK_SIZE; i++) {
mReturnAddr[i] = NULL;
mLoopCount[i] = 0;
}
}
bool JASSeqReader::call(u32 param_0) {
if (field_0x08 >= 8) {
if (mCurStackDepth >= JAS_SEQ_STACK_SIZE) {
JUT_WARN(42, "%s", "Cannot exec call command");
return false;
}
field_0x0c[field_0x08++] = (u16*)field_0x04;
field_0x04 = field_0x00 + param_0;
mReturnAddr[mCurStackDepth++] = (u16*)mCurPos;
mCurPos = mBase + param_0;
return true;
}
bool JASSeqReader::loopStart(u32 param_0) {
if (8 <= field_0x08) {
if (JAS_SEQ_STACK_SIZE <= mCurStackDepth) {
JUT_WARN(53, "%s", "Cannot exec loopStart command");
return false;
}
field_0x0c[field_0x08] = (u16*)field_0x04;
field_0x2c[field_0x08++] = param_0;
mReturnAddr[mCurStackDepth] = (u16*)mCurPos;
mLoopCount[mCurStackDepth++] = param_0;
return true;
}
bool JASSeqReader::loopEnd() {
if (field_0x08 == 0) {
if (mCurStackDepth == 0) {
JUT_WARN(65, "%s", "cannot loopE for call-stack is NULL");
return false;
}
u16 tmp = field_0x2c[field_0x08 - 1];
u16 tmp = mLoopCount[mCurStackDepth - 1];
if (tmp != 0) {
tmp--;
}
if (!tmp) {
field_0x08--;
mCurStackDepth--;
return true;
}
field_0x2c[field_0x08 - 1] = tmp;
field_0x04 = (u8*)field_0x0c[field_0x08 - 1];
mLoopCount[mCurStackDepth - 1] = tmp;
mCurPos = (u8*)mReturnAddr[mCurStackDepth - 1];
return true;
}
bool JASSeqReader::ret() {
if (field_0x08 == 0) {
if (mCurStackDepth == 0) {
return false;
}
field_0x04 = (u8*)field_0x0c[--field_0x08];
mCurPos = (u8*)mReturnAddr[--mCurStackDepth];
return true;
}
+2 -2
View File
@@ -171,9 +171,9 @@ void JASTrack::assignExtBuffer(u32 index, JASSoundParams* i_soundParams) {
mChannelMgrs[index]->mSoundParams = i_soundParams;
}
void JASTrack::setSeqData(void* param_0, u32 param_1) {
void JASTrack::setSeqData(void* base, u32 offset) {
JUT_ASSERT(257, mStatus == STATUS_FREE);
mSeqCtrl.start(param_0, param_1);
mSeqCtrl.start(base, offset);
}
void JASTrack::startSeq() {
+6 -6
View File
@@ -3,8 +3,8 @@
#include "JSystem/JAudio2/JASTrackPort.h"
void JASTrackPort::init() {
for (int i = 0; i < 16; i++) {
field_0x4[i] = 0;
for (int i = 0; i < MAX_PORTS; i++) {
mPortValues[i] = 0;
}
field_0x0 = 0;
field_0x2 = 0;
@@ -13,25 +13,25 @@ void JASTrackPort::init() {
u16 JASTrackPort::readImport(u32 port_num) {
JUT_ASSERT(27, port_num < MAX_PORTS);
field_0x0 = field_0x0 & ~(1 << port_num);
return field_0x4[port_num];
return mPortValues[port_num];
}
u16 JASTrackPort::readExport(u32 port_num) {
JUT_ASSERT(34, port_num < MAX_PORTS);
field_0x2 = field_0x2 & ~(1 << port_num);
return field_0x4[port_num];
return mPortValues[port_num];
}
void JASTrackPort::writeImport(u32 port_num, u16 param_1) {
JUT_ASSERT(41, port_num < MAX_PORTS);
field_0x0 = field_0x0 | (1 << port_num);
field_0x4[port_num] = param_1;
mPortValues[port_num] = param_1;
}
void JASTrackPort::writeExport(u32 port_num, u16 param_1) {
JUT_ASSERT(47, port_num < MAX_PORTS);
field_0x2 = field_0x2 | (1 << port_num);
field_0x4[port_num] = param_1;
mPortValues[port_num] = param_1;
}
u32 JASTrackPort::checkImport(u32 param_0) const {
+13 -13
View File
@@ -4,39 +4,39 @@
#include "JSystem/JUtility/JUTAssert.h"
JAUSeqCollection::JAUSeqCollection() {
field_0x8 = NULL;
mHeader = NULL;
}
void JAUSeqCollection::init(void const* param_0) {
field_0x8 = (const JAUSeqCollectionData*)param_0;
if (field_0x8->field_0x0 != 0x53 || field_0x8->field_0x1 != 0x43) {
field_0x8 = NULL;
mHeader = (const JAUSeqCollectionData*)param_0;
if (mHeader->mMagic1 != 0x53 || mHeader->mMagic2 != 0x43) {
mHeader = NULL;
return;
}
field_0x0 = field_0x8->field_0x2;
field_0xc = field_0x8->field_0x4;
field_0x4 = &field_0x8->field_0x8;
mNumSoundCategories = mHeader->mNumSoundCategories;
mSectionSize = mHeader->mSectionSize;
mTableOffsets = mHeader->mTableOffsets;
}
bool JAUSeqCollection::getSeqData(int param_0, int param_1, JAISeqData* param_2) {
if (param_0 >= field_0x0) {
if (param_0 >= mNumSoundCategories) {
return false;
}
u32 r29 = field_0x4[param_0];
BE(u32)* puVar2 = (BE(u32)*)((u8*)field_0x8 + r29);
u32 r29 = mTableOffsets[param_0];
BE(u32)* puVar2 = (BE(u32)*)((u8*)mHeader + r29);
if (param_1 >= puVar2[0]) {
return false;
}
param_2->set((void*)field_0x8, puVar2[param_1 + 1]);
param_2->set((void*)mHeader, puVar2[param_1 + 1]);
return true;
}
bool JAUSeqCollection::getSeqDataRegion(JAISeqDataRegion* param_0) {
if (isValid()) {
param_0->addr = (u8*)field_0x8;
param_0->size = field_0xc;
param_0->addr = (u8*)mHeader;
param_0->size = mSectionSize;
return true;
}
return false;
@@ -87,8 +87,8 @@ s32 JAUDynamicSeqDataBlocks::getSeqData(JAISoundID param_0, JAISeqDataUser* para
u8* seqData = mLoadedBlocks.getSeqData(param_0);
if (seqData != NULL) {
param_2->field_0x0 = seqData;
param_2->field_0x4 = 0;
param_2->mBase = seqData;
param_2->mOffset = 0;
return 2;
}