diff --git a/source/buttons.h b/source/buttons.h index 0bc78c9..e26d987 100644 --- a/source/buttons.h +++ b/source/buttons.h @@ -45,7 +45,7 @@ #define DPAD_BUTTONS (BUTTON_LEFT | BUTTON_RIGHT | BUTTON_UP | BUTTON_DOWN) #define SAFE_MODE (BUTTON_R1 | BUTTON_L1 | BUTTON_A | BUTTON_UP) -#define SINGLE_PAYLOAD_BUTTONS (DPAD_BUTTONS | BUTTON_B | BUTTON_X | BUTTON_Y) +#define SINGLE_PAYLOAD_BUTTONS (BUTTON_B | BUTTON_X | BUTTON_Y) #define L_PAYLOAD_BUTTONS (BUTTON_R1 | BUTTON_A | BUTTON_START | BUTTON_SELECT) #define MENU_BUTTONS (DPAD_BUTTONS | BUTTON_A | BUTTON_START) #define PIN_BUTTONS (BUTTON_A | BUTTON_B | BUTTON_X | BUTTON_Y | DPAD_BUTTONS | BUTTON_START | BUTTON_SELECT) diff --git a/source/main.c b/source/main.c index 3c03d2d..a89c1c4 100644 --- a/source/main.c +++ b/source/main.c @@ -205,13 +205,15 @@ void main(int argc, char **argv, u32 magicWord) if(splashMode == 1 && loadSplash()) pressed = HID_PAD; + bool autoBootEmu = CONFIG(AUTOBOOTEMU); + if((pressed & (BUTTON_START | BUTTON_L1)) == BUTTON_START) { loadHomebrewFirm(0); pressed = HID_PAD; } - else if(((pressed & SINGLE_PAYLOAD_BUTTONS) && !(pressed & (BUTTON_L1 | BUTTON_R1 | BUTTON_A))) || - ((pressed & L_PAYLOAD_BUTTONS) && (pressed & BUTTON_L1))) loadHomebrewFirm(pressed); + else if ((((pressed & SINGLE_PAYLOAD_BUTTONS) || (!autoBootEmu && (pressed & DPAD_BUTTONS))) && !(pressed & (BUTTON_L1 | BUTTON_R1))) || + (((pressed & L_PAYLOAD_BUTTONS) || (autoBootEmu && (pressed & DPAD_BUTTONS))) && (pressed & BUTTON_L1))) loadHomebrewFirm(pressed); if(splashMode == 2) loadSplash(); @@ -235,7 +237,7 @@ void main(int argc, char **argv, u32 magicWord) /* Else, boot the NAND the user set to autoboot or the opposite one, depending on L, with their own FIRM */ - else firmSource = nandType = (CONFIG(AUTOBOOTEMU) == ((pressed & BUTTON_L1) == BUTTON_L1)) ? FIRMWARE_SYSNAND : FIRMWARE_EMUNAND; + else firmSource = nandType = (autoBootEmu == ((pressed & BUTTON_L1) == BUTTON_L1)) ? FIRMWARE_SYSNAND : FIRMWARE_EMUNAND; //If we're booting EmuNAND or using EmuNAND FIRM, determine which one from the directional pad buttons, or otherwise from the config if(nandType == FIRMWARE_EMUNAND || firmSource == FIRMWARE_EMUNAND)