x64 and hsfload improvements, build every REL (#582)

* Port some of hsfload.c

* More byteswaps in hsfload.c

* Finish hsfload besides cenv

* hsfload fixes

* Some x64 improvements

* More x64 improvements

* 64 bit improvements

* Link in lots of files

* Fix armem bug

* Fix dll killing, load modeseldll

* Fixes, clearing TODOs

* Tons of warning/error fixes

* Linux build fixes

* Add -fPIC flag to fix build on x64 linux

* GXSETARRAY sizes and misc fixes

* More fixes

* Build all RELs

* Implement C_Quat functions

* Fix PAL build
This commit is contained in:
Dávid Balatoni 2025-04-14 18:02:42 +02:00 committed by GitHub
parent bc19d2263b
commit 34cf507e3f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
186 changed files with 3256 additions and 1540 deletions

View file

@ -1,10 +1,17 @@
#include "REL/board_executor.h"
#include "math.h"
#ifdef TARGET_PC
void ObjectSetup(void) {
BoardObjectSetup(BoardCreate, BoardDestroy);
}
#else
static void ObjectSetup(void) {
BoardObjectSetup(BoardCreate, BoardDestroy);
}
#endif
#ifdef __MWERKS__
s32 _prolog(void) {
const VoidFunc* ctors = _ctors;
while (*ctors != 0) {
@ -21,4 +28,5 @@ void _epilog(void) {
(**dtors)();
dtors++;
}
}
}
#endif

View file

@ -16,6 +16,7 @@
#include "game/wipe.h"
#include "math.h"
#include "port/byteswap.h"
#include "data_num/title.h"
@ -125,10 +126,7 @@ void ObjectSetup(void)
HuSprGrpMemberSet(group, 1, sprite_hudson);
HuSprPosSet(group, 1, 288, 240);
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
#ifdef __MWERKS__
// TODO PC
HuWinInit(1);
#endif
BootTitleCreate();
SystemInitF = 1;
}
@ -161,13 +159,10 @@ void ObjectSetup(void)
WipeColorSet(255, 255, 255);
if (!SystemInitF) {
tick_prev = OSGetTick();
#ifdef __MWERKS__
// TODO PC
CharManInit();
HuWindowInit();
MGSeqInit();
HuWinInit(1);
#endif
BootTitleCreate();
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
sprite_hudson = HuSprCreate(data, 0, 0);
@ -269,8 +264,6 @@ void ObjectSetup(void)
HuPrcVSleep();
}
skip_wait = FALSE;
#ifdef __MWERKS__
// TODO PC
while (!HuTHPEndCheck()) {
UpdateDemoMess();
if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
@ -279,21 +272,14 @@ void ObjectSetup(void)
}
HuPrcVSleep();
}
#endif
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
while (WipeStatGet()) {
HuPrcVSleep();
}
#ifdef __MWERKS__
// TODO PC
HuWinKill(demoWinId);
HuTHPClose();
#endif
HuPrcVSleep();
#ifdef __MWERKS__
// TODO PC
HuSprGrpKill(group_thp);
#endif
if (!skip_wait) {
HuPrcSleep(60);
}
@ -346,16 +332,10 @@ void ObjectSetup(void)
int i;
for (i = 0; demoMessTimeTbl[i * 2] != -1; i++) {
if (frame == demoMessTimeTbl[i * 2]) {
#ifdef __MWERKS__
// TODO PC
HuWinMesSet(demoWinId, MAKE_MESSID(54, i));
#endif
}
if (frame == demoMessTimeTbl[(i * 2) + 1]) {
#ifdef __MWERKS__
// TODO PC
HuWinHomeClear(demoWinId);
#endif
}
}
}

View file

@ -17,6 +17,10 @@
#include "ext_math.h"
#include "math.h"
#ifndef __MWERKS__
#include "game/audio.h"
#endif
float lbl_2_data_0 = -7.1875f;
s16 lbl_2_data_4[] = { 0, 1, 2, 3, 4, 5, 6, 7 };

View file

@ -11,6 +11,10 @@
#include "REL/m401Dll.h"
#ifndef __MWERKS__
extern s32 rand8(void);
#endif
struct Bss13EData {
s16 unk0;
s16 unk2[3];
@ -43,7 +47,7 @@ void fn_2_10240(Vec *arg0, Vec *arg1)
camera = &Hu3DCamera[0];
MTXLookAt(lookat, &camera->pos, &camera->up, &camera->target);
MTXMultVec(lookat, arg0, arg0);
MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far);
MTXPerspective(proj, camera->fov, camera->aspect, camera->nnear, camera->ffar);
coord[0] = (arg0->x * proj[0][0]) + (arg0->y * proj[0][1]) + (arg0->z * proj[0][2]) + proj[0][3];
coord[1] = (arg0->x * proj[1][0]) + (arg0->y * proj[1][1]) + (arg0->z * proj[1][2]) + proj[1][3];
coord[2] = (arg0->x * proj[2][0]) + (arg0->y * proj[2][1]) + (arg0->z * proj[2][2]) + proj[2][3];
@ -319,7 +323,6 @@ void fn_2_113AC(omObjData *object)
M401WorkPlayer *temp_r28;
omObjData *temp_r27;
ParticleData *temp_r25;
s16 temp_r24;
temp_r30 = object->data;
temp_r30->unk0.z += (lbl_2_bss_50 * 0.5f);
object->trans.x = temp_r30->unk0.x;
@ -564,7 +567,6 @@ void fn_2_123F8(ModelData *model, ParticleData *particle, Mtx matrix)
HsfanimStruct01 *temp_r31;
s32 temp_r29;
s32 temp_r28;
UnkWork10A88 *temp_r27;
if (!particle->unk_02) {
particle->unk_02 = 1;
temp_r31 = particle->unk_48;

View file

@ -682,7 +682,9 @@ static void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3)
VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0);
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
static void fn_1_2454(void)
{

View file

@ -260,7 +260,7 @@ void ObjectSetup(void)
var_r29 = Hu3DGLightCreateV(&lbl_1_data_770, &lbl_1_bss_10, &lbl_1_data_788);
Hu3DGLightInfinitytSet(var_r29);
Hu3DGLightStaticSet(var_r29, 1);
Hu3DShadowCreate(45.0f, var_r30->near, var_r30->far);
Hu3DShadowCreate(45.0f, var_r30->nnear, var_r30->ffar);
Hu3DShadowTPLvlSet(0.625f);
Hu3DShadowPosSet(&lbl_1_data_78C, &lbl_1_data_798, &lbl_1_data_77C);
HuAudSndGrpSet(29);
@ -471,7 +471,12 @@ void fn_1_7E0(omObjData *object)
espTPLvlSet(var_r31->unk_02[var_r30], 0.5f);
break;
case 2:
#ifdef NON_MATCHING
// TODO 1 or 0?
var_r31->unk_02[var_r30] = espEntry(lbl_1_data_86C[var_r27->unk_02[5]], 0, 0);
#else
var_r31->unk_02[var_r30] = espEntry(lbl_1_data_86C[var_r27->unk_02[5]]);
#endif
espPriSet(var_r31->unk_02[var_r30], 255);
break;
case 3:

View file

@ -8,6 +8,7 @@
#include "game/gamework_data.h"
#include "game/hsfanim.h"
#include "game/hsfdraw.h"
#include <game/hsfex.h>
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/memory.h"
@ -23,6 +24,11 @@
#include "dolphin.h"
#include "ext_math.h"
#ifndef __MWERKS__
#include "game/audio.h"
#endif
#undef ABS
#define ABS(x) ((0 > (x)) ? -(x) : (x))
@ -1277,7 +1283,9 @@ float fn_1_5664(Vec *arg0)
return lbl_1_bss_5AC.unk04[fn_1_23B4(arg0)].y;
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
Vec lbl_1_data_100 = { 0.0f, 1.0f, 0.0f };
Vec lbl_1_data_10C = { 450.0f, 300.0f, 500.0f };

View file

@ -8,6 +8,10 @@
#include "REL/m406Dll.h"
#ifndef __MWERKS__
#include <game/frand.h>
#endif
typedef struct UnkM406Struct {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
@ -222,7 +226,7 @@ void fn_1_D488(float arg8, Vec *arg0, Vec *arg1, Vec *arg2);
void fn_1_D518(Mtx arg0, Vec *arg1);
float fn_1_D5CC(Vec *arg0, Vec *arg1, float arg8, float arg9);
extern u32 GlobalCounter;
SHARED_SYM extern u32 GlobalCounter;
Vec lbl_1_data_F0[0x46] = {
{ -495.876f, 50.005f, -0.0f },
@ -455,7 +459,7 @@ UnkM406Struct5 lbl_1_bss_48;
Vec lbl_1_bss_3C;
s32 lbl_1_bss_30[3];
extern LightData Hu3DLocalLight[0x20];
SHARED_SYM extern LightData Hu3DLocalLight[0x20];
omObjData *fn_1_2308(Process *arg0)
{
@ -1250,7 +1254,11 @@ void fn_1_4964(ModelData *arg0)
fn_1_71C4(spC4, spA0, 100.0f + (50.0f * (0.007874016f * (frand() & 0x7F))), -0.1f, sp3C);
}
var_r29 = var_r30->unk_2C;
#ifdef NON_MATCHING
memset(&lbl_1_bss_48, 0, sizeof(UnkM406Struct5));
#else
memset(lbl_1_bss_48, 0, sizeof(UnkM406Struct5));
#endif
for (var_r27 = 0; var_r27 < 105; var_r27++, var_r29++) {
fn_1_D488(var_r29->unk_04, &var_r30->unk_84[var_r29->unk_00], &var_r30->unk_84[var_r29->unk_00 + 1], &var_r29->unk_18);
if (var_r29->unk_08 >= 0) {
@ -2946,13 +2954,13 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4])
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r31->unk_40, 0xC);
GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_26 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44);
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(GXColor), 0x44);
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8);
GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_26 * sizeof(Vec2f) * 4, sizeof(Vec2f));
if (HmfInverseMtxF3X3(arg1, sp128) == 0) {
MTXIdentity(sp128);
}
@ -3162,10 +3170,10 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r31->unk_40, sizeof(Vec));
GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_26 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44);
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(GXColor), 0x44);
if (HmfInverseMtxF3X3(arg1, sp9C) == 0) {
MTXIdentity(sp9C);
}

View file

@ -74,7 +74,6 @@ ObjFuncs lbl_1_data_258[] = {
void fn_1_2354(Process *arg0)
{
Process *sp8;
u32 i;
u32 j;
@ -123,7 +122,7 @@ void fn_1_2564(void)
void fn_1_25C0(void)
{
u32 i, j;
u32 i;
lbl_1_bss_38 = 0;
@ -371,7 +370,7 @@ void fn_1_31F8(omObjData *arg0)
}
}
void fn_1_3360(omObjData *) { }
void fn_1_3360(omObjData *arg0) { }
void fn_1_3364(omObjData *arg0)
{

View file

@ -1042,7 +1042,7 @@ void fn_1_10484(UnkFn10484 *arg0, HsfFace *arg1, HsfDrawData *arg2, GXColor *arg
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, temp_r30->data.vertex->data, sizeof(HsfVector3f));
GXSETARRAY(GX_VA_POS, temp_r30->data.vertex->data, temp_r30->data.vertex->count * sizeof(HsfVector3f), sizeof(HsfVector3f));
if (temp_r25 & 0x2) {
GXSetVtxDesc(GX_VA_NBT, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8);
@ -1050,15 +1050,15 @@ void fn_1_10484(UnkFn10484 *arg0, HsfFace *arg1, HsfDrawData *arg2, GXColor *arg
else {
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
GXSetArray(GX_VA_NRM, temp_r30->data.normal->data, sizeof(HsfVector3f));
GXSETARRAY(GX_VA_NRM, temp_r30->data.normal->data, temp_r30->data.vertex->count * sizeof(HsfVector3f), sizeof(HsfVector3f));
}
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, temp_r30->data.st->data, sizeof(HsfVector2f));
GXSETARRAY(GX_VA_TEX0, temp_r30->data.st->data, temp_r30->data.vertex->count * sizeof(HsfVector2f), sizeof(HsfVector2f));
if (temp_r25 & 0x4) {
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, arg3, sizeof(GXColor));
GXSETARRAY(GX_VA_CLR0, arg3, arg0->unk4->data.color->count * sizeof(GXColor), sizeof(GXColor));
}
GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1);
GXSetZCompLoc(GX_FALSE);
@ -1150,7 +1150,7 @@ void fn_1_10830(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3)
GXSetTevColor(reg, color_var); \
}
extern u32 texMtxTbl[];
SHARED_SYM extern u32 texMtxTbl[];
void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial *arg1)
{

View file

@ -6,8 +6,7 @@
void fn_1_BF88(s16 arg0, s16 arg1)
{
s32 var_r31;
s32 var_r31_2;
s32 i;
unkStruct8 *var_r29;
unkStruct9Sub *var_r30;
@ -20,11 +19,11 @@ void fn_1_BF88(s16 arg0, s16 arg1)
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), MEMORY_DEFAULT_NUM);
lbl_1_bss_F0.unkC = var_r30;
for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) {
for (i = 0; i < arg0; i++, var_r29++) {
var_r29->unk8 = 0;
}
for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) {
for (i = 0; i < arg1; i++, var_r30++) {
var_r30->unk6 = 0;
var_r30->unk8 = 0;
}
@ -48,7 +47,7 @@ void fn_1_C0C0(void)
Hu3DModelKill(lbl_1_bss_F0.unk4);
}
extern u8 texMtxTbl[];
SHARED_SYM extern u8 texMtxTbl[];
void fn_1_C164(unkStruct8 *arg0)
{
@ -214,18 +213,18 @@ void fn_1_C164(unkStruct8 *arg0)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r31->unk40, 12);
GXSETARRAY(GX_VA_POS, var_r31->unk40, sizeof(Vec[4]), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, var_r31->unk44, 4);
GXSETARRAY(GX_VA_CLR0, var_r31->unk44, sizeof(GXColor[4]), sizeof(GXColor));
for (var_r26 = 0; var_r26 < var_r31->unk32; var_r26++) {
GXSetVtxDesc(var_r26 + GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, var_r26 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(var_r26 + GX_VA_TEX0, var_r31->unk54[var_r26].unk4, 8);
GXSETARRAY(var_r26 + GX_VA_TEX0, var_r31->unk54[var_r26].unk4, sizeof(HsfVector2f[4]), sizeof(HsfVector2f));
}
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
GXSetArray(GX_VA_NRM, var_r31->unk48, 12);
GXSETARRAY(GX_VA_NRM, var_r31->unk48, sizeof(Vec), sizeof(Vec));
GXCallDisplayList(var_r31->unk3C, var_r31->unk38);
}
}
@ -745,7 +744,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4)
}
temp_f30 = temp_r30->unk50;
temp_f31 = temp_r30->unk4E;
var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM);
var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct11), MEMORY_DEFAULT_NUM);
for (var_r25 = 0; var_r25 < 1; var_r29++, var_r25++) {
var_r29->unk0.x = (-0.5f * temp_f31);

View file

@ -212,12 +212,7 @@ void fn_1_DDC(omObjData *object)
void fn_1_F70(omObjData *object)
{
s16 *sp8;
s16 temp_r3;
s16 temp_r3_2;
s32 var_r31;
sp8 = (s16 *)object->data;
s16 *sp8 = (s16 *)object->data;
switch (fn_1_2454(7)) {
case 1:
if (lbl_1_bss_6 == 0) {
@ -225,10 +220,11 @@ void fn_1_F70(omObjData *object)
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C);
}
if (WipeStatGet() == 0) {
s32 i;
fn_1_2414(7, 2);
for (var_r31 = 0; var_r31 < 4; var_r31++) {
omVibrate(var_r31, 0xC8, 6, 6);
for (i = 0; i < 4; i++) {
omVibrate(i, 0xC8, 6, 6);
}
}
break;
@ -382,13 +378,7 @@ s8 fn_1_10E8(omObjData *object)
s8 fn_1_1B74(omObjData *object)
{
f32 temp_f30;
f32 temp_f31;
s16 temp_r27;
s32 temp_r28;
unkStruct4 *temp_r30;
temp_r30 = (unkStruct4 *)object->data;
unkStruct4 *temp_r30 = object->data;
switch (lbl_1_bss_8) {
case 0:
temp_r30->unk2 = MGSeqCreate(3, 1);
@ -440,14 +430,12 @@ s8 fn_1_1B74(omObjData *object)
void fn_1_2098(omObjData *object)
{
ModelData *temp_r31;
f32 var_f28;
f32 var_f29;
f32 var_f31;
f32 var_f30;
s32 var_r30;
temp_r31 = &Hu3DData[lbl_1_bss_DC->model[4]];
ModelData *temp_r31 = &Hu3DData[lbl_1_bss_DC->model[4]];
if (fn_1_2454(0x18) != 0x18) {
lbl_1_bss_18 += 0.008f;
if (lbl_1_bss_18 >= 1.0f) {
@ -584,10 +572,6 @@ void fn_1_2484(omObjData *object)
void fn_1_2DCC(omObjData *object)
{
u16 spE;
u16 spC;
u16 spA;
u16 sp8;
ModelData *temp_r30;
f32 temp_f29;
f32 var_f31;
@ -597,8 +581,6 @@ void fn_1_2DCC(omObjData *object)
s16 var_r28;
s16 var_r27;
s16 var_r29;
s32 temp_r16;
s16 var_r18;
unkStruct4 *var_r31;
if ((lbl_1_bss_24.unk0 == 0) || (fn_1_2454(0x18) == 0x18)) {
@ -991,7 +973,6 @@ void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4)
Vec sp2C;
Vec sp20;
GXColor sp1A;
s16 sp18;
f32 temp_f31;
s16 var_r30;
unkStruct5 *temp_r31;
@ -1179,7 +1160,6 @@ unkStruct5 *fn_1_58E0(s16 arg0, Vec *arg1, Vec *arg2, f32 arg3, GXColor *arg4)
s16 fn_1_5A18(AnimData *arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3)
{
ModelData *temp_r28;
f32 temp_f0;
s16 var_r21;
s16 var_r22;
s16 var_r30;
@ -1377,13 +1357,13 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4])
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, temp_r30->unk1C, 12);
GXSETARRAY(GX_VA_POS, temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, temp_r30->unk24, 4);
GXSETARRAY(GX_VA_CLR0, temp_r30->unk24, temp_r30->unk0 * sizeof(GXColor), sizeof(GXColor));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, temp_r30->unk20, 8);
GXSETARRAY(GX_VA_TEX0, temp_r30->unk20, temp_r30->unk0 * sizeof(Vec2f) * 4, sizeof(Vec2f));
fn_1_40A4(arg1, sp128);
MTXReorder(sp128, spF8);
if (((u8)omPauseChk() == 0) && (temp_r30->unkC)) {

View file

@ -174,17 +174,11 @@ void fn_1_7344(omObjData *arg0)
f32 temp_f28;
f32 temp_f29;
f32 temp_f30;
f32 var_f25;
f32 var_f26;
f32 var_f27;
f32 var_f31;
s16 temp_r0;
s32 temp_r19;
s16 temp_r22;
s16 temp_r26;
s16 temp_r25;
s16 var_r20;
s16 var_r21;
s16 var_r27;
s16 var_r28;
s32 var_r24;
@ -379,23 +373,15 @@ void fn_1_7FE8(omObjData *arg0)
{
Vec sp20;
Vec sp14;
s32 sp10;
f32 spC;
s16 sp8;
unkStruct10 *var_r30;
unkStruct8Sub *temp_r29;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f1;
f32 temp_f29;
f32 temp_f30;
f32 var_f28;
s32 var_r28;
unkStruct7 *temp_r31;
temp_r31 = (unkStruct7 *)arg0->data;
sp10 = arg0->model[0];
sp8 = temp_r31->unk1C;
unkStruct7 *temp_r31 = (unkStruct7 *)arg0->data;
s32 sp10 = arg0->model[0];
s16 sp8 = temp_r31->unk1C;
temp_r31->unkE = temp_r31->unk10 = 0;
temp_r29 = fn_1_CCCC(temp_r31->unk57, 0);
sp20.x = sp20.y = sp20.z = 0.0f;
@ -1023,10 +1009,8 @@ s32 fn_1_A584(unkStruct10 *arg0)
s8 fn_1_A9C0(Vec *arg0, f32 *arg1)
{
f32 sp8;
f32 temp_f29;
f32 var_f30;
f32 var_f28;
s32 var_r27;
s32 var_r29;
unkStruct10 *var_r31;
@ -1080,8 +1064,6 @@ void fn_1_AC08(s32 *arg0, s32 arg1)
f32 fn_1_AD40(f32 arg0, f32 arg1, f32 arg2)
{
f32 var_f31;
f32 var_f30;
f32 var_f29;
var_f31 = fmodf(arg1 - arg0, 360.0);
if (var_f31 < 0.0f) {

View file

@ -535,7 +535,6 @@ float fn_1_4FEC(Vec arg0, Vec arg1, float arg8, Vec arg2, Vec arg3, float arg9,
float sp2C;
float var_f28;
float var_f26;
float var_f25;
float var_f24;
float var_f23;
@ -777,19 +776,6 @@ void fn_1_61DC(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1)
Vec sp68;
Vec sp5C;
Vec sp50;
Vec sp44;
Vec sp38;
Vec sp2C;
Vec sp20;
Vec sp14;
Vec sp8;
Vec *var_r29;
Vec *var_r28;
Vec *var_r27;
Vec *var_r26;
Vec *var_r25;
Vec *var_r24;
if (arg0->unk_00_field1 || arg1->unk_00_field1) {
if (arg0->unk_00_field1) {

View file

@ -8,6 +8,8 @@
#include "REL/m410Dll.h"
#include <game/audio.h>
Process *lbl_1_bss_28;
omObjData *lbl_1_bss_24;
omObjData *lbl_1_bss_20;
@ -223,11 +225,7 @@ void fn_1_DEC(omObjData *object)
void fn_1_FF0(omObjData *object)
{
void *var_r31;
UnkM410Struct *var_r29;
void *var_r28;
var_r29 = object->data;
UnkM410Struct *var_r29 = object->data;
fn_1_5A8(object);
switch (var_r29->unk_14) {
@ -265,11 +263,8 @@ void fn_1_FF0(omObjData *object)
void fn_1_139C(omObjData *object)
{
UnkM410Struct *var_r29;
s32 var_r27;
var_r29 = object->data;
var_r27 = 0;
UnkM410Struct *var_r29 = object->data;
s32 var_r27 = 0;
fn_1_5A8(object);
if (!--var_r29->unk_20) {
@ -470,9 +465,6 @@ s32 fn_1_28DC(void)
void fn_1_2914(Vec *arg0, Vec *arg1)
{
Vec sp10;
float var_f29;
float var_f28;
float var_f27;
sp10.x = arg1->x - arg0->x;
sp10.y = arg1->y - arg0->y;

View file

@ -259,14 +259,8 @@ void fn_1_8414(omObjData *object)
void fn_1_8678(omObjData *object)
{
float var_f31;
float var_f30;
float var_f29;
UnkM410Struct5 *var_r31;
s32 var_r29;
var_r31 = object->data;
var_r29 = 0;
UnkM410Struct5 *var_r31 = object->data;
s32 var_r29 = 0;
var_r31->unk_10 = 0;
if (fn_1_281C() == 2) {
var_r31->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx];
@ -465,8 +459,6 @@ void fn_1_9040(omObjData *object)
Mtx sp38;
Vec sp2C;
Vec sp20;
Vec sp14;
Vec sp8;
float var_f31;
float var_f30;
@ -475,18 +467,11 @@ void fn_1_9040(omObjData *object)
float var_f27;
float var_f26;
float var_f25;
float var_f24;
float var_f23;
float var_f22;
double var_f21;
double var_f20;
UnkM410Struct5 *var_r31;
s32 var_r29;
s32 var_r28;
s16 var_r27;
Vec *var_r26;
Vec *var_r25;
var_r31 = object->data;
fn_1_79F8(object->model[0], lbl_1_data_16C[var_r31->unk_08], sp38);
@ -1117,9 +1102,9 @@ void fn_1_B140(ModelData *arg0, Mtx arg1)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r30->unk_120.unk_1C0, 12);
GXSetArray(GX_VA_CLR0, var_r30->unk_120.unk_E40, 4);
GXSetArray(GX_VA_TEX0, var_r30->unk_120.unk_940, 8);
GXSETARRAY(GX_VA_POS, var_r30->unk_120.unk_1C0, sizeof(var_r30->unk_120.unk_1C0), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, var_r30->unk_120.unk_E40, sizeof(var_r30->unk_120.unk_E40), sizeof(GXColor));
GXSETARRAY(GX_VA_TEX0, var_r30->unk_120.unk_940, sizeof(var_r30->unk_120.unk_940), sizeof(Vec2f));
var_r31 = var_r30->unk_120.unk_00;
for (var_r29 = 0; var_r29 < 16; var_r29++, var_r31++) {

View file

@ -377,7 +377,7 @@ void fn_1_1074(void)
CameraData *var_r31;
var_r31 = &Hu3DCamera[0];
C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far);
C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->nnear, var_r31->ffar);
GXSetProjection(sp64, GX_PERSPECTIVE);
GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
GXSetScissor(0, 0, 640, 480);

View file

@ -569,8 +569,6 @@ void fn_1_2064(void)
Vec sp28;
Vec sp1C;
Vec sp10;
f32 spC;
f32 sp8;
Process *temp_r26;
s32 var_r30;
unkStruct *temp_r28;
@ -701,10 +699,6 @@ s32 fn_1_2708(void)
f32 fn_1_27C4(s32 arg0, f32 arg8, f32 arg9)
{
f32 temp_f31;
f32 var_f25;
f32 var_f26;
f32 var_f27;
f32 var_f28;
f32 var_f29;
temp_f31 = arg8 - fn_1_1D08(arg9);
@ -922,18 +916,11 @@ void fn_1_3950(void)
f32 sp5C;
volatile f32 sp58;
f32 sp54;
f32 temp_f27;
f32 var_f29;
f32 temp_f31;
f32 temp_f30;
f32 var_f18;
f32 var_f19;
f32 var_f20;
f32 var_f21;
f32 var_f22;
f32 var_f23;
f32 var_f24;
s32 var_r28;
s32 var_r24;
s32 var_r25;
s32 var_r29;
@ -1269,9 +1256,6 @@ void fn_1_5838(unkStruct3 *arg0)
Vec spA8;
Vec sp9C;
Vec sp90;
Vec sp84;
Vec sp78;
Vec sp6C;
s32 sp68;
f32 sp64;
f32 sp60;
@ -1593,13 +1577,6 @@ void fn_1_6814(unkStruct3 *arg0)
void fn_1_7C60(void)
{
Vec sp1A0;
Vec sp188;
Vec sp17C;
Vec sp170;
Vec sp164;
Vec sp158;
Vec sp14C;
Vec sp140;
f32 sp13C;
f32 sp138;
f32 sp134;
@ -2020,8 +1997,6 @@ void fn_1_AA88(ModelData *model, ParticleData *particle, f32 (*matrix)[4])
void fn_1_ADC8(void)
{
Vec sp14;
Vec sp8;
f32 var_f31;
void *temp_r28;
Process *var_r29;

View file

@ -19,7 +19,7 @@
#include "game/hsfex.h"
#endif
s32 rand8(void);
extern s32 rand8(void);
typedef struct struct_bss_2A6C StructBss2A6C;
@ -2011,7 +2011,11 @@ void fn_1_C6E0(omObjData *object)
lbl_1_bss_FC = 0;
memset(lbl_1_bss_D4, 0, sizeof(lbl_1_bss_D4));
lbl_1_bss_D0 = 0;
#ifdef NON_MATCHING
memset(&lbl_1_bss_B8, 0, sizeof(lbl_1_bss_B8));
#else
memset(lbl_1_bss_B8, 0, sizeof(lbl_1_bss_B8));
#endif
object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x00));
omSetTra(object, 0, 0, 0);
Hu3DMotionSpeedSet(object->model[0], 0);

View file

@ -421,8 +421,11 @@ void fn_1_1960(omObjData *object)
GXDrawDone();
temp_r3 = fn_1_9734(object->model[2]);
temp_r29 = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02;
#ifdef __MWERKS__
// TODO PC
memcpy((*temp_r3)->bmp->data, OSCachedToUncached(Hu3DShadowData.unk_04), temp_r29);
DCStoreRangeNoSync((*temp_r3)->bmp->data, temp_r29);
#endif
DCStoreRangeNoSync((*temp_r3)->bmp->data, temp_r29);
break;
case 2:
Hu3DModelShadowMapObjSet(object->model[0], "kyanbasu");

View file

@ -241,19 +241,19 @@ void fn_1_88B8(unkSubStruct2 *arg0)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r31->unk40, 12);
GXSETARRAY(GX_VA_POS, var_r31->unk40, 4 * sizeof(Vec), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, var_r31->unk44, 4);
GXSETARRAY(GX_VA_CLR0, var_r31->unk44, 4 * sizeof(GXColor), sizeof(GXColor));
for (var_r27 = 0; var_r27 < var_r31->unk33; var_r27++) {
GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(var_r27 + GX_VA_TEX0, var_r31->unk54[var_r27].unk4, 8);
GXSETARRAY(var_r27 + GX_VA_TEX0, var_r31->unk54[var_r27].unk4, 4 * sizeof(HsfVector2f), 8);
}
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
GXSetArray(GX_VA_NRM, var_r31->unk48, 12);
GXSETARRAY(GX_VA_NRM, var_r31->unk48, sizeof(Vec), sizeof(Vec));
GXCallDisplayList(var_r31->unk3C, var_r31->unk38);
}
}

View file

@ -305,7 +305,7 @@ void fn_1_3D58(omObjData *object)
for (var_r31 = 0; var_r31 < 2; var_r31++) {
lbl_1_bss_178.unk_6BC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, 30 * 36 * sizeof(Vec), MEMORY_DEFAULT_NUM);
lbl_1_bss_178.unk_6C4[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, 30 * 36 * sizeof(Vec), MEMORY_DEFAULT_NUM);
lbl_1_bss_178.unk_6CC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, 1080 * sizeof(GXColor), MEMORY_DEFAULT_NUM);
lbl_1_bss_178.unk_6CC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, 30 * 36 * sizeof(GXColor), MEMORY_DEFAULT_NUM);
lbl_1_bss_178.unk_6D4[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, 30 * 36 * sizeof(Vec2f), MEMORY_DEFAULT_NUM);
lbl_1_bss_178.unk_6E0[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_178.unk_6DC, MEMORY_DEFAULT_NUM);
DCFlushRange(lbl_1_bss_178.unk_6E0[var_r31], lbl_1_bss_178.unk_6DC);
@ -856,10 +856,10 @@ void fn_1_604C(ModelData *arg0, Mtx arg1)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_POS, lbl_1_bss_178.unk_6BC[lbl_1_bss_178.unk_6B4], 12);
GXSetArray(GX_VA_NRM, lbl_1_bss_178.unk_6C4[lbl_1_bss_178.unk_6B4], 12);
GXSetArray(GX_VA_CLR0, lbl_1_bss_178.unk_6CC[lbl_1_bss_178.unk_6B4], 4);
GXSetArray(GX_VA_TEX0, lbl_1_bss_178.unk_6D4[lbl_1_bss_178.unk_6B4], 8);
GXSETARRAY(GX_VA_POS, lbl_1_bss_178.unk_6BC[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(Vec), sizeof(Vec));
GXSETARRAY(GX_VA_NRM, lbl_1_bss_178.unk_6C4[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(Vec), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, lbl_1_bss_178.unk_6CC[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(GXColor), sizeof(GXColor));
GXSETARRAY(GX_VA_TEX0, lbl_1_bss_178.unk_6D4[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(Vec2f), sizeof(Vec2f));
GXCallDisplayList(lbl_1_bss_178.unk_6E0[0], lbl_1_bss_178.unk_6E8[0]);
GXSetNumIndStages(0);
GXSetTevDirect(GX_TEVSTAGE0);

View file

@ -2857,7 +2857,9 @@ void fn_1_9F94(omObjData *object)
object->func = fn_1_9BA4;
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_A1F0(void)
{

View file

@ -1800,8 +1800,8 @@ void fn_1_ABDC(ModelData *model, Mtx matrix)
MTXConcat(sp58, sp88, sp118);
MTXConcat(spB8, sp118, spE8);
GXLoadTexMtxImm(spE8, 0x1E, GX_MTX3x4);
GXSetArray(GX_VA_POS, work->unk_50[var_r28], 0xC);
GXSetArray(GX_VA_CLR0, &work->unk_40[var_r28], 4);
GXSETARRAY(GX_VA_POS, work->unk_50[var_r28], 14 * sizeof(Vec), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, &work->unk_40[var_r28], sizeof(GXColor), sizeof(GXColor));
GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0xE);
GXPosition1x8(0);
GXPosition1x8(0);
@ -1815,8 +1815,8 @@ void fn_1_ABDC(ModelData *model, Mtx matrix)
MTXConcat(sp58, sp88, sp118);
MTXConcat(spB8, sp118, spE8);
GXLoadTexMtxImm(spE8, 0x1E, GX_MTX3x4);
GXSetArray(GX_VA_POS, work->unk_50[var_r28 + 1], 0xC);
GXSetArray(GX_VA_CLR0, &work->unk_40[var_r28], 4);
GXSETARRAY(GX_VA_POS, work->unk_50[var_r28 + 1], 14 * sizeof(Vec), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, &work->unk_40[var_r28], sizeof(GXColor), sizeof(GXColor));
GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0xE);
GXPosition1x8(0);
GXPosition1x8(0);

View file

@ -19,7 +19,7 @@
#define frand7() (frand() & 0x7F)
extern u32 GlobalCounter;
SHARED_SYM extern u32 GlobalCounter;
typedef struct {
/* 0x00 */ s32 unk00;
@ -874,16 +874,16 @@ void fn_1_14A0(ModelData *arg0, Mtx arg1)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, lbl_1_data_29C, 12);
GXSETARRAY(GX_VA_POS, lbl_1_data_29C, sizeof(lbl_1_data_29C), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, lbl_1_data_30C, 4);
GXSETARRAY(GX_VA_CLR0, lbl_1_data_30C, sizeof(lbl_1_data_30C), sizeof(GXColor));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, lbl_1_data_2CC, 8);
GXSETARRAY(GX_VA_TEX0, lbl_1_data_2CC, sizeof(lbl_1_data_2CC), sizeof(Vec2f));
GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX1, lbl_1_data_2EC, 8);
GXSETARRAY(GX_VA_TEX1, lbl_1_data_2EC, sizeof(lbl_1_data_2EC), sizeof(Vec2f));
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
for (i = 0; i < 4; i++) {
GXPosition1x16(i);
@ -1255,8 +1255,8 @@ void fn_1_29BC(ModelData *arg0, Mtx arg1)
DCFlushRangeNoSync(temp_r31->unk14, temp_r31->unk00 * sizeof(*temp_r31->unk14));
DCFlushRangeNoSync(temp_r31->unk1C, temp_r31->unk00 * sizeof(*temp_r31->unk1C));
PPCSync();
GXSetArray(GX_VA_POS, temp_r31->unk14, sizeof(*temp_r31->unk14));
GXSetArray(GX_VA_CLR0, temp_r31->unk1C, sizeof(*temp_r31->unk1C));
GXSETARRAY(GX_VA_POS, temp_r31->unk14, temp_r31->unk00 * sizeof(*temp_r31->unk14), sizeof(*temp_r31->unk14));
GXSETARRAY(GX_VA_CLR0, temp_r31->unk1C, temp_r31->unk00 * sizeof(*temp_r31->unk1C), sizeof(*temp_r31->unk1C));
GXCallDisplayList(temp_r31->unk38, temp_r31->unk34);
}
}
@ -4471,9 +4471,9 @@ void fn_1_EF44(ModelData *arg0, Mtx arg1)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_POS, temp_r30->unk20C, 12);
GXSetArray(GX_VA_CLR0, temp_r30->unk214, 4);
GXSetArray(GX_VA_TEX0, temp_r30->unk210, 8);
GXSETARRAY(GX_VA_POS, temp_r30->unk20C, 32 * sizeof(*temp_r30->unk20C), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, temp_r30->unk214, 5 * sizeof(*temp_r30->unk214), sizeof(GXColor));
GXSETARRAY(GX_VA_TEX0, temp_r30->unk210, 32 * sizeof(*temp_r30->unk210), sizeof(Vec2f));
var_r31 = temp_r30->unk00;
for (i = 0; i < 16; i++, var_r31++) {
if (var_r31->unk00 == 0) {
@ -4864,7 +4864,7 @@ void fn_1_10BC8(void)
if (var_r31->fov <= 0.0f) {
return;
}
C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far);
C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->nnear, var_r31->ffar);
GXSetProjection(sp64, GX_PERSPECTIVE);
GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
GXSetScissor(0, 0, 640, 480);
@ -5227,13 +5227,13 @@ void fn_1_11900(ModelData *arg0, Mtx arg1)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, temp_r31->unk40, 12);
GXSETARRAY(GX_VA_POS, temp_r31->unk40, temp_r31->unk26 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &temp_r31->unk3C->unk44, 76);
GXSETARRAY(GX_VA_CLR0, &temp_r31->unk3C->unk44, sizeof(GXColor), 76);
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, temp_r31->unk44, 8);
GXSETARRAY(GX_VA_TEX0, temp_r31->unk44, temp_r31->unk26 * sizeof(Vec2f) * 4, sizeof(Vec2f));
GXCallDisplayList(temp_r31->unk48, temp_r31->unk34);
if (shadowModelDrawF == 0) {
if (!(temp_r31->unk21 & 2)) {

View file

@ -27,7 +27,7 @@
#include "REL/m425Dll.h"
extern u8 texMtxTbl[]; // TODO maybe put in hsfdraw.h?
SHARED_SYM extern u8 texMtxTbl[]; // TODO maybe put in hsfdraw.h?
typedef struct M425DllWork {
u8 unk_00;
@ -1628,19 +1628,19 @@ void fn_1_5C20(ModelData *var_r27, Mtx sp8)
GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, var_r26, GX_DF_CLAMP, GX_AF_SPOT);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_POS, var_r31->unk_14, 0xC);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSETARRAY(GX_VA_POS, var_r31->unk_14, var_r31->unk_2A * (4 * sizeof(Vec)), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, var_r31->unk_18, 4);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSETARRAY(GX_VA_CLR0, var_r31->unk_18, var_r31->unk_2A * (4 * sizeof(GXColor)), sizeof(GXColor));
for (var_r29 = GX_TEXMAP0; var_r29 < (var_r31->unk_28 * var_r31->unk_2A); var_r29++) {
GXSetVtxDesc(var_r29 + 0xD, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, var_r29 + 0xD, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(var_r29 + 0xD, var_r31->unk_2C[var_r29].unk_44, 8);
GXSetVtxAttrFmt(GX_VTXFMT0, var_r29 + 0xD, GX_TEX_ST, GX_F32, 0);
GXSETARRAY(var_r29 + 0xD, var_r31->unk_2C[var_r29].unk_44, var_r31->unk_2A * (4 * sizeof(Vec2f)), sizeof(Vec2f));
}
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0);
GXSetArray(GX_VA_NRM, var_r31->unk_1C, 0xC);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
GXSETARRAY(GX_VA_NRM, var_r31->unk_1C, var_r31->unk_2A * (4 * sizeof(Vec)), sizeof(Vec));
GXCallDisplayList(var_r31->unk_10, var_r31->unk_0C);
}

View file

@ -26,8 +26,8 @@
#include "REL/m425Dll.h"
extern u32 GlobalCounter;
extern LightData Hu3DLocalLight[0x20];
SHARED_SYM extern u32 GlobalCounter;
SHARED_SYM extern LightData Hu3DLocalLight[0x20];
typedef struct M425DllUnkStruct4 {
s16 unk_00;
@ -431,24 +431,24 @@ s32 fn_1_6EC4(float var_f24, float sp8, s16 var_r22, s16 var_r24)
var_r31->unk_10E = var_r24;
var_r31->unk_110 = var_r31->unk_144[24] + var_r31->unk_112[24];
var_r31->unk_240 = 0x19;
var_r31->unk_178 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 2, var_r23->unk_48);
memset(var_r31->unk_178, 0, var_r31->unk_110 * 2);
var_r31->unk_17C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48);
memset(var_r31->unk_17C, 0, var_r31->unk_110 * 0xC);
var_r31->unk_180 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48);
memset(var_r31->unk_180, 0, var_r31->unk_110 * 0xC);
var_r31->unk_184 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 8, var_r23->unk_48);
memset(var_r31->unk_184, 0, var_r31->unk_110 * 8);
var_r31->unk_188 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48);
memset(var_r31->unk_188, 0, var_r31->unk_110 * 0xC);
var_r31->unk_18C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48);
memset(var_r31->unk_18C, 0, var_r31->unk_110 * 0xC);
var_r31->unk_178 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(s16), var_r23->unk_48);
memset(var_r31->unk_178, 0, var_r31->unk_110 * sizeof(s16));
var_r31->unk_17C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec), var_r23->unk_48);
memset(var_r31->unk_17C, 0, var_r31->unk_110 * sizeof(Vec));
var_r31->unk_180 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec), var_r23->unk_48);
memset(var_r31->unk_180, 0, var_r31->unk_110 * sizeof(Vec));
var_r31->unk_184 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec2f), var_r23->unk_48);
memset(var_r31->unk_184, 0, var_r31->unk_110 * sizeof(Vec2f));
var_r31->unk_188 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec), var_r23->unk_48);
memset(var_r31->unk_188, 0, var_r31->unk_110 * sizeof(Vec));
var_r31->unk_18C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec), var_r23->unk_48);
memset(var_r31->unk_18C, 0, var_r31->unk_110 * sizeof(Vec));
var_r31->unk_190 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 6, var_r23->unk_48);
memset(var_r31->unk_190, 0, var_r31->unk_110 * 6);
var_r31->unk_194 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48);
memset(var_r31->unk_194, 0, var_r31->unk_110 * 0xC);
var_r31->unk_198 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_112[0] * 0xC, var_r23->unk_48);
memset(var_r31->unk_198, 0, var_r31->unk_112[0] * 0xC);
var_r31->unk_194 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec), var_r23->unk_48);
memset(var_r31->unk_194, 0, var_r31->unk_110 * sizeof(Vec));
var_r31->unk_198 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_112[0] * sizeof(Vec), var_r23->unk_48);
memset(var_r31->unk_198, 0, var_r31->unk_112[0] * sizeof(Vec));
var_r31->unk_1A0 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110, var_r23->unk_48);
memset(var_r31->unk_1A0, 0, var_r31->unk_110);
for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) {
@ -2135,16 +2135,16 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r31->unk_180, 0xC);
GXSETARRAY(GX_VA_POS, var_r31->unk_180, var_r31->unk_110 * sizeof(Vec), sizeof(Vec));
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
GXSetArray(GX_VA_NRM, var_r31->unk_188, 0xC);
GXSETARRAY(GX_VA_NRM, var_r31->unk_188, var_r31->unk_110 * sizeof(Vec), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &var_r31->unk_23A, 4);
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_23A, var_r31->unk_110 * sizeof(GXColor), sizeof(GXColor));
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA6, 0);
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetArray(GX_VA_TEX0, var_r31->unk_184, 8);
GXSETARRAY(GX_VA_TEX0, var_r31->unk_184, var_r31->unk_110 * sizeof(Vec2f), sizeof(Vec2f));
for (var_r30 = 0; var_r30 < var_r31->unk_240; var_r30++) {
if (var_r31->unk_2A8[var_r30] && var_r31->unk_244[var_r30] != 0 && var_r30 != 1) {
GXCallDisplayList(var_r31->unk_2A8[var_r30], var_r31->unk_244[var_r30]);
@ -2181,16 +2181,16 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28)
GXClearVtxDesc();
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0);
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetArray(GX_VA_POS, var_r31->unk_180, 0xC);
GXSETARRAY(GX_VA_POS, var_r31->unk_180, var_r31->unk_110 * sizeof(Vec), sizeof(Vec));
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0);
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
GXSetArray(GX_VA_NRM, var_r31->unk_188, 0xC);
GXSETARRAY(GX_VA_NRM, var_r31->unk_188, var_r31->unk_110 * sizeof(Vec), sizeof(Vec));
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0);
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetArray(GX_VA_CLR0, &var_r31->unk_23A, 4);
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_23A, var_r31->unk_110 * sizeof(GXColor), sizeof(GXColor));
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetArray(GX_VA_TEX0, var_r31->unk_184, 8);
GXSETARRAY(GX_VA_TEX0, var_r31->unk_184, var_r31->unk_110 * sizeof(Vec2f), sizeof(Vec2f));
if (var_r31->unk_2A8[1] && (var_r31->unk_244[1] != 0)) {
GXCallDisplayList(var_r31->unk_2A8[1], var_r31->unk_244[1]);
}
@ -2684,13 +2684,13 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_POS, var_r31->unk_40, 0xC);
GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_24 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44);
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(var_r31->unk_3C->unk_3C), 0x44);
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_24 * sizeof(Vec2f) * 4, sizeof(Vec2f));
if (HmfInverseMtxF3X3(var_r21, sp128) == 0) {
MTXIdentity(sp128);
}
@ -2748,8 +2748,8 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21)
}
}
}
DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_24 * 0xC * 4);
DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_24 * 8 * 4);
DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_24 * sizeof(Vec) * 4);
DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_24 * sizeof(Vec2f) * 4);
PPCSync();
GXCallDisplayList(var_r31->unk_48, var_r31->unk_34);
if (shadowModelDrawF == 0) {

View file

@ -265,7 +265,7 @@ void fn_1_DB8(omObjData *object);
void fn_1_E18(omObjData *object);
void fn_1_EB8(void);
extern u32 GlobalCounter;
SHARED_SYM extern u32 GlobalCounter;
Vec lbl_1_data_0[4] = {
{ -600.0f, 0.0f, -285.0f },
@ -3035,13 +3035,13 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r31->unk_40, 12);
GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_24 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 68);
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(var_r31->unk_3C->unk_3C), 68);
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8);
GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_24 * sizeof(Vec2f) * 4, sizeof(Vec2f));
if (!HmfInverseMtxF3X3(arg1, sp128)) {
MTXIdentity(sp128);
}
@ -3169,13 +3169,13 @@ void fn_1_88B4(ModelData *arg0, Mtx arg1)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, lbl_1_data_27C, 12);
GXSETARRAY(GX_VA_POS, lbl_1_data_27C, sizeof(lbl_1_data_27C), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, lbl_1_data_2AC, 4);
GXSETARRAY(GX_VA_CLR0, lbl_1_data_2AC, sizeof(lbl_1_data_2AC), sizeof(GXColor));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, lbl_1_data_2BC, 8);
GXSETARRAY(GX_VA_TEX0, lbl_1_data_2BC, sizeof(lbl_1_data_2BC), sizeof(Vec2f));
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition1x16(0);

View file

@ -18,7 +18,7 @@
#include "string.h"
extern s32 rand8(void);
extern LightData Hu3DLocalLight[0x20];
SHARED_SYM extern LightData Hu3DLocalLight[0x20];
#define FABS(value) ((value < 0) ? -(value) : (value))
@ -837,7 +837,7 @@ void fn_1_510C(s32 arg0, s16 arg1, s16 arg2)
var_r31->unk4 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48);
var_r31->unk8 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec2f), temp_r28->unk_48);
var_r31->unkC = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48);
var_r31->unk10 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48);
var_r31->unk10 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * (3 * sizeof(GXColor)), temp_r28->unk_48);
var_r31->unk1C = HuMemDirectMallocNum(HEAP_DATA, arg2 * (arg1 * sizeof(M427DllMapSubstruct5)), temp_r28->unk_48);
var_r30 = var_r31->unk1C;
var_r23 = var_r26 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, temp_r28->unk_48);
@ -1013,13 +1013,13 @@ void fn_1_618C(ModelData *arg0, Mtx arg1)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_POS, var_r31->unk4, 0xC);
GXSETARRAY(GX_VA_POS, var_r31->unk4, var_r31->unk14 * sizeof(Vec), sizeof(Vec));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk8, 8);
GXSETARRAY(GX_VA_TEX0, var_r31->unk8, var_r31->unk14 * sizeof(Vec2f), sizeof(Vec2f));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, var_r31->unk10, 4);
GXSETARRAY(GX_VA_CLR0, var_r31->unk10, var_r31->unk14 * 3 * sizeof(GXColor), sizeof(GXColor));
GXInitTexObj(&sp14, var_r31->unk30, 0x280, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0);
GXInitTexObjLOD(&sp14, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1);
GXLoadTexObj(&sp14, GX_TEXMAP0);
@ -1978,13 +1978,13 @@ void fn_1_9B88(ModelData *model, Mtx matrix)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_POS, &var_r31->unkC, sizeof(Vec));
GXSETARRAY(GX_VA_POS, &var_r31->unkC, sizeof(var_r31->unkC), sizeof(Vec));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_TEX0, &var_r31->unk3C, sizeof(Vec2f));
GXSETARRAY(GX_VA_TEX0, &var_r31->unk3C, sizeof(var_r31->unk3C), sizeof(Vec2f));
GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_TEX1, var_r31->unk5C, sizeof(Vec2f));
GXSETARRAY(GX_VA_TEX1, var_r31->unk5C, sizeof(var_r31->unk5C), sizeof(Vec2f));
HuSprTexLoad(var_r31->unk8, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR);
HuSprTexLoad(var_r26->unk_04, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR);
HuSprTexLoad(var_r26->unk_00, 0, 2, GX_REPEAT, GX_REPEAT, GX_LINEAR);
@ -2351,13 +2351,13 @@ void fn_1_B3CC(ModelData *model, Mtx matrix)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r31->unk_2C, sizeof(Vec));
GXSETARRAY(GX_VA_POS, var_r31->unk_2C, var_r31->unk_38 * sizeof(Vec), sizeof(Vec));
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
GXSetArray(GX_VA_NRM, var_r31->unk_34, sizeof(Vec));
GXSETARRAY(GX_VA_NRM, var_r31->unk_34, var_r31->unk_38 * sizeof(Vec), sizeof(Vec));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_30, 8);
GXSETARRAY(GX_VA_TEX0, var_r31->unk_30, var_r31->unk_38 * sizeof(Vec2f), sizeof(Vec2f));
if (var_r31->unk_00 == 0) {
GXInitTexObj(&sp44, var_r27->unk4, 0x140, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0);
}
@ -3015,13 +3015,13 @@ void fn_1_DCD4(ModelData *model, Mtx matrix)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r30->unk_1C, 0xC);
GXSETARRAY(GX_VA_POS, var_r30->unk_1C, var_r30->unk_00 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, var_r30->unk_24, 4);
GXSETARRAY(GX_VA_CLR0, var_r30->unk_24, var_r30->unk_00 * sizeof(GXColor), sizeof(GXColor));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, var_r30->unk_20, 8);
GXSETARRAY(GX_VA_TEX0, var_r30->unk_20, var_r30->unk_00 * sizeof(Vec2f) * 4, sizeof(Vec2f));
sp128[0][0] = matrix[0][0];
sp128[1][0] = matrix[0][1];
sp128[2][0] = matrix[0][2];
@ -3057,20 +3057,20 @@ void fn_1_DCD4(ModelData *model, Mtx matrix)
else {
if (var_r29->unk_44 == 0.0f) {
fn_1_E420(sp68, &sp38, &var_r29->unk_48, 4);
PSVECAdd(&sp38, &var_r29->unk_54, var_r31++);
PSVECAdd(&sp44, &var_r29->unk_54, var_r31++);
PSVECAdd(&sp50, &var_r29->unk_54, var_r31++);
PSVECAdd(&sp5C, &var_r29->unk_54, var_r31++);
VECAdd(&sp38, &var_r29->unk_54, var_r31++);
VECAdd(&sp44, &var_r29->unk_54, var_r31++);
VECAdd(&sp50, &var_r29->unk_54, var_r31++);
VECAdd(&sp5C, &var_r29->unk_54, var_r31++);
}
else {
fn_1_E420(&var_r30->unk_2C, &sp38, &var_r29->unk_48, 4);
MTXRotRad(spC8, 0x5A, MTXDegToRad(var_r29->unk_44));
MTXConcat(sp128, spC8, sp98);
MTXMultVecArray(sp98, &sp38, &sp8, 4);
PSVECAdd(&sp8, &var_r29->unk_54, var_r31++);
PSVECAdd(&sp14, &var_r29->unk_54, var_r31++);
PSVECAdd(&sp20, &var_r29->unk_54, var_r31++);
PSVECAdd(&sp2C, &var_r29->unk_54, var_r31++);
VECAdd(&sp8, &var_r29->unk_54, var_r31++);
VECAdd(&sp14, &var_r29->unk_54, var_r31++);
VECAdd(&sp20, &var_r29->unk_54, var_r31++);
VECAdd(&sp2C, &var_r29->unk_54, var_r31++);
}
if (var_r29->unk_60 != -1) {
fn_1_E37C(var_r26, var_r30->unk_5C, var_r29->unk_60, var_r30->unk_60, var_r30->unk_64);

View file

@ -1666,10 +1666,10 @@ void fn_1_13FBC(ModelData *model, Mtx matrix)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_POS, lbl_1_data_260, sizeof(Vec));
GXSETARRAY(GX_VA_POS, lbl_1_data_260, sizeof(lbl_1_data_260), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &lbl_1_data_648, sizeof(GXColor));
GXSETARRAY(GX_VA_CLR0, &lbl_1_data_648, sizeof(lbl_1_data_648), sizeof(GXColor));
GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D);
for (var_r29 = 0; var_r29 < 0x1DU; var_r29++) {
GXPosition1x16(var_r29);
@ -1678,10 +1678,10 @@ void fn_1_13FBC(ModelData *model, Mtx matrix)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, &lbl_1_data_3BC, sizeof(Vec));
GXSETARRAY(GX_VA_POS, &lbl_1_data_3BC, sizeof(lbl_1_data_3BC), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &lbl_1_data_648, sizeof(GXColor));
GXSETARRAY(GX_VA_CLR0, &lbl_1_data_648, sizeof(lbl_1_data_648), sizeof(GXColor));
GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D);
for (var_r29 = 0; var_r29 < 0x1DU; var_r29++) {
GXPosition1x16(var_r29);
@ -1690,10 +1690,10 @@ void fn_1_13FBC(ModelData *model, Mtx matrix)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, lbl_1_bss_584, sizeof(Vec));
GXSETARRAY(GX_VA_POS, lbl_1_bss_584, lbl_1_bss_580 * sizeof(Vec), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &lbl_1_data_650, sizeof(GXColor));
GXSETARRAY(GX_VA_CLR0, &lbl_1_data_650, sizeof(lbl_1_data_650), sizeof(GXColor));
GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D);
for (var_r29 = 0; var_r29 < lbl_1_bss_580; var_r29++) {
GXPosition1x16(var_r29);

View file

@ -239,7 +239,7 @@ s32 fn_1_F288(Vec *arg0, Vec *arg1, float arg8);
s32 fn_1_F538(Vec *arg0, Vec *arg1, Vec *arg2, float arg8);
s32 fn_1_FB8C(Vec *arg0, Vec *arg1, float arg8, s32 arg2, s32 arg3);
extern u32 GlobalCounter;
SHARED_SYM extern u32 GlobalCounter;
Vec lbl_1_data_150[4] = {
{ -140.0f, -400.0f, 0.0f },
@ -2120,7 +2120,7 @@ void fn_1_FE98(M428DllPlayerUnk120Struct *arg0)
}
}
for (var_r29 = 0, var_r30 = arg0->unk_54; var_r29 < arg0->unk_02; var_r29++, var_r30++) {
PSVECSubtract(&var_r30->unk_08[0], &var_r30->unk_08[2], &sp24);
VECSubtract(&var_r30->unk_08[0], &var_r30->unk_08[2], &sp24);
var_f30 = var_r30->unk_08[0].z;
if ((sp8 = fn_1_F88C(&var_r30->unk_08[2], &sp24, &sp18)) != -1) {
var_r30->unk_08[0] = sp18;
@ -2137,7 +2137,7 @@ void fn_1_FE98(M428DllPlayerUnk120Struct *arg0)
}
}
s32 lbl_1_data_694[2] = { 0xFFA040FF, 0xC8FFFF };
GXColor lbl_1_data_694[2] = { { 0xFF, 0xA0, 0x40, 0xFF }, { 0x00, 0xC8, 0xFF, 0xFF } };
s16 lbl_1_data_69C[2] = { -0x10, 0x10 };
s16 lbl_1_data_6A0[2] = { 0x1A4, 0x60 };
Vec lbl_1_data_6A4[4] = {
@ -2181,10 +2181,10 @@ void fn_1_102A8(ModelData *model, Mtx matrix)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r31->unk_54->unk_08, sizeof(M428DllPlayerUnkStruct));
GXSETARRAY(GX_VA_POS, var_r31->unk_54->unk_08, sizeof(var_r31->unk_54->unk_08), sizeof(M428DllPlayerUnkStruct));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &lbl_1_data_694[var_r31->unk_10], 4);
GXSETARRAY(GX_VA_CLR0, &lbl_1_data_694[var_r31->unk_10], sizeof(GXColor), sizeof(GXColor));
GXBegin(GX_LINESTRIP, GX_VTXFMT0, var_r31->unk_02);
for (var_r30 = 0; var_r30 < var_r31->unk_02; var_r30++) {
GXPosition1x16(var_r30);
@ -3182,13 +3182,13 @@ void fn_1_134C0(ModelData *var_r23, Mtx var_r22)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r31->unk_40, sizeof(Vec));
GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_26 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_44, sizeof(M428DllPlayerUnkStruct2)); // bug?
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_44, sizeof(GXColor), sizeof(M428DllPlayerUnkStruct2)); // bug?
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_44, sizeof(Vec2f));
GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_26 * sizeof(Vec2f) * 4, sizeof(Vec2f));
GXCallDisplayList(var_r31->unk_48, var_r31->unk_34);
if (shadowModelDrawF == 0) {
if ((var_r31->unk_21 & 2) == 0) {

View file

@ -1323,7 +1323,9 @@ void fn_1_3DCC(Work8F68 *arg0)
}
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_40C0(Work8F68 *arg0, omObjData *arg1, s32 arg2)
{

View file

@ -1493,11 +1493,11 @@ void fn_1_100A0(void)
var_r31->unk_34 = var_r31->unk_38 = var_r31->unk_3C = 0.0f;
var_r31->unk_40 = var_r31->unk_44 = var_r31->unk_48 = 1000.0f;
var_r31->unk_58 = 0;
var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC0, MEMORY_DEFAULT_NUM);
var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(Vec), MEMORY_DEFAULT_NUM);
memset(var_r31->unk_4C, 0, 0xC0);
var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC0, MEMORY_DEFAULT_NUM);
var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(Vec), MEMORY_DEFAULT_NUM);
memset(var_r31->unk_50, 0, 0xC0);
var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x80, MEMORY_DEFAULT_NUM);
var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(Vec2f), MEMORY_DEFAULT_NUM);
memset(var_r31->unk_54, 0, 0x80);
var_r30 = &Hu3DData[var_r31->unk_04];
var_r27 = HuMemDirectMallocNum(HEAP_DATA, 0x200, var_r30->unk_48);
@ -1639,14 +1639,14 @@ void fn_1_10948(ModelData *var_r29, Mtx var_r30)
GXSetLineWidth(0x10, GX_TO_ZERO);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_POS, var_r31->unk_50, 0xC);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSETARRAY(GX_VA_POS, var_r31->unk_50, 16 * sizeof(Vec), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &lbl_1_data_308, 4);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSETARRAY(GX_VA_CLR0, &lbl_1_data_308, sizeof(lbl_1_data_308), sizeof(GXColor));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_54, 8);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSETARRAY(GX_VA_TEX0, var_r31->unk_54, 16 * sizeof(Vec2f), sizeof(Vec2f));
GXCallDisplayList(var_r31->unk_60, var_r31->unk_5C);
}

View file

@ -1276,8 +1276,8 @@ void fn_1_8CE0(ModelData *model, Mtx matrix)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_POS, var_r31->unk_44[var_r31->unk_40], sizeof(Vec));
GXSetArray(GX_VA_CLR0, var_r31->unk_54[var_r31->unk_40], sizeof(GXColor));
GXSETARRAY(GX_VA_POS, var_r31->unk_44[var_r31->unk_40], 0x1B8 * sizeof(Vec), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, var_r31->unk_54[var_r31->unk_40], 0x1B8 * sizeof(GXColor), sizeof(GXColor));
GXSetCullMode(GX_CULL_NONE);
GXCallDisplayList(var_r31->unk_60, var_r31->unk_64);
GXSetCullMode(GX_CULL_BACK);
@ -1372,8 +1372,8 @@ void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_POS, lbl_1_data_60, sizeof(Vec));
GXSetArray(GX_VA_CLR0, lbl_1_data_A8, sizeof(GXColor));
GXSETARRAY(GX_VA_POS, lbl_1_data_60, sizeof(lbl_1_data_60), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, lbl_1_data_A8, sizeof(lbl_1_data_A8), sizeof(GXColor));
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6);
GXPosition1x8(0);
GXColor1x8(3);
@ -1490,8 +1490,8 @@ void fn_1_9C90(ModelData *model, Mtx matrix)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_POS, lbl_1_data_C0, 0xC);
GXSetArray(GX_VA_CLR0, lbl_1_data_A8, 4);
GXSETARRAY(GX_VA_POS, lbl_1_data_C0, sizeof(lbl_1_data_C0), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, lbl_1_data_A8, sizeof(lbl_1_data_A8), sizeof(GXColor));
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8);
for (var_r30 = 0; var_r30 < 8; var_r30++) {
GXPosition1x8(var_r30);
@ -1579,8 +1579,8 @@ void fn_1_A3A8(ModelData *model, Mtx matrix)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_POS, lbl_1_data_120, 0xC);
GXSetArray(GX_VA_CLR0, lbl_1_data_168, 4);
GXSETARRAY(GX_VA_POS, lbl_1_data_120, sizeof(lbl_1_data_120), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, lbl_1_data_168, sizeof(lbl_1_data_168), sizeof(GXColor));
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6);
GXPosition1x8(0);
GXColor1x8(0);

View file

@ -2087,13 +2087,13 @@ void fn_1_72B4(ModelData *model, Mtx mtx)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, temp_r30->unk1C, sizeof(Vec));
GXSETARRAY(GX_VA_POS, temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, temp_r30->unk24, sizeof(GXColor));
GXSETARRAY(GX_VA_CLR0, temp_r30->unk24, temp_r30->unk0 * sizeof(GXColor), sizeof(GXColor));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, temp_r30->unk20, sizeof(HsfVector2f));
GXSETARRAY(GX_VA_TEX0, temp_r30->unk20, temp_r30->unk0 * sizeof(HsfVector2f) * 4, sizeof(HsfVector2f));
fn_1_79FC(mtx, sp128);
MTXReorder(sp128, spF8);
if (!omPauseChk() && temp_r30->unkC) {

View file

@ -2238,7 +2238,9 @@ void fn_1_AF28(omObjData *object)
fn_1_4ED8(&var_r31->unk_00, 0);
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_B234(void)
{

View file

@ -342,7 +342,7 @@ void fn_1_2978(ModelData *model, Mtx mtx)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, lbl_1_bss_2868, sizeof(Vec));
GXSETARRAY(GX_VA_POS, lbl_1_bss_2868, sizeof(lbl_1_bss_2868), sizeof(Vec));
GXSetCullMode(GX_CULL_BACK);
GXCallDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4);
GXSetNumIndStages(0);

View file

@ -4252,7 +4252,9 @@ void fn_1_14760(omObjData* arg0) {
arg0->func = fn_1_14384;
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_14A54(void) {
lbl_1_bss_0 = omInitObjMan(62, 0x2000);

View file

@ -3280,7 +3280,9 @@ void fn_1_10670(omObjData *arg0)
arg0->func = fn_1_1026C;
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_108DC(void)
{

View file

@ -3443,7 +3443,9 @@ void fn_1_108A4(omObjData *arg0)
arg0->func = fn_1_1043C;
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_10B30(void)
{

View file

@ -4,7 +4,9 @@
#define HUSPR_USE_OLD_DEFS
#include "game/sprite.h"
extern u8 texMtxTbl[];
#include <ext_math.h>
SHARED_SYM extern u8 texMtxTbl[];
// PROTO
void fn_1_E790(M438UnkStruct2 *);
@ -264,19 +266,19 @@ void fn_1_E790(M438UnkStruct2 *arg0)
}
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0);
GXSetArray(GX_VA_POS, var_r31->unk_44, 12);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSETARRAY(GX_VA_POS, var_r31->unk_44, 4 * sizeof(Vec), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, var_r31->unk_48, 4);
GXSETARRAY(GX_VA_CLR0, var_r31->unk_48, 4 * sizeof(GXColor), sizeof(GXColor));
for (var_r27 = 0; var_r27 < var_r31->unk_34; var_r27++) {
GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(var_r27 + GX_VA_TEX0, &var_r31->unk_58[var_r27].unk_04, 8);
GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSETARRAY(var_r27 + GX_VA_TEX0, &var_r31->unk_58[var_r27].unk_04, 4 * sizeof(Vec2f), sizeof(Vec2f));
}
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0U);
GXSetArray(GX_VA_NRM, var_r31->unk_4C, 12);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0U);
GXSETARRAY(GX_VA_NRM, var_r31->unk_4C, sizeof(Vec), sizeof(Vec));
GXCallDisplayList(var_r31->unk_40, var_r31->unk_3C);
}
}
@ -593,15 +595,15 @@ s16 fn_1_10258(u8 arg0, u8 arg1)
var_r31->unk_30 = NULL;
var_r31->unk_02 = arg0;
var_r31->unk_04 = arg1;
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x98, 0x10000000);
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x98, MEMORY_DEFAULT_NUM);
var_r31->unk_3C = var_r30;
var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, 0x10000000);
var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, MEMORY_DEFAULT_NUM);
var_r31->unk_48 = 0;
var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 << 8, 0x10000000);
var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x30, 0x10000000);
var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x10, 0x10000000);
var_r31->unk_58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0xC, 0x10000000);
var_r31->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * 0x30), 0x10000000);
var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 << 8, MEMORY_DEFAULT_NUM);
var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x30, MEMORY_DEFAULT_NUM);
var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x10, MEMORY_DEFAULT_NUM);
var_r31->unk_58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0xC, MEMORY_DEFAULT_NUM);
var_r31->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * 0x30), MEMORY_DEFAULT_NUM);
DCFlushRangeNoSync(var_r31->unk_4C, arg0 << 8);
var_r31->unk_0C.x = var_r31->unk_0C.y = var_r31->unk_0C.z = 0.0f;
var_r31->unk_18.x = var_r31->unk_18.y = var_r31->unk_18.z = 0.0f;

View file

@ -1344,12 +1344,12 @@ void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3)
arg2->unk38 = NULL;
arg2->unk3C = 0xFF;
arg2->unk3E = 0;
arg2->unk18 = HuMemDirectMallocNum(HEAP_DATA, arg1->data.vertex->count * 0xC, var_r29->unk_48);
arg2->unk18 = HuMemDirectMallocNum(HEAP_DATA, arg1->data.vertex->count * sizeof(Vec), var_r29->unk_48);
fn_1_6554(arg2, arg1);
fn_1_6B58(arg2, arg1);
arg2->unkC = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * 0xC, var_r29->unk_48);
arg2->unk10 = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * 0xC, var_r29->unk_48);
arg2->unk14 = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * 0xC, var_r29->unk_48);
arg2->unkC = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * sizeof(Vec), var_r29->unk_48);
arg2->unk10 = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * sizeof(Vec), var_r29->unk_48);
arg2->unk14 = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * sizeof(Vec), var_r29->unk_48);
if (arg2->unk28->numAttrs != 0) {
arg2->unk1C = HuMemDirectMallocNum(HEAP_DATA, arg1->data.st->count * 8, var_r29->unk_48);
var_r22 = arg1->data.st->data;
@ -1879,10 +1879,10 @@ void fn_1_806C(ModelData *arg0, Mtx arg1)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, temp_r31->unkC, 12);
GXSETARRAY(GX_VA_POS, temp_r31->unkC, temp_r31->unk8 * sizeof(Vec), sizeof(Vec));
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
GXSetArray(GX_VA_NRM, temp_r31->unk14, 12);
GXSETARRAY(GX_VA_NRM, temp_r31->unk14, temp_r31->unk8 * sizeof(Vec), sizeof(Vec));
lbl_1_bss_C = temp_r31->unk3C;
if (temp_r31->unk28->unk34 == 0) {
GXSetNumTevStages(1);
@ -1897,7 +1897,7 @@ void fn_1_806C(ModelData *arg0, Mtx arg1)
else {
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, temp_r31->unk1C, 8);
GXSETARRAY(GX_VA_TEX0, temp_r31->unk1C, sizeof(Vec2f), sizeof(Vec2f)); // TODO PC
temp_r29 = &temp_r31->unk2C[temp_r31->unk28->unk38[0]];
fn_1_7D60(temp_r29->unk80, temp_r29, 0);
lbl_1_bss_2C = 1;
@ -2269,19 +2269,19 @@ s16 fn_1_956C(AnimData *arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4)
var_r24->unk60 = -1;
var_r24->unk62 = 0;
}
var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 0xC * 4, temp_r28->unk_48);
var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 4, temp_r28->unk_48);
var_r31->unk1C = var_r25;
for (var_r30 = 0; var_r30 < (arg1 * 4); var_r30++, var_r25++) {
var_r25->x = var_r25->y = var_r25->z = 0.0f;
}
var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 4, temp_r28->unk_48);
var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(GXColor), temp_r28->unk_48);
var_r31->unk24 = var_r27;
for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r27++) {
var_r27->r = var_r27->g = var_r27->b = var_r27->a = 0xFF;
}
var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 8 * 4, temp_r28->unk_48);
var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec2f) * 4, temp_r28->unk_48);
var_r31->unk20 = var_r29;
for (var_r30 = 0; var_r30 < arg1; var_r30++) {
@ -2458,13 +2458,13 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, temp_r30->unk1C, 0xC);
GXSETARRAY(GX_VA_POS, temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, temp_r30->unk24, 4);
GXSETARRAY(GX_VA_CLR0, temp_r30->unk24, temp_r30->unk0 * sizeof(GXColor), sizeof(GXColor));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, temp_r30->unk20, 8);
GXSETARRAY(GX_VA_TEX0, temp_r30->unk20, temp_r30->unk0 * sizeof(Vec2f) * 4, sizeof(Vec2f));
fn_1_9344(arg1, sp128);
MTXReorder(sp128, spF8);
if (((u8)omPauseChk() == 0) && (temp_r30->unkC)) {
@ -2510,8 +2510,8 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1)
}
}
}
DCFlushRangeNoSync(temp_r30->unk1C, temp_r30->unk0 * 0xC * 4);
DCFlushRangeNoSync(temp_r30->unk20, temp_r30->unk0 * 8 * 4);
DCFlushRangeNoSync(temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4);
DCFlushRangeNoSync(temp_r30->unk20, temp_r30->unk0 * sizeof(Vec2f) * 4);
GXCallDisplayList(temp_r30->unk28, temp_r30->unk4);
}

View file

@ -23,6 +23,12 @@
#include "ext_math.h"
#include "version.h"
#ifndef __MWERKS__
#include <game/hsfex.h>
#include <game/audio.h>
#endif
#undef ABS
#define ABS(x) ((0 > (x)) ? -(x) : (x))
@ -700,7 +706,9 @@ HsfanimStruct00 lbl_1_data_48C = {
{ { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 } },
};
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_2454(omObjData *object)
{

View file

@ -243,7 +243,7 @@ void ObjectSetup(void)
var_r29 = Hu3DGLightCreateV(&lbl_1_data_54, &lbl_1_bss_14, &lbl_1_data_6C);
Hu3DGLightInfinitytSet(var_r29);
Hu3DGLightStaticSet(var_r29, 1);
Hu3DShadowCreate(10.0f, var_r30->near, var_r30->far);
Hu3DShadowCreate(10.0f, var_r30->nnear, var_r30->ffar);
Hu3DShadowTPLvlSet(0.625f);
Hu3DShadowPosSet(&lbl_1_data_70, &lbl_1_data_7C, &lbl_1_data_60);
HuAudSndGrpSet(0x44);
@ -1527,7 +1527,7 @@ void fn_1_485C(ModelData *model, Mtx mtx)
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
C_MTXPerspective(sp40, var_r29->fov, var_r29->aspect, var_r29->near, var_r29->far);
C_MTXPerspective(sp40, var_r29->fov, var_r29->aspect, var_r29->nnear, var_r29->ffar);
GXSetProjection(sp40, GX_PERSPECTIVE);
MTXInverse(mtx, spA0);
spA0[0][3] = spA0[1][3] = spA0[2][3] = 0.0f;

View file

@ -23,7 +23,7 @@ void fn_1_D9F4(s16 arg0)
CameraData *var_r31;
var_r31 = &Hu3DCamera[0];
C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far);
C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->nnear, var_r31->ffar);
GXSetProjection(sp64, GX_PERSPECTIVE);
GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
GXSetScissor(0, 0, 0x280, 0x1E0);

View file

@ -26,7 +26,7 @@
#include "game/hsfex.h"
#endif
s32 rand8(void);
extern s32 rand8(void);
typedef struct UnkCameraStruct {
/* 0x00 */ float unk_00;

View file

@ -1589,13 +1589,13 @@ void fn_1_56C4(ModelData *arg0, Mtx arg1)
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetArray(GX_VA_POS, var_r31->unk_14, 0xC);
GXSETARRAY(GX_VA_POS, var_r31->unk_14, var_r31->unk_64 * sizeof(Vec) * 4, sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, var_r31->unk_20, 4);
GXSETARRAY(GX_VA_CLR0, var_r31->unk_20, var_r31->unk_64 * sizeof(GXColor), sizeof(GXColor));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_18, 8);
GXSETARRAY(GX_VA_TEX0, var_r31->unk_18, var_r31->unk_64 * sizeof(Vec2f) * 4, sizeof(Vec2f));
sp130[0][0] = arg1[0][0];
sp130[1][0] = arg1[0][1];
sp130[2][0] = arg1[0][2];
@ -1651,8 +1651,8 @@ void fn_1_56C4(ModelData *arg0, Mtx arg1)
}
}
}
DCFlushRangeNoSync(var_r31->unk_14, var_r31->unk_64 * 0xC * 4);
DCFlushRangeNoSync(var_r31->unk_18, var_r31->unk_64 * 8 * 4);
DCFlushRangeNoSync(var_r31->unk_14, var_r31->unk_64 * sizeof(Vec) * 4);
DCFlushRangeNoSync(var_r31->unk_18, var_r31->unk_64 * sizeof(Vec2f) * 4);
GXCallDisplayList(var_r31->unk_24, var_r31->unk_58);
}
}
@ -6098,7 +6098,9 @@ void fn_1_1A3F0(void)
lbl_1_bss_30C.y += 150.0f;
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_1A714(void)
{

View file

@ -75,7 +75,7 @@ void ObjectSetup(void)
light = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50);
Hu3DGLightInfinitytSet(light);
Hu3DGLightStaticSet(light, 1);
Hu3DShadowCreate(10, camera->near, camera->far);
Hu3DShadowCreate(10, camera->nnear, camera->ffar);
Hu3DShadowTPLvlSet(0.7f);
Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_44);
HuAudSndGrpSet(77);

View file

@ -630,7 +630,7 @@ void fn_1_4B1C(ModelData *model, Mtx matrix)
GXClearVtxDesc();
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetArray(GX_VA_POS, lbl_1_data_278, sizeof(Vec));
GXSETARRAY(GX_VA_POS, lbl_1_data_278, sizeof(lbl_1_data_278), sizeof(Vec));
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
for(i=0; i<4; i++) {
GXPosition1x16(i);
@ -721,16 +721,16 @@ void fn_1_4E64(ModelData *model, Mtx matrix)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetArray(GX_VA_POS, lbl_1_data_2A8, sizeof(Vec));
GXSETARRAY(GX_VA_POS, lbl_1_data_2A8, sizeof(lbl_1_data_2A8), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, lbl_1_data_3E0, sizeof(GXColor));
GXSETARRAY(GX_VA_CLR0, lbl_1_data_3E0, sizeof(lbl_1_data_3E0), sizeof(GXColor));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, lbl_1_data_448, sizeof(float)*2);
GXSETARRAY(GX_VA_TEX0, lbl_1_data_448, sizeof(lbl_1_data_448), sizeof(float)*2);
GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX1, &work2->unk874[0][0], sizeof(float)*2);
GXSETARRAY(GX_VA_TEX1, &work2->unk874[0][0], sizeof(work2->unk874), sizeof(float)*2);
GXBegin(GX_QUADS, GX_VTXFMT0, 48);
for(i=0; i<12; i++) {
s16 index;
@ -886,8 +886,8 @@ void fn_1_59A0(ModelData *model, Mtx matrix)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_POS, lbl_1_data_604, sizeof(Vec));
GXSetArray(GX_VA_CLR0, lbl_1_data_670, sizeof(GXColor));
GXSETARRAY(GX_VA_POS, lbl_1_data_604, sizeof(lbl_1_data_604), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, lbl_1_data_670, sizeof(lbl_1_data_670), sizeof(GXColor));
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6);
GXPosition1x8(0);
GXColor1x8(0);

View file

@ -150,7 +150,7 @@ void ObjectSetup(void)
var_r29 = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50);
Hu3DGLightInfinitytSet(var_r29);
Hu3DGLightStaticSet(var_r29, 1);
Hu3DShadowCreate(10.0f, var_r30->near, var_r30->far);
Hu3DShadowCreate(10.0f, var_r30->nnear, var_r30->ffar);
Hu3DShadowTPLvlSet(0.7f);
Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_44);
HuAudSndGrpSet(0x4E);

View file

@ -518,7 +518,7 @@ void fn_1_464C(ModelData *model, Mtx matrix)
GXClearVtxDesc();
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetArray(GX_VA_POS, lbl_1_data_388, sizeof(Vec));
GXSETARRAY(GX_VA_POS, lbl_1_data_388, sizeof(lbl_1_data_388), sizeof(Vec));
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
for (i = 0; i < 4; i++) {
GXPosition1x16(i);
@ -609,16 +609,16 @@ void fn_1_4994(ModelData *model, Mtx matrix)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetArray(GX_VA_POS, lbl_1_data_3B8, sizeof(Vec));
GXSETARRAY(GX_VA_POS, lbl_1_data_3B8, sizeof(lbl_1_data_3B8), sizeof(Vec));
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, lbl_1_data_4F0, sizeof(GXColor));
GXSETARRAY(GX_VA_CLR0, lbl_1_data_4F0, sizeof(lbl_1_data_4F0), sizeof(GXColor));
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, lbl_1_data_558, sizeof(float) * 2);
GXSETARRAY(GX_VA_TEX0, lbl_1_data_558, sizeof(lbl_1_data_558), sizeof(float) * 2);
GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX1, &work2->unk874[0][0], sizeof(float) * 2);
GXSETARRAY(GX_VA_TEX1, &work2->unk874[0][0], sizeof(work2->unk874), sizeof(float) * 2);
GXBegin(GX_QUADS, GX_VTXFMT0, 48);
for (i = 0; i < 12; i++) {
s16 index;
@ -776,8 +776,8 @@ void fn_1_54D0(ModelData *model, Mtx matrix)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_POS, lbl_1_data_714, sizeof(Vec));
GXSetArray(GX_VA_CLR0, lbl_1_data_780, sizeof(GXColor));
GXSETARRAY(GX_VA_POS, lbl_1_data_714, sizeof(lbl_1_data_714), sizeof(Vec));
GXSETARRAY(GX_VA_CLR0, lbl_1_data_780, sizeof(lbl_1_data_780), sizeof(GXColor));
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6);
GXPosition1x8(0);
GXColor1x8(0);

View file

@ -21,7 +21,7 @@
#include "ext_math.h"
#include "version.h"
s32 rand8(void);
extern s32 rand8(void);
#define MSM_SE_BOWSER_LAUGH 0x3A
#define MSM_SE_BOWSER_HOWL 0x3E

View file

@ -1127,7 +1127,9 @@ void fn_1_507C(WorkPlayerOld *player, s32 attr)
player->unk3C &= ~attr;
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
Vec lbl_1_data_A0 = { 0, 600, 600 };
Vec lbl_1_data_AC = { 0, 1, 0 };

View file

@ -29,18 +29,8 @@ s32 lbl_1_data_0[][4] = {
s32 lbl_1_data_70 = -1;
// char lbl_1_data_74[] = ">>>>>>>>>> CAMERA DATA <<<<<<<<<<";
// char lbl_1_data_96[] = "CENTER : %.2f, %.2f, %.2f";
// char lbl_1_data_B0[] = "ROT : %.2f, %.2f, %.2f";
// char lbl_1_data_CA[] = "ZOOM : %.2f";
extern s32 _prolog();
extern void _epilog();
void fn_1_144(void);
void fn_1_2318(s32);
typedef void (*VoidFunc)(void);
extern const VoidFunc _ctors[];
extern const VoidFunc _dtors[];
void fn_1_0(omObjData *arg0)
{
@ -58,27 +48,11 @@ void fn_1_4C(omObjData *object)
}
}
s32 _prolog(void)
{
const VoidFunc *ctors = _ctors;
while (*ctors != 0) {
(**ctors)();
ctors++;
}
fn_1_144();
return 0;
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void _epilog(void)
{
const VoidFunc *dtors = _dtors;
while (*dtors != 0) {
(**dtors)();
dtors++;
}
}
void fn_1_144(void)
void ObjectSetup(void)
{
_ClearFlag(0x1000BU);
boardTutorialF = 0;

View file

@ -60,7 +60,7 @@ void fn_1_26C54(s16 layer)
Vec pos, target, up;
GXColor color;
CameraData *camera = &Hu3DCamera[0];
MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far);
MTXPerspective(proj, camera->fov, camera->aspect, camera->nnear, camera->ffar);
GXSetProjection(proj, GX_PERSPECTIVE);
GXSetViewport(0, 0, 640, 480, 0, 1);
GXSetScissor(0, 0, 640, 480);

View file

@ -72,7 +72,7 @@ static inline void HuControlCamCenter(Vec *sp18, Vec *sp30)
// -------------------------------------------------------------------------- //
void fn_1_37DC(omObjData *)
void fn_1_37DC(omObjData *object)
{
Vec sp3C;
Vec sp30;
@ -135,7 +135,7 @@ void fn_1_37DC(omObjData *)
// -------------------------------------------------------------------------- //
void fn_1_439C(omObjData *)
void fn_1_439C(omObjData *object)
{
s16 var_r31;
f32 temp_f30;

View file

@ -1,5 +1,9 @@
#include "REL/modeseldll.h"
#ifndef __MWERKS__
#include "game/esprite.h"
#endif
s16 lbl_1_bss_19A[24];
s16 lbl_1_bss_16A[24];
s16 lbl_1_bss_152[12];

View file

@ -14,8 +14,11 @@
#include "REL/modeseldll.h"
s32 msmSysGetOutputMode(void);
#ifndef __MWERKS__
#include "game/esprite.h"
#include "game/hsfex.h"
#endif
s16 lbl_1_data_100 = -1;

View file

@ -1,5 +1,8 @@
#include "REL/modeseldll.h"
#include "ext_math.h"
#include "game/audio.h"
#include "game/board/ui.h"
#include "game/esprite.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/object.h"
@ -8,7 +11,8 @@
#include "game/process.h"
#include "game/window.h"
#include "game/wipe.h"
#include "ext_math.h"
#include <msm/msmsys.h>
typedef struct camera_view_params {
Vec rot;
@ -103,6 +107,7 @@ void fn_1_414(void)
HuWinAllKill();
HuWinInit(1);
#endif
#ifdef __MWERKS__
grpId = HuSprGrpCreate(1);
sprId = HuTHPSprCreateVol("movie/opmov_s00.thp", 0, 3000, 70.0);
HuSprGrpMemberSet(grpId, 0, sprId);
@ -116,6 +121,7 @@ void fn_1_414(void)
}
HuTHPClose();
HuSprGrpKill(grpId);
#endif
}
}
espAttrReset(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF);

View file

@ -44,7 +44,7 @@ typedef struct MpexDllUnkStruct4 {
/* 0x2C */ char unk2C[0x1C];
} MpexDllUnkStruct4; /* size = 0x48 */
s32 rand8(void);
extern s32 rand8(void);
float fn_1_1B52C(float arg8, float arg9, float argA, float argB);
float fn_1_1B574(float arg0, float arg1, float arg2, float arg3);
float fn_1_1B64C(float arg0, float arg1, float arg2, float arg3);

View file

@ -130,7 +130,9 @@ void fn_1_A4(void) {
}
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_3E4(void)
{

View file

@ -127,7 +127,9 @@ void fn_1_A4(void) {
}
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_40C(void) {
lbl_1_bss_0 = omInitObjMan(62, 0x2000);

View file

@ -222,8 +222,8 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) {
temp_r21 = temp_r28->unk24 - (temp_r28->unk24 / 5.0f);
temp_r26 = temp_r21 / 2;
temp_r20 = temp_r21 - temp_r26;
PSVECSubtract(&temp_r28->unk04, &temp_r28->unk10, &sp8);
temp_f31 = PSVECMag(&sp8) / temp_r20;
VECSubtract(&temp_r28->unk04, &temp_r28->unk10, &sp8);
temp_f31 = VECMag(&sp8) / temp_r20;
for (var_r22 = 0; var_r22 < particle->unk_30 / (temp_r28->unk24 / 5.0f); var_r22++) {
var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
@ -254,12 +254,12 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) {
continue;
}
if (var_r31->unk00 == 0) {
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 0.999f;
var_r31->unk08.y -= 0.5f;
var_r31->unk08.z *= 0.999f;
if (var_r31->unk02 > temp_r26 - (temp_r26 / 5.0)) {
PSVECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0)));
VECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0)));
}
if (var_r31->unk02 == temp_r26) {
var_r31->unk00++;
@ -270,18 +270,18 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) {
}
} else if (var_r31->unk00 == 1) {
sp8 = temp_r28->unk00[var_r29];
PSVECSubtract(&sp8, &var_r31->unk34, &sp8);
if (PSVECMag(&sp8) <= 1.0 + temp_f31) {
VECSubtract(&sp8, &var_r31->unk34, &sp8);
if (VECMag(&sp8) <= 1.0 + temp_f31) {
var_r23++;
var_r31->unk34 = temp_r28->unk00[var_r29];
var_r31->unk00++;
continue;
}
PSVECNormalize(&sp8, &sp8);
VECNormalize(&sp8, &sp8);
var_r31->unk08.x = sp8.x * temp_f31 + sind(var_r31->unk14.x);
var_r31->unk08.y = sp8.y * temp_f31;
var_r31->unk08.z = sp8.z * temp_f31;
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk14.x += 20.0f;
} else {
var_r23++;

View file

@ -105,7 +105,6 @@ s32 lbl_1_data_56C[] = {
};
void fn_1_EC(void);
void fn_1_12E8(void);
void fn_1_13A0(void);
s32 lbl_1_bss_14;
@ -454,25 +453,11 @@ void fn_1_EC(void)
}
}
s32 _prolog(void) {
const VoidFunc* ctors = _ctors;
while (*ctors != 0) {
(**ctors)();
ctors++;
}
fn_1_12E8();
return 0;
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void _epilog(void) {
const VoidFunc* dtors = _dtors;
while (*dtors != 0) {
(**dtors)();
dtors++;
}
}
void fn_1_12E8(void)
void ObjectSetup(void)
{
lbl_1_bss_0 = omInitObjMan(62, 8192);
omGameSysInit(lbl_1_bss_0);

View file

@ -138,7 +138,9 @@ void fn_1_A4(void) {
}
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif
void fn_1_488(void) {
s32 i;

View file

@ -19,4 +19,6 @@ void fn_1_68(omObjData *object)
}
}
#ifdef __MWERKS__
#include "src/REL/executor.c"
#endif

View file

@ -13,6 +13,10 @@
#include "dolphin.h"
#include "math.h"
#ifndef __MWERKS__
#include <game/audio.h>
#endif
typedef struct {
/* 0x000 */ omObjData *object[26];
/* 0x068 */ OptionWindow *window[13];
@ -110,7 +114,7 @@ static void CreateNote(omObjData *object, s32 type, s32 side, s32 color);
static void CreateNoteSpawner(omObjData *object);
static void KillNoteSpawner(omObjData *object);
static void ExecNoteSpawner(void);
static void PlaySound(omObjData *object);
static void OptionPlaySound(omObjData *object);
static void FadeSound(omObjData *object);
omObjData *optionSound;
@ -920,7 +924,7 @@ static void ExecMusic(omObjData *object)
HuAudSeqFadeOut(work->bgMusicStat, 0x64);
work->bgMusicStat = -1;
}
PlaySound(object);
OptionPlaySound(object);
}
else if (OptionPadCheck(PAD_BUTTON_B)) {
HuAudFXPlay(3);
@ -1101,7 +1105,7 @@ static void ExecVoice(omObjData *object)
case 6:
if (work->window[0]->state == 0 && work->window[1]->state == 0) {
if (OptionPadCheck(PAD_BUTTON_A)) {
PlaySound(object);
OptionPlaySound(object);
}
else if (OptionPadCheck(PAD_BUTTON_B)) {
HuAudFXPlay(3);
@ -1665,7 +1669,7 @@ static void ExecNoteSpawner(void)
}
}
static void PlaySound(omObjData *object)
static void OptionPlaySound(omObjData *object)
{
SoundWork *work = object->data;
SndSelData *sndSelData;

View file

@ -86,7 +86,7 @@ typedef struct PresentDistanceStruct {
static void ExecSelectRoom(omObjData *object);
static void ChangeRoom(omObjData *object, s32 direction);
static void ExecSelectPresent(omObjData *object);
static void GetCursorPos(omObjData *object, float *x, float *y, float *z);
static void PresentGetCursorPos(omObjData *object, float *x, float *y, float *z);
static void SetCameraRot(omObjData *object, float rot, s32 duration);
static void RotateCamera(omObjData *object);
static BOOL CameraRotationDoneCheck(omObjData *object);
@ -731,7 +731,7 @@ static void ExecSelectPresent(omObjData *object)
work->cursorSpeed = 1.0f / 6.0f;
if (work->roomNotEmptyF) {
Vec cursorPos;
GetCursorPos(work->object[roomTbl[room].presentData[idxInRoom].cursorPosIdx], &cursorPos.x, &cursorPos.y, &cursorPos.z);
PresentGetCursorPos(work->object[roomTbl[room].presentData[idxInRoom].cursorPosIdx], &cursorPos.x, &cursorPos.y, &cursorPos.z);
Hu3D3Dto2D(&cursorPos, 1, &cursorPos);
cursorPos.y -= 15.0f;
cursorPos.x -= 20.0f;
@ -818,7 +818,7 @@ static void ExecSelectPresent(omObjData *object)
}
}
static void GetCursorPos(omObjData *object, float *x, float *y, float *z)
static void PresentGetCursorPos(omObjData *object, float *x, float *y, float *z)
{
Mtx sp8;
@ -966,7 +966,7 @@ static s32 MoveCursor(omObjData *object, s32 arg1)
return work->idxInRoom;
}
GetCursorPos(work->object[roomTbl[work->room].presentData[work->idxInRoom].cursorPosIdx], &cursorPos.x, &cursorPos.y, &cursorPos.z);
PresentGetCursorPos(work->object[roomTbl[work->room].presentData[work->idxInRoom].cursorPosIdx], &cursorPos.x, &cursorPos.y, &cursorPos.z);
Hu3D3Dto2D(&cursorPos, 1, &cursorPos);
for (i = 0, j = 0; i == 0 && j < 1; j++) {
for (i = 0, present = 0; present < totalPresents; present++) {
@ -978,7 +978,7 @@ static s32 MoveCursor(omObjData *object, s32 arg1)
if (!PresentUnlocked(object, work->room, present)) {
continue;
}
GetCursorPos(work->object[roomTbl[work->room].presentData[present].cursorPosIdx], &cursorPosNew.x, &cursorPosNew.y, &cursorPosNew.z);
PresentGetCursorPos(work->object[roomTbl[work->room].presentData[present].cursorPosIdx], &cursorPosNew.x, &cursorPosNew.y, &cursorPosNew.z);
Hu3D3Dto2D(&cursorPosNew, 1, &cursorPosNew);
dx = cursorPos.x - cursorPosNew.x;
dy = cursorPos.y - cursorPosNew.y;

View file

@ -16,10 +16,13 @@
#include "game/wipe.h"
#include "math.h"
#ifdef __MWERKS__
// MSM Definitions
static s8 *msmSeGetIndexPtr(s16 datano);
static void msmMusSetMasterVolume(s32 value);
#else
#include "game/msm.h"
#endif
#define SM_PAGE_MAX 7
#define SM_PAGE_SIZE 10
@ -907,9 +910,12 @@ static void SMSound3DDraw(void);
static void SMSound3DInit(omObjData *object)
{
#ifdef __MWERKS__
// TODO PC
s8 *data = msmSeGetIndexPtr(emiCompDataNo);
emiCompVal = data[12];
object->func = SMSound3DUpdate;
#endif
}
static void SMSound3DUpdate(omObjData *object)

View file

@ -60,8 +60,6 @@ typedef struct w03UnkMG {
// external symbols
extern u16 HuPadBtnDown[4];
// function signatures
s32 BoardVecDAngleCalcRange(float *value, float min, float range);

View file

@ -12,7 +12,6 @@ typedef struct w03UnkWorkStruct {
extern w03State* lbl_1_bss_0;
omObjData* lbl_1_bss_138[2];
extern Process *boardObjMan;
extern s16 lbl_1_data_1E0;
void fn_1_79E0(omObjData* arg0);

View file

@ -1,4 +1,4 @@
#include "include/REL/w10Dll.h"
#include "REL/w10Dll.h"
#include "game/data.h"
#include "game/hsfman.h"
#include "game/board/lottery.h"

View file

@ -1,4 +1,4 @@
#include "include/REL/w10Dll.h"
#include "REL/w10Dll.h"
#include "game/board/char_wheel.h"
#include "game/board/lottery.h"
#include "game/board/main.h"

View file

@ -77,10 +77,10 @@ static void __DEMOInitMem()
void *arenaHi = OSGetArenaHi();
unsigned long fbSize = ((u16)(rmode->fbWidth + 15) & 0xFFF0) * rmode->xfbHeight * 2;
DemoFrameBuffer1 = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0);
DemoFrameBuffer2 = (void *)(((u32)DemoFrameBuffer1 + fbSize + 0x1F) & 0xFFFFFFE0);
DemoFrameBuffer1 = (void *)(((uintptr_t)arenaLo + 0x1F) & ~0x1F);
DemoFrameBuffer2 = (void *)(((uintptr_t)DemoFrameBuffer1 + fbSize + 0x1F) & ~0x1F);
DemoCurrentBuffer = DemoFrameBuffer2;
arenaLo = (void *)(((u32)DemoFrameBuffer2 + fbSize + 0x1F) & 0xFFFFFFE0);
arenaLo = (void *)(((uintptr_t)DemoFrameBuffer2 + fbSize + 0x1F) & ~0x1F);
OSSetArenaLo(arenaLo);
if (((OSGetConsoleType() + 0xF0000000) == 4U) && ((OSGetPhysicalMemSize() + 0xFFC00000) != 0U)
&& (OSGetConsoleSimulatedMemSize() < 0x01800000U)) {
@ -91,9 +91,9 @@ static void __DEMOInitMem()
arenaHi = OSGetArenaHi();
arenaLo = OSInitAlloc(arenaLo, arenaHi, 1);
OSSetArenaLo(arenaLo);
arenaLo = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0);
arenaHi = (void *)((u32)arenaHi & 0xFFFFFFE0);
OSSetCurrentHeap(OSCreateHeap((void *)(((u32)arenaLo)), arenaHi));
arenaLo = (void *)(((uintptr_t)arenaLo + 0x1F) & ~0x1F);
arenaHi = (void *)((uintptr_t)arenaHi & ~0x1F);
OSSetCurrentHeap(OSCreateHeap((void *)(((uintptr_t)arenaLo)), arenaHi));
OSSetArenaLo((arenaLo = arenaHi));
}
@ -210,13 +210,13 @@ static void LoadMemInfo()
arenaHi = OSGetArenaHi();
arenaLo = OSInitAlloc(arenaLo, arenaHi, 1);
OSSetArenaLo(arenaLo);
arenaLo = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0);
arenaHi = (void *)((u32)arenaHi & 0xFFFFFFE0);
arenaLo = (void *)(((uintptr_t)arenaLo + 0x1F) & ~0x1F);
arenaHi = (void *)((uintptr_t)arenaHi & ~0x1F);
OSSetCurrentHeap(OSCreateHeap((void *)(((u32)arenaLo)), arenaHi));
OSSetArenaLo((arenaLo = arenaHi));
return;
}
memEntry = (void *)((u32)buf + 0x1F & 0xFFFFFFE0);
memEntry = (void *)((uintptr_t)buf + 0x1F & ~0x1F);
arenaHiOld = OSGetArenaHi();
simMemEnd = OSPhysicalToCached(OSGetConsoleSimulatedMemSize());
OSSetArenaHi(OSPhysicalToCached(OSGetPhysicalMemSize()));
@ -224,8 +224,8 @@ static void LoadMemInfo()
arenaHi = OSGetArenaHi();
arenaLo = OSInitAlloc(arenaLo, arenaHi, 1);
OSSetArenaLo(arenaLo);
arenaLo = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0);
arenaHi = (void *)((u32)arenaHi & 0xFFFFFFE0);
arenaLo = (void *)(((uintptr_t)arenaLo + 0x1F) & ~0x1F);
arenaHi = (void *)((uintptr_t)arenaHi & ~0x1F);
OSSetCurrentHeap(OSCreateHeap((void *)(arenaLo), arenaHi));
OSSetArenaLo((arenaLo = arenaHi));
OSAllocFixed(&arenaHiOld, &simMemEnd);
@ -234,7 +234,7 @@ static void LoadMemInfo()
while (length) {
OSReport("loop\n");
transferLength = (length < 0x20) ? length : 0x20;
if (DVDReadPrio(&fileInfo, memEntry, (transferLength + 0x1F) & 0xFFFFFFE0, offset, 2) < 0) {
if (DVDReadPrio(&fileInfo, memEntry, (transferLength + 0x1F) & ~0x1F, offset, 2) < 0) {
OSPanic(__FILE__, 0x49F, "An error occurred when issuing read to /meminfo.bin\n");
}
indexMax = (transferLength / 8);

View file

@ -1367,7 +1367,6 @@ void C_MTXMultVecArray(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count)
void C_MTXROMultVecArray(const ROMtx m, const Vec *srcBase, Vec *dstBase, u32 count)
{
u32 i;
for (u32 i = 0; i < count; ++i) {
Vec* src = &srcBase[i];
Vec* dst = &dstBase[i];

View file

@ -14,6 +14,7 @@ void C_QUATAdd(const Quaternion *p, const Quaternion *q, Qtrn *r)
r->w = p->w + q->w;
}
#ifdef GEKKO
void PSQUATAdd(register const Quaternion *p, register const Quaternion *q, register Quaternion *r)
{
asm {
@ -27,7 +28,19 @@ void PSQUATAdd(register const Quaternion *p, register const Quaternion *q, regis
psq_st f0, 0x8(r5), 0, 0
}
}
#endif
#ifdef TARGET_PC
void C_QUATMultiply(const Quaternion *a, const Quaternion *b, Quaternion *ab)
{
ab->x = a->w * b->x + a->x * b->w + a->y * b->z - a->z * b->y;
ab->y = a->w * b->y - a->x * b->z + a->y * b->w + a->z * b->x;
ab->z = a->w * b->z + a->x * b->y - a->y * b->x + a->z * b->w;
ab->w = a->w * b->w - a->x * b->x - a->y * b->y - a->z * b->z;
}
#endif
#ifdef GEKKO
void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, register Quaternion *ab)
{
asm {
@ -55,7 +68,26 @@ void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b,
psq_st f5, 8(ab), 0, 0
}
}
#endif
#ifdef TARGET_PC
void C_QUATNormalize(const Quaternion *src, Quaternion *unit)
{
float len = sqrtf(src->x * src->x + src->y * src->y + src->z * src->z + src->w * src->w);
if (len > 0.0f) {
float inv_len = 1.0f / len;
unit->x = src->x * inv_len;
unit->y = src->y * inv_len;
unit->z = src->z * inv_len;
unit->w = src->w * inv_len;
} else {
unit->x = unit->y = unit->z = 0.0f;
unit->w = 1.0f;
}
}
#endif
#ifdef GEKKO
void PSQUATNormalize(const register Quaternion *src, register Quaternion *unit)
{
// sdata2
@ -95,7 +127,27 @@ void PSQUATNormalize(const register Quaternion *src, register Quaternion *unit)
}
}
}
#endif
#ifdef TARGET_PC
void C_QUATInverse(const Quaternion *src, Quaternion *inv)
{
float len_squared = src->x * src->x + src->y * src->y + src->z * src->z + src->w * src->w;
if (len_squared > 0.0f) {
float inv_len_squared = 1.0f / len_squared;
inv->x = -src->x * inv_len_squared;
inv->y = -src->y * inv_len_squared;
inv->z = -src->z * inv_len_squared;
inv->w = src->w * inv_len_squared;
} else {
inv->x = inv->y = inv->z = 0.0f;
inv->w = 1.0f;
}
}
#endif
#ifdef GEKKO
void PSQUATInverse(const register Quaternion *src, register Quaternion *inv)
{
register f32 vv1, vv2, vv3, vv4;
@ -126,6 +178,7 @@ void PSQUATInverse(const register Quaternion *src, register Quaternion *inv)
psq_st vv3, 8(inv), 1, 0;
}
}
#endif
void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad)
{
@ -133,7 +186,7 @@ void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad)
Vec dst;
tmp = rad;
PSVECNormalize(axis, &dst);
VECNormalize(axis, &dst);
tmp2 = tmp * 0.5f;
tmp3 = sinf(tmp * 0.5f);

View file

@ -155,7 +155,7 @@ void *OSAllocFromHeap(int heap, unsigned long size)
hd = &HeapArray[heap];
size += 0x20;
size = (size + 0x1F) & 0xFFFFFFE0;
size = (size + 0x1F) & ~0x1F;
for (cell = hd->free; cell != NULL; cell = cell->next) {
if ((signed)size <= (signed)cell->size) {

View file

@ -34,7 +34,7 @@ void OSStopStopwatch(struct OSStopwatch *sw)
}
}
long long OSCheckStopwatch(struct OSStopwatch *sw)
OSTime OSCheckStopwatch(OSStopwatch *sw)
{
long long currTotal;

View file

@ -39,8 +39,13 @@ void HuARInit(void) {
for (i = 0; i < 64; i++) {
ARInfo[i].amemptr = 0;
}
#ifdef TARGET_PC
size = ARGetSize() - 0x20;
ARBase = 0x20;
#else
size = ARGetSize() - 0x808000;
ARBase = 0x808000;
#endif
ARInfo[0].amemptr = ARBase;
ARInfo[0].size = size;
ARInfo[0].flag = 0;
@ -260,7 +265,11 @@ void *HuAR_ARAMtoMRAMNum(u32 src, s32 num) {
block = HuARInfoGet(src);
if (HuDataReadChk(block->dir << 16) >= 0) {
#ifdef NON_MATCHING
return 0;
#else
return;
#endif
}
size = HuARSizeGet(src);
dst = HuMemDirectMallocNum(HEAP_DVD, size, num);
@ -272,7 +281,7 @@ void *HuAR_ARAMtoMRAMNum(u32 src, s32 num) {
ARQueBuf[arqIdx].dst = dst;
arqCnt++;
PPCSync();
ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, src, (u32) dst, size, ArqCallBackAM);
ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, src, (uintptr_t) dst, size, ArqCallBackAM);
arqIdx++;
arqIdx &= 0xF;
return dst;

View file

@ -1,3 +1,4 @@
#include "game/audio.h"
#include "game/board/basic_space.h"
#include "game/board/main.h"
#include "game/board/model.h"
@ -236,10 +237,10 @@ static void CreateCoinChg(coinChg *coin_chg, Vec *pos) {
BoardModelMotionSpeedSet(coin_chg->sign_model, 0.0f);
BoardModelMotionSpeedSet(coin_chg->tens_model, 0.0f);
BoardModelMotionSpeedSet(coin_chg->ones_model, 0.0f);
BoardModelScaleSet(coin_chg->sign_model, 0.001, 0.001, 0.001);
BoardModelScaleSet(coin_chg->tens_model, 0.001, 0.001, 0.001);
BoardModelScaleSet(coin_chg->ones_model, 0.001, 0.001, 0.001);
BoardModelScaleSet(coin_chg->coin_model, 0.001, 0.001, 0.001);
BoardModelScaleSet(coin_chg->sign_model, 0.001f, 0.001f, 0.001f);
BoardModelScaleSet(coin_chg->tens_model, 0.001f, 0.001f, 0.001f);
BoardModelScaleSet(coin_chg->ones_model, 0.001f, 0.001f, 0.001f);
BoardModelScaleSet(coin_chg->coin_model, 0.001f, 0.001f, 0.001f);
BoardModelLayerSet(coin_chg->sign_model, 1);
BoardModelLayerSet(coin_chg->tens_model, 1);
BoardModelLayerSet(coin_chg->ones_model, 1);

View file

@ -19,6 +19,8 @@
#include "ext_math.h"
#include <game/hsfex.h>
typedef struct {
struct {
u8 unk00_field0 : 1;

View file

@ -1,4 +1,5 @@
#include "ext_math.h"
#include "game/audio.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
@ -8,6 +9,8 @@
#include "game/objsub.h"
#include "game/process.h"
#include <game/board/audio.h>
#include <game/board/tutorial.h>
#define BLOCK_SPAWN 0
#define BLOCK_HIT 2

View file

@ -95,6 +95,8 @@ typedef struct {
float unk04;
} BallTakeCoinWork;
static BOOL CheckBallCoinDone(void);
static void TakeBallStar(void);
static void ComSetupStealPlayer(s32 arg0);
static void ComSetStealPlayerInput(s32 arg0, s32 arg1);
static void ExecCoinSteal(void);
@ -131,8 +133,10 @@ static void BallBooAttack(omObjData *arg0, BallBooWork *arg1);
static void BallBooFlash(omObjData *arg0, BallBooWork *arg1);
static void TakeBallCoin(void);
static void ExecTakeBallCoin(omObjData *arg0);
static void ExecTakeBallStar(omObjData *arg0);
static void TakeBallCoinPosSet(BallTakeCoinData *arg0, Vec *arg1);
static void UpdatePlayerCoins(void);
static BOOL CheckTakeBallStarDone(void);
s8 lbl_801D41E2;
static s8 stealTarget;

View file

@ -1,5 +1,5 @@
#include "game/audio.h"
#include "game/board/boo_house.h"
#include "game/board/audio.h"
#include "game/board/boo.h"
#include "game/board/com.h"
@ -16,6 +16,9 @@
#include "ext_math.h"
#include <game/board/tutorial.h>
#include <game/hsfex.h>
// bss
static s16 houseMdl[6];

View file

@ -15,6 +15,10 @@
#include "ext_math.h"
#include "string.h"
#include <game/board/tutorial.h>
#include <game/chrman.h>
#include <game/hsfex.h>
typedef struct bowser_event_data {
s16 sprite[3];
s16 delay[3];
@ -1215,7 +1219,6 @@ static void ConfigBowserEvent(void)
for(coins=i=0; i<4; i++) {
coins += BoardPlayerCoinsGet(i);
}
retry:
while(1) {
chance = BoardRandMod(100);
if(chance >= 95) {

View file

@ -12,6 +12,8 @@
#include "ext_math.h"
#include <game/board/boo_house.h>
typedef BOOL (*UseCheckFunc)(s32 player, s32 item);
static void ExecComKeyLeft(void);

View file

@ -8,6 +8,10 @@
#include "game/wipe.h"
#include <game/audio.h>
#include <game/board/window.h>
#include <game/objsub.h>
static Vec camTargetFortune;
static Vec camPosFortune;
@ -197,7 +201,6 @@ static void FortunePostMG(void)
static void CreateFortunePlatform(void)
{
PlayerState *player;
Vec pos, rot;
PlatformWork *work;
fortunePlatformObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecFortunePlatform);

View file

@ -28,6 +28,13 @@
#include "ext_math.h"
#include <game/msm.h>
#ifndef __MWERKS__
#include <game/hsfex.h>
extern s32 rand8(void);
#endif
typedef struct {
/* 0x00 */ s16 unk00;
/* 0x02 */ s16 unk02;

View file

@ -340,7 +340,7 @@ static void SetTeamResultTarget(s32 team, Vec *pos);
static void KillTeamResult(void);
static void UpdateTeamResult(omObjData *object);
void BoardLast5Exec()
void BoardLast5Exec(void)
{
GWSystem.player_curr = -1;
last5Proc = HuPrcChildCreate(ExecLast5, 8200, 14336, 0, boardMainProc);
@ -703,10 +703,10 @@ static void Last5Main(void)
temp_r20 = GetLast5RouletteResult();
GWSystem.last5_effect = temp_r20;
if(GWSystem.last5_effect == 2) {
BoardSpaceTypeForce(2, 3);
BoardSpaceTypeForce(2, 3);
}
if(GWSystem.last5_effect == 3) {
BoardSpaceTypeForce(2, 7);
BoardSpaceTypeForce(2, 7);
}
temp_r24 = 18+messBase+temp_r20;
BoardWinCreate(2, temp_r24, BoardWinPortraitGetStar());

View file

@ -24,6 +24,10 @@
#include "ext_math.h"
#include "stdlib.h"
#ifndef __MWERKS__
#include <game/board/shop.h>
#endif
typedef struct {
struct {
u8 unk00_field0 : 1;

View file

@ -1,15 +1,7 @@
#include "game/gamework_data.h"
#include "game/board/main.h"
#include "ext_math.h"
#include "game/object.h"
#include "game/flag.h"
#include "game/data.h"
#include "game/wipe.h"
#include "string.h"
#include "game/hsfman.h"
#include "game/hsfdraw.h"
#include "game/board/battle.h"
#include "game/board/lottery.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/pause.h"
#include "game/board/player.h"
@ -18,9 +10,30 @@
#include "game/board/start.h"
#include "game/board/tutorial.h"
#include "game/board/ui.h"
#include "game/pad.h"
#include "game/data.h"
#include "game/disp.h"
#include "game/flag.h"
#include "game/gamework_data.h"
#include "game/hsfdraw.h"
#include "game/hsfman.h"
#include "game/msm.h"
#include "game/object.h"
#include "game/pad.h"
#include "game/wipe.h"
#include "string.h"
#include <game/armem.h>
#include <game/audio.h>
#include <game/board/audio.h>
#include <game/board/boo_house.h>
#include <game/board/bowser.h>
#include <game/board/fortune.h>
#include <game/board/mg_setup.h>
#include <game/board/roll.h>
#include <game/board/window.h>
#include <game/chrman.h>
extern void BoardLast5Exec(void);
typedef struct camera_view {
s16 x_rot;
@ -33,11 +46,11 @@ u32 boardRandSeed;
static omObjData *last5GfxObj;
static omObjData *confettiObj;
static omObjData *filterObj;
BoardTurnStartHook boardTurnStartFunc;
BoardBowserHook boardBowserHook;
void (*boardStarShowNextHook)(void);
void (*boardStarGiveHook)(void);
BoardFunc boardTurnFunc;
SHARED_SYM BoardTurnStartHook boardTurnStartFunc;
SHARED_SYM BoardBowserHook boardBowserHook;
SHARED_SYM void (*boardStarShowNextHook)(void);
SHARED_SYM void (*boardStarGiveHook)(void);
SHARED_SYM BoardFunc boardTurnFunc;
BoardLightHook boardLightResetHook;
BoardLightHook boardLightSetHook;
static BoardFunc destroyFunc;
@ -297,7 +310,6 @@ void BoardSaveInit(s32 board)
GWSystem.block_pos = 0;
memset(GWSystem.board_data, 0, sizeof(GWSystem.board_data));
for(i=0; i<4; i++) {
s32 party_flag;
BoardPlayerAutoSizeSet(i, 0);
GWPlayer[i].draw_ticket = 0;
GWPlayer[i].color = 0;
@ -1016,21 +1028,21 @@ void BoardCameraRotSet(float x, float y)
camera->rot.y = y;
}
void BoardCameraNearFarSet(float near, float far)
void BoardCameraNearFarSet(float nnear, float ffar)
{
BoardCameraData *camera = &boardCamera;
camera->near = near;
camera->far = far;
camera->nnear = nnear;
camera->ffar = ffar;
}
void BoardCameraNearFarGet(float *near, float *far)
void BoardCameraNearFarGet(float *nnear, float *ffar)
{
BoardCameraData *camera = &boardCamera;
if(near) {
*near = camera->near;
if(nnear) {
*nnear = camera->nnear;
}
if(far) {
*far = camera->far;
if(ffar) {
*ffar = camera->ffar;
}
}
@ -1137,8 +1149,8 @@ void BoardCameraInit(void)
memset(&boardCamera, 0, sizeof(BoardCameraData));
camera = &boardCamera;
camera->fov = 25;
camera->near = 100;
camera->far = 13000;
camera->nnear = 100;
camera->ffar = 13000;
camera->aspect = HU_DISP_ASPECT;
camera->viewport_x = 0;
camera->viewport_y = 0;
@ -1187,7 +1199,7 @@ static void UpdateCamera(omObjData *object)
}
CalcCameraView();
camera = &boardCamera;
Hu3DCameraPerspectiveSet(camera->mask, camera->fov, camera->near, camera->far, camera->aspect);
Hu3DCameraPerspectiveSet(camera->mask, camera->fov, camera->nnear, camera->ffar, camera->aspect);
Hu3DCameraViewportSet(camera->mask, camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far);
target = &camera->target;
if(camera->pos_calc) {

View file

@ -9,10 +9,15 @@
#include "game/objsub.h"
#include "math.h"
#include "ext_math.h"
#include "math.h"
extern s32 boardTutorialData[4];
#include <game/audio.h>
#include <game/board/tutorial.h>
#include <game/board/window.h>
#include <game/hsfex.h>
SHARED_SYM extern s32 boardTutorialData[4];
static void KillMushroom();
@ -70,9 +75,6 @@ static void WaitItemGive(void);
static void MushroomMain(void) {
Vec sp14[2];
Vec sp8;
s32 temp_r0;
s32 temp_r0_2;
s32 var_r30;
s32 curPlayer;
s8 var_r29;
boxObjWork* box;
@ -236,7 +238,6 @@ static void ShowBox(ItemGiveWork2*, omObjData*);
static void BoxMain(omObjData* arg0) {
s32 temp_r0;
ItemGiveWork2* temp_r30;
temp_r30 = OM_GET_WORK_PTR(arg0, ItemGiveWork2);

View file

@ -18,6 +18,9 @@
#include "game/window.h"
#include "game/wipe.h"
#include <game/board/audio.h>
#include <game/hsfex.h>
typedef struct {
struct {
u8 unk00_field0 : 1;

View file

@ -21,6 +21,8 @@
#include "ext_math.h"
#include "stdlib.h"
#include <game/audio.h>
static void InitJunction(s32, s32, f32);
static void UpdateJunctionGfx(omObjData *);
static void StopJunctionPlayer(s32);
@ -67,7 +69,7 @@ static HsfMaterial *playerMatCopy[4];
static s32 (*postTurnHook[4])();
static s32 (*preTurnHook[4])();
s16 boardPlayerMdl[4];
SHARED_SYM s16 boardPlayerMdl[4];
static s16 playerMot[4];
static s8 itemPrev;
static s8 moveAwayPlayer[4];
@ -266,7 +268,6 @@ void BoardPlayerModelInit(void)
s32 temp_r25;
s32 temp_r24;
s16 temp_r3;
s32 temp_r4;
PlayerState *temp_r27;
s32 ro0[8] = { DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0x00), DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x00),
@ -337,7 +338,6 @@ void BoardPlayerModelKill(void)
{
s32 var_r31;
PlayerState *temp_r30;
PlayerState *temp_r29;
for (var_r31 = 0; var_r31 < 4; var_r31++) {
temp_r30 = BoardPlayerGet(var_r31);
@ -689,7 +689,6 @@ s32 BoardPlayerCoinsGet(s32 arg0)
void BoardPlayerCoinsAdd(s32 arg0, s32 arg1)
{
PlayerState *player;
s16 coins;
player = BoardPlayerGet(arg0);
if ((arg1 > 0) && (player->coins_total < 0x3E7)) {
@ -730,9 +729,11 @@ s32 BoardPlayerSizeGet(s32 idx)
PlayerState *player;
player = BoardPlayerGet(idx);
#ifndef NON_MATCHING
if (!player) {
return;
}
#endif
return player->size;
}
@ -833,7 +834,6 @@ void BoardPlayerTurnExec(s32 arg0)
void BoardPlayerTurnRollExec(s32 arg0)
{
s32 temp_r28;
s32 temp_r30;
GWPlayer[arg0].roll = 0;
@ -876,8 +876,6 @@ void BoardPlayerTurnMoveExec(s32 arg0)
s32 temp_r30;
s32 var_r29;
s32 var_r28;
s32 temp_r0;
s32 temp_r1;
BoardPauseDisableSet(1);
var_r28 = 0;
@ -977,7 +975,6 @@ void BoardPlayerTurnMoveExec(s32 arg0)
GWSystem.bowser_event = 0xF;
}
BoardPlayerZoomRestore(arg0);
return;
}
void BoardPlayerPostTurnHookExec(s32 arg0)
@ -1067,9 +1064,6 @@ static inline GetLinkCount(s32 playerIdx, s32 boardIdx)
s32 linkCount;
BoardSpace *boardSpaceLink;
BoardSpace *boardSpaceFlag;
PlayerState *player;
s32 color;
s32 temp;
linkCount = 0;
boardSpaceLink = BoardSpaceGet(0, boardIdx);
@ -1325,7 +1319,6 @@ static s32 DoDebugMove(s32 arg0, s16 *arg1)
s32 var_r21;
s32 var_r20;
s32 var_r18;
bitcopy *var_r17;
var_r18 = -1;
@ -1653,7 +1646,6 @@ void BoardPlayerMoveTo(s32 arg0, s32 arg1)
{
Vec sp18;
Vec spC;
PlayerState *player;
BoardModelPosGet(BoardPlayerModelGet(arg0), &sp18);
BoardSpacePosGet(0, arg1, &spC);
@ -1667,8 +1659,6 @@ void BoardPlayerMoveBetween(s32 arg0, s32 arg1, s32 arg2)
{
Vec sp1C;
Vec sp10;
s32 spC;
s32 sp8;
BoardSpacePosGet(0, arg1, &sp1C);
BoardSpacePosGet(0, arg2, &sp10);
@ -1682,7 +1672,6 @@ void BoardPlayerMoveToAsync(s32 arg0, s32 arg1)
{
Vec sp18;
Vec spC;
s32 sp8;
BoardModelPosGet(BoardPlayerModelGet(arg0), &sp18);
BoardSpacePosGet(0, arg1, &spC);
@ -1868,11 +1857,8 @@ static void DiceJumpFunc(omObjData *arg0)
{
Vec sp38;
f32 temp_f31;
PlayerState *var_r30;
bitcopy2 *temp_r31;
s16 var_r28;
s32 var_r23;
s32 var_r17;
temp_r31 = OM_GET_WORK_PTR(arg0, bitcopy2);
if ((temp_r31->field00_bit0 != 0) || (BoardIsKill() != 0)) {
@ -1938,7 +1924,6 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2)
f32 var_f27;
f32 var_f22;
f32 var_f21;
f32 var_f19;
omObjData *temp_r3;
s32 var_r22;
s32 var_r20;
@ -2212,11 +2197,7 @@ static void UpdateRoll(omObjData *arg0)
void BoardPlayerBtnDownWait(s32 arg0, u32 arg1)
{
s32 spC;
s32 sp8;
s32 temp_r31;
temp_r31 = GWPlayer[arg0].port;
s32 temp_r31 = GWPlayer[arg0].port;
while (1) {
if ((HuPadBtnDown[temp_r31] & arg1) != 0)
return;
@ -2226,9 +2207,7 @@ void BoardPlayerBtnDownWait(s32 arg0, u32 arg1)
void BoardPlayerAutoSizeSet(s32 player, s32 value)
{
PlayerState *temp_r28;
temp_r28 = BoardPlayerGet(player);
PlayerState *temp_r28 = BoardPlayerGet(player);
if ((temp_r28->auto_size != 0) || (value == 0)) {
BoardStatusHammerKill(player);
}
@ -2243,9 +2222,11 @@ s32 BoardPlayerAutoSizeGet(s32 arg0)
PlayerState *player;
player = BoardPlayerGet(arg0);
#ifndef NON_MATCHING
if (!player) {
return;
}
#endif
return player->auto_size;
}
@ -2360,8 +2341,6 @@ void BoardBowserSuitInit(s32 arg0)
void BoardBowserSuitKill(s32 arg0)
{
bitcopy3 *temp;
if (bowserSuitObj != 0) {
OM_GET_WORK_PTR(bowserSuitObj, bitcopy3)->field00_bit0 = 1;
}

View file

@ -24,6 +24,8 @@
#include "dolphin.h"
#include "ext_math.h"
#include <game/hsfex.h>
typedef struct {
struct {
u8 unk00_field0 : 1;
@ -981,8 +983,8 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1)
omObjData *temp_r30;
ItemChoiceWork *var_r31;
s16 spC;
s16 i;
#if VERSION_PAL
s16 i;
for (i = 0; i < 6; i++) {
cursorPosTbl[i][0] = 190;
}

View file

@ -17,6 +17,17 @@
#include "ext_math.h"
#include "string.h"
#include <game/audio.h>
#include <game/board/basic_space.h>
#include <game/board/bowser.h>
#include <game/board/fortune.h>
#include <game/board/warp.h>
s32 BoardBlockExec(s32 player, s32 space); // wrong
extern void BoardMushroomExec(s32 player, s32 space); // wrong
extern void BoardBooHouseExec(s32 player, s32 space); // wrong
extern void BoardBlockHouseExec(s32 player, s32 space); // wrong
static BoardSpace spaceData[2][256];
s16 boardSpaceStarTbl[8];
static GXTexObj spaceHiliteTex;
@ -300,7 +311,6 @@ void BoardSpaceHostSet(s32 space)
{
s16 host_space;
Vec pos;
BoardSpace *space_plat;
BoardSpaceTypeSet(0, space, 8);
host_space = BoardSpaceLinkFlagSearch(0, space, 0x04000000);
BoardSpacePosGet(0, host_space, &pos);
@ -817,7 +827,7 @@ static void DrawSpaces(ModelData *model, Mtx matrix)
camera = &boardCamera;
BoardCameraPosGet(&pos);
BoardCameraTargetGet(&target);
MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far);
MTXPerspective(proj, camera->fov, camera->aspect, camera->nnear, camera->ffar);
GXSetProjection(proj, GX_PERSPECTIVE);
MTXLookAt(lookat, &pos, &camera->up, &target);
GXSetViewport(camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far);
@ -1079,14 +1089,11 @@ void BoardSpaceInit(s32 data_num)
if (_CheckFlag(FLAG_ID_MAKE(1, 1))) {
Vec pos;
Vec rot;
s16 space;
BoardModelVisibilitySet(starPlatMdl, 1);
GWSystem.star_flag |= (u8)(1 << GWSystem.star_pos);
BoardSpaceTypeSet(0, boardSpaceStarTbl[GWSystem.star_pos], 8);
{
int space;
BoardSpace *space_plat;
space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000);
int space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000);
BoardSpacePosGet(0, space, &pos);
BoardModelPosSetV(StarPlatGetMdl(), &pos);
BoardSpaceRotGet(0, space, &rot);

View file

@ -21,9 +21,14 @@
#include "game/objsub.h"
#include "game/window.h"
#include "game/wipe.h"
#include "game/hsfex.h"
#include "ext_math.h"
#ifndef __MWERKS__
#include <game/board/view.h>
#endif
typedef struct {
struct {
u8 unk00_field0 : 1;

View file

@ -1,11 +1,13 @@
#include "game/board/tutorial.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/flag.h"
#include "game/gamework_data.h"
#include "game/process.h"
#include "game/board/main.h"
#include "game/board/model.h"
s32 boardTutorialData[4]; // maybe a single s32 + padding?
#include <game/board/space.h>
SHARED_SYM s32 boardTutorialData[4]; // maybe a single s32 + padding?
static void (*tutorialHook)(s16, s32);
s8 boardTutorialDirInputX;
s8 boardTutorialDirInputY;
@ -15,7 +17,7 @@ s8 boardTutorialBlockItem;
s8 boardTutorialBlockF;
s8 boardTutorialUseItem;
static s16 hostMdl;
s8 boardTutorialF;
SHARED_SYM s8 boardTutorialF;
static Process *tutorialProcess;
static void *playerCfgCopy;
static void *playerCopy;

View file

@ -127,8 +127,6 @@ static inline void BoardViewInlineFunc00(Vec *arg0, Vec *arg1, u16 arg2)
void BoardViewFocusSet(Vec *arg0, u16 arg1)
{
u16 var_r31;
if (BoardPauseDisableGet() == 0) {
BoardPauseDisableSet(1);
pauseDisableF = 1;
@ -143,8 +141,6 @@ void BoardViewFocusSet(Vec *arg0, u16 arg1)
void BoardViewMoveStart(Vec *arg0, Vec *arg1, u16 arg2)
{
u16 var_r31;
if (BoardPauseDisableGet() == 0) {
BoardPauseDisableSet(1);
pauseDisableF = 1;

View file

@ -4,7 +4,7 @@
#include "version.h"
static void *cardWork;
u8 UnMountCnt;
SHARED_SYM u8 UnMountCnt;
static void MountCallBack(s32 chan, s32 result);

Some files were not shown because too many files have changed in this diff Show more