Merge branch 'Rainchus:main' into main

This commit is contained in:
CreateSource 2023-11-28 21:40:17 -05:00 committed by GitHub
commit 8f1d6b9680
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 4400 additions and 994 deletions

View file

@ -3,7 +3,9 @@
#include "types.h"
#include "common_structs.h"
#include "common_enums.h"
#include "functions.h"
#include "variables.h"
#include "dolphin/mtx/GeoTypes.h"
#endif

35
include/common_enums.h Normal file
View file

@ -0,0 +1,35 @@
#ifndef _COMMON_ENUMS_H
#define _COMMON_ENUMS_H
#include "types.h"
#define OVL_DEFINE(name, path) name,
typedef enum {
OVL_INVALID = -1,
#include "ovl_table.h"
OVL_COUNT
} OverlayID;
#undef OVL_DEFINE
#define DATADIR_DEFINE(name, path) name,
typedef enum {
#include "datadir_table.h"
DATADIR_COUNT
} DataDirID;
#undef DATADIR_DEFINE
typedef enum {
HEAP_SYSTEM,
HEAP_MUSIC,
HEAP_DATA,
HEAP_DVD,
HEAP_MISC,
HEAP_MAX
} HeapID;
#endif

View file

@ -2,12 +2,14 @@
#define _COMMON_STRUCTS_H
#include "types.h"
#include "common_enums.h"
#include "dolphin/dvd.h"
typedef struct UnkOvl {
s32 unk0;
char unk4[4];
s32 unk8;
} UnkOvl;
typedef struct om_ovl_his_data {
OverlayID overlay;
int event;
int stat;
} omOvlHisData;
typedef struct Vec3f {
f32 x;
@ -57,4 +59,97 @@ typedef struct wipe_state {
u8 unk2[20];
} WipeState;
typedef struct file_list_entry {
char *name;
s32 file_id;
} FileListEntry;
typedef struct data_read_stat {
s32 dir_id;
void *dir;
void *file;
u32 raw_len;
u32 comp_type;
BOOL used;
s32 num;
u32 status;
DVDFileInfo file_info;
} DataReadStat;
typedef struct BoardStateSubStruct {
/* 0x00 */ s32 unk0;
/* 0x04 */ s16 unk4;
/* 0x06 */ s16 unk6;
/* 0x08 */ s16 unk8;
} BoardStateSubStruct;
typedef struct BoardState {
/* 0x00 */ char unk00[0x04];
/* 0x04 */ s8 curTurnCount;
/* 0x05 */ s8 maxTurnCount;
/* 0x06 */ char unk06[0x02];
/* 0x08 */ u8 unk08;
/* 0x09 */ s8 doubleCoinsOnSpaceBool;
/* 0x0A */ s8 curPlayerIndex;
/* 0x0C */ char unk0C[4];
/* 0x10 */ BoardStateSubStruct unk10;
/* 0x1A */ char unk1A[0xC6];
} BoardState; //8018fcf8, sizeof 0xE0
typedef struct {
u8 unk0 : 2;
} PlayerFlags;
typedef struct Player {
/* 0x00 */ s8 characterID;
/* 0x01 */ s8 unk01;
/* 0x02 */ s8 unk02;
/* 0x03 */ s8 unk03;
/* 0x04 */ s8 controllerPort;
/* 0x05 */ s8 items[3];
/* 0x08 */ PlayerFlags flags; //0x02 mini mushroom, 0x04 mega mushroom
/* 0x09 */ s8 placement; //0x80 1st, 0x20 2nd, 0x40 3rd, 0x60 4th
/* 0x0A */ u8 spacesLeftToMove;
/* 0x0B */ char unk_0B[5];
/* 0x10 */ s16 nextABSSpaceIndex;
/* 0x12 */ char unk_12[2];
/* 0x14 */ s8 blueSpacesLanded;
/* 0x15 */ s8 redSpacesLanded;
/* 0x16 */ s8 happeningSpacesLanded;
/* 0x17 */ s8 chanceSpacesLanded;
/* 0x18 */ char unk_18;
/* 0x19 */ s8 battleSpacesLanded;
/* 0x1A */ s8 itemSpacesLanded;
/* 0x1B */ s8 springSpacesLanded;
/* 0x1C */ s16 coins;
/* 0x1E */ char unk_1E[2];
/* 0x20 */ s16 totalCoinsCollected;
/* 0x22 */ s16 coinPeak;
/* 0x24 */ char unk_24[6];
/* 0x2A */ s16 stars;
/* 0x2C */ char unk_2C[4];
} Player; //size of 0x30
typedef struct om_obj_data {
u16 stat;
s16 next_idx_alloc;
s16 prio;
s16 prev;
s16 next;
s16 next_idx;
s16 group;
u16 group_idx;
int unk10;
void (*func)(struct om_obj_data *);
Vec3f trans;
Vec3f rot;
Vec3f scale;
u16 mdlcnt;
s16 *model;
u16 mtncnt;
s16 *motion;
int work[4];
void *data;
} omObjData;
#endif

140
include/datadir_table.h Normal file
View file

@ -0,0 +1,140 @@
DATADIR_DEFINE(DATADIR_E3SETUP, "data/E3setup.bin")
DATADIR_DEFINE(DATADIR_BBATTLE, "data/bbattle.bin")
DATADIR_DEFINE(DATADIR_BGUEST, "data/bguest.bin")
DATADIR_DEFINE(DATADIR_BKOOPA, "data/bkoopa.bin")
DATADIR_DEFINE(DATADIR_BKOOPASUIT, "data/bkoopasuit.bin")
DATADIR_DEFINE(DATADIR_BKUJIYA, "data/bkujiya.bin")
DATADIR_DEFINE(DATADIR_BLAST5, "data/blast5.bin")
DATADIR_DEFINE(DATADIR_BOARD, "data/board.bin")
DATADIR_DEFINE(DATADIR_BPAUSE, "data/bpause.bin")
DATADIR_DEFINE(DATADIR_BYOKODORI, "data/byokodori.bin")
DATADIR_DEFINE(DATADIR_DAISY, "data/daisy.bin")
DATADIR_DEFINE(DATADIR_DAISYMDL0, "data/daisymdl0.bin")
DATADIR_DEFINE(DATADIR_DAISYMDL1, "data/daisymdl1.bin")
DATADIR_DEFINE(DATADIR_DAISYMOT, "data/daisymot.bin")
DATADIR_DEFINE(DATADIR_DONKEY, "data/donkey.bin")
DATADIR_DEFINE(DATADIR_DONKEYMDL0, "data/donkeymdl0.bin")
DATADIR_DEFINE(DATADIR_DONKEYMDL1, "data/donkeymdl1.bin")
DATADIR_DEFINE(DATADIR_DONKEYMOT, "data/donkeymot.bin")
DATADIR_DEFINE(DATADIR_EFFECT, "data/effect.bin")
DATADIR_DEFINE(DATADIR_GAMEMES, "data/gamemes.bin")
DATADIR_DEFINE(DATADIR_INST, "data/inst.bin")
DATADIR_DEFINE(DATADIR_INSTFONT, "data/instfont.bin")
DATADIR_DEFINE(DATADIR_INSTPIC, "data/instpic.bin")
DATADIR_DEFINE(DATADIR_LUIGI, "data/luigi.bin")
DATADIR_DEFINE(DATADIR_LUIGIMDL0, "data/luigimdl0.bin")
DATADIR_DEFINE(DATADIR_LUIGIMDL1, "data/luigimdl1.bin")
DATADIR_DEFINE(DATADIR_LUIGIMOT, "data/luigimot.bin")
DATADIR_DEFINE(DATADIR_M300, "data/m300.bin")
DATADIR_DEFINE(DATADIR_M302, "data/m302.bin")
DATADIR_DEFINE(DATADIR_M303, "data/m303.bin")
DATADIR_DEFINE(DATADIR_M330, "data/m330.bin")
DATADIR_DEFINE(DATADIR_M333, "data/m333.bin")
DATADIR_DEFINE(DATADIR_M401, "data/m401.bin")
DATADIR_DEFINE(DATADIR_M402, "data/m402.bin")
DATADIR_DEFINE(DATADIR_M403, "data/m403.bin")
DATADIR_DEFINE(DATADIR_M404, "data/m404.bin")
DATADIR_DEFINE(DATADIR_M405, "data/m405.bin")
DATADIR_DEFINE(DATADIR_M406, "data/m406.bin")
DATADIR_DEFINE(DATADIR_M407, "data/m407.bin")
DATADIR_DEFINE(DATADIR_M408, "data/m408.bin")
DATADIR_DEFINE(DATADIR_M409, "data/m409.bin")
DATADIR_DEFINE(DATADIR_M410, "data/m410.bin")
DATADIR_DEFINE(DATADIR_M411, "data/m411.bin")
DATADIR_DEFINE(DATADIR_M412, "data/m412.bin")
DATADIR_DEFINE(DATADIR_M413, "data/m413.bin")
DATADIR_DEFINE(DATADIR_M414, "data/m414.bin")
DATADIR_DEFINE(DATADIR_M415, "data/m415.bin")
DATADIR_DEFINE(DATADIR_M416, "data/m416.bin")
DATADIR_DEFINE(DATADIR_M417, "data/m417.bin")
DATADIR_DEFINE(DATADIR_M418, "data/m418.bin")
DATADIR_DEFINE(DATADIR_M419, "data/m419.bin")
DATADIR_DEFINE(DATADIR_M420, "data/m420.bin")
DATADIR_DEFINE(DATADIR_M421, "data/m421.bin")
DATADIR_DEFINE(DATADIR_M422, "data/m422.bin")
DATADIR_DEFINE(DATADIR_M423, "data/m423.bin")
DATADIR_DEFINE(DATADIR_M424, "data/m424.bin")
DATADIR_DEFINE(DATADIR_M425, "data/m425.bin")
DATADIR_DEFINE(DATADIR_M426, "data/m426.bin")
DATADIR_DEFINE(DATADIR_M427, "data/m427.bin")
DATADIR_DEFINE(DATADIR_M428, "data/m428.bin")
DATADIR_DEFINE(DATADIR_M429, "data/m429.bin")
DATADIR_DEFINE(DATADIR_M430, "data/m430.bin")
DATADIR_DEFINE(DATADIR_M431, "data/m431.bin")
DATADIR_DEFINE(DATADIR_M432, "data/m432.bin")
DATADIR_DEFINE(DATADIR_M433, "data/m433.bin")
DATADIR_DEFINE(DATADIR_M434, "data/m434.bin")
DATADIR_DEFINE(DATADIR_M435, "data/m435.bin")
DATADIR_DEFINE(DATADIR_M436, "data/m436.bin")
DATADIR_DEFINE(DATADIR_M437, "data/m437.bin")
DATADIR_DEFINE(DATADIR_M438, "data/m438.bin")
DATADIR_DEFINE(DATADIR_M439, "data/m439.bin")
DATADIR_DEFINE(DATADIR_M440, "data/m440.bin")
DATADIR_DEFINE(DATADIR_M441, "data/m441.bin")
DATADIR_DEFINE(DATADIR_M442, "data/m442.bin")
DATADIR_DEFINE(DATADIR_M443, "data/m443.bin")
DATADIR_DEFINE(DATADIR_M444, "data/m444.bin")
DATADIR_DEFINE(DATADIR_M445, "data/m445.bin")
DATADIR_DEFINE(DATADIR_M446, "data/m446.bin")
DATADIR_DEFINE(DATADIR_M447, "data/m447.bin")
DATADIR_DEFINE(DATADIR_M448, "data/m448.bin")
DATADIR_DEFINE(DATADIR_M449, "data/m449.bin")
DATADIR_DEFINE(DATADIR_M450, "data/m450.bin")
DATADIR_DEFINE(DATADIR_M451, "data/m451.bin")
DATADIR_DEFINE(DATADIR_M453, "data/m453.bin")
DATADIR_DEFINE(DATADIR_M455, "data/m455.bin")
DATADIR_DEFINE(DATADIR_M456, "data/m456.bin")
DATADIR_DEFINE(DATADIR_M457, "data/m457.bin")
DATADIR_DEFINE(DATADIR_M458, "data/m458.bin")
DATADIR_DEFINE(DATADIR_M459, "data/m459.bin")
DATADIR_DEFINE(DATADIR_M460, "data/m460.bin")
DATADIR_DEFINE(DATADIR_M461, "data/m461.bin")
DATADIR_DEFINE(DATADIR_M462, "data/m462.bin")
DATADIR_DEFINE(DATADIR_MARIO, "data/mario.bin")
DATADIR_DEFINE(DATADIR_MARIOMDL0, "data/mariomdl0.bin")
DATADIR_DEFINE(DATADIR_MARIOMDL1, "data/mariomdl1.bin")
DATADIR_DEFINE(DATADIR_MARIOMOT, "data/mariomot.bin")
DATADIR_DEFINE(DATADIR_MENT, "data/ment.bin")
DATADIR_DEFINE(DATADIR_MGCONST, "data/mgconst.bin")
DATADIR_DEFINE(DATADIR_MGMODE, "data/mgmode.bin")
DATADIR_DEFINE(DATADIR_MODESEL, "data/modesel.bin")
DATADIR_DEFINE(DATADIR_MPEX, "data/mpex.bin")
DATADIR_DEFINE(DATADIR_MSTORY, "data/mstory.bin")
DATADIR_DEFINE(DATADIR_MSTORY2, "data/mstory2.bin")
DATADIR_DEFINE(DATADIR_MSTORY3, "data/mstory3.bin")
DATADIR_DEFINE(DATADIR_MSTORY4, "data/mstory4.bin")
DATADIR_DEFINE(DATADIR_OPTION, "data/option.bin")
DATADIR_DEFINE(DATADIR_PEACH, "data/peach.bin")
DATADIR_DEFINE(DATADIR_PEACHMDL0, "data/peachmdl0.bin")
DATADIR_DEFINE(DATADIR_PEACHMDL1, "data/peachmdl1.bin")
DATADIR_DEFINE(DATADIR_PEACHMOT, "data/peachmot.bin")
DATADIR_DEFINE(DATADIR_PRESENT, "data/present.bin")
DATADIR_DEFINE(DATADIR_RESULT, "data/result.bin")
DATADIR_DEFINE(DATADIR_SAF, "data/saf.bin")
DATADIR_DEFINE(DATADIR_SELMENU, "data/selmenu.bin")
DATADIR_DEFINE(DATADIR_SETUP, "data/setup.bin")
DATADIR_DEFINE(DATADIR_STAFF, "data/staff.bin")
DATADIR_DEFINE(DATADIR_TITLE, "data/title.bin")
DATADIR_DEFINE(DATADIR_W01, "data/w01.bin")
DATADIR_DEFINE(DATADIR_W02, "data/w02.bin")
DATADIR_DEFINE(DATADIR_W03, "data/w03.bin")
DATADIR_DEFINE(DATADIR_W04, "data/w04.bin")
DATADIR_DEFINE(DATADIR_W05, "data/w05.bin")
DATADIR_DEFINE(DATADIR_W06, "data/w06.bin")
DATADIR_DEFINE(DATADIR_W10, "data/w10.bin")
DATADIR_DEFINE(DATADIR_W20, "data/w20.bin")
DATADIR_DEFINE(DATADIR_W21, "data/w21.bin")
DATADIR_DEFINE(DATADIR_WALUIGI, "data/waluigi.bin")
DATADIR_DEFINE(DATADIR_WALUIGIMDL0, "data/waluigimdl0.bin")
DATADIR_DEFINE(DATADIR_WALUIGIMDL1, "data/waluigimdl1.bin")
DATADIR_DEFINE(DATADIR_WALUIGIMOT, "data/waluigimot.bin")
DATADIR_DEFINE(DATADIR_WARIO, "data/wario.bin")
DATADIR_DEFINE(DATADIR_WARIOMDL0, "data/wariomdl0.bin")
DATADIR_DEFINE(DATADIR_WARIOMDL1, "data/wariomdl1.bin")
DATADIR_DEFINE(DATADIR_WARIOMOT, "data/wariomot.bin")
DATADIR_DEFINE(DATADIR_WIN, "data/win.bin")
DATADIR_DEFINE(DATADIR_YOSHI, "data/yoshi.bin")
DATADIR_DEFINE(DATADIR_YOSHIMDL0, "data/yoshimdl0.bin")
DATADIR_DEFINE(DATADIR_YOSHIMDL1, "data/yoshimdl1.bin")
DATADIR_DEFINE(DATADIR_YOSHIMOT, "data/yoshimot.bin")
DATADIR_DEFINE(DATADIR_ZTAR, "data/ztar.bin")

View file

@ -121,6 +121,9 @@ BOOL DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset,
#define DVDReadAsync(fileInfo, addr, length, offset, callback) \
DVDReadAsyncPrio((fileInfo), (addr), (length), (offset), (callback), 2)
#define DVDRead(fileInfo, addr, length, offset) \
DVDReadPrio((fileInfo), (addr), (length), (offset), 2)
#define DVDSeekAsync(fileInfo, offset, callback) \
DVDSeekAsyncPrio((fileInfo), (offset), (callback), 2)

View file

@ -8,37 +8,36 @@
extern "C" {
#endif
// extern GXRenderModeObj GXNtsc240Ds;
// extern GXRenderModeObj GXNtsc240DsAa;
// extern GXRenderModeObj GXNtsc240Int;
// extern GXRenderModeObj GXNtsc240IntAa;
extern GXRenderModeObj GXNtsc240Ds;
extern GXRenderModeObj GXNtsc240DsAa;
extern GXRenderModeObj GXNtsc240Int;
extern GXRenderModeObj GXNtsc240IntAa;
extern GXRenderModeObj GXNtsc480IntDf;
// extern GXRenderModeObj GXNtsc480Int;
// extern GXRenderModeObj GXNtsc480IntAa;
// extern GXRenderModeObj GXNtsc480Prog;
// extern GXRenderModeObj GXNtsc480ProgSoft;
// extern GXRenderModeObj GXNtsc480ProgAa;
// extern GXRenderModeObj GXMpal240Ds;
// extern GXRenderModeObj GXMpal240DsAa;
// extern GXRenderModeObj GXMpal240Int;
// extern GXRenderModeObj GXMpal240IntAa;
extern GXRenderModeObj GXNtsc480Int;
extern GXRenderModeObj GXNtsc480IntAa;
extern GXRenderModeObj GXNtsc480Prog;
extern GXRenderModeObj GXNtsc480ProgAa;
extern GXRenderModeObj GXMpal240Ds;
extern GXRenderModeObj GXMpal240DsAa;
extern GXRenderModeObj GXMpal240Int;
extern GXRenderModeObj GXMpal240IntAa;
extern GXRenderModeObj GXMpal480IntDf;
// extern GXRenderModeObj GXMpal480Int;
// extern GXRenderModeObj GXMpal480IntAa;
// extern GXRenderModeObj GXPal264Ds;
// extern GXRenderModeObj GXPal264DsAa;
// extern GXRenderModeObj GXPal264Int;
// extern GXRenderModeObj GXPal264IntAa;
extern GXRenderModeObj GXMpal480Int;
extern GXRenderModeObj GXMpal480IntAa;
extern GXRenderModeObj GXPal264Ds;
extern GXRenderModeObj GXPal264DsAa;
extern GXRenderModeObj GXPal264Int;
extern GXRenderModeObj GXPal264IntAa;
extern GXRenderModeObj GXPal528IntDf;
// extern GXRenderModeObj GXPal528Int;
// extern GXRenderModeObj GXPal524IntAa;
// extern GXRenderModeObj GXEurgb60Hz240Ds;
// extern GXRenderModeObj GXEurgb60Hz240DsAa;
// extern GXRenderModeObj GXEurgb60Hz240Int;
// extern GXRenderModeObj GXEurgb60Hz240IntAa;
extern GXRenderModeObj GXPal528Int;
extern GXRenderModeObj GXPal524IntAa;
extern GXRenderModeObj GXEurgb60Hz240Ds;
extern GXRenderModeObj GXEurgb60Hz240DsAa;
extern GXRenderModeObj GXEurgb60Hz240Int;
extern GXRenderModeObj GXEurgb60Hz240IntAa;
extern GXRenderModeObj GXEurgb60Hz480IntDf;
// extern GXRenderModeObj GXEurgb60Hz480Int;
// extern GXRenderModeObj GXEurgb60Hz480IntAa;
extern GXRenderModeObj GXEurgb60Hz480Int;
extern GXRenderModeObj GXEurgb60Hz480IntAa;
#define GX_MAX_Z24 0x00FFFFFF

View file

@ -86,6 +86,11 @@ static inline void GXPosition2f32(const f32 x, const f32 y) {
GXWGFifo.f32 = y;
}
static inline void GXPosition2s16(const s16 x, const s16 y) {
GXWGFifo.s16 = x;
GXWGFifo.s16 = y;
}
static inline void GXPosition3s16(const s16 x, const s16 y, const s16 z) {
GXWGFifo.s16 = x;
GXWGFifo.s16 = y;
@ -108,6 +113,12 @@ static inline void GXColor1u32(const u32 v) {
GXWGFifo.u32 = v;
}
static inline void GXColor3u8(const u8 r, const u8 g, const u8 b) {
GXWGFifo.u8 = r;
GXWGFifo.u8 = g;
GXWGFifo.u8 = b;
}
static inline void GXColor4u8(const u8 r, const u8 g, const u8 b, const u8 a) {
GXWGFifo.u8 = r;
GXWGFifo.u8 = g;
@ -125,11 +136,14 @@ static inline void GXTexCoord2f32(const f32 u, const f32 v) {
GXWGFifo.f32 = v;
}
static inline void GXPosition1x8(u8 index) {
GXWGFifo.u8 = index;
}
static inline void GXColor1x8(u8 index) {
GXWGFifo.u8 = index;
}
static inline void GXEnd(void) {}
#endif

View file

@ -58,6 +58,7 @@ u32 OSUncachedToCached(void* ucaddr);
#define OSDiffTick(tick1, tick0) ((s32)(tick1) - (s32)(tick0))
#define OSRoundUp32B(v) (((u32)(v + 31) & ~31))
#define OSRoundDown32B(x) (((u32)(x)) & ~31)
void* OSGetArenaHi(void);
void* OSGetArenaLo(void);
@ -218,6 +219,9 @@ void OSReport(const char* msg, ...);
void OSPanic(const char* file, int line, const char* msg, ...);
void OSFatal(GXColor fg, GXColor bg, const char* msg);
u32 OSGetPhysicalMemSize(void);
u32 OSGetConsoleSimulatedMemSize(void);
#ifdef __cplusplus
}
#endif

View file

@ -18,6 +18,7 @@ void* OSAllocFixed(void** rstart, void** rend);
void OSFreeToHeap(OSHeapHandle heap, void* ptr);
long OSCheckHeap(OSHeapHandle heap);
void OSDumpHeap(OSHeapHandle heap);
void *OSAllocFixed(void **rstart, void **rend);
u32 OSReferentSize(void* ptr);
void OSVisitAllocated(OSAllocVisitor visitor);
extern volatile OSHeapHandle __OSCurrHeap;

View file

@ -3,14 +3,14 @@
#include "types.h"
#include "common_structs.h"
#include "common_enums.h"
#include "dolphin/gx/GXStruct.h"
void Hu3DBGColorSet(u8, u8, u8);
void Hu3DCameraCreate(s16);
void Hu3DCameraPerspectiveSet(s16, f32, f32, f32, f32);
void Hu3DCameraViewportSet(s16, f32, f32, f32, f32, f32, f32);
void omOvlHisChg(s32, s32, s32, s32);
UnkOvl* omOvlHisGet(s32);
void* omInitObjMan(s32, s32);
void fn_80044920(s16);
void fn_80045F74(s16, s32);
s32 fn_800578E4(void);
@ -18,18 +18,19 @@ void fn_80032A58(int arg0);
void fn_80035A0C(void);
void HuDecodeData(void *src, void *dst, u32 size, int decode_type);
void HuMemInitAll(void);
void *HuMemInit(void *ptr, s32 size);
void HuMemDCFlushAll();
void HuMemDCFlush(int heap);
void *HuMemDirectMalloc(int heap, s32 size);
void *HuMemDirectMallocNum(int heap, s32 size, u32 num);
void HuMemDCFlush(HeapID heap);
void *HuMemDirectMalloc(HeapID heap, s32 size);
void *HuMemDirectMallocNum(HeapID heap, s32 size, u32 num);
void HuMemDirectFree(void *ptr);
void HuMemDirectFreeNum(int heap, u32 num);
s32 HuMemUsedMallocSizeGet(int heap);
s32 HuMemUsedMallocBlockGet(int heap);
u32 HuMemHeapSizeGet(int heap);
void *HuMemHeapPtrGet(int heap);
void HuMemDirectFreeNum(HeapID heap, u32 num);
s32 HuMemUsedMallocSizeGet(HeapID heap);
s32 HuMemUsedMallocBlockGet(HeapID heap);
u32 HuMemHeapSizeGet(HeapID heap);
void *HuMemHeapPtrGet(HeapID heap);
void *HuMemHeapInit(void *ptr, s32 size);
void *HuMemMemoryAlloc(void *heap_ptr, s32 size, u32 retaddr);
@ -42,6 +43,7 @@ s32 HuMemMemoryAllocSizeGet(s32 size);
void HuMemHeapDump(void *heap_ptr, s16 status);
void HuPrcInit(void);
void HuPrcEnd(void);
Process *HuPrcCreate(void (*func)(void), u16 prio, u32 stack_size, s32 extra_size);
void HuPrcChildLink(Process *parent, Process *child);
void HuPrcChildUnlink(Process *process);
@ -63,10 +65,110 @@ void HuPrcResetStat(Process *process, u16 value);
void HuPrcAllPause(int flag);
void HuPrcAllUPause(int flag);
void omOvlGotoEx(int id, s16 end_mode, int stat, int event);
void omOvlReturnEx(int level, s16 end_mode);
void omMasterInit(int prio, FileListEntry *ovl_list, int ovl_count, OverlayID start_ovl);
void omOvlCallEx(OverlayID overlay, s16 arg2, int event, int stat);
void omOvlGotoEx(OverlayID overlay, s16 arg2, int event, int stat);
void omOvlReturnEx(s16 level, s16 arg2);
void omOvlKill(s16 arg);
void omOvlHisChg(s32 level, OverlayID overlay, int event, int stat);
omOvlHisData *omOvlHisGet(s32 level);
Process *omInitObjMan(s16 max_objs, int prio);
void omDestroyObjMan(void);
omObjData *omAddObjEx(Process *objman_process, s16 prio, u16 mdlcnt, u16 mtncnt, s16 group, void (*func)(omObjData *));
void omAddMember(Process *objman_process, u16 group, omObjData *object);
void omDelObjEx(Process *objman_process, omObjData *object);
void omDelMember(Process *objman_process, omObjData *object);
void omMakeGroupEx(Process *objman_process, u16 group, u16 max_objs);
omObjData **omGetGroupMemberListEx(Process *objman_process, s16 group);
void omSetStatBit(omObjData *obj, u16 stat);
void omResetStatBit(omObjData *obj, u16 stat);
void omSetTra(omObjData *obj, float x, float y, float z);
void omSetRot(omObjData *obj, float x, float y, float z);
void omSetSca(omObjData *obj, float x, float y, float z);
void omMain(void);
void omAllPause(BOOL pause);
char omPauseChk(void);
OverlayID omCurrentOvlGet(void);
void omDLLDBGOut(void);
void omDLLInit(FileListEntry *ovl_list);
int omDLLStart(s16 ovl, s16 dll);
void omDLLNumEnd(s16 ovl, s16 arg2);
void omSysPauseEnable(BOOL flag);
void WipeCreate(char dir, char type, short duration);
u16 print8(s16 x, s16 y, float scale, char *str, ...);
void pfInit(void);
void pfClsScr(void);
s16 print8(s16 x, s16 y, float scale, char *str, ...);
s16 printWin(s16 x, s16 y, s16 w, s16 h, GXColor *color);
void pfDrawFonts(void);
void *HuDvdDataRead(char *path);
void **HuDvdDataReadMulti(char **paths);
void *HuDvdDataReadDirect(char *path, HeapID heap);
void *HuDvdDataFastRead(s32 entrynum);
void *HuDvdDataFastReadNum(s32 entrynum, s32 num);
void *HuDvdDataFastReadAsync(s32 entrynum, DataReadStat *stat);
void HuDvdDataClose(void *ptr);
void HuDvdErrorWatch();
void HuDataInit(void);
int HuDataReadChk(s32 data_num);
DataReadStat *HuDataGetStatus(void *dir_ptr);
void *HuDataGetDirPtr(s32 data_num);
DataReadStat *HuDataDirRead(s32 data_num);
DataReadStat *HuDataDirReadNum(s32 data_num, s32 num);
DataReadStat *HuDataDirSet(void *dir_ptr, s32 data_num);
void HuDataDirReadAsyncCallBack(s32 result, DVDFileInfo* fileInfo);
s32 HuDataDirReadAsync(s32 data_num);
s32 HuDataDirReadNumAsync(s32 data_num, s32 num);
BOOL HuDataGetAsyncStat(s32 status);
void *HuDataRead(s32 data_num);
void *HuDataReadNum(s32 data_num, s32 num);
void *HuDataSelHeapRead(s32 data_num, HeapID heap);
void *HuDataSelHeapReadNum(s32 data_num, s32 num, HeapID heap);
void **HuDataReadMulti(s32 *data_ids);
s32 HuDataGetSize(s32 data_num);
void HuDataClose(void *ptr);
void HuDataCloseMulti(void **ptrs);
void HuDataDirClose(s32 data_id);
void HuDataDirCloseNum(s32 num);
void *HuDataReadNumHeapShortForce(s32 data_id, s32 num, HeapID heap);
void *HuARDirCheck(s32 dir);
void HuAR_ARAMtoMRAM(void *dst);
void HuAR_ARAMtoMRAMNum(void *dst, s32 num);
BOOL HuARDMACheck();
void Hu3DModelPosSet(s16 index, float x, float y, float z);
void Hu3DModelRotSet(s16 index, float x, float y, float z);
void Hu3DModelScaleSet(s16 index, float x, float y, float z);
void espInit(void);
void HuSprClose(void);
void HuWinAllKill(void);
void HuPadRumbleAllStop(void);
void HuAudFXListnerKill(void);
void HuAudDllSndGrpSet(u16 ovl);
void fn_800338EC(s16 ovl);
void fn_80035A0C(void);
void fn_8003F3AC(void);
void fn_8004D6F4(s16 arg);
s32 _CheckFlag(u32 flag);
void BoardMessCreate(s16, s32, s32);
void BoardMessKill(void);
void BoardMessWait(void);
#endif

99
include/ovl_table.h Normal file
View file

@ -0,0 +1,99 @@
OVL_DEFINE(OVL__MINI, "dll/_minigameDLL.rel")
OVL_DEFINE(OVL_BOOT, "dll/bootdll.rel")
OVL_DEFINE(OVL_E3SETUP, "dll/e3setupDLL.rel")
OVL_DEFINE(OVL_INST, "dll/instdll.rel")
OVL_DEFINE(OVL_M300, "dll/m300dll.rel")
OVL_DEFINE(OVL_M302, "dll/m302dll.rel")
OVL_DEFINE(OVL_M303, "dll/m303dll.rel")
OVL_DEFINE(OVL_M330, "dll/m330dll.rel")
OVL_DEFINE(OVL_M333, "dll/m333dll.rel")
OVL_DEFINE(OVL_M401, "dll/m401dll.rel")
OVL_DEFINE(OVL_M402, "dll/m402dll.rel")
OVL_DEFINE(OVL_M403, "dll/m403dll.rel")
OVL_DEFINE(OVL_M404, "dll/m404dll.rel")
OVL_DEFINE(OVL_M405, "dll/m405dll.rel")
OVL_DEFINE(OVL_M406, "dll/m406dll.rel")
OVL_DEFINE(OVL_M407, "dll/m407dll.rel")
OVL_DEFINE(OVL_M408, "dll/m408dll.rel")
OVL_DEFINE(OVL_M409, "dll/m409dll.rel")
OVL_DEFINE(OVL_M410, "dll/m410dll.rel")
OVL_DEFINE(OVL_M411, "dll/m411dll.rel")
OVL_DEFINE(OVL_M412, "dll/m412dll.rel")
OVL_DEFINE(OVL_M413, "dll/m413dll.rel")
OVL_DEFINE(OVL_M414, "dll/m414dll.rel")
OVL_DEFINE(OVL_M415, "dll/m415dll.rel")
OVL_DEFINE(OVL_M416, "dll/m416dll.rel")
OVL_DEFINE(OVL_M417, "dll/m417dll.rel")
OVL_DEFINE(OVL_M418, "dll/m418dll.rel")
OVL_DEFINE(OVL_M419, "dll/m419dll.rel")
OVL_DEFINE(OVL_M420, "dll/m420dll.rel")
OVL_DEFINE(OVL_M421, "dll/m421dll.rel")
OVL_DEFINE(OVL_M422, "dll/m422dll.rel")
OVL_DEFINE(OVL_M423, "dll/m423dll.rel")
OVL_DEFINE(OVL_M424, "dll/m424dll.rel")
OVL_DEFINE(OVL_M425, "dll/m425dll.rel")
OVL_DEFINE(OVL_M426, "dll/m426dll.rel")
OVL_DEFINE(OVL_M427, "dll/m427dll.rel")
OVL_DEFINE(OVL_M428, "dll/m428dll.rel")
OVL_DEFINE(OVL_M429, "dll/m429dll.rel")
OVL_DEFINE(OVL_M430, "dll/m430dll.rel")
OVL_DEFINE(OVL_M431, "dll/m431dll.rel")
OVL_DEFINE(OVL_M432, "dll/m432dll.rel")
OVL_DEFINE(OVL_M433, "dll/m433dll.rel")
OVL_DEFINE(OVL_M434, "dll/m434dll.rel")
OVL_DEFINE(OVL_M435, "dll/m435dll.rel")
OVL_DEFINE(OVL_M436, "dll/m436dll.rel")
OVL_DEFINE(OVL_M437, "dll/m437dll.rel")
OVL_DEFINE(OVL_M438, "dll/m438dll.rel")
OVL_DEFINE(OVL_M439, "dll/m439dll.rel")
OVL_DEFINE(OVL_M440, "dll/m440dll.rel")
OVL_DEFINE(OVL_M441, "dll/m441dll.rel")
OVL_DEFINE(OVL_M442, "dll/m442dll.rel")
OVL_DEFINE(OVL_M443, "dll/m443dll.rel")
OVL_DEFINE(OVL_M444, "dll/m444dll.rel")
OVL_DEFINE(OVL_M445, "dll/m445dll.rel")
OVL_DEFINE(OVL_M446, "dll/m446dll.rel")
OVL_DEFINE(OVL_M447, "dll/m447dll.rel")
OVL_DEFINE(OVL_M448, "dll/m448dll.rel")
OVL_DEFINE(OVL_M449, "dll/m449dll.rel")
OVL_DEFINE(OVL_M450, "dll/m450dll.rel")
OVL_DEFINE(OVL_M451, "dll/m451dll.rel")
OVL_DEFINE(OVL_M453, "dll/m453dll.rel")
OVL_DEFINE(OVL_M455, "dll/m455dll.rel")
OVL_DEFINE(OVL_M456, "dll/m456dll.rel")
OVL_DEFINE(OVL_M457, "dll/m457dll.rel")
OVL_DEFINE(OVL_M458, "dll/m458dll.rel")
OVL_DEFINE(OVL_M459, "dll/m459dll.rel")
OVL_DEFINE(OVL_M460, "dll/m460dll.rel")
OVL_DEFINE(OVL_M461, "dll/m461dll.rel")
OVL_DEFINE(OVL_M462, "dll/m462dll.rel")
OVL_DEFINE(OVL_M463, "dll/m463dll.rel")
OVL_DEFINE(OVL_MENT, "dll/mentdll.rel")
OVL_DEFINE(OVL_MESS, "dll/messdll.rel")
OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel")
OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel")
OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel")
OVL_DEFINE(OVL_MPEX, "dll/mpexdll.rel")
OVL_DEFINE(OVL_MSETUP, "dll/msetupdll.rel")
OVL_DEFINE(OVL_MSTORY2, "dll/mstory2dll.rel")
OVL_DEFINE(OVL_MSTORY3, "dll/mstory3dll.rel")
OVL_DEFINE(OVL_MSTORY4, "dll/mstory4dll.rel")
OVL_DEFINE(OVL_MSTORY, "dll/mstorydll.rel")
OVL_DEFINE(OVL_NIS, "dll/nisdll.rel")
OVL_DEFINE(OVL_OPTION, "dll/option.rel")
OVL_DEFINE(OVL_PRESENT, "dll/present.rel")
OVL_DEFINE(OVL_RESULT, "dll/resultdll.rel")
OVL_DEFINE(OVL_SAF, "dll/safdll.rel")
OVL_DEFINE(OVL_SELMENU, "dll/selmenuDLL.rel")
OVL_DEFINE(OVL_STAFF, "dll/staffdll.rel")
OVL_DEFINE(OVL_SUBCHRSEL, "dll/subchrseldll.rel")
OVL_DEFINE(OVL_W01, "dll/w01dll.rel")
OVL_DEFINE(OVL_W02, "dll/w02dll.rel")
OVL_DEFINE(OVL_W03, "dll/w03dll.rel")
OVL_DEFINE(OVL_W04, "dll/w04dll.rel")
OVL_DEFINE(OVL_W05, "dll/w05dll.rel")
OVL_DEFINE(OVL_W06, "dll/w06dll.rel")
OVL_DEFINE(OVL_W10, "dll/w10dll.rel")
OVL_DEFINE(OVL_W20, "dll/w20dll.rel")
OVL_DEFINE(OVL_W21, "dll/w21dll.rel")
OVL_DEFINE(OVL_ZTAR, "dll/ztardll.rel")

19
include/stdarg.h Normal file
View file

@ -0,0 +1,19 @@
#ifndef STDARG_H
#define STDARG_H
typedef struct {
char gpr;
char fpr;
char reserved[2];
char* input_arg_area;
char* reg_save_area;
} __va_list[1];
typedef __va_list va_list;
void* __va_arg(va_list v_list, unsigned char type);
#define va_start(ap, fmt) ((void) fmt, __builtin_va_info(&ap))
#define va_arg(ap, t) (*((t*) __va_arg(ap, _var_arg_typeof(t))))
#define va_end(ap) (void) 0
#endif

12
include/stdio.h Normal file
View file

@ -0,0 +1,12 @@
#ifndef _STDIO_H_
#define _STDIO_H_
#include "stdarg.h"
int puts(const char* s);
int printf(const char*, ...);
int sprintf(char* s, const char* format, ...);
int vprintf(const char* format, va_list arg);
int vsprintf(char* s, const char* format, va_list arg);
#endif

View file

@ -4,11 +4,13 @@
#include "types.h"
#include "common_structs.h"
#include "dolphin/os.h"
#include "dolphin/gx/GXStruct.h"
extern u16 HuPadBtnDown[4];
extern u8 HuPadDStk[4];
extern OSHeapHandle currentHeapHandle;
extern GXRenderModeObj *RenderMode;
extern BOOL saftyFrameF;
extern u16 strlinecnt;
@ -20,4 +22,26 @@ extern WipeState wipeData;
extern PlayerConfig gPlayerConfig[4];
extern FileListEntry _ovltbl[];
extern u32 DirDataSize;
extern u32 totalPolyCnted;
extern char fadeStat;
extern omObjData *omDBGSysKeyObj;
extern Process *omwatchproc;
extern OverlayID omnextovl;
extern OverlayID omcurovl;
extern int omcurdll;
extern int omovlhisidx;
extern int omovlevtno;
extern int omnextovlevtno;
extern int omovlstat;
extern char omUPauseFlag;
extern s16 omSysExitReq;
extern s16 omdispinfo;
extern char omSysPauseEnableFlag;
extern OverlayID omprevovl;
#endif