I just stumbled across Ghidra, a free disassembler released by the NSA that they use for their cybersecurity efforts. It's cross platform and if you've used disassembly programs before like IDA then it doesn't take long to pick it up. I've used it a lot over the last day or so and I am really liking it a lot.
I found someone by the name of StepS had started reverse engineering Dangerous Dave with Ghidra and had made the incomplete project available, so I used that and was able to continue working on it, furthering the disassembly process. Using the Catacomb source code that K1n9_Duk3 had told me about, I was able to match it back to the graphics routines and got a heap of functions documented. I was even able to add the original comments in from the source code to the disassembly!
I had Ghidra running over a few days and it didn't crash once which is certainly saying something for this type of program. It's really easy to label things and add comments so you can keep track of what's going on, and adjusting memory references and the like is very straightforward (once you figure out how it's done of course!)
I got far enough to successfully resolve a few of the sticking points with Dangerous Dave, so it's now possible to change the player's start position among other things which is nice (all documented on the ModdingWiki of course). I also worked out how to change the starting level which is a question I asked some time ago, so that a level editor could start up the game at the current level to make playtesting easier. I'm very happy with how well the whole process went!
Having added quite a lot of information to StepS' Ghidra project for Dangerous Dave, I uploaded this version with my additions as well in case anyone wants to continue where I left off or use it to make patches for the game. The link is at the bottom of the Dangerous Dave ModdingWiki page.
Here's a screenshot if you're curious:
Tools, assembly, and file formats.
1 post • Page 1 of 1