1
0
Fork 0
mirror of https://github.com/suchmememanyskill/TegraExplorer.git synced 2024-11-26 13:52:06 +00:00

Making the main menu look pretty

This commit is contained in:
suchmememanyskill 2020-12-29 01:53:39 +01:00
parent 46460adc3b
commit 2e5ee10f93
4 changed files with 71 additions and 35 deletions

View file

@ -177,6 +177,7 @@ static void _sd_deinit()
f_mount(NULL, "", 1); f_mount(NULL, "", 1);
sdmmc_storage_end(&sd_storage); sdmmc_storage_end(&sd_storage);
sd_mounted = false; sd_mounted = false;
is_sd_inited = false;
} }
} }

View file

@ -13,19 +13,42 @@
#include "../storage/gptmenu.h" #include "../storage/gptmenu.h"
#include "../storage/emummc.h" #include "../storage/emummc.h"
#include <utils/util.h> #include <utils/util.h>
#include "../fs/fsutils.h"
enum {
MainExplore = 0,
MainBrowseSd,
MainMountSd,
MainBrowseEmmc,
MainBrowseEmummc,
MainTools,
MainCauseException,
MainPartitionSd,
MainDumpFw,
MainViewKeys,
MainExit,
MainRebootAMS,
MainRebootHekate,
MainRebootRCM,
MainPowerOff
};
MenuEntry_t mainMenuEntries[] = { MenuEntry_t mainMenuEntries[] = {
{.R = 255, .G = 255, .B = 255, .skip = 1, .name = "-- Main Menu --"}, [MainExplore] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "-- Explore --"},
{.G = 255, .name = "SD:/"}, [MainBrowseSd] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Browse SD"},
{.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Emmc"}, [MainMountSd] = {.optionUnion = COLORTORGB(COLOR_YELLOW)}, // To mount/unmount the SD
{.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Emummc"}, [MainBrowseEmmc] = {.optionUnion = COLORTORGB(COLOR_BLUE), .name = "Browse EMMC"},
{.R = 255, .name = "Cause an exception"}, [MainBrowseEmummc] = {.optionUnion = COLORTORGB(COLOR_BLUE), .name = "Browse EMUMMC"},
{.R = 255, .name = "Partition the sd"}, [MainTools] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Tools --"},
{.optionUnion = COLORTORGB(COLOR_BLUE), .name = "Dump Firmware"}, [MainCauseException] = {.optionUnion = COLORTORGB(COLOR_RED), .name = "Cause an exception"},
{.optionUnion = COLORTORGB(COLOR_ORANGE), .name = "View dumped keys"}, [MainPartitionSd] = {.optionUnion = COLORTORGB(COLOR_ORANGE), .name = "Partition the sd"},
{.optionUnion = COLORTORGB(COLOR_ORANGE)}, [MainDumpFw] = {.optionUnion = COLORTORGB(COLOR_BLUE), .name = "Dump Firmware"},
{.R = 255, .name = "Reboot to payload"}, [MainViewKeys] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "View dumped keys"},
{.R = 255, .name = "Reboot to RCM"} [MainExit] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Exit --"},
[MainRebootAMS] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to atmosphere/reboot_payload.bin"},
[MainRebootHekate] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to bootloader/update.bin"},
[MainRebootRCM] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to RCM"},
[MainPowerOff] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Power off"}
}; };
void HandleSD(){ void HandleSD(){
@ -72,23 +95,33 @@ void ViewKeys(){
extern bool sd_mounted; extern bool sd_mounted;
extern bool is_sd_inited; extern bool is_sd_inited;
extern int launch_payload(char *path);
void RebootToAMS(){
launch_payload("sd:/atmosphere/reboot_payload.bin");
}
void RebootToHekate(){
launch_payload("sd:/bootloader/update.bin");
}
void MountOrUnmountSD(){ void MountOrUnmountSD(){
(sd_mounted) ? sd_unmount() : sd_mount(); (sd_mounted) ? sd_unmount() : sd_mount();
} }
menuPaths mainMenuPaths[] = { menuPaths mainMenuPaths[] = {
NULL, [MainBrowseSd] = HandleSD,
HandleSD, [MainMountSd] = MountOrUnmountSD,
HandleEMMC, [MainBrowseEmmc] = HandleEMMC,
HandleEMUMMC, [MainBrowseEmummc] = HandleEMUMMC,
CrashTE, [MainCauseException] = CrashTE,
FormatSD, [MainPartitionSd] = FormatSD,
DumpSysFw, [MainDumpFw] = DumpSysFw,
ViewKeys, [MainViewKeys] = ViewKeys,
MountOrUnmountSD, [MainRebootAMS] = RebootToAMS,
RebootToPayload, [MainRebootHekate] = RebootToHekate,
reboot_rcm [MainRebootRCM] = reboot_rcm,
[MainPowerOff] = power_off,
}; };
void EnterMainMenu(){ void EnterMainMenu(){
@ -96,12 +129,21 @@ void EnterMainMenu(){
if (sd_get_card_removed()) if (sd_get_card_removed())
sd_unmount(); sd_unmount();
mainMenuEntries[1].hide = !sd_mounted; // -- Explore --
mainMenuEntries[2].hide = !TConf.keysDumped; mainMenuEntries[MainBrowseSd].hide = !sd_mounted;
mainMenuEntries[3].hide = (!TConf.keysDumped || !emu_cfg.enabled || !sd_mounted); mainMenuEntries[MainMountSd].name = (sd_mounted) ? "Unmount SD" : "Mount SD";
mainMenuEntries[5].hide = (!is_sd_inited || sd_get_card_removed()); mainMenuEntries[MainBrowseEmmc].hide = !TConf.keysDumped;
mainMenuEntries[6].hide = !TConf.keysDumped; mainMenuEntries[MainBrowseEmummc].hide = (!TConf.keysDumped || !emu_cfg.enabled || !sd_mounted);
mainMenuEntries[8].name = (sd_mounted) ? "Unmount SD" : "Mount SD";
// -- Tools --
mainMenuEntries[MainPartitionSd].hide = (!is_sd_inited || sd_get_card_removed());
mainMenuEntries[MainDumpFw].hide = (!TConf.keysDumped || !sd_mounted);
mainMenuEntries[MainViewKeys].hide = !TConf.keysDumped;
// -- Exit --
mainMenuEntries[MainRebootAMS].hide = (!sd_mounted || !FileExists("sd:/atmosphere/reboot_payload.bin"));
mainMenuEntries[MainRebootHekate].hide = (!sd_mounted || !FileExists("sd:/bootloader/update.bin"));
FunctionMenuHandler(mainMenuEntries, ARR_LEN(mainMenuEntries), mainMenuPaths, ALWAYSREDRAW); FunctionMenuHandler(mainMenuEntries, ARR_LEN(mainMenuEntries), mainMenuPaths, ALWAYSREDRAW);
} }
} }

View file

@ -19,12 +19,6 @@
#include "../fs/fscopy.h" #include "../fs/fscopy.h"
#include "../utils/utils.h" #include "../utils/utils.h"
extern int launch_payload(char *path);
void RebootToPayload(){
launch_payload("atmosphere/reboot_payload.bin");
}
void DumpSysFw(){ void DumpSysFw(){
char sysPath[25 + 36 + 3 + 1]; // 24 for "bis:/Contents/registered", 36 for ncaName.nca, 3 for /00, and 1 to make sure :) char sysPath[25 + 36 + 3 + 1]; // 24 for "bis:/Contents/registered", 36 for ncaName.nca, 3 for /00, and 1 to make sure :)
char *baseSdPath; char *baseSdPath;

View file

@ -1,5 +1,4 @@
#pragma once #pragma once
void RebootToPayload();
void DumpSysFw(); void DumpSysFw();
void FormatSD(); void FormatSD();