More exports
This commit is contained in:
parent
d3b45cf2b4
commit
c1bcbdc067
18 changed files with 1270 additions and 499 deletions
|
|
@ -40,7 +40,6 @@ set(DOLPHIN_FILES
|
|||
|
||||
set(GAME_FILES
|
||||
src/game/armem.c
|
||||
src/game/audio.c
|
||||
src/game/card.c
|
||||
src/game/ClusterExec.c
|
||||
src/game/data.c
|
||||
|
|
@ -73,12 +72,14 @@ set(GAME_FILES
|
|||
src/game/perf.c
|
||||
src/game/printfunc.c
|
||||
src/game/process.c
|
||||
src/game/window.c
|
||||
src/game/wipe.c
|
||||
)
|
||||
|
||||
set(PORT_FILES
|
||||
src/port/ar.c
|
||||
src/port/arq.c
|
||||
src/port/audio.c
|
||||
src/port/byteswap.cpp
|
||||
src/port/dvd.c
|
||||
src/port/imgui.cpp
|
||||
|
|
|
|||
|
|
@ -4620,7 +4620,7 @@ lbl_80192160 = .bss:0x80192160; // type:object size:0x100
|
|||
lbl_80192260 = .bss:0x80192260; // type:object size:0x100
|
||||
wipeData = .bss:0x80192360; // type:object size:0x4C data:4byte
|
||||
winData = .bss:0x801923C0; // type:object size:0x3000 align:32 data:byte
|
||||
winKey = .bss:0x801953C0; // type:object size:0x10
|
||||
winKey = .bss:0x801953C0; // type:object size:0x10 scope:local
|
||||
winComKeyBuf = .bss:0x801953D0; // type:object size:0x1400
|
||||
ARInfo = .bss:0x801967E0; // type:object size:0x400 scope:local data:byte
|
||||
arqReq = .bss:0x80196BE0; // type:object size:0x20 scope:local
|
||||
|
|
|
|||
|
|
@ -4619,7 +4619,7 @@ lbl_80192160 = .bss:0x80192160; // type:object size:0x100
|
|||
lbl_80192260 = .bss:0x80192260; // type:object size:0x100
|
||||
wipeData = .bss:0x80192360; // type:object size:0x4C data:4byte
|
||||
winData = .bss:0x801923C0; // type:object size:0x3000 align:32 data:byte
|
||||
winKey = .bss:0x801953C0; // type:object size:0x10
|
||||
winKey = .bss:0x801953C0; // type:object size:0x10 scope:local
|
||||
winComKeyBuf = .bss:0x801953D0; // type:object size:0x1400
|
||||
ARInfo = .bss:0x801967E0; // type:object size:0x400 data:byte
|
||||
arqReq = .bss:0x80196BE0; // type:object size:0x20 scope:local
|
||||
|
|
|
|||
|
|
@ -4452,7 +4452,7 @@ lbl_80192160 = .bss:0x80191E00; // type:object size:0x100
|
|||
lbl_80192260 = .bss:0x80191F00; // type:object size:0x100
|
||||
wipeData = .bss:0x80192000; // type:object size:0x4C data:4byte
|
||||
winData = .bss:0x80192060; // type:object size:0x3000 data:byte
|
||||
winKey = .bss:0x80195060; // type:object size:0x10
|
||||
winKey = .bss:0x80195060; // type:object size:0x10 scope:local
|
||||
winComKeyBuf = .bss:0x80195070; // type:object size:0x1400
|
||||
ARInfo = .bss:0x80196480; // type:object size:0x400 scope:local data:byte
|
||||
arqReq = .bss:0x80196880; // type:object size:0x20 scope:local
|
||||
|
|
|
|||
|
|
@ -5547,7 +5547,7 @@ lbl_80192160 = .bss:0x801AF500; // type:object size:0x100
|
|||
lbl_80192260 = .bss:0x801AF600; // type:object size:0x100
|
||||
wipeData = .bss:0x801AF700; // type:object size:0x4C data:4byte
|
||||
winData = .bss:0x801AF760; // type:object size:0x3000 align:32 data:byte
|
||||
winKey = .bss:0x801B2760; // type:object size:0x10
|
||||
winKey = .bss:0x801B2760; // type:object size:0x10 scope:local
|
||||
winComKeyBuf = .bss:0x801B2770; // type:object size:0x1400
|
||||
mesWInsert = .bss:0x801B3B70; // type:object size:0x10 scope:local
|
||||
ARInfo = .bss:0x801B3B80; // type:object size:0x400 data:byte
|
||||
|
|
|
|||
31
dol.def
31
dol.def
|
|
@ -1,6 +1,10 @@
|
|||
EXPORTS
|
||||
OSReport
|
||||
OSGetTick
|
||||
HuAudFXPlay
|
||||
HuAudSStreamAllFadeOut
|
||||
HuAudSStreamPlay
|
||||
HuAudSndGrpSetSet
|
||||
HuMemDirectMalloc
|
||||
HuMemDirectFree
|
||||
HuDataSelHeapReadNum
|
||||
|
|
@ -20,8 +24,35 @@ EXPORTS
|
|||
HuPrcCurrentGet
|
||||
HuPrcSleep
|
||||
HuPrcVSleep
|
||||
HuSprAnimRead
|
||||
HuSprCreate
|
||||
HuSprGrpCreate
|
||||
HuSprGrpMemberSet
|
||||
HuSprGrpKill
|
||||
HuSprAttrSet
|
||||
HuSprAttrReset
|
||||
HuSprDrawNoSet
|
||||
HuSprPosSet
|
||||
HuSprScaleSet
|
||||
HuSprTPLvlSet
|
||||
HuWindowInit
|
||||
HuWinInit
|
||||
HuWinCreate
|
||||
HuWinKill
|
||||
HuWinHomeClear
|
||||
HuWinPriSet
|
||||
HuWinAttrSet
|
||||
HuWinBGTPLvlSet
|
||||
HuWinMesSpeedSet
|
||||
HuWinMesSet
|
||||
HuWinMesMaxSizeBetGet
|
||||
omOvlCallEx
|
||||
omOvlReturnEx
|
||||
omOvlHisChg
|
||||
omOvlHisGet
|
||||
omInitObjMan
|
||||
WipeColorSet
|
||||
WipeCreate
|
||||
WipeExecAlways
|
||||
WipeInit
|
||||
WipeStatGet
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ BOOL OSRestoreInterrupts(BOOL level);
|
|||
|
||||
#endif // _DEBUG
|
||||
|
||||
__declspec(dllexport) void OSReport(const char *msg, ...);
|
||||
void OSReport(const char *msg, ...);
|
||||
void OSPanic(const char *file, int line, const char *msg, ...);
|
||||
void OSFatal(GXColor fg, GXColor bg, const char *msg);
|
||||
|
||||
|
|
|
|||
|
|
@ -2,23 +2,24 @@
|
|||
#define _GAME_PAD_H
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "version.h"
|
||||
|
||||
#define PAD_BUTTON_DIR (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT | PAD_BUTTON_UP | PAD_BUTTON_DOWN)
|
||||
|
||||
#define PAD_BUTTON_TRIGGER_L 0x4000
|
||||
#define PAD_BUTTON_TRIGGER_R 0x2000
|
||||
|
||||
extern u16 HuPadBtn[4];
|
||||
extern u16 HuPadBtnDown[4];
|
||||
extern u16 HuPadBtnRep[4];
|
||||
extern s8 HuPadStkX[4];
|
||||
extern s8 HuPadStkY[4];
|
||||
extern s8 HuPadSubStkX[4];
|
||||
extern s8 HuPadSubStkY[4];
|
||||
extern u8 HuPadTrigL[4];
|
||||
extern u8 HuPadTrigR[4];
|
||||
extern u8 HuPadDStk[4];
|
||||
extern u8 HuPadDStkRep[4];
|
||||
SHARED_SYM extern u16 HuPadBtn[4];
|
||||
SHARED_SYM extern u16 HuPadBtnDown[4];
|
||||
SHARED_SYM extern u16 HuPadBtnRep[4];
|
||||
SHARED_SYM extern s8 HuPadStkX[4];
|
||||
SHARED_SYM extern s8 HuPadStkY[4];
|
||||
SHARED_SYM extern s8 HuPadSubStkX[4];
|
||||
SHARED_SYM extern s8 HuPadSubStkY[4];
|
||||
SHARED_SYM extern u8 HuPadTrigL[4];
|
||||
SHARED_SYM extern u8 HuPadTrigR[4];
|
||||
SHARED_SYM extern u8 HuPadDStk[4];
|
||||
SHARED_SYM extern u8 HuPadDStkRep[4];
|
||||
extern s8 HuPadErr[4];
|
||||
extern u16 _PadBtn[4];
|
||||
extern u16 _PadBtnDown[4];
|
||||
|
|
@ -32,4 +33,4 @@ void HuPadRumbleAllStop(void);
|
|||
s16 HuPadStatGet(s16 pad);
|
||||
u32 HuPadRumbleGet(void);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "game/animdata.h"
|
||||
#include "dolphin.h"
|
||||
#include "version.h"
|
||||
|
||||
#define MAKE_MESSID(bank, mess) (((bank) << 16)+(mess))
|
||||
#define MAKE_MESSID_PTR(ptr) ((u32)(ptr))
|
||||
|
|
@ -75,8 +76,8 @@ typedef struct {
|
|||
/* 0x160 */ u8 ATTRIBUTE_ALIGN(32) mess_pal[10][3];
|
||||
} WindowData; // Size 0x180
|
||||
|
||||
extern WindowData winData[32];
|
||||
extern void *messDataPtr;
|
||||
SHARED_SYM extern WindowData winData[32];
|
||||
SHARED_SYM extern void *messDataPtr;
|
||||
|
||||
void HuWindowInit(void);
|
||||
void HuWinInit(s32 mess_data_no);
|
||||
|
|
@ -139,6 +140,4 @@ void HuWinExCleanup(s16 window);
|
|||
void HuWinExAnimPopIn(s16 window, s16 portrait);
|
||||
void *MessData_MesPtrGet(void *data, u32 index);
|
||||
|
||||
extern void *messDataPtr;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define _GAME_WIPE_H
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "version.h"
|
||||
|
||||
#define WIPE_TYPE_PREV -1
|
||||
#define WIPE_TYPE_NORMAL 0
|
||||
|
|
@ -37,7 +38,7 @@ void WipeCreate(s16 mode, s16 type, s16 duration);
|
|||
void WipeColorSet(u8 r, u8 g, u8 b);
|
||||
u8 WipeStatGet(void);
|
||||
|
||||
extern WipeState wipeData;
|
||||
SHARED_SYM extern WipeState wipeData;
|
||||
extern BOOL wipeFadeInF;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
#define HU_PAD_BTNDOWN_ALL (HuPadBtnDown[0] | HuPadBtnDown[1] | HuPadBtnDown[2] | HuPadBtnDown[3])
|
||||
#define HU_PAD_DSTK_ALL (HuPadDStkRep[0] | HuPadDStkRep[1] | HuPadDStkRep[2] | HuPadDStkRep[3])
|
||||
|
||||
extern int SystemInitF;
|
||||
SHARED_SYM extern int SystemInitF;
|
||||
|
||||
static omObjData *debugOutView;
|
||||
Process *objman;
|
||||
|
|
@ -158,9 +158,15 @@ void ObjectSetup(void)
|
|||
WipeColorSet(255, 255, 255);
|
||||
if (!SystemInitF) {
|
||||
tick_prev = OSGetTick();
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
CharManInit();
|
||||
#endif
|
||||
HuWindowInit();
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
MGSeqInit();
|
||||
#endif
|
||||
HuWinInit(1);
|
||||
BootTitleCreate();
|
||||
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
||||
|
|
@ -198,11 +204,11 @@ void ObjectSetup(void)
|
|||
HuPrcVSleep();
|
||||
}
|
||||
if (!SystemInitF) {
|
||||
void *group_samp;
|
||||
//void *group_samp;
|
||||
tick_prev = OSGetTick();
|
||||
group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0));
|
||||
msmSysLoadGroup(0, group_samp, 0);
|
||||
HuMemDirectFree(group_samp);
|
||||
//group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0));
|
||||
//msmSysLoadGroup(0, group_samp, 0);
|
||||
//HuMemDirectFree(group_samp);
|
||||
while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -239,9 +245,9 @@ void ObjectSetup(void)
|
|||
HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||
group_thp = HuSprGrpCreate(1);
|
||||
sprite_thp = HuTHPSprCreateVol("movie/opmov_a00.thp", 0, 100, 122);
|
||||
HuSprGrpMemberSet(group_thp, 0, sprite_thp);
|
||||
HuSprPosSet(group_thp, 0, 288, 240);
|
||||
//sprite_thp = HuTHPSprCreateVol("movie/opmov_a00.thp", 0, 100, 122);
|
||||
//HuSprGrpMemberSet(group_thp, 0, sprite_thp);
|
||||
//HuSprPosSet(group_thp, 0, 288, 240);
|
||||
HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4));
|
||||
demoWinId = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0);
|
||||
HuWinMesSpeedSet(demoWinId, 0);
|
||||
|
|
@ -254,22 +260,22 @@ void ObjectSetup(void)
|
|||
HuPrcVSleep();
|
||||
}
|
||||
skip_wait = FALSE;
|
||||
while (!HuTHPEndCheck()) {
|
||||
UpdateDemoMess();
|
||||
if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
|
||||
skip_wait = TRUE;
|
||||
break;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
//while (!HuTHPEndCheck()) {
|
||||
// UpdateDemoMess();
|
||||
// if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
|
||||
// skip_wait = TRUE;
|
||||
// break;
|
||||
// }
|
||||
// HuPrcVSleep();
|
||||
//}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuWinKill(demoWinId);
|
||||
HuTHPClose();
|
||||
//HuTHPClose();
|
||||
HuPrcVSleep();
|
||||
HuSprGrpKill(group_thp);
|
||||
//HuSprGrpKill(group_thp);
|
||||
if (!skip_wait) {
|
||||
HuPrcSleep(60);
|
||||
}
|
||||
|
|
@ -330,458 +336,468 @@ void ObjectSetup(void)
|
|||
}
|
||||
}
|
||||
|
||||
// #if VERSION_NTSC
|
||||
#if VERSION_NTSC
|
||||
|
||||
// static u16 progPosTbl[] = { 236, 313, 353, 313 };
|
||||
static u16 progPosTbl[] = { 236, 313, 353, 313 };
|
||||
|
||||
// void BootProgExec(void)
|
||||
// {
|
||||
// s16 i;
|
||||
// s16 option;
|
||||
// s16 group;
|
||||
// s16 sprite;
|
||||
// AnimData *data;
|
||||
// option = 0;
|
||||
// if (OSGetResetCode() != OS_RESET_RESTART) {
|
||||
// return;
|
||||
// }
|
||||
// if (VIGetDTVStatus() != VI_NON_INTERLACE) {
|
||||
// OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF);
|
||||
// return;
|
||||
// }
|
||||
// if (OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_OFF && !(HU_PAD_BTN_ALL & PAD_BUTTON_B)) {
|
||||
// return;
|
||||
// }
|
||||
// if (OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_ON) {
|
||||
// VIConfigure(&GXNtsc480IntDf);
|
||||
// VIFlush();
|
||||
// }
|
||||
// group = HuSprGrpCreate(3);
|
||||
// data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CHOOSE_ANM);
|
||||
// sprite = HuSprCreate(data, 0, 0);
|
||||
// HuSprGrpMemberSet(group, 0, sprite);
|
||||
// HuSprPosSet(group, 0, 288, 240);
|
||||
// data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM);
|
||||
// sprite = HuSprCreate(data, 0, 0);
|
||||
// HuSprGrpMemberSet(group, 1, sprite);
|
||||
// HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
// data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM);
|
||||
// sprite = HuSprCreate(data, 0, 0);
|
||||
// HuSprGrpMemberSet(group, 2, sprite);
|
||||
// HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
// HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF);
|
||||
// WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
// while (WipeStatGet()) {
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// for (i = 0; i < 600; i++) {
|
||||
// if (HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) {
|
||||
// option ^= 1;
|
||||
// HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
// i = 0;
|
||||
// }
|
||||
// if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) {
|
||||
// HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
// HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF);
|
||||
// break;
|
||||
// }
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
|
||||
// while (WipeStatGet()) {
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// if (!option) {
|
||||
// OSSetProgressiveMode(OS_PROGRESSIVE_MODE_ON);
|
||||
// VIConfigure(&GXNtsc480Prog);
|
||||
// VIFlush();
|
||||
// HuPrcSleep(100);
|
||||
// }
|
||||
// else {
|
||||
// OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF);
|
||||
// }
|
||||
// HuSprGrpKill(group);
|
||||
// group = HuSprGrpCreate(1);
|
||||
// if (!option) {
|
||||
// data = HuSprAnimReadFile(TITLE_PROGRESSIVE_ON_ANM);
|
||||
// }
|
||||
// else {
|
||||
// data = HuSprAnimReadFile(TITLE_PROGRESSIVE_OFF_ANM);
|
||||
// }
|
||||
// sprite = HuSprCreate(data, 0, 0);
|
||||
// HuSprGrpMemberSet(group, 0, sprite);
|
||||
// HuSprPosSet(group, 0, 288, 240);
|
||||
// WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20);
|
||||
// while (WipeStatGet()) {
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// HuPrcSleep(60);
|
||||
// for (i = 0; i < 180; i++) {
|
||||
// if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) {
|
||||
// break;
|
||||
// }
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
// while (WipeStatGet()) {
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// HuSprGrpKill(group);
|
||||
// HuPrcSleep(30);
|
||||
// }
|
||||
void BootProgExec(void)
|
||||
{
|
||||
s16 i;
|
||||
s16 option;
|
||||
s16 group;
|
||||
s16 sprite;
|
||||
AnimData *data;
|
||||
option = 0;
|
||||
#ifdef __MWERKS__
|
||||
if (OSGetResetCode() != OS_RESET_RESTART) {
|
||||
return;
|
||||
}
|
||||
if (VIGetDTVStatus() != VI_NON_INTERLACE) {
|
||||
OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF);
|
||||
return;
|
||||
}
|
||||
if (OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_OFF && !(HU_PAD_BTN_ALL & PAD_BUTTON_B)) {
|
||||
return;
|
||||
}
|
||||
if (OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_ON) {
|
||||
VIConfigure(&GXNtsc480IntDf);
|
||||
VIFlush();
|
||||
}
|
||||
#endif
|
||||
group = HuSprGrpCreate(3);
|
||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CHOOSE_ANM);
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 0, sprite);
|
||||
HuSprPosSet(group, 0, 288, 240);
|
||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM);
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 1, sprite);
|
||||
HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM);
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 2, sprite);
|
||||
HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
for (i = 0; i < 600; i++) {
|
||||
if (HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) {
|
||||
option ^= 1;
|
||||
HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
i = 0;
|
||||
}
|
||||
if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) {
|
||||
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF);
|
||||
break;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
if (!option) {
|
||||
OSSetProgressiveMode(OS_PROGRESSIVE_MODE_ON);
|
||||
VIConfigure(&GXNtsc480Prog);
|
||||
VIFlush();
|
||||
HuPrcSleep(100);
|
||||
}
|
||||
else {
|
||||
OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF);
|
||||
}
|
||||
#endif
|
||||
HuSprGrpKill(group);
|
||||
group = HuSprGrpCreate(1);
|
||||
if (!option) {
|
||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_ON_ANM);
|
||||
}
|
||||
else {
|
||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_OFF_ANM);
|
||||
}
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 0, sprite);
|
||||
HuSprPosSet(group, 0, 288, 240);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(60);
|
||||
for (i = 0; i < 180; i++) {
|
||||
if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) {
|
||||
break;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprGrpKill(group);
|
||||
HuPrcSleep(30);
|
||||
}
|
||||
|
||||
// #endif
|
||||
#endif
|
||||
|
||||
// static u16 debugCamTbl[] = { 1, 2 };
|
||||
static u16 debugCamTbl[] = { 1, 2 };
|
||||
|
||||
// void DebugCamOutView(omObjData *obj)
|
||||
// {
|
||||
// s16 i;
|
||||
// for (i = 0; i < 1; i++) {
|
||||
// Vec pos, target, up;
|
||||
// float x, y, z;
|
||||
void DebugCamOutView(omObjData *obj)
|
||||
{
|
||||
s16 i;
|
||||
for (i = 0; i < 1; i++) {
|
||||
Vec pos, target, up;
|
||||
float x, y, z;
|
||||
|
||||
// x = debugCamRot[i].x;
|
||||
// y = debugCamRot[i].y;
|
||||
// z = debugCamRot[i].z;
|
||||
x = debugCamRot[i].x;
|
||||
y = debugCamRot[i].y;
|
||||
z = debugCamRot[i].z;
|
||||
|
||||
// pos.x = (((sind(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].x);
|
||||
// pos.y = (-sind(x) * debugCamZoom[i]) + debugCamPos[i].y;
|
||||
// pos.z = ((cosd(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].z;
|
||||
// target.x = debugCamPos[i].x;
|
||||
// target.y = debugCamPos[i].y;
|
||||
// target.z = debugCamPos[i].z;
|
||||
// up.x = sind(y) * sind(x);
|
||||
// up.y = cosd(x);
|
||||
// up.z = cosd(y) * sind(x);
|
||||
// Hu3DCameraPosSet(debugCamTbl[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z);
|
||||
// }
|
||||
// }
|
||||
pos.x = (((sind(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].x);
|
||||
pos.y = (-sind(x) * debugCamZoom[i]) + debugCamPos[i].y;
|
||||
pos.z = ((cosd(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].z;
|
||||
target.x = debugCamPos[i].x;
|
||||
target.y = debugCamPos[i].y;
|
||||
target.z = debugCamPos[i].z;
|
||||
up.x = sind(y) * sind(x);
|
||||
up.y = cosd(x);
|
||||
up.z = cosd(y) * sind(x);
|
||||
Hu3DCameraPosSet(debugCamTbl[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z);
|
||||
}
|
||||
}
|
||||
|
||||
// void DebugCamUpdate(omObjData *obj)
|
||||
// {
|
||||
// Vec pos;
|
||||
// Vec offset;
|
||||
// Vec dir;
|
||||
// Vec y_offset;
|
||||
#ifdef __MWERKS__
|
||||
void DebugCamUpdate(omObjData *obj)
|
||||
{
|
||||
Vec pos;
|
||||
Vec offset;
|
||||
Vec dir;
|
||||
Vec y_offset;
|
||||
|
||||
// f32 z_rot;
|
||||
// s8 stick_pos;
|
||||
f32 z_rot;
|
||||
s8 stick_pos;
|
||||
|
||||
// #if VERSION_NTSC
|
||||
// if ((HuPadBtnDown[0] & 0x800)) {
|
||||
// debugCamOnF = (debugCamOnF) ? 0 : 1;
|
||||
// }
|
||||
// #endif
|
||||
// if (debugCamOnF != 0) {
|
||||
// debugCamRot[0].y += 0.1f * HuPadStkX[0];
|
||||
// debugCamRot[0].x += 0.1f * HuPadStkY[0];
|
||||
// debugCamZoom[0] += HuPadTrigL[0] / 2;
|
||||
// debugCamZoom[0] -= HuPadTrigR[0] / 2;
|
||||
// if (debugCamZoom[0] < 100.0f) {
|
||||
// debugCamZoom[0] = 100.0f;
|
||||
// }
|
||||
// pos.x = debugCamPos[0].x + (debugCamZoom[0] * (sind(debugCamRot[0].y) * cosd(debugCamRot[0].x)));
|
||||
// pos.y = (debugCamPos[0].y + (debugCamZoom[0] * -sind(debugCamRot[0].x)));
|
||||
// pos.z = (debugCamPos[0].z + (debugCamZoom[0] * (cosd(debugCamRot[0].y) * cosd(debugCamRot[0].x))));
|
||||
// offset.x = debugCamPos[0].x - pos.x;
|
||||
// offset.y = debugCamPos[0].y - pos.y;
|
||||
// offset.z = debugCamPos[0].z - pos.z;
|
||||
// dir.x = (sind(debugCamRot[0].y) * sind(debugCamRot[0].x));
|
||||
// dir.y = cosd(debugCamRot[0].x);
|
||||
// dir.z = (cosd(debugCamRot[0].y) * sind(debugCamRot[0].x));
|
||||
// z_rot = debugCamRot[0].z;
|
||||
// y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot))
|
||||
// + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot))
|
||||
// + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot));
|
||||
#if VERSION_NTSC
|
||||
if ((HuPadBtnDown[0] & 0x800)) {
|
||||
debugCamOnF = (debugCamOnF) ? 0 : 1;
|
||||
}
|
||||
#endif
|
||||
if (debugCamOnF != 0) {
|
||||
debugCamRot[0].y += 0.1f * HuPadStkX[0];
|
||||
debugCamRot[0].x += 0.1f * HuPadStkY[0];
|
||||
debugCamZoom[0] += HuPadTrigL[0] / 2;
|
||||
debugCamZoom[0] -= HuPadTrigR[0] / 2;
|
||||
if (debugCamZoom[0] < 100.0f) {
|
||||
debugCamZoom[0] = 100.0f;
|
||||
}
|
||||
pos.x = debugCamPos[0].x + (debugCamZoom[0] * (sind(debugCamRot[0].y) * cosd(debugCamRot[0].x)));
|
||||
pos.y = (debugCamPos[0].y + (debugCamZoom[0] * -sind(debugCamRot[0].x)));
|
||||
pos.z = (debugCamPos[0].z + (debugCamZoom[0] * (cosd(debugCamRot[0].y) * cosd(debugCamRot[0].x))));
|
||||
offset.x = debugCamPos[0].x - pos.x;
|
||||
offset.y = debugCamPos[0].y - pos.y;
|
||||
offset.z = debugCamPos[0].z - pos.z;
|
||||
dir.x = (sind(debugCamRot[0].y) * sind(debugCamRot[0].x));
|
||||
dir.y = cosd(debugCamRot[0].x);
|
||||
dir.z = (cosd(debugCamRot[0].y) * sind(debugCamRot[0].x));
|
||||
z_rot = debugCamRot[0].z;
|
||||
y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot))
|
||||
+ dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot))
|
||||
+ dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot));
|
||||
|
||||
// y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot))
|
||||
// + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot))
|
||||
// + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot));
|
||||
y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot))
|
||||
+ dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot))
|
||||
+ dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot));
|
||||
|
||||
// y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot))
|
||||
// + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot))
|
||||
// + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot)));
|
||||
y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot))
|
||||
+ (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot))
|
||||
+ dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot)));
|
||||
|
||||
// VECCrossProduct(&dir, &offset, &offset);
|
||||
// VECNormalize(&offset, &offset);
|
||||
// stick_pos = (HuPadSubStkX[0] & 0xF8);
|
||||
// if (stick_pos != 0) {
|
||||
// debugCamPos[0].x += 0.05f * (offset.x * stick_pos);
|
||||
// debugCamPos[0].y += 0.05f * (offset.y * stick_pos);
|
||||
// debugCamPos[0].z += 0.05f * (offset.z * stick_pos);
|
||||
// }
|
||||
// VECNormalize(&y_offset, &offset);
|
||||
// stick_pos = -(HuPadSubStkY[0] & 0xF8);
|
||||
// if (stick_pos != 0) {
|
||||
// debugCamPos[0].x += 0.05f * (offset.x * stick_pos);
|
||||
// debugCamPos[0].y += 0.05f * (offset.y * stick_pos);
|
||||
// debugCamPos[0].z += 0.05f * (offset.z * stick_pos);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
VECCrossProduct(&dir, &offset, &offset);
|
||||
VECNormalize(&offset, &offset);
|
||||
stick_pos = (HuPadSubStkX[0] & 0xF8);
|
||||
if (stick_pos != 0) {
|
||||
debugCamPos[0].x += 0.05f * (offset.x * stick_pos);
|
||||
debugCamPos[0].y += 0.05f * (offset.y * stick_pos);
|
||||
debugCamPos[0].z += 0.05f * (offset.z * stick_pos);
|
||||
}
|
||||
VECNormalize(&y_offset, &offset);
|
||||
stick_pos = -(HuPadSubStkY[0] & 0xF8);
|
||||
if (stick_pos != 0) {
|
||||
debugCamPos[0].x += 0.05f * (offset.x * stick_pos);
|
||||
debugCamPos[0].y += 0.05f * (offset.y * stick_pos);
|
||||
debugCamPos[0].z += 0.05f * (offset.z * stick_pos);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// void BootTitleCreate(void)
|
||||
// {
|
||||
// s16 model;
|
||||
// s16 sprite;
|
||||
// AnimData *sprite_data;
|
||||
// s16 i;
|
||||
// titleMdlId[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF);
|
||||
// Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||
// Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||
// titleMdlId[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF);
|
||||
// Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||
// Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||
// titleMdlId[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF);
|
||||
// Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||
// Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||
// Hu3DModelCameraInfoSet(model, 1);
|
||||
// Hu3DModelLightInfoSet(model, 1);
|
||||
// #if VERSION_NTSC
|
||||
// bootGrpId = HuSprGrpCreate(4);
|
||||
// #else
|
||||
// bootGrpId = HuSprGrpCreate(13);
|
||||
// #endif
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_BG_ANM);
|
||||
// sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 0, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprDrawNoSet(bootGrpId, 0, 127);
|
||||
// HuSprPosSet(bootGrpId, 0, 288, 240);
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM);
|
||||
// sprite = HuSprCreate(sprite_data, 1, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 1, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprPosSet(bootGrpId, 1, 288, 420);
|
||||
// #if VERSION_NTSC
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM);
|
||||
// sprite = HuSprCreate(sprite_data, 2, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 2, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
// HuSprPosSet(bootGrpId, 2, 288, 380);
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
||||
// sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 3, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
// HuSprPosSet(bootGrpId, 3, 288, 200);
|
||||
// #else
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
||||
// sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 2, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
// HuSprPosSet(bootGrpId, 2, 288, 200);
|
||||
// for(i=0; i<5; i++) {
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_EN_ANM+i);
|
||||
// sprite = HuSprCreate(sprite_data, 3+i, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 3+i, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 3+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
// HuSprPosSet(bootGrpId, 3+i, 288, 340);
|
||||
// }
|
||||
// for(i=0; i<5; i++) {
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_LANGUAGE_EN_ANM+i);
|
||||
// sprite = HuSprCreate(sprite_data, 8+i, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 8+i, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 8+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
// HuSprPosSet(bootGrpId, 8+i, 288, 380);
|
||||
// }
|
||||
// #endif
|
||||
// }
|
||||
void BootTitleCreate(void)
|
||||
{
|
||||
s16 model;
|
||||
s16 sprite;
|
||||
AnimData *sprite_data;
|
||||
s16 i;
|
||||
titleMdlId[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF);
|
||||
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||
titleMdlId[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF);
|
||||
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||
titleMdlId[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF);
|
||||
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||
Hu3DModelCameraInfoSet(model, 1);
|
||||
Hu3DModelLightInfoSet(model, 1);
|
||||
#if VERSION_NTSC
|
||||
bootGrpId = HuSprGrpCreate(4);
|
||||
#else
|
||||
bootGrpId = HuSprGrpCreate(13);
|
||||
#endif
|
||||
sprite_data = HuSprAnimReadFile(TITLE_BG_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 0, sprite);
|
||||
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprDrawNoSet(bootGrpId, 0, 127);
|
||||
HuSprPosSet(bootGrpId, 0, 288, 240);
|
||||
sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 1, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 1, sprite);
|
||||
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprPosSet(bootGrpId, 1, 288, 420);
|
||||
#if VERSION_NTSC
|
||||
sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 2, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 2, sprite);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 2, 288, 380);
|
||||
sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 3, sprite);
|
||||
HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 3, 288, 200);
|
||||
#else
|
||||
sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 2, sprite);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 2, 288, 200);
|
||||
for(i=0; i<5; i++) {
|
||||
sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_EN_ANM+i);
|
||||
sprite = HuSprCreate(sprite_data, 3+i, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 3+i, sprite);
|
||||
HuSprAttrSet(bootGrpId, 3+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 3+i, 288, 340);
|
||||
}
|
||||
for(i=0; i<5; i++) {
|
||||
sprite_data = HuSprAnimReadFile(TITLE_LANGUAGE_EN_ANM+i);
|
||||
sprite = HuSprCreate(sprite_data, 8+i, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 8+i, sprite);
|
||||
HuSprAttrSet(bootGrpId, 8+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 8+i, 288, 380);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// BOOL BootTitleExec(void)
|
||||
// {
|
||||
// float scale;
|
||||
// float scale_time;
|
||||
// int seNo[32];
|
||||
// s16 pressStartMemberNo;
|
||||
// s16 languageMemberNo;
|
||||
// s16 i;
|
||||
// s16 choice;
|
||||
// float temp;
|
||||
// repeat:
|
||||
// Hu3DModelAttrReset(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||
// Hu3DModelAttrReset(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||
// HuSprAttrReset(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprAttrReset(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
// 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);
|
||||
// while (WipeStatGet()) {
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// #if VERSION_NTSC
|
||||
// HuSprAttrReset(bootGrpId, 3, HUSPR_ATTR_DISPOFF);
|
||||
// for (i = 1; i <= 50; i++) {
|
||||
// scale = (cosd(i * 1.8) * 10.0) + 1.0;
|
||||
// HuSprScaleSet(bootGrpId, 3, scale, scale);
|
||||
// HuSprTPLvlSet(bootGrpId, 3, i / 50.0);
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
// #else
|
||||
// HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
// for (i = 1; i <= 50; i++) {
|
||||
// scale = (cosd(i * 1.8) * 10.0) + 1.0;
|
||||
// HuSprScaleSet(bootGrpId, 2, scale, scale);
|
||||
// HuSprTPLvlSet(bootGrpId, 2, i / 50.0);
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// if(GwLanguage == -1) {
|
||||
// pressStartMemberNo = 3;
|
||||
// languageMemberNo = 8;
|
||||
// } else {
|
||||
// pressStartMemberNo = GwLanguage+3-1;
|
||||
// languageMemberNo = GwLanguage+8-1;
|
||||
// }
|
||||
// HuSprAttrReset(bootGrpId, pressStartMemberNo, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprAttrReset(bootGrpId, languageMemberNo, HUSPR_ATTR_DISPOFF);
|
||||
// for(i=1; i<=20; i++) {
|
||||
// scale = sind(i*4.5);
|
||||
// HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
// HuSprScaleSet(bootGrpId, languageMemberNo, scale*0.7, scale*0.7);
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// choice = 0;
|
||||
// scale_time = 0;
|
||||
// #endif
|
||||
BOOL BootTitleExec(void)
|
||||
{
|
||||
float scale;
|
||||
float scale_time;
|
||||
int seNo[32];
|
||||
s16 pressStartMemberNo;
|
||||
s16 languageMemberNo;
|
||||
s16 i;
|
||||
s16 choice;
|
||||
float temp;
|
||||
repeat:
|
||||
Hu3DModelAttrReset(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||
HuSprAttrReset(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrReset(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, seNo));
|
||||
OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0));
|
||||
#endif
|
||||
HuAudSStreamPlay(20);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
HuSprAttrReset(bootGrpId, 3, HUSPR_ATTR_DISPOFF);
|
||||
for (i = 1; i <= 50; i++) {
|
||||
scale = (cosd(i * 1.8) * 10.0) + 1.0;
|
||||
HuSprScaleSet(bootGrpId, 3, scale, scale);
|
||||
HuSprTPLvlSet(bootGrpId, 3, i / 50.0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
#else
|
||||
HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
for (i = 1; i <= 50; i++) {
|
||||
scale = (cosd(i * 1.8) * 10.0) + 1.0;
|
||||
HuSprScaleSet(bootGrpId, 2, scale, scale);
|
||||
HuSprTPLvlSet(bootGrpId, 2, i / 50.0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if(GwLanguage == -1) {
|
||||
pressStartMemberNo = 3;
|
||||
languageMemberNo = 8;
|
||||
} else {
|
||||
pressStartMemberNo = GwLanguage+3-1;
|
||||
languageMemberNo = GwLanguage+8-1;
|
||||
}
|
||||
HuSprAttrReset(bootGrpId, pressStartMemberNo, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrReset(bootGrpId, languageMemberNo, HUSPR_ATTR_DISPOFF);
|
||||
for(i=1; i<=20; i++) {
|
||||
scale = sind(i*4.5);
|
||||
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
HuSprScaleSet(bootGrpId, languageMemberNo, scale*0.7, scale*0.7);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
choice = 0;
|
||||
scale_time = 0;
|
||||
#endif
|
||||
|
||||
// #if VERSION_NTSC
|
||||
// for (i = scale_time = 0; i < 1800; i++) {
|
||||
// #else
|
||||
// for (i = temp = 0; i < 1800; i++) {
|
||||
// #endif
|
||||
// #if VERSION_PAL
|
||||
// if((choice == 0 && (HuPadDStkRep[0] & PAD_BUTTON_DOWN)) || (choice != 0 && (HuPadDStkRep[0] & PAD_BUTTON_UP))) {
|
||||
// HuAudFXPlay(0);
|
||||
// for(i=1; i<=10; i++) {
|
||||
// scale = ((1-(i/10.0))*(((cosd(scale_time)*0.1)+0.9)-0.7))+0.7;
|
||||
// if(choice == 0) {
|
||||
// HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
// } else {
|
||||
// HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
// }
|
||||
// scale = ((1-(i/10.0))*(((cosd(scale_time/3.0)*0.05)+0.65)-1.0))+1.0;
|
||||
// if(choice == 0) {
|
||||
// HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
// } else {
|
||||
// HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
// }
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// choice ^= 1;
|
||||
// scale_time = 0;
|
||||
// }
|
||||
// if (HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) {
|
||||
// if(choice == 0) {
|
||||
// s32 ret = HuAudFXPlay(2092);
|
||||
// if (ret < 0) {
|
||||
// OSReport(">>>>>Error %d\n", ret);
|
||||
// }
|
||||
// HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
// return 1;
|
||||
// } else {
|
||||
// HuAudFXPlay(1);
|
||||
// HuAudSStreamAllFadeOut(500);
|
||||
// WipeColorSet(255, 255, 255);
|
||||
// WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
// while (WipeStatGet()) {
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||
// Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||
// Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF);
|
||||
// HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
// for(i=0; i<5; i++) {
|
||||
// HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF);
|
||||
// }
|
||||
// for(i=0; i<5; i++) {
|
||||
// HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF);
|
||||
// }
|
||||
// LanguageMenuExec();
|
||||
// Hu3DModelCameraInfoSet(titleMdlId[2], 1);
|
||||
// Hu3DModelLightInfoSet(titleMdlId[2], 1);
|
||||
// HuWinInit(1);
|
||||
// goto repeat;
|
||||
// }
|
||||
// }
|
||||
// scale = (cosd(scale_time) * 0.1) + 0.9;
|
||||
// if(choice == 0) {
|
||||
// HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
// } else {
|
||||
// HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
// }
|
||||
// scale = (cosd(scale_time/3.0) * 0.05) + 0.65;
|
||||
// if(choice == 0) {
|
||||
// HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
// } else {
|
||||
// HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
// }
|
||||
// scale_time += 5;
|
||||
// HuPrcVSleep();
|
||||
// #else
|
||||
// if (i <= 10) {
|
||||
// HuSprTPLvlSet(bootGrpId, 2, i / 10.0);
|
||||
// }
|
||||
// if (HuPadBtnDown[0] & PAD_BUTTON_START) {
|
||||
// s32 ret = HuAudFXPlay(2092);
|
||||
// if (ret < 0) {
|
||||
// OSReport(">>>>>Error %d\n", ret);
|
||||
// }
|
||||
// HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
// return 1;
|
||||
// }
|
||||
// scale = (sind(i * scale_time) * 0.1) + 0.9;
|
||||
// scale_time += 0.05;
|
||||
// if (scale_time > 5) {
|
||||
// scale_time = 5;
|
||||
// }
|
||||
// HuSprScaleSet(bootGrpId, 2, scale, scale);
|
||||
// HuPrcVSleep();
|
||||
// #endif
|
||||
#if VERSION_NTSC
|
||||
for (i = scale_time = 0; i < 1800; i++) {
|
||||
#else
|
||||
for (i = temp = 0; i < 1800; i++) {
|
||||
#endif
|
||||
#if VERSION_PAL
|
||||
if((choice == 0 && (HuPadDStkRep[0] & PAD_BUTTON_DOWN)) || (choice != 0 && (HuPadDStkRep[0] & PAD_BUTTON_UP))) {
|
||||
HuAudFXPlay(0);
|
||||
for(i=1; i<=10; i++) {
|
||||
scale = ((1-(i/10.0))*(((cosd(scale_time)*0.1)+0.9)-0.7))+0.7;
|
||||
if(choice == 0) {
|
||||
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
} else {
|
||||
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
}
|
||||
scale = ((1-(i/10.0))*(((cosd(scale_time/3.0)*0.05)+0.65)-1.0))+1.0;
|
||||
if(choice == 0) {
|
||||
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
} else {
|
||||
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
choice ^= 1;
|
||||
scale_time = 0;
|
||||
}
|
||||
if (HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) {
|
||||
if(choice == 0) {
|
||||
s32 ret = HuAudFXPlay(2092);
|
||||
if (ret < 0) {
|
||||
OSReport(">>>>>Error %d\n", ret);
|
||||
}
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
return 1;
|
||||
} else {
|
||||
HuAudFXPlay(1);
|
||||
HuAudSStreamAllFadeOut(500);
|
||||
WipeColorSet(255, 255, 255);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
for(i=0; i<5; i++) {
|
||||
HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
for(i=0; i<5; i++) {
|
||||
HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
LanguageMenuExec();
|
||||
Hu3DModelCameraInfoSet(titleMdlId[2], 1);
|
||||
Hu3DModelLightInfoSet(titleMdlId[2], 1);
|
||||
HuWinInit(1);
|
||||
goto repeat;
|
||||
}
|
||||
}
|
||||
scale = (cosd(scale_time) * 0.1) + 0.9;
|
||||
if(choice == 0) {
|
||||
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
} else {
|
||||
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
}
|
||||
scale = (cosd(scale_time/3.0) * 0.05) + 0.65;
|
||||
if(choice == 0) {
|
||||
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
} else {
|
||||
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
}
|
||||
scale_time += 5;
|
||||
HuPrcVSleep();
|
||||
#else
|
||||
if (i <= 10) {
|
||||
HuSprTPLvlSet(bootGrpId, 2, i / 10.0);
|
||||
}
|
||||
if (HuPadBtnDown[0] & PAD_BUTTON_START) {
|
||||
s32 ret = HuAudFXPlay(2092);
|
||||
if (ret < 0) {
|
||||
OSReport(">>>>>Error %d\n", ret);
|
||||
}
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
return 1;
|
||||
}
|
||||
scale = (sind(i * scale_time) * 0.1) + 0.9;
|
||||
scale_time += 0.05;
|
||||
if (scale_time > 5) {
|
||||
scale_time = 5;
|
||||
}
|
||||
HuSprScaleSet(bootGrpId, 2, scale, scale);
|
||||
HuPrcVSleep();
|
||||
#endif
|
||||
|
||||
// }
|
||||
// WipeColorSet(255, 255, 255);
|
||||
// WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
// while (WipeStatGet()) {
|
||||
// HuPrcVSleep();
|
||||
// }
|
||||
// Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||
// Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||
// Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF);
|
||||
// #if VERSION_NTSC
|
||||
// HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF);
|
||||
// #else
|
||||
// HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
// for(i=0; i<5; i++) {
|
||||
// HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF);
|
||||
// }
|
||||
// for(i=0; i<5; i++) {
|
||||
// HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF);
|
||||
// }
|
||||
// #endif
|
||||
// return 0;
|
||||
// }
|
||||
}
|
||||
WipeColorSet(255, 255, 255);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF);
|
||||
#if VERSION_NTSC
|
||||
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF);
|
||||
#else
|
||||
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
for(i=0; i<5; i++) {
|
||||
HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
for(i=0; i<5; i++) {
|
||||
HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
// #include "nintendoData.inc"
|
||||
#include "nintendoData.inc"
|
||||
|
||||
// void *NintendoDataDecode(void)
|
||||
// {
|
||||
// u32 *src = (u32 *)nintendoData;
|
||||
// u32 size = *src++;
|
||||
// void *dst = HuMemDirectMalloc(HEAP_DATA, size);
|
||||
// int decode_type = *src++;
|
||||
// if(dst) {
|
||||
// HuDecodeData(src, dst, size, decode_type);
|
||||
// }
|
||||
// return dst;
|
||||
// }
|
||||
void *NintendoDataDecode(void)
|
||||
{
|
||||
u32 *src = (u32 *)nintendoData;
|
||||
u32 size = *src++;
|
||||
void *dst = HuMemDirectMalloc(HEAP_DATA, size);
|
||||
int decode_type = *src++;
|
||||
if(dst) {
|
||||
HuDecodeData(src, dst, size, decode_type);
|
||||
}
|
||||
return dst;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include "game/sprite.h"
|
||||
#include "game/sreset.h"
|
||||
#include "game/wipe.h"
|
||||
#include "version.h"
|
||||
|
||||
#ifdef TARGET_PC
|
||||
#include "port/imgui.h"
|
||||
|
|
@ -45,7 +46,7 @@ static u32 pe_req;
|
|||
static u32 rf_req;
|
||||
static u32 fi_req;
|
||||
s32 HuDvdErrWait;
|
||||
s32 SystemInitF;
|
||||
SHARED_SYM s32 SystemInitF;
|
||||
|
||||
#ifdef TARGET_PC
|
||||
#include <stdio.h>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
#include "game/pad.h"
|
||||
#include "game/printfunc.h"
|
||||
|
||||
|
||||
#define OM_OVL_HIS_MAX 16
|
||||
#define OM_MAX_GROUPS 10
|
||||
|
||||
|
|
@ -47,8 +46,8 @@ s16 omdispinfo;
|
|||
|
||||
static omOvlHisData omovlhis[OM_OVL_HIS_MAX];
|
||||
|
||||
SHARED_SYM u8 omSysPauseEnableFlag = TRUE;
|
||||
SHARED_SYM OverlayID omprevovl = OVL_INVALID;
|
||||
u8 omSysPauseEnableFlag = TRUE;
|
||||
OverlayID omprevovl = OVL_INVALID;
|
||||
|
||||
static void omWatchOverlayProc(void);
|
||||
static void omInsertObj(Process *objman_process, omObjData *object);
|
||||
|
|
|
|||
|
|
@ -19,17 +19,17 @@ static void PadADConv(s16 pad, PADStatus *status);
|
|||
static int padStatErrOld[4];
|
||||
static PadRumble rumbleData[4];
|
||||
|
||||
u16 HuPadBtn[4];
|
||||
u16 HuPadBtnDown[4];
|
||||
u16 HuPadBtnRep[4];
|
||||
s8 HuPadStkX[4];
|
||||
s8 HuPadStkY[4];
|
||||
s8 HuPadSubStkX[4];
|
||||
s8 HuPadSubStkY[4];
|
||||
u8 HuPadTrigL[4];
|
||||
u8 HuPadTrigR[4];
|
||||
u8 HuPadDStk[4];
|
||||
u8 HuPadDStkRep[4];
|
||||
SHARED_SYM u16 HuPadBtn[4];
|
||||
SHARED_SYM u16 HuPadBtnDown[4];
|
||||
SHARED_SYM u16 HuPadBtnRep[4];
|
||||
SHARED_SYM s8 HuPadStkX[4];
|
||||
SHARED_SYM s8 HuPadStkY[4];
|
||||
SHARED_SYM s8 HuPadSubStkX[4];
|
||||
SHARED_SYM s8 HuPadSubStkY[4];
|
||||
SHARED_SYM u8 HuPadTrigL[4];
|
||||
SHARED_SYM u8 HuPadTrigR[4];
|
||||
SHARED_SYM u8 HuPadDStk[4];
|
||||
SHARED_SYM u8 HuPadDStkRep[4];
|
||||
s8 HuPadErr[4];
|
||||
u16 _PadBtn[4];
|
||||
u16 _PadBtnDown[4];
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ static void GetMesMaxSizeSub(u32 mess);
|
|||
static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data);
|
||||
|
||||
void mtxTransCat(Mtx, float, float, float);
|
||||
WindowData ATTRIBUTE_ALIGN(32) winData[32];
|
||||
u32 winKey[4];
|
||||
SHARED_SYM WindowData ATTRIBUTE_ALIGN(32) winData[32];
|
||||
static u32 winKey[4];
|
||||
keyBufData winComKeyBuf[256];
|
||||
|
||||
static AnimData *iconAnim;
|
||||
|
|
@ -54,7 +54,7 @@ static AnimData *cursorAnim;
|
|||
static AnimData *cardAnimA;
|
||||
static AnimData *cardAnimB;
|
||||
static Process *winProc;
|
||||
void *messDataPtr;
|
||||
SHARED_SYM void *messDataPtr;
|
||||
static s32 messDataNo;
|
||||
static s16 winMaxWidth;
|
||||
static s16 winMaxHeight;
|
||||
|
|
@ -1313,6 +1313,8 @@ void HuWinMesRead(s32 mess_data_no)
|
|||
|
||||
void HuWinMesSet(s16 window, u32 mess)
|
||||
{
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
WindowData *window_ptr = &winData[window];
|
||||
|
||||
window_ptr->stat = 1;
|
||||
|
|
@ -1339,10 +1341,13 @@ void HuWinMesSet(s16 window, u32 mess)
|
|||
window_ptr->mess_time = 0;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void HuWinInsertMesSet(s16 window, u32 mess, s16 index)
|
||||
{
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
WindowData *window_ptr = &winData[window];
|
||||
|
||||
if (!(mess & 0x80000000)) {
|
||||
|
|
@ -1358,6 +1363,7 @@ void HuWinInsertMesSet(s16 window, u32 mess, s16 index)
|
|||
else {
|
||||
window_ptr->insert_mess[index] = (u8 *)mess;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
s16 HuWinChoiceGet(s16 window, s16 start_choice)
|
||||
|
|
@ -1662,6 +1668,8 @@ void HuWinMesMaxSizeBetGet(float *size, u32 start, u32 end)
|
|||
|
||||
static void GetMesMaxSizeSub(u32 mess)
|
||||
{
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
s16 line_h;
|
||||
s16 char_w;
|
||||
s16 line_w;
|
||||
|
|
@ -1765,6 +1773,7 @@ static void GetMesMaxSizeSub(u32 mess)
|
|||
if (winMaxHeight < line_h) {
|
||||
winMaxHeight = line_h;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data)
|
||||
|
|
@ -1845,6 +1854,8 @@ s16 HuWinKeyWaitNumGet(u32 mess)
|
|||
{
|
||||
s16 wait_num;
|
||||
u8 *mess_data;
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
|
||||
if (mess > 0x80000000) {
|
||||
mess_data = (u8 *)mess;
|
||||
|
|
@ -1857,6 +1868,7 @@ s16 HuWinKeyWaitNumGet(u32 mess)
|
|||
wait_num++;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return wait_num;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ s16 HuSysVWaitGet(s16 old);
|
|||
|
||||
typedef s32 (*fadeFunc)(void);
|
||||
|
||||
WipeState wipeData;
|
||||
SHARED_SYM WipeState wipeData;
|
||||
BOOL wipeFadeInF;
|
||||
|
||||
static void WipeColorFill(GXColor color);
|
||||
|
|
|
|||
707
src/port/audio.c
Normal file
707
src/port/audio.c
Normal file
|
|
@ -0,0 +1,707 @@
|
|||
#include "game/audio.h"
|
||||
#include "game/memory.h"
|
||||
#include "game/msm.h"
|
||||
#include "game/object.h"
|
||||
#include "game/wipe.h"
|
||||
#include "game/gamework_data.h"
|
||||
|
||||
static int HuSePlay(int seId, MSM_SEPARAM *param);
|
||||
|
||||
extern s16 omSysExitReq;
|
||||
|
||||
s32 charVoiceGroupStat[8];
|
||||
static s32 sndFXBuf[64][2];
|
||||
|
||||
static s16 Hu3DAudVol;
|
||||
static s16 sndGroupBak;
|
||||
static s32 auxANoBak;
|
||||
static s32 auxBNoBak;
|
||||
static s8 HuAuxAVol;
|
||||
static s8 HuAuxBVol;
|
||||
float Snd3DBackSurDisOffset;
|
||||
float Snd3DFrontSurDisOffset;
|
||||
float Snd3DStartDisOffset;
|
||||
float Snd3DSpeedOffset;
|
||||
float Snd3DDistOffset;
|
||||
s32 musicOffF;
|
||||
u8 fadeStat;
|
||||
|
||||
static char *lbl_8012E9AC[] = {
|
||||
"sound/MPNGC02.son",
|
||||
"sound/MPNGC16.son",
|
||||
""
|
||||
};
|
||||
|
||||
|
||||
void HuAudInit(void)
|
||||
{
|
||||
MSM_INIT msmInit;
|
||||
MSM_ARAM msmAram;
|
||||
|
||||
s32 result;
|
||||
s16 i;
|
||||
|
||||
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() == OS_SOUND_MODE_MONO) {
|
||||
// msmSysSetOutputMode(SND_OUTPUTMODE_MONO);
|
||||
} else {
|
||||
// msmSysSetOutputMode(SND_OUTPUTMODE_SURROUND);
|
||||
}
|
||||
for (i = 0; i < 64; i++) {
|
||||
sndFXBuf[i][0] = -1;
|
||||
}
|
||||
for (i = 0; i < 8; i++) {
|
||||
charVoiceGroupStat[i] = 0;
|
||||
}
|
||||
sndGroupBak = -1;
|
||||
auxANoBak = auxBNoBak = -1;
|
||||
fadeStat = 0;
|
||||
musicOffF = 0;
|
||||
}
|
||||
|
||||
s32 HuAudStreamPlay(char *name, BOOL flag) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void HuAudStreamVolSet(s16 vol) {
|
||||
// AISetStreamVolLeft(vol);
|
||||
// AISetStreamVolRight(vol);
|
||||
Hu3DAudVol = vol;
|
||||
}
|
||||
|
||||
void HuAudStreamPauseOn(void) {
|
||||
// AISetStreamPlayState(0);
|
||||
}
|
||||
|
||||
void HuAudStreamPauseOff(void) {
|
||||
// AISetStreamPlayState(1);
|
||||
}
|
||||
|
||||
void HuAudStreamFadeOut(s32 arg0) {
|
||||
}
|
||||
|
||||
void HuAudAllStop(void) {
|
||||
HuAudSeqAllStop();
|
||||
HuAudFXAllStop();
|
||||
HuAudSStreamAllStop();
|
||||
}
|
||||
|
||||
void HuAudFadeOut(s32 speed) {
|
||||
HuAudFXAllStop();
|
||||
HuAudSeqAllFadeOut(speed);
|
||||
HuAudSStreamAllFadeOut(speed);
|
||||
}
|
||||
|
||||
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(seId, MSM_VOL_MAX, MSM_PAN_CENTER);
|
||||
}
|
||||
|
||||
int HuAudFXPlayVol(int seId, s16 vol) {
|
||||
if (omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
return HuAudFXPlayVolPan(seId, vol, MSM_PAN_CENTER);
|
||||
}
|
||||
|
||||
int HuAudFXPlayVolPan(int seId, s16 vol, s16 pan)
|
||||
{
|
||||
MSM_SEPARAM seParam;
|
||||
|
||||
if (omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
seParam.flag = MSM_SEPARAM_VOL|MSM_SEPARAM_PAN;
|
||||
seParam.vol = vol;
|
||||
seParam.pan = pan;
|
||||
return HuSePlay(seId, &seParam);
|
||||
}
|
||||
|
||||
void HuAudFXStop(int seNo) {
|
||||
// msmSeStop(seNo, 0);
|
||||
}
|
||||
|
||||
void HuAudFXAllStop(void) {
|
||||
// msmSeStopAll(0, 0);
|
||||
}
|
||||
|
||||
void HuAudFXFadeOut(int seNo, s32 speed) {
|
||||
// msmSeStop(seNo, speed);
|
||||
}
|
||||
|
||||
void HuAudFXPanning(int seNo, s16 pan) {
|
||||
MSM_SEPARAM seParam;
|
||||
|
||||
if (omSysExitReq == 0) {
|
||||
seParam.flag = MSM_SEPARAM_PAN;
|
||||
seParam.pan = pan;
|
||||
// msmSeSetParam(seNo, &seParam);
|
||||
}
|
||||
}
|
||||
|
||||
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) {
|
||||
// msmSeUpdataListener(pos, heading);
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
return 12;
|
||||
}
|
||||
|
||||
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) {
|
||||
// msmSeDelListener();
|
||||
}
|
||||
|
||||
void HuAudFXPauseAll(s32 pause) {
|
||||
// msmSePauseAll(pause, 0x64);
|
||||
return 12;
|
||||
}
|
||||
|
||||
s32 HuAudFXStatusGet(int seNo) {
|
||||
// return msmSeGetStatus(seNo);
|
||||
return 12;
|
||||
}
|
||||
|
||||
s32 HuAudFXPitchSet(int seNo, s16 pitch)
|
||||
{
|
||||
MSM_SEPARAM param;
|
||||
if(omSysExitReq) {
|
||||
return 0;
|
||||
}
|
||||
param.flag = MSM_SEPARAM_PITCH;
|
||||
param.pitch = pitch;
|
||||
// return msmSeSetParam(seNo, ¶m);
|
||||
return 12;
|
||||
}
|
||||
|
||||
s32 HuAudFXVolSet(int seNo, s16 vol)
|
||||
{
|
||||
MSM_SEPARAM param;
|
||||
|
||||
if(omSysExitReq) {
|
||||
return 0;
|
||||
}
|
||||
param.flag = MSM_SEPARAM_VOL;
|
||||
param.vol = vol;
|
||||
// return msmSeSetParam(seNo, ¶m);
|
||||
return 12;
|
||||
}
|
||||
|
||||
s32 HuAudSeqPlay(s16 musId) {
|
||||
s32 channel;
|
||||
|
||||
if (musicOffF != 0 || omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
// channel = msmMusPlay(musId, NULL);
|
||||
return channel;
|
||||
}
|
||||
|
||||
void HuAudSeqStop(s32 musNo) {
|
||||
if (musicOffF != 0 || omSysExitReq != 0) {
|
||||
return;
|
||||
}
|
||||
// msmMusStop(musNo, 0);
|
||||
}
|
||||
|
||||
void HuAudSeqFadeOut(s32 musNo, s32 speed) {
|
||||
if (musicOffF == 0) {
|
||||
// msmMusStop(musNo, speed);
|
||||
}
|
||||
}
|
||||
|
||||
void HuAudSeqAllFadeOut(s32 speed) {
|
||||
s16 i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
// if (msmMusGetStatus(i) == 2) {
|
||||
// msmMusStop(i, speed);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
void HuAudSeqAllStop(void) {
|
||||
// msmMusStopAll(0, 0);
|
||||
}
|
||||
|
||||
void HuAudSeqPauseAll(s32 pause) {
|
||||
// msmMusPauseAll(pause, 0x64);
|
||||
}
|
||||
|
||||
void HuAudSeqPause(s32 musNo, s32 pause, s32 speed) {
|
||||
if (musicOffF != 0 || omSysExitReq != 0) {
|
||||
return;
|
||||
}
|
||||
// msmMusPause(musNo, pause, speed);
|
||||
}
|
||||
|
||||
s32 HuAudSeqMidiCtrlGet(s32 musNo, s8 channel, s8 ctrl) {
|
||||
if (musicOffF != 0 || omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
// return msmMusGetMidiCtrl(musNo, channel, ctrl);
|
||||
return 12;
|
||||
}
|
||||
|
||||
s32 HuAudSStreamPlay(s16 streamId) {
|
||||
MSM_STREAMPARAM param;
|
||||
s32 result;
|
||||
|
||||
if (musicOffF != 0 || omSysExitReq != 0) {
|
||||
return 0;
|
||||
}
|
||||
param.flag = MSM_STREAMPARAM_NONE ;
|
||||
// result = msmStreamPlay(streamId, ¶m);
|
||||
return result;
|
||||
}
|
||||
|
||||
void HuAudSStreamStop(s32 seNo) {
|
||||
if (musicOffF == 0) {
|
||||
// msmStreamStop(seNo, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void HuAudSStreamFadeOut(s32 seNo, s32 speed) {
|
||||
if (musicOffF == 0) {
|
||||
// msmStreamStop(seNo, speed);
|
||||
}
|
||||
}
|
||||
|
||||
void HuAudSStreamAllFadeOut(s32 speed) {
|
||||
// msmStreamStopAll(speed);
|
||||
}
|
||||
|
||||
void HuAudSStreamAllStop(void) {
|
||||
// msmStreamStopAll(0);
|
||||
}
|
||||
|
||||
s32 HuAudSStreamStatGet(s32 seNo) {
|
||||
return 12;
|
||||
// return msmStreamGetStatus(seNo);
|
||||
}
|
||||
|
||||
SNDGRPTBL sndGrpTable[] = {
|
||||
{ OVL_BOOT, -1, 0, 1, -1, -1 },
|
||||
{ OVL_INST, -1, 0, 1, -1, -1 },
|
||||
{ OVL_M401, 18, 0, 2, 64, 64 },
|
||||
{ OVL_M402, 19, 0, 3, 48, 32 },
|
||||
{ OVL_M403, 20, 0, 1, -1, -1 },
|
||||
{ OVL_M404, 21, 0, 1, -1, -1 },
|
||||
{ OVL_M405, 22, 0, 1, 64, 32 },
|
||||
{ OVL_M406, 23, 0, 1, -1, -1 },
|
||||
{ OVL_M407, 24, 0, 1, -1, -1 },
|
||||
{ OVL_M408, 25, 0, 1, -1, -1 },
|
||||
{ OVL_M409, 26, 0, 4, -1, -1 },
|
||||
{ OVL_M410, 27, 0, 1, -1, -1 },
|
||||
{ OVL_M411, 28, 0, 1, -1, -1 },
|
||||
{ OVL_M412, 29, 0, 1, -1, -1 },
|
||||
{ OVL_M413, 30, 0, 1, -1, -1 },
|
||||
{ OVL_M414, 31, 0, 1, -1, -1 },
|
||||
{ OVL_M415, 32, 0, 1, -1, -1 },
|
||||
{ OVL_M416, 33, 0, 1, -1, -1 },
|
||||
{ OVL_M417, 34, 0, 1, -1, -1 },
|
||||
{ OVL_M418, 35, 0, 1, 64, 64 },
|
||||
{ OVL_M419, 36, 0, 6, -1, -1 },
|
||||
{ OVL_M420, 37, 0, 1, -1, -1 },
|
||||
{ OVL_M421, 38, 0, 1, -1, -1 },
|
||||
{ OVL_M422, 39, 0, 1, -1, -1 },
|
||||
{ OVL_M423, 40, 0, 1, -1, -1 },
|
||||
{ OVL_M424, 41, 0, 1, -1, -1 },
|
||||
{ OVL_M425, 42, 0, 1, -1, -1 },
|
||||
{ OVL_M426, 43, 0, 1, -1, -1 },
|
||||
{ OVL_M427, 44, 0, 1, 64, 72 },
|
||||
{ OVL_M428, 45, 0, 1, -1, -1 },
|
||||
{ OVL_M429, 46, 0, 1, -1, -1 },
|
||||
{ OVL_M430, 47, 0, 1, -1, -1 },
|
||||
{ OVL_M431, 48, 0, 1, -1, -1 },
|
||||
{ OVL_M432, 49, 0, 1, 48, 32 },
|
||||
{ OVL_M433, 50, 0, 1, -1, -1 },
|
||||
{ OVL_M434, 51, 0, 1, -1, -1 },
|
||||
{ OVL_M435, 52, 0, 9, 32, 64 },
|
||||
{ OVL_M436, 53, 0, 10, 32, 64 },
|
||||
{ OVL_M437, 54, 0, 1, 32, 64 },
|
||||
{ OVL_M438, 55, 0, 11, -1, -1 },
|
||||
{ OVL_M439, 56, 0, 12, 48, 32 },
|
||||
{ OVL_M440, 57, 0, 1, -1, -1 },
|
||||
{ OVL_M441, 58, 0, 1, -1, -1 },
|
||||
{ OVL_M442, 59, 0, 1, -1, -1 },
|
||||
{ OVL_M443, 60, 0, 1, -1, -1 },
|
||||
{ OVL_M444, 61, 0, 1, -1, -1 },
|
||||
{ OVL_M445, 62, 0, 1, -1, -1 },
|
||||
{ OVL_M446, 63, 0, 1, -1, -1 },
|
||||
{ OVL_M447, 64, 0, 1, -1, -1 },
|
||||
{ OVL_M448, 65, 0, 1, -1, -1 },
|
||||
{ OVL_M449, 66, 0, 1, -1, -1 },
|
||||
{ OVL_M450, 67, 0, 13, 64, 64 },
|
||||
{ OVL_M451, 68, 0, 1, -1, -1 },
|
||||
{ OVL_M453, 69, 0, 1, -1, -1 },
|
||||
{ OVL_M455, 70, 0, 1, -1, -1 },
|
||||
{ OVL_M456, 71, 0, 1, -1, -1 },
|
||||
{ OVL_M457, 72, 0, 14, 64, 32 },
|
||||
{ OVL_M458, 73, 0, 15, 64, 32 },
|
||||
{ OVL_M459, 74, 0, 1, -1, -1 },
|
||||
{ OVL_M460, 75, 0, 1, -1, -1 },
|
||||
{ OVL_M461, 76, 0, 1, -1, -1 },
|
||||
{ OVL_M462, 77, 0, 1, -1, -1 },
|
||||
{ OVL_M463, 78, 0, 1, -1, -1 },
|
||||
{ OVL_MENT, -1, 0, 1, -1, -1 },
|
||||
{ OVL_MGMODE, 1, 0, 1, -1, -1 },
|
||||
{ OVL_MODESEL, 0, 0, 1, -1, -1 },
|
||||
{ OVL_MODELTEST, 18, 0, 1, -1, -1 },
|
||||
{ OVL_MSETUP, 0, 0, 1, -1, -1 },
|
||||
{ OVL_MSTORY, 5, 0, 1, -1, -1 },
|
||||
{ OVL_MSTORY2, 5, 0, 1, -1, -1 },
|
||||
{ OVL_MSTORY3, 8, 0, 1, -1, -1 },
|
||||
{ OVL_NIS, 9, 0, 1, -1, -1 },
|
||||
{ OVL_OPTION, -1, 0, 1, -1, -1 },
|
||||
{ OVL_PRESENT, -1, 0, 1, -1, -1 },
|
||||
{ OVL_RESULT, -1, 0, 1, -1, -1 },
|
||||
{ OVL_SAF, 0, 0, 2, 127, 127 },
|
||||
{ OVL_SELMENU, 0, 0, 1, -1, -1 },
|
||||
{ OVL_W01, 9, 0, 1, -1, -1 },
|
||||
{ OVL_W02, 10, 0, 1, -1, -1 },
|
||||
{ OVL_W03, 11, 0, 1, -1, -1 },
|
||||
{ OVL_W04, 12, 0, 1, -1, -1 },
|
||||
{ OVL_W05, 13, 0, 1, -1, -1 },
|
||||
{ OVL_W06, 14, 0, 1, -1, -1 },
|
||||
{ OVL_W10, 15, 0, 1, -1, -1 },
|
||||
{ OVL_W20, 16, 0, 1, -1, -1 },
|
||||
{ OVL_W21, 17, 0, 1, -1, -1 },
|
||||
{ OVL_MPEX, 4, 0, 1, -1, -1 },
|
||||
{ OVL_ZTAR, -1, 0, 1, -1, -1 },
|
||||
{ OVL_E3SETUP, 0, 0, 1, -1, -1 },
|
||||
{ OVL_STAFF, -1, 0, 1, -1, -1 },
|
||||
{ OVL_INVALID, -1, 0, 1, 0, 0 }
|
||||
};
|
||||
|
||||
void HuAudDllSndGrpSet(u16 ovl) {
|
||||
SNDGRPTBL *sndGrp;
|
||||
s16 grpSet;
|
||||
|
||||
sndGrp = sndGrpTable;
|
||||
while (1) {
|
||||
if (sndGrp->ovl == ovl) {
|
||||
grpSet = sndGrp->grpSet;
|
||||
break;
|
||||
}
|
||||
if (sndGrp->ovl == OVL_INVALID) {
|
||||
grpSet = 0x12;
|
||||
break;
|
||||
}
|
||||
sndGrp++;
|
||||
}
|
||||
if (grpSet != -1) {
|
||||
OSReport("SOUND ##########################\n");
|
||||
HuAudSndGrpSetSet(grpSet);
|
||||
if (sndGrp->auxANo != auxANoBak || sndGrp->auxBNo != auxBNoBak) {
|
||||
// msmSysSetAux(sndGrp->auxANo, sndGrp->auxBNo);
|
||||
OSReport("Change AUX %d,%d\n", sndGrp->auxANo, sndGrp->auxBNo);
|
||||
auxANoBak = sndGrp->auxANo;
|
||||
auxBNoBak = sndGrp->auxBNo;
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuAudAUXVolSet(sndGrp->auxAVol, sndGrp->auxBVol);
|
||||
OSReport("##########################\n");
|
||||
}
|
||||
}
|
||||
|
||||
void HuAudSndGrpSetSet(s16 dataSize) {
|
||||
void *buf;
|
||||
OSTick osTick;
|
||||
s32 numPlay;
|
||||
s32 err;
|
||||
|
||||
if (sndGroupBak != dataSize) {
|
||||
// msmMusStopAll(1, 0);
|
||||
// msmSeStopAll(1, 0);
|
||||
osTick = OSGetTick();
|
||||
// while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0)
|
||||
// && OSTicksToMilliseconds(OSGetTick() - osTick) < 500);
|
||||
OSReport("%d\n", OSTicksToMilliseconds(OSGetTick() - osTick));
|
||||
if (OSTicksToMilliseconds(OSGetTick() - osTick) >= 500) {
|
||||
// numPlay = msmSeGetNumPlay(1);
|
||||
// OSReport("Timed Out! Mus %d:SE %d\n", msmMusGetNumPlay(1), numPlay);
|
||||
}
|
||||
OSReport("GroupSet %d\n", dataSize);
|
||||
sndGroupBak = dataSize;
|
||||
// err = msmSysDelGroupAll();
|
||||
// buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(1));
|
||||
// err = msmSysLoadGroupSet(dataSize, buf);
|
||||
OSReport("***********GroupSet Error %d\n", err);
|
||||
// HuMemDirectFree(buf);
|
||||
}
|
||||
}
|
||||
|
||||
void HuAudSndGrpSet(s16 grpId) {
|
||||
void *buf;
|
||||
|
||||
// buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId));
|
||||
// msmSysLoadGroup(grpId, buf, 0);
|
||||
HuMemDirectFree(buf);
|
||||
}
|
||||
|
||||
void HuAudSndCommonGrpSet(s16 grpId, s32 groupCheck) {
|
||||
s16 err;
|
||||
OSTick osTick;
|
||||
void *buf;
|
||||
s16 i;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
charVoiceGroupStat[i] = 0;
|
||||
}
|
||||
// msmMusStopAll(1, 0);
|
||||
// msmSeStopAll(1, 0);
|
||||
osTick = OSGetTick();
|
||||
// while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0)
|
||||
// && OSTicksToMilliseconds(OSGetTick() - osTick) < 500);
|
||||
OSReport("CommonGrpSet %d\n", grpId);
|
||||
if (groupCheck != 0) {
|
||||
// err = msmSysDelGroupBase(0);
|
||||
if (err < 0) {
|
||||
OSReport("Del Group Error %d\n", err);
|
||||
}
|
||||
}
|
||||
// buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId));
|
||||
// msmSysLoadGroupBase(grpId, buf);
|
||||
// HuMemDirectFree(buf);
|
||||
sndGroupBak = -1;
|
||||
}
|
||||
|
||||
void HuAudAUXSet(s32 auxA, s32 auxB) {
|
||||
if (auxA == -1) {
|
||||
auxA = 0;
|
||||
}
|
||||
if (auxB == -1) {
|
||||
auxB = 1;
|
||||
}
|
||||
// msmSysSetAux(auxA, auxB);
|
||||
}
|
||||
|
||||
void HuAudAUXVolSet(s8 auxA, s8 auxB) {
|
||||
HuAuxAVol = auxA;
|
||||
HuAuxBVol = auxB;
|
||||
}
|
||||
|
||||
void HuAudVoiceInit(s16 ovl) {
|
||||
SNDGRPTBL *sndGrp;
|
||||
OSTick osTick;
|
||||
s16 numNotChars;
|
||||
s16 grpId;
|
||||
s16 temp_r25;
|
||||
s16 character;
|
||||
|
||||
void *buf;
|
||||
s16 i;
|
||||
|
||||
if (ovl != OVL_INVALID) {
|
||||
sndGrp = sndGrpTable;
|
||||
while (1) {
|
||||
if (sndGrp->ovl == ovl && sndGrp->grpSet == -1) {
|
||||
return;
|
||||
}
|
||||
if (sndGrp->ovl == OVL_INVALID) {
|
||||
break;
|
||||
}
|
||||
sndGrp++;
|
||||
}
|
||||
}
|
||||
for (i = numNotChars = 0; i < 4; i++) {
|
||||
character = GWPlayerCfg[i].character;
|
||||
if (character < 0 || character >= 8 || character == 0xFF || charVoiceGroupStat[character] != 0) {
|
||||
numNotChars++;
|
||||
}
|
||||
}
|
||||
if (numNotChars < 4) {
|
||||
for (i = 0; i < 8; i++) {
|
||||
charVoiceGroupStat[i] = 0;
|
||||
}
|
||||
// msmMusStopAll(1, 0);
|
||||
// msmSeStopAll(1, 0);
|
||||
osTick = OSGetTick();
|
||||
// while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0)
|
||||
// && OSTicksToMilliseconds(OSGetTick() - osTick) < 500);
|
||||
OSReport("############CharGrpSet\n");
|
||||
// temp_r25 = msmSysDelGroupBase(0);
|
||||
if (temp_r25 < 0) {
|
||||
OSReport("Del Group Error %d\n", temp_r25);
|
||||
} else {
|
||||
OSReport("Del Group OK\n");
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
character = GWPlayerCfg[i].character;
|
||||
if (character >= 0 && character < 8 && character != 0xFF) {
|
||||
charVoiceGroupStat[character] = 1;
|
||||
grpId = character + 10;
|
||||
// buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId));
|
||||
#if VERSION_NTSC
|
||||
// msmSysLoadGroupBase(grpId, buf);
|
||||
#else
|
||||
temp_r25 = msmSysLoadGroupBase(grpId, buf);
|
||||
#endif
|
||||
// HuMemDirectFree(buf);
|
||||
}
|
||||
}
|
||||
sndGroupBak = -1;
|
||||
}
|
||||
}
|
||||
|
||||
s32 HuAudPlayerVoicePlay(s16 player, s16 seId) {
|
||||
s16 charNo = GWPlayerCfg[player].character;
|
||||
|
||||
return HuAudCharVoicePlay(charNo, seId);
|
||||
}
|
||||
|
||||
s32 HuAudPlayerVoicePlayPos(s16 player, s16 seId, Vec *pos) {
|
||||
s16 charNo = GWPlayerCfg[player].character;
|
||||
|
||||
return HuAudCharVoicePlayPos(charNo, seId, pos);
|
||||
}
|
||||
|
||||
void HuAudPlayerVoicePlayEntry(s16 player, s16 seId) {
|
||||
s16 charNo = GWPlayerCfg[player].character;
|
||||
|
||||
HuAudCharVoicePlayEntry(charNo, seId);
|
||||
}
|
||||
|
||||
s32 HuAudCharVoicePlay(s16 charNo, s16 seId)
|
||||
{
|
||||
MSM_SEPARAM param;
|
||||
|
||||
// if (omSysExitReq != 0) {
|
||||
// return 0;
|
||||
// }
|
||||
// seId += (charNo << 6);
|
||||
// param.flag = MSM_SEPARAM_NONE;
|
||||
// if (HuAuxAVol != -1) {
|
||||
// param.flag |= MSM_SEPARAM_AUXVOLA;
|
||||
// }
|
||||
// if (HuAuxBVol != -1) {
|
||||
// param.flag |= MSM_SEPARAM_AUXVOLB;
|
||||
// }
|
||||
// param.auxAVol = HuAuxAVol;
|
||||
// param.auxBVol = HuAuxBVol;
|
||||
return HuSePlay(seId, ¶m);
|
||||
}
|
||||
|
||||
s32 HuAudCharVoicePlayPos(s16 charNo, s16 seId, Vec *pos) {
|
||||
MSM_SEPARAM param;
|
||||
|
||||
// if (omSysExitReq != 0) {
|
||||
// return 0;
|
||||
// }
|
||||
// seId += (charNo << 6);
|
||||
// param.flag = MSM_SEPARAM_POS;
|
||||
// if (HuAuxAVol != -1) {
|
||||
// param.flag |= MSM_SEPARAM_AUXVOLA;
|
||||
// }
|
||||
// if (HuAuxBVol != -1) {
|
||||
// param.flag |= MSM_SEPARAM_AUXVOLB;
|
||||
// }
|
||||
// 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 charNo, s16 seId) {
|
||||
// int seNoTbl[MSM_ENTRY_SENO_MAX]; // size unknown (min: 30, max: 33)
|
||||
// u16 id;
|
||||
// u16 i;
|
||||
|
||||
// seId += (charNo << 6);
|
||||
// id = msmSeGetEntryID(seId, seNoTbl);
|
||||
// for (i = 0; i < id; i++) {
|
||||
// msmSeStop(seNoTbl[i], 0);
|
||||
// }
|
||||
}
|
||||
|
||||
static int HuSePlay(int seId, MSM_SEPARAM *param)
|
||||
{
|
||||
s32 result;
|
||||
|
||||
// result = msmSePlay(seId, param);
|
||||
// if (result < 0) {
|
||||
// OSReport("#########SE Entry Error<SE %d:ErrorNo %d>\n", seId, result);
|
||||
// }
|
||||
return 12;
|
||||
// return result;
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
// Credits: Super Monkey Ball
|
||||
|
||||
__declspec(dllexport) void OSReport(const char *msg, ...)
|
||||
void OSReport(const char *msg, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, msg);
|
||||
|
|
@ -22,6 +22,11 @@ u32 OSGetConsoleType()
|
|||
return OS_CONSOLE_RETAIL1;
|
||||
}
|
||||
|
||||
u32 OSGetSoundMode()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
s32 CARDCancel(CARDFileInfo *fileInfo)
|
||||
{
|
||||
puts("CARDCancel is a stub");
|
||||
|
|
@ -676,8 +681,6 @@ void ARQInit(void) {
|
|||
// Hudson
|
||||
void HuDvdErrDispInit(GXRenderModeObj *rmode, void *xfb1, void *xfb2) { }
|
||||
|
||||
void HuAudInit(void) { }
|
||||
|
||||
void msmSysRegularProc(void)
|
||||
{
|
||||
puts("msmSysRegularProc is a stub");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue