From c4fef4ed1149b330e25c18393f6e634586325255 Mon Sep 17 00:00:00 2001 From: Ember Profet Date: Tue, 13 Jan 2026 15:42:34 +0100 Subject: [PATCH 1/2] patch AlwaysHoldPhysicsObjects --- MarathonRecomp/patches/player_patches.cpp | 5 +++++ MarathonRecomp/user/config_def.h | 3 ++- MarathonRecompLib/config/Marathon.toml | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/MarathonRecomp/patches/player_patches.cpp b/MarathonRecomp/patches/player_patches.cpp index 1c69458d..062e4019 100644 --- a/MarathonRecomp/patches/player_patches.cpp +++ b/MarathonRecomp/patches/player_patches.cpp @@ -523,3 +523,8 @@ bool InfiniteLives() { return Config::InfiniteLives; } + +bool AlwaysHoldPhysicsObjects() +{ + return Config::AlwaysHoldPhysicsObjects; +} diff --git a/MarathonRecomp/user/config_def.h b/MarathonRecomp/user/config_def.h index 2b2412c0..1fd01b17 100644 --- a/MarathonRecomp/user/config_def.h +++ b/MarathonRecomp/user/config_def.h @@ -100,5 +100,6 @@ CONFIG_DEFINE_HIDDEN("Codes", bool, SkipIntroLogos, false, false); CONFIG_DEFINE_HIDDEN("Codes", bool, TailsGauge, false, false); CONFIG_DEFINE_HIDDEN("Codes", bool, UnlimitedAntigravity, false, false); CONFIG_DEFINE_HIDDEN("Codes", bool, UseOfficialTitleOnTitleBar, false, true); +CONFIG_DEFINE_HIDDEN("Codes", bool, AlwaysHoldPhysicsObjects, false, false); -CONFIG_DEFINE("Update", time_t, LastChecked, 0, false); +CONFIG_DEFINE("Update", time_t, LastChecked, 0, false); \ No newline at end of file diff --git a/MarathonRecompLib/config/Marathon.toml b/MarathonRecompLib/config/Marathon.toml index bbba1683..3475c2a2 100644 --- a/MarathonRecompLib/config/Marathon.toml +++ b/MarathonRecompLib/config/Marathon.toml @@ -725,3 +725,9 @@ jump_address_on_true = 0x8226AB70 name = "InfiniteLives" address = 0x821857B0 jump_address_on_true = 0x821857B4 + +[[midasm_hook]] +name = "AlwaysHoldPhysicsObjects" +address = 0x8221ACBC +jump_address_on_true = 0x8221ACC0 + From 38e5af59bed7581f1a0fce1ff3e2ca1f1070f6d3 Mon Sep 17 00:00:00 2001 From: Ember Profet Date: Wed, 14 Jan 2026 10:43:29 +0100 Subject: [PATCH 2/2] patch ControllableHomingRecovery & RestoreHomingSpam --- MarathonRecomp/patches/player_patches.cpp | 10 ++++++++++ MarathonRecomp/user/config_def.h | 2 ++ MarathonRecompLib/config/Marathon.toml | 9 +++++++++ 3 files changed, 21 insertions(+) diff --git a/MarathonRecomp/patches/player_patches.cpp b/MarathonRecomp/patches/player_patches.cpp index 062e4019..3ab8d1fa 100644 --- a/MarathonRecomp/patches/player_patches.cpp +++ b/MarathonRecomp/patches/player_patches.cpp @@ -528,3 +528,13 @@ bool AlwaysHoldPhysicsObjects() { return Config::AlwaysHoldPhysicsObjects; } + +bool ControllableHomingRecovery() +{ + return Config::ControllableHomingRecovery; +} + +bool RestoreHomingSpam() +{ + return Config::RestoreHomingSpam; +} \ No newline at end of file diff --git a/MarathonRecomp/user/config_def.h b/MarathonRecomp/user/config_def.h index 1fd01b17..5b6a97f1 100644 --- a/MarathonRecomp/user/config_def.h +++ b/MarathonRecomp/user/config_def.h @@ -101,5 +101,7 @@ CONFIG_DEFINE_HIDDEN("Codes", bool, TailsGauge, false, false); CONFIG_DEFINE_HIDDEN("Codes", bool, UnlimitedAntigravity, false, false); CONFIG_DEFINE_HIDDEN("Codes", bool, UseOfficialTitleOnTitleBar, false, true); CONFIG_DEFINE_HIDDEN("Codes", bool, AlwaysHoldPhysicsObjects, false, false); +CONFIG_DEFINE_HIDDEN("Codes", bool, ControllableHomingRecovery, false, false); +CONFIG_DEFINE_HIDDEN("Codes", bool, RestoreHomingSpam, false, false) CONFIG_DEFINE("Update", time_t, LastChecked, 0, false); \ No newline at end of file diff --git a/MarathonRecompLib/config/Marathon.toml b/MarathonRecompLib/config/Marathon.toml index 3475c2a2..af73421e 100644 --- a/MarathonRecompLib/config/Marathon.toml +++ b/MarathonRecompLib/config/Marathon.toml @@ -731,3 +731,12 @@ name = "AlwaysHoldPhysicsObjects" address = 0x8221ACBC jump_address_on_true = 0x8221ACC0 +[[midasm_hook]] +name = "ControllableHomingRecovery" +address = 0x82217600 +jump_address_on_true = 0x82217618 + +[[midasm_hook]] +name = "RestoreHomingSpam" +address = 0x822175D8 +jump_address_on_true = 0x822175E4 \ No newline at end of file