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:
parent
46460adc3b
commit
2e5ee10f93
4 changed files with 71 additions and 35 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
void RebootToPayload();
|
|
||||||
void DumpSysFw();
|
void DumpSysFw();
|
||||||
void FormatSD();
|
void FormatSD();
|
Loading…
Reference in a new issue