Link in lots of files

This commit is contained in:
dbalatoni13 2025-04-12 16:14:33 +02:00
parent f4b023df31
commit 0250682281
25 changed files with 723 additions and 446 deletions

View file

@ -47,8 +47,40 @@ set(DOLPHIN_FILES
)
set(GAME_FILES
src/game/board/audio.c
src/game/board/basic_space.c
src/game/board/battle.c
src/game/board/block.c
src/game/board/boo.c
src/game/board/boo_house.c
src/game/board/bowser.c
src/game/board/char_wheel.c
src/game/board/com.c
src/game/board/com_path.c
src/game/board/fortune.c
src/game/board/item.c
src/game/board/last5.c
src/game/board/lottery.c
src/game/board/main.c
src/game/board/mg_setup.c
src/game/board/model.c
src/game/board/mushroom.c
src/game/board/pause.c
src/game/board/player.c
src/game/board/roll.c
src/game/board/shop.c
src/game/board/space.c
src/game/board/star.c
src/game/board/start.c
src/game/board/tutorial.c
src/game/board/ui.c
src/game/board/view.c
src/game/board/warp.c
src/game/board/window.c
src/game/armem.c
src/game/card.c
src/game/chrman.c
src/game/ClusterExec.c
src/game/data.c
src/game/decode.c
@ -69,19 +101,28 @@ set(GAME_FILES
src/game/init.c
src/game/main.c
src/game/malloc.c
src/game/mapspace.c
src/game/memory.c
# src/game/messdata.c
src/game/minigame_seq.c
src/game/objdll.c
src/game/objmain.c
src/game/objsub.c
src/game/objsysobj.c
src/game/ovllist.c
src/game/ShapeExec.c
src/game/sprman.c
src/game/sprput.c
src/game/pad.c
src/game/perf.c
src/game/printfunc.c
src/game/process.c
src/game/saveload.c
src/game/ShapeExec.c
src/game/sprman.c
src/game/sprput.c
src/game/window.c
src/game/wipe.c
src/libhu/setvf.c
src/libhu/subvf.c
)
set(PORT_FILES

19
dol.def
View file

@ -2,6 +2,23 @@ EXPORTS
game_main
byteswap_u32
byteswap_s32
espAttrReset
espAttrSet
espBankSet
espColorSet
espDispOff
espDispOn
espDrawNoSet
espEntry
espGrpIDGet
espInit
espKill
espPosSet
espPriSet
espScaleSet
espSpeedSet
espTPLvlSet
espZRotSet
OSReport
OSGetTick
HuAudFXPlay
@ -27,6 +44,7 @@ EXPORTS
HuPrcCurrentGet
HuPrcSleep
HuPrcVSleep
HuSetVecF
HuSprAnimRead
HuSprCreate
HuSprGrpCreate
@ -38,6 +56,7 @@ EXPORTS
HuSprPosSet
HuSprScaleSet
HuSprTPLvlSet
HuSubVecF
HuWindowInit
HuWinInit
HuWinCreate

View file

@ -36,6 +36,7 @@ typedef struct vec2f {
#ifndef __MWERKS__
void HuSetVecF(Vec *arg0, f32 arg8, f32 arg9, f32 argA);
void HuSubVecF(Vec* out, Vec* in, Vec* sub);
#endif
#endif

View file

@ -1,66 +1,67 @@
#ifndef _BOARD_MAIN_H
#define _BOARD_MAIN_H
#include "dolphin.h"
#include "game/data.h"
#include "game/gamework_data.h"
#include "game/object.h"
#include "game/data.h"
#include "dolphin.h"
#define BOARD_ID_MAIN1 0 //TOADS_MIDWAY_MADNESS
#define BOARD_ID_MAIN2 1 //GOOMBAS_GREEDY_GALA
#define BOARD_ID_MAIN3 2 //SHY_GUYS_JUNGLE_JAM
#define BOARD_ID_MAIN4 3 //BOOS_HAUNTED_BASH
#define BOARD_ID_MAIN5 4 //KOOPAS_SEASIDE_SOIREE
#define BOARD_ID_MAIN6 5 //BOWSERS_GNARLY_PARTY
#define BOARD_ID_TUTORIAL 6 //TUTORIAL_BOARD
#define BOARD_ID_EXTRA1 7 //MEGA_BOARD_MAYHEM
#define BOARD_ID_EXTRA2 8 //MINI_BOARD_MAD_DASH
#define BOARD_ID_MAIN1 0 // TOADS_MIDWAY_MADNESS
#define BOARD_ID_MAIN2 1 // GOOMBAS_GREEDY_GALA
#define BOARD_ID_MAIN3 2 // SHY_GUYS_JUNGLE_JAM
#define BOARD_ID_MAIN4 3 // BOOS_HAUNTED_BASH
#define BOARD_ID_MAIN5 4 // KOOPAS_SEASIDE_SOIREE
#define BOARD_ID_MAIN6 5 // BOWSERS_GNARLY_PARTY
#define BOARD_ID_TUTORIAL 6 // TUTORIAL_BOARD
#define BOARD_ID_EXTRA1 7 // MEGA_BOARD_MAYHEM
#define BOARD_ID_EXTRA2 8 // MINI_BOARD_MAD_DASH
#define BOARD_FABS(value) ((value < 0) ? -(value) : (value))
typedef struct board_focus_data {
u16 view_type;
s16 time;
s16 max_time;
float fov_start;
float fov_end;
float zoom_start;
float zoom_end;
Vec rot_start;
Vec rot_end;
Vec target_start;
Vec target_end;
u16 view_type;
s16 time;
s16 max_time;
float fov_start;
float fov_end;
float zoom_start;
float zoom_end;
Vec rot_start;
Vec rot_end;
Vec target_start;
Vec target_end;
} BoardFocusData;
typedef struct board_camera_data {
struct {
u8 hide_all : 1;
u8 moving : 1;
u8 quaking : 1;
};
u16 mask;
s16 target_mdl;
s16 target_space;
s32 quake_timer;
float quake_strength;
float fov;
float near;
float far;
float aspect;
float viewport_x;
float viewport_y;
float viewport_w;
float viewport_h;
float viewport_near;
float viewport_far;
Vec pos;
Vec up;
Vec target;
Vec offset;
Vec rot;
float zoom;
void (*pos_calc)(struct board_camera_data *);
BoardFocusData focus;
struct {
u8 hide_all : 1;
u8 moving : 1;
u8 quaking : 1;
};
u16 mask;
s16 target_mdl;
s16 target_space;
s32 quake_timer;
float quake_strength;
float fov;
float nnear;
float ffar;
float aspect;
float viewport_x;
float viewport_y;
float viewport_w;
float viewport_h;
float viewport_near;
float viewport_far;
Vec pos;
Vec up;
Vec target;
Vec offset;
Vec rot;
float zoom;
void (*pos_calc)(struct board_camera_data *);
BoardFocusData focus;
} BoardCameraData;
extern BoardCameraData boardCamera;
@ -123,8 +124,8 @@ void BoardCameraPosSet(float x, float y, float z);
void BoardCameraXRotZoomSet(float zoom, float x_rot);
void BoardCameraZoomSet(float zoom);
void BoardCameraRotSet(float x, float y);
void BoardCameraNearFarSet(float near, float far);
void BoardCameraNearFarGet(float *near, float *far);
void BoardCameraNearFarSet(float nnear, float ffar);
void BoardCameraNearFarGet(float *nnear, float *ffar);
void BoardCameraMotionStart(s16 model_target, Vec *rot_target, float zoom_target, float fov_target);
void BoardCameraMotionStartEx(s16 model_target, Vec *rot_target, Vec *offset_end, float zoom_target, float fov_target, s16 max_time);
void BoardCameraFovSet(float fov);
@ -166,4 +167,4 @@ void BoardTauntKill(void);
s32 BoardDataDirReadAsync(s32 data_num);
void BoardDataAsyncWait(s32 status);
#endif
#endif

View file

@ -19,7 +19,7 @@ typedef struct hsfdraw_struct_01 {
/* 0x1C */ float unk1C;
/* 0x20 */ float unk20;
/* 0x24 */ float unk24;
/* 0x28 */ float unk28;
/* 0x28 */ float unk28;
/* 0x2C */ float unk2C;
/* 0x30 */ float unk30;
/* 0x34 */ float unk34;

View file

@ -285,8 +285,8 @@ typedef struct hsf_camera {
HsfVector3f pos;
float aspect_dupe;
float fov;
float near;
float far;
float nnear;
float ffar;
} HsfCamera;
typedef struct hsf_light {

View file

@ -140,8 +140,8 @@ struct model_data {
}; // sizeof 0x124
typedef struct camera_data {
float fov;
float near;
float far;
float nnear;
float ffar;
float aspect;
float aspect_dupe;
Vec pos;

View file

@ -16,6 +16,7 @@
#include "game/wipe.h"
#include "math.h"
#include "port/byteswap.h"
#include "data_num/title.h"
@ -290,10 +291,7 @@ void ObjectSetup(void)
HuTHPClose();
#endif
HuPrcVSleep();
#ifdef __MWERKS__
// TODO PC
HuSprGrpKill(group_thp);
#endif
if (!skip_wait) {
HuPrcSleep(60);
}

View file

@ -43,7 +43,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];

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);

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

@ -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);

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

@ -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

@ -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

@ -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

@ -1,5 +1,7 @@
#include "REL/modeseldll.h"
#include "ext_math.h"
#include "game/audio.h"
#include "game/esprite.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/object.h"
@ -8,7 +10,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;

View file

@ -1016,21 +1016,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 +1137,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 +1187,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

@ -817,7 +817,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);

View file

@ -13,6 +13,10 @@
#include "ext_math.h"
#ifndef __MWERKS__
#include "game/frand.h"
#endif
typedef struct {
/* 0x00 */ s16 unk00;
/* 0x02 */ s16 unk02;

File diff suppressed because it is too large Load diff

View file

@ -14,9 +14,12 @@
#include "dolphin/gx/GXVert.h"
#include "math.h"
#include "ext_math.h"
#ifndef __MWERKS__
#include "string.h"
#endif
#define SHADOW_HEAP_SIZE 0x9000
ModelData Hu3DData[HU3D_MODEL_MAX];
@ -178,7 +181,7 @@ void Hu3DExec(void) {
HuSprExec(0x7F);
}
if (FogData.fogType != GX_FOG_NONE) {
GXSetFog(FogData.fogType, FogData.start, FogData.end, camera->near, camera->far, FogData.color);
GXSetFog(FogData.fogType, FogData.start, FogData.end, camera->nnear, camera->ffar, FogData.color);
}
for (j = 0; j < 8; j++) {
if (layerHook[j] != 0) {
@ -1121,7 +1124,7 @@ void Hu3DCameraCreate(s32 cam) {
}
}
void Hu3DCameraPerspectiveSet(s32 cam, f32 fov, f32 near, f32 far, f32 aspect) {
void Hu3DCameraPerspectiveSet(s32 cam, f32 fov, f32 nnear, f32 ffar, f32 aspect) {
s16 mask;
s16 i;
CameraData* cam_ptr;
@ -1130,8 +1133,8 @@ void Hu3DCameraPerspectiveSet(s32 cam, f32 fov, f32 near, f32 far, f32 aspect) {
if ((cam & mask) != 0) {
cam_ptr = &Hu3DCamera[i];
cam_ptr->fov = fov;
cam_ptr->near = near;
cam_ptr->far = far;
cam_ptr->nnear = nnear;
cam_ptr->ffar = ffar;
cam_ptr->aspect = aspect;
}
}
@ -1248,7 +1251,7 @@ void Hu3DCameraSet(s32 arg0, Mtx arg1) {
CameraData* temp_r31;
temp_r31 = &Hu3DCamera[arg0];
C_MTXPerspective(sp10, temp_r31->fov, temp_r31->aspect, temp_r31->near, temp_r31->far);
C_MTXPerspective(sp10, temp_r31->fov, temp_r31->aspect, temp_r31->nnear, temp_r31->ffar);
GXSetProjection(sp10, GX_PERSPECTIVE);
if (RenderMode->field_rendering != 0) {
GXSetViewportJitter(temp_r31->viewport_x, temp_r31->viewport_y, temp_r31->viewport_w, temp_r31->viewport_h, temp_r31->near_z, temp_r31->far_z, VIGetNextField());
@ -1299,7 +1302,7 @@ BOOL Hu3DModelCameraInfoSet(s16 arg0, u16 arg1) {
sp8.x, sp8.y, sp8.z,
obj_copy->camera.pos.x, obj_copy->camera.pos.y, obj_copy->camera.pos.z);
Hu3DCameraPerspectiveSet(arg1, obj_copy->camera.fov, obj_copy->camera.near, obj_copy->camera.far, HU_DISP_ASPECT);
Hu3DCameraPerspectiveSet(arg1, obj_copy->camera.fov, obj_copy->camera.nnear, obj_copy->camera.ffar, HU_DISP_ASPECT);
temp_r28->unk_01 = arg1;
temp_r24 = &Hu3DData[arg0];

View file

@ -1,9 +1,11 @@
#include "game/mapspace.h"
#include "game/hsfman.h"
#include "math.h"
#include <ext_math.h>
#ifdef __MWERKS__
extern void HuSetVecF(Vec*, double, double, double);
#endif
static BOOL PolygonRangeCheck(HsfMapAttr *arg0, float arg1, float arg2, float *arg3, float arg4);
static s32 DefIfnnerMapCircle(Vec *arg0, s16 *arg1, Vec *arg2, Vec *arg3);

View file

@ -5,6 +5,7 @@
#include <types.h>
#include <game/dvd.h>
#include <game/msm.h>
#include <game/object.h>
// Credits: Super Monkey Ball
@ -196,6 +197,16 @@ s32 CARDWriteAsync(CARDFileInfo *fileInfo, const void *addr, s32 length, s32 off
return 0;
}
s32 CARDGetSerialNo(s32 chan, u64* serialNo)
{
return 0;
}
s32 CARDSetStatus(s32 chan, s32 fileNo, CARDStat* stat)
{
return 0;
}
void DCFlushRange(void *addr, u32 nBytes)
{
//puts("DCFlushRange is a stub");
@ -647,16 +658,39 @@ void msmMusFdoutEnd(void)
{
}
int msmMusPlay(int musId, MSM_MUSPARAM *musParam)
{
// TODO
return 0;
}
s32 msmMusGetStatus(int musNo)
{
// TODO
return 0;
}
s32 msmStreamGetStatus(int streamNo)
{
// TODO
return 0;
}
s32 msmSeSetParam(int seNo, MSM_SEPARAM* param)
{
return 0;
}
s32 msmMusSetParam(s32 arg0, MSM_MUSPARAM* arg1)
{
return 0;
}
s32 HuSoftResetButtonCheck(void)
{
//puts("HuSoftResetButtonCheck is a stub");
return 0;
}
void MGSeqMain(void)
{
// puts("MGSeqMain is a stub");
}
// TODO remove
u8 fadeStat = 0;