Better commenting
This commit is contained in:
parent
0001f301f8
commit
bb437f6f7b
@ -73,6 +73,7 @@ static int fileOpen(IFile *file, FS_ArchiveID id, const char *path, int flags)
|
|||||||
ppath.type = PATH_ASCII;
|
ppath.type = PATH_ASCII;
|
||||||
ppath.data = path;
|
ppath.data = path;
|
||||||
ppath.size = len+1;
|
ppath.size = len+1;
|
||||||
|
|
||||||
return IFile_Open(file, archive, ppath, flags);
|
return IFile_Open(file, archive, ppath, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,16 +110,16 @@ static int loadConfig()
|
|||||||
ret = fileOpen(&file, ARCHIVE_SDMC, "/aurei/config.bin", FS_OPEN_READ);
|
ret = fileOpen(&file, ARCHIVE_SDMC, "/aurei/config.bin", FS_OPEN_READ);
|
||||||
if(R_SUCCEEDED(ret))
|
if(R_SUCCEEDED(ret))
|
||||||
{
|
{
|
||||||
ret = IFile_Read(&file, &total, (void *)&config, 3);
|
ret = IFile_Read(&file, &total, &config, 3);
|
||||||
IFile_Close(&file);
|
IFile_Close(&file);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void patchCode(u64 progid, u8 *code, u32 size)
|
void patchCode(u64 progId, u8 *code, u32 size)
|
||||||
{
|
{
|
||||||
switch(progid)
|
switch(progId)
|
||||||
{
|
{
|
||||||
case 0x0004003000008F02LL: // USA Menu
|
case 0x0004003000008F02LL: // USA Menu
|
||||||
case 0x0004003000008202LL: // EUR Menu
|
case 0x0004003000008202LL: // EUR Menu
|
||||||
|
@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
#include <3ds/types.h>
|
#include <3ds/types.h>
|
||||||
|
|
||||||
void patchCode(u64 progid, u8 *code, u32 size);
|
void patchCode(u64 progId, u8 *code, u32 size);
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
firm_addr equ 0x24000000 ; Temporary location where we'll load the FIRM to
|
firm_addr equ 0x24000000 ; Temporary location where we'll load the FIRM to
|
||||||
firm_maxsize equ 0x200000 ; Random value that's bigger than any of the currently known firm's sizes.
|
firm_maxsize equ 0x200000 ; Random value that's bigger than any of the currently known firm's sizes.
|
||||||
kernel_code equ 0x080F0000
|
kernel_code equ 0x080F0000 ; Offset to copy the Kernel9 code to
|
||||||
|
|
||||||
.create "reboot.bin", 0
|
.create "reboot.bin", 0
|
||||||
.arm
|
.arm
|
||||||
|
@ -24,6 +24,7 @@ u32 getEmunandSect(u32 *off, u32 *head, u32 *emuNAND)
|
|||||||
*off = nandOffset + 1;
|
*off = nandOffset + 1;
|
||||||
*head = nandOffset + 1;
|
*head = nandOffset + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Check for Gateway emuNAND
|
//Check for Gateway emuNAND
|
||||||
else if(sdmmc_sdcard_readsectors(nandOffset + nandSize, 1, temp) == 0)
|
else if(sdmmc_sdcard_readsectors(nandOffset + nandSize, 1, temp) == 0)
|
||||||
{
|
{
|
||||||
@ -32,15 +33,19 @@ u32 getEmunandSect(u32 *off, u32 *head, u32 *emuNAND)
|
|||||||
*off = nandOffset;
|
*off = nandOffset;
|
||||||
*head = nandOffset + nandSize;
|
*head = nandOffset + nandSize;
|
||||||
}
|
}
|
||||||
//Fallback to the first emuNAND if there's no second one
|
|
||||||
|
/* Fallback to the first emuNAND if there's no second one,
|
||||||
|
or to SysNAND if there isn't any */
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
(*emuNAND)--;
|
(*emuNAND)--;
|
||||||
if(*emuNAND) getEmunandSect(off, head, emuNAND);
|
if(*emuNAND) getEmunandSect(off, head, emuNAND);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ void setupCFW(void)
|
|||||||
//Flag to prevent multiple boot options-forcing
|
//Flag to prevent multiple boot options-forcing
|
||||||
tempConfig |= 1 << 15;
|
tempConfig |= 1 << 15;
|
||||||
}
|
}
|
||||||
/* Else, force the last used boot options unless A/L/R/SELECT are pressed
|
/* Else, force the last used boot options unless a payload button or A/L/R are pressed
|
||||||
or the no-forcing flag is set */
|
or the no-forcing flag is set */
|
||||||
else if(!(pressed & OVERRIDE_BUTTONS) && !((config >> 15) & 1))
|
else if(!(pressed & OVERRIDE_BUTTONS) && !((config >> 15) & 1))
|
||||||
{
|
{
|
||||||
@ -113,7 +113,7 @@ void setupCFW(void)
|
|||||||
//Boot options aren't being forced
|
//Boot options aren't being forced
|
||||||
if(needConfig)
|
if(needConfig)
|
||||||
{
|
{
|
||||||
/* If L and one of the payload buttons are pressed, and if not using A9LH
|
/* If L and R/Select or one of the single payload buttons are pressed and, if not using A9LH,
|
||||||
the Safe Mode combo is not pressed, chainload an external payload */
|
the Safe Mode combo is not pressed, chainload an external payload */
|
||||||
if(((pressed & SINGLE_PAYLOAD_BUTTONS) || ((pressed & BUTTON_L1) && (pressed & L_PAYLOAD_BUTTONS)))
|
if(((pressed & SINGLE_PAYLOAD_BUTTONS) || ((pressed & BUTTON_L1) && (pressed & L_PAYLOAD_BUTTONS)))
|
||||||
&& pressed != SAFE_MODE)
|
&& pressed != SAFE_MODE)
|
||||||
@ -167,6 +167,7 @@ void setupCFW(void)
|
|||||||
mode = 1;
|
mode = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,6 +197,7 @@ void loadFirm(void)
|
|||||||
if(memcmp(firm, "FIRM", 4) != 0)
|
if(memcmp(firm, "FIRM", 4) != 0)
|
||||||
error("Couldn't decrypt NAND FIRM0 (O3DS not on 9.x?)");
|
error("Couldn't decrypt NAND FIRM0 (O3DS not on 9.x?)");
|
||||||
}
|
}
|
||||||
|
|
||||||
//Load FIRM from SD
|
//Load FIRM from SD
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -276,7 +278,7 @@ static inline void patchTwlAgb(u32 whichFirm)
|
|||||||
{{0xD7A12, 0xD8B8A}, { .type1 = 0xEF26 }, 1}
|
{{0xD7A12, 0xD8B8A}, { .type1 = 0xEF26 }, 1}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Calculate the amount of patches to apply. Only count the splash screen patch for AGB_FIRM
|
/* Calculate the amount of patches to apply. Only count the boot screen patch for AGB_FIRM
|
||||||
if the matching option was enabled (keep it as last) */
|
if the matching option was enabled (keep it as last) */
|
||||||
u32 numPatches = whichFirm ? (sizeof(agbPatches) / sizeof(struct patchData)) - !((config >> 6) & 1) :
|
u32 numPatches = whichFirm ? (sizeof(agbPatches) / sizeof(struct patchData)) - !((config >> 6) & 1) :
|
||||||
(sizeof(twlPatches) / sizeof(struct patchData));
|
(sizeof(twlPatches) / sizeof(struct patchData));
|
||||||
|
@ -32,6 +32,7 @@ static u32 waitInput(void)
|
|||||||
do {
|
do {
|
||||||
//Wait for a key to be pressed
|
//Wait for a key to be pressed
|
||||||
while(!HID_PAD);
|
while(!HID_PAD);
|
||||||
|
|
||||||
key = HID_PAD;
|
key = HID_PAD;
|
||||||
|
|
||||||
//Make sure it's pressed
|
//Make sure it's pressed
|
||||||
@ -59,7 +60,7 @@ void configureCFW(const char *configPath, const char *patchedFirms[])
|
|||||||
"( ) Use 9.0 FIRM as default",
|
"( ) Use 9.0 FIRM as default",
|
||||||
"( ) Use second EmuNAND as default",
|
"( ) Use second EmuNAND as default",
|
||||||
"( ) Show current NAND in System Settings",
|
"( ) Show current NAND in System Settings",
|
||||||
"( ) Show splash screen in patched AGB_FIRM" };
|
"( ) Show GBA boot screen in patched AGB_FIRM" };
|
||||||
|
|
||||||
u32 optionsAmount = sizeof(optionsText) / sizeof(char *);
|
u32 optionsAmount = sizeof(optionsText) / sizeof(char *);
|
||||||
struct option options[optionsAmount];
|
struct option options[optionsAmount];
|
||||||
@ -115,7 +116,7 @@ void configureCFW(const char *configPath, const char *patchedFirms[])
|
|||||||
//If the user has been using A9LH and the "Updated SysNAND" setting changed, delete the patched 9.0 FIRM
|
//If the user has been using A9LH and the "Updated SysNAND" setting changed, delete the patched 9.0 FIRM
|
||||||
if(((tempConfig >> 16) & 1) && ((tempConfig & 1) != options[0].enabled)) fileDelete(patchedFirms[3]);
|
if(((tempConfig >> 16) & 1) && ((tempConfig & 1) != options[0].enabled)) fileDelete(patchedFirms[3]);
|
||||||
|
|
||||||
//If the "Show splash screen in patched AGB_FIRM" setting changed, delete the patched AGB_FIRM
|
//If the "Show GBA boot screen in patched AGB_FIRM" setting changed, delete the patched AGB_FIRM
|
||||||
if(((tempConfig >> 6) & 1) != options[6].enabled) fileDelete(patchedFirms[5]);
|
if(((tempConfig >> 6) & 1) != options[6].enabled) fileDelete(patchedFirms[5]);
|
||||||
|
|
||||||
//Preserve the last-used boot options (last 12 bits)
|
//Preserve the last-used boot options (last 12 bits)
|
||||||
|
Reference in New Issue
Block a user