mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-23 13:59:40 +00:00
b82f54bb95
* Decompile N64 anti-piracy checks in overlays * Fix BSS splits (I think) * Use physical address and comment on meaning Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com> --------- Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>
252 lines
8.2 KiB
C
252 lines
8.2 KiB
C
#ifndef VARIABLES_H
|
|
#define VARIABLES_H
|
|
|
|
#include "z64.h"
|
|
#include "segment_symbols.h"
|
|
|
|
extern Mtx D_01000000;
|
|
|
|
extern u32 osTvType;
|
|
extern u32 osRomBase;
|
|
extern u32 osResetType;
|
|
extern u32 osCicId;
|
|
extern u32 osMemSize;
|
|
extern u8 osAppNMIBuffer[0x40];
|
|
|
|
extern s8 D_80009430;
|
|
extern vu8 gViConfigBlack;
|
|
extern u8 gViConfigAdditionalScanLines;
|
|
extern u32 gViConfigFeatures;
|
|
extern f32 gViConfigXScale;
|
|
extern f32 gViConfigYScale;
|
|
extern OSPiHandle* gCartHandle;
|
|
extern s32 gCurrentRegion;
|
|
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 u32 __additional_scanline;
|
|
extern u8 gBuildTeam[];
|
|
extern u8 gBuildDate[];
|
|
extern u8 gBuildMakeOption[];
|
|
extern OSMesgQueue gPiMgrCmdQueue;
|
|
extern OSViMode gViConfigMode;
|
|
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 EffectSsOverlay gEffectSsOverlayTable[EFFECT_SS_TYPE_MAX];
|
|
extern Gfx D_80116280[];
|
|
extern ActorOverlay gActorOverlayTable[ACTOR_ID_MAX]; // original name: "actor_dlftbls" 801162A0
|
|
extern s32 gMaxActorId; // original name: "MaxProfile"
|
|
extern s32 gDebugCamEnabled;
|
|
extern GameStateOverlay gGameStateOverlayTable[GAMESTATE_ID_MAX];
|
|
extern u8 gWeatherMode;
|
|
extern u8 gLightConfigAfterUnderwater;
|
|
extern u8 gInterruptSongOfStorms;
|
|
extern u16 gTimeSpeed;
|
|
extern s32 gZeldaArenaLogSeverity;
|
|
extern MapData gMapDataTable;
|
|
extern s16 gSpoilingItems[3];
|
|
extern s16 gSpoilingItemReverts[3];
|
|
extern FlexSkeletonHeader* gPlayerSkelHeaders[2];
|
|
extern u8 gPlayerModelTypes[PLAYER_MODELGROUP_MAX][PLAYER_MODELGROUPENTRY_MAX];
|
|
extern Gfx* gPlayerLeftHandBgsDLs[];
|
|
extern Gfx* gPlayerLeftHandOpenDLs[];
|
|
extern Gfx* gPlayerLeftHandClosedDLs[];
|
|
extern Gfx* gPlayerLeftHandBoomerangDLs[];
|
|
extern Gfx gCullBackDList[];
|
|
extern Gfx gCullFrontDList[];
|
|
extern Gfx gEmptyDL[];
|
|
extern u32 gBitFlags[32];
|
|
extern u16 gEquipMasks[EQUIP_TYPE_MAX];
|
|
extern u16 gEquipNegMasks[EQUIP_TYPE_MAX];
|
|
extern u32 gUpgradeMasks[UPG_MAX];
|
|
extern u8 gEquipShifts[EQUIP_TYPE_MAX];
|
|
extern u8 gUpgradeShifts[UPG_MAX];
|
|
extern u16 gUpgradeCapacities[UPG_MAX][4];
|
|
extern u32 gGsFlagsMasks[4];
|
|
extern u32 gGsFlagsShifts[4];
|
|
extern void* gItemIcons[0x82];
|
|
extern u8 gItemSlots[56];
|
|
extern SceneCmdHandlerFunc gSceneCmdHandlers[SCENE_CMD_ID_MAX];
|
|
extern s16 gLinkObjectIds[2];
|
|
extern u32 gObjectTableSize;
|
|
extern RomFile gObjectTable[OBJECT_ID_MAX];
|
|
extern EntranceInfo gEntranceTable[ENTR_MAX];
|
|
extern SceneTableEntry gSceneTable[SCENE_ID_MAX];
|
|
extern u16 gSramSlotOffsets[];
|
|
// 4 16-colors palettes
|
|
extern u64 gMojiFontTLUTs[4][4]; // original name: "moji_tlut"
|
|
extern u64 gMojiFontTex[]; // original name: "font_ff"
|
|
extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[KALEIDO_OVL_MAX];
|
|
extern KaleidoMgrOverlay* gKaleidoMgrCurOvl;
|
|
extern u8 gBossMarkState;
|
|
|
|
extern s32 gScreenWidth;
|
|
extern s32 gScreenHeight;
|
|
extern Mtx gMtxClear;
|
|
extern MtxF gMtxFClear;
|
|
#if OOT_DEBUG
|
|
extern u32 gIsCtrlr2Valid;
|
|
#endif
|
|
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 OOT_DEBUG
|
|
extern u8 D_801333F0;
|
|
extern u8 gAudioSfxSwapOff;
|
|
extern u8 D_801333F8;
|
|
#endif
|
|
extern u8 gSeqCmdWritePos;
|
|
extern u8 gSeqCmdReadPos;
|
|
extern u8 gStartSeqDisabled;
|
|
#if OOT_DEBUG
|
|
extern u8 gAudioDebugPrintSeqCmd;
|
|
#endif
|
|
extern u8 gSoundModeList[];
|
|
extern u8 gAudioSpecId;
|
|
extern u8 D_80133418;
|
|
extern AudioSpec gAudioSpecs[18];
|
|
extern s32 gOverlayLogSeverity;
|
|
extern s32 gSystemArenaLogSeverity;
|
|
extern u8 __osPfsInodeCacheBank;
|
|
extern s32 __osPfsLastChannel;
|
|
|
|
extern const TempoData gTempoData;
|
|
extern const AudioHeapInitSizes gAudioHeapInitSizes;
|
|
extern s16 gOcarinaSongItemMap[];
|
|
extern u8 gSoundFontTable[];
|
|
extern u8 gSequenceFontTable[];
|
|
extern u8 gSequenceTable[];
|
|
extern u8 gSampleBankTable[];
|
|
|
|
extern SaveContext gSaveContext;
|
|
|
|
extern u8 gUseCutsceneCam;
|
|
extern u16 D_8015FCCC;
|
|
extern char D_8015FCD0[20];
|
|
extern u8 D_8015FCE4;
|
|
extern u16 gCamAtSplinePointsAppliedFrame;
|
|
extern u16 gCamEyePointAppliedFrame;
|
|
extern u16 gCamAtPointAppliedFrame;
|
|
|
|
extern LightningStrike gLightningStrike;
|
|
// TODO: These variables are here for BSS ordering but ideally they should not
|
|
// be extern. This could be fixed by putting more stuff (e.g. struct definitions)
|
|
// between gLightningStrike and gCustomLensFlareOn.
|
|
extern s16 sLightningFlashAlpha;
|
|
extern s16 sSunDepthTestX;
|
|
extern s16 sSunDepthTestY;
|
|
extern u8 gCustomLensFlareOn;
|
|
extern Vec3f gCustomLensFlarePos;
|
|
extern s16 gLensFlareScale;
|
|
extern f32 gLensFlareColorIntensity;
|
|
extern s16 gLensFlareGlareStrength;
|
|
extern MapData* gMapData;
|
|
extern f32 gBossMarkScale;
|
|
extern u32 D_8016139C;
|
|
extern PauseMapMarksData* gLoadedPauseMarkDataTable;
|
|
|
|
extern PreNmiBuff* gAppNmiBufferPtr;
|
|
extern uintptr_t gSegments[NUM_SEGMENTS];
|
|
extern Scheduler gScheduler;
|
|
extern PadMgr gPadMgr;
|
|
extern volatile OSTime gAudioThreadUpdateTimeTotalPerGfxTask;
|
|
extern volatile OSTime gGfxTaskSentToNextReadyMinusAudioThreadUpdateTime;
|
|
extern volatile OSTime gRSPAudioTimeTotal;
|
|
extern volatile OSTime gRSPGfxTimeTotal;
|
|
extern volatile OSTime gRDPTimeTotal;
|
|
extern volatile OSTime gGraphUpdatePeriod;
|
|
extern volatile OSTime gAudioThreadUpdateTimeStart;
|
|
extern volatile OSTime gAudioThreadUpdateTimeAcc;
|
|
extern volatile OSTime gRSPAudioTimeAcc;
|
|
extern volatile OSTime gRSPGfxTimeAcc;
|
|
extern volatile OSTime gRSPOtherTimeAcc;
|
|
extern volatile OSTime D_8016A578;
|
|
extern volatile OSTime gRDPTimeAcc;
|
|
|
|
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];
|
|
extern ActiveSequence gActiveSeqs[4];
|
|
extern AudioContext gAudioCtx;
|
|
extern AudioCustomUpdateFunction gAudioCustomUpdateFunction;
|
|
|
|
extern u32 __osMalloc_FreeBlockTest_Enable;
|
|
extern Arena gSystemArena;
|
|
extern OSPifRam __osContPifRam;
|
|
extern u8 __osContLastCmd;
|
|
extern u8 __osMaxControllers;
|
|
extern __OSInode __osPfsInodeCache;
|
|
extern OSPifRam __osPfsPifRam;
|
|
extern u16 gZBuffer[SCREEN_HEIGHT][SCREEN_WIDTH]; // 0x25800 bytes
|
|
extern u64 gGfxSPTaskOutputBuffer[0x3000]; // 0x18000 bytes
|
|
extern u64 gGfxSPTaskYieldBuffer[OS_YIELD_DATA_SIZE / sizeof(u64)]; // 0xC00 bytes
|
|
extern u64 gGfxSPTaskStack[SP_DRAM_STACK_SIZE64]; // 0x400 bytes
|
|
extern GfxPool gGfxPools[2]; // 0x24820 bytes
|
|
extern u8 gAudioHeap[0x38000]; // 0x38000 bytes
|
|
|
|
#endif
|