From d55bbcc82ce6759db38fbcbcd11122cf36bbfbec Mon Sep 17 00:00:00 2001 From: Sauraen Date: Sun, 9 Jun 2024 18:33:21 -0700 Subject: [PATCH] Improvements --- src/code/occlusionplanes.c | 2 +- src/code/sys_ucode.c | 13 +++++++++---- src/code/z_play.c | 3 ++- src/code/z_room.c | 2 +- src/debug/menu.c | 11 +++++------ 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/code/occlusionplanes.c b/src/code/occlusionplanes.c index eed0545325..7b29204dac 100644 --- a/src/code/occlusionplanes.c +++ b/src/code/occlusionplanes.c @@ -39,7 +39,7 @@ static s32 OcclusionPlane_Choose(PlayState* play, Vec3f* selCandidate){ break; } - OcclusionPlaneCandidate* cand = room->occPlaneList[c]; + OcclusionPlaneCandidate* cand = &room->occPlaneList[c]; Vec3f v[4]; for(s32 p=0; p<4; ++p){ v[p].x = cand->v[p].x; diff --git a/src/code/sys_ucode.c b/src/code/sys_ucode.c index 62912b24ea..4cb0406243 100644 --- a/src/code/sys_ucode.c +++ b/src/code/sys_ucode.c @@ -69,15 +69,20 @@ volatile s8 gF3DEX3NOCVersion = 1; s8 gF3DEX3OccMode = F3DEX3_OCC_MODE_AUTO; void SysUcode_LoadNewUcodeIfChanged() { + if (gF3DEX3OccMode == F3DEX3_OCC_MODE_ALWAYS) { + gF3DEX3NOCVersion = 0; + } else if (gF3DEX3OccMode == F3DEX3_OCC_MODE_NEVER) { + gF3DEX3NOCVersion = 1; + } // else if AUTO, controlled by occlusion planes system s8 ver = gF3DEX3ProfVersion | (gF3DEX3NOCVersion << 2); if (gLoadedF3DEX3Version == ver) { return; } ver &= 7; // make sure valid - u8* textVrom = sF3DEX3TextRomStartAddrs[ver]; + const u8* textVrom = sF3DEX3TextRomStartAddrs[ver]; u32 textSize = sF3DEX3TextRomEndAddrs[ver] - textVrom; - u8* dataVrom = sF3DEX3DataRomStartAddrs[ver]; + const u8* dataVrom = sF3DEX3DataRomStartAddrs[ver]; u32 dataSize = sF3DEX3DataRomEndAddrs[ver] - dataVrom; if (textSize > F3DEX3_TEXT_MAX_SIZE) { Fault_AddHungupAndCrash("ucode_text_too_big", __LINE__); @@ -87,8 +92,8 @@ void SysUcode_LoadNewUcodeIfChanged() { Fault_AddHungupAndCrash("ucode_data_too_big", __LINE__); return; } - DMA_REQUEST_SYNC(gF3DEX3TextBuffer, textVrom, textSize, "sys_ucode.c", __LINE__); - DMA_REQUEST_SYNC(gF3DEX3DataBuffer, dataVrom, dataSize, "sys_ucode.c", __LINE__); + DMA_REQUEST_SYNC(gF3DEX3TextBuffer, (u32)textVrom, textSize, "sys_ucode.c", __LINE__); + DMA_REQUEST_SYNC(gF3DEX3DataBuffer, (u32)dataVrom, dataSize, "sys_ucode.c", __LINE__); gLoadedF3DEX3Version = ver; } diff --git a/src/code/z_play.c b/src/code/z_play.c index e3d89dde61..068eeb7a0f 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -1245,7 +1245,8 @@ void Play_Draw(PlayState* this) { { // Only clear the FB if there is no skybox or it is solid color - s32 clearFB = this->skyboxId == SKYBOX_NONE || this->skyboxId == SKYBOX_UNSET_1D || this->envCtx.skyboxDisabled; + //s32 clearFB = this->skyboxId == SKYBOX_NONE || this->skyboxId == SKYBOX_UNSET_1D || this->envCtx.skyboxDisabled; + const s32 clearFB = 1; // For no skybox, black background u8 clearR = 0; diff --git a/src/code/z_room.c b/src/code/z_room.c index 4ebbd26f3d..e58846644e 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -606,8 +606,8 @@ s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum) { u32 size; roomCtx->prevRoom = roomCtx->curRoom; + func_80096FD4(play, &roomCtx->curRoom); roomCtx->curRoom.num = roomNum; - roomCtx->curRoom.segment = NULL; roomCtx->status = 1; ASSERT(roomNum < play->numRooms, "read_room_ID < game_play->room_rom_address.num", "../z_room.c", 1009); diff --git a/src/debug/menu.c b/src/debug/menu.c index ecd9cab333..c2beb22a36 100644 --- a/src/debug/menu.c +++ b/src/debug/menu.c @@ -41,7 +41,11 @@ void Menu_Update(Menu* this) { u8 i; if(!this->bShow && !isHoldingR && pressDLeft){ - gF3DEX3NOCVersion ^= 1; + if(gF3DEX3OccMode == F3DEX3_OCC_MODE_NEVER){ + gF3DEX3OccMode = F3DEX3_OCC_MODE_ALWAYS; + }else if(gF3DEX3OccMode == F3DEX3_OCC_MODE_ALWAYS){ + gF3DEX3OccMode = F3DEX3_OCC_MODE_NEVER; + } } if (isHoldingR && CHECK_BTN_ALL(pressBtn, BTN_L)) { @@ -86,11 +90,6 @@ void Menu_Update(Menu* this) { if (pressDRight && gF3DEX3OccMode < F3DEX3_OCC_MODE_COUNT - 1) { gF3DEX3OccMode++; } - if (gF3DEX3OccMode == F3DEX3_OCC_MODE_ALWAYS) { - gF3DEX3NOCVersion = 0; - } else if (gF3DEX3OccMode == F3DEX3_OCC_MODE_NEVER) { - gF3DEX3NOCVersion = 1; - } } #endif