DOS Game "F-15 Strike Eagle II" reversing project needs DOS test pilots

87 points by LowLevelMahn 3 hours ago on hackernews | 21 comments

(This post is part of a series on the subject of my hobby project, which is recreating the C source code for the 1989 game F-15 Strike Eagle II by reverse engineering the original binaries.)

I must admit the rate of progress currently experienced in the project is a little overwhelming. A little over a month ago it seemed that we had several more years of laborious rewritting of assembly into C before the second game executable (egame) started looking like something, and the third one (end) still to go for dessert. Meanwhile, as of the time of writing this, all C code has been reconstructed for all executables, all data has been moved from assembly into C, most of the assembly-only code has functional replacements written in C, most routines and data structures have been assigned meaningful names, and we’re looking at forking off the repo for a porting project in the near future.

However, this explosive growth in completeness and capability also means that we’re abandoning the relatively peaceful domain of just looking at whether the reconstructed opcodes match, and we actually need to maintain a running game going forward. The tooling makes sure that the opcodes stay faithful to the original as we continue to make changed, but it cannot catch all bugs, particularly not the ones that have to do with data layout.

Test pilots wanted

Seeing how community involvement has allowed the project to flourish, I was hoping we could ask for a little bit more help. F-15 Strike Eagle 2 reconstruction is now open and ready for test pilots to take to the digital skies and find any bugs that we might have missed. Right now, the latest release is v0.9.1 and it should work with the original game’s 451.03 version with the desert storm expansion pack - just drop the executables into the game folder replacing the original ones (make a backup beforehand), possibly removing the original f15.com to make sure it does not get launched in place of the new f15.exe, and take off. It will not go into the setup screen, instead assuming a MCGA/VGA display with no sound and no joystick. But everything else should work in all 3 parts of the game (mission briefling, flight and debriefing).

If anything does not work, we would appreciate bug reports. We are looking for crashes, graphical glitches, keys not working etc. Consider attaching a screnshot (Ctrl+F5 in dosbox) if it’s useful. A description of what was being done before the issue occured will be helpful to us in reproducing the problem and hopefully developing a fix.

It’s important to notice that this is a bug-for-bug reconstruction, so any behaviour also present in the original game needs to stay as is (for now). The original has some problems with 3d objects disappearing, plane falling towards the sky when inverted and out of fuel etc. So before reporting an issue, it would be best to make sure it does not occur in the original, so keeping a copy around for reference might be a good idea.

Thank you to everybody who decides to help and thanks to everyone who contributed to the project thus far, allowing it to reach this milestone. I’m looking forward to the next ones, and I’m happy y’all are along for the ride.