Reversed engineered game Starflight (1986)
1–10 of 54 posts
Re: Reversed engineered game Starflight (1986)
#2The 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!!
Re: Reversed engineered game Starflight (1986)
#3Re: Reversed engineered game Starflight (1986)
#4Re: Reversed engineered game Starflight (1986)
#5> 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.
Re: Reversed engineered game Starflight (1986)
#6Re: Reversed engineered game Starflight (1986)
#7I find it curious that the game was written in Forth. Certainly a very unusual choice for a commercial game.
[1] Non-trivial optimizations were just starting to show up on big systems, but Microsoft C in 1985 was still a direct translator.
Re: Reversed engineered game Starflight (1986)
#8...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...
Re: Reversed engineered game Starflight (1986)
#9Hard 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 s…
This was crazy! World gen is hard. Proc world gen is NP hard. Story driven proc world gen with persistence in 1986 was Kaku level brilliance.
Re: Reversed engineered game Starflight (1986)
#10There 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.