v2.9.9: D8A0C4E5 beim Wechsel zu Nintendo (FRD_Logout vor dem Abmelden, MBMNET-ID erst danach lösen)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
23bf1abca8
commit
c384c20558
+4
-2
@@ -88,6 +88,7 @@ bool frdswitch_slot_linked(u8 friendAccount, char *id, size_t len)
|
||||
static Result unload(void)
|
||||
{
|
||||
note("Konto (act) abmelden", ACTA_UnloadConsoleAccount()); // ohne geladenes Konto: "ungültiger Zustand"
|
||||
note("Freunde-Dienst abmelden", FRD_Logout()); // laufende Anmeldung beenden (sonst "ungültiger Zustand")
|
||||
|
||||
Result rc = step("Offline gehen (exklusiv)", NDMU_EnterExclusiveState(NDM_EXCLUSIVE_STATE_LOCAL_COMMUNICATIONS));
|
||||
if (R_FAILED(rc)) return rc;
|
||||
@@ -97,7 +98,8 @@ static Result unload(void)
|
||||
svcSleepThread(100 * 1000 * 1000);
|
||||
}
|
||||
// Hängt der Freunde-Dienst noch an einer Anfrage, kurz wiederholen
|
||||
for (int attempt = 1; attempt <= 20; attempt++) {
|
||||
for (int attempt = 1; attempt <= 40; attempt++) {
|
||||
if (attempt == 21) note("Freunde-Dienst erneut abmelden", FRD_Logout());
|
||||
rc = FRDA_UnloadLocalAccount();
|
||||
if (R_SUCCEEDED(rc)) {
|
||||
if (logf) fprintf(logf, "%-36s %08lX (Versuch %d)\n", "Freundekonto abmelden", (unsigned long)rc, attempt);
|
||||
@@ -105,7 +107,7 @@ static Result unload(void)
|
||||
}
|
||||
svcSleepThread(500 * 1000 * 1000);
|
||||
}
|
||||
return step("Freundekonto abmelden (10 s)", rc);
|
||||
return step("Freundekonto abmelden (20 s)", rc);
|
||||
}
|
||||
|
||||
// Freundekonto laden. "Schon geladen" (z. B. direkt nach dem Anlegen) zählt als Erfolg.
|
||||
|
||||
+3
-1
@@ -442,9 +442,11 @@ static bool disable(bool confirmed, char *msg, size_t msglen)
|
||||
// anmelden). Den Namen merken, für den Hinweis auf den Zweitnamen.
|
||||
char id[20] = "";
|
||||
if (frdswitch_current() == FRIEND_ACCOUNT_MBMNET && nnid_linked(id, sizeof(id))) remember_mbmnet_id(id);
|
||||
bool freed = free_mbmnet_name(note, sizeof(note));
|
||||
bool created = false;
|
||||
if (frdswitch_current() != FRIEND_ACCOUNT_NINTENDO && !frdswitch_to(FRIEND_ACCOUNT_NINTENDO, &created, msg, msglen)) return false;
|
||||
// Erst jetzt (MBMNET-Konto nicht mehr geladen) den Namen für Pretendo freigeben. Vorher gelöst, meldete
|
||||
// sich der Freunde-Dienst neu an und ließ sich nicht abmelden (D8A0C4E5).
|
||||
bool freed = free_mbmnet_name(note, sizeof(note));
|
||||
patch_disable(detail, sizeof(detail));
|
||||
spotpass_unregister();
|
||||
if (freed) snprintf(msg, msglen, "Nintendo aktiv! Der 3DS startet neu.\n%s", note);
|
||||
|
||||
Reference in New Issue
Block a user