diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..4922cdc Binary files /dev/null and b/.DS_Store differ diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ba8cbca..9dcf297 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,9 +24,9 @@ jobs: - name: Setup ENV parameters run: | VER_FILE=Makefile - VERSION=$(awk '/^LPVERSION_MAJOR/{print $3}' $VER_FILE).$(awk '/^LPVERSION_MINOR/{print $3}' $VER_FILE).$(awk '/^LPVERSION_BUGFX/{print $3}' $VER_FILE) + VERSION=$(awk '/^APLVERSION_MAJOR/{print $3}' $VER_FILE).$(awk '/^APLVERSION_MINOR/{print $3}' $VER_FILE).$(awk '/^APLVERSION_BUGFX/{print $3}' $VER_FILE) echo "TAG=${VERSION}" >> "${GITHUB_ENV}" - echo "RELEASE_NAME=CommonProblemResolver ${VERSION}" >> "${GITHUB_ENV}" + echo "RELEASE_NAME=AllgemeinerProblemLoeser ${VERSION}" >> "${GITHUB_ENV}" shell: bash - name: Build run: | @@ -43,4 +43,4 @@ jobs: generate_release_notes: yes make_latest: true files: | - output/CommonProblemResolver.bin + output/APL.bin diff --git a/Makefile b/Makefile index d762c55..43bfff6 100644 --- a/Makefile +++ b/Makefile @@ -9,13 +9,13 @@ include $(DEVKITARM)/base_rules ################################################################################ IPL_LOAD_ADDR := 0x40008000 -LPVERSION_MAJOR := 0 -LPVERSION_MINOR := 3 -LPVERSION_BUGFX := 4 +APLVERSION_MAJOR := 0 +APLVERSION_MINOR := 3 +APLVERSION_BUGFX := 4 ################################################################################ -TARGET := CommonProblemResolver +TARGET := AllgemeinerProblemLoeser BUILDDIR := build OUTPUTDIR := output SOURCEDIR = source @@ -37,7 +37,7 @@ FFCFG_INC := '"../$(SOURCEDIR)/libs/fatfs/ffconf.h"' ################################################################################ CUSTOMDEFINES := -DIPL_LOAD_ADDR=$(IPL_LOAD_ADDR) -CUSTOMDEFINES += -DLP_VER_MJ=$(LPVERSION_MAJOR) -DLP_VER_MN=$(LPVERSION_MINOR) -DLP_VER_BF=$(LPVERSION_BUGFX) +CUSTOMDEFINES += -DAPL_VER_MJ=$(APLVERSION_MAJOR) -DAPL_VER_MN=$(APLVERSION_MINOR) -DAPL_VER_BF=$(APLVERSION_BUGFX) CUSTOMDEFINES += -DGFX_INC=$(GFX_INC) -DFFCFG_INC=$(FFCFG_INC) # 0: UART_A, 1: UART_B. diff --git a/README.md b/README.md index 67b23c7..bbf6e3d 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# CommonProblemResolver (CPR) +# AllgemeinerProblemLoeser (APL) Rescue your switch without a pc! ## Usage 1. Get your favorite payload injector -2. Inject CPR as a payload +2. Inject APL as a payload Navigate around the menus using the joycons. - A: Select @@ -30,5 +30,6 @@ Join [our discord](https://discord.gg/VkaRjYN) for help. ## Credits -This is heavily based on [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) by suchmememanyskill, -which itself is based on [Lockpick_RCM](https://github.com/shchmue/Lockpick_RCM), and thus also based on [Hekate](https://github.com/CTCaer/hekate) +- **German translation:** Switch Bros. +- This is heavily based on [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) by suchmememanyskill, + which itself is based on [Lockpick_RCM](https://github.com/shchmue/Lockpick_RCM), and thus also based on [Hekate](https://github.com/CTCaer/hekate) diff --git a/source/cpr/cpr.c b/source/apl/apl.c similarity index 76% rename from source/cpr/cpr.c rename to source/apl/apl.c index cede531..e356d35 100644 --- a/source/cpr/cpr.c +++ b/source/apl/apl.c @@ -104,7 +104,7 @@ int listdir(char *path, u32 hos_folder) memcpy(&path[dirLength], "/", 1); memcpy(&path[dirLength + 1], fno.fname, strlen(fno.fname) + 1); // gfx_printf("THING: %s\n", fno.fname); - // gfx_printf("Path: %s\n", dir); + // gfx_printf("Pfad: %s\n", dir); // Is it a directory? if (fno.fattrib & AM_DIR) { @@ -223,7 +223,7 @@ int _fix_attributes(char *path, u32 *total, u32 hos_folder, u32 check_first_run) void m_entry_fixArchiveBit(u32 type){ gfx_clearscreen(); - gfx_printf("\n\n-- Fix Archive Bits\n\n"); + gfx_printf("\n\n-- Behebe Archive Bit\n\n"); char path[256]; char label[16]; @@ -235,20 +235,20 @@ void m_entry_fixArchiveBit(u32 type){ { case 0: strcpy(path, "/"); - strcpy(label, "SD Card"); + strcpy(label, "SD-Karte"); break; case 1: default: strcpy(path, "/Nintendo"); - strcpy(label, "Nintendo folder"); + strcpy(label, "Nintendo Ordner"); break; } - gfx_printf("Traversing all %s files!\nThis may take some time...\n\n", label); + gfx_printf("Durchlaufe alle %s Dateien!\nDas kann einige Zeit dauern...\n\n", label); _fix_attributes(path, &total, type, type); - gfx_printf("%kTotal archive bits cleared: %d!%k", 0xFF96FF00, total, 0xFFCCCCCC); + gfx_printf("%kAnzahl reparierter Archiv bits: %d!%k", 0xFF96FF00, total, 0xFFCCCCCC); - gfx_printf("\n\n Done, press a key to proceed."); + gfx_printf("\n\n Fertig! Druecke eine Taste um zurueckzukehren"); hidWait(); } } @@ -256,7 +256,7 @@ void m_entry_fixArchiveBit(u32 type){ void m_entry_fixAIOUpdate(){ gfx_clearscreen(); - gfx_printf("\n\n-- Fix broken Switch-AiO-Updater update.\n\n"); + gfx_printf("\n\n-- Behebe fehlerhaftes AIO-switch-updater Update.\n\n"); char *aio_fs_path = CpyStr("sd:/atmosphere/fusee-secondary.bin.aio"); char *aio_p_path = CpyStr("sd:/sept/payload.bin.aio"); @@ -267,7 +267,7 @@ void m_entry_fixAIOUpdate(){ char *o_strt_path = CpyStr("sd:/atmosphere/stratosphere.romfs"); if (FileExists(aio_fs_path)) { - gfx_printf("Detected aio updated fusee-secondary file -> replacing original\n\n"); + gfx_printf("Von AIO aktualisierte fusee-secondary erkannt -> ersetze Original\n\n"); if (FileExists(o_fs_path)) { _DeleteFileSimple(o_fs_path); } @@ -277,7 +277,7 @@ void m_entry_fixAIOUpdate(){ free(o_fs_path); if (FileExists(aio_p_path)) { - gfx_printf("Detected aio updated paload file -> replacing original\n\n"); + gfx_printf("Von AIO aktualisierte payload erkannt -> ersetze Original\n\n"); if (FileExists(o_p_path)) { _DeleteFileSimple(o_p_path); } @@ -287,7 +287,7 @@ void m_entry_fixAIOUpdate(){ free(o_p_path); if (FileExists(aio_strt_path)) { - gfx_printf("Detected aio updated stratosphere file -> replacing original\n\n"); + gfx_printf("Von AIO aktualisierte stratosphere erkannt -> ersetzte Original\n\n"); if (FileExists(o_strt_path)) { _DeleteFileSimple(o_strt_path); } @@ -297,13 +297,13 @@ void m_entry_fixAIOUpdate(){ free(o_strt_path); - gfx_printf("\n\n Done, press a key to proceed."); + gfx_printf("\n\n Fertig, druecke eine Taste um Fortzufahren."); hidWait(); } void m_entry_fixClingWrap(){ gfx_clearscreen(); - gfx_printf("\n\n-- Fixing ClingWrap.\n\n"); + gfx_printf("\n\n-- Repariere Bootloader, Kips und Patches.\n\n"); char *bpath = CpyStr("sd:/_b0otloader"); char *bopath = CpyStr("sd:/bootloader"); char *kpath = CpyStr("sd:/atmosphere/_k1ps"); @@ -320,7 +320,7 @@ void m_entry_fixClingWrap(){ if (res){ DrawError(newErrCode(res)); } - gfx_printf("-- Fixed Bootloader\n"); + gfx_printf("-- Bootloader repariert!\n"); } if (FileExists(kpath)) { @@ -331,7 +331,7 @@ void m_entry_fixClingWrap(){ if (res){ DrawError(newErrCode(res)); } - gfx_printf("-- Fixed kips\n"); + gfx_printf("-- kips repariert!\n"); } if (FileExists(ppath)) { @@ -339,7 +339,7 @@ void m_entry_fixClingWrap(){ _DeleteFileSimple(popath); } _RenameFileSimple(ppath,popath); - gfx_printf("-- Fixed patches.ini\n"); + gfx_printf("-- patches.ini repariert!\n"); } free(bpath); @@ -349,14 +349,14 @@ void m_entry_fixClingWrap(){ free(ppath); free(popath); - gfx_printf("\n\n Done, press a key to proceed."); + gfx_printf("\n\n Fertig! Druecke eine Taste um zurueckzukehren"); hidWait(); } void _deleteTheme(char* basePath, char* folderId){ char *path = CombinePaths(basePath, folderId); if (FileExists(path)) { - gfx_printf("-- Theme found: %s\n", path); + gfx_printf("-- Theme gefunden: %s\n", path); FolderDelete(path); } free(path); @@ -364,40 +364,43 @@ void _deleteTheme(char* basePath, char* folderId){ void m_entry_deleteInstalledThemes(){ gfx_clearscreen(); - gfx_printf("\n\n-- Deleting installed themes.\n\n"); + gfx_printf("\n\n-- Loesche installierte Themes.\n\n"); _deleteTheme("sd:/atmosphere/contents", "0100000000001000"); _deleteTheme("sd:/atmosphere/contents", "0100000000001007"); _deleteTheme("sd:/atmosphere/contents", "0100000000001013"); - gfx_printf("\n\n Done, press a key to proceed."); + gfx_printf("\n\n Fertig! Druecke eine Taste um zurueckzukehren"); hidWait(); } void m_entry_deleteBootFlags(){ gfx_clearscreen(); - gfx_printf("\n\n-- Disabling automatic sysmodule startup.\n\n"); + gfx_printf("\n\n-- Automatisches starten der sysmodule deaktivieren.\n\n"); char *storedPath = CpyStr("sd:/atmosphere/contents"); int readRes = 0; Vector_t fileVec = ReadFolder(storedPath, &readRes); if (readRes){ clearFileVector(&fileVec); + free(storedPath); DrawError(newErrCode(readRes)); } else { vecDefArray(FSEntry_t*, fsEntries, fileVec); for (int i = 0; i < fileVec.count; i++){ - char *suf = "/flags/boot2.flag"; - char *flagPath = CombinePaths(storedPath, fsEntries[i].name); - flagPath = CombinePaths(flagPath, suf); - + char *subPath = CombinePaths(storedPath, fsEntries[i].name); + char *flagPath = CombinePaths(subPath, suf); + free(subPath); if (FileExists(flagPath)) { - gfx_printf("Deleting: %s\n", flagPath); + gfx_printf("Loesche: %s\n", flagPath); _DeleteFileSimple(flagPath); + } else { + free(flagPath); } - free(flagPath); } + clearFileVector(&fileVec); + free(storedPath); } - gfx_printf("\n\n Done, press a key to proceed."); + gfx_printf("\n\n Fertig! Druecke eine Taste um zurueckzukehren"); hidWait(); } @@ -405,9 +408,9 @@ void m_entry_deleteBootFlags(){ void m_entry_fixMacSpecialFolders(){ gfx_clearscreen(); - gfx_printf("\n\n-- Fix mac folders (this can take some time, please wait.)\n\n"); + gfx_printf("\n\n-- Mac-Ordner reparieren (dies kann ein wenig dauern, bitte warten.)\n\n"); listdir("/", 0); - gfx_printf("\n\rDone, press a key to proceed."); + gfx_printf("\n\n Fertig! Druecke eine Taste um zurueckzukehren"); hidWait(); // browse path @@ -419,24 +422,24 @@ void m_entry_fixMacSpecialFolders(){ void m_entry_stillNoBootInfo(){ gfx_clearscreen(); - gfx_printf("\n\n-- My switch still does not boot.\n\n"); + gfx_printf("\n\n-- Meine Switch startet immer noch nicht.\n\n"); - gfx_printf("%kDo you have a gamecard inserted?\n", COLOR_WHITE); - gfx_printf("Try taking it out and reboot.\n\n"); + gfx_printf("%kSteckt eine Spiel-Cardrige im Slot?\n", COLOR_WHITE); + gfx_printf("Entferne sie und starte neu.\n\n"); - gfx_printf("%kDid you recently update Atmosphere/DeepSea?\n", COLOR_WHITE); - gfx_printf("Insert your sdcard into a computer, delete 'atmosphere', 'bootloader' & 'sept', download your preffered CFW and put the files back on your switch.\n\n"); + gfx_printf("%kHast du vor kurzem Atmosphere/OmniNX aktualisiert?\n", COLOR_WHITE); + gfx_printf("Stecke die SD-Karte in deinen PC, hol das neue Paket vom NiklasCFW Discord-Server und entpacke die .zip Datei auf deine SD-Karte und überschreibe alle Dateien.\nDanach kannst du den OmniNX-Installer-Payload ausfuehren.\n\n"); - gfx_printf("%kDid you just buy a new SD-card?\n", COLOR_WHITE); - gfx_printf("Make sure its not a fake card.\n\n"); + gfx_printf("%kHast du eine neue SD-Karte gekauft?\n", COLOR_WHITE); + gfx_printf("Vergewissere dich das es keine fake/SanDisk Karte ist.\n\n"); - gfx_printf("\n\n Done, press a key to proceed."); + gfx_printf("\n\n Druecke eine Taste um zurueckzukehren"); hidWait(); } void m_entry_ViewCredits(){ gfx_clearscreen(); - gfx_printf("\nCommon Problem Resolver v%d.%d.%d\nBy Team Neptune\n\nBased on TegraExplorer by SuchMemeManySkill,\nLockpick_RCM & Hekate, from shchmue & CTCaer\n\n\n", LP_VER_MJ, LP_VER_MN, LP_VER_BF); + gfx_printf("\nAllgemeinerProblemLoeser %d.%d.%d\nVon Team Neptune - (NiklasCFW Fork - Uebersetzt von Switch Bros.)\n\nBasierend auf TegraExplorer von SuchMemeManySkill,\nLockpick_RCM & Hekate, von shchmue & CTCaer\n\n\n", APL_VER_MJ, APL_VER_MN, APL_VER_BF); hidWait(); } diff --git a/source/cpr/cpr.h b/source/apl/apl.h similarity index 88% rename from source/cpr/cpr.h rename to source/apl/apl.h index ceee173..ee8fbda 100644 --- a/source/cpr/cpr.h +++ b/source/apl/apl.h @@ -9,4 +9,4 @@ void m_entry_deleteBootFlags(); void m_entry_ViewCredits(); void m_entry_fixAll(); void m_entry_stillNoBootInfo(); -void m_entry_fixMacSpecialFolders(); \ No newline at end of file +void m_entry_fixMacSpecialFolders(); diff --git a/source/gfx/gfxutils.c b/source/gfx/gfxutils.c index bb0e19a..c7e7a77 100644 --- a/source/gfx/gfxutils.c +++ b/source/gfx/gfxutils.c @@ -13,7 +13,7 @@ void gfx_printTopInfo() { bq24193_get_property(BQ24193_ChargeStatus, ¤t_charge_status); SETCOLOR(COLOR_DEFAULT, COLOR_WHITE); gfx_con_setpos(0, 0); - gfx_printf("CPR %d.%d.%d | Battery: %d%% %c\n", LP_VER_MJ, LP_VER_MN, LP_VER_BF, battery >> 8, ((current_charge_status) ? 129 : 32)); + gfx_printf("APL %d.%d.%d | Battery: %d%% %c\n", APL_VER_MJ, APL_VER_MN, APL_VER_BF, battery >> 8, ((current_charge_status) ? 129 : 32)); RESETCOLOR; } diff --git a/source/gfx/gfxutils.h b/source/gfx/gfxutils.h index 456a8f4..dbb9546 100644 --- a/source/gfx/gfxutils.h +++ b/source/gfx/gfxutils.h @@ -7,11 +7,13 @@ #define COLOR_GREY 0xFF888888 #define COLOR_DARKGREY 0xFF333333 #define COLOR_ORANGE 0xFFFFA500 -#define COLOR_GREEN 0xFF008000 +#define COLOR_GREEN 0xFF00FF00 #define COLOR_VIOLET 0xFFEE82EE +#define COLOR_PURPLE 0xFF7C49EF #define COLOR_BLUE 0xFF0000FF +#define COLOR_CYAN 0xFF00FFFF #define COLOR_RED 0xFF0000FF -#define COLOR_YELLOW 0xFFFF0000 +#define COLOR_YELLOW 0xFFFFFF00 #define COLORTORGB(color) (color & 0x00FFFFFF) #define SETCOLOR(fg, bg) gfx_con_setcol(fg, 1, bg) diff --git a/source/script/functions.c b/source/script/functions.c index 96a52fc..8ceb348 100644 --- a/source/script/functions.c +++ b/source/script/functions.c @@ -242,9 +242,9 @@ scriptFunction(funcWait){ scriptFunction(funcGetVer){ int *arr = malloc(3 * sizeof(int)); - arr[0] = LP_VER_MJ; - arr[1] = LP_VER_MN; - arr[2] = LP_VER_BF; + arr[0] = APL_VER_MJ; + arr[1] = APL_VER_MN; + arr[2] = APL_VER_BF; Vector_t res = vecFromArray(arr, 3, sizeof(int)); return newVar(IntArrayType, 1, .vectorType = res); } diff --git a/source/tegraexplorer/mainmenu.c b/source/tegraexplorer/mainmenu.c index 1bb479e..28fe41a 100644 --- a/source/tegraexplorer/mainmenu.c +++ b/source/tegraexplorer/mainmenu.c @@ -25,7 +25,7 @@ #include #include -#include "../cpr/cpr.h" +#include "../apl/apl.h" extern hekate_config h_cfg; @@ -48,32 +48,30 @@ enum { MainRebootRCM, // MainRebootNormal, MainRebootHekate, - MainRebootAMS, }; MenuEntry_t mainMenuEntries[] = { - [MainExplore] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "-- Bootfixes --"}, - [DeleteBootFlags] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Disable automatic sysmodule startup"}, - [DeleteThemes] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Delete installed themes"}, - [FixClingWrap] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix ClingWrap"}, - [FixAIOUpdaterBoot] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix Switch-AiO-Updater update"}, - [FixArchiveBitA] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix archive bit (all folders except nintendo)"}, - [FixArchiveBitN] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix archive bit (nintendo folder)"}, + [MainExplore] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "-- Behebe Start Probleme --"}, + [DeleteBootFlags] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Automatisches starten der sysmodule deaktivieren"}, + [DeleteThemes] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Loesche installierte Themes"}, + [FixClingWrap] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Repariere SigPatches"}, + [FixAIOUpdaterBoot] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Behebe fehlerhaftes AIO-switch-updater Update"}, + [FixArchiveBitA] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Behebe Archive Bit (alle Ordner ausser Nintendo)"}, + [FixArchiveBitN] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Behebe Archive Bit (Nintendo Ordner)"}, // [FixAll] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Try everything"}, - [MainConvenience] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Convenience --"}, - [FixMacSpecialFolders] = {.optionUnion = COLORTORGB(COLOR_ORANGE), .name = "Remove special folders created by Mac"}, + [MainConvenience] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Bequemlichkeit --"}, + [FixMacSpecialFolders] = {.optionUnion = COLORTORGB(COLOR_ORANGE), .name = "Entferne spezielle MacOS Dateien"}, - [MainOther] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Other --"}, - [MainViewStillNoBootInfo] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "My switch still does not boot"}, - [MainViewCredits] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Credits"}, + [MainOther] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Sonstiges --"}, + [MainViewStillNoBootInfo] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Meine Switch startet nicht mehr"}, + [MainViewCredits] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Ueber"}, - [MainExit] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Exit --"}, - [MainPowerOff] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Power off"}, - [MainRebootRCM] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to RCM"}, - // [MainRebootNormal] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot normally"}, - [MainRebootHekate] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to bootloader/update.bin"}, - [MainRebootAMS] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to atmosphere/reboot_payload.bin"} + [MainExit] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Beenden --"}, + [MainPowerOff] = {.optionUnion = COLORTORGB(COLOR_PURPLE), .name = "Ausschalten"}, + [MainRebootRCM] = {.optionUnion = COLORTORGB(COLOR_PURPLE), .name = "Neustart in RCM-Modus"}, + // [MainRebootNormal] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Normaler Neustart"}, + [MainRebootHekate] = {.optionUnion = COLORTORGB(COLOR_PURPLE), .name = "Neustart in hekate"} // [MainBrowseSd] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Browse SD"}, @@ -102,10 +100,6 @@ void HandleSD(){ 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"); } @@ -140,7 +134,6 @@ menuPaths mainMenuPaths[] = { [MainRebootHekate] = RebootToHekate, [MainRebootRCM] = reboot_rcm, [MainPowerOff] = power_off, - [MainRebootAMS] = RebootToAMS, [MainViewCredits] = m_entry_ViewCredits, }; @@ -151,7 +144,6 @@ void EnterMainMenu(){ sd_unmount(); // // -- Exit -- - mainMenuEntries[MainRebootAMS].hide = (!sd_get_card_mounted() || !FileExists("sd:/atmosphere/reboot_payload.bin")); mainMenuEntries[MainRebootHekate].hide = (!sd_get_card_mounted() || !FileExists("sd:/bootloader/update.bin")); mainMenuEntries[MainRebootRCM].hide = h_cfg.t210b01;