Added german translation and bugfixes

This commit is contained in:
2026-02-06 21:00:36 +01:00
parent 6ee7d5f892
commit 1a7b0a1667
10 changed files with 82 additions and 84 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -24,9 +24,9 @@ jobs:
- name: Setup ENV parameters - name: Setup ENV parameters
run: | run: |
VER_FILE=Makefile 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 "TAG=${VERSION}" >> "${GITHUB_ENV}"
echo "RELEASE_NAME=CommonProblemResolver ${VERSION}" >> "${GITHUB_ENV}" echo "RELEASE_NAME=AllgemeinerProblemLoeser ${VERSION}" >> "${GITHUB_ENV}"
shell: bash shell: bash
- name: Build - name: Build
run: | run: |
@@ -43,4 +43,4 @@ jobs:
generate_release_notes: yes generate_release_notes: yes
make_latest: true make_latest: true
files: | files: |
output/CommonProblemResolver.bin output/APL.bin

View File

@@ -9,13 +9,13 @@ include $(DEVKITARM)/base_rules
################################################################################ ################################################################################
IPL_LOAD_ADDR := 0x40008000 IPL_LOAD_ADDR := 0x40008000
LPVERSION_MAJOR := 0 APLVERSION_MAJOR := 0
LPVERSION_MINOR := 3 APLVERSION_MINOR := 3
LPVERSION_BUGFX := 4 APLVERSION_BUGFX := 4
################################################################################ ################################################################################
TARGET := CommonProblemResolver TARGET := AllgemeinerProblemLoeser
BUILDDIR := build BUILDDIR := build
OUTPUTDIR := output OUTPUTDIR := output
SOURCEDIR = source SOURCEDIR = source
@@ -37,7 +37,7 @@ FFCFG_INC := '"../$(SOURCEDIR)/libs/fatfs/ffconf.h"'
################################################################################ ################################################################################
CUSTOMDEFINES := -DIPL_LOAD_ADDR=$(IPL_LOAD_ADDR) 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) CUSTOMDEFINES += -DGFX_INC=$(GFX_INC) -DFFCFG_INC=$(FFCFG_INC)
# 0: UART_A, 1: UART_B. # 0: UART_A, 1: UART_B.

View File

@@ -1,10 +1,10 @@
# CommonProblemResolver (CPR) # AllgemeinerProblemLoeser (APL)
Rescue your switch without a pc! Rescue your switch without a pc!
## Usage ## Usage
1. Get your favorite payload injector 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. Navigate around the menus using the joycons.
- A: Select - A: Select
@@ -30,5 +30,6 @@ Join [our discord](https://discord.gg/VkaRjYN) for help.
## Credits ## Credits
This is heavily based on [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) by suchmememanyskill, - **German translation:** Switch Bros.
which itself is based on [Lockpick_RCM](https://github.com/shchmue/Lockpick_RCM), and thus also based on [Hekate](https://github.com/CTCaer/hekate) - 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)

View File

@@ -104,7 +104,7 @@ int listdir(char *path, u32 hos_folder)
memcpy(&path[dirLength], "/", 1); memcpy(&path[dirLength], "/", 1);
memcpy(&path[dirLength + 1], fno.fname, strlen(fno.fname) + 1); memcpy(&path[dirLength + 1], fno.fname, strlen(fno.fname) + 1);
// gfx_printf("THING: %s\n", fno.fname); // gfx_printf("THING: %s\n", fno.fname);
// gfx_printf("Path: %s\n", dir); // gfx_printf("Pfad: %s\n", dir);
// Is it a directory? // Is it a directory?
if (fno.fattrib & AM_DIR) 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){ void m_entry_fixArchiveBit(u32 type){
gfx_clearscreen(); gfx_clearscreen();
gfx_printf("\n\n-- Fix Archive Bits\n\n"); gfx_printf("\n\n-- Behebe Archive Bit\n\n");
char path[256]; char path[256];
char label[16]; char label[16];
@@ -235,20 +235,20 @@ void m_entry_fixArchiveBit(u32 type){
{ {
case 0: case 0:
strcpy(path, "/"); strcpy(path, "/");
strcpy(label, "SD Card"); strcpy(label, "SD-Karte");
break; break;
case 1: case 1:
default: default:
strcpy(path, "/Nintendo"); strcpy(path, "/Nintendo");
strcpy(label, "Nintendo folder"); strcpy(label, "Nintendo Ordner");
break; 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); _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(); hidWait();
} }
} }
@@ -256,7 +256,7 @@ void m_entry_fixArchiveBit(u32 type){
void m_entry_fixAIOUpdate(){ void m_entry_fixAIOUpdate(){
gfx_clearscreen(); 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_fs_path = CpyStr("sd:/atmosphere/fusee-secondary.bin.aio");
char *aio_p_path = CpyStr("sd:/sept/payload.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"); char *o_strt_path = CpyStr("sd:/atmosphere/stratosphere.romfs");
if (FileExists(aio_fs_path)) { 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)) { if (FileExists(o_fs_path)) {
_DeleteFileSimple(o_fs_path); _DeleteFileSimple(o_fs_path);
} }
@@ -277,7 +277,7 @@ void m_entry_fixAIOUpdate(){
free(o_fs_path); free(o_fs_path);
if (FileExists(aio_p_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)) { if (FileExists(o_p_path)) {
_DeleteFileSimple(o_p_path); _DeleteFileSimple(o_p_path);
} }
@@ -287,7 +287,7 @@ void m_entry_fixAIOUpdate(){
free(o_p_path); free(o_p_path);
if (FileExists(aio_strt_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)) { if (FileExists(o_strt_path)) {
_DeleteFileSimple(o_strt_path); _DeleteFileSimple(o_strt_path);
} }
@@ -297,13 +297,13 @@ void m_entry_fixAIOUpdate(){
free(o_strt_path); 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(); hidWait();
} }
void m_entry_fixClingWrap(){ void m_entry_fixClingWrap(){
gfx_clearscreen(); 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 *bpath = CpyStr("sd:/_b0otloader");
char *bopath = CpyStr("sd:/bootloader"); char *bopath = CpyStr("sd:/bootloader");
char *kpath = CpyStr("sd:/atmosphere/_k1ps"); char *kpath = CpyStr("sd:/atmosphere/_k1ps");
@@ -320,7 +320,7 @@ void m_entry_fixClingWrap(){
if (res){ if (res){
DrawError(newErrCode(res)); DrawError(newErrCode(res));
} }
gfx_printf("-- Fixed Bootloader\n"); gfx_printf("-- Bootloader repariert!\n");
} }
if (FileExists(kpath)) { if (FileExists(kpath)) {
@@ -331,7 +331,7 @@ void m_entry_fixClingWrap(){
if (res){ if (res){
DrawError(newErrCode(res)); DrawError(newErrCode(res));
} }
gfx_printf("-- Fixed kips\n"); gfx_printf("-- kips repariert!\n");
} }
if (FileExists(ppath)) { if (FileExists(ppath)) {
@@ -339,7 +339,7 @@ void m_entry_fixClingWrap(){
_DeleteFileSimple(popath); _DeleteFileSimple(popath);
} }
_RenameFileSimple(ppath,popath); _RenameFileSimple(ppath,popath);
gfx_printf("-- Fixed patches.ini\n"); gfx_printf("-- patches.ini repariert!\n");
} }
free(bpath); free(bpath);
@@ -349,14 +349,14 @@ void m_entry_fixClingWrap(){
free(ppath); free(ppath);
free(popath); free(popath);
gfx_printf("\n\n Done, press a key to proceed."); gfx_printf("\n\n Fertig! Druecke eine Taste um zurueckzukehren");
hidWait(); hidWait();
} }
void _deleteTheme(char* basePath, char* folderId){ void _deleteTheme(char* basePath, char* folderId){
char *path = CombinePaths(basePath, folderId); char *path = CombinePaths(basePath, folderId);
if (FileExists(path)) { if (FileExists(path)) {
gfx_printf("-- Theme found: %s\n", path); gfx_printf("-- Theme gefunden: %s\n", path);
FolderDelete(path); FolderDelete(path);
} }
free(path); free(path);
@@ -364,40 +364,43 @@ void _deleteTheme(char* basePath, char* folderId){
void m_entry_deleteInstalledThemes(){ void m_entry_deleteInstalledThemes(){
gfx_clearscreen(); 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", "0100000000001000");
_deleteTheme("sd:/atmosphere/contents", "0100000000001007"); _deleteTheme("sd:/atmosphere/contents", "0100000000001007");
_deleteTheme("sd:/atmosphere/contents", "0100000000001013"); _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(); hidWait();
} }
void m_entry_deleteBootFlags(){ void m_entry_deleteBootFlags(){
gfx_clearscreen(); 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"); char *storedPath = CpyStr("sd:/atmosphere/contents");
int readRes = 0; int readRes = 0;
Vector_t fileVec = ReadFolder(storedPath, &readRes); Vector_t fileVec = ReadFolder(storedPath, &readRes);
if (readRes){ if (readRes){
clearFileVector(&fileVec); clearFileVector(&fileVec);
free(storedPath);
DrawError(newErrCode(readRes)); DrawError(newErrCode(readRes));
} else { } else {
vecDefArray(FSEntry_t*, fsEntries, fileVec); vecDefArray(FSEntry_t*, fsEntries, fileVec);
for (int i = 0; i < fileVec.count; i++){ for (int i = 0; i < fileVec.count; i++){
char *suf = "/flags/boot2.flag"; char *suf = "/flags/boot2.flag";
char *flagPath = CombinePaths(storedPath, fsEntries[i].name); char *subPath = CombinePaths(storedPath, fsEntries[i].name);
flagPath = CombinePaths(flagPath, suf); char *flagPath = CombinePaths(subPath, suf);
free(subPath);
if (FileExists(flagPath)) { if (FileExists(flagPath)) {
gfx_printf("Deleting: %s\n", flagPath); gfx_printf("Loesche: %s\n", flagPath);
_DeleteFileSimple(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(); hidWait();
} }
@@ -405,9 +408,9 @@ void m_entry_deleteBootFlags(){
void m_entry_fixMacSpecialFolders(){ void m_entry_fixMacSpecialFolders(){
gfx_clearscreen(); 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); listdir("/", 0);
gfx_printf("\n\rDone, press a key to proceed."); gfx_printf("\n\n Fertig! Druecke eine Taste um zurueckzukehren");
hidWait(); hidWait();
// browse path // browse path
@@ -419,24 +422,24 @@ void m_entry_fixMacSpecialFolders(){
void m_entry_stillNoBootInfo(){ void m_entry_stillNoBootInfo(){
gfx_clearscreen(); 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("%kSteckt eine Spiel-Cardrige im Slot?\n", COLOR_WHITE);
gfx_printf("Try taking it out and reboot.\n\n"); gfx_printf("Entferne sie und starte neu.\n\n");
gfx_printf("%kDid you recently update Atmosphere/DeepSea?\n", COLOR_WHITE); gfx_printf("%kHast du vor kurzem Atmosphere/OmniNX aktualisiert?\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("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("%kHast du eine neue SD-Karte gekauft?\n", COLOR_WHITE);
gfx_printf("Make sure its not a fake card.\n\n"); 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(); hidWait();
} }
void m_entry_ViewCredits(){ void m_entry_ViewCredits(){
gfx_clearscreen(); 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(); hidWait();
} }

View File

@@ -9,4 +9,4 @@ void m_entry_deleteBootFlags();
void m_entry_ViewCredits(); void m_entry_ViewCredits();
void m_entry_fixAll(); void m_entry_fixAll();
void m_entry_stillNoBootInfo(); void m_entry_stillNoBootInfo();
void m_entry_fixMacSpecialFolders(); void m_entry_fixMacSpecialFolders();

View File

@@ -13,7 +13,7 @@ void gfx_printTopInfo() {
bq24193_get_property(BQ24193_ChargeStatus, &current_charge_status); bq24193_get_property(BQ24193_ChargeStatus, &current_charge_status);
SETCOLOR(COLOR_DEFAULT, COLOR_WHITE); SETCOLOR(COLOR_DEFAULT, COLOR_WHITE);
gfx_con_setpos(0, 0); 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; RESETCOLOR;
} }

View File

@@ -7,11 +7,13 @@
#define COLOR_GREY 0xFF888888 #define COLOR_GREY 0xFF888888
#define COLOR_DARKGREY 0xFF333333 #define COLOR_DARKGREY 0xFF333333
#define COLOR_ORANGE 0xFFFFA500 #define COLOR_ORANGE 0xFFFFA500
#define COLOR_GREEN 0xFF008000 #define COLOR_GREEN 0xFF00FF00
#define COLOR_VIOLET 0xFFEE82EE #define COLOR_VIOLET 0xFFEE82EE
#define COLOR_PURPLE 0xFF7C49EF
#define COLOR_BLUE 0xFF0000FF #define COLOR_BLUE 0xFF0000FF
#define COLOR_CYAN 0xFF00FFFF
#define COLOR_RED 0xFF0000FF #define COLOR_RED 0xFF0000FF
#define COLOR_YELLOW 0xFFFF0000 #define COLOR_YELLOW 0xFFFFFF00
#define COLORTORGB(color) (color & 0x00FFFFFF) #define COLORTORGB(color) (color & 0x00FFFFFF)
#define SETCOLOR(fg, bg) gfx_con_setcol(fg, 1, bg) #define SETCOLOR(fg, bg) gfx_con_setcol(fg, 1, bg)

View File

@@ -242,9 +242,9 @@ scriptFunction(funcWait){
scriptFunction(funcGetVer){ scriptFunction(funcGetVer){
int *arr = malloc(3 * sizeof(int)); int *arr = malloc(3 * sizeof(int));
arr[0] = LP_VER_MJ; arr[0] = APL_VER_MJ;
arr[1] = LP_VER_MN; arr[1] = APL_VER_MN;
arr[2] = LP_VER_BF; arr[2] = APL_VER_BF;
Vector_t res = vecFromArray(arr, 3, sizeof(int)); Vector_t res = vecFromArray(arr, 3, sizeof(int));
return newVar(IntArrayType, 1, .vectorType = res); return newVar(IntArrayType, 1, .vectorType = res);
} }

View File

@@ -25,7 +25,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "../cpr/cpr.h" #include "../apl/apl.h"
extern hekate_config h_cfg; extern hekate_config h_cfg;
@@ -48,32 +48,30 @@ enum {
MainRebootRCM, MainRebootRCM,
// MainRebootNormal, // MainRebootNormal,
MainRebootHekate, MainRebootHekate,
MainRebootAMS,
}; };
MenuEntry_t mainMenuEntries[] = { MenuEntry_t mainMenuEntries[] = {
[MainExplore] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "-- Bootfixes --"}, [MainExplore] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "-- Behebe Start Probleme --"},
[DeleteBootFlags] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Disable automatic sysmodule startup"}, [DeleteBootFlags] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Automatisches starten der sysmodule deaktivieren"},
[DeleteThemes] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Delete installed themes"}, [DeleteThemes] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Loesche installierte Themes"},
[FixClingWrap] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix ClingWrap"}, [FixClingWrap] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Repariere SigPatches"},
[FixAIOUpdaterBoot] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix Switch-AiO-Updater update"}, [FixAIOUpdaterBoot] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Behebe fehlerhaftes AIO-switch-updater Update"},
[FixArchiveBitA] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix archive bit (all folders except nintendo)"}, [FixArchiveBitA] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Behebe Archive Bit (alle Ordner ausser Nintendo)"},
[FixArchiveBitN] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix archive bit (nintendo folder)"}, [FixArchiveBitN] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Behebe Archive Bit (Nintendo Ordner)"},
// [FixAll] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Try everything"}, // [FixAll] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Try everything"},
[MainConvenience] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Convenience --"}, [MainConvenience] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Bequemlichkeit --"},
[FixMacSpecialFolders] = {.optionUnion = COLORTORGB(COLOR_ORANGE), .name = "Remove special folders created by Mac"}, [FixMacSpecialFolders] = {.optionUnion = COLORTORGB(COLOR_ORANGE), .name = "Entferne spezielle MacOS Dateien"},
[MainOther] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Other --"}, [MainOther] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Sonstiges --"},
[MainViewStillNoBootInfo] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "My switch still does not boot"}, [MainViewStillNoBootInfo] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Meine Switch startet nicht mehr"},
[MainViewCredits] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Credits"}, [MainViewCredits] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Ueber"},
[MainExit] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Exit --"}, [MainExit] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Beenden --"},
[MainPowerOff] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Power off"}, [MainPowerOff] = {.optionUnion = COLORTORGB(COLOR_PURPLE), .name = "Ausschalten"},
[MainRebootRCM] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to RCM"}, [MainRebootRCM] = {.optionUnion = COLORTORGB(COLOR_PURPLE), .name = "Neustart in RCM-Modus"},
// [MainRebootNormal] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot normally"}, // [MainRebootNormal] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Normaler Neustart"},
[MainRebootHekate] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to bootloader/update.bin"}, [MainRebootHekate] = {.optionUnion = COLORTORGB(COLOR_PURPLE), .name = "Neustart in hekate"}
[MainRebootAMS] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to atmosphere/reboot_payload.bin"}
// [MainBrowseSd] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Browse SD"}, // [MainBrowseSd] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Browse SD"},
@@ -102,10 +100,6 @@ void HandleSD(){
extern bool is_sd_inited; extern bool is_sd_inited;
extern int launch_payload(char *path); extern int launch_payload(char *path);
void RebootToAMS(){
launch_payload("sd:/atmosphere/reboot_payload.bin");
}
void RebootToHekate(){ void RebootToHekate(){
launch_payload("sd:/bootloader/update.bin"); launch_payload("sd:/bootloader/update.bin");
} }
@@ -140,7 +134,6 @@ menuPaths mainMenuPaths[] = {
[MainRebootHekate] = RebootToHekate, [MainRebootHekate] = RebootToHekate,
[MainRebootRCM] = reboot_rcm, [MainRebootRCM] = reboot_rcm,
[MainPowerOff] = power_off, [MainPowerOff] = power_off,
[MainRebootAMS] = RebootToAMS,
[MainViewCredits] = m_entry_ViewCredits, [MainViewCredits] = m_entry_ViewCredits,
}; };
@@ -151,7 +144,6 @@ void EnterMainMenu(){
sd_unmount(); sd_unmount();
// // -- Exit -- // // -- 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[MainRebootHekate].hide = (!sd_get_card_mounted() || !FileExists("sd:/bootloader/update.bin"));
mainMenuEntries[MainRebootRCM].hide = h_cfg.t210b01; mainMenuEntries[MainRebootRCM].hide = h_cfg.t210b01;