From 277ce1c0d3a9ab46315a0de61d5bb3b36e5f1b76 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Sep 2024 22:55:06 +0200 Subject: [PATCH] [headers 8] Add `main.h`, `segmented_address.h`, and changes for `main.c` symbols (#2151) * [headers 8] Add main.h and changes for main.c symbols * fix gSystemHeapSize is size_t only in MM * segmented_address.h * rm now useless include * actually commit segmented_address.h, oops * rm gGraphThread (faulty copypaste from MM) * bss --- include/macros.h | 1 - include/main.h | 12 +++++++++++ include/padmgr.h | 2 ++ include/sched.h | 2 ++ include/segmented_address.h | 11 ++++++++++ include/variables.h | 3 --- include/z64.h | 2 ++ src/code/fault_gc.c | 2 +- src/code/main.c | 20 ++++++++++++------- src/code/sys_math3d.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../actors/ovl_player_actor/z_player.c | 2 +- 12 files changed, 46 insertions(+), 15 deletions(-) create mode 100644 include/main.h create mode 100644 include/segmented_address.h diff --git a/include/macros.h b/include/macros.h index e39e64b76c..913be31989 100644 --- a/include/macros.h +++ b/include/macros.h @@ -19,7 +19,6 @@ #define PHYSICAL_TO_VIRTUAL(addr) (void*)((uintptr_t)(addr) + 0x80000000) #define VIRTUAL_TO_PHYSICAL(addr) (uintptr_t)((u8*)(addr) - 0x80000000) -#define SEGMENTED_TO_VIRTUAL(addr) PHYSICAL_TO_VIRTUAL(gSegments[SEGMENT_NUMBER(addr)] + SEGMENT_OFFSET(addr)) #define ABS(x) ((x) >= 0 ? (x) : -(x)) #define DECR(x) ((x) == 0 ? 0 : --(x)) diff --git a/include/main.h b/include/main.h new file mode 100644 index 0000000000..495a0b9a9c --- /dev/null +++ b/include/main.h @@ -0,0 +1,12 @@ +#ifndef MAIN_H +#define MAIN_H + +#include "ultra64.h" + +extern s32 gScreenWidth; +extern s32 gScreenHeight; +extern u32 gSystemHeapSize; + +void Main(void* arg); + +#endif diff --git a/include/padmgr.h b/include/padmgr.h index 7078c90078..d22762a2f4 100644 --- a/include/padmgr.h +++ b/include/padmgr.h @@ -101,4 +101,6 @@ void PadMgr_RumbleSet(PadMgr* padMgr, u8* enable); } \ (void)0 +extern PadMgr gPadMgr; + #endif diff --git a/include/sched.h b/include/sched.h index 86db3e66f7..e170817015 100644 --- a/include/sched.h +++ b/include/sched.h @@ -67,4 +67,6 @@ typedef struct Scheduler { void Sched_Notify(Scheduler* sc); void Sched_Init(Scheduler* sc, void* stack, OSPri priority, u8 viModeType, UNK_TYPE arg4, IrqMgr* irqMgr); +extern Scheduler gScheduler; + #endif diff --git a/include/segmented_address.h b/include/segmented_address.h new file mode 100644 index 0000000000..a4d05c74f3 --- /dev/null +++ b/include/segmented_address.h @@ -0,0 +1,11 @@ +#ifndef SEGMENTED_ADDRESS_H +#define SEGMENTED_ADDRESS_H + +#include "ultra64.h" +#include "stdint.h" + +extern uintptr_t gSegments[NUM_SEGMENTS]; + +#define SEGMENTED_TO_VIRTUAL(addr) (void*)(gSegments[SEGMENT_NUMBER(addr)] + SEGMENT_OFFSET(addr) + K0BASE) + +#endif diff --git a/include/variables.h b/include/variables.h index 9c4521c5b5..c0bf4acb5b 100644 --- a/include/variables.h +++ b/include/variables.h @@ -102,8 +102,6 @@ extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[KALEIDO_OVL_MAX]; extern KaleidoMgrOverlay* gKaleidoMgrCurOvl; extern u8 gBossMarkState; -extern s32 gScreenWidth; -extern s32 gScreenHeight; #if OOT_DEBUG extern u32 gIsCtrlr2Valid; #endif @@ -200,7 +198,6 @@ extern u32 D_8016139C; extern PauseMapMarksData* gLoadedPauseMarkDataTable; extern PreNmiBuff* gAppNmiBufferPtr; -extern uintptr_t gSegments[NUM_SEGMENTS]; extern Scheduler gScheduler; extern PadMgr gPadMgr; extern IrqMgr gIrqMgr; diff --git a/include/z64.h b/include/z64.h index 377a760ce5..03354915d0 100644 --- a/include/z64.h +++ b/include/z64.h @@ -67,6 +67,8 @@ #include "sys_math3d.h" #include "fp_math.h" #include "sys_matrix.h" +#include "main.h" +#include "segmented_address.h" #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 240 diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c index 857cc4b885..67dbb34569 100644 --- a/src/code/fault_gc.c +++ b/src/code/fault_gc.c @@ -42,7 +42,7 @@ */ #if PLATFORM_GC -#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-eu-mq-dbg:208 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224" \ +#pragma increment_block_number "gc-eu:208 gc-eu-mq:208 gc-eu-mq-dbg:208 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224" \ "gc-us-mq:224" #include "global.h" diff --git a/src/code/main.c b/src/code/main.c index ab274c40ea..34b0bfaf1a 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -1,3 +1,16 @@ +#include "ultra64.h" + +#pragma increment_block_number "gc-eu:80 gc-eu-mq:80 gc-jp:80 gc-jp-ce:80 gc-jp-mq:80 gc-us:80 gc-us-mq:80" + +struct PreNmiBuff* gAppNmiBufferPtr; + +#include "segmented_address.h" + +struct Scheduler gScheduler; +struct PadMgr gPadMgr; +struct IrqMgr gIrqMgr; +uintptr_t gSegments[NUM_SEGMENTS]; + #include "global.h" #include "fault.h" #include "stack.h" @@ -14,13 +27,6 @@ s32 gScreenWidth = SCREEN_WIDTH; s32 gScreenHeight = SCREEN_HEIGHT; u32 gSystemHeapSize = 0; -#pragma increment_block_number "gc-eu:208 gc-eu-mq:208 gc-jp:208 gc-jp-ce:208 gc-jp-mq:208 gc-us:208 gc-us-mq:208" - -PreNmiBuff* gAppNmiBufferPtr; -Scheduler gScheduler; -PadMgr gPadMgr; -IrqMgr gIrqMgr; -uintptr_t gSegments[NUM_SEGMENTS]; OSThread sGraphThread; STACK(sGraphStack, 0x1800); STACK(sSchedStack, 0x600); diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index 570da1ab01..1e81ad6f86 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -5,7 +5,7 @@ #include "macros.h" #include "sys_math3d.h" -#pragma increment_block_number "gc-eu:106 gc-eu-mq:106 gc-jp:106 gc-jp-ce:106 gc-jp-mq:106 gc-us:106 gc-us-mq:106" +#pragma increment_block_number "gc-eu:105 gc-eu-mq:105 gc-jp:105 gc-jp-ce:105 gc-jp-mq:105 gc-us:105 gc-us-mq:105" s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index d59c379b4d..ecef2cf48d 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:148 gc-eu-mq:148 gc-jp:150 gc-jp-ce:150 gc-jp-mq:150 gc-us:150 gc-us-mq:150" +#pragma increment_block_number "gc-eu:145 gc-eu-mq:145 gc-jp:147 gc-jp-ce:147 gc-jp-mq:147 gc-us:147 gc-us-mq:147" #define FLAGS ACTOR_FLAG_4 diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 04988730fb..6317f9c5e9 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -366,7 +366,7 @@ static s32 D_80858AA4; static Vec3f sInteractWallCheckResult; static Input* sControlInput; -#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" +#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" // .data