#pragma once #include <3ds/types.h> // Offizieller MBMNET-Server. Über "Server-Adresse" lässt sich ein anderer eintragen (z. B. zum Testen). // Fester MBMNET-Server: einfaches HTTP über den NetBird-TCP-Service auf Port 81. // Höchstens 21 Zeichen passen in den Patch. // true: patch_enable holt die Miiverse-CA frisch vom Server (sonst aus dem Zwischenspeicher auf der SD) extern bool patchFreshCa; #define MBMNET_SERVER "mbmnetapi.mbm.wtf:81" #define APP_DIR "sdmc:/3ds/mbmnet" #define DIAG_FILE APP_DIR "/diagnose.txt" typedef enum { STATE_ORIGINAL, // kein Patch: Nintendo-Originalzustand STATE_MBMNET, // unser Patch ist aktiv STATE_FOREIGN, // fremder Patch (z. B. Pretendo/Nimbus) ist aktiv } PatchState; PatchState patch_state(void); // Räumt Patches alter App-Versionen (/luma/titles/...) weg. true, wenn etwas entfernt wurde. bool patch_migrate(void); // Erzeugt die Patches (Freunde + Konto) und aktiviert MBMNET. msg bekommt eine lesbare Meldung. // *changed: true, wenn sich Patch-Dateien geändert haben (dann ist ein Neustart nötig). bool patch_enable(const char *server, bool *changed, char *msg, size_t msglen); // Schreibt alle Adress-Texte aus den Modulen nach DIAG_FILE (zur Fehlersuche). bool patch_diagnose(char *msg, size_t msglen); // Entfernt unsere Patches und stellt eventuell gesicherte fremde Patches wieder her. bool patch_disable(char *msg, size_t msglen); // Läuft ein Prozess mit dieser Titel-ID? (über Lumas Prozess-Info), PID in pidOut bool patch_find_process(u64 tid, u32 *pidOut);