shithub: zelda3

Download patch

ref: b4caefb7bb98258a3a4c8587394e67b7b9c92e98
parent: 66d556e3ac0437f2e37900607d60d65e08d17a53
author: Snesrev <snesrev@protonmail.com>
date: Wed Sep 21 22:46:26 EDT 2022

Skip intro on key press

--- a/config.c
+++ b/config.c
@@ -291,6 +291,9 @@
     } else if (StringEqualsNoCase(key, "DisableLowHealthBeep")) {
       g_config.disable_low_health_beep = (bool)strtol(value, (char **)NULL, 10);
       return true;
+    } else if (StringEqualsNoCase(key, "SkipIntroOnKeypress")) {
+      g_config.skip_intro_on_keypress = (bool)strtol(value, (char **)NULL, 10);
+      return true;
     }
   }
   return false;
--- a/config.h
+++ b/config.h
@@ -53,6 +53,7 @@
   bool collect_items_with_sword;
   bool break_pots_with_sword;
   bool disable_low_health_beep;
+  bool skip_intro_on_keypress;
 } Config;
 
 extern Config g_config;
--- a/ending.c
+++ b/ending.c
@@ -510,7 +510,9 @@
 }
 
 void Module00_Intro() {  // 8cc120
-  if (submodule_index >= 8 && ((filtered_joypad_L & 0xc0 | filtered_joypad_H) & 0xd0)) {
+  uint8 skip_at = enhanced_features0 & kFeatures0_SkipIntroOnKeypress ? 4 : 8;
+
+  if (submodule_index >= skip_at && ((filtered_joypad_L & 0xc0 | filtered_joypad_H) & 0xd0)) {
     FadeMusicAndResetSRAMMirror();
     return;
   }
--- a/main.c
+++ b/main.c
@@ -193,6 +193,7 @@
     f |= g_config.collect_items_with_sword * kFeatures0_CollectItemsWithSword;
     f |= g_config.break_pots_with_sword * kFeatures0_BreakPotsWithSword;
     f |= g_config.disable_low_health_beep * kFeatures0_DisableLowHealthBeep;
+    f |= g_config.skip_intro_on_keypress * kFeatures0_SkipIntroOnKeypress;
     g_wanted_zelda_features = f;
   }
 
--- a/zelda3.ini
+++ b/zelda3.ini
@@ -37,7 +37,8 @@
 
 [Features]
 # Item switch on L/R. Also allows reordering of items in inventory by pressing Y+direction
-ItemSwitchLR = 1
+# Hold X inside of the item selection screen to reassign the X key into a separate item slow.
+ItemSwitchLR = 0
 
 # Allow turning while dashing
 TurnWhileDashing = 0
@@ -54,6 +55,8 @@
 # Disable the low health beep
 DisableLowHealthBeep = 0
 
+# Avoid waiting too much at the start
+SkipIntroOnKeypress = 1
 
 [KeyMap]
 # Change what keyboard keys map to the joypad
--- a/zelda_rtl.h
+++ b/zelda_rtl.h
@@ -121,6 +121,7 @@
   kFeatures0_CollectItemsWithSword = 16,
   kFeatures0_BreakPotsWithSword = 32,
   kFeatures0_DisableLowHealthBeep = 64,
+  kFeatures0_SkipIntroOnKeypress = 128,
 };
 
 #define enhanced_features0 (*(uint32*)(g_ram+0x64c))