Label much of MSM (#535)
This commit is contained in:
parent
f6ca7da943
commit
77da4907df
14 changed files with 2207 additions and 2190 deletions
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "dolphin.h"
|
||||
#include "musyx/musyx.h"
|
||||
#include "game/msm_data.h"
|
||||
|
||||
#define MSM_SEPARAM_NONE 0
|
||||
#define MSM_SEPARAM_VOL (1 << 0)
|
||||
|
|
@ -40,25 +41,24 @@
|
|||
#define MSM_ERR_READFAIL -2
|
||||
#define MSM_ERR_OUTOFMEM -10
|
||||
#define MSM_ERR_OUTOFAMEM -20
|
||||
#define MSM_ERR_INITFAIL -20
|
||||
#define MSM_ERR_1E -30
|
||||
#define MSM_ERR_INITFAIL -30
|
||||
#define MSM_ERR_INVALID_AUXPARAM -31
|
||||
#define MSM_ERR_20 -32
|
||||
#define MSM_ERR_GRP_FAILPUSH -32
|
||||
#define MSM_ERR_PLAYFAIL -33
|
||||
#define MSM_ERR_22 -34
|
||||
#define MSM_LISTENER_NO_UPDATA -34
|
||||
#define MSM_ERR_STREAMALLOC_FAIL -35
|
||||
#define MSM_ERR_INSTALLED -36
|
||||
#define MSM_ERR_64 -100
|
||||
#define MSM_ERR_65 -101
|
||||
#define MSM_ERR_STACK_OVERFLOW -101
|
||||
#define MSM_ERR_GRP_NOTLOADED -103
|
||||
#define MSM_ERR_6E -110
|
||||
#define MSM_ERR_6F -111
|
||||
#define MSM_ERR_CHANLIMIT -110
|
||||
#define MSM_ERR_INVALIDSE -111
|
||||
#define MSM_ERR_INVALIDID -120
|
||||
#define MSM_ERR_INVALIDFILE -121
|
||||
#define MSM_ERR_REMOVEDID -122
|
||||
#define MSM_ERR_MUSGRP_NOTLOADED -123
|
||||
#define MSM_ERR_OUTOFMUS -130
|
||||
#define MSM_ERR_8C -140
|
||||
#define MSM_ERR_RANGE_STREAM -140
|
||||
|
||||
#define MSM_VOL_MAX 127
|
||||
#define MSM_PAN_LEFT 32
|
||||
|
|
@ -132,19 +132,6 @@ typedef struct msmSeParam_s {
|
|||
Vec pos;
|
||||
} MSM_SEPARAM;
|
||||
|
||||
typedef struct msmSe_s {
|
||||
u16 groupId;
|
||||
u16 fxId;
|
||||
s8 vol;
|
||||
s8 pan;
|
||||
s16 pitchBend;
|
||||
u8 span;
|
||||
u8 reverb;
|
||||
u8 chorus;
|
||||
s8 doppler;
|
||||
s8 comp;
|
||||
u8 pad[3];
|
||||
} MSMSE;
|
||||
|
||||
typedef struct msmSeListener_s {
|
||||
s32 flag;
|
||||
|
|
@ -173,10 +160,11 @@ typedef struct msmStreamParam_s {
|
|||
} MSM_STREAMPARAM;
|
||||
|
||||
s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram);
|
||||
s32 msmSysSetOutputMode(SND_OUTPUTMODE mode);
|
||||
BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode);
|
||||
s32 msmSysDelGroupAll(void);
|
||||
s32 msmSysGetSampSize(BOOL baseGrp);
|
||||
s32 msmSysDelGroupBase(s32 grpNum);
|
||||
s32 msmSysSetAux(s32 auxA, s32 auxB);
|
||||
|
||||
s32 msmSeSetParam(int seNo, MSM_SEPARAM *param);
|
||||
int msmSePlay(int seId, MSM_SEPARAM *param);
|
||||
|
|
@ -190,6 +178,8 @@ void msmSeDelListener(void);
|
|||
s32 msmSeGetStatus(int seNo);
|
||||
s32 msmSeGetNumPlay(BOOL baseGrp);
|
||||
s32 msmSeGetEntryID(s32 seId, int *seNo);
|
||||
void msmSeSetMasterVolume(s32 vol);
|
||||
MSM_SE* msmSeGetIndexPtr(s32 seId);
|
||||
|
||||
int msmMusPlay(int musId, MSM_MUSPARAM *musParam);
|
||||
s32 msmMusStop(int musNo, s32 speed);
|
||||
|
|
@ -199,6 +189,8 @@ s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl);
|
|||
void msmMusStopAll(BOOL checkGrp, s32 speed);
|
||||
s32 msmMusGetStatus(int musNo);
|
||||
s32 msmMusGetNumPlay(BOOL baseGrp);
|
||||
s32 msmMusSetParam(s32 musNo, MSM_MUSPARAM *param);
|
||||
void msmMusSetMasterVolume(s32 vol);
|
||||
|
||||
int msmStreamPlay(int streamId, MSM_STREAMPARAM *streamParam);
|
||||
s32 msmStreamStop(int streamNo, s32 speed);
|
||||
|
|
@ -207,5 +199,7 @@ s32 msmStreamPause(int streamNo, BOOL pause, s32 speed);
|
|||
|
||||
void msmStreamStopAll(s32 speed);
|
||||
s32 msmStreamGetStatus(int streamNo);
|
||||
void msmStreamSetMasterVolume(s32 arg0);
|
||||
void msmStreamSetOutputMode(s32 outputMode);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
185
include/game/msm_data.h
Normal file
185
include/game/msm_data.h
Normal file
|
|
@ -0,0 +1,185 @@
|
|||
#ifndef _MSM_DATA_H
|
||||
#define _MSM_DATA_H
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "musyx/musyx.h"
|
||||
|
||||
#define MSM_STREAM_FLAG_STEREO 0x1
|
||||
#define MSM_STREAM_FLAG_LOOP 0x2
|
||||
|
||||
#define MSM_FILE_VERSION 2
|
||||
#define MSM_PDT_FILE_VERSION 1
|
||||
|
||||
typedef struct MSMHeader_s {
|
||||
s32 magic;
|
||||
s32 version;
|
||||
s32 endOfs;
|
||||
s32 endSize;
|
||||
s32 infoOfs;
|
||||
u32 infoSize;
|
||||
s32 auxParamOfs;
|
||||
u32 auxParamSize;
|
||||
s32 grpInfoOfs;
|
||||
s32 grpInfoSize;
|
||||
s32 musOfs;
|
||||
s32 musSize;
|
||||
s32 seOfs;
|
||||
s32 seSize;
|
||||
s32 grpDataOfs;
|
||||
s32 grpDataSize;
|
||||
s32 sampOfs;
|
||||
s32 sampSize;
|
||||
s32 dummyMusOfs;
|
||||
s32 dummyMusSize;
|
||||
s32 grpSetOfs;
|
||||
s32 grpSetSize;
|
||||
s32 pad[2];
|
||||
} MSM_HEADER; // sizeof 0x60
|
||||
|
||||
typedef struct MSMInfo_s {
|
||||
s8 voices;
|
||||
s8 music;
|
||||
s8 sfx;
|
||||
s8 grpMax;
|
||||
s16 musMax;
|
||||
s16 seMax;
|
||||
s8 musChanMax;
|
||||
s8 stackDepthA;
|
||||
s8 stackDepthB;
|
||||
s8 surroundF;
|
||||
s8 unkC[2];
|
||||
s8 auxParamA;
|
||||
s8 auxParamB;
|
||||
s32 minMem;
|
||||
s32 aramSize;
|
||||
s32 grpBufSizeA;
|
||||
s32 grpBufSizeB;
|
||||
s32 dummyMusSize;
|
||||
s32 unk24;
|
||||
s8 baseGrpNum;
|
||||
s8 baseGrp[23];
|
||||
} MSM_INFO;
|
||||
|
||||
typedef struct {
|
||||
u32 tempDisableFX;
|
||||
f32 coloration;
|
||||
f32 mix;
|
||||
f32 time;
|
||||
f32 damping;
|
||||
f32 preDelay;
|
||||
f32 crosstalk;
|
||||
} MSM_AUXPARAM_REVERBHI;
|
||||
|
||||
typedef struct {
|
||||
u32 tempDisableFX;
|
||||
f32 coloration;
|
||||
f32 mix;
|
||||
f32 time;
|
||||
f32 damping;
|
||||
f32 preDelay;
|
||||
f32 crosstalk;
|
||||
} MSM_AUXPARAM_REVERBSTD;
|
||||
|
||||
typedef struct {
|
||||
u32 baseDelay;
|
||||
u32 variation;
|
||||
u32 period;
|
||||
} MSM_AUXPARAM_CHORUS;
|
||||
|
||||
typedef struct {
|
||||
u32 delay[3];
|
||||
u32 feedback[3];
|
||||
u32 output[3];
|
||||
} MSM_AUXPARAM_DELAY;
|
||||
|
||||
typedef struct MSMAuxParam_s {
|
||||
s8 type;
|
||||
u8 pad[3];
|
||||
union {
|
||||
MSM_AUXPARAM_REVERBHI revHi;
|
||||
MSM_AUXPARAM_REVERBSTD revStd;
|
||||
MSM_AUXPARAM_CHORUS chorus;
|
||||
MSM_AUXPARAM_DELAY delay;
|
||||
};
|
||||
} MSM_AUXPARAM;
|
||||
|
||||
typedef struct MSMSe_s {
|
||||
SND_GROUPID gid;
|
||||
SND_FXID fxId;
|
||||
s8 vol;
|
||||
s8 pan;
|
||||
s16 pitchBend;
|
||||
u8 span;
|
||||
u8 reverb;
|
||||
u8 chorus;
|
||||
s8 emitterF;
|
||||
s8 emiComp;
|
||||
u8 pad[3];
|
||||
} MSM_SE;
|
||||
|
||||
typedef struct MSMMus_s {
|
||||
SND_GROUPID sgid;
|
||||
SND_SONGID sid;
|
||||
s32 songOfs;
|
||||
s32 songSize;
|
||||
s8 songGrp;
|
||||
s8 vol;
|
||||
u8 pad[2];
|
||||
} MSM_MUS; // Size 0x10
|
||||
|
||||
typedef struct MSMGrpHead_s {
|
||||
s32 poolOfs;
|
||||
s32 projOfs;
|
||||
s32 sdirOfs;
|
||||
s32 sngOfs;
|
||||
} MSM_GRP_HEAD;
|
||||
|
||||
typedef struct MSMGrpInfo_s {
|
||||
SND_GROUPID gid;
|
||||
s8 stackNo;
|
||||
s8 subGrpId;
|
||||
s32 dataOfs;
|
||||
s32 dataSize;
|
||||
s32 sampOfs;
|
||||
s32 sampSize;
|
||||
u8 pad[12];
|
||||
} MSM_GRP_INFO;
|
||||
|
||||
typedef struct MSMGrpSet_s {
|
||||
s8 numGrpSet;
|
||||
s8 grpSetW;
|
||||
s8 data[1];
|
||||
} MSM_GRP_SET;
|
||||
|
||||
typedef struct MSMStreamHeader_s {
|
||||
s16 version;
|
||||
s16 streamMax;
|
||||
s32 chanMax;
|
||||
s32 sampleFrq;
|
||||
s32 maxBufs;
|
||||
u32 streamPackListOfs;
|
||||
u32 adpcmParamOfs;
|
||||
u32 streamPackOfs;
|
||||
u32 sampleOfs;
|
||||
} MSM_STREAM_HEADER;
|
||||
|
||||
typedef struct MSMStream_s {
|
||||
s32 sampleOfs;
|
||||
s16 adpcmParamIdx;
|
||||
u16 pad;
|
||||
} MSM_STREAM;
|
||||
|
||||
typedef struct MSMStreamPack_s {
|
||||
s8 flag;
|
||||
s8 vol;
|
||||
s8 pan;
|
||||
s8 span;
|
||||
s8 auxA;
|
||||
s8 auxB;
|
||||
u16 frq;
|
||||
u32 loopOfsEnd;
|
||||
u32 loopOfsStart;
|
||||
MSM_STREAM stream[2];
|
||||
} MSM_STREAM_PACK; // Size unknown
|
||||
|
||||
#endif
|
||||
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
void msmMemFree(void *);
|
||||
void *msmMemAlloc(u32);
|
||||
void msmMemInit(void *, u32);
|
||||
void msmMemFree(void *ptr);
|
||||
void *msmMemAlloc(u32 sze);
|
||||
void msmMemInit(void *ptr, u32 size);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -16,6 +16,6 @@ s32 msmMusPause(int musNo, BOOL pause, s32 speed);
|
|||
void msmMusStopAll(BOOL checkGrp, s32 speed);
|
||||
s32 msmMusStop(int musNo, s32 speed);
|
||||
int msmMusPlay(int musId, MSM_MUSPARAM* musParam);
|
||||
s32 msmMusInit(sysData* arg0, DVDFileInfo* arg1);
|
||||
s32 msmMusInit(MSM_SYS* arg0, DVDFileInfo* arg1);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#include "msm/msmsys.h"
|
||||
|
||||
void msmSePeriodicProc(void);
|
||||
MSMSE* msmSeGetIndexPtr(s32 arg0);
|
||||
MSM_SE* msmSeGetIndexPtr(s32 arg0);
|
||||
void msmSeDelListener(void);
|
||||
s32 msmSeUpdataListener(Vec* pos, Vec* heading);
|
||||
s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener);
|
||||
|
|
@ -18,6 +18,6 @@ void msmSePauseAll(BOOL pause, s32 speed);
|
|||
void msmSeStopAll(BOOL checkGrp, s32 speed);
|
||||
s32 msmSeStop(int seNo, s32 speed);
|
||||
int msmSePlay(int seId, MSM_SEPARAM* param);
|
||||
s32 msmSeInit(sysData* arg0, DVDFileInfo* arg1);
|
||||
s32 msmSeInit(MSM_SYS* arg0, DVDFileInfo* arg1);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -13,10 +13,6 @@ void msmStreamSetOutputMode(s32 arg0);
|
|||
void msmStreamAmemFree(void);
|
||||
s32 msmStreamAmemAlloc(void);
|
||||
s32 msmStreamInit(char* arg0);
|
||||
void msmStreamPauseOff(s32 arg0);
|
||||
void msmStreamPauseOn(s32 streamNo, s32 arg1);
|
||||
s32 msmStreamPackStartStereo(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2);
|
||||
s32 msmStreamPackStartMono(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2);
|
||||
void msmStreamSlotOff(s32 streamNo);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -5,167 +5,63 @@
|
|||
|
||||
#include "dolphin.h"
|
||||
|
||||
typedef struct {
|
||||
u32 tempDisableFX;
|
||||
f32 coloration;
|
||||
f32 mix;
|
||||
f32 time;
|
||||
f32 damping;
|
||||
f32 preDelay;
|
||||
f32 crosstalk;
|
||||
} SubStructRev;
|
||||
#define MSM_AUX_REVERBHI 0
|
||||
#define MSM_AUX_REVERBSTD 1
|
||||
#define MSM_AUX_CHORUS 2
|
||||
#define MSM_AUX_DELAY 3
|
||||
|
||||
typedef struct {
|
||||
u32 baseDelay;
|
||||
u32 variation;
|
||||
u32 period;
|
||||
} SubStructCh;
|
||||
|
||||
typedef struct {
|
||||
u32 delay[3];
|
||||
u32 feedback[3];
|
||||
u32 output[3];
|
||||
} SubDelay;
|
||||
|
||||
typedef struct _unkSubStruct {
|
||||
s8 unk0;
|
||||
union {
|
||||
SubStructRev rev;
|
||||
SubStructCh ch;
|
||||
SubDelay delay;
|
||||
};
|
||||
} unkSubStruct;
|
||||
#define MSM_AUXNO_NULL -2
|
||||
#define MSM_AUXNO_UNSET -1
|
||||
|
||||
typedef union {
|
||||
SND_AUX_REVERBHI revHi;
|
||||
SND_AUX_REVERBSTD revStd;
|
||||
SND_AUX_CHORUS ch;
|
||||
SND_AUX_CHORUS chorus;
|
||||
SND_AUX_DELAY delay;
|
||||
} UnkSndAuxUnion; // Size 0x1E0
|
||||
} MSM_AUX; // Size 0x1E0
|
||||
|
||||
typedef struct _unkSubStruct3 {
|
||||
char unk[0x4];
|
||||
s32 unk4;
|
||||
char unk8[0x8];
|
||||
s32 unk10; // offset
|
||||
u32 unk14; // length
|
||||
s32 unk18; // offset
|
||||
u32 unk1C; // length
|
||||
s32 unk20;
|
||||
s32 unk24;
|
||||
s32 unk28;
|
||||
s32 unk2C;
|
||||
s32 unk30;
|
||||
s32 unk34;
|
||||
s32 unk38;
|
||||
char unk3C[4];
|
||||
s32 unk40;
|
||||
char unk44[4];
|
||||
s32 unk48;
|
||||
char unk4C[4];
|
||||
s32 unk50;
|
||||
s32 unk54;
|
||||
char unk58[8];
|
||||
} unkSubStruct3; // sizeof 0x60
|
||||
typedef struct MSMGrpWork_s {
|
||||
s8 grpId;
|
||||
s8 baseGrpF;
|
||||
u32 num;
|
||||
void *buf;
|
||||
} MSM_GRP_STACK;
|
||||
|
||||
typedef struct _unkStruct3 {
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
} unkStruct3;
|
||||
|
||||
typedef struct _sndInitData {
|
||||
s8 unk0;
|
||||
s8 unk1;
|
||||
s8 unk2;
|
||||
s8 unk3;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
s8 unk8;
|
||||
s8 unk9;
|
||||
s8 unkA;
|
||||
s8 unkB;
|
||||
char unkC[2];
|
||||
s8 unkE;
|
||||
s8 unkF;
|
||||
u32 unk10;
|
||||
s32 unk14;
|
||||
s32 unk18;
|
||||
s32 unk1C;
|
||||
s32 unk20;
|
||||
char unk24[4];
|
||||
s8 unk28;
|
||||
s8 unk29[10]; // size unknown
|
||||
} sndInitData;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s8 unk00;
|
||||
/* 0x01 */ s8 unk01;
|
||||
/* 0x02 */ char unk02[2];
|
||||
/* 0x04 */ u32 unk04;
|
||||
/* 0x08 */ void *unk08;
|
||||
} UnkStructSys43C; // Size 0xC
|
||||
|
||||
typedef struct _unkStruct4 {
|
||||
SND_GROUPID unk0;
|
||||
s8 unk2;
|
||||
s8 unk3;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
char unk14[0xC];
|
||||
} unkStruct4; // Size 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s8 unk00;
|
||||
/* 0x01 */ s8 unk01;
|
||||
/* 0x02 */ s8 unk02[1]; // unknown array length
|
||||
} UnkSys3F0Struct; // Size unknown
|
||||
|
||||
typedef struct _sysData {
|
||||
s32 unk0;
|
||||
s8 unk4;
|
||||
typedef struct MSMSys_s {
|
||||
s32 msmEntryNum;
|
||||
s8 outputMode;
|
||||
s8 unk5;
|
||||
s8 unk6;
|
||||
s8 unk7;
|
||||
s32 unk8;
|
||||
unkSubStruct3 *unkC;
|
||||
sndInitData *unk10;
|
||||
unkSubStruct *unk14;
|
||||
s8 unk18[2];
|
||||
s8 unk1A;
|
||||
s8 unk1B;
|
||||
UnkSndAuxUnion unk1C[2]; // 0: userA, 1: userB
|
||||
s8 unk3DC;
|
||||
char unk3DD[3];
|
||||
s32 unk3E0;
|
||||
u32 unk3E4;
|
||||
u32 unk3E8;
|
||||
unkStruct4 *unk3EC;
|
||||
UnkSys3F0Struct *unk3F0;
|
||||
s8 unk3F4;
|
||||
unkStruct3 *unk3F8[1]; // unknown array length
|
||||
char unk3FC[0x38];
|
||||
s8 unk434;
|
||||
u8 unk435;
|
||||
s8 unk436;
|
||||
char unk437[1];
|
||||
void *unk438;
|
||||
UnkStructSys43C unk43C[1]; // unknown array length
|
||||
char unk448[0x24];
|
||||
s8 unk46C;
|
||||
u8 unk46D;
|
||||
s8 unk46E;
|
||||
char unk46F[1];
|
||||
void *unk470;
|
||||
UnkStructSys43C unk474[1]; // unknown array length
|
||||
char unk480[0x6C];
|
||||
s32 unk4EC;
|
||||
BOOL unk4F0;
|
||||
AIDCallback unk4F4;
|
||||
s32 unk4F8;
|
||||
} sysData;
|
||||
s8 arInitF;
|
||||
s32 aramP;
|
||||
MSM_HEADER *header;
|
||||
MSM_INFO *info;
|
||||
MSM_AUXPARAM *auxParam;
|
||||
s8 auxParamNo[2];
|
||||
MSM_AUX aux[2]; // 0: userA, 1: userB
|
||||
s8 grpMax;
|
||||
s32 grpNum;
|
||||
u32 sampSize;
|
||||
u32 sampSizeBase;
|
||||
MSM_GRP_INFO *grpInfo;
|
||||
MSM_GRP_SET *grpSet;
|
||||
s8 baseGrpNum;
|
||||
MSM_GRP_HEAD *grpData[15];
|
||||
s8 grpStackAMax;
|
||||
u8 grpStackADepth;
|
||||
s8 grpStackAOfs;
|
||||
void *grpBufA;
|
||||
MSM_GRP_STACK grpStackA[4];
|
||||
s8 grpStackBMax;
|
||||
u8 grpStackBDepth;
|
||||
s8 grpStackBOfs;
|
||||
void *grpBufB;
|
||||
MSM_GRP_STACK grpStackB[10];
|
||||
s32 irqDepth;
|
||||
BOOL irqState;
|
||||
AIDCallback oldAIDCallback;
|
||||
s32 timer;
|
||||
} MSM_SYS;
|
||||
|
||||
s32 msmSysSearchGroupStack(s32 arg0, s32 arg1);
|
||||
s32 msmSysGroupInit(DVDFileInfo *arg0);
|
||||
|
|
@ -176,8 +72,7 @@ void *msmSysGetGroupDataPtr(s32 arg0);
|
|||
BOOL msmSysCheckLoadGroupID(s32 arg0);
|
||||
void msmSysRegularProc(void);
|
||||
s32 msmSysGetOutputMode(void);
|
||||
s32 msmSysSetOutputMode(SND_OUTPUTMODE mode);
|
||||
s32 msmSysSetAux(s32 arg0, s32 arg1);
|
||||
BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode);
|
||||
s32 msmSysGetSampSize(BOOL baseGrp);
|
||||
s32 msmSysDelGroupAll(void);
|
||||
s32 msmSysDelGroupBase(s32 grpNum);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue