From 61436c6473c2a27ab5499e5c1d9d094110e75efe Mon Sep 17 00:00:00 2001 From: 40298081 Date: Mon, 25 May 2026 18:04:57 +0100 Subject: [PATCH 1/2] Restore Wii Green Chu merging and add Dusklight UI setting --- include/dusk/settings.h | 1 + src/d/actor/d_a_e_sm2.cpp | 8 ++++++++ src/dusk/settings.cpp | 2 ++ src/dusk/ui/settings.cpp | 2 ++ 4 files changed, 13 insertions(+) diff --git a/include/dusk/settings.h b/include/dusk/settings.h index 923a1e9fc6..7ee18fa4f5 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -230,6 +230,7 @@ struct UserSettings { // Technical ConfigVar restoreWiiGlitches; + ConfigVar restoreGreenChuMerging; // Controls ConfigVar enableTurboKeybind; diff --git a/src/d/actor/d_a_e_sm2.cpp b/src/d/actor/d_a_e_sm2.cpp index f55c4411cb..43f85555fb 100644 --- a/src/d/actor/d_a_e_sm2.cpp +++ b/src/d/actor/d_a_e_sm2.cpp @@ -923,6 +923,14 @@ static void damage_check(e_sm2_class* i_this) { sm_hit_actor->mode = 10; u8 new_color_type = new_col_d[(sm_hit_actor->type * 7) + i_this->type]; + #if TARGET_PC + if (dusk::getSettings().game.restoreGreenChuMerging && + ((sm_hit_actor->type == TYPE_BLUE && i_this->type == TYPE_YELLOW) || + (sm_hit_actor->type == TYPE_YELLOW && i_this->type == TYPE_BLUE))) + { + new_color_type = TYPE_GREEN; + } + #endif i_this->type = new_color_type; sm_hit_actor->type = new_color_type; diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index ef639e2b05..9f40bab2f1 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -118,6 +118,7 @@ UserSettings g_userSettings = { // Technical .restoreWiiGlitches {"game.restoreWiiGlitches", false}, + .restoreGreenChuMerging {"game.restoreGreenChuMerging", false}, // Controls .enableTurboKeybind {"game.enableTurboKeybind", false}, @@ -242,6 +243,7 @@ void registerSettings() { Register(g_userSettings.game.fastRoll); Register(g_userSettings.game.freeMagicArmor); Register(g_userSettings.game.restoreWiiGlitches); + Register(g_userSettings.game.restoreGreenChuMerging); Register(g_userSettings.game.enableLinkDollRotation); Register(g_userSettings.game.enableAchievementToasts); Register(g_userSettings.game.enableControllerToasts); diff --git a/src/dusk/ui/settings.cpp b/src/dusk/ui/settings.cpp index d6545f5121..5b09a353fb 100644 --- a/src/dusk/ui/settings.cpp +++ b/src/dusk/ui/settings.cpp @@ -1127,6 +1127,8 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { "experience."); addOption("Restore Wii 1.0 Glitches", getSettings().game.restoreWiiGlitches, "Restores patched glitches from Wii USA 1.0, the first released version."); + addOption("Restore Green Chu Merging", getSettings().game.restoreGreenChuMerging, + "Restores Green Chu merging, matching the Wii/HD version of the game."); addOption("Enable Rotating Link Doll", getSettings().game.enableLinkDollRotation, "Enables rotating Link in the collection menu with the C-Stick."); addOption("Hide Owl Statue Markers", getSettings().game.removeQuestMapMarkers, From 15604e2b81f06f186b5a231bc19eb18c8dcbdf22 Mon Sep 17 00:00:00 2001 From: ZipoLabs Date: Fri, 29 May 2026 04:03:43 +0100 Subject: [PATCH 2/2] Integrated functionality into existing "Restore Wii 1.0 Glitches" setting --- include/dusk/settings.h | 1 - src/d/actor/d_a_e_sm2.cpp | 2 +- src/dusk/settings.cpp | 2 -- src/dusk/ui/settings.cpp | 2 -- 4 files changed, 1 insertion(+), 6 deletions(-) diff --git a/include/dusk/settings.h b/include/dusk/settings.h index 7ee18fa4f5..923a1e9fc6 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -230,7 +230,6 @@ struct UserSettings { // Technical ConfigVar restoreWiiGlitches; - ConfigVar restoreGreenChuMerging; // Controls ConfigVar enableTurboKeybind; diff --git a/src/d/actor/d_a_e_sm2.cpp b/src/d/actor/d_a_e_sm2.cpp index 43f85555fb..313ea26c3d 100644 --- a/src/d/actor/d_a_e_sm2.cpp +++ b/src/d/actor/d_a_e_sm2.cpp @@ -924,7 +924,7 @@ static void damage_check(e_sm2_class* i_this) { u8 new_color_type = new_col_d[(sm_hit_actor->type * 7) + i_this->type]; #if TARGET_PC - if (dusk::getSettings().game.restoreGreenChuMerging && + if (dusk::getSettings().game.restoreWiiGlitches && ((sm_hit_actor->type == TYPE_BLUE && i_this->type == TYPE_YELLOW) || (sm_hit_actor->type == TYPE_YELLOW && i_this->type == TYPE_BLUE))) { diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index 9f40bab2f1..ef639e2b05 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -118,7 +118,6 @@ UserSettings g_userSettings = { // Technical .restoreWiiGlitches {"game.restoreWiiGlitches", false}, - .restoreGreenChuMerging {"game.restoreGreenChuMerging", false}, // Controls .enableTurboKeybind {"game.enableTurboKeybind", false}, @@ -243,7 +242,6 @@ void registerSettings() { Register(g_userSettings.game.fastRoll); Register(g_userSettings.game.freeMagicArmor); Register(g_userSettings.game.restoreWiiGlitches); - Register(g_userSettings.game.restoreGreenChuMerging); Register(g_userSettings.game.enableLinkDollRotation); Register(g_userSettings.game.enableAchievementToasts); Register(g_userSettings.game.enableControllerToasts); diff --git a/src/dusk/ui/settings.cpp b/src/dusk/ui/settings.cpp index 5b09a353fb..d6545f5121 100644 --- a/src/dusk/ui/settings.cpp +++ b/src/dusk/ui/settings.cpp @@ -1127,8 +1127,6 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { "experience."); addOption("Restore Wii 1.0 Glitches", getSettings().game.restoreWiiGlitches, "Restores patched glitches from Wii USA 1.0, the first released version."); - addOption("Restore Green Chu Merging", getSettings().game.restoreGreenChuMerging, - "Restores Green Chu merging, matching the Wii/HD version of the game."); addOption("Enable Rotating Link Doll", getSettings().game.enableLinkDollRotation, "Enables rotating Link in the collection menu with the C-Stick."); addOption("Hide Owl Statue Markers", getSettings().game.removeQuestMapMarkers,