mirror of
https://github.com/zeldaret/mm.git
synced 2026-07-10 05:57:00 -04:00
z_overlay and z_fbdemo_dlftbls (Transition overlay handling), clean up a lot of u32s used to store pointers (#1073)
* overlay matches * prototypes * fbdemo too * virtual to physical * names, cleanup, etc * bss reordering * uintptr stuff * fixed now? * one fix * headers and such * fixes'n'stuff * XXX action * docs of a sort * useless error codes * n * format * header? I barely know her! Co-authored-by: petrie911 <petrie911@users.noreply.github.com>
This commit is contained in:
+23
-21
@@ -7,12 +7,12 @@ void bootproc(void);
|
||||
void Idle_ThreadEntry(void* arg);
|
||||
void ViConfig_UpdateVi(u32 mode);
|
||||
void ViConfig_UpdateBlack(void);
|
||||
s32 DmaMgr_DmaRomToRam(u32 rom, void* ram, size_t size);
|
||||
s32 DmaMgr_DmaRomToRam(uintptr_t rom, void* ram, size_t size);
|
||||
s32 DmaMgr_DmaHandler(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction);
|
||||
DmaEntry* DmaMgr_FindDmaEntry(u32 vrom);
|
||||
u32 DmaMgr_TranslateVromToRom(u32 vrom);
|
||||
s32 DmaMgr_FindDmaIndex(u32 vrom);
|
||||
const char* func_800809F4(u32 param_1);
|
||||
DmaEntry* DmaMgr_FindDmaEntry(uintptr_t vrom);
|
||||
u32 DmaMgr_TranslateVromToRom(uintptr_t vrom);
|
||||
s32 DmaMgr_FindDmaIndex(uintptr_t vrom);
|
||||
const char* func_800809F4(uintptr_t param_1);
|
||||
void DmaMgr_ProcessMsg(DmaRequest* req);
|
||||
void DmaMgr_ThreadEntry(void* arg);
|
||||
s32 DmaMgr_SendRequestImpl(DmaRequest* request, void* vramStart, uintptr_t vromStart, size_t size, UNK_TYPE4 unused, OSMesgQueue* queue, void* msg);
|
||||
@@ -22,7 +22,7 @@ void DmaMgr_Stop(void);
|
||||
void* Yaz0_FirstDMA(void);
|
||||
void* Yaz0_NextDMA(void* curSrcPos);
|
||||
s32 Yaz0_DecompressImpl(u8* src, u8* dst);
|
||||
void Yaz0_Decompress(u32 romStart, void* dst, size_t size);
|
||||
void Yaz0_Decompress(uintptr_t romStart, void* dst, size_t size);
|
||||
void IrqMgr_AddClient(IrqMgr* irqmgr, IrqMgrClient* client, OSMesgQueue* msgQueue);
|
||||
void IrqMgr_RemoveClient(IrqMgr* irqmgr, IrqMgrClient* remove);
|
||||
void IrqMgr_SendMesgForClient(IrqMgr* irqmgr, OSMesg msg);
|
||||
@@ -256,7 +256,7 @@ s32 __osSpRawStartDma(s32 direction, void* devAddr, void* dramAddr, size_t size)
|
||||
s32 __osSiRawStartDma(s32 direction, void* dramAddr);
|
||||
s32 osEPiLinkHandle(OSPiHandle* handle);
|
||||
void osViBlack(u8 active);
|
||||
s32 __osSiRawReadIo(u32 devAddr, u32* data);
|
||||
s32 __osSiRawReadIo(uintptr_t devAddr, u32* data);
|
||||
OSId osGetThreadId(OSThread* t);
|
||||
void osSpTaskYield(void);
|
||||
s32 __osPfsGetNextPage(OSPfs* pfs, u8* bank, __OSInode* inode, __OSInodeUnit* page);
|
||||
@@ -280,7 +280,7 @@ void __osPiGetAccess(void);
|
||||
void __osPiRelAccess(void);
|
||||
void __osDevMgrMain(void* arg);
|
||||
// void func_8008C640(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE1 param_5, UNK_TYPE1 param_6, UNK_TYPE1 param_7, UNK_TYPE1 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10, UNK_TYPE4 param_11, UNK_TYPE4 param_12, UNK_TYPE4 param_13, UNK_TYPE4 param_14, UNK_TYPE4 param_15, UNK_TYPE4 param_16, UNK_TYPE4 param_17, UNK_TYPE4 param_18);
|
||||
s32 __osPiRawStartDma(s32 direction, u32 devAddr, void* dramAddr, size_t size);
|
||||
s32 __osPiRawStartDma(s32 direction, uintptr_t devAddr, void* dramAddr, size_t size);
|
||||
u16 __osSumcalc(u8* ptr, s32 length);
|
||||
s32 __osIdCheckSum(u16* ptr, u16* checkSum, u16* idSum);
|
||||
s32 __osRepairPackId(OSPfs* pfs, __OSPackId* badid, __OSPackId* newid);
|
||||
@@ -322,11 +322,11 @@ s32 __osSiDeviceBusy(void);
|
||||
s32 osJamMesg(OSMesgQueue* mq, OSMesg msg, s32 flag);
|
||||
void osSetThreadPri(OSThread* t, OSPri p);
|
||||
OSPri osGetThreadPri(OSThread* t);
|
||||
s32 __osEPiRawReadIo(OSPiHandle* handle, u32 devAddr, u32* data);
|
||||
s32 __osEPiRawReadIo(OSPiHandle* handle, uintptr_t devAddr, u32* data);
|
||||
void osViSwapBuffer(void* frameBufPtr);
|
||||
void guPositionF(float mf[4][4], f32 rot, f32 pitch, f32 yaw, f32 scale, f32 x, f32 y, f32 z);
|
||||
void guPosition(Mtx* m, f32 rot, f32 pitch, f32 yaw, f32 scale, f32 x, f32 y, f32 z);
|
||||
s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, u32 cartAddr, void* dramAddr, size_t size);
|
||||
s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, uintptr_t cartAddr, void* dramAddr, size_t size);
|
||||
OSYieldResult osSpTaskYielded(OSTask* task);
|
||||
s32 bcmp(void* __s1, void* __s2, size_t __n);
|
||||
OSTime osGetTime(void);
|
||||
@@ -359,7 +359,7 @@ void __osViInit(void);
|
||||
void __osViSwapContext(void);
|
||||
OSMesgQueue* osPiGetCmdQueue(void);
|
||||
f32 cosf(f32 __x);
|
||||
s32 osEPiReadIo(OSPiHandle* handle, u32 devAddr, u32* data);
|
||||
s32 osEPiReadIo(OSPiHandle* handle, uintptr_t devAddr, u32* data);
|
||||
void osViSetSpecialFeatures(u32 func);
|
||||
s16 coss(u16 x);
|
||||
void osSetTime(OSTime ticks);
|
||||
@@ -380,13 +380,13 @@ u32 __osGetFpcCsr(void);
|
||||
// void __osPfsCheckRamArea(void);
|
||||
// void osPfsChecker(void);
|
||||
u32 osAiGetLength(void);
|
||||
s32 osEPiWriteIo(OSPiHandle* handle, u32 devAddr, u32 data);
|
||||
s32 osEPiWriteIo(OSPiHandle* handle, uintptr_t devAddr, u32 data);
|
||||
void osMapTLBRdb(void);
|
||||
void osYieldThread(void);
|
||||
void guTranslate(Mtx* mtx, f32 x, f32 y, f32 z);
|
||||
u32 __osGetCause(void);
|
||||
s32 __osContRamWrite(OSMesgQueue* mq, s32 channel, u16 address, u8* buffer, s32 force);
|
||||
s32 __osEPiRawWriteIo(OSPiHandle* handle, u32 devAddr, u32 data);
|
||||
s32 __osEPiRawWriteIo(OSPiHandle* handle, uintptr_t devAddr, u32 data);
|
||||
s32 osSetTimer(OSTimer* t, OSTime value, OSTime interval, OSMesgQueue* mq, OSMesg msg);
|
||||
void _Ldtob(_Pft* args, u8 type);
|
||||
// void _Ldunscale(void);
|
||||
@@ -394,7 +394,7 @@ void _Genld(_Pft* px, u8 code, u8* p, s16 nsig, s16 xexp);
|
||||
ldiv_t ldiv(long numer, long denom);
|
||||
lldiv_t lldiv(long long numer, long long denom);
|
||||
void _Litob(_Pft* args, u8 type);
|
||||
s32 __osSiRawWriteIo(u32 devAddr, u32 data);
|
||||
s32 __osSiRawWriteIo(uintptr_t devAddr, u32 data);
|
||||
u32 __osSpGetStatus(void);
|
||||
void __osSpSetStatus(u32 data);
|
||||
void osCreateViManager(OSPri pri);
|
||||
@@ -1576,8 +1576,8 @@ f32 Math_Vec3f_StepTo(Vec3f* start, Vec3f* target, f32 speed);
|
||||
void Lib_Nop801004FC(void);
|
||||
void* Lib_SegmentedToVirtual(void* ptr);
|
||||
void* Lib_SegmentedToVirtualNull(void* ptr);
|
||||
void* Lib_VirtualToPhysical(void* ptr);
|
||||
void* Lib_PhysicalToVirtual(void* ptr);
|
||||
void* Lib_PhysicalToVirtualNull(void* ptr);
|
||||
void LifeMeter_Init(PlayState* play);
|
||||
void LifeMeter_UpdateColors(PlayState* play);
|
||||
s32 LifeMeter_SaveInterfaceHealth(PlayState* play);
|
||||
@@ -2401,8 +2401,8 @@ void KaleidoScopeCall_Init(PlayState* play);
|
||||
void KaleidoScopeCall_Destroy(PlayState* play);
|
||||
void KaleidoScopeCall_Update(PlayState* play);
|
||||
void KaleidoScopeCall_Draw(PlayState* play);
|
||||
// void func_80163C90(void);
|
||||
// void func_80163D80(void);
|
||||
void Transition_Init(TransitionContext* transitionCtx);
|
||||
void Transition_Destroy(TransitionContext* transitionCtx);
|
||||
// void func_80163DC0(void);
|
||||
// void func_8016418C(void);
|
||||
// void func_8016424C(void);
|
||||
@@ -2420,6 +2420,8 @@ void* TransitionFade_Init(void* param_1);
|
||||
// void TransitionFade_IsDone(void);
|
||||
// void TransitionFade_SetColor(void);
|
||||
// void TransitionFade_SetType(void);
|
||||
void TransitionOverlay_ClearLoadInfo(TransitionOverlay *overlayEntry);
|
||||
void TransitionOverlay_SetSegment(TransitionOverlay *overlayEntry, void* vramStart, void* vramEnd, uintptr_t vromStart, uintptr_t vromEnd);
|
||||
void TransitionCircle_Start(void* thisx);
|
||||
void* TransitionCircle_Init(void* thisx);
|
||||
void TransitionCircle_Destroy(void* thisx);
|
||||
@@ -2430,10 +2432,10 @@ void TransitionCircle_LoadAndSetTexture(Gfx** gfxp, TexturePtr texture, s32 fmt,
|
||||
f32 arg6);
|
||||
void TransitionCircle_Draw(void* thisx, Gfx** gfxp);
|
||||
s32 TransitionCircle_IsDone(void* thisx);
|
||||
// void func_801651B0(void);
|
||||
// void func_80165224(void);
|
||||
// void func_80165288(void);
|
||||
// void func_8016537C(void);
|
||||
void* TransitionOverlay_VramToRam(TransitionOverlay *overlayEntry, void* vramAddr);
|
||||
void TransitionOverlay_VramToRamArray(TransitionOverlay *overlayEntry, void** vramAddrs, s32 count);
|
||||
s32 TransitionOverlay_Load(TransitionOverlay *overlayEntry);
|
||||
s32 TransitionOverlay_Free(TransitionOverlay *overlayEntry);
|
||||
void func_80165438(UNK_PTR param_1);
|
||||
// void func_80165444(s32 param_1, UNK_TYPE4 param_2, UNK_TYPE4 param_3, UNK_TYPE4 param_4, UNK_TYPE4 param_5);
|
||||
// void func_80165460(void);
|
||||
|
||||
@@ -610,4 +610,12 @@ extern ActorInit Oceff_Wipe7_InitVars;
|
||||
extern ActorInit Shot_Sun_InitVars;
|
||||
extern ActorInit TG_Sw_InitVars;
|
||||
|
||||
extern TransitionInit TransitionFade_InitVars;
|
||||
extern TransitionInit TransitionTriforce_InitVars;
|
||||
extern TransitionInit TransitionWipe1_InitVars;
|
||||
extern TransitionInit TransitionWipe3_InitVars;
|
||||
extern TransitionInit TransitionWipe4_InitVars;
|
||||
extern TransitionInit TransitionCircle_InitVars;
|
||||
extern TransitionInit TransitionWipe5_InitVars;
|
||||
|
||||
#endif
|
||||
|
||||
+5
-5
@@ -47,7 +47,7 @@ typedef struct {
|
||||
/* 0x04 */ u16 transferMode;
|
||||
/* 0x06 */ u16 blockNum;
|
||||
/* 0x08 */ s32 sectorNum;
|
||||
/* 0x0C */ u32 devAddr;
|
||||
/* 0x0C */ uintptr_t devAddr;
|
||||
/* 0x10 */ u32 bmCtlShadow;
|
||||
/* 0x14 */ u32 seqCtlShadow;
|
||||
/* 0x18 */ __OSBlockInfo block[2];
|
||||
@@ -62,7 +62,7 @@ typedef struct OSPiHandle {
|
||||
/* 0x07 */ u8 relDuration;
|
||||
/* 0x08 */ u8 pulse;
|
||||
/* 0x09 */ u8 domain;
|
||||
/* 0x0C */ u32 baseAddress;
|
||||
/* 0x0C */ uintptr_t baseAddress;
|
||||
/* 0x10 */ u32 speed;
|
||||
/* 0x14 */ __OSTranxInfo transferInfo;
|
||||
} OSPiHandle; // size = 0x74
|
||||
@@ -70,7 +70,7 @@ typedef struct OSPiHandle {
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 type;
|
||||
/* 0x4 */ u32 address;
|
||||
/* 0x4 */ uintptr_t address;
|
||||
} OSPiInfo; // size = 0x8
|
||||
|
||||
|
||||
@@ -97,8 +97,8 @@ typedef struct {
|
||||
/* 0x08 */ OSMesgQueue* cmdQueue;
|
||||
/* 0x0C */ OSMesgQueue* evtQueue;
|
||||
/* 0x10 */ OSMesgQueue* acsQueue;
|
||||
/* 0x14 */ s32 (*piDmaCallback)(s32, u32, void*, size_t);
|
||||
/* 0x18 */ s32 (*epiDmaCallback)(OSPiHandle*, s32, u32, void*, size_t);
|
||||
/* 0x14 */ s32 (*piDmaCallback)(s32, uintptr_t, void*, size_t);
|
||||
/* 0x18 */ s32 (*epiDmaCallback)(OSPiHandle*, s32, uintptr_t, void*, size_t);
|
||||
} OSDevMgr; // size = 0x1C
|
||||
|
||||
typedef u64 OSTime;
|
||||
|
||||
@@ -12,8 +12,8 @@ typedef struct {
|
||||
/* 0x08 */ OSMesgQueue* cmdQueue;
|
||||
/* 0x0C */ OSMesgQueue* eventQueue;
|
||||
/* 0x10 */ OSMesgQueue* accessQueue;
|
||||
/* 0x14 */ s32 (*piDmaCallback)(s32, u32, void*, size_t);
|
||||
/* 0x18 */ s32 (*epiDmaCallback)(OSPiHandle*, s32, u32, void*, size_t);
|
||||
/* 0x14 */ s32 (*piDmaCallback)(s32, uintptr_t, void*, size_t);
|
||||
/* 0x18 */ s32 (*epiDmaCallback)(OSPiHandle*, s32, uintptr_t, void*, size_t);
|
||||
} OSMgrArgs; // size = 0x1C
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1471,9 +1471,7 @@ extern KaleidoMgrOverlay* gKaleidoMgrCurOvl;
|
||||
// extern UNK_TYPE4 D_801D0BB0;
|
||||
// extern UNK_TYPE1 D_801D0C80;
|
||||
// extern UNK_TYPE1 D_801D0CB0;
|
||||
extern const TransitionInit TransitionFade_InitVars;
|
||||
extern Gfx D_801D0D00[];
|
||||
extern const TransitionInit TransitionCircle_InitVars;
|
||||
extern s32 gDbgCamEnabled;
|
||||
// extern UNK_TYPE1 D_801D0D54;
|
||||
// extern UNK_TYPE2 D_801D0D58;
|
||||
|
||||
+2
-2
@@ -105,8 +105,8 @@ typedef enum {
|
||||
} AllocType;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 vromStart;
|
||||
/* 0x04 */ u32 vromEnd;
|
||||
/* 0x00 */ uintptr_t vromStart;
|
||||
/* 0x04 */ uintptr_t vromEnd;
|
||||
/* 0x08 */ void* vramStart;
|
||||
/* 0x0C */ void* vramEnd;
|
||||
/* 0x10 */ void* loadedRamAddr; // original name: "allocp"
|
||||
|
||||
+11
-11
@@ -4,21 +4,21 @@
|
||||
#include "ultra64.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 vromAddr; // VROM address (source)
|
||||
/* 0x04 */ void* dramAddr; // DRAM address (destination)
|
||||
/* 0x08 */ u32 size; // File Transfer size
|
||||
/* 0x0C */ char* filename; // Filename for debugging
|
||||
/* 0x10 */ s32 line; // Line for debugging
|
||||
/* 0x14 */ s32 unk14;
|
||||
/* 0x00 */ uintptr_t vromAddr; // VROM address (source)
|
||||
/* 0x04 */ void* dramAddr; // DRAM address (destination)
|
||||
/* 0x08 */ u32 size; // File Transfer size
|
||||
/* 0x0C */ char* filename; // Filename for debugging
|
||||
/* 0x10 */ s32 line; // Line for debugging
|
||||
/* 0x14 */ s32 unk14;
|
||||
/* 0x18 */ OSMesgQueue* notifyQueue; // Message queue for the notification message
|
||||
/* 0x1C */ OSMesg notifyMsg; // Completion notification message
|
||||
/* 0x1C */ OSMesg notifyMsg; // Completion notification message
|
||||
} DmaRequest; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u32 vromStart;
|
||||
/* 0x4 */ u32 vromEnd;
|
||||
/* 0x8 */ u32 romStart;
|
||||
/* 0xC */ u32 romEnd;
|
||||
/* 0x0 */ uintptr_t vromStart;
|
||||
/* 0x4 */ uintptr_t vromEnd;
|
||||
/* 0x8 */ uintptr_t romStart;
|
||||
/* 0xC */ uintptr_t romEnd;
|
||||
} DmaEntry; // size = 0x10
|
||||
|
||||
#endif
|
||||
|
||||
+2
-2
@@ -248,8 +248,8 @@ typedef struct {
|
||||
} EffectSsInit; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 vromStart;
|
||||
/* 0x04 */ u32 vromEnd;
|
||||
/* 0x00 */ uintptr_t vromStart;
|
||||
/* 0x04 */ uintptr_t vromEnd;
|
||||
/* 0x08 */ void* vramStart;
|
||||
/* 0x0C */ void* vramEnd;
|
||||
/* 0x10 */ void* loadedRamAddr;
|
||||
|
||||
+32
-6
@@ -17,13 +17,42 @@ typedef struct {
|
||||
/* 0x20 */ s32 (*isDone)(void* transition);
|
||||
} TransitionInit; // size = 0x24
|
||||
|
||||
typedef struct {
|
||||
union {
|
||||
struct {
|
||||
/* 0x00 */ u32 count : 8;
|
||||
/* 0x00 */ uintptr_t addr : 24;
|
||||
};
|
||||
/* 0x00 */ u32 word;
|
||||
} loadInfo;
|
||||
/* 0x04 */ void* vramStart;
|
||||
/* 0x08 */ void* vramEnd;
|
||||
/* 0x0C */ uintptr_t vromStart;
|
||||
/* 0x10 */ uintptr_t vromEnd;
|
||||
/* 0x14 */ TransitionInit* initInfo;
|
||||
/* 0x18 */ size_t size;
|
||||
} TransitionOverlay;
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ s16 transitionType;
|
||||
/* 0x002 */ s8 fbdemoType;
|
||||
/* 0x003 */ char unk_003[0x22B];
|
||||
/* 0x230 */ void* (*init)(void* transition);
|
||||
/* 0x234 */ void (*destroy)(void* transition);
|
||||
/* 0x238 */ void (*update)(void* transition, s32 updateRate);
|
||||
/* 0x23C */ void (*draw)(void* transition, Gfx** gfxP);
|
||||
/* 0x240 */ void (*start)(void* transition);
|
||||
/* 0x244 */ void (*setType)(void* transition, s32 type);
|
||||
/* 0x248 */ void (*setColor)(void* transition, u32 color);
|
||||
/* 0x24C */ void (*setEnvColor)(void* transition, u32 color);
|
||||
/* 0x250 */ s32 (*isDone)(void* transition);
|
||||
/* 0x254 */ char unk_254[0x4];
|
||||
} TransitionContext; // size = 0x258
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ char unk_0[0xC];
|
||||
} TransitionFade; // size = 0xC
|
||||
|
||||
extern const TransitionInit TransitionFade_InitVars;
|
||||
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ TRANSITION_CIRCLE_IN,
|
||||
/* 1 */ TRANSITION_CIRCLE_OUT,
|
||||
@@ -40,7 +69,6 @@ typedef struct {
|
||||
/* 0x14 */ u8 direction; // Direction the circle is transitioning ( In / Out )
|
||||
/* 0x15 */ u8 maskType; // Positive / Negative mask type. Value of 0 will create a black circle
|
||||
/* 0x16 */ u8 isDone; // Signals when Transition is done updating
|
||||
/* 0x17 */ UNK_TYPE1 pad_17; // struct padding
|
||||
/* 0x18 */ TexturePtr texture;
|
||||
/* 0x1C */ u8 masks;
|
||||
/* 0x1D */ u8 maskt;
|
||||
@@ -48,6 +76,4 @@ typedef struct {
|
||||
/* 0x1F */ s8 unk_1F; // Set to 0 and never used
|
||||
} TransitionCircle; // size = 0x20
|
||||
|
||||
extern const TransitionInit TransitionCircle_InitVars;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user