From 805ab4e5b30e2a3833ae55c2e4b80a7c6a652119 Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Fri, 30 Jan 2026 20:06:46 +0900 Subject: [PATCH 1/4] add options to enable major glitches and oob --- patches/ips/disable_major_glitches.ips | Bin 0 -> 22 bytes patches/ips/vanilla_bugfixes.ips | Bin 2008 -> 1993 bytes patches/src/disable_major_glitches.asm | 20 +++++++++++++++ patches/src/vanilla_bugfixes.asm | 8 ------ .../Community Race Season 4.json | 2 ++ rust/data/presets/full-settings/Default.json | 2 ++ .../templates/generate/game_variations.html | 24 ++++++++++++++++++ .../help/variations/enable_glitches.html | 24 ++++++++++++++++++ .../generate/help/variations/enable_oob.html | 22 ++++++++++++++++ .../templates/generate/scripts.html | 4 +++ rust/maprando/src/patch.rs | 9 ++++++- rust/maprando/src/settings.rs | 10 ++++++++ rust/maprando/tests/logic_scenarios.rs | 2 ++ 13 files changed, 118 insertions(+), 9 deletions(-) create mode 100644 patches/ips/disable_major_glitches.ips create mode 100644 patches/src/disable_major_glitches.asm create mode 100644 rust/maprando-web/templates/generate/help/variations/enable_glitches.html create mode 100644 rust/maprando-web/templates/generate/help/variations/enable_oob.html diff --git a/patches/ips/disable_major_glitches.ips b/patches/ips/disable_major_glitches.ips new file mode 100644 index 0000000000000000000000000000000000000000..b8ee4068c914d46205734a40ddd9cbba5589e0ea GIT binary patch literal 22 dcmWG=3~}~gG%R6YUc|^C>M72^nCYes +
+
+ {% include "help/variations/enable_glitches.html" %} + +
+
+ + + + +
+
+
+
+ {% include "help/variations/enable_oob.html" %} + +
+
+ + + + +
+
{% include "help/variations/ultra_low_qol.html" %} diff --git a/rust/maprando-web/templates/generate/help/variations/enable_glitches.html b/rust/maprando-web/templates/generate/help/variations/enable_glitches.html new file mode 100644 index 000000000..f44508553 --- /dev/null +++ b/rust/maprando-web/templates/generate/help/variations/enable_glitches.html @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/rust/maprando-web/templates/generate/help/variations/enable_oob.html b/rust/maprando-web/templates/generate/help/variations/enable_oob.html new file mode 100644 index 000000000..4ee7471ed --- /dev/null +++ b/rust/maprando-web/templates/generate/help/variations/enable_oob.html @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/rust/maprando-web/templates/generate/scripts.html b/rust/maprando-web/templates/generate/scripts.html index f6c6f8b29..860417560 100644 --- a/rust/maprando-web/templates/generate/scripts.html +++ b/rust/maprando-web/templates/generate/scripts.html @@ -303,6 +303,8 @@ "random_seed": tryParseInt(formData.get("random_seed")), "disable_spikesuit": formData.get("disable_spike_suit") == "true", "disable_bluesuit": formData.get("disable_blue_suit") == "true", + "enable_major_glitches": formData.get("enable_major_glitches") == "true", + "enable_oob": formData.get("enable_out_of_bounds") == "true", } }; return settings; @@ -549,6 +551,8 @@ applyRadioValue("ultraLowQoL", other.ultra_low_qol); applyRadioValue("disableSpikesuit", other.disable_spikesuit); applyRadioValue("disableBluesuit", other.disable_bluesuit); + applyRadioValue("enableMajorGlitches", other.enable_major_glitches); + applyRadioValue("enableOOB", other.enable_oob); applyRadioValue("raceMode", other.race_mode); document.getElementById("randomSeed").value = other.random_seed; } diff --git a/rust/maprando/src/patch.rs b/rust/maprando/src/patch.rs index 8638cf7bc..b39770db2 100644 --- a/rust/maprando/src/patch.rs +++ b/rust/maprando/src/patch.rs @@ -485,7 +485,6 @@ impl Patcher<'_> { "fix_kraid_hud", "escape_autosave", "boss_exit", - "oob_death", "load_plms_early", "spin_lock", "fix_transition_bad_tiles", @@ -585,6 +584,14 @@ impl Patcher<'_> { patches.push("remove_bluesuit") } + if !self.settings.other_settings.enable_oob { + patches.push("oob_death") + } + + if !self.settings.other_settings.enable_major_glitches { + patches.push("disable_major_glitches") + } + if self.settings.quality_of_life_settings.respin { patches.push("respin"); // patches.push("spinjumprestart"); diff --git a/rust/maprando/src/settings.rs b/rust/maprando/src/settings.rs index a247a70c8..9d8b0f2f4 100644 --- a/rust/maprando/src/settings.rs +++ b/rust/maprando/src/settings.rs @@ -350,6 +350,8 @@ pub struct OtherSettings { pub ultra_low_qol: bool, pub disable_spikesuit: bool, pub disable_bluesuit: bool, + pub enable_major_glitches: bool, + pub enable_oob: bool, pub race_mode: bool, pub random_seed: Option, } @@ -919,6 +921,14 @@ fn upgrade_other_settings(settings: &mut serde_json::Value) -> Result<()> { other_settings.insert("disable_bluesuit".to_string(), false.into()); } + if other_settings.get("enable_major_glitches").is_none() { + other_settings.insert("enable_major_glitches".to_string(), false.into()); + } + + if other_settings.get("enable_oob").is_none() { + other_settings.insert("enable_oob".to_string(), false.into()); + } + Ok(()) } diff --git a/rust/maprando/tests/logic_scenarios.rs b/rust/maprando/tests/logic_scenarios.rs index 4c9c491c8..d0ef2a333 100644 --- a/rust/maprando/tests/logic_scenarios.rs +++ b/rust/maprando/tests/logic_scenarios.rs @@ -254,6 +254,8 @@ fn get_settings(scenario: &Scenario) -> Result { energy_free_shinesparks: false, disable_bluesuit: false, disable_spikesuit: false, + enable_major_glitches: false, + enable_oob: false, ultra_low_qol: false, race_mode: false, random_seed: None, From 23c1cca9444b38025d089c19a480d97427f6511b Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Fri, 30 Jan 2026 20:28:43 +0900 Subject: [PATCH 2/4] make sure we are not applying the patches if ultra low QOL is enabled. --- .../templates/generate/help/variations/enable_glitches.html | 1 + .../templates/generate/help/variations/enable_oob.html | 1 + rust/maprando/src/patch.rs | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rust/maprando-web/templates/generate/help/variations/enable_glitches.html b/rust/maprando-web/templates/generate/help/variations/enable_glitches.html index f44508553..4f67dc389 100644 --- a/rust/maprando-web/templates/generate/help/variations/enable_glitches.html +++ b/rust/maprando-web/templates/generate/help/variations/enable_glitches.html @@ -15,6 +15,7 @@

Enable major glitches

the spacetime beam will no longer be patched out. Enable with caution, major glitches may corrupt the save file or cause the game to become unbeatable.

+

Ultra low QOL ignores this setting as they are enabled by default.