Given all decompliation is done there is no need to post percentage complete stats on that stage anymore ;).
This month there hasn’t been too much work done on this project as I’ve been kick starting a project to reverse the PSX version of Metal Gear Solid.
However some progress has been made on the “sound” branch to start to consolidate all of the copy pasted DirectSound/SDL2 sound backends. MLG’s implementation copied a lot of functions and slightly tweaked them. I am to bring them back to 1 set of functions and have the IDirectSound and IDirectSoundBuffer provide the DSound/SDL2 asbstraction point. Sorry if this is too techo babble for some, but it is what it is ;).
Also mouze has raised a fresh batch of game logic bugs to attack. In the longer term I think the project will aim to:
-
Provide a set of maps/levels that just contains the “layout” data with original game map issues fixed.
-
Have an “install” step that creates a de-duplicated list of animations. Currently each LVL archive in the game has tons of duplication. This will present a real issue when trying to create mods that replace animations as it would mean the mod would have to ship a copy of every LVL with certain elements replaced. Also information about each animation is hard coded which needs moving to external data. These 2 big ticket items will provide a good base to allow “layered” mods that override certain maps and animations/cameras.
-
The level editor will most likely be a separate application but a lot of the structures/object information that is in code can easily be shared. This will be the easiest way to create an editor. Since we have full control of the engine we can also have a 1 click to run and enter the specific map/screen that the modder wants to test for faster cycle time.
-
And of course all of the remaining engineering work mentioned in the last update and probably a load more stuff such as making the menu controller data driven so that can easily be modded too.
Next month I’ll probably still be spending most time on the MGS project as I really need a break from doing this one for years! I’ll still be providing support to anyone brave enough to pick up any of this work :).