Start Decompiling bootdll.c
This commit is contained in:
parent
f383e26929
commit
0fadf3a57f
8 changed files with 460 additions and 140 deletions
|
|
@ -39,6 +39,8 @@ struct OSResetFunctionInfo {
|
|||
OSResetFunctionInfo* prev;
|
||||
};
|
||||
|
||||
u32 OSGetResetCode(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
void Hu3DLayerHookSet(short layer, void (*func)(short layer));
|
||||
void Hu3D2Dto3D(Vec*, s32, Vec*);
|
||||
void Hu3DModelLightInfoSet(s32, s32);
|
||||
void Hu3DBGColorSet(u8, u8, u8);
|
||||
void Hu3DCameraCreate(s32);
|
||||
void Hu3DCameraPerspectiveSet(s32, f32, f32, f32, f32);
|
||||
|
|
@ -50,8 +49,6 @@ void BoardWinCreate(s16, s32, s32);
|
|||
void BoardWinKill(void);
|
||||
void BoardWinWait(void);
|
||||
|
||||
s32 HuTHPFrameGet(void);
|
||||
|
||||
s32 rand8(void);
|
||||
|
||||
void fn_8005D8E8(void);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,10 @@
|
|||
#include "game/hsfformat.h"
|
||||
#include "game/sprite.h"
|
||||
#include "game/init.h"
|
||||
#include "game/data.h"
|
||||
#include "game/memory.h"
|
||||
|
||||
#define Hu3DModelCreateFile(data_id) (Hu3DModelCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA)))
|
||||
|
||||
typedef struct model_data {
|
||||
u8 unk_00;
|
||||
|
|
@ -135,7 +139,6 @@ void Hu3DMotionExec(s16, s16, f32, s32);
|
|||
f32 Hu3DMotionMaxTimeGet(s16); /* extern */
|
||||
s16 Hu3DMotionModelCreate(s16); /* extern */
|
||||
void Hu3DMotionShapeSet(s16, s16); /* extern */
|
||||
HsfData* LoadHSF(s32); /* extern */
|
||||
void MakeDisplayList(s16, HsfData*); /* extern */
|
||||
void ClusterAdjustObject(HsfData*, HsfData*); /* extern */
|
||||
HsfObject* Hu3DObjDuplicate(HsfData*, u32); /* extern */
|
||||
|
|
@ -145,7 +148,6 @@ void Hu3DLLightKill(s16, s16); /* extern */
|
|||
s32 Hu3DMotionKill(s16);
|
||||
void Hu3DModelKill(s16);
|
||||
void Hu3DParManAllKill(void);
|
||||
s32 MakeObjectName(s32);
|
||||
f32 Hu3DMotionMotionMaxTimeGet(s16);
|
||||
void Hu3DMotionStartEndSet(s16, f32, f32);
|
||||
void Hu3DMotionTimeSet(s16, f32);
|
||||
|
|
@ -158,7 +160,7 @@ void Hu3DBGColorSet(u8, u8, u8);
|
|||
void Hu3DLayerHookSet(s16, void (*)(s16));
|
||||
void Hu3DPauseSet(s32);
|
||||
void Hu3DNoSyncSet(s32);
|
||||
s16 Hu3DModelCreate(s32);
|
||||
s16 Hu3DModelCreate(void *);
|
||||
s16 Hu3DModelLink(s16);
|
||||
s16 Hu3DHookFuncCreate(HsfData*);
|
||||
void Hu3DModelAllKill(void);
|
||||
|
|
@ -176,7 +178,7 @@ void Hu3DModelClusterAttrSet(s16, s16, s32);
|
|||
void Hu3DModelClusterAttrReset(s16, s16, s32);
|
||||
void Hu3DModelCameraSet(s16, u16);
|
||||
void Hu3DModelLayerSet(s16, s16);
|
||||
HsfObject* Hu3DModelObjPtrGet(s16, s32);
|
||||
HsfObject* Hu3DModelObjPtrGet(s16, char *);
|
||||
void Hu3DModelTPLvlSet(s16, f32);
|
||||
void Hu3DModelHiliteMapSet(s16, AnimData*);
|
||||
void Hu3DModelShadowSet(s16);
|
||||
|
|
@ -184,11 +186,11 @@ void Hu3DModelShadowReset(s16);
|
|||
void Hu3DModelShadowDispOn(s16);
|
||||
void Hu3DModelShadowDispOff(s16);
|
||||
void Hu3DModelShadowMapSet(s16);
|
||||
void Hu3DModelShadowMapObjSet(s16, s32);
|
||||
void Hu3DModelShadowMapObjSet(s16, char *);
|
||||
void Hu3DModelAmbSet(s16, f32, f32, f32);
|
||||
void Hu3DModelHookSet(s16, s32, s16);
|
||||
void Hu3DModelHookSet(s16, char *, s16);
|
||||
void Hu3DModelHookReset(s16);
|
||||
void Hu3DModelHookObjReset(s16, s32);
|
||||
void Hu3DModelHookObjReset(s16, char *);
|
||||
void Hu3DModelProjectionSet(s16, s16);
|
||||
void Hu3DModelProjectionReset(s16, s16);
|
||||
void Hu3DModelHiliteTypeSet(s16, s16);
|
||||
|
|
@ -203,6 +205,7 @@ void Hu3DCameraKill(s32);
|
|||
void Hu3DCameraAllKill(void);
|
||||
void Hu3DCameraSet(s32, Mtx);
|
||||
BOOL Hu3DModelCameraInfoSet(s16, u16);
|
||||
BOOL Hu3DModelLightInfoSet(s16, u16);
|
||||
s16 Hu3DModelCameraCreate(s16, u16);
|
||||
void Hu3DCameraMotionOn(s16, s8);
|
||||
void Hu3DCameraMotionStart(s16, u16);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
#define _GAME_SPRITE_H
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "game/data.h"
|
||||
#include "game/memory.h"
|
||||
|
||||
#define SPRITE_MAX 384
|
||||
#define SPRITE_GROUP_MAX 256
|
||||
|
|
@ -152,6 +154,7 @@ typedef struct sprite_group_data {
|
|||
extern SpriteData HuSprData[SPRITE_MAX];
|
||||
extern SpriteGroupData HuSprGrpData[SPRITE_GROUP_MAX];
|
||||
|
||||
#define HuSprAnimReadFile(data_id) (HuSprAnimRead(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA)))
|
||||
|
||||
void HuSprInit(void);
|
||||
void HuSprClose(void);
|
||||
|
|
|
|||
18
include/game/thpmain.h
Normal file
18
include/game/thpmain.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#ifndef _GAME_THPMAIN_H
|
||||
#define _GAME_THPMAIN_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
s16 HuTHPSprCreateVol(char *path, s16 loop, s16 prio, float volume);
|
||||
s16 HuTHPSprCreate(char *path, s16 loop, s16 prio);
|
||||
s16 HuTHP3DCreateVol(char *path, s16 loop, float volume);
|
||||
s16 HuTHP3DCreate(char *path, s16 loop);
|
||||
void HuTHPStop(void);
|
||||
void HuTHPClose(void);
|
||||
void HuTHPRestart(void);
|
||||
int HuTHPEndCheck(void);
|
||||
int HuTHPFrameGet(void);
|
||||
int HuTHPTotalFrameGet(void);
|
||||
void HuTHPSetVolume(int left, int right);
|
||||
|
||||
#endif
|
||||
|
|
@ -1,137 +1,433 @@
|
|||
#include "common.h"
|
||||
#include "REL/executor.h"
|
||||
#include "game/process.h"
|
||||
#include "game/data.h"
|
||||
#include "game/sprite.h"
|
||||
#include "game/object.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/memory.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/wipe.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/window.h"
|
||||
#include "game/thpmain.h"
|
||||
#include "math.h"
|
||||
|
||||
extern s16 lbl_1_bss_E;
|
||||
extern s16 lbl_1_data_38[];
|
||||
#define HU_PAD_BTN_ALL (HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3])
|
||||
#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])
|
||||
|
||||
//TODO: fill these in correctly
|
||||
Vec3f lbl_1_rodata_10 = {0.0f, 0.0f, 0.0f};
|
||||
Vec3f lbl_1_rodata_1C = {0.0f, 0.0f, 0.0f};
|
||||
extern int lbl_801D3A00;
|
||||
|
||||
extern f32 lbl_1_bss_1C;
|
||||
extern Vec3f lbl_1_bss_24;
|
||||
extern Vec3f lbl_1_bss_3C;
|
||||
f32 lbl_1_rodata_28;
|
||||
s32 lbl_1_bss_54;
|
||||
Process *lbl_1_bss_54;
|
||||
Vec lbl_1_bss_3C[2];
|
||||
Vec lbl_1_bss_24[2];
|
||||
float lbl_1_bss_1C[2];
|
||||
|
||||
s16 lbl_1_bss_E[7];
|
||||
|
||||
void fn_1_A0(void) {
|
||||
UnkOvl* temp_r3;
|
||||
s16 lbl_1_bss_8[3];
|
||||
s16 lbl_1_bss_6;
|
||||
|
||||
OSReport("******* Boot ObjectSetup *********\n");
|
||||
lbl_1_bss_54 = omInitObjMan(0x32, 0x2000);
|
||||
lbl_1_bss_3C.x = 0.0f;
|
||||
lbl_1_bss_3C.y = 0.0f;
|
||||
lbl_1_bss_3C.z = 0.0f;
|
||||
lbl_1_bss_24.x = 0.0f;
|
||||
lbl_1_bss_24.y = 0.0f;
|
||||
lbl_1_bss_24.z = 0.0f;
|
||||
lbl_1_bss_1C = 0.0f;
|
||||
Hu3DCameraCreate(1);
|
||||
Hu3DCameraPerspectiveSet(1, 0.0f, 0.0f, 0.0f, 0.0f);
|
||||
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
|
||||
HuPrcCreate(fn_1_26C, 0x64, 0x3000, 0);
|
||||
Hu3DBGColorSet(0, 0, 0);
|
||||
temp_r3 = omOvlHisGet(0);
|
||||
omOvlHisChg(0, temp_r3->unk0, 1, temp_r3->unk8);
|
||||
s16 lbl_1_bss_4;
|
||||
s32 lbl_1_bss_0;
|
||||
|
||||
void fn_1_26C(void);
|
||||
void fn_1_9F8(void);
|
||||
void fn_1_AC0(void);
|
||||
void fn_1_2100(void);
|
||||
BOOL fn_1_2474(void);
|
||||
|
||||
void *logoReadNintendo(void);
|
||||
|
||||
void ModuleProlog(void)
|
||||
{
|
||||
omOvlHisData *history;
|
||||
OSReport("******* Boot ObjectSetup *********\n");
|
||||
lbl_1_bss_54 = omInitObjMan(50, 8192);
|
||||
lbl_1_bss_3C[0].x = -67;
|
||||
lbl_1_bss_3C[0].y = 40;
|
||||
lbl_1_bss_3C[0].z = 0;
|
||||
lbl_1_bss_24[0].x = 260;
|
||||
lbl_1_bss_24[0].y = -103;
|
||||
lbl_1_bss_24[0].z = -18;
|
||||
lbl_1_bss_1C[0] = 2885;
|
||||
Hu3DCameraCreate(1);
|
||||
Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2);
|
||||
Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1);
|
||||
HuPrcCreate(fn_1_26C, 100, 12288, 0);
|
||||
Hu3DBGColorSet(0, 0, 0);
|
||||
history = omOvlHisGet(0);
|
||||
omOvlHisChg(0, history->overlay, 1, history->stat);
|
||||
}
|
||||
|
||||
//void fn_1_26C(void)
|
||||
|
||||
void fn_1_9F8(void) {
|
||||
s32 temp_r30;
|
||||
s32 i;
|
||||
|
||||
temp_r30 = fn_800578E4();
|
||||
for (i = 0; lbl_1_data_38[i*2] != -1; i++) {
|
||||
if (temp_r30 == lbl_1_data_38[i*2]) {
|
||||
fn_80045F74(lbl_1_bss_E, i + 0x360000);
|
||||
}
|
||||
if (temp_r30 == lbl_1_data_38[i*2+1]) {
|
||||
fn_80044920(lbl_1_bss_E);
|
||||
}
|
||||
}
|
||||
void fn_1_26C(void)
|
||||
{
|
||||
AnimData *data;
|
||||
s16 group;
|
||||
s16 sprite_nintendo;
|
||||
s16 sprite_hudson;
|
||||
s16 i;
|
||||
OSTick tick_prev;
|
||||
Process *curr = HuPrcCurrentGet();
|
||||
if(omovlevtno == 0) {
|
||||
fn_1_AC0();
|
||||
}
|
||||
group = HuSprGrpCreate(2);
|
||||
data = HuSprAnimRead(logoReadNintendo());
|
||||
sprite_nintendo = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 0, sprite_nintendo);
|
||||
HuSprPosSet(group, 0, 288, 240);
|
||||
HuSprAttrSet(group, 0, SPRITE_ATTR_HIDDEN);
|
||||
if(omovlevtno != 0) {
|
||||
HuAudSndGrpSetSet(0);
|
||||
data = HuSprAnimReadFile(MAKE_DATA_NUM(DATADIR_TITLE, 1));
|
||||
sprite_hudson = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
||||
HuSprPosSet(group, 1, 288, 240);
|
||||
HuSprAttrSet(group, 1, SPRITE_ATTR_HIDDEN);
|
||||
HuWinInit(1);
|
||||
fn_1_2100();
|
||||
lbl_801D3A00 = 1;
|
||||
} else {
|
||||
s16 group_thp;
|
||||
BOOL skip_wait;
|
||||
float win_size[2];
|
||||
s16 sprite_thp;
|
||||
for(i=0; i<4; i++) {
|
||||
GWPlayerCfg[i].pad_idx = i;
|
||||
}
|
||||
repeat:
|
||||
HuSprAttrReset(group, 0, SPRITE_ATTR_HIDDEN);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while(WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
WipeColorSet(255, 255, 255);
|
||||
if(!lbl_801D3A00) {
|
||||
tick_prev = OSGetTick();
|
||||
fn_800498F0();
|
||||
HuWindowInit();
|
||||
MGSeqInit();
|
||||
HuWinInit(1);
|
||||
fn_1_2100();
|
||||
data = HuSprAnimReadFile(MAKE_DATA_NUM(DATADIR_TITLE, 1));
|
||||
sprite_hudson = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
||||
HuSprPosSet(group, 1, 288, 240);
|
||||
HuSprAttrSet(group, 1, SPRITE_ATTR_HIDDEN);
|
||||
while(OSTicksToMilliseconds(OSGetTick()-tick_prev) < 3000) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
} else {
|
||||
for(i=0; i<180; i++) {
|
||||
if(HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) {
|
||||
break;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while(WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprAttrSet(group, 0, SPRITE_ATTR_HIDDEN);
|
||||
HuSprAttrReset(group, 1, SPRITE_ATTR_HIDDEN);
|
||||
HuPrcSleep(60);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while(WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if(!lbl_801D3A00) {
|
||||
void *group_samp;
|
||||
tick_prev = OSGetTick();
|
||||
group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0));
|
||||
msmSysLoadGroup(0, group_samp, 0);
|
||||
HuMemDirectFree(group_samp);
|
||||
while(OSTicksToMilliseconds(OSGetTick()-tick_prev) < 3000) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
} else {
|
||||
for(i=0; i<180; i++) {
|
||||
if(HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) {
|
||||
break;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while(WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
tick_prev = OSGetTick();
|
||||
if(!lbl_801D3A00) {
|
||||
HuAudSndGrpSetSet(0);
|
||||
lbl_801D3A00 = 1;
|
||||
}
|
||||
while(OSTicksToMilliseconds(OSGetTick()-tick_prev) < 1000) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprAttrSet(group, 0, SPRITE_ATTR_HIDDEN);
|
||||
HuSprAttrSet(group, 1, SPRITE_ATTR_HIDDEN);
|
||||
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);
|
||||
HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4));
|
||||
lbl_1_bss_E[0] = HuWinCreate(-10000, 448-win_size[1], win_size[0], win_size[1], 0);
|
||||
HuWinMesSpeedSet(lbl_1_bss_E[0], 0);
|
||||
HuWinBGTPLvlSet(lbl_1_bss_E[0], 0);
|
||||
HuWinPriSet(lbl_1_bss_E[0], 10);
|
||||
HuWinAttrSet(lbl_1_bss_E[0], 0x800);
|
||||
HuPrcSleep(5);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10);
|
||||
while(WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
skip_wait = FALSE;
|
||||
while(!HuTHPEndCheck()) {
|
||||
fn_1_9F8();
|
||||
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(lbl_1_bss_E[0]);
|
||||
HuTHPClose();
|
||||
HuPrcVSleep();
|
||||
HuSprGrpKill(group_thp);
|
||||
if(!skip_wait) {
|
||||
HuPrcSleep(60);
|
||||
}
|
||||
skip_wait = FALSE;
|
||||
}
|
||||
if(!fn_1_2474()) {
|
||||
HuPrcSleep(60);
|
||||
goto repeat;
|
||||
}
|
||||
WipeColorSet(255, 255, 255);
|
||||
HuAudSStreamAllFadeOut(500);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while(WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcVSleep();
|
||||
if(omSysExitReq) {
|
||||
omOvlReturnEx(1, 1);
|
||||
} else {
|
||||
omOvlCallEx(OVL_MODESEL, 1, 0, 0);
|
||||
}
|
||||
for(i=0; i<4; i++) {
|
||||
GWPlayerCfg[i].character = -1;
|
||||
}
|
||||
HuPrcEnd();
|
||||
do {
|
||||
HuPrcVSleep();
|
||||
} while(1);
|
||||
}
|
||||
|
||||
//fn_1_AC0
|
||||
s16 lbl_1_data_38[] = {
|
||||
1686, 1785,
|
||||
1850, 1936,
|
||||
1993, 2097,
|
||||
2135, 2245,
|
||||
2258, 2320,
|
||||
-1, -1,
|
||||
};
|
||||
|
||||
//fn_1_1178
|
||||
|
||||
//fn_1_152C
|
||||
|
||||
typedef struct temp2 {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s16 unk4;
|
||||
} temp2;
|
||||
|
||||
s32 fn_80008364(s32, s32, s32);
|
||||
s32 fn_8000DD24(void);
|
||||
s32 fn_8000DE48(s32, s32, s32);
|
||||
s16 fn_8000E0F8(s32);
|
||||
void fn_8000E520(s16, s32, s32);
|
||||
void fn_8000E808(s16, s32, s32);
|
||||
s32 fn_8000E960(s16, s32, f32, f32);
|
||||
void fn_8000F038(s16, s32, s32);
|
||||
s16 fn_800204D0(s32);
|
||||
void fn_80021228(s16, s32);
|
||||
void fn_80022420(s16, s32);
|
||||
void Hu3DModelLightInfoSet(s16, s32);
|
||||
extern s16 lbl_1_bss_6;
|
||||
extern temp2 lbl_1_bss_8;
|
||||
extern f32 lbl_1_rodata_48;
|
||||
extern f32 lbl_1_rodata_4C;
|
||||
extern f32 lbl_1_rodata_98;
|
||||
extern f32 lbl_1_rodata_9C;
|
||||
extern f32 lbl_1_rodata_A0;
|
||||
|
||||
void fn_1_2100(void) {
|
||||
s32 temp_r3_2;
|
||||
s32 temp_r3;
|
||||
s16 temp_r3_3;
|
||||
|
||||
temp_r3_3 = fn_800204D0(fn_80008364(0x74000B, 0x10000000, 2));
|
||||
lbl_1_bss_8.unk0 = temp_r3_3;
|
||||
fn_80021228(temp_r3_3, 1);
|
||||
fn_80021228(temp_r3_3, 0x40000001);
|
||||
temp_r3_3 = fn_800204D0(fn_80008364(0x74000C, 0x10000000, 2));
|
||||
lbl_1_bss_8.unk2 = temp_r3_3;
|
||||
fn_80021228(temp_r3_3, 1);
|
||||
fn_80021228(temp_r3_3, 0x40000001);
|
||||
temp_r3_3 = fn_800204D0(fn_80008364(0x74000D, 0x10000000, 2));
|
||||
lbl_1_bss_8.unk4 = temp_r3_3;
|
||||
fn_80021228(temp_r3_3, 1);
|
||||
fn_80021228(temp_r3_3, 0x40000001);
|
||||
fn_80022420(temp_r3_3, 1);
|
||||
Hu3DModelLightInfoSet(temp_r3_3, 1);
|
||||
lbl_1_bss_6 = fn_8000E0F8(4);
|
||||
fn_80008364(0x740008, 0x10000000, 2);
|
||||
temp_r3 = fn_8000DD24();
|
||||
temp_r3_2 = fn_8000DE48(temp_r3, 0, 0);
|
||||
fn_8000E520(lbl_1_bss_6, 0, temp_r3_2);
|
||||
fn_8000E808(lbl_1_bss_6, 0, 4);
|
||||
fn_8000F038(lbl_1_bss_6, 0, 0x7F);
|
||||
fn_8000E960(lbl_1_bss_6, 0, lbl_1_rodata_48, lbl_1_rodata_4C);
|
||||
fn_80008364(0x74000A, 0x10000000, 2);
|
||||
temp_r3 = fn_8000DD24();
|
||||
temp_r3_2 = fn_8000DE48(temp_r3, 1, 0);
|
||||
fn_8000E520(lbl_1_bss_6, 1, temp_r3_2);
|
||||
fn_8000E808(lbl_1_bss_6, 1, 4);
|
||||
fn_8000E960(lbl_1_bss_6, 1, lbl_1_rodata_48, lbl_1_rodata_98);
|
||||
fn_80008364(0x740002, 0x10000000, 2);
|
||||
temp_r3 = fn_8000DD24();
|
||||
temp_r3_2 = fn_8000DE48(temp_r3, 2, 0);
|
||||
fn_8000E520(lbl_1_bss_6, 2, temp_r3_2);
|
||||
fn_8000E808(lbl_1_bss_6, 2, 0xC);
|
||||
fn_8000E960(lbl_1_bss_6, 2, lbl_1_rodata_48, lbl_1_rodata_9C);
|
||||
fn_80008364(0x740009, 0x10000000, 2);
|
||||
temp_r3 = fn_8000DD24();
|
||||
temp_r3_2 = fn_8000DE48(temp_r3, 0, 0);
|
||||
fn_8000E520(lbl_1_bss_6, 3, temp_r3_2);
|
||||
fn_8000E808(lbl_1_bss_6, 3, 0xC);
|
||||
fn_8000E960(lbl_1_bss_6, 3, lbl_1_rodata_48, lbl_1_rodata_A0);
|
||||
void fn_1_9F8(void)
|
||||
{
|
||||
int frame = HuTHPFrameGet();
|
||||
int i;
|
||||
for(i=0; lbl_1_data_38[i*2] != -1; i++) {
|
||||
if(frame == lbl_1_data_38[i*2]) {
|
||||
HuWinMesSet(lbl_1_bss_E[0], MAKE_MESSID(54, i));
|
||||
}
|
||||
if(frame == lbl_1_data_38[(i*2)+1]) {
|
||||
HuWinHomeClear(lbl_1_bss_E[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//fn_1_2474
|
||||
u16 lbl_1_data_50[] = {
|
||||
236, 313,
|
||||
353, 313
|
||||
};
|
||||
|
||||
//fn_1_2944
|
||||
void fn_1_AC0(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(MAKE_DATA_NUM(DATADIR_TITLE, 3));
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 0, sprite);
|
||||
HuSprPosSet(group, 0, 288, 240);
|
||||
data = HuSprAnimReadFile(MAKE_DATA_NUM(DATADIR_TITLE, 6));
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 1, sprite);
|
||||
HuSprPosSet(group, 1, lbl_1_data_50[option*2], lbl_1_data_50[(option*2)+1]);
|
||||
data = HuSprAnimReadFile(MAKE_DATA_NUM(DATADIR_TITLE, 7));
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 2, sprite);
|
||||
HuSprPosSet(group, 2, lbl_1_data_50[option*2], lbl_1_data_50[(option*2)+1]);
|
||||
HuSprAttrSet(group, 2, SPRITE_ATTR_HIDDEN);
|
||||
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, lbl_1_data_50[option*2], lbl_1_data_50[(option*2)+1]);
|
||||
i=0;
|
||||
}
|
||||
if(HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) {
|
||||
HuSprAttrSet(group, 1, SPRITE_ATTR_HIDDEN);
|
||||
HuSprPosSet(group, 2, lbl_1_data_50[option*2], lbl_1_data_50[(option*2)+1]);
|
||||
HuSprAttrReset(group, 2, SPRITE_ATTR_HIDDEN);
|
||||
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(MAKE_DATA_NUM(DATADIR_TITLE, 4));
|
||||
} else {
|
||||
data = HuSprAnimReadFile(MAKE_DATA_NUM(DATADIR_TITLE, 5));
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
u16 lbl_1_data_58[] = {
|
||||
1, 2
|
||||
};
|
||||
|
||||
void fn_1_1178(void)
|
||||
{
|
||||
|
||||
s16 i;
|
||||
for(i=0; i<1; i++) {
|
||||
Vec pos, target, up;
|
||||
float x, y, z;
|
||||
|
||||
x = lbl_1_bss_3C[i].x;
|
||||
y = lbl_1_bss_3C[i].y;
|
||||
z = lbl_1_bss_3C[i].z;
|
||||
|
||||
pos.x = (((sin((M_PI*y)/180.0)*cos((M_PI*x)/180.0))*lbl_1_bss_1C[i])+lbl_1_bss_24[i].x);
|
||||
pos.y = (-sin((M_PI*x)/180.0)*lbl_1_bss_1C[i])+lbl_1_bss_24[i].y;
|
||||
pos.z = ((cos((M_PI*y)/180.0)*cos((M_PI*x)/180.0))*lbl_1_bss_1C[i])+lbl_1_bss_24[i].z;
|
||||
target.x = lbl_1_bss_24[i].x;
|
||||
target.y = lbl_1_bss_24[i].y;
|
||||
target.z = lbl_1_bss_24[i].z;
|
||||
up.x = sin((M_PI*y)/180.0)*sin((M_PI*x)/180.0);
|
||||
up.y = cos((M_PI*x)/180.0);
|
||||
up.z = cos((M_PI*y)/180.0)*sin((M_PI*x)/180.0);
|
||||
Hu3DCameraPosSet(lbl_1_data_58[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_152C(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void fn_1_2100(void)
|
||||
{
|
||||
s16 model;
|
||||
s16 sprite;
|
||||
AnimData *sprite_data;
|
||||
lbl_1_bss_8[0] = model = Hu3DModelCreateFile(MAKE_DATA_NUM(DATADIR_TITLE, 11));
|
||||
Hu3DModelAttrSet(model, 1);
|
||||
Hu3DModelAttrSet(model, 0x40000001);
|
||||
lbl_1_bss_8[1] = model = Hu3DModelCreateFile(MAKE_DATA_NUM(DATADIR_TITLE, 12));
|
||||
Hu3DModelAttrSet(model, 1);
|
||||
Hu3DModelAttrSet(model, 0x40000001);
|
||||
lbl_1_bss_8[2] = model = Hu3DModelCreateFile(MAKE_DATA_NUM(DATADIR_TITLE, 13));
|
||||
Hu3DModelAttrSet(model, 1);
|
||||
Hu3DModelAttrSet(model, 0x40000001);
|
||||
Hu3DModelCameraInfoSet(model, 1);
|
||||
Hu3DModelLightInfoSet(model, 1);
|
||||
lbl_1_bss_6 = HuSprGrpCreate(4);
|
||||
sprite_data = HuSprAnimReadFile(MAKE_DATA_NUM(DATADIR_TITLE, 8));
|
||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
HuSprGrpMemberSet(lbl_1_bss_6, 0, sprite);
|
||||
HuSprAttrSet(lbl_1_bss_6, 0, SPRITE_ATTR_HIDDEN);
|
||||
HuSprDrawNoSet(lbl_1_bss_6, 0, 127);
|
||||
HuSprPosSet(lbl_1_bss_6, 0, 288, 240);
|
||||
sprite_data = HuSprAnimReadFile(MAKE_DATA_NUM(DATADIR_TITLE, 10));
|
||||
sprite = HuSprCreate(sprite_data, 1, 0);
|
||||
HuSprGrpMemberSet(lbl_1_bss_6, 1, sprite);
|
||||
HuSprAttrSet(lbl_1_bss_6, 1, SPRITE_ATTR_HIDDEN);
|
||||
HuSprPosSet(lbl_1_bss_6, 1, 288, 420);
|
||||
sprite_data = HuSprAnimReadFile(MAKE_DATA_NUM(DATADIR_TITLE, 2));
|
||||
sprite = HuSprCreate(sprite_data, 2, 0);
|
||||
HuSprGrpMemberSet(lbl_1_bss_6, 2, sprite);
|
||||
HuSprAttrSet(lbl_1_bss_6, 2, SPRITE_ATTR_HIDDEN|SPIRTE_ATTR_BILINEAR);
|
||||
HuSprPosSet(lbl_1_bss_6, 2, 288, 380);
|
||||
sprite_data = HuSprAnimReadFile(MAKE_DATA_NUM(DATADIR_TITLE, 9));
|
||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
HuSprGrpMemberSet(lbl_1_bss_6, 3, sprite);
|
||||
HuSprAttrSet(lbl_1_bss_6, 3, SPRITE_ATTR_HIDDEN|SPIRTE_ATTR_BILINEAR);
|
||||
HuSprPosSet(lbl_1_bss_6, 3, 288, 200);
|
||||
}
|
||||
|
||||
BOOL fn_1_2474(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -67,7 +67,7 @@ inline s32 get_current_board(void) {
|
|||
|
||||
void fn_1_E0(void) {
|
||||
f32 sp10;
|
||||
f32 spC;
|
||||
f32 spC[2];
|
||||
s32 sp8;
|
||||
|
||||
s32 i;
|
||||
|
|
@ -130,8 +130,8 @@ void fn_1_E0(void) {
|
|||
fn_800A4F6C(lbl_1_data_32);
|
||||
fn_80077AAC(lbl_1_data_2E);
|
||||
fn_8007A83C(lbl_1_data_30);
|
||||
HuWinMesMaxSizeGet(1, &spC, 0x2E003A);
|
||||
lbl_1_bss_E = HuWinCreate(-10000.0f, 390.0f, spC, sp10, 1);
|
||||
HuWinMesMaxSizeGet(1, spC, 0x2E003A);
|
||||
lbl_1_bss_E = HuWinCreate(-10000.0f, 390.0f, spC[0], spC[1], 1);
|
||||
HuWinMesSet(lbl_1_bss_E, 0x2E003A);
|
||||
HuWinMesSpeedSet(lbl_1_bss_E, 0);
|
||||
HuWinPriSet(lbl_1_bss_E, 1);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "game/hsfman.h"
|
||||
#include "game/hsfload.h"
|
||||
|
||||
ModelData Hu3DData[0x200];
|
||||
CameraData Hu3DCamera[0x10];
|
||||
|
|
@ -310,7 +311,7 @@ void Hu3DNoSyncSet(s32 arg0) {
|
|||
NoSyncF = arg0;
|
||||
}
|
||||
|
||||
s16 Hu3DModelCreate(s32 arg0) {
|
||||
s16 Hu3DModelCreate(void *arg0) {
|
||||
HsfData* temp_r0;
|
||||
ModelData* var_r31;
|
||||
s16 i;
|
||||
|
|
@ -726,7 +727,7 @@ void Hu3DModelLayerSet(s16 arg0, s16 arg1) {
|
|||
layerNum[arg1] += 1;
|
||||
}
|
||||
|
||||
HsfObject* Hu3DModelObjPtrGet(s16 arg0, s32 arg1) {
|
||||
HsfObject* Hu3DModelObjPtrGet(s16 arg0, char *arg1) {
|
||||
char name[0x100];
|
||||
s32 spC;
|
||||
s16 sp8;
|
||||
|
|
@ -900,7 +901,7 @@ void Hu3DModelShadowMapSet(s16 arg0) {
|
|||
}
|
||||
}
|
||||
|
||||
void Hu3DModelShadowMapObjSet(s16 arg0, s32 arg1) {
|
||||
void Hu3DModelShadowMapObjSet(s16 arg0, char *arg1) {
|
||||
char name[0x100];
|
||||
HsfData* temp_r30;
|
||||
s16 i;
|
||||
|
|
@ -931,7 +932,7 @@ void Hu3DModelAmbSet(s16 arg0, f32 arg8, f32 arg9, f32 argA) {
|
|||
temp_r31->unk_58.y = argA;
|
||||
}
|
||||
|
||||
void Hu3DModelHookSet(s16 arg0, s32 arg1, s16 arg2) {
|
||||
void Hu3DModelHookSet(s16 arg0, char *arg1, s16 arg2) {
|
||||
char name[0x100];
|
||||
ModelData* data;
|
||||
HsfData* temp_r30;
|
||||
|
|
@ -986,7 +987,7 @@ void Hu3DModelHookReset(s16 arg0) {
|
|||
}
|
||||
}
|
||||
|
||||
void Hu3DModelHookObjReset(s16 arg0, s32 arg1) {
|
||||
void Hu3DModelHookObjReset(s16 arg0, char *arg1) {
|
||||
char name[0x100];
|
||||
ModelData* temp_r28;
|
||||
HsfData* temp_r30;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue