diff --git a/Makefile b/Makefile index 0616c94..aba979e 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ SOURCES := source INCLUDES := source # Bei jedem Release erhöhen - das Auto-Update vergleicht diese Nummer -VERSION := 2.9.8 +VERSION := 2.9.9 APP_TITLE := MBMNET APP_DESCRIPTION := Dein eigenes 3DS-Netzwerk diff --git a/source/frdswitch.c b/source/frdswitch.c index de2cc6c..a5c4d34 100644 --- a/source/frdswitch.c +++ b/source/frdswitch.c @@ -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. diff --git a/source/main.c b/source/main.c index f46fbde..b80e574 100644 --- a/source/main.c +++ b/source/main.c @@ -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);