mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-06 18:02:28 -04:00
+6
-6
@@ -664,21 +664,21 @@ config.libs = [
|
||||
Object(Matching, "JSystem/JAudio/JASSystemHeap.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASNoteMgr.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASOuterParam.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASPlayer_impl.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASRegisterParam.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASPlayer_impl.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASRegisterParam.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASSeqCtrl.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASSeqParser.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASTrack.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASTrackInterrupt.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASTrackPort.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASWaveBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASBasicBank.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASWaveBank.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASBasicBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASBasicInst.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASDrumSet.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASBasicWaveBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASSimpleWaveBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASInstEffect.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASSimpleWaveBank.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASInstEffect.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASInstSense.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASInstRand.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASWSParser.cpp"),
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
#ifndef JASBNKPARSER_H
|
||||
#define JASBNKPARSER_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TBasicBank;
|
||||
namespace BNKParser {
|
||||
struct THeader;
|
||||
struct TInst;
|
||||
struct TKeymap;
|
||||
struct TOsc;
|
||||
struct TPerc;
|
||||
struct TPmap;
|
||||
struct TRand;
|
||||
struct TSense;
|
||||
struct TVmap;
|
||||
|
||||
TBasicBank* createBasicBank(void*);
|
||||
void findOscPtr(JASystem::TBasicBank*, JASystem::BNKParser::THeader*, JASystem::BNKParser::TOsc*);
|
||||
void getOscTableEndPtr(short*);
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASBNKPARSER_H */
|
||||
@@ -6,10 +6,22 @@
|
||||
class JKRHeap;
|
||||
|
||||
namespace JASystem {
|
||||
namespace TBank {
|
||||
JKRHeap* getCurrentHeap();
|
||||
class TInst;
|
||||
class TWaveBank;
|
||||
class TBank {
|
||||
public:
|
||||
TBank() {
|
||||
field_0x4 = 0;
|
||||
}
|
||||
virtual ~TBank() {}
|
||||
virtual TInst* getInst(int) const = 0;
|
||||
virtual u32 getType() const = 0;
|
||||
|
||||
extern JKRHeap* sCurrentHeap;
|
||||
static JKRHeap* getCurrentHeap();
|
||||
|
||||
static JKRHeap* sCurrentHeap;
|
||||
|
||||
/* 0x04 */ TWaveBank* field_0x4;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef JASBANKMGR_H
|
||||
#define JASBANKMGR_H
|
||||
|
||||
#include "JSystem/JAudio/JASOscillator.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TBank;
|
||||
class TChannel;
|
||||
class TChannelMgr;
|
||||
|
||||
namespace BankMgr {
|
||||
void init(int);
|
||||
bool registBank(int, TBank*);
|
||||
bool registBankBNK(int, void*);
|
||||
TBank* getBank(int);
|
||||
u16 getPhysicalNumber(u16);
|
||||
void setVir2PhyTable(u32, int);
|
||||
bool assignWaveBank(int, int);
|
||||
float clamp01(float);
|
||||
TChannel* noteOn(TChannelMgr*, int, int, u8, u8, u32);
|
||||
TChannel* noteOnOsc(TChannelMgr*, int, u8, u8, u32);
|
||||
void gateOn(TChannel*, u8, u8, u32);
|
||||
|
||||
extern s32 sTableSize;
|
||||
extern TBank** sBankArray;
|
||||
extern u16* sVir2PhyTable;
|
||||
|
||||
extern TOscillator::Osc_ OSC_ENV;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* JASBANKMGR_H */
|
||||
@@ -0,0 +1,21 @@
|
||||
#ifndef JASBASICBANK_H
|
||||
#define JASBASICBANK_H
|
||||
|
||||
#include "JSystem/JAudio/JASBank.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TBasicBank : public TBank {
|
||||
public:
|
||||
TBasicBank();
|
||||
~TBasicBank();
|
||||
void setInstCount(u32);
|
||||
void setInst(int, JASystem::TInst*);
|
||||
TInst* getInst(int) const;
|
||||
u32 getType() const { return 'BSIC'; }
|
||||
|
||||
/* 0x08 */ TInst** mInstTable;
|
||||
/* 0x0C */ u32 mInstCount;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASBASICBANK_H */
|
||||
@@ -0,0 +1,51 @@
|
||||
#ifndef JASBASICINST_H
|
||||
#define JASBASICINST_H
|
||||
|
||||
#include "JSystem/JAudio/JASInst.h"
|
||||
#include "JSystem/JAudio/JASOscillator.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TInstEffect;
|
||||
class TBasicInst : public TInst {
|
||||
public:
|
||||
class TKeymap {
|
||||
public:
|
||||
TKeymap() {
|
||||
field_0x0 = -1;
|
||||
field_0x4 = 0;
|
||||
mVelomap = NULL;
|
||||
}
|
||||
~TKeymap();
|
||||
void setVeloRegionCount(u32);
|
||||
void* getVeloRegion(int);
|
||||
const void* getVeloRegion(int) const;
|
||||
|
||||
/* 0x00 */ int field_0x0;
|
||||
/* 0x04 */ u32 field_0x4;
|
||||
/* 0x08 */ void* mVelomap;
|
||||
};
|
||||
|
||||
TBasicInst();
|
||||
~TBasicInst();
|
||||
bool getParam(int, int, TInstParam*) const;
|
||||
int getKeymapIndex(int) const;
|
||||
void setKeyRegionCount(u32);
|
||||
void setEffectCount(u32);
|
||||
void setEffect(int, TInstEffect*);
|
||||
void setOscCount(u32);
|
||||
void setOsc(int, TOscillator::Osc_*);
|
||||
TKeymap* getKeyRegion(int);
|
||||
u32 getType() const { return 'BSIC'; }
|
||||
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ TInstEffect** mEffect;
|
||||
/* 0x10 */ u32 mEffectCount;
|
||||
/* 0x14 */ TOscillator::Osc_** mOsc;
|
||||
/* 0x18 */ u32 mOscCount;
|
||||
/* 0x1C */ u32 field_0x1c;
|
||||
/* 0x20 */ TKeymap* mKeymap;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASBASICINST_H */
|
||||
@@ -0,0 +1,79 @@
|
||||
#ifndef JASBASICWAVEBANK_H
|
||||
#define JASBASICWAVEBANK_H
|
||||
|
||||
#include "JSystem/JAudio/JASWaveArcLoader.h"
|
||||
#include "JSystem/JAudio/JASWaveBank.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TBasicWaveBank : public TWaveBank {
|
||||
public:
|
||||
class TWaveHandle : public JASystem::TWaveHandle {
|
||||
public:
|
||||
~TWaveHandle() {}
|
||||
const JASystem::TWaveInfo* getWaveInfo() const {
|
||||
return &field_0x4;
|
||||
}
|
||||
const void* getWavePtr() const {
|
||||
JUT_ASSERT(77, mHeap);
|
||||
if (!mHeap->mBase) {
|
||||
return NULL;
|
||||
}
|
||||
return (u8*)mHeap->mBase + field_0x4.field_0x8;
|
||||
}
|
||||
|
||||
/* 0x04 */ JASystem::TWaveInfo field_0x4;
|
||||
/* 0x30 */ Kernel::THeap* mHeap;
|
||||
};
|
||||
|
||||
class TWaveInfo {
|
||||
public:
|
||||
TWaveInfo() {
|
||||
field_0x0.mHeap = NULL;
|
||||
field_0x34 = 0;
|
||||
field_0x38 = NULL;
|
||||
field_0x3c = NULL;
|
||||
}
|
||||
~TWaveInfo();
|
||||
|
||||
/* 0x00 */ TWaveHandle field_0x0;
|
||||
/* 0x34 */ u32 field_0x34;
|
||||
/* 0x38 */ TWaveInfo* field_0x38;
|
||||
/* 0x3C */ TWaveInfo* field_0x3c;
|
||||
};
|
||||
|
||||
class TWaveGroup : public TWaveArc {
|
||||
public:
|
||||
TWaveGroup(TBasicWaveBank*);
|
||||
~TWaveGroup();
|
||||
void setWaveCount(u32);
|
||||
void setWaveInfo(int, u32, const JASystem::TWaveInfo&);
|
||||
void onLoadDone();
|
||||
void onEraseDone();
|
||||
u32 getWaveID(int) const;
|
||||
|
||||
/* 0x78 */ TBasicWaveBank* mBank;
|
||||
/* 0x7C */ TWaveInfo* mCtrlWaveArray;
|
||||
/* 0x80 */ u32 mWaveCount;
|
||||
};
|
||||
|
||||
TBasicWaveBank();
|
||||
~TBasicWaveBank();
|
||||
TWaveGroup* getWaveGroup(int);
|
||||
void setGroupCount(u32);
|
||||
void setWaveTableSize(u32);
|
||||
void incWaveTable(const TWaveGroup*);
|
||||
void decWaveTable(const TWaveGroup*);
|
||||
JASystem::TWaveHandle* getWaveHandle(u32) const;
|
||||
TWaveArc* getWaveArc(int param_1) { return getWaveGroup(param_1); }
|
||||
|
||||
/* 0x04 */ OSMutex mMutex;
|
||||
/* 0x1C */ TWaveInfo** mWaveTable;
|
||||
/* 0x20 */ int mWaveCount;
|
||||
/* 0x24 */ TWaveGroup** mWaveGroupArray;
|
||||
/* 0x28 */ u32 mWaveGroupCount;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASBASICWAVEBANK_H */
|
||||
@@ -37,7 +37,7 @@ namespace JASystem {
|
||||
void setPauseFlagReq(u8);
|
||||
void setPanPower(f32, f32, f32, f32);
|
||||
BOOL checkLogicalChannel();
|
||||
bool play(u32);
|
||||
BOOL play(u32);
|
||||
void stop(u16);
|
||||
void updateJcToDSP();
|
||||
bool forceStopLogicalChannel();
|
||||
@@ -75,7 +75,7 @@ namespace JASystem {
|
||||
/* 0x48 */ u32 field_0x48;
|
||||
/* 0x4C */ short field_0x4c;
|
||||
/* 0x50 */ f32 field_0x50;
|
||||
/* 0x54 */ int field_0x54;
|
||||
/* 0x54 */ f32 field_0x54;
|
||||
/* 0x58 */ f32 field_0x58;
|
||||
/* 0x5C */ f32 field_0x5c;
|
||||
/* 0x60 */ u8 field_0x60[3];
|
||||
|
||||
@@ -127,10 +127,7 @@ namespace JASystem {
|
||||
extern u16 JAS_DSP_PREFIX;
|
||||
extern DSPBuffer* CH_BUF;
|
||||
extern FXBuffer* FX_BUF;
|
||||
extern float sDSPVolume;
|
||||
|
||||
extern u32 DSPADPCM_FILTER[];
|
||||
extern u32 DSPRES_FILTER[];
|
||||
extern f32 sDSPVolume;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -23,8 +23,6 @@ namespace JASystem {
|
||||
extern u16 MAX_AUTOMIXERLEVEL;
|
||||
extern u32 JAS_SYSTEM_OUTPUT_MODE;
|
||||
extern u8 JAS_UPDATE_INTERVAL;
|
||||
|
||||
extern int C5BASE_PITCHTABLE;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef JASDRIVERTABLES_H
|
||||
#define JASDRIVERTABLES_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
namespace Driver {
|
||||
extern f32 C5BASE_PITCHTABLE[];
|
||||
}
|
||||
namespace DSPInterface {
|
||||
extern u16 DSPADPCM_FILTER[];
|
||||
extern u16 DSPRES_FILTER[];
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* JASDRIVERTABLES_H */
|
||||
@@ -19,7 +19,7 @@ public:
|
||||
OSInitThreadQueue(&field_0x68);
|
||||
}
|
||||
~JASTaskThread();
|
||||
bool sendCmdMsg(s32 (*)(void*), void*, u32);
|
||||
BOOL sendCmdMsg(s32 (*)(void*), void*, u32);
|
||||
void* run();
|
||||
void pause(bool);
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace JASystem {
|
||||
namespace Dvd {
|
||||
bool createThread(int, int, u32);
|
||||
void resumeThread();
|
||||
void sendCmdMsg(s32 (*)(void*), void*, u32);
|
||||
BOOL sendCmdMsg(s32 (*)(void*), void*, u32);
|
||||
int checkPassDvdT(u32, u32*, void (*)(u32));
|
||||
u32 checkFile(char*);
|
||||
void unpauseDvdT();
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace JASystem {
|
||||
};
|
||||
|
||||
THeap(TDisposer*);
|
||||
~THeap() {}
|
||||
void initRootHeap(void*, u32, Type);
|
||||
bool alloc(THeap*, u32);
|
||||
bool free();
|
||||
@@ -42,9 +43,9 @@ namespace JASystem {
|
||||
public:
|
||||
TSolidHeap();
|
||||
~TSolidHeap() {}
|
||||
int alloc(long param_1);
|
||||
void* alloc(s32 param_1);
|
||||
void freeAll();
|
||||
void init(u8* param_1, long param_2);
|
||||
void init(u8* param_1, s32 param_2);
|
||||
int getRemain();
|
||||
|
||||
/* 0x00 */ u32 field_0x0;
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
#ifndef JASINST_H
|
||||
#define JASINST_H
|
||||
|
||||
#include "JSystem/JAudio/JASOscillator.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
struct TInstParam {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x04 */ int field_0x4;
|
||||
/* 0x08 */ TOscillator::Osc_** field_0x8;
|
||||
/* 0x0C */ int field_0xc;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ u8 field_0x24[0x2C - 0x24];
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ u8 field_0x38;
|
||||
/* 0x3A */ short field_0x3a;
|
||||
/* 0x3C */ int field_0x3c;
|
||||
};
|
||||
class TInst {
|
||||
public:
|
||||
TInst() {}
|
||||
virtual ~TInst() {}
|
||||
virtual bool getParam(int, int, TInstParam*) const = 0;
|
||||
virtual u32 getType() const = 0;
|
||||
virtual int getKeymapIndex(int) const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASINST_H */
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef JASINSTEFFECT_H
|
||||
#define JASINSTEFFECT_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TInstEffect {
|
||||
public:
|
||||
TInstEffect() { mTarget = 0; }
|
||||
virtual f32 getY(int, int) const = 0;
|
||||
void setTarget(int);
|
||||
|
||||
/* 0x04 */ u8 mTarget;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASINSTEFFECT_H */
|
||||
@@ -9,8 +9,8 @@ namespace JASystem {
|
||||
struct Osc_ {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ u32 table;
|
||||
/* 0x0C */ int rel_table;
|
||||
/* 0x08 */ void* table;
|
||||
/* 0x0C */ void* rel_table;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#ifndef JASPLAYER_H
|
||||
#define JASPLAYER_H
|
||||
|
||||
#include "JSystem/JAudio/JASOscillator.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
namespace Player {
|
||||
s16 extend8to16(u8 param_1);
|
||||
f32 pitchToCent(f32 param_1, f32 param_2);
|
||||
s32 getRandomS32();
|
||||
|
||||
extern const f32 s_key_table[];
|
||||
extern const TOscillator::Osc_ sAdsrDef;
|
||||
extern const TOscillator::Osc_ sEnvelopeDef;
|
||||
extern const TOscillator::Osc_ sVibratoDef;
|
||||
extern const TOscillator::Osc_ sTremoroDef;
|
||||
extern s16 CUTOFF_TO_IIR_TABLE[];
|
||||
extern s16 sAdsTable[];
|
||||
extern s16 sRelTable[];
|
||||
extern s16 sVibTable[];
|
||||
extern s16 sTreTable[];
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* JASPLAYER_H */
|
||||
@@ -0,0 +1,33 @@
|
||||
#ifndef JASREGISTERPARAM_H
|
||||
#define JASREGISTERPARAM_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TRegisterParam {
|
||||
public:
|
||||
TRegisterParam();
|
||||
void init();
|
||||
void inherit(const TRegisterParam&);
|
||||
u8 getBankNumber() const;
|
||||
u8 getProgramNumber() const;
|
||||
|
||||
/* 0x00 */ short field_0x0;
|
||||
/* 0x02 */ short field_0x2;
|
||||
/* 0x04 */ short field_0x4;
|
||||
/* 0x06 */ short field_0x6;
|
||||
/* 0x08 */ short field_0x8;
|
||||
/* 0x0A */ short field_0xa;
|
||||
/* 0x0C */ u16 field_0xc;
|
||||
/* 0x0E */ u16 field_0xe;
|
||||
/* 0x10 */ u16 field_0x10[5];
|
||||
/* 0x1A */ u16 field_0x1a;
|
||||
/* 0x1C */ int field_0x1c;
|
||||
/* 0x20 */ int field_0x20;
|
||||
/* 0x24 */ int field_0x24;
|
||||
/* 0x28 */ int field_0x28;
|
||||
/* 0x2C */ int field_0x2c;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASREGISTERPARAM_H */
|
||||
@@ -0,0 +1,34 @@
|
||||
#ifndef JASSEQCTRL_H
|
||||
#define JASSEQCTRL_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TTrack;
|
||||
|
||||
class TSeqCtrl {
|
||||
public:
|
||||
void init();
|
||||
void start(void*, u32);
|
||||
int loopEnd();
|
||||
bool waitCountDown();
|
||||
bool callIntr(void*);
|
||||
bool retIntr();
|
||||
u32 get16(u32) const;
|
||||
u32 get24(u32) const;
|
||||
u32 get32(u32) const;
|
||||
u32 read16();
|
||||
u32 read24();
|
||||
|
||||
/* 0x00 */ u8* field_0x0;
|
||||
/* 0x04 */ u8* field_0x4;
|
||||
/* 0x08 */ int field_0x8;
|
||||
/* 0x0C */ u32 field_0xc;
|
||||
/* 0x10 */ u8* field_0x10[8];
|
||||
/* 0x30 */ u16 field_0x30[8];
|
||||
/* 0x40 */ int field_0x40;
|
||||
/* 0x44 */ u8* field_0x44;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASSEQCTRL_H */
|
||||
@@ -0,0 +1,39 @@
|
||||
#ifndef JASSIMPLEWAVEBANK_H
|
||||
#define JASSIMPLEWAVEBANK_H
|
||||
|
||||
#include "JSystem/JAudio/JASWaveArcLoader.h"
|
||||
#include "JSystem/JAudio/JASWaveBank.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TSimpleWaveBank : public TWaveBank, TWaveArc {
|
||||
public:
|
||||
class TWaveHandle : public JASystem::TWaveHandle {
|
||||
public:
|
||||
TWaveHandle() { mHeap = NULL; }
|
||||
~TWaveHandle();
|
||||
const TWaveInfo* getWaveInfo() const { return &field_0x4; };
|
||||
const void* getWavePtr() const {
|
||||
if (mHeap->mBase == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
return (u8*)mHeap->mBase + field_0x4.field_0x8;
|
||||
}
|
||||
|
||||
/* 0x04 */ TWaveInfo field_0x4;
|
||||
/* 0x30 */ Kernel::THeap* mHeap;
|
||||
};
|
||||
|
||||
TSimpleWaveBank();
|
||||
~TSimpleWaveBank();
|
||||
void setWaveTableSize(u32);
|
||||
TWaveHandle* getWaveHandle(u32) const;
|
||||
void setWaveInfo(u32, const JASystem::TWaveInfo&);
|
||||
TWaveArc* getWaveArc(int);
|
||||
|
||||
/* 0x7C */ TWaveHandle* mWaveTable;
|
||||
/* 0x80 */ u32 mWaveCount;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASSIMPLEWAVEBANK_H */
|
||||
@@ -14,7 +14,7 @@ namespace JASystem {
|
||||
void sysDramSetup(JKRSolidHeap*);
|
||||
void* allocFromSysDram(u32);
|
||||
void sysAramSetup(u32);
|
||||
void allocFromSysAramFull(u32*);
|
||||
void* allocFromSysAramFull(u32*);
|
||||
|
||||
extern TSolidHeap audioAramHeap;
|
||||
extern u32 audioDramSize;
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
#ifndef JASWSPARSER_H
|
||||
#define JASWSPARSER_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TBasicWaveBank;
|
||||
class TSimpleWaveBank;
|
||||
namespace WSParser {
|
||||
struct TCtrl;
|
||||
struct TCtrlGroup;
|
||||
struct TCtrlScene;
|
||||
struct TCtrlWave;
|
||||
struct TWave;
|
||||
struct TWaveArchive;
|
||||
struct TWaveArchiveBank;
|
||||
|
||||
u32 getGroupCount(void*);
|
||||
TBasicWaveBank* createBasicWaveBank(void*);
|
||||
TSimpleWaveBank* createSimpleWaveBank(void*);
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* JASWSPARSER_H */
|
||||
@@ -0,0 +1,43 @@
|
||||
#ifndef JASWAVEARCLOADER_H
|
||||
#define JASWAVEARCLOADER_H
|
||||
|
||||
#include "JSystem/JAudio/JASHeapCtrl.h"
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
|
||||
namespace JASystem {
|
||||
namespace WaveArcLoader {
|
||||
bool init();
|
||||
Kernel::THeap* getRootHeap();
|
||||
void setCurrentDir(const char*);
|
||||
char* getCurrentDir();
|
||||
|
||||
extern Kernel::THeap sAramHeap;
|
||||
extern char sCurrentDir[];
|
||||
};
|
||||
|
||||
class TWaveArc : public Kernel::TDisposer {
|
||||
public:
|
||||
TWaveArc();
|
||||
virtual void onLoadDone() {}
|
||||
virtual void onEraseDone() {}
|
||||
bool loadSetup(u32);
|
||||
bool eraseSetup();
|
||||
static s32 loadToAramCallback(void*);
|
||||
bool sendLoadCmd();
|
||||
bool load(Kernel::THeap*);
|
||||
bool erase();
|
||||
void onDispose();
|
||||
void setEntryNum(s32);
|
||||
void setFileName(const char*);
|
||||
|
||||
/* 0x04 */ Kernel::THeap field_0x4;
|
||||
/* 0x4C */ int field_0x4c;
|
||||
/* 0x50 */ OSMutex mMutex;
|
||||
/* 0x68 */ int field_0x68;
|
||||
/* 0x6C */ int field_0x6c;
|
||||
/* 0x70 */ int field_0x70;
|
||||
/* 0x74 */ int field_0x74;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASWAVEARCLOADER_H */
|
||||
@@ -0,0 +1,47 @@
|
||||
#ifndef JASWAVEBANK_H
|
||||
#define JASWAVEBANK_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class JKRHeap;
|
||||
|
||||
namespace JASystem {
|
||||
class TWaveArc;
|
||||
|
||||
struct TWaveInfo {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x02 */ u8 field_0x2;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ int field_0x8;
|
||||
/* 0x0C */ int field_0xc;
|
||||
/* 0x10 */ int field_0x10;
|
||||
/* 0x14 */ int field_0x14;
|
||||
/* 0x18 */ int field_0x18;
|
||||
/* 0x1C */ int field_0x1c;
|
||||
/* 0x20 */ s16 field_0x20;
|
||||
/* 0x22 */ s16 field_0x22;
|
||||
/* 0x24 */ void* field_0x24;
|
||||
/* 0x28 */ int field_0x28;
|
||||
};
|
||||
|
||||
class TWaveHandle {
|
||||
public:
|
||||
virtual ~TWaveHandle() {}
|
||||
virtual const TWaveInfo* getWaveInfo() const = 0;
|
||||
virtual const void* getWavePtr() const = 0;
|
||||
};
|
||||
|
||||
class TWaveBank {
|
||||
public:
|
||||
TWaveBank() {}
|
||||
virtual ~TWaveBank() {}
|
||||
virtual TWaveHandle* getWaveHandle(u32) const = 0;
|
||||
virtual TWaveArc* getWaveArc(int) = 0;
|
||||
static JKRHeap* getCurrentHeap();
|
||||
|
||||
static JKRHeap* sCurrentHeap;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASWAVEBANK_H */
|
||||
@@ -0,0 +1,26 @@
|
||||
#ifndef JASWAVEBANKMGR_H
|
||||
#define JASWAVEBANKMGR_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TWaveArc;
|
||||
class TWaveBank;
|
||||
namespace Kernel {
|
||||
class THeap;
|
||||
}
|
||||
namespace WaveBankMgr {
|
||||
void init(int);
|
||||
TWaveBank* getWaveBank(int);
|
||||
bool registWaveBank(int, TWaveBank*);
|
||||
bool registWaveBankWS(int, void*);
|
||||
TWaveArc* getWaveArc(int, int);
|
||||
bool loadWave(int, int, Kernel::THeap*);
|
||||
bool eraseWave(int, int);
|
||||
|
||||
extern int sTableSize;
|
||||
extern TWaveBank** sWaveBank;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* JASWAVEBANKMGR_H */
|
||||
@@ -31,11 +31,11 @@ public:
|
||||
|
||||
protected:
|
||||
void resume() { OSResumeThread(mThreadRecord); }
|
||||
void sendMessage(OSMessage message) {
|
||||
OSSendMessage(&mMessageQueue, message, OS_MESSAGE_NOBLOCK);
|
||||
BOOL sendMessage(OSMessage message) {
|
||||
return OSSendMessage(&mMessageQueue, message, OS_MESSAGE_NOBLOCK);
|
||||
}
|
||||
void sendMessageBlock(OSMessage message) {
|
||||
OSSendMessage(&mMessageQueue, message, OS_MESSAGE_BLOCK);
|
||||
BOOL sendMessageBlock(OSMessage message) {
|
||||
return OSSendMessage(&mMessageQueue, message, OS_MESSAGE_BLOCK);
|
||||
}
|
||||
OSMessage waitMessage() {
|
||||
OSMessage message;
|
||||
|
||||
@@ -3,61 +3,154 @@
|
||||
// Translation Unit: JASBankMgr.cpp
|
||||
//
|
||||
|
||||
#include "JASBankMgr.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASBankMgr.h"
|
||||
#include "JSystem/JAudio/JASBNKParser.h"
|
||||
#include "JSystem/JAudio/JASBasicBank.h"
|
||||
#include "JSystem/JAudio/JASCalc.h"
|
||||
#include "JSystem/JAudio/JASChannel.h"
|
||||
#include "JSystem/JAudio/JASChannelMgr.h"
|
||||
#include "JSystem/JAudio/JASDriverTables.h"
|
||||
#include "JSystem/JAudio/JASRate.h"
|
||||
#include "JSystem/JAudio/JASSystemHeap.h"
|
||||
#include "JSystem/JAudio/JASWaveBankMgr.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
s32 JASystem::BankMgr::sTableSize;
|
||||
JASystem::TBank** JASystem::BankMgr::sBankArray;
|
||||
u16* JASystem::BankMgr::sVir2PhyTable;
|
||||
|
||||
/* 80288594-80288698 .text init__Q28JASystem7BankMgrFi */
|
||||
void JASystem::BankMgr::init(int) {
|
||||
/* Nonmatching */
|
||||
void JASystem::BankMgr::init(int param_1) {
|
||||
u32 r31 = param_1 * 4;
|
||||
sBankArray = (TBank**)new (JASDram, 0) u8[r31];
|
||||
JUT_ASSERT(69, sBankArray != 0);
|
||||
sVir2PhyTable = new (JASDram, 0) u16[param_1];
|
||||
JUT_ASSERT(72, sVir2PhyTable != 0);
|
||||
Calc::bzero(sBankArray, r31);
|
||||
for (int i = 0; i < param_1; i++) {
|
||||
sVir2PhyTable[i] = 0xffffffff;
|
||||
}
|
||||
sTableSize = param_1;
|
||||
}
|
||||
|
||||
/* 80288698-8028874C .text registBank__Q28JASystem7BankMgrFiPQ28JASystem5TBank */
|
||||
void JASystem::BankMgr::registBank(int, JASystem::TBank*) {
|
||||
/* Nonmatching */
|
||||
bool JASystem::BankMgr::registBank(int banknum, TBank* bank) {
|
||||
JUT_ASSERT(86, banknum >= 0);
|
||||
JUT_ASSERT(87, banknum < sTableSize);
|
||||
sBankArray[banknum] = bank;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8028874C-802887AC .text registBankBNK__Q28JASystem7BankMgrFiPv */
|
||||
void JASystem::BankMgr::registBankBNK(int, void*) {
|
||||
/* Nonmatching */
|
||||
bool JASystem::BankMgr::registBankBNK(int banknum, void* param_2) {
|
||||
setVir2PhyTable(*((u32*)(param_2) + 2), banknum);
|
||||
TBasicBank* bank = BNKParser::createBasicBank(param_2);
|
||||
if (bank == NULL) {
|
||||
return false;
|
||||
}
|
||||
return registBank(banknum, bank);
|
||||
}
|
||||
|
||||
/* 802887AC-802887E0 .text getBank__Q28JASystem7BankMgrFi */
|
||||
void JASystem::BankMgr::getBank(int) {
|
||||
/* Nonmatching */
|
||||
JASystem::TBank* JASystem::BankMgr::getBank(int param_1) {
|
||||
if (param_1 < 0) {
|
||||
return NULL;
|
||||
}
|
||||
if (param_1 >= sTableSize) {
|
||||
return NULL;
|
||||
}
|
||||
return sBankArray[param_1];
|
||||
}
|
||||
|
||||
/* 802887E0-802887F0 .text getPhysicalNumber__Q28JASystem7BankMgrFUs */
|
||||
void JASystem::BankMgr::getPhysicalNumber(unsigned short) {
|
||||
/* Nonmatching */
|
||||
u16 JASystem::BankMgr::getPhysicalNumber(u16 param_1) {
|
||||
return sVir2PhyTable[param_1];
|
||||
}
|
||||
|
||||
/* 802887F0-802888A0 .text setVir2PhyTable__Q28JASystem7BankMgrFUli */
|
||||
void JASystem::BankMgr::setVir2PhyTable(unsigned long, int) {
|
||||
/* Nonmatching */
|
||||
void JASystem::BankMgr::setVir2PhyTable(u32 vir_id, int banknum) {
|
||||
if (vir_id == 0xFFFF) {
|
||||
return;
|
||||
}
|
||||
JUT_ASSERT(127, vir_id < sTableSize);
|
||||
if (sVir2PhyTable[vir_id] != 0xFFFF) {
|
||||
OSReport("Warning : Duplicated Bank vir_id ID %d (%d,%d)\n", vir_id, sVir2PhyTable[vir_id], banknum);
|
||||
}
|
||||
sVir2PhyTable[vir_id] = banknum;
|
||||
}
|
||||
|
||||
/* 802888A0-80288904 .text assignWaveBank__Q28JASystem7BankMgrFii */
|
||||
void JASystem::BankMgr::assignWaveBank(int, int) {
|
||||
/* Nonmatching */
|
||||
bool JASystem::BankMgr::assignWaveBank(int param_1, int param_2) {
|
||||
TBank* bank = getBank(param_1);
|
||||
if (!bank) {
|
||||
return false;
|
||||
}
|
||||
TWaveBank* waveBank = WaveBankMgr::getWaveBank(param_2);
|
||||
if (!waveBank) {
|
||||
return false;
|
||||
}
|
||||
bank->field_0x4 = waveBank;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80288904-8028892C .text clamp01__Q28JASystem7BankMgrFf */
|
||||
void JASystem::BankMgr::clamp01(float) {
|
||||
/* Nonmatching */
|
||||
f32 JASystem::BankMgr::clamp01(f32 param_1) {
|
||||
if (param_1 < 0.0f) {
|
||||
return 0.0f;
|
||||
}
|
||||
if (param_1 > 1.0f) {
|
||||
return 1.0f;
|
||||
}
|
||||
return param_1;
|
||||
}
|
||||
|
||||
/* 8028892C-80288CE8 .text noteOn__Q28JASystem7BankMgrFPQ28JASystem11TChannelMgriiUcUcUl */
|
||||
void JASystem::BankMgr::noteOn(JASystem::TChannelMgr*, int, int, unsigned char, unsigned char, unsigned long) {
|
||||
JASystem::TChannel* JASystem::BankMgr::noteOn(TChannelMgr*, int, int, u8, u8, u32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80288CE8-80288E44 .text noteOnOsc__Q28JASystem7BankMgrFPQ28JASystem11TChannelMgriUcUcUl */
|
||||
void JASystem::BankMgr::noteOnOsc(JASystem::TChannelMgr*, int, unsigned char, unsigned char, unsigned long) {
|
||||
JASystem::TChannel* JASystem::BankMgr::noteOnOsc(TChannelMgr* param_1, int param_2, u8 param_3, u8 param_4, u32 param_5) {
|
||||
/* Nonmatching */
|
||||
TChannel* channel = param_1->getLogicalChannel(0);
|
||||
if (!channel) {
|
||||
return NULL;
|
||||
}
|
||||
channel->field_0x14 = param_2;
|
||||
channel->field_0xc = 2;
|
||||
channel->field_0x0 = param_4;
|
||||
channel->field_0x1 = param_3;
|
||||
channel->field_0x50 = 16736.016f / Kernel::gDacRate;
|
||||
channel->field_0x58 = channel->field_0x50;
|
||||
s32 var1 = param_3;
|
||||
if (var1 < 0) {
|
||||
var1 = 0;
|
||||
}
|
||||
if (var1 > 127) {
|
||||
var1 = 127;
|
||||
}
|
||||
channel->field_0x58 *= Driver::C5BASE_PITCHTABLE[var1];
|
||||
channel->field_0x54 = 1.0f;
|
||||
channel->field_0x5c = channel->field_0x0 / 127.0f;
|
||||
channel->field_0x5c = channel->field_0x54 * (channel->field_0x5c * channel->field_0x5c);
|
||||
channel->field_0x70.field_0x0 = 0.5f;
|
||||
channel->field_0x7c.field_0x0 = 0.0f;
|
||||
channel->field_0x88.field_0x0 = 0.0f;
|
||||
channel->field_0x70.field_0x4 = 0.5f;
|
||||
channel->field_0x7c.field_0x4 = 0.0f;
|
||||
channel->field_0x88.field_0x4 = 0.0f;
|
||||
channel->field_0x94 = 1.0f;
|
||||
channel->field_0x98 = 1.0f;
|
||||
channel->setOscInit(0, &OSC_ENV);
|
||||
channel->field_0xcc = 0;
|
||||
if (!channel->play(param_5)) {
|
||||
return NULL;
|
||||
}
|
||||
return channel;
|
||||
}
|
||||
|
||||
/* 80288E44-80288F08 .text gateOn__Q28JASystem7BankMgrFPQ28JASystem8TChannelUcUcUl */
|
||||
void JASystem::BankMgr::gateOn(JASystem::TChannel*, unsigned char, unsigned char, unsigned long) {
|
||||
void JASystem::BankMgr::gateOn(JASystem::TChannel*, u8, u8, u32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -3,41 +3,43 @@
|
||||
// Translation Unit: JASBasicBank.cpp
|
||||
//
|
||||
|
||||
#include "JASBasicBank.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASBasicBank.h"
|
||||
#include "JSystem/JAudio/JASCalc.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
/* 80284570-8028459C .text __ct__Q28JASystem10TBasicBankFv */
|
||||
JASystem::TBasicBank::TBasicBank() {
|
||||
/* Nonmatching */
|
||||
mInstTable = NULL;
|
||||
mInstCount = 0;
|
||||
}
|
||||
|
||||
/* 8028459C-80284610 .text __dt__Q28JASystem10TBasicBankFv */
|
||||
JASystem::TBasicBank::~TBasicBank() {
|
||||
/* Nonmatching */
|
||||
delete[] mInstTable;
|
||||
}
|
||||
|
||||
/* 80284610-802846B0 .text setInstCount__Q28JASystem10TBasicBankFUl */
|
||||
void JASystem::TBasicBank::setInstCount(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicBank::setInstCount(u32 param_1) {
|
||||
delete[] mInstTable;
|
||||
mInstTable = new (getCurrentHeap(), 0) TInst*[param_1];
|
||||
JUT_ASSERT(36, mInstTable != 0);
|
||||
Calc::bzero(mInstTable, param_1 * 4);
|
||||
mInstCount = param_1;
|
||||
}
|
||||
|
||||
/* 802846B0-80284768 .text setInst__Q28JASystem10TBasicBankFiPQ28JASystem5TInst */
|
||||
void JASystem::TBasicBank::setInst(int, JASystem::TInst*) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicBank::setInst(int prg_no, JASystem::TInst* param_2) {
|
||||
JUT_ASSERT(45, prg_no < mInstCount);
|
||||
JUT_ASSERT(46, prg_no >= 0);
|
||||
mInstTable[prg_no] = param_2;
|
||||
}
|
||||
|
||||
/* 80284768-802847F0 .text getInst__Q28JASystem10TBasicBankCFi */
|
||||
void JASystem::TBasicBank::getInst(int) const {
|
||||
/* Nonmatching */
|
||||
JASystem::TInst* JASystem::TBasicBank::getInst(int prg_no) const {
|
||||
JUT_ASSERT(53, prg_no >= 0);
|
||||
if (prg_no >= mInstCount) {
|
||||
return 0;
|
||||
}
|
||||
return mInstTable[prg_no];
|
||||
}
|
||||
|
||||
/* 802847F0-80284838 .text __dt__Q28JASystem5TBankFv */
|
||||
JASystem::TBank::~TBank() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80284838-80284844 .text getType__Q28JASystem10TBasicBankCFv */
|
||||
void JASystem::TBasicBank::getType() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -3,91 +3,174 @@
|
||||
// Translation Unit: JASBasicInst.cpp
|
||||
//
|
||||
|
||||
#include "JASBasicInst.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASBasicInst.h"
|
||||
#include "JSystem/JAudio/JASBank.h"
|
||||
#include "JSystem/JAudio/JASCalc.h"
|
||||
#include "JSystem/JAudio/JASInstEffect.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
/* 80284844-80284888 .text __ct__Q28JASystem10TBasicInstFv */
|
||||
JASystem::TBasicInst::TBasicInst() {
|
||||
/* Nonmatching */
|
||||
field_0x4 = 1.0f;
|
||||
field_0x8 = 1.0f;
|
||||
mEffect = NULL;
|
||||
mEffectCount = 0;
|
||||
mOsc = NULL;
|
||||
mOscCount = 0;
|
||||
field_0x1c = 0;
|
||||
mKeymap = NULL;
|
||||
}
|
||||
|
||||
/* 80284888-80284914 .text __dt__Q28JASystem10TBasicInstFv */
|
||||
JASystem::TBasicInst::~TBasicInst() {
|
||||
/* Nonmatching */
|
||||
delete[] mKeymap;
|
||||
delete[] mEffect;
|
||||
delete[] mOsc;
|
||||
}
|
||||
|
||||
/* 80284914-80284B4C .text getParam__Q28JASystem10TBasicInstCFiiPQ28JASystem10TInstParam */
|
||||
void JASystem::TBasicInst::getParam(int, int, JASystem::TInstParam*) const {
|
||||
bool JASystem::TBasicInst::getParam(int param_1, int param_2, TInstParam* param_3) const {
|
||||
/* Nonmatching */
|
||||
param_3->field_0x0 = 0;
|
||||
param_3->field_0x38 = 0;
|
||||
param_3->field_0x8 = mOsc;
|
||||
param_3->field_0xc = mOscCount;
|
||||
param_3->field_0x10 *= field_0x4;
|
||||
param_3->field_0x14 *= field_0x8;
|
||||
for (int i = 0; i < mEffectCount; i++) {
|
||||
TInstEffect* effect = mEffect[i];
|
||||
if (!effect) {
|
||||
continue;
|
||||
}
|
||||
f32 y = effect->getY(param_1, param_2);
|
||||
switch (effect->mTarget) {
|
||||
case 0:
|
||||
param_3->field_0x18 *= y;
|
||||
break;
|
||||
case 1:
|
||||
param_3->field_0x1c *= y;
|
||||
break;
|
||||
case 2:
|
||||
param_3->field_0x2c += y - 0.5;
|
||||
break;
|
||||
case 3:
|
||||
param_3->field_0x30 += y;
|
||||
break;
|
||||
case 4:
|
||||
param_3->field_0x34 += y;
|
||||
break;
|
||||
default:
|
||||
JUT_ASSERT(93, 0);
|
||||
}
|
||||
}
|
||||
TKeymap* keymap = NULL;
|
||||
for (int i = 0; i < field_0x1c; i++) {
|
||||
keymap = &mKeymap[i];
|
||||
if (param_1 <= keymap->field_0x0) {
|
||||
param_3->field_0x3c = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!keymap) {
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < keymap->field_0x4; i++) {
|
||||
void* region = keymap->getVeloRegion(i);
|
||||
// TODO
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80284B4C-80284B54 .text getKeymapIndex__Q28JASystem10TBasicInstCFi */
|
||||
void JASystem::TBasicInst::getKeymapIndex(int) const {
|
||||
/* Nonmatching */
|
||||
int JASystem::TBasicInst::getKeymapIndex(int param_1) const {
|
||||
return param_1;
|
||||
}
|
||||
|
||||
/* 80284B54-80284C10 .text setKeyRegionCount__Q28JASystem10TBasicInstFUl */
|
||||
void JASystem::TBasicInst::setKeyRegionCount(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicInst::setKeyRegionCount(u32 param_1) {
|
||||
delete[] mKeymap;
|
||||
mKeymap = new (TBank::getCurrentHeap(), 0) TKeymap[param_1];
|
||||
JUT_ASSERT(140, mKeymap != 0);
|
||||
field_0x1c = param_1;
|
||||
}
|
||||
|
||||
/* 80284C10-80284CC4 .text setEffectCount__Q28JASystem10TBasicInstFUl */
|
||||
void JASystem::TBasicInst::setEffectCount(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicInst::setEffectCount(u32 param_1) {
|
||||
delete[] mEffect;
|
||||
mEffectCount = param_1;
|
||||
if (param_1 == 0) {
|
||||
mEffect = NULL;
|
||||
return;
|
||||
}
|
||||
mEffect = new (TBank::getCurrentHeap(), 0) TInstEffect*[param_1];
|
||||
JUT_ASSERT(157, mEffect != 0);
|
||||
Calc::bzero(mEffect, param_1 * 4);
|
||||
}
|
||||
|
||||
/* 80284CC4-80284D7C .text setEffect__Q28JASystem10TBasicInstFiPQ28JASystem11TInstEffect */
|
||||
void JASystem::TBasicInst::setEffect(int, JASystem::TInstEffect*) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicInst::setEffect(int index, TInstEffect* effect) {
|
||||
JUT_ASSERT(164, index < mEffectCount);
|
||||
JUT_ASSERT(165, index >= 0);
|
||||
mEffect[index] = effect;
|
||||
}
|
||||
|
||||
/* 80284D7C-80284E30 .text setOscCount__Q28JASystem10TBasicInstFUl */
|
||||
void JASystem::TBasicInst::setOscCount(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicInst::setOscCount(u32 param_1) {
|
||||
delete[] mOsc;
|
||||
mOscCount = param_1;
|
||||
if (param_1 == 0) {
|
||||
mOsc = NULL;
|
||||
return;
|
||||
}
|
||||
mOsc = new (TBank::getCurrentHeap(), 0) TOscillator::Osc_*[param_1];
|
||||
JUT_ASSERT(193, mOsc != 0);
|
||||
Calc::bzero(mOsc, param_1 * 4);
|
||||
}
|
||||
|
||||
/* 80284E30-80284EE8 .text setOsc__Q28JASystem10TBasicInstFiPQ38JASystem11TOscillator4Osc_ */
|
||||
void JASystem::TBasicInst::setOsc(int, JASystem::TOscillator::Osc_*) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicInst::setOsc(int index, TOscillator::Osc_* osc) {
|
||||
JUT_ASSERT(199, index < mOscCount);
|
||||
JUT_ASSERT(200, index >= 0);
|
||||
mOsc[index] = osc;
|
||||
}
|
||||
|
||||
/* 80284EE8-80284F70 .text getKeyRegion__Q28JASystem10TBasicInstFi */
|
||||
void JASystem::TBasicInst::getKeyRegion(int) {
|
||||
/* Nonmatching */
|
||||
JASystem::TBasicInst::TKeymap* JASystem::TBasicInst::getKeyRegion(int index) {
|
||||
JUT_ASSERT(217, index >= 0);
|
||||
if (index >= field_0x1c) {
|
||||
return NULL;
|
||||
}
|
||||
return &mKeymap[index];
|
||||
}
|
||||
|
||||
/* 80284F70-80284FC4 .text __dt__Q38JASystem10TBasicInst7TKeymapFv */
|
||||
JASystem::TBasicInst::TKeymap::~TKeymap() {
|
||||
/* Nonmatching */
|
||||
delete[] mVelomap;
|
||||
}
|
||||
|
||||
/* 80284FC4-80285058 .text setVeloRegionCount__Q38JASystem10TBasicInst7TKeymapFUl */
|
||||
void JASystem::TBasicInst::TKeymap::setVeloRegionCount(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicInst::TKeymap::setVeloRegionCount(u32 param_1) {
|
||||
delete[] mVelomap;
|
||||
mVelomap = new (TBank::getCurrentHeap(), 0) u8[param_1 * 16];
|
||||
JUT_ASSERT(244, mVelomap != 0);
|
||||
field_0x4 = param_1;
|
||||
}
|
||||
|
||||
/* 80285058-802850E0 .text getVeloRegion__Q38JASystem10TBasicInst7TKeymapFi */
|
||||
void JASystem::TBasicInst::TKeymap::getVeloRegion(int) {
|
||||
/* Nonmatching */
|
||||
void* JASystem::TBasicInst::TKeymap::getVeloRegion(int index) {
|
||||
JUT_ASSERT(252, index >= 0);
|
||||
if (index >= field_0x4) {
|
||||
return NULL;
|
||||
}
|
||||
return (u8*)mVelomap + index * 16;
|
||||
}
|
||||
|
||||
/* 802850E0-80285168 .text getVeloRegion__Q38JASystem10TBasicInst7TKeymapCFi */
|
||||
void JASystem::TBasicInst::TKeymap::getVeloRegion(int) const {
|
||||
/* Nonmatching */
|
||||
const void* JASystem::TBasicInst::TKeymap::getVeloRegion(int index) const {
|
||||
JUT_ASSERT(261, index >= 0);
|
||||
if (index >= field_0x4) {
|
||||
return NULL;
|
||||
}
|
||||
return (u8*)mVelomap + index * 16;
|
||||
}
|
||||
|
||||
/* 80285168-802851B0 .text __dt__Q28JASystem5TInstFv */
|
||||
JASystem::TInst::~TInst() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 802851B0-802851C8 .text __ct__Q38JASystem10TBasicInst7TKeymapFv */
|
||||
JASystem::TBasicInst::TKeymap::TKeymap() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 802851C8-802851D4 .text getType__Q28JASystem10TBasicInstCFv */
|
||||
void JASystem::TBasicInst::getType() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -3,121 +3,144 @@
|
||||
// Translation Unit: JASBasicWaveBank.cpp
|
||||
//
|
||||
|
||||
#include "JASBasicWaveBank.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASBasicWaveBank.h"
|
||||
#include "JSystem/JAudio/JASCalc.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
/* 80285968-802859C8 .text __ct__Q28JASystem14TBasicWaveBankFv */
|
||||
JASystem::TBasicWaveBank::TBasicWaveBank() {
|
||||
/* Nonmatching */
|
||||
mWaveTable = NULL;
|
||||
mWaveCount = 0;
|
||||
mWaveGroupArray = NULL;
|
||||
mWaveGroupCount = 0;
|
||||
OSInitMutex(&mMutex);
|
||||
}
|
||||
|
||||
/* 802859C8-80285A74 .text __dt__Q28JASystem14TBasicWaveBankFv */
|
||||
JASystem::TBasicWaveBank::~TBasicWaveBank() {
|
||||
/* Nonmatching */
|
||||
delete[] mWaveTable;
|
||||
for (int i = 0; i < mWaveGroupCount; i++) {
|
||||
delete mWaveGroupArray[i];
|
||||
}
|
||||
delete[] mWaveGroupArray;
|
||||
}
|
||||
|
||||
/* 80285A74-80285AFC .text getWaveGroup__Q28JASystem14TBasicWaveBankFi */
|
||||
void JASystem::TBasicWaveBank::getWaveGroup(int) {
|
||||
/* Nonmatching */
|
||||
JASystem::TBasicWaveBank::TWaveGroup* JASystem::TBasicWaveBank::getWaveGroup(int group_no) {
|
||||
JUT_ASSERT(41, group_no >= 0);
|
||||
if (group_no >= mWaveGroupCount) {
|
||||
return NULL;
|
||||
}
|
||||
return mWaveGroupArray[group_no];
|
||||
}
|
||||
|
||||
/* 80285AFC-80285C10 .text setGroupCount__Q28JASystem14TBasicWaveBankFUl */
|
||||
void JASystem::TBasicWaveBank::setGroupCount(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicWaveBank::setGroupCount(u32 param_1) {
|
||||
for (int i = 0; i < mWaveGroupCount; i++) {
|
||||
delete mWaveGroupArray[i];
|
||||
}
|
||||
delete[] mWaveGroupArray;
|
||||
mWaveGroupCount = param_1;
|
||||
mWaveGroupArray = new (getCurrentHeap(), 0) TWaveGroup*[param_1];
|
||||
JUT_ASSERT(58, mWaveGroupArray != 0);
|
||||
for (int i = 0; i < mWaveGroupCount; i++) {
|
||||
mWaveGroupArray[i] = new (getCurrentHeap(), 0) TWaveGroup(this);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80285C10-80285CB0 .text setWaveTableSize__Q28JASystem14TBasicWaveBankFUl */
|
||||
void JASystem::TBasicWaveBank::setWaveTableSize(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicWaveBank::setWaveTableSize(u32 param_1) {
|
||||
delete[] mWaveTable;
|
||||
mWaveTable = new (getCurrentHeap(), 0) TWaveInfo*[param_1];
|
||||
JUT_ASSERT(70, mWaveTable != 0);
|
||||
Calc::bzero(mWaveTable, param_1 * 4);
|
||||
mWaveCount = param_1;
|
||||
}
|
||||
|
||||
/* 80285CB0-80285D54 .text incWaveTable__Q28JASystem14TBasicWaveBankFPCQ38JASystem14TBasicWaveBank10TWaveGroup */
|
||||
void JASystem::TBasicWaveBank::incWaveTable(const JASystem::TBasicWaveBank::TWaveGroup*) {
|
||||
void JASystem::TBasicWaveBank::incWaveTable(const TWaveGroup* param_1) {
|
||||
/* Nonmatching */
|
||||
OSLockMutex(&mMutex);
|
||||
for (int i = 0; i < param_1->mWaveCount; i++) {
|
||||
u32 waveID = param_1->getWaveID(i);
|
||||
TWaveInfo** table = mWaveTable;
|
||||
TWaveInfo* waveInfo = ¶m_1->mCtrlWaveArray[i];
|
||||
waveInfo->field_0x3c = 0;
|
||||
waveInfo->field_0x38 = table[waveID];
|
||||
if (table[waveID]) {
|
||||
table[waveID]->field_0x3c = waveInfo;
|
||||
}
|
||||
table[waveID] = waveInfo;
|
||||
}
|
||||
OSUnlockMutex(&mMutex);
|
||||
}
|
||||
|
||||
/* 80285D54-80285E28 .text decWaveTable__Q28JASystem14TBasicWaveBankFPCQ38JASystem14TBasicWaveBank10TWaveGroup */
|
||||
void JASystem::TBasicWaveBank::decWaveTable(const JASystem::TBasicWaveBank::TWaveGroup*) {
|
||||
void JASystem::TBasicWaveBank::decWaveTable(const TWaveGroup*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80285E28-80285E58 .text getWaveHandle__Q28JASystem14TBasicWaveBankCFUl */
|
||||
void JASystem::TBasicWaveBank::getWaveHandle(unsigned long) const {
|
||||
/* Nonmatching */
|
||||
JASystem::TWaveHandle* JASystem::TBasicWaveBank::getWaveHandle(u32 param_1) const {
|
||||
if (param_1 >= mWaveCount) {
|
||||
return NULL;
|
||||
}
|
||||
if (mWaveTable[param_1]) {
|
||||
return &mWaveTable[param_1]->field_0x0;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 80285E58-80285EB0 .text __ct__Q38JASystem14TBasicWaveBank10TWaveGroupFPQ28JASystem14TBasicWaveBank */
|
||||
JASystem::TBasicWaveBank::TWaveGroup::TWaveGroup(JASystem::TBasicWaveBank*) {
|
||||
/* Nonmatching */
|
||||
JASystem::TBasicWaveBank::TWaveGroup::TWaveGroup(TBasicWaveBank* param_1) {
|
||||
mBank = param_1;
|
||||
mCtrlWaveArray = NULL;
|
||||
mWaveCount = 0;
|
||||
}
|
||||
|
||||
/* 80285EB0-80285F64 .text __dt__Q38JASystem14TBasicWaveBank10TWaveGroupFv */
|
||||
JASystem::TBasicWaveBank::TWaveGroup::~TWaveGroup() {
|
||||
/* Nonmatching */
|
||||
delete[] mCtrlWaveArray;
|
||||
}
|
||||
|
||||
/* 80285F64-80285FC4 .text __dt__Q38JASystem14TBasicWaveBank9TWaveInfoFv */
|
||||
JASystem::TBasicWaveBank::TWaveInfo::~TWaveInfo() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
JASystem::TBasicWaveBank::TWaveInfo::~TWaveInfo() {}
|
||||
|
||||
/* 80285FC4-802860B8 .text setWaveCount__Q38JASystem14TBasicWaveBank10TWaveGroupFUl */
|
||||
void JASystem::TBasicWaveBank::TWaveGroup::setWaveCount(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicWaveBank::TWaveGroup::setWaveCount(u32 param_1) {
|
||||
delete[] mCtrlWaveArray;
|
||||
mWaveCount = param_1;
|
||||
mCtrlWaveArray = new (getCurrentHeap(), 0) TWaveInfo[param_1];
|
||||
JUT_ASSERT(180, mCtrlWaveArray != 0);
|
||||
for (int i = 0; i < param_1; i++) {
|
||||
mCtrlWaveArray[i].field_0x0.mHeap = &field_0x4;
|
||||
mCtrlWaveArray[i].field_0x0.field_0x4.field_0x24 = &field_0x4c;
|
||||
}
|
||||
}
|
||||
|
||||
/* 802860B8-80286204 .text setWaveInfo__Q38JASystem14TBasicWaveBank10TWaveGroupFiUlRCQ28JASystem9TWaveInfo */
|
||||
void JASystem::TBasicWaveBank::TWaveGroup::setWaveInfo(int, unsigned long, const JASystem::TWaveInfo&) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TBasicWaveBank::TWaveGroup::setWaveInfo(int index, u32 param_2, const JASystem::TWaveInfo& param_3) {
|
||||
JUT_ASSERT(190, index < mWaveCount);
|
||||
JUT_ASSERT(191, index >= 0);
|
||||
mCtrlWaveArray[index].field_0x34 = param_2;
|
||||
mCtrlWaveArray[index].field_0x0.field_0x4 = param_3;
|
||||
mCtrlWaveArray[index].field_0x0.field_0x4.field_0x24 = &field_0x4c;
|
||||
}
|
||||
|
||||
/* 80286204-80286274 .text onLoadDone__Q38JASystem14TBasicWaveBank10TWaveGroupFv */
|
||||
void JASystem::TBasicWaveBank::TWaveGroup::onLoadDone() {
|
||||
/* Nonmatching */
|
||||
JUT_ASSERT(201, mBank);
|
||||
mBank->incWaveTable(this);
|
||||
}
|
||||
|
||||
/* 80286274-802862E4 .text onEraseDone__Q38JASystem14TBasicWaveBank10TWaveGroupFv */
|
||||
void JASystem::TBasicWaveBank::TWaveGroup::onEraseDone() {
|
||||
/* Nonmatching */
|
||||
JUT_ASSERT(207, mBank);
|
||||
mBank->decWaveTable(this);
|
||||
}
|
||||
|
||||
/* 802862E4-802862F8 .text getWaveID__Q38JASystem14TBasicWaveBank10TWaveGroupCFi */
|
||||
void JASystem::TBasicWaveBank::TWaveGroup::getWaveID(int) const {
|
||||
/* Nonmatching */
|
||||
u32 JASystem::TBasicWaveBank::TWaveGroup::getWaveID(int param_1) const {
|
||||
return mCtrlWaveArray[param_1].field_0x34;
|
||||
}
|
||||
|
||||
/* 802862F8-80286340 .text __dt__Q28JASystem9TWaveBankFv */
|
||||
JASystem::TWaveBank::~TWaveBank() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80286340-80286388 .text __dt__Q28JASystem11TWaveHandleFv */
|
||||
JASystem::TWaveHandle::~TWaveHandle() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80286388-802863B8 .text __ct__Q38JASystem14TBasicWaveBank9TWaveInfoFv */
|
||||
JASystem::TBasicWaveBank::TWaveInfo::TWaveInfo() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 802863B8-80286414 .text __dt__Q38JASystem14TBasicWaveBank11TWaveHandleFv */
|
||||
JASystem::TBasicWaveBank::TWaveHandle::~TWaveHandle() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80286414-8028641C .text getWaveInfo__Q38JASystem14TBasicWaveBank11TWaveHandleCFv */
|
||||
void JASystem::TBasicWaveBank::TWaveHandle::getWaveInfo() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8028641C-802864A8 .text getWavePtr__Q38JASystem14TBasicWaveBank11TWaveHandleCFv */
|
||||
void JASystem::TBasicWaveBank::TWaveHandle::getWavePtr() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 802864A8-802864C8 .text getWaveArc__Q28JASystem14TBasicWaveBankFi */
|
||||
void JASystem::TBasicWaveBank::getWaveArc(int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ BOOL JASystem::TChannel::checkLogicalChannel() {
|
||||
}
|
||||
|
||||
/* 8028BEB8-8028BF40 .text play__Q28JASystem8TChannelFUl */
|
||||
bool JASystem::TChannel::play(u32 param_1) {
|
||||
BOOL JASystem::TChannel::play(u32 param_1) {
|
||||
/* Nonmatching */
|
||||
if (param_1 == 0) {
|
||||
param_1 = -1;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "JSystem/JAudio/JASDSPInterface.h"
|
||||
#include "JSystem/JAudio/JASCalc.h"
|
||||
#include "JSystem/JAudio/JASDriverTables.h"
|
||||
#include "JSystem/JAudio/JASSystemHeap.h"
|
||||
#include "JSystem/JAudio/dspproc.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
|
||||
@@ -3,6 +3,129 @@
|
||||
// Translation Unit: JASDriverTables.cpp
|
||||
//
|
||||
|
||||
#include "JASDriverTables.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASDriverTables.h"
|
||||
|
||||
f32 JASystem::Driver::C5BASE_PITCHTABLE[] = {
|
||||
0.031250f, 0.033108f, 0.035077f, 0.037162f,
|
||||
0.039372f, 0.041713f, 0.044194f, 0.046822f,
|
||||
0.049606f, 0.052556f, 0.055681f, 0.058992f,
|
||||
0.062500f, 0.066216f, 0.070154f, 0.074325f,
|
||||
0.078745f, 0.083427f, 0.088388f, 0.093644f,
|
||||
0.099213f, 0.105112f, 0.111362f, 0.117984f,
|
||||
0.125000f, 0.132433f, 0.140308f, 0.148651f,
|
||||
0.157490f, 0.166855f, 0.176777f, 0.187288f,
|
||||
0.198425f, 0.210224f, 0.222725f, 0.235969f,
|
||||
0.250000f, 0.264866f, 0.280616f, 0.297302f,
|
||||
0.314980f, 0.333710f, 0.353553f, 0.374577f,
|
||||
0.396850f, 0.420448f, 0.445449f, 0.471937f,
|
||||
0.500000f, 0.529732f, 0.561231f, 0.594604f,
|
||||
0.629961f, 0.667420f, 0.707107f, 0.749154f,
|
||||
0.793701f, 0.840897f, 0.890899f, 0.943875f,
|
||||
1.000000f, 1.059463f, 1.122462f, 1.189207f,
|
||||
1.259921f, 1.334840f, 1.414214f, 1.498307f,
|
||||
1.587401f, 1.681793f, 1.781798f, 1.887749f,
|
||||
2.000000f, 2.118926f, 2.244924f, 2.378414f,
|
||||
2.519842f, 2.669680f, 2.828428f, 2.996615f,
|
||||
3.174803f, 3.363586f, 3.563596f, 3.775498f,
|
||||
4.000000f, 4.237853f, 4.489849f, 4.756829f,
|
||||
5.039685f, 5.339360f, 5.656855f, 5.993229f,
|
||||
6.349606f, 6.727173f, 7.127192f, 7.550996f,
|
||||
8.000000f, 8.475705f, 8.979697f, 9.513658f,
|
||||
10.079370f, 10.678720f, 11.313710f, 11.986459f,
|
||||
12.699211f, 13.454346f, 14.254383f, 15.101993f,
|
||||
16.000000f, 16.951410f, 17.959394f, 19.027315f,
|
||||
20.158739f, 21.357441f, 22.627420f, 23.972918f,
|
||||
25.398422f, 26.908691f, 28.508766f, 30.203985f,
|
||||
32.000000f, 33.902821f, 35.918789f, 38.054630f,
|
||||
40.317478f, 42.714882f, 45.254840f, 47.945835f,
|
||||
};
|
||||
|
||||
u16 JASystem::DSPInterface::DSPADPCM_FILTER[] = {
|
||||
0x0000, 0x0000, 0x0800, 0x0000, 0x0000, 0x0800, 0x0400, 0x0400,
|
||||
0x1000, 0xF800, 0x0E00, 0xFA00, 0x0C00, 0xFC00, 0x1200, 0xF600,
|
||||
0x1068, 0xF738, 0x12C0, 0xF704, 0x1400, 0xF400, 0x0800, 0xF800,
|
||||
0x0400, 0xFC00, 0xFC00, 0x0400, 0xFC00, 0x0000, 0xF800, 0x0000,
|
||||
};
|
||||
|
||||
u16 JASystem::DSPInterface::DSPRES_FILTER[] = {
|
||||
0x0C39, 0x66AD, 0x0D46, 0xFFDF, 0x0B39, 0x6696, 0x0E5F, 0xFFD8,
|
||||
0x0A44, 0x6669, 0x0F83, 0xFFD0, 0x095A, 0x6626, 0x10B4, 0xFFC8,
|
||||
0x087D, 0x65CD, 0x11F0, 0xFFBF, 0x07AB, 0x655E, 0x1338, 0xFFB6,
|
||||
0x06E4, 0x64D9, 0x148C, 0xFFAC, 0x0628, 0x643F, 0x15EB, 0xFFA1,
|
||||
0x0577, 0x638F, 0x1756, 0xFF96, 0x04D1, 0x62CB, 0x18CB, 0xFF8A,
|
||||
0x0435, 0x61F3, 0x1A4C, 0xFF7E, 0x03A4, 0x6106, 0x1BD7, 0xFF71,
|
||||
0x031C, 0x6007, 0x1D6C, 0xFF64, 0x029F, 0x5EF5, 0x1F0B, 0xFF56,
|
||||
0x022A, 0x5DD0, 0x20B3, 0xFF48, 0x01BE, 0x5C9A, 0x2264, 0xFF3A,
|
||||
0x015B, 0x5B53, 0x241E, 0xFF2C, 0x0101, 0x59FC, 0x25E0, 0xFF1E,
|
||||
0x00AE, 0x5896, 0x27A9, 0xFF10, 0x0063, 0x5720, 0x297A, 0xFF02,
|
||||
0x001F, 0x559D, 0x2B50, 0xFEF4, 0xFFE2, 0x540D, 0x2D2C, 0xFEE8,
|
||||
0xFFAC, 0x5270, 0x2F0D, 0xFEDB, 0xFF7C, 0x50C7, 0x30F3, 0xFED0,
|
||||
0xFF53, 0x4F14, 0x32DC, 0xFEC6, 0xFF2E, 0x4D57, 0x34C8, 0xFEBD,
|
||||
0xFF0F, 0x4B91, 0x36B6, 0xFEB6, 0xFEF5, 0x49C2, 0x38A5, 0xFEB0,
|
||||
0xFEDF, 0x47ED, 0x3A95, 0xFEAC, 0xFECE, 0x4611, 0x3C85, 0xFEAB,
|
||||
0xFEC0, 0x4430, 0x3E74, 0xFEAC, 0xFEB6, 0x424A, 0x4060, 0xFEAF,
|
||||
0xFEAF, 0x4060, 0x424A, 0xFEB6, 0xFEAC, 0x3E74, 0x4430, 0xFEC0,
|
||||
0xFEAB, 0x3C85, 0x4611, 0xFECE, 0xFEAC, 0x3A95, 0x47ED, 0xFEDF,
|
||||
0xFEB0, 0x38A5, 0x49C2, 0xFEF5, 0xFEB6, 0x36B6, 0x4B91, 0xFF0F,
|
||||
0xFEBD, 0x34C8, 0x4D57, 0xFF2E, 0xFEC6, 0x32DC, 0x4F14, 0xFF53,
|
||||
0xFED0, 0x30F3, 0x50C7, 0xFF7C, 0xFEDB, 0x2F0D, 0x5270, 0xFFAC,
|
||||
0xFEE8, 0x2D2C, 0x540D, 0xFFE2, 0xFEF4, 0x2B50, 0x559D, 0x001F,
|
||||
0xFF02, 0x297A, 0x5720, 0x0063, 0xFF10, 0x27A9, 0x5896, 0x00AE,
|
||||
0xFF1E, 0x25E0, 0x59FC, 0x0101, 0xFF2C, 0x241E, 0x5B53, 0x015B,
|
||||
0xFF3A, 0x2264, 0x5C9A, 0x01BE, 0xFF48, 0x20B3, 0x5DD0, 0x022A,
|
||||
0xFF56, 0x1F0B, 0x5EF5, 0x029F, 0xFF64, 0x1D6C, 0x6007, 0x031C,
|
||||
0xFF71, 0x1BD7, 0x6106, 0x03A4, 0xFF7E, 0x1A4C, 0x61F3, 0x0435,
|
||||
0xFF8A, 0x18CB, 0x62CB, 0x04D1, 0xFF96, 0x1756, 0x638F, 0x0577,
|
||||
0xFFA1, 0x15EB, 0x643F, 0x0628, 0xFFAC, 0x148C, 0x64D9, 0x06E4,
|
||||
0xFFB6, 0x1338, 0x655E, 0x07AB, 0xFFBF, 0x11F0, 0x65CD, 0x087D,
|
||||
0xFFC8, 0x10B4, 0x6626, 0x095A, 0xFFD0, 0x0F83, 0x6669, 0x0A44,
|
||||
0xFFD8, 0x0E5F, 0x6696, 0x0B39, 0xFFDF, 0x0D46, 0x66AD, 0x0C39,
|
||||
0x0000, 0x0C8B, 0x18F8, 0x2527, 0x30FB, 0x3C56, 0x471C, 0x5133,
|
||||
0x5A82, 0x62F1, 0x6A6D, 0x70E2, 0x7641, 0x7A7C, 0x7D89, 0x7F61,
|
||||
0x7FFF, 0x7F61, 0x7D89, 0x7A7C, 0x7641, 0x70E2, 0x6A6D, 0x62F1,
|
||||
0x5A82, 0x5133, 0x471C, 0x3C56, 0x30FB, 0x2527, 0x18F8, 0x0C8B,
|
||||
0x0000, 0xF375, 0xE708, 0xDAD9, 0xCF05, 0xC3AA, 0xB8E4, 0xAECD,
|
||||
0xA57E, 0x9D0F, 0x9593, 0x8F1E, 0x89BF, 0x8584, 0x8277, 0x809F,
|
||||
0x8001, 0x809F, 0x8277, 0x8584, 0x89BF, 0x8F1E, 0x9593, 0x9D0F,
|
||||
0xA57E, 0xAECD, 0xB8E4, 0xC3AA, 0xCF05, 0xDAD9, 0xE708, 0xF375,
|
||||
0x0000, 0x07FF, 0x0FFF, 0x17FF, 0x1FFF, 0x27FF, 0x2FFF, 0x37FF,
|
||||
0x3FFF, 0x47FF, 0x4FFF, 0x57FF, 0x5FFF, 0x67FF, 0x6FFF, 0x77FF,
|
||||
0x7FFF, 0x7800, 0x7000, 0x6800, 0x6000, 0x5800, 0x5000, 0x4800,
|
||||
0x4000, 0x3800, 0x3000, 0x2800, 0x2000, 0x1800, 0x1000, 0x0800,
|
||||
0x0000, 0xF801, 0xF001, 0xE801, 0xE001, 0xD801, 0xD001, 0xC801,
|
||||
0xC001, 0xB801, 0xB001, 0xA801, 0xA001, 0x9801, 0x9001, 0x8801,
|
||||
0x0000, 0x0000, 0x9000, 0x9800, 0xA000, 0xA800, 0xB000, 0xB800,
|
||||
0xC000, 0xC800, 0xD000, 0xD800, 0xE000, 0xE800, 0xF000, 0xF800,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1FFF, 0x3FFF,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1FFF, 0xC001,
|
||||
0x0000, 0x0192, 0x0324, 0x04B6, 0x0647, 0x07D9, 0x096A, 0x0AFB,
|
||||
0x0C8B, 0x0E1B, 0x0FAB, 0x1139, 0x12C7, 0x1455, 0x15E1, 0x176D,
|
||||
0x18F8, 0x1A82, 0x1C0B, 0x1D93, 0x1F19, 0x209F, 0x2223, 0x23A6,
|
||||
0x2527, 0x26A7, 0x2826, 0x29A3, 0x2B1F, 0x2C98, 0x2E10, 0x2F87,
|
||||
0x30FB, 0x326E, 0x33DE, 0x354D, 0x36B9, 0x3824, 0x398C, 0x3AF2,
|
||||
0x3C56, 0x3DB7, 0x3F17, 0x4073, 0x41CD, 0x4325, 0x447A, 0x45CC,
|
||||
0x471C, 0x4869, 0x49B3, 0x4AFB, 0x4C3F, 0x4D81, 0x4EBF, 0x4FFB,
|
||||
0x5133, 0x5268, 0x539A, 0x54C9, 0x55F5, 0x571D, 0x5842, 0x5964,
|
||||
0x5A82, 0x5B9C, 0x5CB3, 0x5DC7, 0x5ED7, 0x5FE3, 0x60EB, 0x61F0,
|
||||
0x62F1, 0x63EE, 0x64E8, 0x65DD, 0x66CF, 0x67BC, 0x68A6, 0x698B,
|
||||
0x6A6D, 0x6B4A, 0x6C23, 0x6CF8, 0x6DC9, 0x6E96, 0x6F5E, 0x7022,
|
||||
0x70E2, 0x719D, 0x7254, 0x7307, 0x73B5, 0x745F, 0x7504, 0x75A5,
|
||||
0x7641, 0x76D8, 0x776B, 0x77FA, 0x7884, 0x7909, 0x7989, 0x7A05,
|
||||
0x7A7C, 0x7AEE, 0x7B5C, 0x7BC5, 0x7C29, 0x7C88, 0x7CE3, 0x7D39,
|
||||
0x7D89, 0x7DD5, 0x7E1D, 0x7E5F, 0x7E9C, 0x7ED5, 0x7F09, 0x7F37,
|
||||
0x7F61, 0x7F86, 0x7FA6, 0x7FC1, 0x7FD8, 0x7FE9, 0x7FF5, 0x7FFD,
|
||||
};
|
||||
|
||||
@@ -22,14 +22,14 @@ JASTaskThread::TCallStack::~TCallStack() {
|
||||
}
|
||||
|
||||
/* 8027B5D8-8027B66C .text sendCmdMsg__13JASTaskThreadFPFPv_lPvUl */
|
||||
bool JASTaskThread::sendCmdMsg(s32 (*param_1)(void*), void* param_2, u32 param_3) {
|
||||
BOOL JASTaskThread::sendCmdMsg(s32 (*param_1)(void*), void* param_2, u32 param_3) {
|
||||
TCallStack* stack = new(JKRGetSystemHeap(), -4) TCallStack(param_3);
|
||||
if (!stack) {
|
||||
return false;
|
||||
}
|
||||
JASystem::Calc::bcopy(param_2, stack->argspace, param_3);
|
||||
stack->field_0x0 = param_1;
|
||||
sendMessageBlock(stack);
|
||||
return sendMessageBlock(stack);
|
||||
}
|
||||
|
||||
/* 8027B66C-8027B6D4 .text run__13JASTaskThreadFv */
|
||||
@@ -79,9 +79,9 @@ void JASystem::Dvd::resumeThread() {
|
||||
}
|
||||
|
||||
/* 8027B84C-8027B8D4 .text sendCmdMsg__Q28JASystem3DvdFPFPv_lPvUl */
|
||||
void JASystem::Dvd::sendCmdMsg(s32 (*param_1)(void*), void* param_2, u32 param_3) {
|
||||
BOOL JASystem::Dvd::sendCmdMsg(s32 (*param_1)(void*), void* param_2, u32 param_3) {
|
||||
JUT_ASSERT(152, sThread);
|
||||
sThread->sendCmdMsg(param_1, param_2, param_3);
|
||||
return sThread->sendCmdMsg(param_1, param_2, param_3);
|
||||
}
|
||||
|
||||
/* 8027B8D4-8027B914 .text checkPassDvdT__Q28JASystem3DvdFUlPUlPFUl_v */
|
||||
|
||||
@@ -197,7 +197,7 @@ JASystem::Kernel::TSolidHeap::TSolidHeap() {
|
||||
}
|
||||
|
||||
/* 8027D370-8027D40C .text alloc__Q38JASystem6Kernel10TSolidHeapFl */
|
||||
int JASystem::Kernel::TSolidHeap::alloc(s32 size) {
|
||||
void* JASystem::Kernel::TSolidHeap::alloc(s32 size) {
|
||||
/* Nonmatching */
|
||||
u32 tmp1 = OSRoundUp32B(size);
|
||||
if (field_0x0 == 0) {
|
||||
@@ -213,7 +213,7 @@ int JASystem::Kernel::TSolidHeap::alloc(s32 size) {
|
||||
}
|
||||
field_0xc++;
|
||||
field_0x10 = tmp2;
|
||||
return tmp2;
|
||||
return (void*)tmp2;
|
||||
}
|
||||
|
||||
/* 8027D40C-8027D424 .text freeAll__Q38JASystem6Kernel10TSolidHeapFv */
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
// Translation Unit: JASInstEffect.cpp
|
||||
//
|
||||
|
||||
#include "JASInstEffect.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASInstEffect.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
/* 8028684C-802868F0 .text setTarget__Q28JASystem11TInstEffectFi */
|
||||
void JASystem::TInstEffect::setTarget(int) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TInstEffect::setTarget(int target) {
|
||||
JUT_ASSERT(16, target >= 0);
|
||||
JUT_ASSERT(17, target < 256);
|
||||
mTarget = target;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,21 +3,160 @@
|
||||
// Translation Unit: JASPlayer_impl.cpp
|
||||
//
|
||||
|
||||
#include "JASPlayer_impl.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASPlayer.h"
|
||||
#include "JSystem/JAudio/JASDriverTables.h"
|
||||
|
||||
/* 8027E170-8027E190 .text extend8to16__Q28JASystem6PlayerFUc */
|
||||
void JASystem::Player::extend8to16(unsigned char) {
|
||||
/* Nonmatching */
|
||||
s16 JASystem::Player::extend8to16(u8 param_1) {
|
||||
s16 var1 = param_1;
|
||||
if (param_1 & 0x80) {
|
||||
var1 += 0xFF00;
|
||||
}
|
||||
return var1;
|
||||
}
|
||||
|
||||
const f32 JASystem::Player::s_key_table[] = {
|
||||
1.000000, 1.000910, 1.001821, 1.002733,
|
||||
1.003645, 1.004559, 1.005473, 1.006388,
|
||||
1.007304, 1.008220, 1.009138, 1.010056,
|
||||
1.010975, 1.011896, 1.012816, 1.013738,
|
||||
1.014661, 1.015584, 1.016508, 1.017433,
|
||||
1.018359, 1.019286, 1.020214, 1.021142,
|
||||
1.022071, 1.023002, 1.023933, 1.024864,
|
||||
1.025797, 1.026731, 1.027665, 1.028600,
|
||||
1.029536, 1.030473, 1.031411, 1.032350,
|
||||
1.033289, 1.034230, 1.035171, 1.036113,
|
||||
1.037056, 1.038000, 1.038944, 1.039890,
|
||||
1.040836, 1.041783, 1.042731, 1.043680,
|
||||
1.044630, 1.045581, 1.046532, 1.047485,
|
||||
1.048438, 1.049392, 1.050347, 1.051303,
|
||||
1.052260, 1.053217, 1.054176, 1.055135,
|
||||
1.056095, 1.057056, 1.058018, 1.058981,
|
||||
};
|
||||
|
||||
/* 8027E190-8027E250 .text pitchToCent__Q28JASystem6PlayerFff */
|
||||
void JASystem::Player::pitchToCent(float, float) {
|
||||
/* Nonmatching */
|
||||
f32 JASystem::Player::pitchToCent(f32 param_1, f32 param_2) {
|
||||
f32 var1 = param_1 * 4.0f * param_2;
|
||||
s16 var3 = var1;
|
||||
f32 var2 = var1 - var3;
|
||||
if (var1 < 0.0f && var2 != 0.0f) {
|
||||
var2 += 1.0f;
|
||||
var3 -= 1;
|
||||
}
|
||||
if (var2 >= 1.0f) {
|
||||
var2 -= 1.0f;
|
||||
var3 += 1;
|
||||
}
|
||||
return s_key_table[u16(var2 * 64.0f)] * Driver::C5BASE_PITCHTABLE[var3 + 0x3c];
|
||||
}
|
||||
|
||||
/* 8027E250-8027E2C0 .text getRandomS32__Q28JASystem6PlayerFv */
|
||||
void JASystem::Player::getRandomS32() {
|
||||
/* Nonmatching */
|
||||
s32 JASystem::Player::getRandomS32() {
|
||||
static s32 sV0 = 0x1000;
|
||||
static s32 sV1 = 0x5555;
|
||||
s32 result = sV1 * -0x6789abce + 1 + (sV0 * 0x13579bde >> 4);
|
||||
sV0 = sV1;
|
||||
sV1 = result;
|
||||
return result;
|
||||
}
|
||||
|
||||
const JASystem::TOscillator::Osc_ JASystem::Player::sAdsrDef = {
|
||||
0, 1.0f, NULL, NULL, 1.0f, 0.0f
|
||||
};
|
||||
|
||||
const JASystem::TOscillator::Osc_ JASystem::Player::sEnvelopeDef = {
|
||||
0, 1.0f, NULL, &sRelTable, 1.0f, 0.0f
|
||||
};
|
||||
|
||||
const JASystem::TOscillator::Osc_ JASystem::Player::sVibratoDef = {
|
||||
1, 0.5f, &sVibTable, &sVibTable, 0.0f, 1.0f
|
||||
};
|
||||
|
||||
const JASystem::TOscillator::Osc_ JASystem::Player::sTremoroDef = {
|
||||
0, 0.5f, &sTreTable, &sTreTable, 0.0f, 1.0f
|
||||
};
|
||||
|
||||
s16 JASystem::Player::CUTOFF_TO_IIR_TABLE[] = {
|
||||
0x0F5C, 0x0A3D, 0x4665, 0x3999, 0x103F, 0x0A28, 0x45D7, 0x3925,
|
||||
0x1122, 0x0A14, 0x454A, 0x38B0, 0x1205, 0x09FF, 0x44BC, 0x383C,
|
||||
0x12E8, 0x09EA, 0x442E, 0x37C8, 0x13CB, 0x09D6, 0x43A0, 0x3754,
|
||||
0x14AE, 0x09C1, 0x4312, 0x36E0, 0x1591, 0x09AC, 0x4284, 0x366C,
|
||||
0x1674, 0x0998, 0x41F6, 0x35F8, 0x1757, 0x0983, 0x4168, 0x3584,
|
||||
0x183A, 0x096E, 0x40DA, 0x3510, 0x191D, 0x095A, 0x404C, 0x349C,
|
||||
0x1A00, 0x0945, 0x3FBE, 0x3427, 0x1AE3, 0x0931, 0x3F31, 0x33B3,
|
||||
0x1BC6, 0x091C, 0x3EA3, 0x333F, 0x1CA9, 0x0907, 0x3E15, 0x32CB,
|
||||
0x1D8C, 0x08F3, 0x3D87, 0x3257, 0x1E6F, 0x08DE, 0x3CF9, 0x31E3,
|
||||
0x1F52, 0x08C9, 0x3C6B, 0x316F, 0x2035, 0x08B5, 0x3BDD, 0x30FB,
|
||||
0x2118, 0x08A0, 0x3B4F, 0x3087, 0x21FC, 0x088B, 0x3AC1, 0x3012,
|
||||
0x22DF, 0x0877, 0x3A33, 0x2F9E, 0x23C2, 0x0862, 0x39A6, 0x2F2A,
|
||||
0x24A5, 0x084D, 0x3918, 0x2EB6, 0x2588, 0x0839, 0x388A, 0x2E42,
|
||||
0x266B, 0x0824, 0x37FC, 0x2DCE, 0x274E, 0x0810, 0x376E, 0x2D5A,
|
||||
0x2831, 0x07FB, 0x36E0, 0x2CE6, 0x2914, 0x07E6, 0x3652, 0x2C72,
|
||||
0x29F7, 0x07D2, 0x35C4, 0x2BFE, 0x2ADA, 0x07BD, 0x3536, 0x2B89,
|
||||
0x2BBD, 0x07A8, 0x34A8, 0x2B15, 0x2CA0, 0x0794, 0x341B, 0x2AA1,
|
||||
0x2D83, 0x077F, 0x338D, 0x2A2D, 0x2E66, 0x076A, 0x32FF, 0x29B9,
|
||||
0x2F49, 0x0756, 0x3271, 0x2945, 0x302C, 0x0741, 0x31E3, 0x28D1,
|
||||
0x310F, 0x072D, 0x3155, 0x285D, 0x31F2, 0x0718, 0x30C7, 0x27E9,
|
||||
0x32D5, 0x0703, 0x3039, 0x2775, 0x33B8, 0x06EF, 0x2FAB, 0x2700,
|
||||
0x349C, 0x06DA, 0x2F1D, 0x268C, 0x357F, 0x06C5, 0x2E8F, 0x2618,
|
||||
0x3662, 0x06B1, 0x2E02, 0x25A4, 0x3745, 0x069C, 0x2D74, 0x2530,
|
||||
0x3828, 0x0687, 0x2CE6, 0x24BC, 0x390B, 0x0673, 0x2C58, 0x2448,
|
||||
0x39EE, 0x065E, 0x2BCA, 0x23D4, 0x3AD1, 0x0649, 0x2B3C, 0x2360,
|
||||
0x3BB4, 0x0635, 0x2AAE, 0x22EB, 0x3C97, 0x0620, 0x2A20, 0x2277,
|
||||
0x3D7A, 0x060C, 0x2992, 0x2203, 0x3E5D, 0x05F7, 0x2904, 0x218F,
|
||||
0x3F40, 0x05E2, 0x2877, 0x211B, 0x4023, 0x05CE, 0x27E9, 0x20A7,
|
||||
0x4106, 0x05B9, 0x275B, 0x2033, 0x41E9, 0x05A4, 0x26CD, 0x1FBF,
|
||||
0x42CC, 0x0590, 0x263F, 0x1F4B, 0x43AF, 0x057B, 0x25B1, 0x1ED7,
|
||||
0x4492, 0x0566, 0x2523, 0x1E62, 0x4575, 0x0552, 0x2495, 0x1DEE,
|
||||
0x4658, 0x053D, 0x2407, 0x1D7A, 0x473B, 0x0529, 0x2379, 0x1D06,
|
||||
0x481F, 0x0514, 0x22EB, 0x1C92, 0x4902, 0x04FF, 0x225E, 0x1C1E,
|
||||
0x49E5, 0x04EB, 0x21D0, 0x1BAA, 0x4AC8, 0x04D6, 0x2142, 0x1B36,
|
||||
0x4BAB, 0x04C1, 0x20B4, 0x1AC2, 0x4C8E, 0x04AD, 0x2026, 0x1A4E,
|
||||
0x4D71, 0x0498, 0x1F98, 0x19D9, 0x4E54, 0x0483, 0x1F0A, 0x1965,
|
||||
0x4F37, 0x046F, 0x1E7C, 0x18F1, 0x501A, 0x045A, 0x1DEE, 0x187D,
|
||||
0x50FD, 0x0445, 0x1D60, 0x1809, 0x51E0, 0x0431, 0x1CD3, 0x1795,
|
||||
0x52C3, 0x041C, 0x1C45, 0x1721, 0x53A6, 0x0408, 0x1BB7, 0x16AD,
|
||||
0x5489, 0x03F3, 0x1B29, 0x1639, 0x556C, 0x03DE, 0x1A9B, 0x15C4,
|
||||
0x564F, 0x03CA, 0x1A0D, 0x1550, 0x5732, 0x03B5, 0x197F, 0x14DC,
|
||||
0x5815, 0x03A0, 0x18F1, 0x1468, 0x58F8, 0x038C, 0x1863, 0x13F4,
|
||||
0x59DB, 0x0377, 0x17D5, 0x1380, 0x5ABF, 0x0362, 0x1747, 0x130C,
|
||||
0x5BA2, 0x034E, 0x16BA, 0x1298, 0x5C85, 0x0339, 0x162C, 0x1224,
|
||||
0x5D68, 0x0324, 0x159E, 0x11B0, 0x5E4B, 0x0310, 0x1510, 0x113B,
|
||||
0x5F2E, 0x02FB, 0x1482, 0x10C7, 0x6011, 0x02E7, 0x13F4, 0x1053,
|
||||
0x60F4, 0x02D2, 0x1366, 0x0FDF, 0x61D7, 0x02BD, 0x12D8, 0x0F6B,
|
||||
0x62BA, 0x02A9, 0x124A, 0x0EF7, 0x639D, 0x0294, 0x11BC, 0x0E83,
|
||||
0x6480, 0x027F, 0x112F, 0x0E0F, 0x6563, 0x026B, 0x10A1, 0x0D9B,
|
||||
0x6646, 0x0256, 0x1013, 0x0D27, 0x6729, 0x0241, 0x0F85, 0x0CB2,
|
||||
0x680C, 0x022D, 0x0EF7, 0x0C3E, 0x68EF, 0x0218, 0x0E69, 0x0BCA,
|
||||
0x69D2, 0x0204, 0x0DDB, 0x0B56, 0x6AB5, 0x01EF, 0x0D4D, 0x0AE2,
|
||||
0x6B98, 0x01DA, 0x0CBF, 0x0A6E, 0x6C7B, 0x01C6, 0x0C31, 0x09FA,
|
||||
0x6D5F, 0x01B1, 0x0BA3, 0x0986, 0x6E42, 0x019C, 0x0B16, 0x0912,
|
||||
0x6F25, 0x0188, 0x0A88, 0x089D, 0x7008, 0x0173, 0x09FA, 0x0829,
|
||||
0x70EB, 0x015E, 0x096C, 0x07B5, 0x71CE, 0x014A, 0x08DE, 0x0741,
|
||||
0x72B1, 0x0135, 0x0850, 0x06CD, 0x7394, 0x0120, 0x07C2, 0x0659,
|
||||
0x7477, 0x010C, 0x0734, 0x05E5, 0x755A, 0x00F7, 0x06A6, 0x0571,
|
||||
0x763D, 0x00E3, 0x0618, 0x04FD, 0x7720, 0x00CE, 0x058B, 0x0489,
|
||||
0x7803, 0x00B9, 0x04FD, 0x0414, 0x78E6, 0x00A5, 0x046F, 0x03A0,
|
||||
0x79C9, 0x0090, 0x03E1, 0x032C, 0x7AAC, 0x007B, 0x0353, 0x02B8,
|
||||
0x7B8F, 0x0067, 0x02C5, 0x0244, 0x7C72, 0x0052, 0x0237, 0x01D0,
|
||||
0x7D55, 0x003D, 0x01A9, 0x015C, 0x7E38, 0x0029, 0x011B, 0x00E8,
|
||||
0x7F1B, 0x0014, 0x008D, 0x0074, 0x7FFF, 0x0000, 0x0000, 0x0000,
|
||||
};
|
||||
|
||||
s16 JASystem::Player::sAdsTable[] = {
|
||||
0x0000, 0x0000, 0x7FFF, 0x0000,
|
||||
0x0000, 0x7FFF, 0x0000, 0x0000,
|
||||
0x0000, 0x000E, 0x0000, 0x0000,
|
||||
};
|
||||
|
||||
s16 JASystem::Player::sRelTable[] = {
|
||||
0, 10, 0, 15, 1, 0
|
||||
};
|
||||
|
||||
s16 JASystem::Player::sVibTable[] = {
|
||||
0, 0, 0, 0, 12, 0x7FFF, 0, 12, 0, 0, 12, 0xC000, 0, 12, 0, 13, 0, 1
|
||||
};
|
||||
|
||||
s16 JASystem::Player::sTreTable[] = {
|
||||
0, 0, 0x7FFF, 0, 20, 0, 0, 20, 0x8001, 0, 20, 0, 0, 20, 0x7FFF, 13, 0, 1
|
||||
};
|
||||
|
||||
@@ -3,31 +3,79 @@
|
||||
// Translation Unit: JASRegisterParam.cpp
|
||||
//
|
||||
|
||||
#include "JASRegisterParam.h"
|
||||
#include "JSystem/JAudio/JASRegisterParam.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 8027E2C0-8027E310 .text __ct__Q28JASystem14TRegisterParamFv */
|
||||
JASystem::TRegisterParam::TRegisterParam() {
|
||||
/* Nonmatching */
|
||||
field_0x0 = 0;
|
||||
field_0x2 = 0;
|
||||
field_0x4 = 0;
|
||||
field_0x6 = 0;
|
||||
field_0x8 = 0;
|
||||
field_0xa = 0;
|
||||
field_0xc = 0;
|
||||
field_0xe = 0;
|
||||
field_0x1a = 0;
|
||||
field_0x10[0] = 0;
|
||||
field_0x10[1] = 0;
|
||||
field_0x10[2] = 0;
|
||||
field_0x10[3] = 0;
|
||||
field_0x10[4] = 0;
|
||||
field_0x20 = 0;
|
||||
field_0x24 = 0;
|
||||
field_0x28 = 0;
|
||||
field_0x2c = 0;
|
||||
}
|
||||
|
||||
/* 8027E310-8027E378 .text init__Q28JASystem14TRegisterParamFv */
|
||||
void JASystem::TRegisterParam::init() {
|
||||
/* Nonmatching */
|
||||
field_0x0 = 0;
|
||||
field_0x2 = 0;
|
||||
field_0x4 = 0;
|
||||
field_0x6 = 0;
|
||||
field_0x8 = 0;
|
||||
field_0xa = 0;
|
||||
field_0xc = 0xf0;
|
||||
field_0xe = 0x0c;
|
||||
field_0x1a = 0x40;
|
||||
field_0x10[0] = 0;
|
||||
field_0x10[1] = 1;
|
||||
field_0x10[2] = 1;
|
||||
field_0x10[3] = 0x7fff;
|
||||
field_0x10[4] = 0x4000;
|
||||
field_0x20 = 0;
|
||||
field_0x24 = 0;
|
||||
field_0x28 = 0;
|
||||
field_0x2c = 0;
|
||||
}
|
||||
|
||||
/* 8027E378-8027E3E0 .text inherit__Q28JASystem14TRegisterParamFRCQ28JASystem14TRegisterParam */
|
||||
void JASystem::TRegisterParam::inherit(const JASystem::TRegisterParam&) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TRegisterParam::inherit(const JASystem::TRegisterParam& param_1) {
|
||||
field_0x0 = 0;
|
||||
field_0x2 = 0;
|
||||
field_0x4 = 0;
|
||||
field_0x6 = 0;
|
||||
field_0x8 = 0;
|
||||
field_0xa = 0;
|
||||
field_0xc = param_1.field_0xc;
|
||||
field_0xe = param_1.field_0xe;
|
||||
field_0x1a = param_1.field_0x1a;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
field_0x10[i] = param_1.field_0x10[i];
|
||||
}
|
||||
field_0x20 = 0;
|
||||
field_0x24 = 0;
|
||||
field_0x28 = 0;
|
||||
field_0x2c = 0;
|
||||
}
|
||||
|
||||
/* 8027E3E0-8027E3EC .text getBankNumber__Q28JASystem14TRegisterParamCFv */
|
||||
void JASystem::TRegisterParam::getBankNumber() const {
|
||||
/* Nonmatching */
|
||||
u8 JASystem::TRegisterParam::getBankNumber() const {
|
||||
return field_0xc >> 8 & 0xff;
|
||||
}
|
||||
|
||||
/* 8027E3EC-8027E3F8 .text getProgramNumber__Q28JASystem14TRegisterParamCFv */
|
||||
void JASystem::TRegisterParam::getProgramNumber() const {
|
||||
/* Nonmatching */
|
||||
u8 JASystem::TRegisterParam::getProgramNumber() const {
|
||||
return field_0xc & 0xff;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,61 +3,125 @@
|
||||
// Translation Unit: JASSeqCtrl.cpp
|
||||
//
|
||||
|
||||
#include "JASSeqCtrl.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASSeqCtrl.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
/* 8027E3F8-8027E448 .text init__Q28JASystem8TSeqCtrlFv */
|
||||
void JASystem::TSeqCtrl::init() {
|
||||
/* Nonmatching */
|
||||
field_0x0 = NULL;
|
||||
field_0x4 = NULL;
|
||||
field_0x8 = 0;
|
||||
field_0xc = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
field_0x10[i] = NULL;
|
||||
field_0x30[i] = 0;
|
||||
}
|
||||
field_0x40 = 0;
|
||||
field_0x44 = NULL;
|
||||
}
|
||||
|
||||
/* 8027E448-8027E45C .text start__Q28JASystem8TSeqCtrlFPvUl */
|
||||
void JASystem::TSeqCtrl::start(void*, unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TSeqCtrl::start(void* param_1, u32 param_2) {
|
||||
field_0x0 = (u8*)param_1;
|
||||
field_0x4 = field_0x0 + param_2;
|
||||
}
|
||||
|
||||
/* 8027E45C-8027E500 .text loopEnd__Q28JASystem8TSeqCtrlFv */
|
||||
void JASystem::TSeqCtrl::loopEnd() {
|
||||
int JASystem::TSeqCtrl::loopEnd() {
|
||||
/* Nonmatching */
|
||||
u32 var1 = field_0xc;
|
||||
if (var1 == 0) {
|
||||
JUT_WARN(45, "%s", "cannot loopE for call-stack is NULL");
|
||||
return 0;
|
||||
}
|
||||
u16 var3 = field_0x30[var1 - 1];
|
||||
if (var3) {
|
||||
var3--;
|
||||
}
|
||||
if (var3 == 0) {
|
||||
field_0xc--;
|
||||
return true;
|
||||
}
|
||||
field_0x30[var1 - 1] = var3;
|
||||
field_0x4 = field_0x10[field_0xc - 1];
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8027E500-8027E530 .text waitCountDown__Q28JASystem8TSeqCtrlFv */
|
||||
void JASystem::TSeqCtrl::waitCountDown() {
|
||||
/* Nonmatching */
|
||||
bool JASystem::TSeqCtrl::waitCountDown() {
|
||||
if (field_0x8 > 0) {
|
||||
field_0x8--;
|
||||
if (field_0x8) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8027E530-8027E568 .text callIntr__Q28JASystem8TSeqCtrlFPv */
|
||||
void JASystem::TSeqCtrl::callIntr(void*) {
|
||||
/* Nonmatching */
|
||||
bool JASystem::TSeqCtrl::callIntr(void* param_1) {
|
||||
if (field_0x44) {
|
||||
return false;
|
||||
}
|
||||
field_0x44 = field_0x4;
|
||||
field_0x4 = (u8*)param_1;
|
||||
field_0x40 = field_0x8;
|
||||
field_0x8 = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8027E568-8027E59C .text retIntr__Q28JASystem8TSeqCtrlFv */
|
||||
void JASystem::TSeqCtrl::retIntr() {
|
||||
/* Nonmatching */
|
||||
bool JASystem::TSeqCtrl::retIntr() {
|
||||
if (!field_0x44) {
|
||||
return false;
|
||||
}
|
||||
field_0x8 = field_0x40;
|
||||
field_0x4 = field_0x44;
|
||||
field_0x44 = NULL;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8027E59C-8027E5B4 .text get16__Q28JASystem8TSeqCtrlCFUl */
|
||||
void JASystem::TSeqCtrl::get16(unsigned long) const {
|
||||
/* Nonmatching */
|
||||
u32 JASystem::TSeqCtrl::get16(u32 param_1) const {
|
||||
u32 result = field_0x0[param_1++] << 8;
|
||||
result |= field_0x0[param_1++];
|
||||
return result;
|
||||
}
|
||||
|
||||
/* 8027E5B4-8027E5DC .text get24__Q28JASystem8TSeqCtrlCFUl */
|
||||
void JASystem::TSeqCtrl::get24(unsigned long) const {
|
||||
u32 JASystem::TSeqCtrl::get24(u32 param_1) const {
|
||||
/* Nonmatching */
|
||||
u32 result = field_0x0[param_1++] << 8;
|
||||
result |= field_0x0[param_1++];
|
||||
result <<= 8;
|
||||
result |= field_0x0[param_1++];
|
||||
return result;
|
||||
}
|
||||
|
||||
/* 8027E5DC-8027E614 .text get32__Q28JASystem8TSeqCtrlCFUl */
|
||||
void JASystem::TSeqCtrl::get32(unsigned long) const {
|
||||
u32 JASystem::TSeqCtrl::get32(u32 param_1) const {
|
||||
/* Nonmatching */
|
||||
u32 result = field_0x0[param_1++] << 8;
|
||||
result |= field_0x0[param_1++];
|
||||
result <<= 8;
|
||||
result |= field_0x0[param_1++];
|
||||
result <<= 8;
|
||||
result |= field_0x0[param_1++];
|
||||
return result;
|
||||
}
|
||||
|
||||
/* 8027E614-8027E63C .text read16__Q28JASystem8TSeqCtrlFv */
|
||||
void JASystem::TSeqCtrl::read16() {
|
||||
/* Nonmatching */
|
||||
u32 JASystem::TSeqCtrl::read16() {
|
||||
u32 result = *(field_0x4++) << 8;
|
||||
result |= *(field_0x4++);
|
||||
return result;
|
||||
}
|
||||
|
||||
/* 8027E63C-8027E680 .text read24__Q28JASystem8TSeqCtrlFv */
|
||||
void JASystem::TSeqCtrl::read24() {
|
||||
/* Nonmatching */
|
||||
u32 JASystem::TSeqCtrl::read24() {
|
||||
u32 result = *(field_0x4++) << 8;
|
||||
result |= *(field_0x4++);
|
||||
result <<= 8;
|
||||
result |= *(field_0x4++);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,66 +3,52 @@
|
||||
// Translation Unit: JASSimpleWaveBank.cpp
|
||||
//
|
||||
|
||||
#include "JASSimpleWaveBank.h"
|
||||
#include "JSystem/JAudio/JASSimpleWaveBank.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 802864C8-80286528 .text __ct__Q28JASystem15TSimpleWaveBankFv */
|
||||
JASystem::TSimpleWaveBank::TSimpleWaveBank() {
|
||||
/* Nonmatching */
|
||||
mWaveTable = NULL;
|
||||
mWaveCount = 0;
|
||||
}
|
||||
|
||||
/* 80286528-802865F4 .text __dt__Q28JASystem15TSimpleWaveBankFv */
|
||||
JASystem::TSimpleWaveBank::~TSimpleWaveBank() {
|
||||
/* Nonmatching */
|
||||
delete[] mWaveTable;
|
||||
}
|
||||
|
||||
/* 802865F4-80286650 .text __dt__Q38JASystem15TSimpleWaveBank11TWaveHandleFv */
|
||||
JASystem::TSimpleWaveBank::TWaveHandle::~TWaveHandle() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
JASystem::TSimpleWaveBank::TWaveHandle::~TWaveHandle() {}
|
||||
|
||||
/* 80286650-8028670C .text setWaveTableSize__Q28JASystem15TSimpleWaveBankFUl */
|
||||
void JASystem::TSimpleWaveBank::setWaveTableSize(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TSimpleWaveBank::setWaveTableSize(u32 param_1) {
|
||||
delete[] mWaveTable;
|
||||
mWaveTable = new (getCurrentHeap(), 0) TWaveHandle[param_1];
|
||||
JUT_ASSERT(34, mWaveTable != 0);
|
||||
mWaveCount = param_1;
|
||||
}
|
||||
|
||||
/* 8028670C-80286730 .text getWaveHandle__Q28JASystem15TSimpleWaveBankCFUl */
|
||||
void JASystem::TSimpleWaveBank::getWaveHandle(unsigned long) const {
|
||||
/* Nonmatching */
|
||||
JASystem::TSimpleWaveBank::TWaveHandle* JASystem::TSimpleWaveBank::getWaveHandle(u32 param_1) const {
|
||||
if (param_1 >= mWaveCount) {
|
||||
return NULL;
|
||||
}
|
||||
return mWaveTable + param_1;
|
||||
}
|
||||
|
||||
/* 80286730-802867D4 .text setWaveInfo__Q28JASystem15TSimpleWaveBankFUlRCQ28JASystem9TWaveInfo */
|
||||
void JASystem::TSimpleWaveBank::setWaveInfo(unsigned long, const JASystem::TWaveInfo&) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TSimpleWaveBank::setWaveInfo(u32 param_1, const JASystem::TWaveInfo& param_2) {
|
||||
mWaveTable[param_1].field_0x4 = param_2;
|
||||
mWaveTable[param_1].field_0x4.field_0x24 = &field_0x4c;
|
||||
mWaveTable[param_1].mHeap = &field_0x4;
|
||||
}
|
||||
|
||||
/* 802867D4-802867F4 .text getWaveArc__Q28JASystem15TSimpleWaveBankFi */
|
||||
void JASystem::TSimpleWaveBank::getWaveArc(int) {
|
||||
/* Nonmatching */
|
||||
JASystem::TWaveArc* JASystem::TSimpleWaveBank::getWaveArc(int param_1) {
|
||||
if (param_1 != 0) {
|
||||
return NULL;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/* 802867F4-80286818 .text __ct__Q38JASystem15TSimpleWaveBank11TWaveHandleFv */
|
||||
JASystem::TSimpleWaveBank::TWaveHandle::TWaveHandle() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80286818-80286820 .text getWaveInfo__Q38JASystem15TSimpleWaveBank11TWaveHandleCFv */
|
||||
void JASystem::TSimpleWaveBank::TWaveHandle::getWaveInfo() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80286820-80286844 .text getWavePtr__Q38JASystem15TSimpleWaveBank11TWaveHandleCFv */
|
||||
void JASystem::TSimpleWaveBank::TWaveHandle::getWavePtr() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80286844-80286848 .text onLoadDone__Q28JASystem8TWaveArcFv */
|
||||
void JASystem::TWaveArc::onLoadDone() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80286848-8028684C .text onEraseDone__Q28JASystem8TWaveArcFv */
|
||||
void JASystem::TWaveArc::onEraseDone() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -52,8 +52,9 @@ void JASystem::Kernel::sysAramSetup(u32 param_1) {
|
||||
}
|
||||
|
||||
/* 8027DC84-8027DCDC .text allocFromSysAramFull__Q28JASystem6KernelFPUl */
|
||||
void JASystem::Kernel::allocFromSysAramFull(u32* param_1) {
|
||||
void* JASystem::Kernel::allocFromSysAramFull(u32* param_1) {
|
||||
u32 size = audioAramHeap.getRemain();
|
||||
audioAramHeap.alloc(size - 0x20);
|
||||
void* var1 = audioAramHeap.alloc(size - 0x20);
|
||||
*param_1 = size - 0x20;
|
||||
return var1;
|
||||
}
|
||||
|
||||
@@ -3,81 +3,174 @@
|
||||
// Translation Unit: JASWaveArcLoader.cpp
|
||||
//
|
||||
|
||||
#include "JASWaveArcLoader.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASWaveArcLoader.h"
|
||||
#include "JSystem/JAudio/JASDvdThread.h"
|
||||
#include "JSystem/JAudio/JASSystemHeap.h"
|
||||
#include "JSystem/JKernel/JKRDvdAramRipper.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "MSL_C/string.h"
|
||||
|
||||
const u32 DIR_MAX = 64;
|
||||
|
||||
JASystem::Kernel::THeap JASystem::WaveArcLoader::sAramHeap(NULL);
|
||||
|
||||
/* 80287BD8-80287C24 .text init__Q28JASystem13WaveArcLoaderFv */
|
||||
void JASystem::WaveArcLoader::init() {
|
||||
/* Nonmatching */
|
||||
bool JASystem::WaveArcLoader::init() {
|
||||
u32 local_8;
|
||||
void* var1 = Kernel::allocFromSysAramFull(&local_8);
|
||||
if (!var1) {
|
||||
return false;
|
||||
}
|
||||
sAramHeap.initRootHeap(var1, local_8, Kernel::THeap::Type0);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80287C24-80287C30 .text getRootHeap__Q28JASystem13WaveArcLoaderFv */
|
||||
void JASystem::WaveArcLoader::getRootHeap() {
|
||||
/* Nonmatching */
|
||||
JASystem::Kernel::THeap* JASystem::WaveArcLoader::getRootHeap() {
|
||||
return &sAramHeap;
|
||||
}
|
||||
|
||||
char JASystem::WaveArcLoader::sCurrentDir[DIR_MAX] = "/Banks/";
|
||||
|
||||
/* 80287C30-80287D24 .text setCurrentDir__Q28JASystem13WaveArcLoaderFPCc */
|
||||
void JASystem::WaveArcLoader::setCurrentDir(const char*) {
|
||||
void JASystem::WaveArcLoader::setCurrentDir(const char* dir) {
|
||||
/* Nonmatching */
|
||||
//JUT_ASSERT(60, std::strlen(dir) < DIR_MAX);
|
||||
strcpy(sCurrentDir, dir);
|
||||
int len = strlen(sCurrentDir);
|
||||
if (sCurrentDir[len - 1] == '/') {
|
||||
return;
|
||||
}
|
||||
JUT_ASSERT(65, len+1 < DIR_MAX);
|
||||
sCurrentDir[len] = '/';
|
||||
sCurrentDir[len+1] = 0;
|
||||
}
|
||||
|
||||
/* 80287D24-80287D30 .text getCurrentDir__Q28JASystem13WaveArcLoaderFv */
|
||||
void JASystem::WaveArcLoader::getCurrentDir() {
|
||||
/* Nonmatching */
|
||||
char* JASystem::WaveArcLoader::getCurrentDir() {
|
||||
return sCurrentDir;
|
||||
}
|
||||
|
||||
/* 80287D30-80287DA4 .text __ct__Q28JASystem8TWaveArcFv */
|
||||
JASystem::TWaveArc::TWaveArc() {
|
||||
/* Nonmatching */
|
||||
JASystem::TWaveArc::TWaveArc() : field_0x4(this) {
|
||||
field_0x4c = 0;
|
||||
field_0x68 = 0;
|
||||
field_0x6c = -1;
|
||||
field_0x70 = 0;
|
||||
field_0x74 = 0;
|
||||
OSInitMutex(&mMutex);
|
||||
}
|
||||
|
||||
/* 80287DA4-80287E34 .text loadSetup__Q28JASystem8TWaveArcFUl */
|
||||
void JASystem::TWaveArc::loadSetup(unsigned long) {
|
||||
/* Nonmatching */
|
||||
bool JASystem::TWaveArc::loadSetup(u32 param_1) {
|
||||
OSLockMutex(&mMutex);
|
||||
if (field_0x74 != param_1) {
|
||||
OSUnlockMutex(&mMutex);
|
||||
return false;
|
||||
}
|
||||
if (field_0x68 != 1) {
|
||||
OSUnlockMutex(&mMutex);
|
||||
return false;
|
||||
}
|
||||
field_0x4c = 1;
|
||||
field_0x68 = 2;
|
||||
OSUnlockMutex(&mMutex);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80287E34-80287EB8 .text eraseSetup__Q28JASystem8TWaveArcFv */
|
||||
void JASystem::TWaveArc::eraseSetup() {
|
||||
/* Nonmatching */
|
||||
bool JASystem::TWaveArc::eraseSetup() {
|
||||
OSLockMutex(&mMutex);
|
||||
if (field_0x68 == 0) {
|
||||
OSUnlockMutex(&mMutex);
|
||||
return false;
|
||||
}
|
||||
if (field_0x68 == 1) {
|
||||
field_0x68 = 0;
|
||||
OSUnlockMutex(&mMutex);
|
||||
return false;
|
||||
}
|
||||
field_0x4c = 0;
|
||||
field_0x68 = 0;
|
||||
OSUnlockMutex(&mMutex);
|
||||
return true;
|
||||
}
|
||||
|
||||
struct unk_message {
|
||||
JASystem::TWaveArc* field_0x0;
|
||||
int field_0x4;
|
||||
void* field_0x8;
|
||||
u32 field_0xc;
|
||||
};
|
||||
|
||||
/* 80287EB8-80287F48 .text loadToAramCallback__Q28JASystem8TWaveArcFPv */
|
||||
void JASystem::TWaveArc::loadToAramCallback(void*) {
|
||||
s32 JASystem::TWaveArc::loadToAramCallback(void* param_1) {
|
||||
/* Nonmatching */
|
||||
unk_message* msg = (unk_message*)param_1;
|
||||
if (JKRDvdAramRipper::loadToAram(msg->field_0x4, u32(msg->field_0x8), EXPAND_SWITCH_UNKNOWN0, 0, 0) == 0) {
|
||||
return -1;
|
||||
}
|
||||
TWaveArc* waveArc = msg->field_0x0;
|
||||
if (!waveArc->loadSetup(msg->field_0xc)) {
|
||||
return 0;
|
||||
}
|
||||
waveArc->onLoadDone();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80287F48-80287FE4 .text sendLoadCmd__Q28JASystem8TWaveArcFv */
|
||||
void JASystem::TWaveArc::sendLoadCmd() {
|
||||
bool JASystem::TWaveArc::sendLoadCmd() {
|
||||
/* Nonmatching */
|
||||
OSLockMutex(&mMutex);
|
||||
field_0x4c = 0;
|
||||
field_0x68 = 1;
|
||||
unk_message msg;
|
||||
msg.field_0x0 = this;
|
||||
msg.field_0x4 = field_0x6c;
|
||||
msg.field_0x8 = field_0x4.mBase;
|
||||
msg.field_0xc = ++field_0x74;
|
||||
OSUnlockMutex(&mMutex);
|
||||
if (!Dvd::sendCmdMsg(loadToAramCallback, &msg, sizeof(msg))) {
|
||||
field_0x4.free();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80287FE4-802880A0 .text load__Q28JASystem8TWaveArcFPQ38JASystem6Kernel5THeap */
|
||||
void JASystem::TWaveArc::load(JASystem::Kernel::THeap*) {
|
||||
bool JASystem::TWaveArc::load(Kernel::THeap*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 802880A0-802880C4 .text erase__Q28JASystem8TWaveArcFv */
|
||||
void JASystem::TWaveArc::erase() {
|
||||
/* Nonmatching */
|
||||
bool JASystem::TWaveArc::erase() {
|
||||
return field_0x4.free();
|
||||
}
|
||||
|
||||
/* 802880C4-8028810C .text onDispose__Q28JASystem8TWaveArcFv */
|
||||
void JASystem::TWaveArc::onDispose() {
|
||||
/* Nonmatching */
|
||||
if (eraseSetup()) {
|
||||
onEraseDone();
|
||||
}
|
||||
}
|
||||
|
||||
/* 8028810C-8028816C .text setEntryNum__Q28JASystem8TWaveArcFl */
|
||||
void JASystem::TWaveArc::setEntryNum(long) {
|
||||
void JASystem::TWaveArc::setEntryNum(s32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8028816C-80288214 .text setFileName__Q28JASystem8TWaveArcFPCc */
|
||||
void JASystem::TWaveArc::setFileName(const char*) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TWaveArc::setFileName(const char* param_1) {
|
||||
char* currentDir = WaveArcLoader::getCurrentDir();
|
||||
size_t size = strlen(currentDir);
|
||||
size += strlen(param_1);
|
||||
char* str = new (JKRGetSystemHeap(), -4) char[size + 1];
|
||||
strcpy(str, currentDir);
|
||||
strcat(str, param_1);
|
||||
str[size] = 0;
|
||||
s32 entry = DVDConvertPathToEntrynum(str);
|
||||
delete[] str;
|
||||
if (entry >= 0) {
|
||||
setEntryNum(entry);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80288214-8028828C .text __dt__Q38JASystem6Kernel5THeapFv */
|
||||
JASystem::Kernel::THeap::~THeap() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -3,11 +3,16 @@
|
||||
// Translation Unit: JASWaveBank.cpp
|
||||
//
|
||||
|
||||
#include "JASWaveBank.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASWaveBank.h"
|
||||
#include "JSystem/JAudio/JASSystemHeap.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
|
||||
JKRHeap* JASystem::TWaveBank::sCurrentHeap;
|
||||
|
||||
/* 8028455C-80284570 .text getCurrentHeap__Q28JASystem9TWaveBankFv */
|
||||
void JASystem::TWaveBank::getCurrentHeap() {
|
||||
/* Nonmatching */
|
||||
JKRHeap* JASystem::TWaveBank::getCurrentHeap() {
|
||||
if (sCurrentHeap) {
|
||||
return sCurrentHeap;
|
||||
}
|
||||
return JASDram;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,41 +3,88 @@
|
||||
// Translation Unit: JASWaveBankMgr.cpp
|
||||
//
|
||||
|
||||
#include "JASWaveBankMgr.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASWaveBankMgr.h"
|
||||
#include "JSystem/JAudio/JASBasicWaveBank.h"
|
||||
#include "JSystem/JAudio/JASCalc.h"
|
||||
#include "JSystem/JAudio/JASSimpleWaveBank.h"
|
||||
#include "JSystem/JAudio/JASSystemHeap.h"
|
||||
#include "JSystem/JAudio/JASWSParser.h"
|
||||
#include "JSystem/JAudio/JASWaveArcLoader.h"
|
||||
#include "JSystem/JAudio/JASWaveBank.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
int JASystem::WaveBankMgr::sTableSize;
|
||||
JASystem::TWaveBank** JASystem::WaveBankMgr::sWaveBank;
|
||||
|
||||
/* 802882CC-8028835C .text init__Q28JASystem11WaveBankMgrFi */
|
||||
void JASystem::WaveBankMgr::init(int) {
|
||||
/* Nonmatching */
|
||||
void JASystem::WaveBankMgr::init(int param_1) {
|
||||
u32 size = param_1 * 4;
|
||||
sWaveBank = (TWaveBank**) new (JASDram, 0) u8[size];
|
||||
JUT_ASSERT(39, sWaveBank != 0);
|
||||
Calc::bzero(sWaveBank, size);
|
||||
sTableSize = param_1;
|
||||
}
|
||||
|
||||
/* 8028835C-80288390 .text getWaveBank__Q28JASystem11WaveBankMgrFi */
|
||||
void JASystem::WaveBankMgr::getWaveBank(int) {
|
||||
/* Nonmatching */
|
||||
JASystem::TWaveBank* JASystem::WaveBankMgr::getWaveBank(int banknum) {
|
||||
if (banknum < 0) {
|
||||
return NULL;
|
||||
}
|
||||
if (banknum >= sTableSize) {
|
||||
return NULL;
|
||||
}
|
||||
return sWaveBank[banknum];
|
||||
}
|
||||
|
||||
/* 80288390-80288444 .text registWaveBank__Q28JASystem11WaveBankMgrFiPQ28JASystem9TWaveBank */
|
||||
void JASystem::WaveBankMgr::registWaveBank(int, JASystem::TWaveBank*) {
|
||||
bool JASystem::WaveBankMgr::registWaveBank(int banknum, TWaveBank* param_2) {
|
||||
/* Nonmatching */
|
||||
JUT_ASSERT(57, banknum >= 0);
|
||||
JUT_ASSERT(58, banknum < sTableSize);
|
||||
sWaveBank[banknum] = param_2;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80288444-802884BC .text registWaveBankWS__Q28JASystem11WaveBankMgrFiPv */
|
||||
void JASystem::WaveBankMgr::registWaveBankWS(int, void*) {
|
||||
bool JASystem::WaveBankMgr::registWaveBankWS(int param_1, void* param_2) {
|
||||
/* Nonmatching */
|
||||
TWaveBank* bank;
|
||||
if (WSParser::getGroupCount(param_2) == 1) {
|
||||
bank = WSParser::createSimpleWaveBank(param_2);
|
||||
} else {
|
||||
bank = WSParser::createBasicWaveBank(param_2);
|
||||
}
|
||||
if (!bank) {
|
||||
return false;
|
||||
}
|
||||
return registWaveBank(param_1, bank);
|
||||
}
|
||||
|
||||
/* 802884BC-8028850C .text getWaveArc__Q28JASystem11WaveBankMgrFii */
|
||||
void JASystem::WaveBankMgr::getWaveArc(int, int) {
|
||||
/* Nonmatching */
|
||||
JASystem::TWaveArc* JASystem::WaveBankMgr::getWaveArc(int banknum, int param_2) {
|
||||
TWaveBank* bank = getWaveBank(banknum);
|
||||
if (bank == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
return bank->getWaveArc(param_2);
|
||||
}
|
||||
|
||||
/* 8028850C-80288550 .text loadWave__Q28JASystem11WaveBankMgrFiiPQ38JASystem6Kernel5THeap */
|
||||
void JASystem::WaveBankMgr::loadWave(int, int, JASystem::Kernel::THeap*) {
|
||||
/* Nonmatching */
|
||||
bool JASystem::WaveBankMgr::loadWave(int banknum, int param_2, Kernel::THeap* param_3) {
|
||||
TWaveArc* arc = getWaveArc(banknum, param_2);
|
||||
if (arc == NULL) {
|
||||
return false;
|
||||
}
|
||||
return arc->load(param_3);
|
||||
}
|
||||
|
||||
/* 80288550-80288594 .text eraseWave__Q28JASystem11WaveBankMgrFii */
|
||||
void JASystem::WaveBankMgr::eraseWave(int, int) {
|
||||
bool JASystem::WaveBankMgr::eraseWave(int banknum, int param_2) {
|
||||
/* Nonmatching */
|
||||
TWaveArc* arc = getWaveArc(banknum, param_2);
|
||||
if (arc == NULL) {
|
||||
return false;
|
||||
}
|
||||
return arc->erase() != false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user