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

This commit is contained in:
Yanis002
2025-04-14 13:36:07 +02:00
50 changed files with 275 additions and 197 deletions

View File

@@ -7,6 +7,12 @@ extern s32 gScreenWidth;
extern s32 gScreenHeight;
extern u32 gSystemHeapSize;
/**
* This variable being 1 indicates that the game is running on console
* or an extremely accurate emulator that can be affected by RDP lag.
*/
extern u8 gRDPTimingsExist;
void Main(void* arg);
#endif

View File

@@ -6,6 +6,8 @@
#include "z64math.h"
#include "libc/assert.h"
#define MAX_CHANNELS_PER_BANK 3
typedef enum SfxBankType {
/* 0 */ BANK_PLAYER,
/* 1 */ BANK_ITEM,
@@ -178,4 +180,36 @@ extern Vec3f gSfxDefaultPos;
extern f32 gSfxDefaultFreqAndVolScale;
extern s8 gSfxDefaultReverb;
extern SfxParams* gSfxParams[7];
extern char D_80133390[];
extern char D_80133398[];
extern u8 gSfxRequestWriteIndex;
extern u8 gSfxRequestReadIndex;
extern SfxBankEntry* gSfxBanks[7];
extern u8 gSfxBankSizes[];
extern u8 gSfxChannelLayout;
extern u16 D_801333D0;
extern Vec3f gSfxDefaultPos;
extern f32 gSfxDefaultFreqAndVolScale;
extern s8 gSfxDefaultReverb;
#if IS_AUDIO_DEBUG_ENABLED
extern u8 D_801333F0;
extern u8 gAudioSfxSwapOff;
extern u8 D_801333F8;
#endif
extern SfxBankEntry D_8016BAD0[9];
extern SfxBankEntry D_8016BC80[12];
extern SfxBankEntry D_8016BEC0[22];
extern SfxBankEntry D_8016C2E0[20];
extern SfxBankEntry D_8016C6A0[8];
extern SfxBankEntry D_8016C820[3];
extern SfxBankEntry D_8016C8B0[5];
extern ActiveSfx gActiveSfx[7][MAX_CHANNELS_PER_BANK]; // total size = 0xA8
extern u8 gSfxBankMuted[];
extern u16 gAudioSfxSwapSource[10];
extern u16 gAudioSfxSwapTarget[10];
extern u8 gAudioSfxSwapMode[10];
#endif

View File

@@ -24,12 +24,19 @@
#include "ultra64/sptask.h"
#include "ultra64/gu.h"
#include "ultra64/vi.h"
#include "ultra64/viint.h"
#include "ultra64/pi.h"
#include "ultra64/controller.h"
#include "ultra64/mbi.h"
#include "ultra64/pfs.h"
#include "ultra64/motor.h"
#include "ultra64/os_pi.h"
#include "ultra64/os_system.h"
#include "ultra64/os_vi.h"
#include "ultra64/osint.h"
#include "ultra64/piint.h"
#include "ultra64/R4300.h"
#include "ultra64/siint.h"
#include "ultra64/ucode.h"
#include "ultra64/version.h"

View File

@@ -182,4 +182,9 @@ typedef struct __OSContReadFormat {
/* 0x07 */ s8 joyY;
} __OSContReadFormat; // size = 0x8
extern u8 __osContLastCmd;
extern OSPifRam __osContPifRam;
extern OSPifRam __osPfsPifRam;
extern u8 __osMaxControllers;
#endif

8
include/ultra64/os_pi.h Normal file
View File

@@ -0,0 +1,8 @@
#ifndef ULTRA64_OS_PI_H
#define ULTRA64_OS_PI_H
#include "pi.h"
extern OSPiHandle* __osPiTable;
#endif

View File

@@ -0,0 +1,31 @@
#ifndef ULTRA64_OS_SYSTEM_H
#define ULTRA64_OS_SYSTEM_H
#include "exception.h"
#include "ultratypes.h"
extern s32 osRomType; /* Bulk or cartridge ROM. 0=cartridge 1=bulk */
extern void* osRomBase; /* Rom base address of the game image */
extern s32 osTvType; /* 0 = PAL, 1 = NTSC, 2 = MPAL */
extern s32 osResetType; /* 0 = cold reset, 1 = NMI */
extern s32 osCicId;
extern s32 osVersion;
extern u32 osMemSize; /* Memory Size */
extern s32 osAppNMIBuffer[0x10];
extern OSIntMask __OSGlobalIntMask;
#ifdef BBPLAYER
extern u32 __osBbIsBb;
extern u32 __osBbEepromSize;
extern u32 __osBbPakSize;
extern u32 __osBbFlashSize;
extern u32 __osBbEepromAddress;
extern u32 __osBbPakAddress[4];
extern u32 __osBbFlashAddress;
extern u32 __osBbSramSize;
extern u32 __osBbSramAddress;
extern u32 __osBbHackFlags;
#endif
#endif

11
include/ultra64/os_vi.h Normal file
View File

@@ -0,0 +1,11 @@
#ifndef ULTRA64_OS_VI_H
#define ULTRA64_OS_VI_H
#include "vi.h"
extern OSViMode osViModeNtscLan1;
extern OSViMode osViModePalLan1;
extern OSViMode osViModeMpalLan1;
extern OSViMode osViModeFpalLan1;
#endif

22
include/ultra64/osint.h Normal file
View File

@@ -0,0 +1,22 @@
#ifndef ULTRA64_OSINT_H
#define ULTRA64_OSINT_H
#include "time.h"
#include "thread.h"
#include "ultratypes.h"
extern __OSThreadTail __osThreadTail;
extern OSThread* __osRunningThread;
extern OSThread* __osActiveQueue;
extern OSThread* __osFaultedThread;
extern OSThread* __osRunQueue;
extern OSTimer* __osTimerList;
extern u32 __osBaseCounter;
extern OSTime __osCurrentTime;
extern u32 __osViIntrCount;
extern u32 __osTimerCounter;
extern u32 __osShutdown;
#endif

11
include/ultra64/piint.h Normal file
View File

@@ -0,0 +1,11 @@
#ifndef ULTRA64_PIINT_H
#define ULTRA64_PIINT_H
#include "ultratypes.h"
#include "pi.h"
extern OSPiHandle* __osCurrentHandle[];
extern OSMesgQueue __osPiAccessQueue;
extern u32 __osPiAccessQueueEnabled;
#endif

8
include/ultra64/siint.h Normal file
View File

@@ -0,0 +1,8 @@
#ifndef ULTRA64_SIINT_H
#define ULTRA64_SIINT_H
#include "pfs.h"
extern u8 __osPfsInodeCacheBank;
#endif

View File

@@ -1,6 +1,9 @@
#ifndef ULTRA64_VIINT_H
#define ULTRA64_VIINT_H
#include "vi.h"
#include "ultratypes.h"
#define VI_STATE_MODE_SET (1 << 0)
#define VI_STATE_XSCALE_SET (1 << 1)
#define VI_STATE_YSCALE_FACTOR_SET (1 << 2)
@@ -43,4 +46,8 @@
#define VI_CTRL_PIXEL_ADV_DEFAULT VI_CTRL_PIXEL_ADV(3)
#endif
extern OSViContext* __osViCurr;
extern OSViContext* __osViNext;
extern u32 __additional_scanline;
#endif

View File

@@ -4,66 +4,14 @@
#include "z64.h"
#include "libc64/os_malloc.h"
#include "segment_symbols.h"
#include "config.h"
#if ENABLE_HACKER_DEBUG
#include "debug.h"
#endif
struct MapData;
extern void* osRomBase;
extern s32 osTvType;
extern u32 osRomType;
extern u32 osVersion;
extern s32 osResetType;
extern s32 osCicId;
extern u32 osMemSize;
extern u8 osAppNMIBuffer[0x40];
extern u32 __osBbIsBb;
extern u32 __osBbEepromSize;
extern u32 __osBbPakSize;
extern u32 __osBbFlashSize;
extern u32 __osBbEepromAddress;
extern u32 __osBbPakAddress[4];
extern u32 __osBbFlashAddress;
extern u32 __osBbSramSize;
extern u32 __osBbSramAddress;
extern u32 __osBbHackFlags;
extern OSPiHandle* gCartHandle;
extern u32 __osPiAccessQueueEnabled;
extern OSViMode osViModePalLan1;
extern s32 osViClock;
extern u32 __osShutdown;
extern OSHWIntr __OSGlobalIntMask;
extern __OSThreadTail __osThreadTail;
extern OSThread* __osRunQueue;
extern OSThread* __osActiveQueue;
extern OSThread* __osRunningThread;
extern OSThread* __osFaultedThread;
extern OSPiHandle* __osPiTable;
extern OSPiHandle* __osCurrentHandle[];
extern OSTimer* __osTimerList;
extern OSViMode osViModeNtscLan1;
extern OSViMode osViModeMpalLan1;
extern OSViContext* __osViCurr;
extern OSViContext* __osViNext;
extern OSViMode osViModeFpalLan1;
extern OSViMode gCustomViModePal60Lan1;
extern u32 __additional_scanline;
extern OSMesgQueue gPiMgrCmdQueue;
extern u8 gViConfigModeType;
extern OSMesgQueue __osPiAccessQueue;
extern OSPiHandle __Dom1SpeedParam;
extern OSPiHandle __Dom2SpeedParam;
extern OSTime __osCurrentTime;
extern u32 __osBaseCounter;
extern u32 __osViIntrCount;
extern u32 __osTimerCounter;
extern s16 gSpoilingItems[3];
extern s16 gSpoilingItemReverts[3];
@@ -71,100 +19,10 @@ extern s16 gSpoilingItemReverts[3];
extern u64 gMojiFontTLUTs[4][4]; // original name: "moji_tlut"
extern u64 gMojiFontTex[]; // original name: "font_ff"
extern s16* gWaveSamples[9];
extern f32 gBendPitchOneOctaveFrequencies[256];
extern f32 gBendPitchTwoSemitonesFrequencies[256];
extern f32 gPitchFrequencies[];
extern u8 gDefaultShortNoteVelocityTable[16];
extern u8 gDefaultShortNoteGateTimeTable[16];
extern EnvelopePoint gDefaultEnvelope[4];
extern NoteSubEu gZeroNoteSub;
extern NoteSubEu gDefaultNoteSub;
extern u16 gHaasEffectDelaySizes[64];
extern s16 D_8012FBA8[];
extern f32 gHeadsetPanVolume[128];
extern f32 gStereoPanVolume[128];
extern f32 gDefaultPanVolume[128];
extern s16 gLowPassFilterData[16 * 8];
extern s16 gHighPassFilterData[15 * 8];
extern s32 gAudioContextInitialized;
extern u8 gIsLargeSfxBank[7];
extern u8 gChannelsPerBank[4][7];
extern u8 gUsedChannelsPerBank[4][7];
extern u8 gMorphaTransposeTable[16];
extern u8* gFrogsSongPtr;
extern OcarinaNote* gScarecrowLongSongPtr;
extern u8* gScarecrowSpawnSongPtr;
extern OcarinaSongButtons gOcarinaSongButtons[];
extern SfxParams* gSfxParams[7];
extern char D_80133390[];
extern char D_80133398[];
extern u8 gSfxRequestWriteIndex;
extern u8 gSfxRequestReadIndex;
extern SfxBankEntry* gSfxBanks[7];
extern u8 gSfxBankSizes[];
extern u8 gSfxChannelLayout;
extern u16 D_801333D0;
extern Vec3f gSfxDefaultPos;
extern f32 gSfxDefaultFreqAndVolScale;
extern s8 gSfxDefaultReverb;
#if IS_AUDIO_DEBUG_ENABLED
extern u8 D_801333F0;
extern u8 gAudioSfxSwapOff;
extern u8 D_801333F8;
#endif
extern u8 gSeqCmdWritePos;
extern u8 gSeqCmdReadPos;
extern u8 gStartSeqDisabled;
#if IS_AUDIO_DEBUG_ENABLED
extern u8 gAudioDebugPrintSeqCmd;
#endif
extern u8 gSoundOutputModes[];
extern u8 gAudioSpecId;
extern u8 D_80133418;
extern AudioSpec gAudioSpecs[18];
extern u8 __osPfsInodeCacheBank;
extern s32 __osPfsLastChannel;
extern TempoData gTempoData;
extern AudioHeapInitSizes gAudioHeapInitSizes;
extern s16 gOcarinaSongItemMap[];
extern AudioTable gSoundFontTable;
extern u8 gSequenceFontTable[];
extern u8 gSequenceTable[];
extern AudioTable gSampleBankTable;
extern struct MapData* gMapData;
extern u8 gBossMarkState;
extern f32 gBossMarkScale;
extern u32 D_8016139C;
extern PauseMapMarksData* gLoadedPauseMarkDataTable;
extern SfxBankEntry D_8016BAD0[9];
extern SfxBankEntry D_8016BC80[12];
extern SfxBankEntry D_8016BEC0[22];
extern SfxBankEntry D_8016C2E0[20];
extern SfxBankEntry D_8016C6A0[8];
extern SfxBankEntry D_8016C820[3];
extern SfxBankEntry D_8016C8B0[5];
extern ActiveSfx gActiveSfx[7][MAX_CHANNELS_PER_BANK]; // total size = 0xA8
extern u8 gSfxBankMuted[];
// ENABLE_AUDIO_DEBUGGER
extern u16 gAudioSfxSwapSource[10];
extern u16 gAudioSfxSwapTarget[10];
extern u8 gAudioSfxSwapMode[10];
extern ActiveSequence gActiveSeqs[4];
extern AudioContext gAudioCtx;
extern AudioCustomUpdateFunction gAudioCustomUpdateFunction;
extern OSPifRam __osContPifRam;
extern u8 __osContLastCmd;
extern u8 __osMaxControllers;
extern __OSInode __osPfsInodeCache;
extern OSPifRam __osPfsPifRam;
extern u8 gRDPTimingsExist; // This variable being 1 indicates that the game is running on console or an extremely accurate emulator that can be affected by RDP lag.
#endif

View File

@@ -31,8 +31,6 @@ typedef void (*AudioCustomUpdateFunction)(void);
#define SEQ_NUM_CHANNELS 16
#define SEQ_IO_VAL_NONE -1
#define MAX_CHANNELS_PER_BANK 3
#define MUTE_BEHAVIOR_3 (1 << 3) // prevent further noteSubEus from playing
#define MUTE_BEHAVIOR_4 (1 << 4) // stop something in seqLayer scripts
#define MUTE_BEHAVIOR_SOFTEN (1 << 5) // lower volume, by default to half
@@ -1221,4 +1219,52 @@ void Audio_InitSound(void);
void func_800F7170(void);
void func_800F71BC(s32 arg0);
extern s16* gWaveSamples[9];
extern f32 gBendPitchOneOctaveFrequencies[256];
extern f32 gBendPitchTwoSemitonesFrequencies[256];
extern f32 gPitchFrequencies[];
extern u8 gDefaultShortNoteVelocityTable[16];
extern u8 gDefaultShortNoteGateTimeTable[16];
extern EnvelopePoint gDefaultEnvelope[4];
extern NoteSubEu gZeroNoteSub;
extern NoteSubEu gDefaultNoteSub;
extern u16 gHaasEffectDelaySizes[64];
extern s16 D_8012FBA8[];
extern f32 gHeadsetPanVolume[128];
extern f32 gStereoPanVolume[128];
extern f32 gDefaultPanVolume[128];
extern s16 gLowPassFilterData[16 * 8];
extern s16 gHighPassFilterData[15 * 8];
extern s32 gAudioContextInitialized;
extern u8 gIsLargeSfxBank[7];
extern u8 gChannelsPerBank[4][7];
extern u8 gUsedChannelsPerBank[4][7];
extern u8 gMorphaTransposeTable[16];
extern u8 gSeqCmdWritePos;
extern u8 gSeqCmdReadPos;
extern u8 gStartSeqDisabled;
#if IS_AUDIO_DEBUG_ENABLED
extern u8 gAudioDebugPrintSeqCmd;
#endif
extern u8 gSoundOutputModes[];
extern u8 gAudioSpecId;
extern u8 D_80133418;
extern AudioSpec gAudioSpecs[18];
extern TempoData gTempoData;
extern AudioHeapInitSizes gAudioHeapInitSizes;
extern s16 gOcarinaSongItemMap[];
extern AudioTable gSequenceTable;
extern AudioTable gSoundFontTable;
extern u8 gSequenceFontTable[];
extern AudioTable gSampleBankTable;
extern ActiveSequence gActiveSeqs[4];
extern AudioContext gAudioCtx;
extern AudioCustomUpdateFunction gAudioCustomUpdateFunction;
#endif

View File

@@ -188,4 +188,9 @@ void AudioOcarina_MemoryGameInit(u8 minigameRound);
s32 AudioOcarina_MemoryGameNextNote(void);
void AudioOcarina_PlayLongScarecrowSong(void);
extern u8* gFrogsSongPtr;
extern OcarinaNote* gScarecrowLongSongPtr;
extern u8* gScarecrowSpawnSongPtr;
extern OcarinaSongButtons gOcarinaSongButtons[];
#endif

View File

@@ -1228,7 +1228,7 @@ void AudioLoad_Init(void* heap, u32 heapSize) {
}
// Set audio tables pointers
gAudioCtx.sequenceTable = (AudioTable*)gSequenceTable;
gAudioCtx.sequenceTable = &gSequenceTable;
gAudioCtx.soundFontTable = &gSoundFontTable;
gAudioCtx.sampleBankTable = &gSampleBankTable;
gAudioCtx.sequenceFontTable = gSequenceFontTable;

View File

@@ -3,7 +3,6 @@
// Symbol definition
extern AudioTable gSampleBankTable;
#pragma weak gSampleBankTable = sSampleBankTableHeader
// Externs for table

View File

@@ -4,7 +4,6 @@
// Symbol definition
extern AudioTable gSequenceTable;
#pragma weak gSequenceTable = sSequenceTableHeader
// Externs for table

View File

@@ -3,7 +3,6 @@
// Symbol definition
extern AudioTable gSoundFontTable;
#pragma weak gSoundFontTable = sSoundFontTableHeader
// Externs for table

View File

@@ -1,4 +1,5 @@
#include "boot.h"
#include "idle.h"
#include "is_debug.h"
#include "stack.h"

View File

@@ -39,8 +39,8 @@
#include "global.h"
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.2:14" \
"pal-1.0:12 pal-1.1:12"
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.2:22" \
"pal-1.0:20 pal-1.1:20"
StackEntry sDmaMgrStackInfo;
OSMesgQueue sDmaMgrMsgQueue;

Some files were not shown because too many files have changed in this diff Show More