mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-17 22:12:43 -04:00
Names mixed in with some BE fixes
This commit is contained in:
@@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user