Merge remote-tracking branch 'decomp/main' into decomp_merge

This commit is contained in:
Yanis002
2025-03-30 13:41:26 +02:00
119 changed files with 538 additions and 455 deletions

View File

@@ -44,7 +44,7 @@ typedef enum AudioThreadCmdOp {
/* 0xE1 */ AUDIOCMD_OP_GLOBAL_SET_SFX_FONT,
/* 0xE2 */ AUDIOCMD_OP_GLOBAL_SET_INSTRUMENT_FONT,
/* 0xE3 */ AUDIOCMD_OP_GLOBAL_POP_PERSISTENT_CACHE,
/* 0xF0 */ AUDIOCMD_OP_GLOBAL_SET_SOUND_MODE = 0xF0,
/* 0xF0 */ AUDIOCMD_OP_GLOBAL_SET_SOUND_OUTPUT_MODE = 0xF0,
/* 0xF1 */ AUDIOCMD_OP_GLOBAL_MUTE,
/* 0xF2 */ AUDIOCMD_OP_GLOBAL_UNMUTE,
/* 0xF3 */ AUDIOCMD_OP_GLOBAL_SYNC_LOAD_INSTRUMENT,
@@ -412,12 +412,12 @@ typedef enum AudioThreadCmdOp {
AudioThread_QueueCmdS32(AUDIO_MK_CMD(AUDIOCMD_OP_GLOBAL_POP_PERSISTENT_CACHE, 0, 0, 0), tableType)
/**
* Change the sound mode of audio
* Change the sound output mode
*
* @param soundMode (s32) see the `SoundMode` enum
* @param soundOutputMode (s32) see the `SoundOutputMode` enum
*/
#define AUDIOCMD_GLOBAL_SET_SOUND_MODE(soundMode) \
AudioThread_QueueCmdS32(AUDIO_MK_CMD(AUDIOCMD_OP_GLOBAL_SET_SOUND_MODE, 0, 0, 0), soundMode)
#define AUDIOCMD_GLOBAL_SET_SOUND_OUTPUT_MODE(soundOutputMode) \
AudioThread_QueueCmdS32(AUDIO_MK_CMD(AUDIOCMD_OP_GLOBAL_SET_SOUND_OUTPUT_MODE, 0, 0, 0), soundOutputMode)
/**
* Mute all sequence players

View File

@@ -4,38 +4,31 @@
#include "z64.h"
#include "macros.h"
void bootproc(void);
void Main_ThreadEntry(void* arg);
void Idle_ThreadEntry(void* arg);
void ViConfig_UpdateVi(u32 black);
void ViConfig_UpdateBlack(void);
#if DEBUG_FEATURES
void isPrintfInit(void);
#endif
void rmonPrintf(const char* fmt, ...);
#if DEBUG_FEATURES
void* is_proutSyncPrintf(void* arg, const char* str, size_t count);
NORETURN void func_80002384(const char* exp, const char* file, int line);
#endif
OSPiHandle* osDriveRomInit(void);
void Mio0_Decompress(u8* src, u8* dst);
void FlagSet_Update(PlayState* play); // ENABLE_EVENT_EDITOR
void SaveContext_Init(void);
void* MemCpy(void* dest, const void* src, s32 len);
void MapMark_Init(PlayState* play);
void MapMark_ClearPointers(PlayState* play);
void MapMark_Draw(PlayState* play);
void Sched_FlushTaskQueue(void);
void PlayerCall_InitFuncPtrs(void);
void TransitionTile_Destroy(TransitionTile* this);
TransitionTile* TransitionTile_Init(TransitionTile* this, s32 cols, s32 rows);
void TransitionTile_Draw(TransitionTile* this, Gfx** gfxP);
void TransitionTile_Update(TransitionTile* this);
void TransitionTriforce_Start(void* thisx);
void* TransitionTriforce_Init(void* thisx);
void TransitionTriforce_Destroy(void* thisx);
@@ -44,6 +37,7 @@ void TransitionTriforce_SetColor(void* thisx, u32 color);
void TransitionTriforce_SetType(void* thisx, s32 type);
void TransitionTriforce_Draw(void* thisx, Gfx** gfxP);
s32 TransitionTriforce_IsDone(void* thisx);
void TransitionWipe_Start(void* thisx);
void* TransitionWipe_Init(void* thisx);
void TransitionWipe_Destroy(void* thisx);
@@ -52,6 +46,7 @@ void TransitionWipe_Draw(void* thisx, Gfx** gfxP);
s32 TransitionWipe_IsDone(void* thisx);
void TransitionWipe_SetType(void* thisx, s32 type);
void TransitionWipe_SetColor(void* thisx, u32 color);
void TransitionCircle_Start(void* thisx);
void* TransitionCircle_Init(void* thisx);
void TransitionCircle_Destroy(void* thisx);
@@ -61,6 +56,7 @@ s32 TransitionCircle_IsDone(void* thisx);
void TransitionCircle_SetType(void* thisx, s32 type);
void TransitionCircle_SetColor(void* thisx, u32 color);
void TransitionCircle_SetUnkColor(void* thisx, u32 color);
void TransitionFade_Start(void* thisx);
void* TransitionFade_Init(void* thisx);
void TransitionFade_Destroy(void* thisx);
@@ -70,24 +66,6 @@ s32 TransitionFade_IsDone(void* thisx);
void TransitionFade_SetColor(void* thisx, u32 color);
void TransitionFade_SetType(void* thisx, s32 type);
void PreRender_SetValuesSave(PreRender* this, u32 width, u32 height, void* fbuf, void* zbuf, void* cvg);
void PreRender_Init(PreRender* this);
void PreRender_SetValues(PreRender* this, u32 width, u32 height, void* fbuf, void* zbuf);
void PreRender_Destroy(PreRender* this);
// ENABLE_PAUSE_BG_AA
void func_800C170C(PreRender* this, Gfx** gfxP, void* buf, void* bufSave, u32 r, u32 g, u32 b, u32 a);
void func_800C1AE8(PreRender* this, Gfx** gfxP, void* fbuf, void* fbufSave);
void PreRender_SaveZBuffer(PreRender* this, Gfx** gfxP);
void PreRender_SaveFramebuffer(PreRender* this, Gfx** gfxP);
void PreRender_DrawCoverage(PreRender* this, Gfx** gfxP);
void PreRender_RestoreZBuffer(PreRender* this, Gfx** gfxP);
void func_800C213C(PreRender* this, Gfx** gfxP);
void PreRender_RestoreFramebuffer(PreRender* this, Gfx** gfxP);
void PreRender_CopyImageRegion(PreRender* this, Gfx** gfxP);
void PreRender_ApplyFilters(PreRender* this);
void Graph_ThreadEntry(void*);
void SysCfb_Init(s32 n64dd);
void* SysCfb_GetFbPtr(s32 idx);
void* SysCfb_GetFbEnd(void);
@@ -97,10 +75,6 @@ void RcpUtils_Reset(void);
void SystemHeap_Init(void* start, u32 size);
f32 absf(f32);
void Regs_InitData(PlayState* play);
#if ENABLE_PROFILER
#include "debug/profiler_inline.h"
#endif

View File

@@ -125,4 +125,6 @@ void Graph_CloseDisps(Gfx** dispRefs, GraphicsContext* gfxCtx, const char* file,
#endif
void Graph_ThreadEntry(void*);
#endif

View File

@@ -32,5 +32,6 @@ void SystemArena_Display(void);
#endif
extern Arena gSystemArena;
extern s32 gSystemArenaLogSeverity;
#endif

View File

@@ -26,4 +26,19 @@ typedef struct PreRender {
/* 0x4C */ u32 unk_4C;
} PreRender; // size = 0x50
void PreRender_SetValuesSave(PreRender* this, u32 width, u32 height, void* fbuf, void* zbuf, void* cvg);
void PreRender_Init(PreRender* this);
void PreRender_SetValues(PreRender* this, u32 width, u32 height, void* fbuf, void* zbuf);
void PreRender_Destroy(PreRender* this);
void func_800C170C(PreRender* this, Gfx** gfxP, void* buf, void* bufSave, u32 r, u32 g, u32 b, u32 a);
void func_800C1AE8(PreRender* this, Gfx** gfxP, void* fbuf, void* fbufSave);
void PreRender_SaveZBuffer(PreRender* this, Gfx** gfxP);
void PreRender_SaveFramebuffer(PreRender* this, Gfx** gfxP);
void PreRender_DrawCoverage(PreRender* this, Gfx** gfxP);
void PreRender_RestoreZBuffer(PreRender* this, Gfx** gfxP);
void func_800C213C(PreRender* this, Gfx** gfxP);
void PreRender_RestoreFramebuffer(PreRender* this, Gfx** gfxP);
void PreRender_CopyImageRegion(PreRender* this, Gfx** gfxP);
void PreRender_ApplyFilters(PreRender* this);
#endif

View File

@@ -5,6 +5,8 @@
#include "ultra64.h"
#include "versions.h"
struct PlayState;
#define REG_GROUPS 29 // number of REG groups, i.e. REG, SREG, OREG, etc.
#define REG_PAGES 6
#define REGS_PER_PAGE 16
@@ -419,6 +421,8 @@ typedef struct RegEditor {
/* 0x14 */ s16 data[REG_GROUPS * REGS_PER_GROUP]; // Accessed through *REG macros, see regs.h
} RegEditor; // size = 0x15D4
void Regs_InitData(struct PlayState* play);
extern RegEditor* gRegEditor;
#endif

View File

@@ -69,6 +69,7 @@ typedef struct Scheduler {
void Sched_Notify(Scheduler* sc);
void Sched_Init(Scheduler* sc, void* stack, OSPri priority, u8 viModeType, UNK_TYPE arg4, IrqMgr* irqMgr);
void Sched_FlushTaskQueue(void);
extern Scheduler gScheduler;

View File

@@ -56,7 +56,7 @@ typedef enum SeqCmdSetupCmdOp {
// Subset of `SEQCMD_OP_GLOBAL_CMD`
typedef enum SeqCmdSubCmdOp {
/* 0x0 */ SEQCMD_SUB_OP_GLOBAL_SET_SOUND_MODE,
/* 0x0 */ SEQCMD_SUB_OP_GLOBAL_SET_SOUND_OUTPUT_MODE,
/* 0x1 */ SEQCMD_SUB_OP_GLOBAL_DISABLE_NEW_SEQUENCES
} SeqCmdSubCmdOp;
@@ -479,12 +479,12 @@ typedef enum SeqCmdSubCmdOp {
*/
/**
* Change the sound mode of audio
* Change the sound output mode
*
* @param soundMode see the `SoundMode` enum
* @param soundOutputMode see the `SoundOutputMode` enum
*/
#define SEQCMD_SET_SOUND_MODE(soundMode) \
Audio_QueueSeqCmd((SEQCMD_OP_GLOBAL_CMD << 28) | (SEQCMD_SUB_OP_GLOBAL_SET_SOUND_MODE << 8) | (u8)(soundMode))
#define SEQCMD_SET_SOUND_OUTPUT_MODE(soundOutputMode) \
Audio_QueueSeqCmd((SEQCMD_OP_GLOBAL_CMD << 28) | (SEQCMD_SUB_OP_GLOBAL_SET_SOUND_OUTPUT_MODE << 8) | (u8)(soundOutputMode))
/**
* Disable (or reenable) new sequences from starting

View File

@@ -32,13 +32,8 @@ extern u32 __osBbSramSize;
extern u32 __osBbSramAddress;
extern u32 __osBbHackFlags;
extern s8 D_80009430;
extern vu8 gViConfigBlack;
extern u8 gViConfigAdditionalScanLines;
extern u32 gViConfigFeatures;
extern f32 gViConfigXScale;
extern f32 gViConfigYScale;
extern OSPiHandle* gCartHandle;
extern u32 __osPiAccessQueueEnabled;
extern OSViMode osViModePalLan1;
extern s32 osViClock;
@@ -59,11 +54,13 @@ extern OSViContext* __osViNext;
extern OSViMode osViModeFpalLan1;
extern OSViMode gCustomViModePal60Lan1;
extern u32 __additional_scanline;
extern const char* gBuildAuthor;
extern const char* gCommitAuthor;
extern const char* gBuildDate;
extern const char* gBuildGitVersion;
extern const char* gCommitGitString;
extern const char gBuildAuthor[];
extern const char gCommitAuthor[];
extern const char gBuildDate[];
extern const char gBuildGitVersion[];
extern const char gCommitGitString[];
extern OSMesgQueue gPiMgrCmdQueue;
extern OSViMode gViConfigMode;
extern u8 gViConfigModeType;
@@ -80,7 +77,6 @@ extern s16 gSpoilingItemReverts[3];
// 4 16-colors palettes
extern u64 gMojiFontTLUTs[4][4]; // original name: "moji_tlut"
extern u64 gMojiFontTex[]; // original name: "font_ff"
extern u8 gBossMarkState;
extern s16* gWaveSamples[9];
extern f32 gBendPitchOneOctaveFrequencies[256];
@@ -130,11 +126,10 @@ extern u8 gStartSeqDisabled;
#if IS_AUDIO_DEBUG_ENABLED
extern u8 gAudioDebugPrintSeqCmd;
#endif
extern u8 gSoundModeList[];
extern u8 gSoundOutputModes[];
extern u8 gAudioSpecId;
extern u8 D_80133418;
extern AudioSpec gAudioSpecs[18];
extern s32 gSystemArenaLogSeverity;
extern u8 __osPfsInodeCacheBank;
extern s32 __osPfsLastChannel;
@@ -147,6 +142,7 @@ extern u8 gSequenceTable[];
extern AudioTable gSampleBankTable;
extern struct MapData* gMapData;
extern u8 gBossMarkState;
extern f32 gBossMarkScale;
extern u32 D_8016139C;
extern PauseMapMarksData* gLoadedPauseMarkDataTable;

View File

@@ -42,4 +42,14 @@ void ViMode_Init(ViMode* viMode);
void ViMode_Destroy(ViMode* viMode);
void ViMode_Update(ViMode* viMode, Input* input);
void ViConfig_UpdateVi(u32 black);
void ViConfig_UpdateBlack(void);
extern s8 D_80009430;
extern vu8 gViConfigBlack;
extern u8 gViConfigAdditionalScanLines;
extern u32 gViConfigFeatures;
extern f32 gViConfigXScale;
extern f32 gViConfigYScale;
#endif

View File

@@ -75,12 +75,12 @@ typedef enum SoundSetting {
/* 3 */ SOUND_SETTING_SURROUND
} SoundSetting;
typedef enum SoundMode {
/* 0 */ SOUNDMODE_STEREO,
/* 1 */ SOUNDMODE_HEADSET,
/* 2 */ SOUNDMODE_SURROUND,
/* 3 */ SOUNDMODE_MONO
} SoundMode;
typedef enum SoundOutputMode {
/* 0 */ SOUND_OUTPUT_STEREO,
/* 1 */ SOUND_OUTPUT_HEADSET,
/* 2 */ SOUND_OUTPUT_SURROUND,
/* 3 */ SOUND_OUTPUT_MONO
} SoundOutputMode;
typedef enum AdsrStatus {
/* 0 */ ADSR_STATE_DISABLED,
@@ -936,7 +936,7 @@ typedef struct AudioContext {
/* 0x2890 */ s32 maxAudioCmds;
/* 0x2894 */ s32 numNotes;
/* 0x2898 */ s16 maxTempo; // Maximum possible tempo (seqTicks per minute), using every tick as a seqTick to process a .seq file
/* 0x289A */ s8 soundMode;
/* 0x289A */ s8 soundOutputMode;
/* 0x289C */ s32 totalTaskCount; // The total number of times the top-level function on the audio thread has run since audio was initialized
/* 0x28A0 */ s32 curAudioFrameDmaCount;
/* 0x28A4 */ s32 rspTaskIndex;
@@ -1204,7 +1204,7 @@ void func_800F64E0(u8 arg0);
void Audio_ToggleMalonSinging(u8 malonSingingDisabled);
void Audio_SetEnvReverb(s8 reverb);
void Audio_SetCodeReverb(s8 reverb);
void Audio_SetSoundMode(s8 soundSetting);
void Audio_SetSoundOutputMode(s8 soundSetting);
void Audio_SetBaseFilter(u8);
void Audio_SetExtraFilter(u8);
void Audio_SetCutsceneFlag(s8 flag);

View File

@@ -3,6 +3,8 @@
#include "ultra64.h"
struct PlayState;
#define MAP_MARK_NONE -1
#define MAP_MARK_CHEST 0
#define MAP_MARK_BOSS 1
@@ -20,6 +22,10 @@ typedef struct MapMarkIconData {
typedef MapMarkIconData MapMarkData[3]; // size = 0x72
void MapMark_Init(struct PlayState* play);
void MapMark_ClearPointers(struct PlayState* play);
void MapMark_Draw(struct PlayState* play);
extern MapMarkData* gMapMarkDataTable[];
#endif

View File

@@ -1008,6 +1008,7 @@ typedef enum IngoRaceState {
#define EVENTINF_30 0x30
void SaveContext_Init(void);
extern SaveContext gSaveContext;