arm9: check for combos again after the PIN has been entered/splash has been displayed
This commit is contained in:
parent
c2a2893b5c
commit
67e28b2a82
@ -226,11 +226,21 @@ void main(int argc, char **argv, u32 magicWord)
|
|||||||
}
|
}
|
||||||
|
|
||||||
u32 pinMode = MULTICONFIG(PIN);
|
u32 pinMode = MULTICONFIG(PIN);
|
||||||
|
bool shouldLoadConfigMenu = needConfig == CREATE_CONFIGURATION || ((pressed & (BUTTON_SELECT | BUTTON_L1)) == BUTTON_SELECT);
|
||||||
bool pinExists = pinMode != 0 && verifyPin(pinMode);
|
bool pinExists = pinMode != 0 && verifyPin(pinMode);
|
||||||
|
|
||||||
//If no configuration file exists or SELECT is held or if booted from NTRCARD, load configuration menu
|
/* If the PIN has been verified, wait to make it easier to press the SAFE_MODE combo or the configuration menu button
|
||||||
bool shouldLoadConfigMenu = needConfig == CREATE_CONFIGURATION || ((pressed & (BUTTON_SELECT | BUTTON_L1)) == BUTTON_SELECT);
|
(if not already pressed, for the latter) */
|
||||||
|
if(pinExists && !shouldLoadConfigMenu)
|
||||||
|
{
|
||||||
|
while(HID_PAD & PIN_BUTTONS);
|
||||||
|
wait(2000ULL);
|
||||||
|
|
||||||
|
//Update pressed buttons
|
||||||
|
pressed = HID_PAD;
|
||||||
|
}
|
||||||
|
|
||||||
|
shouldLoadConfigMenu = needConfig == CREATE_CONFIGURATION || ((pressed & (BUTTON_SELECT | BUTTON_L1)) == BUTTON_SELECT);
|
||||||
if(shouldLoadConfigMenu)
|
if(shouldLoadConfigMenu)
|
||||||
{
|
{
|
||||||
configMenu(pinExists, pinMode);
|
configMenu(pinExists, pinMode);
|
||||||
@ -247,13 +257,6 @@ void main(int argc, char **argv, u32 magicWord)
|
|||||||
isSafeMode = true;
|
isSafeMode = true;
|
||||||
needToInitSd = true;
|
needToInitSd = true;
|
||||||
|
|
||||||
//If the PIN has been verified, wait to make it easier to press the SAFE_MODE combo
|
|
||||||
if(pinExists && !shouldLoadConfigMenu)
|
|
||||||
{
|
|
||||||
while(HID_PAD & PIN_BUTTONS);
|
|
||||||
wait(2000ULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
goto boot;
|
goto boot;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,7 +274,19 @@ void main(int argc, char **argv, u32 magicWord)
|
|||||||
else if((((pressed & SINGLE_PAYLOAD_BUTTONS) || (!autoBootEmu && (pressed & DPAD_BUTTONS))) && !(pressed & (BUTTON_L1 | BUTTON_R1))) ||
|
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);
|
(((pressed & L_PAYLOAD_BUTTONS) || (autoBootEmu && (pressed & DPAD_BUTTONS))) && (pressed & BUTTON_L1))) loadHomebrewFirm(pressed);
|
||||||
|
|
||||||
if(splashMode == 2) loadSplash();
|
if(splashMode == 2 && loadSplash()) pressed = HID_PAD;
|
||||||
|
|
||||||
|
//Check SAFE_MODE combo again
|
||||||
|
if(!CFG_BOOTENV && pressed == SAFE_MODE)
|
||||||
|
{
|
||||||
|
nandType = FIRMWARE_SYSNAND;
|
||||||
|
firmSource = FIRMWARE_SYSNAND;
|
||||||
|
|
||||||
|
isSafeMode = true;
|
||||||
|
needToInitSd = true;
|
||||||
|
|
||||||
|
goto boot;
|
||||||
|
}
|
||||||
|
|
||||||
//If booting from CTRNAND, always use SysNAND
|
//If booting from CTRNAND, always use SysNAND
|
||||||
if(!isSdMode) nandType = FIRMWARE_SYSNAND;
|
if(!isSdMode) nandType = FIRMWARE_SYSNAND;
|
||||||
|
Reference in New Issue
Block a user