mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
JAudio2 and Z2AudioLib work (#2223)
* JAudio2 and Z2AudioLib work * check1stDynamicWave matched
This commit is contained in:
+14
-14
@@ -774,15 +774,15 @@ config.libs = [
|
||||
Object(Matching, "JSystem/JAudio2/JASSeqReader.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JASAramStream.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JASBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JASBasicBank.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASBasicBank.cpp", extra_cflags=['-pragma "nosyminline off"']),
|
||||
Object(Matching, "JSystem/JAudio2/JASVoiceBank.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASBasicInst.cpp", extra_cflags=['-pragma "nosyminline off"']),
|
||||
Object(Matching, "JSystem/JAudio2/JASDrumSet.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JASBasicWaveBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JASSimpleWaveBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JASWSParser.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASSimpleWaveBank.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASWSParser.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JASBNKParser.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JASWaveArcLoader.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASWaveArcLoader.cpp", extra_cflags=['-pragma "nosyminline off"']),
|
||||
Object(NonMatching, "JSystem/JAudio2/JASChannel.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASLfo.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASOscillator.cpp"),
|
||||
@@ -790,13 +790,13 @@ config.libs = [
|
||||
Object(NonMatching, "JSystem/JAudio2/JASAudioThread.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASAudioReseter.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASDSPChannel.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JASDSPInterface.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASDSPInterface.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASDriverIF.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JASSoundParams.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/dspproc.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/dsptask.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/osdsp.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/osdsp_task.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/dspproc.cpp", extra_cflags=["-O4", "-func_align 32"]),
|
||||
Object(Matching, "JSystem/JAudio2/dsptask.cpp", extra_cflags=["-O4", "-func_align 32"]),
|
||||
Object(Matching, "JSystem/JAudio2/osdsp.cpp", extra_cflags=["-O4", "-func_align 32", "-str nopool"]),
|
||||
Object(Matching, "JSystem/JAudio2/osdsp_task.cpp", extra_cflags=["-O4", "-func_align 32"]),
|
||||
Object(Matching, "JSystem/JAudio2/JAIAudible.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JAIAudience.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JAISe.cpp"),
|
||||
@@ -810,7 +810,7 @@ config.libs = [
|
||||
Object(Matching, "JSystem/JAudio2/JAISoundInfo.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JAISoundParams.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JAISoundStarter.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JAIStream.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JAIStream.cpp", extra_cflags=["-sym off"]),
|
||||
Object(Matching, "JSystem/JAudio2/JAIStreamDataMgr.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio2/JAIStreamMgr.cpp"),
|
||||
Object(Matching, "JSystem/JAudio2/JAUAudioArcInterpreter.cpp"),
|
||||
@@ -854,12 +854,12 @@ config.libs = [
|
||||
Object(NonMatching, "Z2AudioLib/Z2SeqMgr.cpp"),
|
||||
Object(Matching, "Z2AudioLib/Z2StatusMgr.cpp"),
|
||||
Object(NonMatching, "Z2AudioLib/Z2SceneMgr.cpp"),
|
||||
Object(NonMatching, "Z2AudioLib/Z2FxLineMgr.cpp"),
|
||||
Object(NonMatching, "Z2AudioLib/Z2SoundInfo.cpp"),
|
||||
Object(Matching, "Z2AudioLib/Z2FxLineMgr.cpp"),
|
||||
Object(Matching, "Z2AudioLib/Z2SoundInfo.cpp"),
|
||||
Object(NonMatching, "Z2AudioLib/Z2Audience.cpp"),
|
||||
Object(Matching, "Z2AudioLib/Z2SoundObject.cpp"),
|
||||
Object(NonMatching, "Z2AudioLib/Z2SoundObjMgr.cpp"),
|
||||
Object(NonMatching, "Z2AudioLib/Z2Creature.cpp"),
|
||||
Object(Matching, "Z2AudioLib/Z2SoundObjMgr.cpp"),
|
||||
Object(Matching, "Z2AudioLib/Z2Creature.cpp"),
|
||||
Object(NonMatching, "Z2AudioLib/Z2LinkMgr.cpp"),
|
||||
Object(NonMatching, "Z2AudioLib/Z2EnvSeMgr.cpp"),
|
||||
Object(Matching, "Z2AudioLib/Z2WolfHowlMgr.cpp"),
|
||||
|
||||
@@ -10,7 +10,7 @@ class JAISeMgr;
|
||||
* @ingroup jsystem-jaudio
|
||||
*
|
||||
*/
|
||||
class JAISe : public JSULink<JAISe>, public JAISound {
|
||||
class JAISe : public JSULink<JAISe>, public JASPoolAllocObject<JAISe>, public JAISound {
|
||||
public:
|
||||
class TInner {
|
||||
public:
|
||||
|
||||
@@ -42,7 +42,7 @@ class JAISeCategoryMgr : public JAISeqDataUser {
|
||||
public:
|
||||
/* 8029F9C4 */ void JAISeMgr_calc_();
|
||||
/* 8029FB30 */ void JAISeMgr_freeDeadSe_();
|
||||
/* 8029FC88 */ u32 JAISeMgr_acceptsNewSe_(u32) const;
|
||||
/* 8029FC88 */ bool JAISeMgr_acceptsNewSe_(u32) const;
|
||||
/* 8029FD40 */ void sortByPriority_();
|
||||
/* 8029FDE0 */ void stop(u32);
|
||||
/* 8029FE34 */ void stop();
|
||||
@@ -65,6 +65,7 @@ public:
|
||||
JSUList<JAISe>* getSeList() { return &mSeList; }
|
||||
int getNumSe() const { return mSeList.getNumLinks(); }
|
||||
JAIAudience* getAudience() { return (JAIAudience*)field_0x4.field_0x0; }
|
||||
void JAISeMgr_appendSe_(JAISe* se) { mSeList.append(se); }
|
||||
|
||||
/* 0x04 */ JASNonCopyable field_0x4;
|
||||
/* 0x08 */ JAISoundParamsMove mParams;
|
||||
@@ -113,7 +114,7 @@ public:
|
||||
private:
|
||||
/* 0x008 */ JAIAudience* mAudience;
|
||||
/* 0x00C */ JAISeqDataMgr* mSeqDataMgr;
|
||||
/* 0x010 */ int field_0x10;
|
||||
/* 0x010 */ JAISoundStrategyMgr<JAISe>* mStrategyMgr;
|
||||
/* 0x014 */ JAISeCategoryMgr mCategoryMgrs[16];
|
||||
/* 0x6D4 */ JAISoundParamsMove mParams;
|
||||
}; // Size: 0x724
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
}
|
||||
JAISoundParamsMove* getParams() { return &mMove; }
|
||||
bool isActive() { return mSeqList.getNumLinks() != 0; }
|
||||
int getNumActiveSeqs() { return mSeqList.getNumLinks(); }
|
||||
int getNumActiveSeqs() const { return mSeqList.getNumLinks(); }
|
||||
void pause(bool i_pause) { mActivity.field_0x0.flags.flag2 = i_pause; }
|
||||
|
||||
private:
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define JAISOUNDCHILD_H
|
||||
|
||||
#include "JSystem/JAudio2/JAISoundParams.h"
|
||||
#include "JSystem/JAudio2/JASHeapCtrl.h"
|
||||
|
||||
struct JASTrack;
|
||||
|
||||
@@ -9,7 +10,7 @@ struct JASTrack;
|
||||
* @ingroup jsystem-jaudio
|
||||
*
|
||||
*/
|
||||
struct JAISoundChild {
|
||||
struct JAISoundChild : JASPoolAllocObject<JAISoundChild> {
|
||||
/* 802A2AB0 */ void init();
|
||||
/* 802A2B28 */ void mixOut(JASTrack*);
|
||||
/* 802A2B7C */ void calc();
|
||||
|
||||
@@ -18,7 +18,7 @@ struct JAIStreamDataMgr {
|
||||
*/
|
||||
struct JAIStreamAramMgr {
|
||||
virtual void* newStreamAram(u32*) = 0;
|
||||
virtual void deleteStreamAram(u32) = 0;
|
||||
virtual bool deleteStreamAram(u32) = 0;
|
||||
virtual ~JAIStreamAramMgr();
|
||||
};
|
||||
|
||||
|
||||
@@ -23,10 +23,11 @@ public:
|
||||
/* 802A40B8 */ void stopSoundID(JAISoundID);
|
||||
/* 802A4118 */ void mixOut();
|
||||
/* 802A4174 */ JAIStream* newStream_();
|
||||
/* 802B9978 */ bool isActive() const;
|
||||
/* 802B9978 */ bool isActive() const { return mStreamList.getNumLinks() != 0; }
|
||||
|
||||
JAISoundParamsMove* getParams() { return &mParams; }
|
||||
JAIStreamAramMgr* getStreamAramMgr() { return mStreamAramMgr; }
|
||||
JSUList<JAIStream>* getStreamList() { return &mStreamList; }
|
||||
void setStreamDataMgr(JAIStreamDataMgr* param_0) {
|
||||
JUT_ASSERT(139, !isActive());
|
||||
streamDataMgr_ = param_0;
|
||||
|
||||
@@ -8,9 +8,53 @@ class JASBasicBank;
|
||||
class JKRHeap;
|
||||
|
||||
namespace JASBNKParser {
|
||||
struct TFileHeader {
|
||||
/* 0x0 */ u8 _00[4];
|
||||
/* 0x4 */ u32 mSize;
|
||||
/* 0x8 */ u8 _08[4];
|
||||
/* 0xC */ u32 mVersion;
|
||||
};
|
||||
|
||||
namespace Ver1 {
|
||||
/* 80299600 */ void findChunk(void const*, u32);
|
||||
/* 8029963C */ void createBasicBank(void const*, JKRHeap*);
|
||||
struct TOsc {
|
||||
/* 0x00 */ u8 _00[4];
|
||||
/* 0x04 */ u8 mTarget;
|
||||
/* 0x08 */ f32 _08;
|
||||
/* 0x0C */ u32 mTableOffset;
|
||||
/* 0x10 */ u32 _10;
|
||||
/* 0x14 */ f32 mScale;
|
||||
/* 0x18 */ f32 _18;
|
||||
};
|
||||
|
||||
struct TPercData {
|
||||
/* 0x00 */ f32 mVolume;
|
||||
/* 0x04 */ f32 mPitch;
|
||||
/* 0x08 */ u8 mPan;
|
||||
/* 0x0A */ u16 mRelease;
|
||||
/* 0x0C */ u32 field_0xc;
|
||||
};
|
||||
|
||||
struct TChunk {
|
||||
/* 0x0 */ u32 mID;
|
||||
/* 0x4 */ u32 mSize;
|
||||
};
|
||||
|
||||
struct TEnvtChunk : TChunk {
|
||||
/* 0x8 */ u8 mData[0];
|
||||
};
|
||||
|
||||
struct TOscChunk : TChunk {
|
||||
/* 0x8 */ u32 mCount;
|
||||
/* 0xC */ TOsc mOsc[0];
|
||||
};
|
||||
|
||||
struct TListChunk : TChunk {
|
||||
/* 0x8 */ u32 mCount;
|
||||
/* 0xC */ u32 mOffsets[0];
|
||||
};
|
||||
|
||||
/* 80299600 */ static TChunk* findChunk(void const*, u32);
|
||||
/* 8029963C */ static JASBasicBank* createBasicBank(void const*, JKRHeap*);
|
||||
};
|
||||
|
||||
namespace Ver0 {
|
||||
@@ -18,18 +62,17 @@ namespace JASBNKParser {
|
||||
|
||||
struct TOsc {};
|
||||
|
||||
/* 80299A3C */ void createBasicBank(void const*, JKRHeap*);
|
||||
/* 80299E68 */ void findOscPtr(JASBasicBank*, JASBNKParser::Ver0::THeader const*,
|
||||
JASBNKParser::Ver0::TOsc const*);
|
||||
/* 80299F8C */ void getOscTableEndPtr(JASOscillator::Point const*);
|
||||
/* 80299A3C */ static JASBasicBank* createBasicBank(void const*, JKRHeap*);
|
||||
/* 80299E68 */ static void findOscPtr(JASBasicBank*, THeader const*, TOsc const*);
|
||||
/* 80299F8C */ static void getOscTableEndPtr(JASOscillator::Point const*);
|
||||
};
|
||||
|
||||
/* 80299538 */ JASBank* createBank(void const*, JKRHeap*);
|
||||
/* 80299558 */ JASBasicBank* createBasicBank(void const*, JKRHeap*);
|
||||
/* 80299538 */ static JASBank* createBank(void const*, JKRHeap*);
|
||||
/* 80299558 */ static JASBasicBank* createBasicBank(void const*, JKRHeap*);
|
||||
|
||||
inline u32 getBankNumber(const void* param_0) { return ((u32*)param_0)[2]; }
|
||||
inline static u32 getBankNumber(const void* param_0) { return ((u32*)param_0)[2]; }
|
||||
|
||||
extern u8 sUsedHeapSize[4];
|
||||
extern u32 sUsedHeapSize;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,22 @@
|
||||
#ifndef JASBASICBANK_H
|
||||
#define JASBASICBANK_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JASBank.h"
|
||||
#include "JSystem/JAudio2/JASBasicInst.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
|
||||
class JASBasicBank : public JASBank {
|
||||
public:
|
||||
/* 80297D78 */ JASBasicBank();
|
||||
/* 80297DA4 */ void newInstTable(u8, JKRHeap*);
|
||||
/* 80297E00 */ bool getInstParam(int, int, int, JASInstParam*) const;
|
||||
/* 80297E68 */ void setInst(int, JASInst*);
|
||||
/* 80297E80 */ JASInst* getInst(int) const;
|
||||
/* 80297F0C */ ~JASBasicBank() {}
|
||||
/* 80297F68 */ u32 getType() const { return 'BSIC'; }
|
||||
|
||||
/* 0x8 */ JASInst** mInstTable;
|
||||
/* 0xC */ u8 mInstNumMax;
|
||||
};
|
||||
|
||||
#endif /* JASBASICBANK_H */
|
||||
|
||||
@@ -45,13 +45,14 @@ struct JASInst {
|
||||
struct JASBasicInst : public JASInst {
|
||||
struct TKeymap {
|
||||
/* 80298250 */ ~TKeymap();
|
||||
/* 802982D4 */ TKeymap() { field_0x0 = -1; }
|
||||
/* 802982D4 */ TKeymap() { mHighKey = -1; }
|
||||
void setHighKey(int key) { mHighKey = key; }
|
||||
|
||||
s32 field_0x0;
|
||||
u16 field_0x4;
|
||||
u16 field_0x6;
|
||||
f32 field_0x8;
|
||||
f32 field_0xc;
|
||||
/* 0x0 */ s32 mHighKey;
|
||||
/* 0x4 */ u16 field_0x4;
|
||||
/* 0x6 */ u16 field_0x6;
|
||||
/* 0x8 */ f32 field_0x8;
|
||||
/* 0xC */ f32 field_0xc;
|
||||
};
|
||||
|
||||
/* 80298014 */ JASBasicInst();
|
||||
@@ -63,11 +64,14 @@ struct JASBasicInst : public JASInst {
|
||||
/* 802980F8 */ virtual bool getParam(int, int, JASInstParam*) const;
|
||||
/* 802982E0 */ virtual u32 getType() const { return 'BSIC'; };
|
||||
|
||||
f32 mVolume;
|
||||
f32 mPitch;
|
||||
JASOscillator::Data const* field_0xc[2];
|
||||
u32 mKeymapCount;
|
||||
TKeymap* mKeymap;
|
||||
void setVolume(f32 volume) { mVolume = volume; }
|
||||
void setPitch(f32 pitch) { mPitch = pitch; }
|
||||
|
||||
/* 0x04 */ f32 mVolume;
|
||||
/* 0x08 */ f32 mPitch;
|
||||
/* 0x0C */ JASOscillator::Data const* field_0xc[2];
|
||||
/* 0x10 */ u32 mKeymapCount;
|
||||
/* 0x14 */ TKeymap* mKeymap;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -10,11 +10,9 @@
|
||||
*/
|
||||
class JASWaveHandle {
|
||||
public:
|
||||
/* virtual */ ~JASWaveHandle() {};
|
||||
//virtual const JASWaveInfo* getWaveInfo() const = 0;
|
||||
//virtual int getWavePtr() const = 0;
|
||||
|
||||
void* vtable;
|
||||
virtual ~JASWaveHandle() {};
|
||||
virtual const JASWaveInfo* getWaveInfo() const = 0;
|
||||
virtual int getWavePtr() const = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -23,12 +21,10 @@ public:
|
||||
*/
|
||||
class JASWaveBank {
|
||||
public:
|
||||
/* 80298B88 */ /* virtual */ ~JASWaveBank() {};
|
||||
//virtual JASWaveHandle* getWaveHandle(u32) const = 0;
|
||||
//virtual JASWaveArc* getWaveArc(u32) = 0;
|
||||
//virtual u32 getArcCount() const = 0;
|
||||
|
||||
void* vtable;
|
||||
/* 80298B88 */ virtual ~JASWaveBank() {};
|
||||
virtual JASWaveHandle* getWaveHandle(u32) const = 0;
|
||||
virtual JASWaveArc* getWaveArc(u32) = 0;
|
||||
virtual u32 getArcCount() const = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -37,7 +33,7 @@ public:
|
||||
*/
|
||||
struct JASBasicWaveBank : public JASWaveBank {
|
||||
struct TWaveHandle : public JASWaveHandle {
|
||||
/* 802985E4 */ ~TWaveHandle();
|
||||
/* 802985E4 */ ~TWaveHandle() {}
|
||||
/* 80298B64 */ int getWavePtr() const;
|
||||
/* 80298C18 */ TWaveHandle() { mHeap = NULL; }
|
||||
/* 80298C64 */ const JASWaveInfo* getWaveInfo() const { return &field_0x4; }
|
||||
@@ -57,7 +53,7 @@ struct JASBasicWaveBank : public JASWaveBank {
|
||||
/* 0x04 */ int field_0x4;
|
||||
};
|
||||
|
||||
struct TWaveGroup {
|
||||
struct TWaveGroup : JASWaveArc {
|
||||
/* 802989C0 */ TWaveGroup();
|
||||
/* 80298A0C */ ~TWaveGroup();
|
||||
/* 80298A84 */ void setWaveCount(u32, JKRHeap*);
|
||||
@@ -65,7 +61,6 @@ struct JASBasicWaveBank : public JASWaveBank {
|
||||
/* 80298B2C */ void onEraseDone();
|
||||
/* 80298B54 */ u32 getWaveID(int) const;
|
||||
|
||||
/* 0x00 */ JASWaveArc base;
|
||||
/* 0x74 */ JASBasicWaveBank* mBank;
|
||||
/* 0x78 */ TGroupWaveInfo* mCtrlWaveArray;
|
||||
/* 0x7C */ u16 mWaveCount;
|
||||
@@ -82,7 +77,7 @@ struct JASBasicWaveBank : public JASWaveBank {
|
||||
/* 8029883C */ void decWaveTable(JASBasicWaveBank::TWaveGroup const*);
|
||||
/* 802988DC */ JASWaveHandle* getWaveHandle(u32) const;
|
||||
/* 80298910 */ void setWaveInfo(JASBasicWaveBank::TWaveGroup*, int, u16, JASWaveInfo const&);
|
||||
/* 80298C6C */ JASWaveArc* getWaveArc(u32 param_0); // { return getWaveGroup(param_0); }
|
||||
/* 80298C6C */ JASWaveArc* getWaveArc(u32 param_0) { return getWaveGroup(param_0); }
|
||||
/* 80298C8C */ u32 getArcCount() const { return mGroupCount; }
|
||||
|
||||
/* 0x04 */ OSMutex field_0x4;
|
||||
|
||||
@@ -120,4 +120,6 @@ namespace JASDsp {
|
||||
extern f32 sDSPVolume;
|
||||
};
|
||||
|
||||
u16 DSP_CreateMap2(u32 msg);
|
||||
|
||||
#endif /* JASDSPINTERFACE_H */
|
||||
|
||||
@@ -14,13 +14,17 @@ struct JASDrumSet : public JASInst {
|
||||
/* 802984C4 */ TPerc();
|
||||
/* 802984E4 */ void setRelease(u32);
|
||||
|
||||
f32 mVolume;
|
||||
f32 mPitch;
|
||||
f32 mPan;
|
||||
u16 field_0xc;
|
||||
u16 field_0xe;
|
||||
f32 field_0x10;
|
||||
f32 field_0x14;
|
||||
void setVolume(f32 volume) { mVolume = volume; }
|
||||
void setPitch(f32 pitch) { mPitch = pitch; }
|
||||
void setPan(f32 pan) { mPan = pan; }
|
||||
|
||||
/* 0x00 */ f32 mVolume;
|
||||
/* 0x04 */ f32 mPitch;
|
||||
/* 0x08 */ f32 mPan;
|
||||
/* 0x0C */ u16 field_0xc;
|
||||
/* 0x0E */ u16 field_0xe;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
};
|
||||
|
||||
/* 802982EC */ JASDrumSet();
|
||||
@@ -30,8 +34,8 @@ struct JASDrumSet : public JASInst {
|
||||
/* 802984B4 */ void setPerc(int, JASDrumSet::TPerc*);
|
||||
/* 802984EC */ virtual u32 getType() const;
|
||||
|
||||
TPerc** field_0x4;
|
||||
u8 field_0x8;
|
||||
/* 0x4 */ TPerc** field_0x4;
|
||||
/* 0x8 */ u8 field_0x8;
|
||||
};
|
||||
|
||||
#endif /* JASDRUMSET_H */
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef JASHEAPCTRL_H
|
||||
#define JASHEAPCTRL_H
|
||||
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
#include "dolphin/os/OSInterrupt.h"
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
@@ -28,12 +29,13 @@ public:
|
||||
|
||||
void* getBase() { return mBase; }
|
||||
bool isAllocated() { return mBase; }
|
||||
u32 getSize() { return mSize; }
|
||||
|
||||
/* 0x00 */ JSUTree<JASHeap> mTree;
|
||||
/* 0x1C */ OSMutex mMutex;
|
||||
/* 0x34 */ JASDisposer* mDisposer;
|
||||
/* 0x38 */ u8* mBase;
|
||||
/* 0x3c */ u32 mSize;
|
||||
/* 0x3C */ u32 mSize;
|
||||
/* 0x40 */ JASHeap* field_0x40;
|
||||
};
|
||||
|
||||
@@ -49,9 +51,9 @@ struct JASGenericMemPool {
|
||||
/* 80290994 */ void free(void*, u32);
|
||||
|
||||
/* 0x00 */ void* field_0x0;
|
||||
/* 0x04 */ int freeMemCount;
|
||||
/* 0x08 */ int totalMemCount;
|
||||
/* 0x0C */ int field_0xc;
|
||||
/* 0x04 */ u32 freeMemCount;
|
||||
/* 0x08 */ u32 totalMemCount;
|
||||
/* 0x0C */ u32 usedMemCount;
|
||||
|
||||
};
|
||||
|
||||
@@ -151,6 +153,12 @@ class JASMemChunkPool {
|
||||
u8 mBuffer[ChunkSize];
|
||||
};
|
||||
public:
|
||||
JASMemChunkPool() {
|
||||
OSInitMutex(&mMutex);
|
||||
field_0x18 = NULL;
|
||||
createNewChunk();
|
||||
}
|
||||
|
||||
bool createNewChunk() {
|
||||
bool uVar2;
|
||||
if (field_0x18 != NULL && field_0x18->isEmpty()) {
|
||||
@@ -217,7 +225,7 @@ namespace JASKernel {
|
||||
/* 80290AD0 */ void setupAramHeap(u32, u32);
|
||||
/* 80290B08 */ JASHeap* getAramHeap();
|
||||
|
||||
extern u8 audioAramHeap[68];
|
||||
extern JASHeap audioAramHeap;
|
||||
extern u32 sAramBase;
|
||||
extern JKRHeap* sSystemHeap;
|
||||
extern JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* sCommandHeap;
|
||||
|
||||
@@ -18,7 +18,7 @@ public:
|
||||
/* 802962B0 */ int readMidiValue();
|
||||
|
||||
void jump(u32 param_1) {
|
||||
field_0x04 = (u8*)field_0x00 + param_1;
|
||||
field_0x04 = field_0x00 + param_1;
|
||||
}
|
||||
|
||||
void jump(void* param_1) {
|
||||
@@ -26,14 +26,14 @@ public:
|
||||
}
|
||||
|
||||
u32 get24(int param_0) {
|
||||
return (*(u32*)((int)field_0x00 + param_0 - 1)) & 0xffffff;
|
||||
return (*(u32*)(field_0x00 + param_0 - 1)) & 0xffffff;
|
||||
}
|
||||
|
||||
u32* getBase() { return field_0x00; }
|
||||
void* getAddr(u32 param_0) { return (u8*)field_0x00 + param_0; }
|
||||
u8 getByte(u32 param_0) { return *((u8*)field_0x00 + param_0); }
|
||||
u16 get16(u32 param_0) { return *(u16*)((u8*)field_0x00 + param_0); }
|
||||
u32 get32(u32 param_0) { return *(u32*)((u8*)field_0x00 + param_0); }
|
||||
u32* getBase() { return (u32*)field_0x00; }
|
||||
void* getAddr(u32 param_0) { return field_0x00 + param_0; }
|
||||
u8 getByte(u32 param_0) { return *(field_0x00 + param_0); }
|
||||
u16 get16(u32 param_0) { return *(u16*)(field_0x00 + param_0); }
|
||||
u32 get32(u32 param_0) { return *(u32*)(field_0x00 + param_0); }
|
||||
u8* getCur() { return field_0x04; }
|
||||
u32 readByte() { return *field_0x04++; }
|
||||
u32 read16() {
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
}
|
||||
u16 getLoopCount() const { return field_0x08 == 0 ? 0 : field_0x2c[field_0x08 - 1]; }
|
||||
|
||||
/* 0x00 */ u32* field_0x00;
|
||||
/* 0x00 */ u8* field_0x00;
|
||||
/* 0x04 */ u8* field_0x04;
|
||||
/* 0x08 */ u32 field_0x08;
|
||||
/* 0x0C */ u16* field_0x0c[8];
|
||||
|
||||
@@ -1,6 +1,31 @@
|
||||
#ifndef JASSIMPLEWAVEBANK_H
|
||||
#define JASSIMPLEWAVEBANK_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JASBasicWaveBank.h"
|
||||
#include "JSystem/JAudio2/JASWaveInfo.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
|
||||
struct JASSimpleWaveBank : JASWaveBank, JASWaveArc {
|
||||
struct TWaveHandle : JASWaveHandle {
|
||||
/* 80298D84 */ ~TWaveHandle() {}
|
||||
/* 80298F38 */ int getWavePtr() const;
|
||||
/* 80298F5C */ TWaveHandle();
|
||||
/* 80298F90 */ const JASWaveInfo* getWaveInfo() const;
|
||||
|
||||
/* 0x04 */ JASWaveInfo mWaveInfo;
|
||||
/* 0x28 */ JASHeap* mHeap;
|
||||
};
|
||||
|
||||
/* 80298C94 */ JASSimpleWaveBank();
|
||||
/* 80298CF4 */ ~JASSimpleWaveBank();
|
||||
/* 80298DE0 */ void setWaveTableSize(u32, JKRHeap*);
|
||||
/* 80298E60 */ JASWaveHandle* getWaveHandle(u32) const;
|
||||
/* 80298E84 */ void setWaveInfo(u32, JASWaveInfo const&);
|
||||
/* 80298F18 */ JASWaveArc* getWaveArc(u32);
|
||||
/* 80298F98 */ u32 getArcCount() const;
|
||||
|
||||
/* 0x78 */ TWaveHandle* mWaveTable;
|
||||
/* 0x7C */ u32 mWaveTableSize;
|
||||
};
|
||||
|
||||
#endif /* JASSIMPLEWAVEBANK_H */
|
||||
|
||||
@@ -13,7 +13,7 @@ struct JASSoundParams;
|
||||
namespace JASDsp {
|
||||
class TChannel;
|
||||
|
||||
extern u32 FILTER_MODE_IIR;
|
||||
extern const u32 FILTER_MODE_IIR;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,56 +17,66 @@ public:
|
||||
template<class T>
|
||||
class TOffset {
|
||||
public:
|
||||
T* ptr(void* param_0) {
|
||||
T* ptr(void const* param_0) {
|
||||
return JSUConvertOffsetToPtr<T>(param_0, mOffset);
|
||||
}
|
||||
void* mOffset;
|
||||
|
||||
private:
|
||||
/* 0x0 */ u32 mOffset;
|
||||
};
|
||||
|
||||
struct TCtrlWave {
|
||||
/* 0x0 */ u32 _00;
|
||||
};
|
||||
|
||||
struct TWave {
|
||||
/* 0x00 */ u8 _00;
|
||||
/* 0x01 */ u8 _01;
|
||||
/* 0x02 */ u8 _02;
|
||||
/* 0x04 */ f32 _04;
|
||||
/* 0x08 */ u32 mOffset;
|
||||
/* 0x0C */ u32 _0C;
|
||||
/* 0x10 */ u32 _10;
|
||||
/* 0x14 */ u32 _14;
|
||||
/* 0x18 */ u32 _18;
|
||||
/* 0x1C */ u32 _1C;
|
||||
/* 0x20 */ s16 _20;
|
||||
/* 0x22 */ s16 _22;
|
||||
};
|
||||
|
||||
struct TWaveArchive {
|
||||
/* 0x00 */ char mFileName[0x74]; // unknown length
|
||||
/* 0x74 */ TOffset<TWave> mWaveOffsets[0];
|
||||
};
|
||||
|
||||
struct TWaveArchiveBank {
|
||||
/* 0x0 */ u8 _00[8];
|
||||
/* 0x8 */ TOffset<TWaveArchive> mArchiveOffsets[0];
|
||||
};
|
||||
|
||||
struct TCtrl {
|
||||
/* 0x0 */ u8 _00[4];
|
||||
/* 0x4 */ u32 mWaveCount;
|
||||
/* 0x8 */ TOffset<TCtrlWave> mCtrlWaveOffsets[0];
|
||||
};
|
||||
|
||||
struct TCtrlScene {
|
||||
/* 0x0 */ u8 _00[0xC];
|
||||
/* 0xC */ TOffset<TCtrl> mCtrlOffset;
|
||||
};
|
||||
|
||||
struct TCtrlGroup {
|
||||
/* 0x0 */ u8 _00[8];
|
||||
/* 0x8 */ u32 mGroupCount;
|
||||
/* 0xC */ TOffset<TCtrlScene> mCtrlSceneOffsets[0];
|
||||
};
|
||||
|
||||
/** @fabricated */
|
||||
struct THeader {
|
||||
u8 _00[0x10]; // _00 - unknown/padding
|
||||
u32 mArchiveBankOffset; // _10
|
||||
u32 mCtrlGroupOffset; // _14
|
||||
};
|
||||
struct TCtrlWave {
|
||||
u32 _00; // _00
|
||||
};
|
||||
struct TWave {
|
||||
u8 _00; // _00
|
||||
u8 _01; // _01
|
||||
u8 _02; // _02
|
||||
f32 _04; // _04
|
||||
u32 mOffset; // _08
|
||||
u32 _0C; // _0C
|
||||
u32 _10; // _10
|
||||
u32 _14; // _14
|
||||
u32 _18; // _18
|
||||
u32 _1C; // _1C
|
||||
s16 _20; // _20
|
||||
s16 _22; // _22
|
||||
};
|
||||
struct TWaveArchive {
|
||||
char mFileName[0x74]; // _00 - unknown length
|
||||
u32 mWaveOffsets[1]; // _74 - dynamic length
|
||||
};
|
||||
struct TWaveArchiveBank {
|
||||
u8 _00[8]; // _00 - unknown/padding
|
||||
u32 mArchiveOffsets[1]; // _08 - dynamic length
|
||||
};
|
||||
struct TCtrl {
|
||||
u8 _00[4]; // _00 - unknown/padding
|
||||
u32 mWaveCount; // _04
|
||||
u32 mCtrlWaveOffsets[1]; // _08 - dynamic length
|
||||
};
|
||||
struct TCtrlScene {
|
||||
u8 _00[12]; // _00 - unknown/padding
|
||||
u32 mCtrlOffset; // _0C
|
||||
};
|
||||
struct TCtrlGroup {
|
||||
u8 _00[8]; // _00 - unknown/padding
|
||||
u32 mCtrlGroupCount; // _08
|
||||
u32 mCtrlSceneOffsets[1]; // _0C - dynamic length
|
||||
/* 0x00 */ u8 _00[0xC];
|
||||
/* 0x0C */ u32 mWaveTableSize;
|
||||
/* 0x10 */ TOffset<TWaveArchiveBank> mArchiveBankOffset;
|
||||
/* 0x14 */ TOffset<TCtrlGroup> mCtrlGroupOffset;
|
||||
};
|
||||
|
||||
/* 80298FB0 */ static u32 getGroupCount(void const*);
|
||||
@@ -74,7 +84,7 @@ public:
|
||||
/* 80299034 */ static JASBasicWaveBank* createBasicWaveBank(void const*, JKRHeap*);
|
||||
/* 80299264 */ static JASSimpleWaveBank* createSimpleWaveBank(void const*, JKRHeap*);
|
||||
|
||||
static u8 sUsedHeapSize[4 + 4 /* padding */];
|
||||
static u32 sUsedHeapSize;
|
||||
};
|
||||
|
||||
#endif /* JASWSPARSER_H */
|
||||
|
||||
@@ -15,7 +15,7 @@ class JKRSolidHeap;
|
||||
struct JASDisposer {
|
||||
JASDisposer() {}
|
||||
/* 8029A7B8 */ virtual ~JASDisposer() {}
|
||||
/* 80290BCC */ virtual void onDispose();
|
||||
/* 80290BCC */ virtual void onDispose() {}
|
||||
};
|
||||
|
||||
#define DIR_MAX 64
|
||||
@@ -45,14 +45,16 @@ struct JASWaveArc : JASDisposer {
|
||||
/* 8029A404 */ bool sendLoadCmd();
|
||||
/* 8029A4C0 */ bool load(JASHeap*);
|
||||
/* 8029A580 */ bool loadTail(JASHeap*);
|
||||
/* 8029A640 */ void erase();
|
||||
/* 8029A640 */ bool erase();
|
||||
/* 8029A6AC */ void setEntryNum(s32);
|
||||
/* 8029A70C */ void setFileName(char const*);
|
||||
|
||||
/* 8029A1B4 */ virtual ~JASWaveArc();
|
||||
/* 8029A664 */ virtual void onDispose();
|
||||
/* 80298FA0 */ virtual void onLoadDone();
|
||||
/* 80298FA4 */ virtual void onEraseDone();
|
||||
/* 80298FA0 */ virtual void onLoadDone() {}
|
||||
/* 80298FA4 */ virtual void onEraseDone() {}
|
||||
|
||||
s32 getStatus() { return mStatus; }
|
||||
|
||||
struct loadToAramCallbackParams {
|
||||
// not official struct name
|
||||
@@ -64,7 +66,7 @@ struct JASWaveArc : JASDisposer {
|
||||
|
||||
/* 0x04 */ JASHeap mHeap;
|
||||
/* 0x48 */ u32 _48;
|
||||
/* 0x4C */ volatile s32 _4c;
|
||||
/* 0x4C */ volatile s32 mStatus;
|
||||
/* 0x50 */ int mEntryNum;
|
||||
/* 0x54 */ u32 mFileLength;
|
||||
/* 0x58 */ u16 _58;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef JASWAVEINFO_H
|
||||
#define JASWAVEINFO_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-jaudio
|
||||
*
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user