From 503ec0a01b1b96bdc3f60533fac636a07cf6f571 Mon Sep 17 00:00:00 2001 From: Lywx Date: Wed, 14 Feb 2024 12:32:33 -0600 Subject: [PATCH] Splitted buffers to a new file (#126) * Splitted buffers * Moved buffers to latest overlay * Removed sizes and moved buffers to a new overlays segment * Removed addrs from libultra * Readded symbols into symbol_addrs * rename buffers to fox_buffers --------- Co-authored-by: Alejandro Javier Asenjo Nitti --- include/variables.h | 15 +++++++-------- linker_scripts/us/symbol_addrs_libultra.txt | 4 ++-- linker_scripts/us/symbol_addrs_nlib_vars.txt | 8 ++++---- src/main/fox_buffers.c | 10 ++++++++++ yamls/us/overlays.yaml | 12 +++++++++++- 5 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 src/main/fox_buffers.c diff --git a/include/variables.h b/include/variables.h index 6c18884d..09f5629a 100644 --- a/include/variables.h +++ b/include/variables.h @@ -819,14 +819,13 @@ extern f32 gStereoPanVolume[]; extern f32 gDefaultPanVolume[]; // buffers -extern u64 gDramStack[SP_DRAM_STACK_SIZE64]; -extern u8 gOSYieldData[OS_YIELD_DATA_SIZE]; +extern u64 gDramStack[]; +extern u8 gOSYieldData[]; extern FrameBuffer gZBuffer; // z buffer -extern u8 gTaskOutputBuffer[0x30000]; -extern u8 gTaskOutputBufferEnd; -extern u8 gAudioDataBuffer[0xB0000]; -extern u16 gTextureRenderBuffer[0x3C40]; -extern u16 gFillBuffer[3 * SCREEN_WIDTH]; -extern FrameBuffer gFrameBuffers[3]; // 8038F800 +extern u8 gTaskOutputBuffer[]; +extern u8 gAudioDataBuffer[]; +extern u16 gTextureRenderBuffer[]; +extern u16 gFillBuffer[]; +extern FrameBuffer gFrameBuffers[]; // 8038F800 #endif // VARIABLES_H diff --git a/linker_scripts/us/symbol_addrs_libultra.txt b/linker_scripts/us/symbol_addrs_libultra.txt index 87add7cf..ee40be01 100644 --- a/linker_scripts/us/symbol_addrs_libultra.txt +++ b/linker_scripts/us/symbol_addrs_libultra.txt @@ -66,7 +66,7 @@ __osSpRawWriteIo = 0x8002E1E0; __osSpRawReadIo = 0x8002E230; osCreatePiManager = 0x800227A0; ramromMain = 0x8002296C; -osSetThreadPri = 0x80022A80; +osSetThreadPri = 0x80022A80; osInitialize = 0x80022B60; osGetTime = 0x80023000; __sinf = 0x80023090; @@ -243,7 +243,7 @@ __rmonRunRCP = 0x8002E3BC; __osContinitialized = 0x800C7CC0; osViModeNtscLan1 = 0x800C7CD0; -osViModePalLan1 = 0x800C7D20; +osViModePalLan1 = 0x800C7D20; osViModeMpalLan1 = 0x800C7D70; __osViDevMgr = 0x800C7DC0; //size:0x1C __osPiDevMgr = 0x800C7DE0; //size:0x1C diff --git a/linker_scripts/us/symbol_addrs_nlib_vars.txt b/linker_scripts/us/symbol_addrs_nlib_vars.txt index 9225515d..07141cdd 100644 --- a/linker_scripts/us/symbol_addrs_nlib_vars.txt +++ b/linker_scripts/us/symbol_addrs_nlib_vars.txt @@ -97,7 +97,7 @@ sRandSeed3 = 0x8013B3AC; sSeededRandSeed1 = 0x8013B3B0; sSeededRandSeed2 = 0x8013B3B4; -// matrix +// matrix gIdentityMtx = 0x800C4620; gIdentityMatrix = 0x800C4660; gGfxMatrix = 0x8013B3C0; @@ -105,18 +105,18 @@ sGfxMatrixStack = 0x8013B3C8; gCalcMatrix = 0x8013BBC8; sCalcMatrixStack = 0x8013BBD0; -// memory +// memory sMemoryBuffer = 0x8013C3D0; // size:0x8800 sMemoryPtr = 0x80144BD0; // thread 7 sTimerTasks = 0x80144BE0; -// save +// save gSaveIOBuffer = 0x80144F60; sPrevSaveData = 0x80145160; -// fault +// fault gFaultMgr = 0x80145360; // size:0x9D8 sFaultCharIndex = 0x800C46F0; sFaultCharPixelFlags = 0x800C4770; diff --git a/src/main/fox_buffers.c b/src/main/fox_buffers.c new file mode 100644 index 00000000..344b2bd9 --- /dev/null +++ b/src/main/fox_buffers.c @@ -0,0 +1,10 @@ +#include "global.h" + +u64 gDramStack[SP_DRAM_STACK_SIZE64]; +u8 gOSYieldData[OS_YIELD_DATA_SIZE]; +FrameBuffer gZBuffer; // z buffer +u8 gTaskOutputBuffer[0x30000]; +u8 gAudioDataBuffer[0xB0000]; +u16 gTextureRenderBuffer[0x3C40]; +u16 gFillBuffer[3 * SCREEN_WIDTH]; +FrameBuffer gFrameBuffers[3]; diff --git a/yamls/us/overlays.yaml b/yamls/us/overlays.yaml index 97a9f4e2..27958b76 100644 --- a/yamls/us/overlays.yaml +++ b/yamls/us/overlays.yaml @@ -216,4 +216,14 @@ - [0xEFFA50, .data, fox_unused] - { start: 0xEFFAE0, type: .bss, vram: 0x801875C0, name: fox_unused } - - [0xEFFAE0] \ No newline at end of file + - name: fox_buffers + type: code + dir: main + start: 0xEFFB74 + vram: 0x80281000 + bss_size: 0x17F300 + exclusive_ram_id: buffers + subsegments: + - { start: 0xEFFB74, type: .bss, vram: 0x80281000, name: fox_buffers } + + - [0xEFFB74] \ No newline at end of file