diff --git a/README.md b/README.md
index d949286..cc459f7 100644
--- a/README.md
+++ b/README.md
@@ -494,7 +494,7 @@ These are the features that can be found [in the latest beta release](https://gi
 * **Auto-Updater**: Allow the modpack to automatically update itself when updates are available. Users can choose which update track they'd like from the Stable or Beta track in the menu - @asimon-1
 * **Mash Overrides**: Specify which mash options to perform in specific scenarios - @GradualSyrup, @asimon-1
 * **Customizable Button Configs**: Configure button combinations for save states and input recording in the menu itself. Please note that we now use raw inputs rather than Smash inputs, and save state save/load binds have moved to `L+DPad Down`, `L+DPad Up` respectively - @jugeeya
-* **Press Start to Open Menu**: You can now open the menu with start press; holding start for >= 10 frames gives the original menu. This behavior can be toggled, and the old default `B+DPad Up` will always work. This change allows for much more seamless opening and closing of the modpack's menu - @jugeeya
+* **Press Start/Select to Open Menu**: You can now open the menu with start press; holding start for >= 10 frames gives the original menu. On controllers with the minus button, minus can also be used to open the menu. This behavior can be toggled, and the old default `B+DPad Up` will always work. This change allows for much more seamless opening and closing of the modpack's menu - @jugeeya
 
 ## Bugfixes
 * Keep Luma, Mii Fighter hats, Mythra's sword, and Pikmin when loading save states - @GradualSyrup
diff --git a/src/common/button_config.rs b/src/common/button_config.rs
index a9079a8..8eab3ff 100644
--- a/src/common/button_config.rs
+++ b/src/common/button_config.rs
@@ -168,6 +168,10 @@ pub fn handle_final_input_mapping(player_idx: i32, controller_struct: &mut SomeC
                 }
                 *start_hold_frames = 0;
             }
+
+            if p1_controller.current_buttons.minus() {
+                start_menu_request = true;
+            }
         }
 
         let button_combo_requests = &mut *BUTTON_COMBO_REQUESTS.lock();
diff --git a/src/common/menu.rs b/src/common/menu.rs
index 951bf0a..60c25f4 100644
--- a/src/common/menu.rs
+++ b/src/common/menu.rs
@@ -206,7 +206,9 @@ pub fn handle_final_input_mapping(
                         EVENT_QUEUE.push(Event::menu_open(menu_json));
                     }
                 });
-                button_mapping(ButtonConfig::PLUS, style, button_presses).then(|| {
+                (button_mapping(ButtonConfig::PLUS, style, button_presses)
+                    || button_mapping(ButtonConfig::MINUS, style, button_presses))
+                .then(|| {
                     received_input = true;
                     // Leave menu.
                     frame_counter::start_counting(FRAME_COUNTER_INDEX);
diff --git a/training_mod_consts/src/lib.rs b/training_mod_consts/src/lib.rs
index 63dc01b..20f4c11 100644
--- a/training_mod_consts/src/lib.rs
+++ b/training_mod_consts/src/lib.rs
@@ -823,7 +823,7 @@ pub unsafe fn ui_menu(menu: TrainingModpackMenu) -> UiMenu {
     misc_tab.add_submenu_with_toggles::<UpdatePolicy>(
         "Auto-Update".to_string(),
         "update_policy".to_string(),
-        "Auto-Update: What type of Training Modpack updates to automatically apply. (CONSOLE ONLY)"
+        "Auto-Update: What type of Training Modpack updates to automatically apply. (Console Only!)"
             .to_string(),
         true,
         &(menu.update_policy as u32),
@@ -850,12 +850,19 @@ pub unsafe fn ui_menu(menu: TrainingModpackMenu) -> UiMenu {
         &(menu.record_trigger.bits() as u32),
     );
     input_tab.add_submenu_with_toggles::<RecordingFrames>(
-        "Recording Frames".to_string(),
+        "Recording Duration".to_string(),
         "recording_frames".to_string(),
-        "Recording Frames: Number of frames to record for in the current slot".to_string(),
+        "Recording Duration: Number of frames to record for in the current slot".to_string(),
         true,
         &(menu.recording_frames as u32),
     );
+    input_tab.add_submenu_with_toggles::<OnOff>(
+        "Recording Crop".to_string(),
+        "recording_crop".to_string(),
+        "Recording Crop: Remove neutral input frames at the end of your recording".to_string(),
+        true,
+        &(menu.recording_crop as u32),
+    );
     input_tab.add_submenu_with_toggles::<PlaybackSlot>(
         "Playback Button Combination".to_string(),
         "playback_button_combination".to_string(),
@@ -884,13 +891,6 @@ pub unsafe fn ui_menu(menu: TrainingModpackMenu) -> UiMenu {
         true,
         &(menu.playback_loop as u32),
     );
-    input_tab.add_submenu_with_toggles::<OnOff>(
-        "Recording Crop".to_string(),
-        "recording_crop".to_string(),
-        "Recording Crop: Remove neutral input frames at the end of your recording".to_string(),
-        true,
-        &(menu.recording_crop as u32),
-    );
     overall_menu.tabs.push(input_tab);
 
     overall_menu