commit
dc125f3067
11 changed files with 430 additions and 298 deletions
|
|
@ -3558,7 +3558,7 @@ msmSePlay = .text:0x80119A94; // type:function size:0x480
|
|||
msmSeInit = .text:0x80119F14; // type:function size:0x130
|
||||
msmStreamGetStatus = .text:0x8011A044; // type:function size:0xC8
|
||||
msmStreamSetMasterVolume = .text:0x8011A10C; // type:function size:0x118
|
||||
msmStreamPauseAll = .text:0x8011A224; // type:function size:0xE0
|
||||
msmStreamStopAll = .text:0x8011A224; // type:function size:0xE0
|
||||
msmStreamStop = .text:0x8011A304; // type:function size:0x204
|
||||
msmStreamPlay = .text:0x8011A508; // type:function size:0x88
|
||||
msmStreamPeriodicProc = .text:0x8011A590; // type:function size:0x8C
|
||||
|
|
|
|||
|
|
@ -3,40 +3,41 @@
|
|||
|
||||
#include "dolphin.h"
|
||||
|
||||
typedef struct hu_snd_grp_data {
|
||||
/* 0x00 */ s16 ovl;
|
||||
/* 0x02 */ s16 grpset;
|
||||
/* 0x04 */ s32 auxANo;
|
||||
/* 0x08 */ s32 auxBNo;
|
||||
/* 0x0C */ s8 auxAVol;
|
||||
/* 0x0D */ s8 auxBVol;
|
||||
} HuSndGrpData;
|
||||
typedef struct sndGrpTbl_s {
|
||||
s16 ovl;
|
||||
s16 grpSet;
|
||||
s32 auxANo;
|
||||
s32 auxBNo;
|
||||
s8 auxAVol;
|
||||
s8 auxBVol;
|
||||
} SNDGRPTBL;
|
||||
|
||||
|
||||
void HuAudInit(void);
|
||||
s32 HuAudStreamPlay(char *name, s32 arg1);
|
||||
s32 HuAudStreamPlay(char *name, BOOL flag);
|
||||
void HuAudStreamVolSet(s16 vol);
|
||||
void HuAudStreamPauseOn(void);
|
||||
void HuAudStreamPauseOff(void);
|
||||
void HuAudStreamFadeOut(s32 arg0);
|
||||
void HuAudStreamFadeOut(s32 streamNo);
|
||||
void HuAudAllStop(void);
|
||||
void HuAudFadeOut(s32 arg0);
|
||||
s32 HuAudFXPlay(s32 arg0);
|
||||
s32 HuAudFXPlayVol(s32 arg0, s16 arg1);
|
||||
s32 HuAudFXPlayVolPan(s32 arg0, s16 arg1, s16 arg2);
|
||||
void HuAudFXStop(s32 arg0);
|
||||
void HuAudFadeOut(s32 speed);
|
||||
int HuAudFXPlay(int seId);
|
||||
int HuAudFXPlayVol(int seId, s16 vol);
|
||||
int HuAudFXPlayVolPan(int seId, s16 vol, s16 pan);
|
||||
void HuAudFXStop(int seNo);
|
||||
void HuAudFXAllStop(void);
|
||||
void HuAudFXFadeOut(s32 arg0, s32 arg1);
|
||||
void HuAudFXPanning(s32 arg0, s16 arg1);
|
||||
void HuAudFXListnerSet(Vec* arg0, Vec* arg1, float arg2, float arg3);
|
||||
void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6);
|
||||
void HuAudFXFadeOut(int seNo, s32 speed);
|
||||
void HuAudFXPanning(int seNo, s16 pan);
|
||||
void HuAudFXListnerSet(Vec *pos, Vec *heading, float sndDist, float sndSpeed);
|
||||
void HuAudFXListnerSetEX(Vec *pos, Vec *heading, float sndDist, float sndSpeed, float startDis, float frontSurDis, float backSurDis);
|
||||
void HuAudFXListnerUpdate(Vec *arg0, Vec *arg1);
|
||||
s32 HuAudFXEmiterPlay(s32 arg0, Vec *arg1);
|
||||
void HuAudFXEmiterUpDate(s32 arg0, Vec *arg1);
|
||||
int HuAudFXEmiterPlay(int seId, Vec *pos);
|
||||
void HuAudFXEmiterUpDate(int seNo, Vec *pos);
|
||||
void HuAudFXListnerKill(void);
|
||||
void HuAudFXPauseAll(s32 arg0);
|
||||
s32 HuAudFXStatusGet(s32 arg0);
|
||||
s32 HuAudFXPitchSet(s32 arg0, s16 arg1);
|
||||
s32 HuAudFXVolSet(s32 arg0, s16 arg1);
|
||||
s32 HuAudFXStatusGet(int seNo);
|
||||
s32 HuAudFXPitchSet(int seNo, s16 pitch);
|
||||
s32 HuAudFXVolSet(int seNo, s16 vol);
|
||||
s32 HuAudSeqPlay(s16 arg0);
|
||||
void HuAudSeqStop(s32 arg0);
|
||||
void HuAudSeqFadeOut(s32 arg0, s32 arg1);
|
||||
|
|
@ -73,6 +74,6 @@ extern float Snd3DDistOffset;
|
|||
extern s32 musicOffF;
|
||||
extern u8 fadeStat;
|
||||
|
||||
extern HuSndGrpData HuSndGrpTbl[];
|
||||
extern SNDGRPTBL sndGrpTable[];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,87 +1,203 @@
|
|||
#ifndef _GAME_MSM_H
|
||||
#define _GAME_MSM_H
|
||||
#ifndef MSM_H
|
||||
#define MSM_H
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "musyx/musyx.h"
|
||||
|
||||
typedef struct {
|
||||
s32 unk00;
|
||||
s32 unk04;
|
||||
char unk08[4];
|
||||
char *unk0C;
|
||||
char *unk10;
|
||||
s32 unk14;
|
||||
s32 unk18;
|
||||
s32 unk1C;
|
||||
void *unk20;
|
||||
s32 unk24;
|
||||
} UnkMsmStruct_00; // Size 0x28
|
||||
#define MSM_SEPARAM_NONE 0
|
||||
#define MSM_SEPARAM_VOL (1 << 0)
|
||||
#define MSM_SEPARAM_PAN (1 << 1)
|
||||
#define MSM_SEPARAM_PITCH (1 << 2)
|
||||
#define MSM_SEPARAM_SPAN (1 << 3)
|
||||
#define MSM_SEPARAM_AUXVOLA (1 << 4)
|
||||
#define MSM_SEPARAM_AUXVOLB (1 << 5)
|
||||
#define MSM_SEPARAM_POS (1 << 6)
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
/* 0x04 */ s8 unk04;
|
||||
/* 0x05 */ s8 unk05;
|
||||
/* 0x06 */ s16 unk06;
|
||||
/* 0x08 */ char unk08[1];
|
||||
/* 0x09 */ s8 unk09;
|
||||
/* 0x0A */ s8 unk0A;
|
||||
/* 0x0B */ char unk0B[5];
|
||||
/* 0x10 */ Vec unk10;
|
||||
} UnkMsmStruct_01; // Size 0x1C
|
||||
#define MSM_LISTENER_NONE 0
|
||||
#define MSM_LISTENER_STARTDIS (1 << 0)
|
||||
#define MSM_LISTENER_FRONTSURDIS (1 << 1)
|
||||
#define MSM_LISTENER_BACKSURDIS (1 << 2)
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
/* 0x04 */ float startDis;
|
||||
/* 0x08 */ float frontSurDis;
|
||||
/* 0x0C */ float backSurDis;
|
||||
} UnkMsmStruct_02; // Size (min: 0x10, max: 0x1C)
|
||||
#define MSM_MUSPARAM_NONE 0
|
||||
#define MSM_MUSPARAM_CHAN (1 << 0)
|
||||
#define MSM_MUSPARAM_VOL (1 << 1)
|
||||
#define MSM_MUSPARAM_PAUSE (1 << 2)
|
||||
#define MSM_MUSPARAM_FADESPEED (1 << 3)
|
||||
#define MSM_MUSPARAM_SPEED (1 << 4)
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
/* 0x04 */ s8 unk04;
|
||||
/* 0x05 */ s8 unk05;
|
||||
/* 0x06 */ u16 unk06;
|
||||
} UnkMsmStruct_03; // Size unknown (min: 8, max: 0x10)
|
||||
#define MSM_STREAMPARAM_NONE 0
|
||||
#define MSM_STREAMPARAM_VOL (1 << 0)
|
||||
#define MSM_STREAMPARAM_PAN (1 << 1)
|
||||
#define MSM_STREAMPARAM_SPAN (1 << 2)
|
||||
#define MSM_STREAMPARAM_AUXA (1 << 4)
|
||||
#define MSM_STREAMPARAM_AUXB (1 << 5)
|
||||
#define MSM_STREAMPARAM_FADESPEED (1 << 8)
|
||||
#define MSM_STREAMPARAM_CHAN (1 << 9)
|
||||
#define MSM_STREAMPARAM_PAUSE (1 << 10)
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
/* 0x04 */ char unk04[1];
|
||||
/* 0x05 */ s8 unk05;
|
||||
/* 0x06 */ u16 unk06;
|
||||
/* 0x08 */ char unk08[1];
|
||||
} UnkMsmStruct_04; // Size unknown (min: 9, max: 0x18)
|
||||
#define MSM_ERR_OPENFAIL -1
|
||||
#define MSM_ERR_READFAIL -2
|
||||
#define MSM_ERR_OUTOFMEM -10
|
||||
#define MSM_ERR_OUTOFAMEM -20
|
||||
#define MSM_ERR_INITFAIL -20
|
||||
#define MSM_ERR_INVALID_AUXPARAM -31
|
||||
#define MSM_ERR_PLAYFAIL -33
|
||||
#define MSM_ERR_STREAMALLOC_FAIL -35
|
||||
#define MSM_ERR_INSTALLED -36
|
||||
#define MSM_ERR_GRP_NOTLOADED -103
|
||||
#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
|
||||
|
||||
void msmSysRegularProc(void);
|
||||
void msmSysSetOutputMode(s32 arg0);
|
||||
void msmSysSetAux(s32 arg0, s32 arg1);
|
||||
s32 msmSysGetSampSize(s32 arg0);
|
||||
#define MSM_VOL_MAX 127
|
||||
#define MSM_PAN_LEFT 32
|
||||
#define MSM_PAN_CENTER 64
|
||||
#define MSM_PAN_RIGHT 96
|
||||
|
||||
#define MSM_SE_DONE 0
|
||||
#define MSM_SE_PLAY 1
|
||||
#define MSM_SE_PAUSEIN 2
|
||||
#define MSM_SE_PAUSEOUT 3
|
||||
|
||||
#define MSM_MUS_DONE 0
|
||||
#define MSM_MUS_STOP 1
|
||||
#define MSM_MUS_PLAY 2
|
||||
#define MSM_MUS_PAUSE 3
|
||||
|
||||
#define MSM_STREAM_DONE 0
|
||||
#define MSM_STREAM_STOP 1
|
||||
#define MSM_STREAM_PLAY 2
|
||||
#define MSM_STREAM_PAUSEIN 3
|
||||
#define MSM_STREAM_PAUSEOUT 4
|
||||
#define MSM_STREAM_DVDERROR 5
|
||||
|
||||
#define MSM_MUS_MAX 4
|
||||
|
||||
#define MSM_STREAM_NONE -1
|
||||
|
||||
#define MSM_AUXA_DEFAULT 0
|
||||
#define MSM_AUXB_DEFAULT 1
|
||||
#define MSM_AUX_NONE -1
|
||||
|
||||
#define MSM_ENTRY_SENO_MAX 32
|
||||
|
||||
typedef BOOL (*MSM_OPEN)(s32 entrynum, DVDFileInfo *fileInfo);
|
||||
typedef BOOL (*MSM_READ)(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset, s32 prio);
|
||||
typedef BOOL (*MSM_CLOSE)(DVDFileInfo *fileInfo);
|
||||
|
||||
|
||||
typedef struct msmAram_s {
|
||||
BOOL skipARInit;
|
||||
union {
|
||||
struct {
|
||||
u32 aramEnd;
|
||||
};
|
||||
struct {
|
||||
u32 numEntries;
|
||||
u32 *stackIndex;
|
||||
};
|
||||
};
|
||||
} MSM_ARAM;
|
||||
|
||||
typedef struct msmInit_s {
|
||||
char *msmPath;
|
||||
char *pdtPath;
|
||||
MSM_OPEN open;
|
||||
MSM_READ read;
|
||||
MSM_CLOSE close;
|
||||
void *heap;
|
||||
u32 heapSize;
|
||||
} MSM_INIT;
|
||||
|
||||
typedef struct msmSeParam_s {
|
||||
s32 flag;
|
||||
s8 vol;
|
||||
s8 pan;
|
||||
s16 pitch;
|
||||
u8 span;
|
||||
s8 auxAVol;
|
||||
s8 auxBVol;
|
||||
s32 pad;
|
||||
Vec pos;
|
||||
} MSM_SEPARAM;
|
||||
|
||||
typedef struct msmSe_s {
|
||||
u16 groupId;
|
||||
u16 fxId;
|
||||
s8 vol;
|
||||
s8 pan;
|
||||
s16 pitchBend;
|
||||
u8 span;
|
||||
u8 reverb;
|
||||
u8 chorus;
|
||||
u8 doppler;
|
||||
s8 comp;
|
||||
u8 pad[3];
|
||||
} MSMSE;
|
||||
|
||||
typedef struct msmSeListener_s {
|
||||
s32 flag;
|
||||
float startDis;
|
||||
float frontSurDis;
|
||||
float backSurDis;
|
||||
} MSM_SELISTENER;
|
||||
|
||||
typedef struct msmMusParam_s {
|
||||
s32 flag;
|
||||
s8 chan;
|
||||
s8 vol;
|
||||
u16 fadeSpeed;
|
||||
u16 speed;
|
||||
} MSM_MUSPARAM;
|
||||
|
||||
typedef struct msmStreamParam_s {
|
||||
s32 flag;
|
||||
s8 vol;
|
||||
s8 pan;
|
||||
s8 span;
|
||||
s8 auxA;
|
||||
s8 auxB;
|
||||
s8 chan;
|
||||
u16 fadeSpeed;
|
||||
} MSM_STREAMPARAM;
|
||||
|
||||
s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram);
|
||||
void msmSysSetOutputMode(SND_OUTPUTMODE mode);
|
||||
s32 msmSysDelGroupAll(void);
|
||||
s32 msmSysDelGroupBase(s32 arg0);
|
||||
void msmSysLoadGroupBase(s32 arg0, void *arg1);
|
||||
s32 msmSysLoadGroupSet(s32 arg0, void *arg1);
|
||||
s32 msmSysInit(char **arg0, UnkMsmStruct_00 *arg1);
|
||||
s32 msmMusGetMidiCtrl(s32 arg0, s32 arg1, s32 arg2);
|
||||
s32 msmMusGetNumPlay(s32 arg0);
|
||||
s32 msmMusGetStatus(s32 arg0);
|
||||
void msmMusPauseAll(s32 arg0, s32 arg1);
|
||||
void msmMusPause(s32 arg0, s32 arg1, s32 arg2);
|
||||
void msmMusSetParam(s16 arg0, UnkMsmStruct_04 *arg1);
|
||||
void msmMusStopAll(s32 arg0, s32 arg1);
|
||||
void msmMusStop(s32 arg0, s32 arg1);
|
||||
s32 msmMusPlay(s32 arg0, UnkMsmStruct_03 *arg1);
|
||||
void msmSeDelListener(void);
|
||||
void msmSeUpdataListener(Vec *arg0, Vec *arg1);
|
||||
void msmSeSetListener(Vec* arg0, Vec* arg1, float arg2, float arg3, UnkMsmStruct_02 *arg4);
|
||||
s32 msmSeGetEntryID(s32 arg0, void *arg1);
|
||||
s32 msmSeGetNumPlay(s32 arg0);
|
||||
s32 msmSeGetStatus(s32 arg0);
|
||||
s32 msmSeSetParam(s32 arg0, UnkMsmStruct_01 *arg1);
|
||||
void msmSePauseAll(s32 arg0, s32 arg1);
|
||||
void msmSeStopAll(s32 arg0, s32 arg1);
|
||||
void msmSeStop(s32 arg0, s32 arg1);
|
||||
s32 msmSePlay(s32 arg0, UnkMsmStruct_01 *arg1);
|
||||
s32 msmStreamGetStatus(s32 arg0);
|
||||
void msmStreamPauseAll(s32 arg0);
|
||||
void msmStreamStop(s32 arg0, s32 arg1);
|
||||
s32 msmStreamPlay(s16 arg0, s32 *arg1);
|
||||
s32 msmSysLoadGroup(s32 grp, void *buf, BOOL flag);
|
||||
s32 msmSysGetSampSize(BOOL baseGrp);
|
||||
s32 msmSysDelGroupBase(s32 grpNum);
|
||||
|
||||
#endif
|
||||
s32 msmSeSetParam(int seNo, MSM_SEPARAM *param);
|
||||
int msmSePlay(int seId, MSM_SEPARAM *param);
|
||||
s32 msmSeStop(int seNo, s32 speed);
|
||||
s32 msmSePauseAll(BOOL pause, s32 speed);
|
||||
s32 msmSePause(int seNo, BOOL pause, s32 speed);
|
||||
void msmSeStopAll(BOOL checkGrp, s32 speed);
|
||||
s32 msmSeSetListener(Vec *pos, Vec *heading, float sndDist, float sndSpeed, MSM_SELISTENER *listener);
|
||||
s32 msmSeUpdataListener(Vec *pos, Vec *heading);
|
||||
void msmSeDelListener(void);
|
||||
s32 msmSeGetStatus(int seNo);
|
||||
s32 msmSeGetNumPlay(BOOL baseGrp);
|
||||
s32 msmSeGetEntryID(s16 seId, int *seNo);
|
||||
|
||||
int msmMusPlay(int musId, MSM_MUSPARAM *musParam);
|
||||
s32 msmMusStop(int musNo, s32 speed);
|
||||
s32 msmMusPauseAll(BOOL pause, s32 speed);
|
||||
s32 msmMusPause(int musNo, BOOL pause, s32 speed);
|
||||
s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl);
|
||||
void msmMusStopAll(BOOL checkGrp, s32 speed);
|
||||
s32 msmMusGetStatus(int musNo);
|
||||
s32 msmMusGetNumPlay(BOOL baseGrp);
|
||||
|
||||
int msmStreamPlay(int streamId, MSM_STREAMPARAM *streamParam);
|
||||
s32 msmStreamStop(int streamNo, s32 speed);
|
||||
s32 msmStreamPauseAll(BOOL pause, s32 speed);
|
||||
s32 msmStreamPause(int streamNo, BOOL pause, s32 speed);
|
||||
|
||||
void msmStreamStopAll(s32 speed);
|
||||
s32 msmStreamGetStatus(int streamNo);
|
||||
|
||||
#endif
|
||||
|
|
@ -502,13 +502,13 @@ static BOOL TitleProc(void)
|
|||
{
|
||||
float scale;
|
||||
float scale_time;
|
||||
s32 y_offset[32];
|
||||
int seNo[32];
|
||||
s16 i;
|
||||
Hu3DModelAttrReset(titleModel[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(titleModel[1], HU3D_ATTR_DISPOFF);
|
||||
HuSprAttrReset(titleGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrReset(titleGroup, 1, HUSPR_ATTR_DISPOFF);
|
||||
OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, y_offset));
|
||||
OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, seNo));
|
||||
OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0));
|
||||
HuAudSStreamPlay(20);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
|
|
|
|||
|
|
@ -65,13 +65,13 @@ void ObjectSetup(void)
|
|||
lbl_1_bss_10 = 0;
|
||||
lbl_1_bss_4 = 0;
|
||||
_ClearFlag(0x1000C);
|
||||
for (i = 0; HuSndGrpTbl[i].ovl != OVL_INVALID; i++) {
|
||||
if (HuSndGrpTbl[i].ovl == mgInfoTbl[lbl_1_bss_14].ovl) {
|
||||
for (i = 0; sndGrpTable[i].ovl != OVL_INVALID; i++) {
|
||||
if (sndGrpTable[i].ovl == mgInfoTbl[lbl_1_bss_14].ovl) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (HuSndGrpTbl[i].ovl != OVL_INVALID) {
|
||||
HuAudSndGrpSetSet(HuSndGrpTbl[i].grpset);
|
||||
if (sndGrpTable[i].ovl != OVL_INVALID) {
|
||||
HuAudSndGrpSetSet(sndGrpTable[i].grpSet);
|
||||
}
|
||||
if (mgInfoTbl[lbl_1_bss_14].ovl == OVL_M411) {
|
||||
if (GWMGTypeGet() == -1) {
|
||||
|
|
|
|||
|
|
@ -972,13 +972,13 @@ void fn_1_3F30(omObjData *object)
|
|||
}
|
||||
}
|
||||
|
||||
void fn_1_445C(s32 arg0, s16 arg1)
|
||||
void fn_1_445C(int seId, s16 vol)
|
||||
{
|
||||
UnkMsmStruct_01 sp8;
|
||||
MSM_SEPARAM param;
|
||||
|
||||
sp8.unk00 = 1;
|
||||
sp8.unk04 = arg1;
|
||||
msmSeSetParam(arg0, &sp8);
|
||||
param.flag = MSM_SEPARAM_VOL;
|
||||
param.vol = vol;
|
||||
msmSeSetParam(seId, ¶m);
|
||||
}
|
||||
|
||||
void fn_1_44A0(omObjData *object)
|
||||
|
|
|
|||
|
|
@ -2196,10 +2196,10 @@ void fn_1_79FC(Mtx arg0, Mtx arg1)
|
|||
arg1[2][3] = 0;
|
||||
}
|
||||
|
||||
s32 fn_1_7A78(s32 arg0, s16 arg1)
|
||||
s32 fn_1_7A78(s32 arg0, s16 vol)
|
||||
{
|
||||
UnkMsmStruct_01 sp10;
|
||||
sp10.unk00 = 1;
|
||||
sp10.unk04 = arg1;
|
||||
return msmSeSetParam(arg0, &sp10);
|
||||
MSM_SEPARAM seParam;
|
||||
seParam.flag = MSM_SEPARAM_VOL;
|
||||
seParam.vol = vol;
|
||||
return msmSeSetParam(arg0, &seParam);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@ static void fn_1_D0DC(void) {
|
|||
}
|
||||
|
||||
static void fn_1_D174(omObjData *arg0) {
|
||||
UnkMsmStruct_03 sp8;
|
||||
MSM_MUSPARAM musParam;
|
||||
|
||||
if (arg0->work[0] == 0) {
|
||||
arg0->work[0] = MGSeqCreate(3, 0);
|
||||
|
|
@ -243,11 +243,11 @@ static void fn_1_D174(omObjData *arg0) {
|
|||
return;
|
||||
}
|
||||
if (MGSeqStatGet(arg0->work[0]) == 0) {
|
||||
sp8.unk00 = 1;
|
||||
sp8.unk06 = 0;
|
||||
sp8.unk05 = 0x7F;
|
||||
sp8.unk04 = 1;
|
||||
lbl_1_data_588 = msmMusPlay(0x1D, &sp8);
|
||||
musParam.flag = MSM_MUSPARAM_CHAN;
|
||||
musParam.fadeSpeed = 0;
|
||||
musParam.vol = 0x7F;
|
||||
musParam.chan = 1;
|
||||
lbl_1_data_588 = msmMusPlay(0x1D, &musParam);
|
||||
arg0->func = fn_1_D230;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
317
src/game/audio.c
317
src/game/audio.c
|
|
@ -5,7 +5,7 @@
|
|||
#include "game/wipe.h"
|
||||
#include "game/gamework_data.h"
|
||||
|
||||
static s32 HuSePlay(s32 arg0, UnkMsmStruct_01 *arg1);
|
||||
static int HuSePlay(int seId, MSM_SEPARAM *param);
|
||||
|
||||
extern s16 omSysExitReq;
|
||||
|
||||
|
|
@ -32,29 +32,34 @@ static char *lbl_8012E9AC[] = {
|
|||
""
|
||||
};
|
||||
|
||||
void HuAudInit(void) {
|
||||
UnkMsmStruct_00 sp8;
|
||||
s32 temp_r3;
|
||||
|
||||
void HuAudInit(void)
|
||||
{
|
||||
MSM_INIT msmInit;
|
||||
MSM_ARAM msmAram;
|
||||
|
||||
s32 result;
|
||||
s16 i;
|
||||
|
||||
sp8.unk20 = HuMemDirectMalloc(HEAP_MUSIC, 0x13FC00);
|
||||
sp8.unk24 = 0x13FC00;
|
||||
sp8.unk0C = "/sound/mpgcsnd.msm";
|
||||
sp8.unk10 = "/sound/mpgcstr.pdt";
|
||||
sp8.unk14 = 0;
|
||||
sp8.unk18 = 0;
|
||||
sp8.unk1C = 0;
|
||||
sp8.unk00 = 1;
|
||||
sp8.unk04 = 0x808000;
|
||||
temp_r3 = msmSysInit(&sp8.unk0C, &sp8);
|
||||
if (temp_r3 < 0) {
|
||||
OSReport("MSM(Sound Manager) Error:Error Code %d\n", temp_r3);
|
||||
msmInit.heap = HuMemDirectMalloc(HEAP_MUSIC, 0x13FC00);
|
||||
msmInit.heapSize = 0x13FC00;
|
||||
msmInit.msmPath = "/sound/mpgcsnd.msm";
|
||||
msmInit.pdtPath = "/sound/mpgcstr.pdt";
|
||||
msmInit.open = NULL;
|
||||
msmInit.read = NULL;
|
||||
msmInit.close = NULL;
|
||||
msmAram.skipARInit = TRUE;
|
||||
msmAram.aramEnd = 0x808000;
|
||||
result = msmSysInit(&msmInit, &msmAram);
|
||||
|
||||
if (result < 0) {
|
||||
OSReport("MSM(Sound Manager) Error:Error Code %d\n", result);
|
||||
while (1);
|
||||
}
|
||||
if (OSGetSoundMode() == 0) {
|
||||
msmSysSetOutputMode(0);
|
||||
if (OSGetSoundMode() == OS_SOUND_MODE_MONO) {
|
||||
msmSysSetOutputMode(SND_OUTPUTMODE_MONO);
|
||||
} else {
|
||||
msmSysSetOutputMode(2);
|
||||
msmSysSetOutputMode(SND_OUTPUTMODE_SURROUND);
|
||||
}
|
||||
for (i = 0; i < 64; i++) {
|
||||
sndFXBuf[i][0] = -1;
|
||||
|
|
@ -68,7 +73,7 @@ void HuAudInit(void) {
|
|||
musicOffF = 0;
|
||||
}
|
||||
|
||||
s32 HuAudStreamPlay(char *name, s32 arg1) {
|
||||
s32 HuAudStreamPlay(char *name, BOOL flag) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -101,115 +106,122 @@ void HuAudFadeOut(s32 arg0) {
|
|||
HuAudSStreamAllFadeOut(arg0);
|
||||
}
|
||||
|
||||
s32 HuAudFXPlay(s32 arg0) {
|
||||
int HuAudFXPlay(int seId)
|
||||
{
|
||||
WipeState *wipe = &wipeData;
|
||||
|
||||
if (omSysExitReq != 0 || (wipeData.mode == WIPE_MODE_OUT && wipe->time / wipe->duration > 0.5)) {
|
||||
return 0;
|
||||
}
|
||||
return HuAudFXPlayVolPan(arg0, 0x7F, 0x40);
|
||||
return HuAudFXPlayVolPan(seId, MSM_VOL_MAX, MSM_PAN_CENTER);
|
||||
}
|
||||
|
||||
s32 HuAudFXPlayVol(s32 arg0, s16 arg1) {
|
||||
int HuAudFXPlayVol(int seId, s16 vol) {
|
||||
if (omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
return HuAudFXPlayVolPan(arg0, arg1, 0x40);
|
||||
return HuAudFXPlayVolPan(seId, vol, MSM_PAN_CENTER);
|
||||
}
|
||||
|
||||
s32 HuAudFXPlayVolPan(s32 arg0, s16 arg1, s16 arg2) {
|
||||
UnkMsmStruct_01 sp10;
|
||||
int HuAudFXPlayVolPan(int seId, s16 vol, s16 pan)
|
||||
{
|
||||
MSM_SEPARAM seParam;
|
||||
|
||||
if (omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
sp10.unk00 = 3;
|
||||
sp10.unk04 = arg1;
|
||||
sp10.unk05 = arg2;
|
||||
return HuSePlay(arg0, &sp10);
|
||||
seParam.flag = MSM_SEPARAM_VOL|MSM_SEPARAM_PAN;
|
||||
seParam.vol = vol;
|
||||
seParam.pan = pan;
|
||||
return HuSePlay(seId, &seParam);
|
||||
}
|
||||
|
||||
void HuAudFXStop(s32 arg0) {
|
||||
msmSeStop(arg0, 0);
|
||||
void HuAudFXStop(int seNo) {
|
||||
msmSeStop(seNo, 0);
|
||||
}
|
||||
|
||||
void HuAudFXAllStop(void) {
|
||||
msmSeStopAll(0, 0);
|
||||
}
|
||||
|
||||
void HuAudFXFadeOut(s32 arg0, s32 arg1) {
|
||||
msmSeStop(arg0, arg1);
|
||||
void HuAudFXFadeOut(int seNo, s32 speed) {
|
||||
msmSeStop(seNo, speed);
|
||||
}
|
||||
|
||||
void HuAudFXPanning(s32 arg0, s16 arg1) {
|
||||
UnkMsmStruct_01 sp10;
|
||||
void HuAudFXPanning(int seNo, s16 pan) {
|
||||
MSM_SEPARAM seParam;
|
||||
|
||||
if (omSysExitReq == 0) {
|
||||
sp10.unk00 = 2;
|
||||
sp10.unk05 = arg1;
|
||||
msmSeSetParam(arg0, &sp10);
|
||||
seParam.flag = MSM_SEPARAM_PAN;
|
||||
seParam.pan = pan;
|
||||
msmSeSetParam(seNo, &seParam);
|
||||
}
|
||||
}
|
||||
|
||||
void HuAudFXListnerSet(Vec* arg0, Vec* arg1, float arg2, float arg3) {
|
||||
void HuAudFXListnerSet(Vec *pos, Vec *heading, float sndDist, float sndSpeed)
|
||||
{
|
||||
if(omSysExitReq) {
|
||||
return;
|
||||
}
|
||||
HuAudFXListnerSetEX(pos, heading,
|
||||
sndDist + Snd3DDistOffset,
|
||||
sndSpeed + Snd3DSpeedOffset,
|
||||
Snd3DStartDisOffset,
|
||||
Snd3DFrontSurDisOffset + (0.25 * sndDist + Snd3DStartDisOffset),
|
||||
Snd3DBackSurDisOffset + (0.25 * sndDist + Snd3DStartDisOffset));
|
||||
}
|
||||
|
||||
void HuAudFXListnerSetEX(Vec *pos, Vec *heading, float sndDist, float sndSpeed, float startDis, float frontSurDis, float backSurDis)
|
||||
{
|
||||
MSM_SELISTENER listener;
|
||||
if(omSysExitReq) {
|
||||
return;
|
||||
}
|
||||
listener.flag = MSM_LISTENER_STARTDIS|MSM_LISTENER_FRONTSURDIS|MSM_LISTENER_BACKSURDIS;
|
||||
listener.startDis = startDis + Snd3DStartDisOffset;
|
||||
listener.frontSurDis = frontSurDis + Snd3DFrontSurDisOffset;
|
||||
listener.backSurDis = backSurDis + Snd3DBackSurDisOffset;
|
||||
msmSeSetListener(pos, heading, sndDist + Snd3DDistOffset, sndSpeed + Snd3DSpeedOffset, &listener);
|
||||
OSReport("//////////////////////////////////\n");
|
||||
OSReport("sndDist %f\n", sndDist);
|
||||
OSReport("sndSpeed %f\n", sndSpeed);
|
||||
OSReport("startDis %f\n", listener.startDis);
|
||||
OSReport("frontSurDis %f\n", listener.frontSurDis);
|
||||
OSReport("backSurDis %f\n", listener.backSurDis);
|
||||
OSReport("//////////////////////////////////\n");
|
||||
}
|
||||
|
||||
void HuAudFXListnerUpdate(Vec *pos, Vec *heading)
|
||||
{
|
||||
if (omSysExitReq == 0) {
|
||||
HuAudFXListnerSetEX(arg0, arg1,
|
||||
arg2 + Snd3DDistOffset,
|
||||
arg3 + Snd3DSpeedOffset,
|
||||
Snd3DStartDisOffset,
|
||||
Snd3DFrontSurDisOffset + (0.25 * arg2 + Snd3DStartDisOffset),
|
||||
Snd3DBackSurDisOffset + (0.25 * arg2 + Snd3DStartDisOffset));
|
||||
msmSeUpdataListener(pos, heading);
|
||||
}
|
||||
}
|
||||
|
||||
void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6) {
|
||||
UnkMsmStruct_02 sp1C;
|
||||
|
||||
if (omSysExitReq == 0) {
|
||||
sp1C.unk00 = 7;
|
||||
sp1C.startDis = arg4 + Snd3DStartDisOffset;
|
||||
sp1C.frontSurDis = arg5 + Snd3DFrontSurDisOffset;
|
||||
sp1C.backSurDis = arg6 + Snd3DBackSurDisOffset;
|
||||
msmSeSetListener(arg0, arg1, sndDist + Snd3DDistOffset, sndSpeed + Snd3DSpeedOffset, &sp1C);
|
||||
OSReport("//////////////////////////////////\n");
|
||||
OSReport("sndDist %f\n", sndDist);
|
||||
OSReport("sndSpeed %f\n", sndSpeed);
|
||||
OSReport("startDis %f\n", sp1C.startDis);
|
||||
OSReport("frontSurDis %f\n", sp1C.frontSurDis);
|
||||
OSReport("backSurDis %f\n", sp1C.backSurDis);
|
||||
OSReport("//////////////////////////////////\n");
|
||||
int HuAudFXEmiterPlay(int seId, Vec *pos)
|
||||
{
|
||||
MSM_SEPARAM seParam;
|
||||
if(omSysExitReq) {
|
||||
return 0;
|
||||
}
|
||||
seParam.flag = MSM_SEPARAM_POS;
|
||||
seParam.pos.x = pos->x;
|
||||
seParam.pos.y = pos->y;
|
||||
seParam.pos.z = pos->z;
|
||||
return HuSePlay(seId, &seParam);
|
||||
}
|
||||
|
||||
void HuAudFXListnerUpdate(Vec *arg0, Vec *arg1) {
|
||||
if (omSysExitReq == 0) {
|
||||
msmSeUpdataListener(arg0, arg1);
|
||||
}
|
||||
}
|
||||
|
||||
s32 HuAudFXEmiterPlay(s32 arg0, Vec *arg1) {
|
||||
UnkMsmStruct_01 spC;
|
||||
|
||||
if (omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
spC.unk00 = 0x40;
|
||||
spC.unk10.x = arg1->x;
|
||||
spC.unk10.y = arg1->y;
|
||||
spC.unk10.z = arg1->z;
|
||||
return HuSePlay(arg0, &spC);
|
||||
}
|
||||
|
||||
void HuAudFXEmiterUpDate(s32 arg0, Vec *arg1) {
|
||||
UnkMsmStruct_01 spC;
|
||||
|
||||
if (omSysExitReq == 0) {
|
||||
spC.unk00 = 0x40;
|
||||
spC.unk10.x = arg1->x;
|
||||
spC.unk10.y = arg1->y;
|
||||
spC.unk10.z = arg1->z;
|
||||
msmSeSetParam(arg0, &spC);
|
||||
void HuAudFXEmiterUpDate(int seNo, Vec *pos)
|
||||
{
|
||||
MSM_SEPARAM param;
|
||||
if(omSysExitReq) {
|
||||
return;
|
||||
}
|
||||
param.flag = MSM_SEPARAM_POS;
|
||||
param.pos.x = pos->x;
|
||||
param.pos.y = pos->y;
|
||||
param.pos.z = pos->z;
|
||||
msmSeSetParam(seNo, ¶m);
|
||||
}
|
||||
|
||||
void HuAudFXListnerKill(void) {
|
||||
|
|
@ -220,30 +232,31 @@ void HuAudFXPauseAll(s32 arg0) {
|
|||
msmSePauseAll(arg0, 0x64);
|
||||
}
|
||||
|
||||
s32 HuAudFXStatusGet(s32 arg0) {
|
||||
return msmSeGetStatus(arg0);
|
||||
s32 HuAudFXStatusGet(int seNo) {
|
||||
return msmSeGetStatus(seNo);
|
||||
}
|
||||
|
||||
s32 HuAudFXPitchSet(s32 arg0, s16 arg1) {
|
||||
UnkMsmStruct_01 sp10;
|
||||
|
||||
if (omSysExitReq != 0) {
|
||||
s32 HuAudFXPitchSet(int seNo, s16 pitch)
|
||||
{
|
||||
MSM_SEPARAM param;
|
||||
if(omSysExitReq) {
|
||||
return 0;
|
||||
}
|
||||
sp10.unk00 = 4;
|
||||
sp10.unk06 = arg1;
|
||||
return msmSeSetParam(arg0, &sp10);
|
||||
param.flag = MSM_SEPARAM_PITCH;
|
||||
param.pitch = pitch;
|
||||
return msmSeSetParam(seNo, ¶m);
|
||||
}
|
||||
|
||||
s32 HuAudFXVolSet(s32 arg0, s16 arg1) {
|
||||
UnkMsmStruct_01 sp10;
|
||||
s32 HuAudFXVolSet(int seNo, s16 vol)
|
||||
{
|
||||
MSM_SEPARAM param;
|
||||
|
||||
if (omSysExitReq != 0) {
|
||||
if(omSysExitReq) {
|
||||
return 0;
|
||||
}
|
||||
sp10.unk00 = 1;
|
||||
sp10.unk04 = arg1;
|
||||
return msmSeSetParam(arg0, &sp10);
|
||||
param.flag = MSM_SEPARAM_VOL;
|
||||
param.vol = vol;
|
||||
return msmSeSetParam(seNo, ¶m);
|
||||
}
|
||||
|
||||
s32 HuAudSeqPlay(s16 arg0) {
|
||||
|
|
@ -301,16 +314,16 @@ s32 HuAudSeqMidiCtrlGet(s32 arg0, s8 arg1, s8 arg2) {
|
|||
return msmMusGetMidiCtrl(arg0, arg1, arg2);
|
||||
}
|
||||
|
||||
s32 HuAudSStreamPlay(s16 arg0) {
|
||||
s32 spC;
|
||||
s32 temp_r31;
|
||||
s32 HuAudSStreamPlay(s16 streamId) {
|
||||
MSM_STREAMPARAM param;
|
||||
s32 result;
|
||||
|
||||
if (musicOffF != 0 || omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
spC = 0;
|
||||
temp_r31 = msmStreamPlay(arg0, &spC);
|
||||
return temp_r31;
|
||||
param.flag = MSM_STREAMPARAM_NONE ;
|
||||
result = msmStreamPlay(streamId, ¶m);
|
||||
return result;
|
||||
}
|
||||
|
||||
void HuAudSStreamStop(s32 arg0) {
|
||||
|
|
@ -326,18 +339,18 @@ void HuAudSStreamFadeOut(s32 arg0, s32 arg1) {
|
|||
}
|
||||
|
||||
void HuAudSStreamAllFadeOut(s32 arg0) {
|
||||
msmStreamPauseAll(arg0);
|
||||
msmStreamStopAll(arg0);
|
||||
}
|
||||
|
||||
void HuAudSStreamAllStop(void) {
|
||||
msmStreamPauseAll(0);
|
||||
msmStreamStopAll(0);
|
||||
}
|
||||
|
||||
s32 HuAudSStreamStatGet(s32 arg0) {
|
||||
return msmStreamGetStatus(arg0);
|
||||
}
|
||||
|
||||
HuSndGrpData HuSndGrpTbl[] = {
|
||||
SNDGRPTBL sndGrpTable[] = {
|
||||
{ OVL_BOOT, -1, 0, 1, -1, -1 },
|
||||
{ OVL_INST, -1, 0, 1, -1, -1 },
|
||||
{ OVL_M401, 18, 0, 2, 64, 64 },
|
||||
|
|
@ -432,13 +445,13 @@ HuSndGrpData HuSndGrpTbl[] = {
|
|||
};
|
||||
|
||||
void HuAudDllSndGrpSet(u16 ovl) {
|
||||
HuSndGrpData *var_r31;
|
||||
SNDGRPTBL *var_r31;
|
||||
s16 var_r29;
|
||||
|
||||
var_r31 = HuSndGrpTbl;
|
||||
var_r31 = sndGrpTable;
|
||||
while (1) {
|
||||
if (var_r31->ovl == ovl) {
|
||||
var_r29 = var_r31->grpset;
|
||||
var_r29 = var_r31->grpSet;
|
||||
break;
|
||||
}
|
||||
if (var_r31->ovl == OVL_INVALID) {
|
||||
|
|
@ -540,7 +553,7 @@ void HuAudAUXVolSet(s8 arg0, s8 arg1) {
|
|||
}
|
||||
|
||||
void HuAudVoiceInit(s16 ovl) {
|
||||
HuSndGrpData *var_r29;
|
||||
SNDGRPTBL *var_r29;
|
||||
OSTick temp_r23;
|
||||
s16 temp_r26;
|
||||
s16 temp_r25;
|
||||
|
|
@ -550,9 +563,9 @@ void HuAudVoiceInit(s16 ovl) {
|
|||
s16 i;
|
||||
|
||||
if (ovl != OVL_INVALID) {
|
||||
var_r29 = HuSndGrpTbl;
|
||||
var_r29 = sndGrpTable;
|
||||
while (1) {
|
||||
if (var_r29->ovl == ovl && var_r29->grpset == -1) {
|
||||
if (var_r29->ovl == ovl && var_r29->grpSet == -1) {
|
||||
return;
|
||||
}
|
||||
if (var_r29->ovl == OVL_INVALID) {
|
||||
|
|
@ -615,65 +628,67 @@ void HuAudPlayerVoicePlayEntry(s16 arg0, s16 arg1) {
|
|||
HuAudCharVoicePlayEntry(temp_r31, arg1);
|
||||
}
|
||||
|
||||
s32 HuAudCharVoicePlay(s16 arg0, s16 arg1) {
|
||||
UnkMsmStruct_01 spC;
|
||||
s32 HuAudCharVoicePlay(s16 charNo, s16 seId)
|
||||
{
|
||||
MSM_SEPARAM param;
|
||||
|
||||
if (omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
arg1 += (arg0 << 6);
|
||||
spC.unk00 = 0;
|
||||
seId += (charNo << 6);
|
||||
param.flag = MSM_SEPARAM_NONE;
|
||||
if (HuAuxAVol != -1) {
|
||||
spC.unk00 |= 0x10;
|
||||
param.flag |= MSM_SEPARAM_AUXVOLA;
|
||||
}
|
||||
if (HuAuxBVol != -1) {
|
||||
spC.unk00 |= 0x20;
|
||||
param.flag |= MSM_SEPARAM_AUXVOLB;
|
||||
}
|
||||
spC.unk09 = HuAuxAVol;
|
||||
spC.unk0A = HuAuxBVol;
|
||||
return HuSePlay(arg1, &spC);
|
||||
param.auxAVol = HuAuxAVol;
|
||||
param.auxBVol = HuAuxBVol;
|
||||
return HuSePlay(seId, ¶m);
|
||||
}
|
||||
|
||||
s32 HuAudCharVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2) {
|
||||
UnkMsmStruct_01 spC;
|
||||
s32 HuAudCharVoicePlayPos(s16 charNo, s16 seId, Vec *pos) {
|
||||
MSM_SEPARAM param;
|
||||
|
||||
if (omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
arg1 += (arg0 << 6);
|
||||
spC.unk00 = 0x40;
|
||||
seId += (charNo << 6);
|
||||
param.flag = MSM_SEPARAM_POS;
|
||||
if (HuAuxAVol != -1) {
|
||||
spC.unk00 |= 0x10;
|
||||
param.flag |= MSM_SEPARAM_AUXVOLA;
|
||||
}
|
||||
if (HuAuxBVol != -1) {
|
||||
spC.unk00 |= 0x20;
|
||||
param.flag |= MSM_SEPARAM_AUXVOLB;
|
||||
}
|
||||
spC.unk09 = HuAuxAVol;
|
||||
spC.unk0A = HuAuxBVol;
|
||||
spC.unk10.x = arg2->x;
|
||||
spC.unk10.y = arg2->y;
|
||||
spC.unk10.z = arg2->z;
|
||||
return HuSePlay(arg1, &spC);
|
||||
param.auxAVol = HuAuxAVol;
|
||||
param.auxBVol = HuAuxBVol;
|
||||
param.pos.x = pos->x;
|
||||
param.pos.y = pos->y;
|
||||
param.pos.z = pos->z;
|
||||
return HuSePlay(seId, ¶m);
|
||||
}
|
||||
|
||||
void HuAudCharVoicePlayEntry(s16 arg0, s16 arg1) {
|
||||
s32 spC[30]; // size unknown (min: 30, max: 33)
|
||||
void HuAudCharVoicePlayEntry(s16 charNo, s16 seId) {
|
||||
int spC[MSM_ENTRY_SENO_MAX]; // size unknown (min: 30, max: 33)
|
||||
u16 temp_r29;
|
||||
u16 i;
|
||||
|
||||
arg1 += (arg0 << 6);
|
||||
temp_r29 = msmSeGetEntryID(arg1, spC);
|
||||
seId += (charNo << 6);
|
||||
temp_r29 = msmSeGetEntryID(seId, spC);
|
||||
for (i = 0; i < temp_r29; i++) {
|
||||
msmSeStop(spC[i], 0);
|
||||
}
|
||||
}
|
||||
|
||||
static s32 HuSePlay(s32 arg0, UnkMsmStruct_01 *arg1) {
|
||||
s32 temp_r3;
|
||||
static int HuSePlay(int seId, MSM_SEPARAM *param)
|
||||
{
|
||||
s32 result;
|
||||
|
||||
temp_r3 = msmSePlay(arg0, arg1);
|
||||
if (temp_r3 < 0) {
|
||||
OSReport("#########SE Entry Error<SE %d:ErrorNo %d>\n", arg0, temp_r3);
|
||||
result = msmSePlay(seId, param);
|
||||
if (result < 0) {
|
||||
OSReport("#########SE Entry Error<SE %d:ErrorNo %d>\n", seId, result);
|
||||
}
|
||||
return temp_r3;
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ void BoardMusStartBoard(void) {
|
|||
|
||||
void BoardMusStart(s32 arg0, s32 arg1, s8 arg2, u16 arg3) {
|
||||
s16 *temp_r31 = boardSeq[arg0];
|
||||
UnkMsmStruct_03 sp8;
|
||||
MSM_MUSPARAM param;
|
||||
|
||||
if (arg1 == temp_r31[1]) {
|
||||
return;
|
||||
|
|
@ -31,18 +31,18 @@ void BoardMusStart(s32 arg0, s32 arg1, s8 arg2, u16 arg3) {
|
|||
if (temp_r31[0] != -1) {
|
||||
BoardAudSeqFadeOutFast(temp_r31[0]);
|
||||
}
|
||||
sp8.unk00 = 1;
|
||||
param.flag = MSM_MUSPARAM_CHAN;
|
||||
if (arg3 != 0) {
|
||||
sp8.unk00 |= 8;
|
||||
param.flag |= MSM_MUSPARAM_FADESPEED;
|
||||
}
|
||||
if (arg2 < 0) {
|
||||
sp8.unk00 |= 2;
|
||||
param.flag |= MSM_MUSPARAM_VOL;
|
||||
arg2 = 0x7F;
|
||||
}
|
||||
sp8.unk06 = arg3;
|
||||
sp8.unk05 = arg2;
|
||||
sp8.unk04 = arg0;
|
||||
temp_r31[0] = msmMusPlay(arg1, &sp8);
|
||||
param.fadeSpeed = arg3;
|
||||
param.vol = arg2;
|
||||
param.chan = arg0;
|
||||
temp_r31[0] = msmMusPlay(arg1, ¶m);
|
||||
temp_r31[1] = arg1;
|
||||
}
|
||||
|
||||
|
|
@ -68,21 +68,21 @@ void BoardMusLoudSet(s32 arg0, s32 arg1) {
|
|||
}
|
||||
}
|
||||
|
||||
void BoardMusVolPanSet(s32 arg0, s8 arg1, u16 arg2) {
|
||||
void BoardMusVolPanSet(s32 arg0, s8 vol, u16 fadeSpeed) {
|
||||
s16 *temp_r31 = boardSeq[arg0];
|
||||
UnkMsmStruct_04 sp10;
|
||||
MSM_MUSPARAM param;
|
||||
|
||||
if (temp_r31[0] == -1) {
|
||||
return;
|
||||
}
|
||||
sp10.unk00 = 1;
|
||||
sp10.unk00 |= 2;
|
||||
if (arg1 < 0) {
|
||||
arg1 = 0x7F;
|
||||
param.flag = MSM_MUSPARAM_CHAN;
|
||||
param.flag |= MSM_MUSPARAM_VOL;
|
||||
if (vol < 0) {
|
||||
vol = 0x7F;
|
||||
}
|
||||
sp10.unk06 = arg2;
|
||||
sp10.unk05 = arg1;
|
||||
msmMusSetParam(temp_r31[0], &sp10);
|
||||
param.fadeSpeed = fadeSpeed;
|
||||
param.vol = vol;
|
||||
msmMusSetParam(temp_r31[0], ¶m);
|
||||
}
|
||||
|
||||
void BoardAudSeqPause(s32 arg0, s32 arg1, u16 arg2) {
|
||||
|
|
|
|||
|
|
@ -2169,14 +2169,14 @@ static void TauntUpdate(omObjData *object)
|
|||
port = GWPlayer[i].port & 0x3;
|
||||
character = GWPlayer[i].character & 0x7;
|
||||
if(tauntActiveFXTbl[port] >= 0) {
|
||||
UnkMsmStruct_01 param;
|
||||
MSM_SEPARAM param;
|
||||
float vol, pan;
|
||||
vol = (64.0f*(HuPadSubStkX[port]/59.0f))+64.0f;
|
||||
pan = 8191.0f*(HuPadSubStkY[port]/59.0f);
|
||||
memset(¶m, 0, sizeof(UnkMsmStruct_01));
|
||||
param.unk00 = 6;
|
||||
OSf32tos8(&vol, ¶m.unk05);
|
||||
OSf32tos16(&pan, ¶m.unk06);
|
||||
memset(¶m, 0, sizeof(MSM_SEPARAM));
|
||||
param.flag = MSM_SEPARAM_PITCH|MSM_SEPARAM_PAN;
|
||||
OSf32tos8(&vol, ¶m.pan);
|
||||
OSf32tos16(&pan, ¶m.pitch);
|
||||
msmSeSetParam(tauntActiveFXTbl[port], ¶m);
|
||||
} else {
|
||||
if(HuPadBtnDown[port] & PAD_TRIGGER_L) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue