The current progress is:
Overall Complete functions: 88.26 % (2573/2915)
Overall Complete instructions: 92.53 % (214618/231942)
Which marks the end of the raw decompliation phase. No more functions left to do :). So what are the functions that are not done? These are functions related to the C-Runtime library or other dead or unused code that isn’t required.
Gibbons managed to do a 100% play through of the “standalone” (reversed only code) version further proving that there isn’t anything missing even with a few 100 functions not being reversed.
This leaves 5 major items left to complete before adding new features/fixing preexisting original game bugs:
-
Test and fix all of the bugs. Mouze and Varrok have been doing an amazing job with this over the last couple of weeks. Disagreements aside ;). We also need to start testing standalone now which I’m sure will rain down another bug invasion upon us.
-
Fix/rewrite the sound part of the engine.
-
Document the unknown fields/methods in the code base.
-
Fix/rewrite the graphics rendering part of the engine to actually use hardware rendering so things like “HD” sprites become possible.
-
Refactor the code to remove “field”, “address”, “win32 code”, “manual ctor/dtor” calls and other artifacts of decompliation once we no longer use an injected dll. This steps has to be done last.
Next month the plan is focus on finding and killing off bugs introduced in the reversed code and start to look at the sound rewrite/update. Hopefully anyone who can will contribute to testing and renaming/documenting of unknown fields/functions. While its great to be at this stage there is still a long road ahead.