Sacred Underworld ModLoader
Verfasst: 26.08.2006 14:58
Hi,
Feedback brauch ich eigentlich keins, will nur mal Leuten die sich nicht entscheiden können PureBasic zu kaufen zeigen das sowas auch möglich ist.
Es handelt sich um einen aufwändigen Mod Loader für das kommerzielle Spiel Sacred Underworld. Sacred hat keinen buildin Modsupport, so ist ein Mod Loader unabdingbar, wenn man die Installation nicht dauerhaft manipulieren will. Also der Sinn des Mod Loaders ist es modifizierte Spieldateien in Sacred zu laden ohne dabei die Sacredinstallation zu manipulieren.
Und das funktioniert so:
Die Mod ist eine einzelne Datei, welche aus dem Mod Loader (.exe) und dem Modpacket (modifizierte Dateien) zusammengesetzt ist. Startet man nun die Mod.exe erstellt der Loader ein Verzeichnis namens "Mod" im Sacredverzeichnis und entpackt dort die modifizierten Dateien hin. Dann startet er Sacred und wartet auf ein Patchzeitfenster um ein paar Dinge im Prozessspeicher von Sacred zu patchen. Das Problem ist, das Sacred stark geschützt ist, durch einen sehr guten Exe-Packer, kein unpacker existent. Also muss im richtigen Augenblick gepatcht werden, nämlich dann wenn der Code dekomprimiert wurde aber die Spieldateien nochnicht geladen wurden. Also Patcht der Loader Sacred im richtigen Augenblick und zwar ändert er die Dateipfade so, das Sacred die Dateien aus dem Modverzeichnis läd anstatt aus dem eigentlichen Datenverzeichnis. Zudem biegt der Modloader noch das Pak-Verzeichnis auf das Mod-Verzeichnis um. Das ermöglicht das austauschen von einzelnen Texturen ohne die Texture.pak zu manipulieren. Nachdem Sacred die Datendateien geladen hat injiziert der Loader einen Remote Thread in den Sacred-Prozess um eine spielinterne Prozedur aufzurufen die einen Text in die Debugausgabe von Sacred schreibt. Dieser Text enhählt das Sacred gemoddet wurde. Sehr interessant zu wissen für die eigentlichen Spieleentwickler. Nachdem Sacred beendet wurde löscht der Mod Loader das Modverzeichnis wieder.
In der Praxis funktioniert das noch nicht für die .bin Dateien des Spiels aber mit allen .pak Dateien und einzelnen Texturen (.tga).
Der ModLoader ist nochnicht fertig, deswegen gibts noch keinen Source, kommt aber noch. Eine Demomod, welche eine Alpha des ModLoaders verwendet, gibt es schon. Zum Download gehts hier.
Feedback brauch ich eigentlich keins, will nur mal Leuten die sich nicht entscheiden können PureBasic zu kaufen zeigen das sowas auch möglich ist.
Es handelt sich um einen aufwändigen Mod Loader für das kommerzielle Spiel Sacred Underworld. Sacred hat keinen buildin Modsupport, so ist ein Mod Loader unabdingbar, wenn man die Installation nicht dauerhaft manipulieren will. Also der Sinn des Mod Loaders ist es modifizierte Spieldateien in Sacred zu laden ohne dabei die Sacredinstallation zu manipulieren.
Und das funktioniert so:
Die Mod ist eine einzelne Datei, welche aus dem Mod Loader (.exe) und dem Modpacket (modifizierte Dateien) zusammengesetzt ist. Startet man nun die Mod.exe erstellt der Loader ein Verzeichnis namens "Mod" im Sacredverzeichnis und entpackt dort die modifizierten Dateien hin. Dann startet er Sacred und wartet auf ein Patchzeitfenster um ein paar Dinge im Prozessspeicher von Sacred zu patchen. Das Problem ist, das Sacred stark geschützt ist, durch einen sehr guten Exe-Packer, kein unpacker existent. Also muss im richtigen Augenblick gepatcht werden, nämlich dann wenn der Code dekomprimiert wurde aber die Spieldateien nochnicht geladen wurden. Also Patcht der Loader Sacred im richtigen Augenblick und zwar ändert er die Dateipfade so, das Sacred die Dateien aus dem Modverzeichnis läd anstatt aus dem eigentlichen Datenverzeichnis. Zudem biegt der Modloader noch das Pak-Verzeichnis auf das Mod-Verzeichnis um. Das ermöglicht das austauschen von einzelnen Texturen ohne die Texture.pak zu manipulieren. Nachdem Sacred die Datendateien geladen hat injiziert der Loader einen Remote Thread in den Sacred-Prozess um eine spielinterne Prozedur aufzurufen die einen Text in die Debugausgabe von Sacred schreibt. Dieser Text enhählt das Sacred gemoddet wurde. Sehr interessant zu wissen für die eigentlichen Spieleentwickler. Nachdem Sacred beendet wurde löscht der Mod Loader das Modverzeichnis wieder.
In der Praxis funktioniert das noch nicht für die .bin Dateien des Spiels aber mit allen .pak Dateien und einzelnen Texturen (.tga).
Der ModLoader ist nochnicht fertig, deswegen gibts noch keinen Source, kommt aber noch. Eine Demomod, welche eine Alpha des ModLoaders verwendet, gibt es schon. Zum Download gehts hier.