1 Punkte von GN⁺ 2024-07-15 | 1 Kommentare | Auf WhatsApp teilen

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

 
GN⁺ 2024-07-15
Hacker-News-Kommentare
  • Emperor: Battle for Dune kann auf archive.org heruntergeladen werden

    • Link
    • Hinweis für alle, die das Spiel zusammen mit dem wheybags-Patch ausprobieren möchten
    • Es wurden auch Listen alter Piraterie-Releases ausgegraben
    • Überraschung darüber, dass es sogar einen OST-Soundtrack gibt
  • Dieses Spiel hat eine große Bedeutung für das RTS-Genre

    • Es war eines der frühen typischen RTS-Spiele mit Bauern, die Ressourcen ernten
    • Durch den Originalroman wurde es zu dieser Form; andernfalls hätte das RTS-Genre möglicherweise einen anderen Weg genommen
  • Westwood Online (WOL) funktioniert nicht mehr

    • Multiplayer ist nur noch über LAN möglich
    • XWIS.net hat viel Unterstützung geleistet, nachdem WOL offline gegangen ist
    • Das FreeRA-Projekt könnte ebenfalls dabei helfen, WOL zum Laufen zu bringen
    • Das Ersetzen der WOL-Bibliotheken könnte vergleichsweise einfach sein
  • Geteilte Erfahrung, vor 10 Jahren den Netzwerk-Code von Tiberian Sun gepatcht zu haben

    • Sich in fremden Code einzuarbeiten ist wie eine gemeinsame Verbindung zu haben
    • Überraschung darüber, dass es einen separaten Stack für Modem-Spiel gab
  • Der Autor wirkt wie eine unterhaltsame und kluge Person

    • Die ausbaufähigen Erklärungen waren sehr nützlich und unterhaltsam
    • Es wird gefragt, ob CS:GO 2023 eingestellt wurde oder zu CS2 umbenannt wurde
  • Eine mögliche Integration mit CnCNet wird vorgeschlagen

    • Einladung, bei CnCNet gemeinsam zu spielen
  • Reaktion auf die Formulierung „28.8-BPS-Modem“

    • Die Formulierung „Active Matrix, Millionen psychedelischer Farben“
  • Reaktion auf die in Blogposts oft zu sehende Formulierung „Ich bin kein erfahrener Reverse Engineer“

    • Es wurde bereits genug Erfahrung gesammelt, also kann man ruhig selbstbewusst sein
  • Dank für den sehr interessanten und tiefgehenden Artikel

    • Das Spiel wurde einmal in einem lokalen Secondhand-Laden gesehen, aber weil nur Dune II gespielt wurde, wurde es nicht gekauft
    • Jetzt steht der Entschluss fest, es unbedingt zu kaufen
  • Es wird Begeisterung für UI-Design ausgedrückt

    • Es erinnert an einen Blogpost von Steve Yegge