Files
MBMNET-APP/source/patcher.h
T
2026-10-18 17:05:44 +02:00

31 lines
1.4 KiB
C

#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.
#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);