I am working on a scene editor for the first Hitman game (Codename 47) .
The editor works by extracting and modifying the Pack.SPK file from the ZIP file of a scene.
Loading works, and you can see all the models in the scene. It’s also possible to move, duplicate and delete objects. But at the moment there are no textures, and SPK files saved by the editor will often crash the game. The only thing that I managed to modify without the game crashing is the position of the plant and the camera in the first mission cutscene.
To do this editor, I first took a look at the Pack.SPK file with a hex editor. Then once I noticed that it uses a chunk system, I made a script in Python that would enumerate every chunk. Afterwards I found both object trees (in PROT and PCLP chunks) and wrote the code to enumerate every object in the scene (that you can also see when typing DIR or DIRCLIP in the game’s console after typing IP_DEBUG 1). Once I figured out how the 3D models were stored, I made a script for Blender that would import all the meshes of the scene.
Then when I managed to decode the rotation matrices and everything looked OK, I started making this editor in C++.
As you can see, it’s still a work in progress. But once it’s done, we can maybe make our new missions .
Tell me your thoughts!
As it’s incomplete, there’s no plan to release it yet, but if there is a lot of interest, I might give something to try, or the source code.
2018/08/03: The editor is now available on GitHub: https://github.com/AdrienTD/c47edit