Hexegesis : projet de modding des jeux FromSoftware en Haskell
Hexegesis est un projet personnel consacré au modding des jeux FromSoftware en Haskell. J’ai envie d’y construire progressivement une boîte à outils composée de petits programmes en ligne de commande : inspecter les fichiers d’un jeu, identifier leurs formats, extraire des ressources, les transformer et les réintégrer. Le point de départ reste très concret. Je voudrais remplacer une texture,…
Hexegesis is a personal project dedicated to modding FromSoftware games using Haskell. The goal is to develop a toolbox of small command-line programs to inspect game files, identify formats, extract resources, transform them, and reintegrate them. The starting point is concrete - replacing textures, modifying fonts or changing opening screens, then checking the results in RPCS3.
Each objective provides a specific problem to solve and determines the necessary capabilities. Rather than attempting to support an entire format, the project begins with the smallest useful piece. This series serves as a journal, documenting the problems encountered, helpful documents, implementation choices, and the limits of what has been verified.
The author acknowledges not knowing all the necessary steps and avoiding an artificial progression. The article outlines the project, motivations, and how the articles will be organized. The first target is to achieve a visible modification in RPCS3, starting with a new texture on an initial weapon or outfit, a different font or modified opening screen.
The ultimate choice will depend on the chain of formats to be actually handled. RPCS3 can load a game image or an extracted version as directories. For the first mods, the author will work on this extracted tree, adding or replacing modified files without immediately rebuilding an ISO image. A first experiment will apply an already published mod to the author's copy.
The goal is not to republish its content, but to establish a reference result: identifying the concerned files, determining the tools used, applying the modification, and checking its effect in RPCS3. The workflow should look like this: obtain the game tree → locate the affected file → identify potential containers → extract the desired resource → convert it to a modifiable representation → make the modification → rebuild the necessary containers → replace the files in the tree → verify the result in RPCS3.
This list does not yet describe a validated procedure. The author knows the desired outcome but not all intermediate formats or reconstruction constraints. The initial manipulations will precisely determine these. The software goal is to create a BusyBox of modding. Initially, existing tools will be used to progress, understand the processing chain, and establish expected results.
A Python script, a specialized program, or manual manipulation can serve as a provisional reference. Eventually, Hexegesis will allow performing the entire task without relying on a disparate collection of programs. The author aims for Hexegesis to become a kind of BusyBox of modding at its scale. The comparison sets a high bar, but it accurately describes the intended direction.
BusyBox combines many specialized utilities behind a single program. Hexegesis would follow a similar principle in a more restricted domain: probing an image, traversing a tree, finding a file, extracting it, recognizing its format, exporting it to a usual representation, importing a modification, and reconstructing the necessary data.
Each command will accomplish a precise operation, with explicit inputs, outputs, errors, and limits. The commands can be used alone or composed in a shell; their logic will also be accessible from a Haskell library. The existence of a pre-existing tool does not automatically exclude an operation from Hexegesis's scope. This tool can initially help progress and verify results.
Its replacement with a Haskell implementation will meet another objective: obtaining a coherent toolbox, documented and sufficient for the formats effectively supported. Reading alone constitutes the first perimeter. When a writing operation becomes necessary, it will produce a new file or tree rather than silently modifying the source.
Precise rules will be defined and tested from the first real need for import or reconstruction. Initial corpus: Demon's Souls for PlayStation 3. The choice of the first game from thousands was simple: the author loves it. The author prefers dedicating time to files they genuinely want to understand and can regularly run the game without verification becoming a chore.
Demon's Souls was chosen for its personal collection and the author's appreciation for mods allowing rediscovery of known games, sometimes years after their release. Modding combines two activities the author is already interested in separately: programming and playing. The author owns at least two different versions of Demon's Souls, Dark Souls, and Dark Souls II.
These versions will later serve as comparative corpora. An observed structure in one version will not be attributed to another.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.