Wiimmfi-Projekt

Aus Wiiki
Wechseln zu: Navigation, Suche
Wiimmfi-Projekt

Wiimmfi-light.svg Wiimmfi-dark.svg

Flag-de.svg   Deutschsprachige Seiten
Wiimmfi-Projekt
Konzepte
Software


Am 27. Februar 2014 kündigte Nintendo an, dass der Service »Nintendo Wi-Fi Connection« am 20. Mai 2014 eingestellt wird[1]. Hintergrund war die Einstellung des Gamespy-Dienstes am Monatsende, über den ein erheblicher Teil des Wi-Fi Connection abgewickelt wurde. Betroffen sind alle Nintendo Wii und DS-Spiele, inklusive Mario Kart Wii.



Projekt-Geschichte

Wiimm hatte schon in weiser Voraussicht im November 2012, also 15 Monate vor Nintendos Ankündigung, begonnen, den Netzwerkverkehr zu analysieren. Zur Analyse entwickelte er das das das Tool mkw-ana, ein Hex-Dumper, der Details des Netzwerk-Protokolls erkannte und kommentiert ausgab.

Seit jener Zeit fertigte er Dumps des kompletten Wii-Transfers während seiner MKWii-Online-Partien und zusätzliche Videoaufzeichnungen an. Denn sein erklärtes Ziel war es, im Falle einer Serverabschaltung für die Erstellung eines eigenen Servers gerüstet zu sein.

Nur wenige Tage nach Nintendos Ankündigung wurde das Wii-Server-Projekt[2] ins Leben gerufen, welches später in »Wiimmfi-Projekt« umbenannt wurde.

Dank des vorhandenen Wissens war es dem Wiimmfi-Team möglich, schon Mitte Mai einen funktionsfähigen Ersatz-Server bereitzustellen. Und dieser Server lief schon von Anfang an erstaunlich rund.

Wiimmfi-Projekt

Zum Wiimmfi-Projekt gehört nicht nur die eigentliche Server-Software, sondern auch eine ganze Menge drumherum. Einiges davon lief unscheinbar im Hintergrund:

mkw-ana
Das Tool mkw-ana gehört an den Anfang der Liste, weil es lange vor den anderen Tools da war. Es erleichtert die Analyse der Netzwerk-Dumps ungemein, da es die Inhalte erkennt und für den Menschen lesbar darstellt und damit die Analyse erheblich vereinfacht. Auch wenn es auf das Spiel Mario Kart Wii abgestimmt war, so ist es auch bei der Analyse der anderen Spiele sehr hilfreich.
Hauptserver
Der Hauptserver besteht aus einer Gruppe von 6 einzelnen Servern, die auf eine gemeinsame Datenbank zugreifen. Jedes Spiel kommuniziert mit allen diesen Servern: Die Server sind:
  • NAS: Server für die Anmeldung ans System.
  • GPCM: Jeder angemeldete Wii besitzt einen GPCM-Partner-Prozess, der u.a. die ganze Interprozesskommunikation abwickelt.
  • GPSP: Server zur Informationsabfrage über Freunde.
  • MASTER: Server, der Informationen zum Match-Making entgegen nimmt und in der Datenbank speichert.
  • MS: Server, der zur Abfrage der Match-Making-Daten dient.
  • NATNEG: Server, der zum Aufbau der Client-zu-Client-Verbindungen benötigt wird, gerade wenn einer oder beide Clients hinter einem NAT liegen.
Nebenserver
Manche Spiele benötigen noch weitere Server zum Austausch von Daten oder Statistiken. Da wären u.a.:
  • SAKE: Austausch von kleineren Datenmengen wie z.B. Miis oder Geistdaten.
  • GAMESTATS: Verwaltung von Spielstatistiken.
  • DLS1: Download-Server für Updates und Spielerweiterungen.
  • RACE: Mario-Kart-spezifischer Server für Ranglisten und Wettbewerbe
Wettbewerbe

Nach langer Zeit der Entwicklung unterstützt Wiimmfi endlich die Mario-Kart-Wii-Wettbewerbe. Hier findest du ein Tutorial, wie die Wii gepatcht werden kann, damit Wettbewerbe von Wiimmfi geladen werden:
Wiimmfi MKWii competition service
Außerdem siehst du auf der Seite den aktuellen Wettbewerb und kannst Ranglisten der früheren Wettbewerbe ansehen.

wiimmfi.de

wiimmfi.de ist nicht nur die Basis-Domain des Wiimmfi-Servers, sondern auch ein Informations- und Einstellungs-Portal. So liefert es verschiedene Statistiken über die Server-Nutzung und wird im Moment zu einem Portal ausgebaut, in dem man diverse Einstellungen z.B. für OPENHOST vornehmen kann.

Für letzteres können sich registrierte Nutzer am Portal anmelden und je nach Rechten diverse Aktionen vornehmen.

Gamespy Retrieving Tool

Für jedes Profil existiert eine ProfileID und ein Nickname, welche nur die Wii selber und die Datenbank kennt. Die Wii schickt beim Login den Nickname zum Server und dieser antwortet dann mit der ProfileID. Wenn diese ID nicht übereinstimmt, verweigert das Spiel den Login mit Fehlercode 60000.

Um nun alte Profile nutzen zu können wurden die Originalen Gamespy-Server monatelang angefragt, um die Wertepaare abzufragen. Die Abfrage konnte nicht direkt geschehen, sondern man konnte nur die Infos über Freunde abrufen. Daher mussten neben den PID+Nick-Paaren auch Freundeslisten verwaltet werden.

Bis zur Abschaltung der Gamespy-Server am 25. Juli wurden so Informationen über 1 534 291 Konsolen, 2 908 513 Nicknames und 14 074 595 Freundschaften ermittelt.

Web-Formular für Freundeslisten
Dieses Web-Formular wurde eingerichtet, um das zuvor genannte Gamespy Retrieving Tool mit Basisdaten zu füttern. War ein Freundeskode einmal bekannt, so wurden die Infos über die Freunde und anschließend die Infos der Freundesfreunde und immer so weiter ermittelt.

Wiipid Extractor
Der Wiipid Extractor ist eine Wii-App, die direkt ProfileID und Nickname aus einem Savegame liest. Diese Daten werden dann direkt in die Datenbank eingetragen und damals auch als Basisdaten für das Gamespy Retrieving Tool verwendet. Dies ist jetzt die einzige Möglichkeit, einen Profildatensatz an den Server zu übertragen.

Spiele-Patcher

Die Original Spiele funktionieren leider nicht ohne Veränderung mit dem Wiimmfi-Server. Zum einen müssen die Domain-Namen im Spiel angepasst werden. Hier hätte man als Alternative noch die Möglichkeit über einen eigenen DNS-Server. Allerdings müssen auch HTTPS in HTTP-Zugriffe umgewandelt werden, so dass ein patcher zwingend erforderlich ist.

Es gibt zwei verschiedene Arten vom Wiimmfi-Patchern: Zum einen gibt es Image-Patcher, die Sicherheitskopien patchen. Zum anderen gibt es eine Homebrew-App, die über den Homebrewchannel jedes Spiel beim Laden patcht.

Spiele

Für jedes Spiel muss eine Definitions-Datei[3] für den Wiimmfi-Server erstellt werden. Über einen einfachen Interpreter werden dann in der Datenbank alle notwendigen Informationen eingetragen.

Die Wiimmfi-Spieleübersicht zeigt Informationen über alle aktivierten Spiele an. Weitere Details zu den Spielen sind hier im Wiki unter »Wiimmfi/Spiel« verfügbar.

Links

Referenzen

  1. Nintendo: Einstellung der »Nintendo Wi-Fi Connection«
  2. WHB-Forum: »Wii-Server-Projekt« alias »Wiimmfi-Projekt«
  3. Verzeichnis mit Spiel-Definitionen