logoalt Hacker News

Reversed engineered game Starflight (1986)

91 pointsby toshtoday at 11:37 AM43 commentsview on HN

Comments

s-macketoday at 3:31 PM

Author here. I’m happy to see one of my projects on Hacker News. This has been a fun one. One evening you just try to disassemble it and wonder where the code is. The following months were a truly satisfying experience, reverse-engineering this diamond.

There is still a functioning Forth interpreter implemented in the game. If they hadn’t removed all the word names, it would have been possible to debug at any time and analyze the program state and call functions live with real Forth code. Some crazy feature at that time.

show 2 replies
twoodfintoday at 2:02 PM

Hard to convey how effective Starflight’s game design was within the limits of the day.

The embedding of the story within what was almost entirely free-form exploration & adventure across a huge galaxy was masterful.

You could feel how close the creators were to the edge of what was possible with the save game system: Basically, the disk was a memory image. As you played the game would rewrite itself, so if you got stuck there was no “reset”. The documentation was emphatic: Only play with a copy of the original disk!!

show 2 replies
dzdttoday at 4:55 PM

Early in the 2000's one of the original authors of Sfarflight posted a massive dump of information online: design documents and source code. That is the "Technical Articles Saved from Oblivion" link in this repository. Sadly no one seems to have managed to save a full copy! This is one I kick myself about: I browsed this back when it was up but didnt think to download. These days I make a point to request Internet Archives to save things like this if I ever come across it.

show 2 replies
somenameformetoday at 4:24 PM

If anybody is interested in just playing this game, the Sega Genesis version of this game is arguably the definitive one. It was released later on and took everything in the PC version and amped it up a step. It's amazing and easy to find emulators + the ROM online. I replayed it fairly recently and it definitely held up very well.

It's open world, clue based, and with some amazing plot. Like the article mentions, the ending twist alone makes it worth suffering through your notepad of a million little hints thrown at you throughout the game. It's also the sort of game you can beat in [literally] 5 minutes if you know everything ahead of time. So I would strongly recommend avoiding walkthroughs/spoilers. The whole game is about piecing together the puzzle of what's happening and it's amazingly immersive.

Generally a game that was way ahead of its time.

ashdnazgtoday at 2:27 PM

> for this game you can throw the usual tools away...

> The reason is that Starflight was written in Forth

I recently reverse-engineered another game from the 80's, and had a similar issue because it was written with Turbo Pascal.

The different tools didn't like quirks such as data stored inline between the instructions or every library function having a different calling convention.

Turns out the simplest way to handle this was to write my own decompiler, since Turbo Pascal 3 didn't do any optimisations.

flanbiscuittoday at 4:03 PM

> There is no set path, allowing players to switch freely between mining, ship-to-ship combat, and alien diplomacy. The broader plot of the game emerges slowly

This reminds me of Star Control 2, aka The Ur-Quan Masters

> The game influenced the design of numerous other games for decades after its release.

And in SC2 wiki page I see this:

> Once Reiche and Ford conceived Star Control 2, they would draw large inspiration from Starflight.

https://en.wikipedia.org/wiki/Star_Control_II

Never played Starflight before but seems right up my alley as SC2 is one of my favorite games

Edit: Just finished reading the rest of the readme. Very cool! I honestly knew nothing about Forth (just that it was a programming language) and now I want to play around with it.

jamesmcneilltoday at 5:55 PM

Wow, so cool! I did not know Starflight was written in Forth.

Starflight was my first experience with game patching. When I got my copy it would not run on my PC. I believe it was because I had an EGA graphics adapter. I wrote a letter explaining my problem and mailed it to Electronic Arts. They mailed a letter back. It said there should be a program on my computer named debug.com, and gave instructions about how to load the Starflight executable in it, replace a couple of bytes, and save it out. I followed the patch instructions and it got the game working! After which I spent many happy hours with my friends exploring the Starflight universe.

stevekemptoday at 5:11 PM

You can read more about this gem of a game upon the digital antiquarian:

https://www.filfre.net/2014/10/starflight/

hinkleytoday at 5:09 PM

Starflight is the great grandfather of No Man’s Sky, and the first game I availed myself of using Internet databases to find obscure facts about the game. There was no website. It was some group of people curating a text document that was reposted to Usenet periodically with additions and corrections.

I don’t know when I started the game, but I finished it the summer after my freshman year, which is where I first got Internet access.

davideetoday at 3:58 PM

One of my all-time favourite games. A family member had Starflight on Genesis. I still pull it up in an emulator from time to time.

Random edit: It's also how I learned the word obsequious.

show 1 reply
randomtoasttoday at 4:24 PM

I think we will see more and more games and applications be fully reversed engineered in the coming month due to increase coding agent capabilities.

Spooky23today at 5:16 PM

Awesome! I got this game for Christmas in 3rd grade and was completely hooked! It really captured my imagination and immersed me into this seemingly limitless world. It took me a couple of years to complete, and I kept of journal of exploration experiences.

Thank you for posting this!

loloquwowndueotoday at 5:13 PM

> Back in the 80ths, an unknown company called Binary Systems published the game Starflight.

80s - 80ths is a fraction (1/80).

Also - the publisher was Electronic Arts, already well-established at that point. Binary Systems were the developers.

purplezooeytoday at 5:59 PM

Loved this game as a young kid. Great to see it. Somewhere I also found a web implementation of that black and white codewheel that came with it.

LogicFailsMetoday at 7:11 PM

This is the way. Best thing since the reincarnation of Wall Street Raider.

copxtoday at 2:22 PM

I find it curious that the game was written in Forth. Certainly a very unusual choice for a commercial game.

show 1 reply
newsofthedaytoday at 4:31 PM

This is my all time favorite DOS game. It felt open world before people used that phrase. Amazing game.

show 1 reply
krigetoday at 2:37 PM

...Forth? Wow. I wonder how much code change was necessary between the various systems. It's hard to imagine a Megadrive Forth compiler, but then again, the game was on several other M68k systems so maybe it wasn't as hard...

show 2 replies
myth_drannontoday at 3:46 PM

This game looked very familiar and after googling around it looks like it is recognized as the progenitor of Starcontrol game.