From 35c24dcc6804fa3c25d5e8841a8b285213dfef2b Mon Sep 17 00:00:00 2001 From: The_SJG4 Date: Tue, 14 Jul 2026 18:58:30 -0400 Subject: [PATCH 1/3] Update z_play.c Add green screen mode functionality to rendering. --- soh/src/code/z_play.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/soh/src/code/z_play.c b/soh/src/code/z_play.c index db5c8cb0ea4..4806099d797 100644 --- a/soh/src/code/z_play.c +++ b/soh/src/code/z_play.c @@ -1372,7 +1372,11 @@ void Play_Draw(PlayState* play) { gSPSegment(POLY_XLU_DISP++, 0x02, play->sceneSegment); gSPSegment(OVERLAY_DISP++, 0x02, play->sceneSegment); +if (CVarGetInteger(CVAR_CHEAT("GreenScreenMode"), 0) > 0) { + Gfx_SetupFrame(gfxCtx, 0, 255, 0); +} else { Gfx_SetupFrame(gfxCtx, 0, 0, 0); +} if ((HREG(80) != 10) || (HREG(82) != 0)) { GameInteractor_ExecuteOnPlayDrawBegin(); @@ -1479,7 +1483,8 @@ void Play_Draw(PlayState* play) { } if ((HREG(80) != 10) || (HREG(83) != 0)) { - if (play->skyboxId && (play->skyboxId != SKYBOX_UNSET_1D) && !play->envCtx.skyboxDisabled) { + if (!CVarGetInteger(CVAR_CHEAT("GreenScreenMode"), 0) && + play->skyboxId && (play->skyboxId != SKYBOX_UNSET_1D) && !play->envCtx.skyboxDisabled) { if ((play->skyboxId == SKYBOX_NORMAL_SKY) || (play->skyboxId == SKYBOX_CUTSCENE_MAP)) { Environment_UpdateSkybox(play, play->skyboxId, &play->envCtx, &play->skyboxCtx); SkyboxDraw_Draw(&play->skyboxCtx, gfxCtx, play->skyboxId, play->envCtx.skyboxBlend, @@ -1513,7 +1518,7 @@ void Play_Draw(PlayState* play) { } if ((HREG(80) != 10) || (HREG(84) != 0)) { - if (VREG(94) == 0) { + if (VREG(94) == 0 && CVarGetInteger(CVAR_CHEAT("GreenScreenMode"), 0) == 0) { s32 roomDrawFlags; if (HREG(80) != 10) { From 72fa372b2c80acceb611c32b49d5823b8553d9ba Mon Sep 17 00:00:00 2001 From: The_SJG4 Date: Tue, 14 Jul 2026 19:00:10 -0400 Subject: [PATCH 2/3] Update SohMenuEnhancements.cpp --- soh/soh/SohGui/SohMenuEnhancements.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/soh/soh/SohGui/SohMenuEnhancements.cpp b/soh/soh/SohGui/SohMenuEnhancements.cpp index 7afe4ff04fe..158b373a572 100644 --- a/soh/soh/SohGui/SohMenuEnhancements.cpp +++ b/soh/soh/SohGui/SohMenuEnhancements.cpp @@ -174,6 +174,15 @@ void SohMenu::AddMenuEnhancements() { .RaceDisable(false) .Options(CheckboxOptions().DefaultValue(true).Tooltip("Show a notification when the game is autosaved.")); +AddWidget(path, "Green Screen Mode", WIDGET_CVAR_COMBOBOX) + .CVar(CVAR_CHEAT("GreenScreenMode")) + .Options(ComboboxOptions() + .ComboMap({ + { 0, { "Desactivado", ImVec4() } }, + { 1, { "Solo Link", ImVec4() } }, + { 2, { "Link + Personajes", ImVec4() } } + })); + AddWidget(path, "Remember Save Location", WIDGET_CVAR_CHECKBOX) .CVar(CVAR_ENHANCEMENT("RememberSaveLocation")) .Options(CheckboxOptions().Tooltip( From 44f72e4e710c1576ab9be7f631602fef51b70a5d Mon Sep 17 00:00:00 2001 From: The_SJG4 Date: Tue, 14 Jul 2026 19:43:07 -0400 Subject: [PATCH 3/3] Disparar build automatico