]> Chaos Git - corbenik/corbenik.git/commitdiff
Fix silent autoboot (broken by two commits ago)
authorchaoskagami <chaos.kagami@gmail.com>
Thu, 18 Aug 2016 21:22:21 +0000 (17:22 -0400)
committerchaoskagami <chaos.kagami@gmail.com>
Thu, 18 Aug 2016 21:22:21 +0000 (17:22 -0400)
source/main.c
source/std/draw.c

index d33d13174fd243d095f15e793bf9e3b7efd61015..cb5185fdc3631b5fac1a5896e4cf7d2ac9103344 100644 (file)
@@ -14,6 +14,8 @@ void shut_up();
 int
 main(int argc, char** argv)
 {
+    int r_held = (ctr_hid_get_buttons() & CTR_HID_RT);
+
     if (PDN_MPCORE_CFG == 7)
         is_n3ds = 1; // Enable n3ds specific options.
 
@@ -31,16 +33,6 @@ main(int argc, char** argv)
     if (CFG_BOOTENV == 7)
         config->options[OPTION_EMUNAND] = 0; // Disable EmuNAND on AGB reboot.
 
-    if (config->options[OPTION_AUTOBOOT] && !(ctr_hid_get_buttons() & CTR_HID_RT)) {
-        doing_autoboot = 1;
-
-        if (config->options[OPTION_SILENCE] || config->options[OPTION_SILENT_NOSCREEN])
-            shut_up(); // This does exactly what it sounds like.
-
-        if (config->options[OPTION_SILENT_NOSCREEN])
-            boot_cfw(); // Skip all other checks and just boot.
-    }
-
     set_font(PATH_TERMFONT); // Read the font before all else.
 
     // Check key down for autoboot
@@ -54,9 +46,14 @@ main(int argc, char** argv)
     clear_disp(TOP_SCREEN);
     clear_disp(BOTTOM_SCREEN);
 
-    // Autoboot. Non-standard code path.
-    if (!doing_autoboot)
+    if (config->options[OPTION_AUTOBOOT] && !r_held) {
+        doing_autoboot = 1;
+
+        if (config->options[OPTION_SILENCE])
+            shut_up(); // This does exactly what it sounds like.
+    } else {
         menu_handler();
+    }
 
     boot_cfw();
 }
index 65c38be240aee7f69b3c807158f225e80b67411c..89ff74b996f339534f9c2e7564acf4532839038a 100644 (file)
@@ -366,8 +366,6 @@ void
 shut_up()
 {
     kill_output = 1; // Immediately cancel all output operations.
-    clear_disp(TOP_SCREEN);
-    clear_disp(BOTTOM_SCREEN);
 }
 
 #define TEXT       0