Restaurierungsprojekt für Emperor: Battle for Dune
Was ist Emperor: Battle for Dune?
- Ein Echtzeit-Strategiespiel, das 2001 von Westwood Studios entwickelt wurde
- Der Nachfolger von Dune 2000, mit 3D-Grafik, verbesserter UX und einem hervorragenden Soundtrack
- Heute weitgehend in Vergessenheit geraten
Probleme
- Unterstützt auf modernen Systemen keine hohen Auflösungen
- Im Mehrspielermodus wird die Spielgeschwindigkeit zu hoch, sodass Spielen unmöglich wird
- Da Westwood Online (WOL) nicht funktioniert, ist Multiplayer außerhalb von LAN nicht möglich
- Der Kampagnenmodus kann nicht im Koop-Modus gespielt werden
- Das Installationsprogramm ist beschädigt
- Visuelle Effekte werden durch hohe Frameraten zerstört
Lösungsansatz
- Ein Ersatzprogramm für
Emperor.exe geschrieben, das Game.exe steuert
- DLL-Injection verwendet, um Patches anzuwenden
Patch-Injection
- Code mit dem Trick aus
CreateRemoteThread und LoadLibrary in Game.exe injiziert
- Mit der Bibliothek
detours bestehende Funktionen modifiziert
Grafik-Patches
Fenster mit hoher Auflösung
- Das Patch
LegacyD3DResolutionHack von UCyborg verwendet, um das Auflösungsproblem zu beheben
- Letterboxing hinzugefügt, um das 4:3-Seitenverhältnis beizubehalten
Begrenzung der Framerate
- Die Methode
IDirect3DDevice7::EndScene gepatcht, um die FPS auf 60 zu begrenzen
Netzwerk-Patches
- Den WOL-Modus verwendet, um die Multiplayer-Funktion wiederherzustellen
winsock abgefangen und die gesamte Kommunikation über eine einzelne Client-Server-Verbindung getunnelt
Eigenen IRC-Server geschrieben
- Einen grundlegenden IRC-Server implementiert, um den WOL-Masterserver zu ersetzen
Paketierung
Ersatz für das Installationsprogramm
- Da das ursprüngliche Installationsprogramm beschädigt ist, ein neues Installationstool geschrieben
- Patch v1.09 angewendet
Gemeinsame Internet-Komponenten von Westwood Online
WOLAPI.DLL als COM-Klassenbibliothek registriert, um die WOL-Funktion wiederherzustellen
Launcher-UI
- Eine einfache Launcher-UI erstellt, mit der sich grundlegende Einstellungen anpassen lassen
Fazit
- Das Ziel erreicht, sodass Emperor: Battle for Dune auf modernen Systemen reibungslos läuft
- Multiplayer-Funktionen einschließlich Koop-Kampagnenmodus wiederhergestellt
Zusammenfassung von GN⁺
- Dieses Projekt ist eine wichtige Arbeit zur kulturellen Bewahrung, die es ermöglicht, ein altes Spiel auf modernen Systemen wieder spielbar zu machen
- Es löst technisch interessante Herausforderungen, besonders der Umgang mit Grafik- und Netzwerkproblemen ist beeindruckend
- Vergleichbare Projekte mit ähnlicher Funktionalität sind DirectX-Wrapper wie
dxwrapper
1 Kommentare
Hacker-News-Kommentare
Emperor: Battle for Dune kann auf archive.org heruntergeladen werden
Dieses Spiel hat eine große Bedeutung für das RTS-Genre
Westwood Online (WOL) funktioniert nicht mehr
Geteilte Erfahrung, vor 10 Jahren den Netzwerk-Code von Tiberian Sun gepatcht zu haben
Der Autor wirkt wie eine unterhaltsame und kluge Person
Eine mögliche Integration mit CnCNet wird vorgeschlagen
Reaktion auf die Formulierung „28.8-BPS-Modem“
Reaktion auf die in Blogposts oft zu sehende Formulierung „Ich bin kein erfahrener Reverse Engineer“
Dank für den sehr interessanten und tiefgehenden Artikel
Es wird Begeisterung für UI-Design ausgedrückt