Build all RELs

This commit is contained in:
dbalatoni13 2025-04-14 15:57:29 +02:00
parent 5917ea8509
commit 9bb5c8d50a
64 changed files with 1280 additions and 1017 deletions

View file

@ -37,6 +37,7 @@ set(DOLPHIN_FILES
src/dolphin/mtx/mtx.c src/dolphin/mtx/mtx.c
src/dolphin/mtx/mtx44.c src/dolphin/mtx/mtx44.c
src/dolphin/mtx/vec.c src/dolphin/mtx/vec.c
src/dolphin/mtx/quat.c
src/dolphin/os/OSAlloc.c src/dolphin/os/OSAlloc.c
src/dolphin/os/OSArena.c src/dolphin/os/OSArena.c
src/dolphin/os/OSStopwatch.c src/dolphin/os/OSStopwatch.c
@ -168,27 +169,31 @@ target_include_directories(marioparty4 PRIVATE include)
target_link_libraries(marioparty4 PRIVATE dol aurora::main) target_link_libraries(marioparty4 PRIVATE dol aurora::main)
file(GLOB REL_DIRS RELATIVE ${CMAKE_SOURCE_DIR}/src/REL ${CMAKE_SOURCE_DIR}/src/REL/*) file(GLOB REL_DIRS RELATIVE ${CMAKE_SOURCE_DIR}/src/REL ${CMAKE_SOURCE_DIR}/src/REL/*)
set(EXCLUDED_RELS "nisDll" "safDll")
foreach (dir ${REL_DIRS}) foreach (dir ${REL_DIRS})
if (IS_DIRECTORY ${CMAKE_SOURCE_DIR}/src/REL/${dir}) if (IS_DIRECTORY ${CMAKE_SOURCE_DIR}/src/REL/${dir})
if (dir IN_LIST EXCLUDED_RELS)
continue()
endif()
file(GLOB_RECURSE REL_FILES src/REL/${dir}/*.c) file(GLOB_RECURSE REL_FILES src/REL/${dir}/*.c)
if (REL_FILES) if (REL_FILES)
add_library(${dir} SHARED ${REL_FILES}) add_library(${dir} SHARED ${REL_FILES})
if (dir MATCHES "^w..Dll")
target_sources(${dir} PRIVATE src/REL/board_executor.c)
endif()
target_compile_definitions(${dir} PRIVATE TARGET_PC NON_MATCHING VERSION=${VERSION}) target_compile_definitions(${dir} PRIVATE TARGET_PC NON_MATCHING VERSION=${VERSION})
target_include_directories(${dir} PRIVATE include build/GMPE01_00/include) target_include_directories(${dir} PRIVATE include build/GMPE01_00/include)
if (MSVC) if (MSVC)
set_target_properties(${dir} PROPERTIES LINK_FLAGS "/EXPORT:ObjectSetup") set_target_properties(${dir} PROPERTIES LINK_FLAGS "/EXPORT:ObjectSetup")
else () elseif (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
endif ()
if (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
target_compile_options(${dir} PRIVATE "-fvisibility=hidden") target_compile_options(${dir} PRIVATE "-fvisibility=hidden")
target_link_options(${dir} PRIVATE "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/rel.map") target_link_options(${dir} PRIVATE "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/rel.map")
set_target_properties(${dir} PROPERTIES PREFIX "") set_target_properties(${dir} PROPERTIES PREFIX "")
endif () endif ()
target_link_libraries(${dir} PRIVATE dol musyx) target_link_libraries(${dir} PRIVATE dol musyx)
add_dependencies(marioparty4 ${dir})
endif () endif ()
endif () endif ()
endforeach () endforeach ()
add_dependencies(marioparty4 bootDll modeseldll)

View file

@ -2,7 +2,7 @@ fn_1_0 = .text:0x00000000; // type:function size:0x4C
fn_1_4C = .text:0x0000004C; // type:function size:0x58 fn_1_4C = .text:0x0000004C; // type:function size:0x58
_prolog = .text:0x000000A4; // type:function size:0x54 scope:global _prolog = .text:0x000000A4; // type:function size:0x54 scope:global
_epilog = .text:0x000000F8; // type:function size:0x4C scope:global _epilog = .text:0x000000F8; // type:function size:0x4C scope:global
fn_1_144 = .text:0x00000144; // type:function size:0xC8 ObjectSetup = .text:0x00000144; // type:function size:0xC8
fn_1_20C = .text:0x0000020C; // type:function size:0x28 fn_1_20C = .text:0x0000020C; // type:function size:0x28
fn_1_234 = .text:0x00000234; // type:function size:0x20 fn_1_234 = .text:0x00000234; // type:function size:0x20
fn_1_254 = .text:0x00000254; // type:function size:0xD8 fn_1_254 = .text:0x00000254; // type:function size:0xD8

View file

@ -2,7 +2,7 @@ fn_1_0 = .text:0x00000000; // type:function size:0xEC
fn_1_EC = .text:0x000000EC; // type:function size:0x115C fn_1_EC = .text:0x000000EC; // type:function size:0x115C
_prolog = .text:0x00001248; // type:function size:0x54 scope:global _prolog = .text:0x00001248; // type:function size:0x54 scope:global
_epilog = .text:0x0000129C; // type:function size:0x4C scope:global _epilog = .text:0x0000129C; // type:function size:0x4C scope:global
fn_1_12E8 = .text:0x000012E8; // type:function size:0xB8 ObjectSetup = .text:0x000012E8; // type:function size:0xB8
fn_1_13A0 = .text:0x000013A0; // type:function size:0x68C fn_1_13A0 = .text:0x000013A0; // type:function size:0x68C
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte _ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte

View file

@ -103,7 +103,7 @@ CreateNote = .text:0x00007710; // type:function size:0x190 scope:local
CreateNoteSpawner = .text:0x000078A0; // type:function size:0x60 scope:local CreateNoteSpawner = .text:0x000078A0; // type:function size:0x60 scope:local
KillNoteSpawner = .text:0x00007900; // type:function size:0x3C scope:local KillNoteSpawner = .text:0x00007900; // type:function size:0x3C scope:local
ExecNoteSpawner = .text:0x0000793C; // type:function size:0x5C4 scope:local ExecNoteSpawner = .text:0x0000793C; // type:function size:0x5C4 scope:local
PlaySound = .text:0x00007F00; // type:function size:0x148 scope:local OptionPlaySound = .text:0x00007F00; // type:function size:0x148 scope:local
FadeSound = .text:0x00008048; // type:function size:0x9C scope:local FadeSound = .text:0x00008048; // type:function size:0x9C scope:local
OptionRecordCreate = .text:0x000080E4; // type:function size:0x178 OptionRecordCreate = .text:0x000080E4; // type:function size:0x178
OptionRecordKill = .text:0x0000825C; // type:function size:0x54 OptionRecordKill = .text:0x0000825C; // type:function size:0x54

View file

@ -31,7 +31,7 @@ PresentSelectedIDSet = .text:0x0000186C; // type:function size:0xBC
ExecSelectRoom = .text:0x00001928; // type:function size:0x680 scope:local ExecSelectRoom = .text:0x00001928; // type:function size:0x680 scope:local
ChangeRoom = .text:0x00001FA8; // type:function size:0x140 scope:local ChangeRoom = .text:0x00001FA8; // type:function size:0x140 scope:local
ExecSelectPresent = .text:0x000020E8; // type:function size:0x5A4 scope:local ExecSelectPresent = .text:0x000020E8; // type:function size:0x5A4 scope:local
GetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local PresentGetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local
SetCameraRot = .text:0x00002708; // type:function size:0x6C scope:local SetCameraRot = .text:0x00002708; // type:function size:0x6C scope:local
RotateCamera = .text:0x00002774; // type:function size:0x17C scope:local RotateCamera = .text:0x00002774; // type:function size:0x17C scope:local
CameraRotationDoneCheck = .text:0x000028F0; // type:function size:0x34 scope:local CameraRotationDoneCheck = .text:0x000028F0; // type:function size:0x34 scope:local

View file

@ -2,7 +2,7 @@ fn_1_0 = .text:0x00000000; // type:function size:0x4C
fn_1_4C = .text:0x0000004C; // type:function size:0x58 fn_1_4C = .text:0x0000004C; // type:function size:0x58
_prolog = .text:0x000000A4; // type:function size:0x54 scope:global _prolog = .text:0x000000A4; // type:function size:0x54 scope:global
_epilog = .text:0x000000F8; // type:function size:0x4C scope:global _epilog = .text:0x000000F8; // type:function size:0x4C scope:global
fn_1_144 = .text:0x00000144; // type:function size:0xC8 ObjectSetup = .text:0x00000144; // type:function size:0xC8
fn_1_20C = .text:0x0000020C; // type:function size:0x28 fn_1_20C = .text:0x0000020C; // type:function size:0x28
fn_1_234 = .text:0x00000234; // type:function size:0x20 fn_1_234 = .text:0x00000234; // type:function size:0x20
fn_1_254 = .text:0x00000254; // type:function size:0xD8 fn_1_254 = .text:0x00000254; // type:function size:0xD8

View file

@ -2,7 +2,7 @@ fn_1_0 = .text:0x00000000; // type:function size:0xEC
fn_1_EC = .text:0x000000EC; // type:function size:0x115C fn_1_EC = .text:0x000000EC; // type:function size:0x115C
_prolog = .text:0x00001248; // type:function size:0x54 scope:global _prolog = .text:0x00001248; // type:function size:0x54 scope:global
_epilog = .text:0x0000129C; // type:function size:0x4C scope:global _epilog = .text:0x0000129C; // type:function size:0x4C scope:global
fn_1_12E8 = .text:0x000012E8; // type:function size:0xB8 ObjectSetup = .text:0x000012E8; // type:function size:0xB8
fn_1_13A0 = .text:0x000013A0; // type:function size:0x68C fn_1_13A0 = .text:0x000013A0; // type:function size:0x68C
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte _ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte

View file

@ -2,7 +2,7 @@ fn_1_0 = .text:0x00000000; // type:function size:0x4C
fn_1_4C = .text:0x0000004C; // type:function size:0x58 fn_1_4C = .text:0x0000004C; // type:function size:0x58
_prolog = .text:0x000000A4; // type:function size:0x54 scope:global _prolog = .text:0x000000A4; // type:function size:0x54 scope:global
_epilog = .text:0x000000F8; // type:function size:0x4C scope:global _epilog = .text:0x000000F8; // type:function size:0x4C scope:global
fn_1_144 = .text:0x00000144; // type:function size:0xC8 ObjectSetup = .text:0x00000144; // type:function size:0xC8
fn_1_20C = .text:0x0000020C; // type:function size:0x28 fn_1_20C = .text:0x0000020C; // type:function size:0x28
fn_1_234 = .text:0x00000234; // type:function size:0x20 fn_1_234 = .text:0x00000234; // type:function size:0x20
fn_1_254 = .text:0x00000254; // type:function size:0xD8 fn_1_254 = .text:0x00000254; // type:function size:0xD8

View file

@ -103,7 +103,7 @@ CreateNote = .text:0x00007710; // type:function size:0x190 scope:local
CreateNoteSpawner = .text:0x000078A0; // type:function size:0x60 scope:local CreateNoteSpawner = .text:0x000078A0; // type:function size:0x60 scope:local
KillNoteSpawner = .text:0x00007900; // type:function size:0x3C scope:local KillNoteSpawner = .text:0x00007900; // type:function size:0x3C scope:local
ExecNoteSpawner = .text:0x0000793C; // type:function size:0x5C4 scope:local ExecNoteSpawner = .text:0x0000793C; // type:function size:0x5C4 scope:local
PlaySound = .text:0x00007F00; // type:function size:0x148 scope:local OptionPlaySound = .text:0x00007F00; // type:function size:0x148 scope:local
FadeSound = .text:0x00008048; // type:function size:0x9C scope:local FadeSound = .text:0x00008048; // type:function size:0x9C scope:local
OptionRecordCreate = .text:0x000080E4; // type:function size:0x178 OptionRecordCreate = .text:0x000080E4; // type:function size:0x178
OptionRecordKill = .text:0x0000825C; // type:function size:0x54 OptionRecordKill = .text:0x0000825C; // type:function size:0x54

View file

@ -31,7 +31,7 @@ PresentSelectedIDSet = .text:0x0000186C; // type:function size:0xBC
ExecSelectRoom = .text:0x00001928; // type:function size:0x680 scope:local ExecSelectRoom = .text:0x00001928; // type:function size:0x680 scope:local
ChangeRoom = .text:0x00001FA8; // type:function size:0x140 scope:local ChangeRoom = .text:0x00001FA8; // type:function size:0x140 scope:local
ExecSelectPresent = .text:0x000020E8; // type:function size:0x5A4 scope:local ExecSelectPresent = .text:0x000020E8; // type:function size:0x5A4 scope:local
GetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local PresentGetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local
SetCameraRot = .text:0x00002708; // type:function size:0x6C scope:local SetCameraRot = .text:0x00002708; // type:function size:0x6C scope:local
RotateCamera = .text:0x00002774; // type:function size:0x17C scope:local RotateCamera = .text:0x00002774; // type:function size:0x17C scope:local
CameraRotationDoneCheck = .text:0x000028F0; // type:function size:0x34 scope:local CameraRotationDoneCheck = .text:0x000028F0; // type:function size:0x34 scope:local

1888
dol.def

File diff suppressed because it is too large Load diff

View file

@ -3,7 +3,7 @@
#include "game/hsfman.h" #include "game/hsfman.h"
#include "game/object.h" #include "game/object.h"
extern u8 texMtxTbl[]; SHARED_SYM extern u8 texMtxTbl[];
#define FABS(x) ((x < 0.0f) ? -(x) : (x)) #define FABS(x) ((x < 0.0f) ? -(x) : (x))

View file

@ -29,9 +29,6 @@ typedef struct {
HsfObject *obj; // 0030 HsfObject *obj; // 0030
} HuObjUnk; } HuObjUnk;
extern Vec CRot;
extern Vec Center;
extern float CZoom;
void fn_1_29C(); void fn_1_29C();
void fn_1_28F8(Vec *arg0, Vec *arg1); void fn_1_28F8(Vec *arg0, Vec *arg1);
void fn_1_37DC(omObjData *); void fn_1_37DC(omObjData *);

View file

@ -26,7 +26,7 @@ typedef struct tutorial_scene {
TutorialSceneFunc func; TutorialSceneFunc func;
} TutorialScene; } TutorialScene;
extern s32 boardTutorialData[4]; SHARED_SYM extern s32 boardTutorialData[4];
void HostPosSet(s16); void HostPosSet(s16);
void fn_1_1FB0(void); void fn_1_1FB0(void);

View file

@ -65,9 +65,9 @@ typedef struct board_camera_data {
} BoardCameraData; } BoardCameraData;
extern BoardCameraData boardCamera; extern BoardCameraData boardCamera;
extern Process *boardObjMan; SHARED_SYM extern Process *boardObjMan;
extern Process *boardMainProc; SHARED_SYM extern Process *boardMainProc;
extern u32 boardRandSeed; SHARED_SYM extern u32 boardRandSeed;
extern omObjData *boardMainObj; extern omObjData *boardMainObj;
typedef void (*BoardFunc)(void); typedef void (*BoardFunc)(void);
@ -79,11 +79,11 @@ typedef void (*BoardCameraPosCalcFunc)(BoardCameraData *camera);
typedef void (*BoardTurnStartHook)(s32 player, s32 space); typedef void (*BoardTurnStartHook)(s32 player, s32 space);
extern BoardTurnStartHook boardTurnStartFunc; SHARED_SYM extern BoardTurnStartHook boardTurnStartFunc;
extern void (*boardStarShowNextHook)(void); SHARED_SYM extern void (*boardStarShowNextHook)(void);
extern void (*boardStarGiveHook)(void); SHARED_SYM extern void (*boardStarGiveHook)(void);
extern BoardBowserHook boardBowserHook; SHARED_SYM extern BoardBowserHook boardBowserHook;
extern BoardFunc boardTurnFunc; SHARED_SYM extern BoardFunc boardTurnFunc;
extern BoardLightHook boardLightResetHook; extern BoardLightHook boardLightResetHook;
extern BoardLightHook boardLightSetHook; extern BoardLightHook boardLightSetHook;

View file

@ -13,7 +13,7 @@
#include "game/board/space.h" #include "game/board/space.h"
#include "game/board/ui.h" #include "game/board/ui.h"
extern s16 boardPlayerMdl[4]; SHARED_SYM extern s16 boardPlayerMdl[4];
static inline s32 BoardPlayerHandicapGet(s32 player) static inline s32 BoardPlayerHandicapGet(s32 player)
{ {

View file

@ -2,6 +2,7 @@
#define _BOARD_TUTORIAL_H #define _BOARD_TUTORIAL_H
#include "dolphin/types.h" #include "dolphin/types.h"
#include "version.h"
void BoardTutorialInit(void); void BoardTutorialInit(void);
void BoardTutorialKill(void); void BoardTutorialKill(void);
@ -16,7 +17,7 @@ void BoardTutorialItemSet(s8 arg0);
void BoardTutorialHostSet(s16 arg0); void BoardTutorialHostSet(s16 arg0);
void BoardTutorialHostHide(s8 arg0); void BoardTutorialHostHide(s8 arg0);
extern s32 boardTutorialData[4]; SHARED_SYM extern s32 boardTutorialData[4];
extern s8 boardTutorialDirInputX; extern s8 boardTutorialDirInputX;
extern s8 boardTutorialDirInputY; extern s8 boardTutorialDirInputY;
extern s16 boardTutorialDirInputTime; extern s16 boardTutorialDirInputTime;
@ -24,6 +25,6 @@ extern s32 boardTutorialBlockPos;
extern s8 boardTutorialBlockItem; extern s8 boardTutorialBlockItem;
extern s8 boardTutorialBlockF; extern s8 boardTutorialBlockF;
extern s8 boardTutorialUseItem; extern s8 boardTutorialUseItem;
extern s8 boardTutorialF; SHARED_SYM extern s8 boardTutorialF;
#endif #endif

View file

@ -4,6 +4,7 @@
#include "game/hsfformat.h" #include "game/hsfformat.h"
#include "game/hsfman.h" #include "game/hsfman.h"
#include "game/animdata.h" #include "game/animdata.h"
#include "version.h"
typedef struct model_data ModelData; typedef struct model_data ModelData;
typedef struct particle_data ParticleData; typedef struct particle_data ParticleData;
@ -138,7 +139,7 @@ void Hu3DParManTimeLimitSet(s16 arg0, s32 arg1);
void Hu3DParManVacumeSet(s16 arg0, float arg1, float arg2, float arg3, float arg4); void Hu3DParManVacumeSet(s16 arg0, float arg1, float arg2, float arg3, float arg4);
void Hu3DParManColorSet(s16 arg0, s16 arg1); void Hu3DParManColorSet(s16 arg0, s16 arg1);
extern Hu3DTexAnimDataStruct Hu3DTexAnimData[256]; SHARED_SYM extern Hu3DTexAnimDataStruct Hu3DTexAnimData[256];
extern Hu3DTexScrDataStruct Hu3DTexScrData[16]; SHARED_SYM extern Hu3DTexScrDataStruct Hu3DTexScrData[16];
#endif #endif

View file

@ -309,12 +309,12 @@ SHARED_SYM extern Mtx Hu3DCameraMtxXPose;
SHARED_SYM extern LightData Hu3DGlobalLight[0x8]; SHARED_SYM extern LightData Hu3DGlobalLight[0x8];
extern s16 reflectMapNo; extern s16 reflectMapNo;
extern AnimData *toonAnim; extern AnimData *toonAnim;
extern s16 Hu3DShadowCamBit; SHARED_SYM extern s16 Hu3DShadowCamBit;
extern s32 Hu3DShadowF; SHARED_SYM extern s32 Hu3DShadowF;
extern s32 shadowModelDrawF; SHARED_SYM extern s32 shadowModelDrawF;
extern s16 Hu3DCameraNo; SHARED_SYM extern s16 Hu3DCameraNo;
extern s16 Hu3DCameraBit; extern s16 Hu3DCameraBit;
extern s16 Hu3DPauseF; extern s16 Hu3DPauseF;
extern GXColor BGColor; SHARED_SYM extern GXColor BGColor;
#endif #endif

View file

@ -4,7 +4,7 @@
#include "dolphin.h" #include "dolphin.h"
#include "version.h" #include "version.h"
extern GXRenderModeObj *RenderMode; SHARED_SYM extern GXRenderModeObj *RenderMode;
extern OSHeapHandle currentHeapHandle; extern OSHeapHandle currentHeapHandle;
extern void *DemoFrameBuffer1; extern void *DemoFrameBuffer1;

View file

@ -16,11 +16,11 @@ void CharRotInv(Mtx arg0, Mtx arg1, Vec *arg2, omObjData *arg3);
extern Mtx MapMT; extern Mtx MapMT;
extern Mtx MapMTR; extern Mtx MapMTR;
extern float AddX; SHARED_SYM extern float AddX;
extern float AddZ; SHARED_SYM extern float AddZ;
extern s32 nMap; SHARED_SYM extern s32 nMap;
extern s32 nChar; SHARED_SYM extern s32 nChar;
extern s32 HitFaceCount; extern s32 HitFaceCount;
extern omObjData *MapObject[16]; SHARED_SYM extern omObjData *MapObject[16];
#endif #endif

View file

@ -117,6 +117,6 @@ s32 MGSeqUpdateRecord(SeqWork *work);
s32 MGSeqInitFlip(SeqWork *work, va_list params); s32 MGSeqInitFlip(SeqWork *work, va_list params);
s32 MGSeqUpdateFlip(SeqWork *work); s32 MGSeqUpdateFlip(SeqWork *work);
extern OverlayID mgSeqOvlPrev; SHARED_SYM extern OverlayID mgSeqOvlPrev;
#endif #endif

View file

@ -23,19 +23,19 @@ void omGameSysInit(Process *objman);
void omVibrate(s16 player_cfg_index, s16 duration, s16 off, s16 on); void omVibrate(s16 player_cfg_index, s16 duration, s16 off, s16 on);
extern s16 mgTypeCurr; SHARED_SYM extern s16 mgTypeCurr;
extern s16 mgBattleStar[4]; SHARED_SYM extern s16 mgBattleStar[4];
extern s16 mgBattleStarMax; SHARED_SYM extern s16 mgBattleStarMax;
extern u8 lbl_801D3E94; SHARED_SYM extern u8 lbl_801D3E94;
extern u32 mgRecordExtra; SHARED_SYM extern u32 mgRecordExtra;
SHARED_SYM extern s32 mgQuitExtraF; SHARED_SYM extern s32 mgQuitExtraF;
SHARED_SYM extern s32 mgPracticeEnableF; SHARED_SYM extern s32 mgPracticeEnableF;
SHARED_SYM extern s32 mgInstExitEnableF; SHARED_SYM extern s32 mgInstExitEnableF;
SHARED_SYM extern u8 mgBoardHostEnableF; SHARED_SYM extern u8 mgBoardHostEnableF;
extern s16 mgTicTacToeGrid[3][3]; SHARED_SYM extern s16 mgTicTacToeGrid[3][3];
extern u8 mgIndexList[256]; SHARED_SYM extern u8 mgIndexList[256];
extern GameStat mgGameStatBackup; SHARED_SYM extern GameStat mgGameStatBackup;
SHARED_SYM extern MgInfo mgInfoTbl[]; SHARED_SYM extern MgInfo mgInfoTbl[];

View file

@ -28,7 +28,7 @@ SHARED_SYM extern char *SaveFileNameTbl[];
SHARED_SYM extern CARDFileInfo curFileInfo; SHARED_SYM extern CARDFileInfo curFileInfo;
SHARED_SYM extern SaveBufAll saveBuf; SHARED_SYM extern SaveBufAll saveBuf;
extern u64 SLSerialNo; extern u64 SLSerialNo;
extern s32 saveExecF; SHARED_SYM extern s32 saveExecF;
extern u8 curBoxNo; extern u8 curBoxNo;
SHARED_SYM extern s16 curSlotNo; SHARED_SYM extern s16 curSlotNo;

View file

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

View file

@ -226,7 +226,7 @@ void fn_1_D488(float arg8, Vec *arg0, Vec *arg1, Vec *arg2);
void fn_1_D518(Mtx arg0, Vec *arg1); void fn_1_D518(Mtx arg0, Vec *arg1);
float fn_1_D5CC(Vec *arg0, Vec *arg1, float arg8, float arg9); 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] = { Vec lbl_1_data_F0[0x46] = {
{ -495.876f, 50.005f, -0.0f }, { -495.876f, 50.005f, -0.0f },

View file

@ -1150,7 +1150,7 @@ void fn_1_10830(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3)
GXSetTevColor(reg, color_var); \ GXSetTevColor(reg, color_var); \
} }
extern u32 texMtxTbl[]; SHARED_SYM extern u32 texMtxTbl[];
void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial *arg1) void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial *arg1)
{ {

View file

@ -47,7 +47,7 @@ void fn_1_C0C0(void)
Hu3DModelKill(lbl_1_bss_F0.unk4); Hu3DModelKill(lbl_1_bss_F0.unk4);
} }
extern u8 texMtxTbl[]; SHARED_SYM extern u8 texMtxTbl[];
void fn_1_C164(unkStruct8 *arg0) void fn_1_C164(unkStruct8 *arg0)
{ {

View file

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

View file

@ -19,7 +19,7 @@
#define frand7() (frand() & 0x7F) #define frand7() (frand() & 0x7F)
extern u32 GlobalCounter; SHARED_SYM extern u32 GlobalCounter;
typedef struct { typedef struct {
/* 0x00 */ s32 unk00; /* 0x00 */ s32 unk00;

View file

@ -27,7 +27,7 @@
#include "REL/m425Dll.h" #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 { typedef struct M425DllWork {
u8 unk_00; u8 unk_00;

View file

@ -26,7 +26,7 @@
#include "REL/m425Dll.h" #include "REL/m425Dll.h"
extern u32 GlobalCounter; SHARED_SYM extern u32 GlobalCounter;
SHARED_SYM extern LightData Hu3DLocalLight[0x20]; SHARED_SYM extern LightData Hu3DLocalLight[0x20];
typedef struct M425DllUnkStruct4 { typedef struct M425DllUnkStruct4 {

View file

@ -265,7 +265,7 @@ void fn_1_DB8(omObjData *object);
void fn_1_E18(omObjData *object); void fn_1_E18(omObjData *object);
void fn_1_EB8(void); void fn_1_EB8(void);
extern u32 GlobalCounter; SHARED_SYM extern u32 GlobalCounter;
Vec lbl_1_data_0[4] = { Vec lbl_1_data_0[4] = {
{ -600.0f, 0.0f, -285.0f }, { -600.0f, 0.0f, -285.0f },

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_F538(Vec *arg0, Vec *arg1, Vec *arg2, float arg8);
s32 fn_1_FB8C(Vec *arg0, Vec *arg1, float arg8, s32 arg2, s32 arg3); 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] = { Vec lbl_1_data_150[4] = {
{ -140.0f, -400.0f, 0.0f }, { -140.0f, -400.0f, 0.0f },

View file

@ -6,7 +6,7 @@
#include <ext_math.h> #include <ext_math.h>
extern u8 texMtxTbl[]; SHARED_SYM extern u8 texMtxTbl[];
// PROTO // PROTO
void fn_1_E790(M438UnkStruct2 *); void fn_1_E790(M438UnkStruct2 *);

View file

@ -29,18 +29,8 @@ s32 lbl_1_data_0[][4] = {
s32 lbl_1_data_70 = -1; 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_144(void);
void fn_1_2318(s32); void fn_1_2318(s32);
typedef void (*VoidFunc)(void);
extern const VoidFunc _ctors[];
extern const VoidFunc _dtors[];
void fn_1_0(omObjData *arg0) void fn_1_0(omObjData *arg0)
{ {
@ -58,27 +48,11 @@ void fn_1_4C(omObjData *object)
} }
} }
s32 _prolog(void) #ifdef __MWERKS__
{ #include "src/REL/executor.c"
const VoidFunc *ctors = _ctors; #endif
while (*ctors != 0) {
(**ctors)();
ctors++;
}
fn_1_144();
return 0;
}
void _epilog(void) void ObjectSetup(void)
{
const VoidFunc *dtors = _dtors;
while (*dtors != 0) {
(**dtors)();
dtors++;
}
}
void fn_1_144(void)
{ {
_ClearFlag(0x1000BU); _ClearFlag(0x1000BU);
boardTutorialF = 0; boardTutorialF = 0;

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 sp3C;
Vec sp30; 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; s16 var_r31;
f32 temp_f30; f32 temp_f30;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -16,10 +16,13 @@
#include "game/wipe.h" #include "game/wipe.h"
#include "math.h" #include "math.h"
#ifdef __MWERKS__
// MSM Definitions // MSM Definitions
static s8 *msmSeGetIndexPtr(s16 datano); static s8 *msmSeGetIndexPtr(s16 datano);
static void msmMusSetMasterVolume(s32 value); static void msmMusSetMasterVolume(s32 value);
#else
#include "game/msm.h"
#endif
#define SM_PAGE_MAX 7 #define SM_PAGE_MAX 7
#define SM_PAGE_SIZE 10 #define SM_PAGE_SIZE 10

View file

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

View file

@ -12,7 +12,6 @@ typedef struct w03UnkWorkStruct {
extern w03State* lbl_1_bss_0; extern w03State* lbl_1_bss_0;
omObjData* lbl_1_bss_138[2]; omObjData* lbl_1_bss_138[2];
extern Process *boardObjMan;
extern s16 lbl_1_data_1E0; extern s16 lbl_1_data_1E0;
void fn_1_79E0(omObjData* arg0); 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/data.h"
#include "game/hsfman.h" #include "game/hsfman.h"
#include "game/board/lottery.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/char_wheel.h"
#include "game/board/lottery.h" #include "game/board/lottery.h"
#include "game/board/main.h" #include "game/board/main.h"

View file

@ -14,6 +14,7 @@ void C_QUATAdd(const Quaternion *p, const Quaternion *q, Qtrn *r)
r->w = p->w + q->w; r->w = p->w + q->w;
} }
#ifdef GEKKO
void PSQUATAdd(register const Quaternion *p, register const Quaternion *q, register Quaternion *r) void PSQUATAdd(register const Quaternion *p, register const Quaternion *q, register Quaternion *r)
{ {
asm { asm {
@ -27,7 +28,16 @@ void PSQUATAdd(register const Quaternion *p, register const Quaternion *q, regis
psq_st f0, 0x8(r5), 0, 0 psq_st f0, 0x8(r5), 0, 0
} }
} }
#endif
#ifdef TARGET_PC
void C_QUATMultiply(const Quaternion *a, const Quaternion *b, Quaternion *ab)
{
// TODO PC
}
#endif
#ifdef GEKKO
void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, register Quaternion *ab) void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, register Quaternion *ab)
{ {
asm { asm {
@ -55,7 +65,16 @@ void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b,
psq_st f5, 8(ab), 0, 0 psq_st f5, 8(ab), 0, 0
} }
} }
#endif
#ifdef TARGET_PC
void C_QUATNormalize(register Quaternion *src, Quaternion *unit)
{
// TODO PC
}
#endif
#ifdef GEKKO
void PSQUATNormalize(const register Quaternion *src, register Quaternion *unit) void PSQUATNormalize(const register Quaternion *src, register Quaternion *unit)
{ {
// sdata2 // sdata2
@ -95,7 +114,16 @@ void PSQUATNormalize(const register Quaternion *src, register Quaternion *unit)
} }
} }
} }
#endif
#ifdef TARGET_PC
void C_QUATInverse(const Quaternion *src, Quaternion *inv)
{
// TODO PC
}
#endif
#ifdef GEKKO
void PSQUATInverse(const register Quaternion *src, register Quaternion *inv) void PSQUATInverse(const register Quaternion *src, register Quaternion *inv)
{ {
register f32 vv1, vv2, vv3, vv4; register f32 vv1, vv2, vv3, vv4;
@ -126,6 +154,7 @@ void PSQUATInverse(const register Quaternion *src, register Quaternion *inv)
psq_st vv3, 8(inv), 1, 0; psq_st vv3, 8(inv), 1, 0;
} }
} }
#endif
void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad) void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad)
{ {
@ -133,7 +162,7 @@ void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad)
Vec dst; Vec dst;
tmp = rad; tmp = rad;
PSVECNormalize(axis, &dst); VECNormalize(axis, &dst);
tmp2 = tmp * 0.5f; tmp2 = tmp * 0.5f;
tmp3 = sinf(tmp * 0.5f); tmp3 = sinf(tmp * 0.5f);

View file

@ -46,11 +46,11 @@ u32 boardRandSeed;
static omObjData *last5GfxObj; static omObjData *last5GfxObj;
static omObjData *confettiObj; static omObjData *confettiObj;
static omObjData *filterObj; static omObjData *filterObj;
BoardTurnStartHook boardTurnStartFunc; SHARED_SYM BoardTurnStartHook boardTurnStartFunc;
BoardBowserHook boardBowserHook; SHARED_SYM BoardBowserHook boardBowserHook;
void (*boardStarShowNextHook)(void); SHARED_SYM void (*boardStarShowNextHook)(void);
void (*boardStarGiveHook)(void); SHARED_SYM void (*boardStarGiveHook)(void);
BoardFunc boardTurnFunc; SHARED_SYM BoardFunc boardTurnFunc;
BoardLightHook boardLightResetHook; BoardLightHook boardLightResetHook;
BoardLightHook boardLightSetHook; BoardLightHook boardLightSetHook;
static BoardFunc destroyFunc; static BoardFunc destroyFunc;

View file

@ -17,7 +17,7 @@
#include <game/board/window.h> #include <game/board/window.h>
#include <game/hsfex.h> #include <game/hsfex.h>
extern s32 boardTutorialData[4]; SHARED_SYM extern s32 boardTutorialData[4];
static void KillMushroom(); static void KillMushroom();

View file

@ -69,7 +69,7 @@ static HsfMaterial *playerMatCopy[4];
static s32 (*postTurnHook[4])(); static s32 (*postTurnHook[4])();
static s32 (*preTurnHook[4])(); static s32 (*preTurnHook[4])();
s16 boardPlayerMdl[4]; SHARED_SYM s16 boardPlayerMdl[4];
static s16 playerMot[4]; static s16 playerMot[4];
static s8 itemPrev; static s8 itemPrev;
static s8 moveAwayPlayer[4]; static s8 moveAwayPlayer[4];

View file

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

View file

@ -31,10 +31,10 @@ static void ParManHook(ModelData *arg0, ParticleData *arg1, Mtx matrix);
u32 frand(void); u32 frand(void);
extern u32 GlobalCounter; SHARED_SYM extern u32 GlobalCounter;
Hu3DTexAnimDataStruct Hu3DTexAnimData[HU3D_TEXANIM_MAX]; SHARED_SYM Hu3DTexAnimDataStruct Hu3DTexAnimData[HU3D_TEXANIM_MAX];
Hu3DTexScrDataStruct Hu3DTexScrData[16]; SHARED_SYM Hu3DTexScrDataStruct Hu3DTexScrData[16];
static Process *parManProc[64]; static Process *parManProc[64];
void Hu3DAnimInit(void) { void Hu3DAnimInit(void) {

View file

@ -97,7 +97,7 @@ static u8 *PGName;
static s32 TL32F; static s32 TL32F;
static s32 CancelTRXF; static s32 CancelTRXF;
u8 texMtxTbl[] = { GX_TEXMTX0, GX_TEXMTX1, GX_TEXMTX2, GX_TEXMTX3, GX_TEXMTX4, GX_TEXMTX5, GX_TEXMTX6, GX_TEXMTX7, GX_TEXMTX8, GX_TEXMTX9 }; SHARED_SYM u8 texMtxTbl[] = { GX_TEXMTX0, GX_TEXMTX1, GX_TEXMTX2, GX_TEXMTX3, GX_TEXMTX4, GX_TEXMTX5, GX_TEXMTX6, GX_TEXMTX7, GX_TEXMTX8, GX_TEXMTX9 };
static s16 oneceF = 1; static s16 oneceF = 1;
static GXColor firstTev = { 0xFF, 0xFF, 0x00, 0x00 }; static GXColor firstTev = { 0xFF, 0xFF, 0x00, 0x00 };

View file

@ -37,14 +37,14 @@ SHARED_SYM LightData Hu3DGlobalLight[0x8];
SHARED_SYM LightData Hu3DLocalLight[0x20]; SHARED_SYM LightData Hu3DLocalLight[0x20];
Mtx lbl_8018D39C; Mtx lbl_8018D39C;
GXColor BGColor; SHARED_SYM GXColor BGColor;
s16 reflectMapNo; s16 reflectMapNo;
AnimData *toonAnim; AnimData *toonAnim;
s16 Hu3DShadowCamBit; SHARED_SYM s16 Hu3DShadowCamBit;
s32 Hu3DShadowF; SHARED_SYM s32 Hu3DShadowF;
s32 shadowModelDrawF; SHARED_SYM s32 shadowModelDrawF;
s16 Hu3DProjectionNum; s16 Hu3DProjectionNum;
s16 Hu3DCameraNo; SHARED_SYM s16 Hu3DCameraNo;
s16 Hu3DCameraBit; s16 Hu3DCameraBit;
uintptr_t Hu3DMallocNo; uintptr_t Hu3DMallocNo;
s16 Hu3DPauseF; s16 Hu3DPauseF;

View file

@ -22,7 +22,7 @@ extern u32 frand();
static GXRenderModeObj rmodeobj; static GXRenderModeObj rmodeobj;
static BOOL FirstFrame = TRUE; static BOOL FirstFrame = TRUE;
GXRenderModeObj *RenderMode; SHARED_SYM GXRenderModeObj *RenderMode;
OSHeapHandle currentHeapHandle; OSHeapHandle currentHeapHandle;
static void *DefaultFifo; static void *DefaultFifo;
static GXFifoObj *DefaultFifoObj; static GXFifoObj *DefaultFifoObj;

View file

@ -30,7 +30,7 @@ const char *__asan_default_options()
#endif #endif
extern FileListEntry _ovltbl[]; extern FileListEntry _ovltbl[];
u32 GlobalCounter; SHARED_SYM u32 GlobalCounter;
static u32 vcheck; static u32 vcheck;
static u32 vmiss; static u32 vmiss;
static u32 vstall; static u32 vstall;

View file

@ -19,7 +19,7 @@ static BOOL GetPolygonCircleMtx(s16 *arg0, Vec *arg1, float *arg2, float *arg3);
static s32 PrecalcPntToTriangle(Vec *arg0, Vec *arg1, Vec *arg2, Vec* arg3, Vec *arg4, Vec *arg5); static s32 PrecalcPntToTriangle(Vec *arg0, Vec *arg1, Vec *arg2, Vec* arg3, Vec *arg4, Vec *arg5);
static void DefSetHitFace(float arg0, float arg1, float arg2); static void DefSetHitFace(float arg0, float arg1, float arg2);
omObjData *MapObject[16]; SHARED_SYM omObjData *MapObject[16];
Mtx MapMT; Mtx MapMT;
Mtx MapMTR; Mtx MapMTR;
static Vec MTRAdd; static Vec MTRAdd;
@ -30,10 +30,10 @@ static Vec OldXYZ;
Vec HitFace[32]; Vec HitFace[32];
u8 CharObject[0x30]; u8 CharObject[0x30];
float AddX; SHARED_SYM float AddX;
float AddZ; SHARED_SYM float AddZ;
s32 nMap; SHARED_SYM s32 nMap;
s32 nChar; SHARED_SYM s32 nChar;
s32 HitFaceCount; s32 HitFaceCount;
static HsfData *AttrHsf; static HsfData *AttrHsf;
static Vec *topvtx; static Vec *topvtx;

View file

@ -33,7 +33,7 @@ typedef struct seq_info {
s32 time_max; s32 time_max;
} SeqInfo; } SeqInfo;
OverlayID mgSeqOvlPrev = OVL_INVALID; SHARED_SYM OverlayID mgSeqOvlPrev = OVL_INVALID;
static SeqInfo seqInfoTbl[] = { static SeqInfo seqInfoTbl[] = {
{ NULL, NULL, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, { NULL, NULL, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 },

View file

@ -1163,19 +1163,19 @@ SHARED_SYM MgInfo mgInfoTbl[] = {
void MGSeqPracticeExitCheck(omObjData *); void MGSeqPracticeExitCheck(omObjData *);
s16 mgTypeCurr; SHARED_SYM s16 mgTypeCurr;
s16 mgBattleStar[4]; SHARED_SYM s16 mgBattleStar[4];
s16 mgBattleStarMax; SHARED_SYM s16 mgBattleStarMax;
u8 lbl_801D3E94; SHARED_SYM u8 lbl_801D3E94;
u32 mgRecordExtra; SHARED_SYM u32 mgRecordExtra;
SHARED_SYM s32 mgQuitExtraF; SHARED_SYM s32 mgQuitExtraF;
SHARED_SYM s32 mgPracticeEnableF; SHARED_SYM s32 mgPracticeEnableF;
SHARED_SYM s32 mgInstExitEnableF; SHARED_SYM s32 mgInstExitEnableF;
SHARED_SYM u8 mgBoardHostEnableF; SHARED_SYM u8 mgBoardHostEnableF;
s16 mgTicTacToeGrid[3][3]; SHARED_SYM s16 mgTicTacToeGrid[3][3];
u8 mgIndexList[256]; SHARED_SYM u8 mgIndexList[256];
GameStat mgGameStatBackup; SHARED_SYM GameStat mgGameStatBackup;
s32 omMgIndexGet(s16 overlay) s32 omMgIndexGet(s16 overlay)
{ {

View file

@ -12,9 +12,9 @@ void MGSeqPauseKill(void);
#include "game/wipe.h" #include "game/wipe.h"
#endif #endif
Vec CRot; SHARED_SYM Vec CRot;
Vec Center; SHARED_SYM Vec Center;
float CZoom; SHARED_SYM float CZoom;
Vec CRotM[16]; Vec CRotM[16];
Vec CenterM[16]; Vec CenterM[16];
float CZoomM[16]; float CZoomM[16];

View file

@ -31,7 +31,7 @@ SHARED_SYM CARDFileInfo curFileInfo;
SHARED_SYM SaveBufAll saveBuf; SHARED_SYM SaveBufAll saveBuf;
u64 SLSerialNo; u64 SLSerialNo;
s32 saveExecF; SHARED_SYM s32 saveExecF;
u8 curBoxNo; u8 curBoxNo;
SHARED_SYM s16 curSlotNo; SHARED_SYM s16 curSlotNo;

View file

@ -647,6 +647,44 @@ void ARQInit(void) {
puts("ARQInit is a stub"); puts("ARQInit is a stub");
} }
void GXProject(f32 x, f32 y, f32 z, const f32 mtx[3][4], const f32 *pm, const f32 *vp, f32 *sx, f32 *sy, f32 *sz)
{
Vec peye;
f32 xc;
f32 yc;
f32 zc;
f32 wc;
peye.x = mtx[0][3] + ((mtx[0][2] * z) + ((mtx[0][0] * x) + (mtx[0][1] * y)));
peye.y = mtx[1][3] + ((mtx[1][2] * z) + ((mtx[1][0] * x) + (mtx[1][1] * y)));
peye.z = mtx[2][3] + ((mtx[2][2] * z) + ((mtx[2][0] * x) + (mtx[2][1] * y)));
if (pm[0] == 0.0f) {
xc = (peye.x * pm[1]) + (peye.z * pm[2]);
yc = (peye.y * pm[3]) + (peye.z * pm[4]);
zc = pm[6] + (peye.z * pm[5]);
wc = 1.0f / -peye.z;
}
else {
xc = pm[2] + (peye.x * pm[1]);
yc = pm[4] + (peye.y * pm[3]);
zc = pm[6] + (peye.z * pm[5]);
wc = 1.0f;
}
*sx = (vp[2] / 2.0f) + (vp[0] + (wc * (xc * vp[2] / 2.0f)));
*sy = (vp[3] / 2.0f) + (vp[1] + (wc * (-yc * vp[3] / 2.0f)));
*sz = vp[5] + (wc * (zc * (vp[5] - vp[4])));
}
void GXGetViewportv(f32 *vp)
{
// TODO
}
void GXSetZTexture(GXZTexOp op, GXTexFmt fmt, u32 bias)
{
// TODO
}
// Hudson // Hudson
void HuDvdErrDispInit(GXRenderModeObj *rmode, void *xfb1, void *xfb2) { } void HuDvdErrDispInit(GXRenderModeObj *rmode, void *xfb1, void *xfb2) { }
@ -695,6 +733,24 @@ s32 msmSysGetOutputMode(void)
return 0; return 0;
} }
s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener)
{
return 0;
}
void msmSeStopAll(BOOL checkGrp, s32 speed)
{
}
BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode)
{
return TRUE;
}
void OSSetSoundMode(u32 mode)
{
}
s32 HuSoftResetButtonCheck(void) s32 HuSoftResetButtonCheck(void)
{ {
//puts("HuSoftResetButtonCheck is a stub"); //puts("HuSoftResetButtonCheck is a stub");