DOS Game "F-15 Strike Eagle II" reversing project needs DOS test pilots
neuviemeporte.github.io218 points by LowLevelMahn 13 hours ago
218 points by LowLevelMahn 13 hours ago
Playable DOS version available
First step was the full reverse to assembler, second step is to convert the assembler to binary equal compiled C code, all this still on DOS until no assembler code is left, then the porting to Linux,Windows will start
Reversing tends to bring in new bugs and its not easy to find all bugs in such old and reversed code - but so far everything seems to work
try finding open bugs if you got version 451.03 of F-15 around combined with Dosbox or a real DOS
find latest DOS release here: https://github.com/neuviemeporte/f15se2-re/releases
the f15_se2-*.zip file contains the replacement executables for the DOS game
The airforce needs YOU!
USAF veteran here. I grew up on F-15 Strike Eagle II, and unfortunately my copy has long since degraded. I am elated to see this project.
I do have one teeny, tiny, personal pedantic grumble that is sure to bring other the branches out of the woodwork to point out how much I love chairs.
Air Force. Two words. Thanks.
Fixed (might need a Shift-Ctrl-R reload). Apologies, English is not my first language.
No worries, in some languages it is indeed one word - like Luftwaffe.
I've seen many native English speakers routinely bang out "airforce", so it's not just an ESL thing.
Nice work!
I’m not sure you should beat yourself up too much for a Linix* port, emulators are so well supported and ubiquitous, if it works there (not everything does), call it a win!
I use Lutris (https://lutris.net/) for its ease of use.
I can see your a “low level mahn” and this may be more of a quest for you than playing a cool retro game.
Any which way, GREAT WORK!!!!
its mostly the combined work of AJenbo, neuviemeporte and others - my part is very small, fixing some compilation problems with newer compilers and spreading the news
C source needs to get compiled on every platform reachable - that is a must :)
I'm currently reverse engineering a few games too. It's quite easy with AI now. But I'm worried about the legality of it all. Any thoughts on this?
Many of the games have bo copyright owners any longer. They are literally abandoned.
Somehow I’m not that concerned. I haven’t heard of any company but Nintendo trying to assert rights to 1980s game IP, and that’s because they’re still selling those literal ROMs as part of a subscription service.
Would I port such a game and then sell it? No, because that kind of puts a target on your back. Keeping it open source and also noncommercial, I don’t think it’s ever gonna matter.
(Obligatory I’m not a lawyer disclaimer - this is a vibes based comment not legal advice. Obviously copyright is nearly infinite, in theory)
It's not because they're selling ROMs, that only accounts for a small fraction of their back library.
It's because they're assholes.
No argument on the latter, but I feel like they also have a 'practical' concern that if they very openly ignored 8-bit and 16-bit 'piracy,' it's conceivable that devices like the Anbernic and Powkiddy ones (that already exist in our timeline) would get sold more in the open and be even easier to get started with. Maybe some parents (say, millennials who want our kids to learn the kind of gaming we grew up on) would rather buy those than a $349 Switch with the $10/month subscription they sell to the selection of 80s and 90s games in Switch Online.
In our timeline of course, those are already easy to get, but those companies cater to the kinds of nerds who flash a new OS to SD cards and download collections of ROMs.
Now, do I think Nintendo actually makes that much money on Switch Online from people who (A) are only there for the retro games and (B) would jump on some "more mainstream" and easier version of retro piracy handheld? Mehhhhhh not really. But someone probably espouses that viewpoint at Nintendo HQ.
Images, music, video, and text would all be under copyright, while characters and logos may be registered trademarks.
Oh yes, of course. I was talking about reverse engineering the code only. Requiring the official assets is a no-brainer.
Largely it is legal, but it's complicated. https://www.eff.org/issues/coders/reverse-engineering-faq
You could do “clean room engineering” approach where the reversing agent generates a specification from its findings, and then have a separate agent reimplement the code without seeing the original binaries/code.
You’d just have to make sure the specification doesn’t include actual source snippets (the AI will try this if you don’t specify). Pseudo code would be sufficient I guess where necessary.
Unless you develop your AI agent from scratch or you clone a never-released game, it would be extremely easy for the rightholders to claim that both agents have most certainly ingested the binary during their training phase, since it's well known that the hyperscalers have pirated everything that could be pirated to train their LLMs. Which is why malus.sh is a parody, not a real service.
One should be honest about what one builds. The F-15 project does that: the aim is the reconstruction of the original game, down to the opcodes; on the other hands it requires the user to provide the original game assets.
> it would be extremely easy for the rightholders to claim that both agents have most certainly ingested the binary during their training phase
Ingested the binary?
If they try to claim that then they need proof, right? Good luck getting that.
Noob question. I really hope this doesn't come across as negativity.
I love that people spend time on making old games work, but why do people decompile games that can be emulated by DOSbox or the like? Surely a game this old runs absolutely fine on even very low end hardware?
I had a few reasons, when I tried tackling RE of a DOS-era game a number of years ago. I wanted to document the file formats, look through the data and find unused media, identify and fix some of the more egregious bugs in the game, build modding tools for it, understand the techniques used to build something that was memorable from my childhood, reduce the friction of running it on a modern system, make available optional improvements like higher resolution, texture replacement, and so on.
It ended up being more than I had the patience to finish. It might be doable for me now.
It's not about running the game, it's about having it open for modification. Patching a game in binary form is ridiculously hard, anything than simple bugfixes is mostly a no-go. With the source code available we can add entire features, port it to Windows 10, implement 4K HDR, textures, new models, new missions... the sky's the limit. Additionally, it's really hard to analyze the game from assembly opcodes with hardcoded data offsets. With C code either we can read what it does directly, or add instrumentation or debugging code to it to figure it out.
A lot of floppy-based games have on-disk copy protection patterns that take advantage of undocumented behavior of disk drives at the time. So much so that tools like Greaseweazle [0] are necessary to compose full magnetic flux maps of archived floppies.
Another thing is that these games are often made to run on a wide variety of graphics and sound hardware, and effectively have drivers compiled into them.
It’s ridiculously easy to port games now.
https://robin.tooclever.org took less than a day in API time
[flagged]
Calm down babe, I’ve been doing game disassembly, emulation and ports for a few decades by now. It’s just a fact that it has become ridiculously easy with top end models, because they locate every know piece of information out there. Can’t deny it.
Oh, this was one that I played a lot as a kid! (Alongside F-19 Stealth Fighter, F-117A Nighthawk Stealth Fighter - the two that apparently came before and after this game - TIL, and to a lesser extent F-14 Tomcat)
I think, this needs the original game files to run, if I read things correctly. So probably just gonna read the dev journals, rather than fly this particular bird again...
F-19 is a great game and one of my favorite Sid Meier titles ever. I remember buying it from Electronics Boutique in the late 1980s and playing it on our Packard Bell 286. The game's copy protection mechanism required you to look up aircraft in the manual and identify them. The consequence was that I memorized the entire set of aircraft in the game. I even bought a Gravis Analog joystick to play the game and I still have the keyboard overlay.
I would love a modern reboot of this game...
I can still remember the intro music for F-19 as played through the built-in PC speaker, the harsh tinniness just made it more of a banger.
And yep, that copy protection is why I can tell my Floggers from my Backfires at the limits of FLIR range lol.
Was this the one that you could play co-op with a friend in a front seat / back seat role? Or was it III? I spent so long ringing my friend on the landline to help set up his modem configuration,then having him dial in again, starting the game, him disconnecting again, me ringing him to see what had happened that time etc. etc. When we finally got it working, we played it so incessantly that his Mum banned him from playing it over the modem as we were tying up the sole phone line for hours.
I would love to find similar multiplayer in other flight sims, or space sims. I also really want to get this game working again and see if I can nostalgia bait my friend.
The dev blog is one of the best retro-reversing journals you can find. Happy reading!
Aren't these names trademarked? I can imagine lockheed selling the rights for a side income lol
The F-19 denomination was never used, they skipped from F-18 to F-20. The game was based on what they believed that the stealth fighter (F-117) was going to be before it was publicly acknowledged. So maybe it wasn't trademarked. (Or maybe they trademarked everything just in case...)
Vaguely similar to the F-29 Retaliator game, that was based in the X-29 experimental fighter, but not in an existing F-29 of any kind.
Same as for any game that uses real car brands or gun manufacturers, quite a few of these companies are willing to license for certain types of game
Does AI fit well in trying to reason about the structure of a decompiled project when you lack symbol names?
This isn’t my wheelhouse but I was surprised just how well AI could figure out the intent of the structure of some JavaScript where I had no source maps.
AI is superhuman at reading and understanding assembly, it doesn't care much about if it's decompiled or has symbols, that just makes it a bit slower. In some cases it can even understand heavily obfuscated control flow directly without using tools.
I have a friend who flew F15s. I’ve sent him this.
Communities for these old games do an incredible job securing the four freedoms for their favourite titles, and it's truly inspiring. Great work.
Many hours expended on building up doppler maps in flight to use to shoot SLAMs with. An excellent sim along with Digital Integrations' Tornado which really needs a reboot.
I never played this, but I did play Janes F/A-18, was a great game
Oi! And Jane's USAF!
I played US Navy Fighters and that reminded me of this game, shortly after playing it for a year I had received Jane's F-16 as a 13th birthday present.
Man I loved this game. My friend and I would split responsibility and share the keyboard. One did the firing other the navigating
A friend and I did this with Privateer II (the one with incessant FMV starring a young Clive Owen) - pilot on the gamepad, navigator / weapons officer on the keyboard.
I've played this game so much on a Laser (Dutch computer brand) 286 with VGA monochrome screen, in the early '90s.
I posted this to twosopbts.com so that one more retro gaming community will know of the call
If it's the game I'm thinking of, floppy copies were going around my middle school in France at the time but this was a game that without the manual, good luck even getting the plane off the ground. I seem to recall a mode where you started out in the air. Fun times.
That reminds me of when a friend convinced me to try to get into Falcon BMS. The community has created thousands of pages of documentation on flying the Falcon, operating the various weapon systems, as well as things like energy management, formation flying techniques etc. etc.
https://wiki.falcon-bms.com/en/manuals
It's really impressive, but I did not have the time to put into learning it.
You definitely needed the manual. But an 8-year old version of me mastered the game so it couldn't have been that hard.
FWIW, the manual is a masterpiece. I really miss all the ancillaries that came with early computer games.
That happened to me, at least, with F-29 Retaliator. Your best bet was starting a mission already in the air, as the game (IIRC) didn't include any tutorials.
Is this game similar to retaliator?