v2.9.8: Soft-Reboot über ns:s (wie Nimbus) statt Hardware-Reset beim Umschalten
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
f05fd2fc16
commit
23bf1abca8
@@ -17,7 +17,7 @@ SOURCES := source
|
||||
INCLUDES := source
|
||||
|
||||
# Bei jedem Release erhöhen - das Auto-Update vergleicht diese Nummer
|
||||
VERSION := 2.9.7
|
||||
VERSION := 2.9.8
|
||||
|
||||
APP_TITLE := MBMNET
|
||||
APP_DESCRIPTION := Dein eigenes 3DS-Netzwerk
|
||||
|
||||
@@ -198,7 +198,7 @@ AccessControlInfo:
|
||||
QueryProcessMemory: 125
|
||||
|
||||
# Dienste: u. a. am:net (Updates installieren), http:C (Updates laden), fs:USER, ptm:sysm (Neustart),
|
||||
# frd:a (Freundekonto umschalten), pm:app (FTP-Modul starten/beenden)
|
||||
# frd:a (Freundekonto umschalten), pm:app (FTP-Modul starten/beenden), ns:s (schneller Neustart)
|
||||
ServiceAccessControl:
|
||||
- APT:U
|
||||
- ac:u
|
||||
@@ -222,7 +222,7 @@ AccessControlInfo:
|
||||
- ir:rst
|
||||
- ir:u
|
||||
- ir:USER
|
||||
- mic:u
|
||||
- ns:s
|
||||
- ndm:u
|
||||
- news:s
|
||||
- nwm::EXT
|
||||
|
||||
+9
-3
@@ -544,6 +544,7 @@ int main(int argc, char **argv)
|
||||
UpdateState lastUpd = UPD_IDLE;
|
||||
int restartIn = 0; // Frames bis zum automatischen Neustart der App nach einem Update
|
||||
int rebootIn = 0; // Frames bis zum Neustart des 3DS nach dem Umschalten
|
||||
bool softReboot = false;
|
||||
|
||||
// Patches alter Versionen lagen an einer Stelle, an der Luma sie nicht lädt
|
||||
if (patch_migrate())
|
||||
@@ -663,9 +664,9 @@ int main(int argc, char **argv)
|
||||
spotpassTestFrames = -1;
|
||||
|
||||
// Neustart erst, wenn die Freunde-Anmeldung durch ist (höchstens ein paar Sekunden)
|
||||
if (rebootIn > 0 && --rebootIn == 0 && R_FAILED(APT_HardwareResetAsync())) {
|
||||
snprintf(msg, sizeof(msg), "Neustart fehlgeschlagen.\nBitte den 3DS von Hand neu starten.");
|
||||
}
|
||||
// Schneller Neustart wie bei Nimbus (Soft-Reboot über ns:s, ohne boot9strap/Luma-Splash): erst die App
|
||||
// sauber beenden, dann neu starten (unten nach dem Aufräumen)
|
||||
if (rebootIn > 0 && --rebootIn == 0) { softReboot = true; break; }
|
||||
|
||||
if (restartIn > 0 && --restartIn == 0) {
|
||||
if (relaunch_prepare(selfPath)) break;
|
||||
@@ -697,6 +698,11 @@ int main(int argc, char **argv)
|
||||
}
|
||||
clean = admin_finish() && clean;
|
||||
clean = update_finish() && clean;
|
||||
if (softReboot) {
|
||||
Result rc = nsInit();
|
||||
if (R_SUCCEEDED(rc)) rc = NS_RebootSystem(); // kehrt bei Erfolg nicht zurück
|
||||
if (R_FAILED(rc)) APT_HardwareResetAsync(); // Notlösung: kompletter Neustart
|
||||
}
|
||||
if (!clean) {
|
||||
// Hart beenden, ohne Speicher freizugeben (der Kernel räumt alles auf)
|
||||
aptExit();
|
||||
|
||||
Reference in New Issue
Block a user