Top
Best
New

Posted by tosh 13 hours ago

Reversed engineered game Starflight (1986)(github.com)
96 points | 45 commentspage 2
randomtoast 8 hours ago|
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.
Spooky23 7 hours ago||
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!

loloquwowndueo 7 hours ago||
> 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.

purplezooey 6 hours ago||
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.
copx 10 hours ago||
I find it curious that the game was written in Forth. Certainly a very unusual choice for a commercial game.
lebuffon 3 hours ago||
Probably worth mentioning that writing a big project in Forth is more like creating an OOP framework.(if you are disciplined)

The end result of that is one doesn't write the program in "Forth" per se but in the domain specific language you create for the job. This is how Forth gets more productive than pure assembly language if the team documents things well and follows the prescribed system.

ajross 10 hours ago||
This was the era before optimizing compilers.[1] The overwhelming majority of commercial games were shipping hand-coded assembly still. Forth had the advantage of low overhead, no-worse-than-a-compiler speed, and better-than-assembly productivity. It was a small time window, but a good fit in the moment.

[1] Non-trivial optimizations were just starting to show up on big systems, but Microsoft C in 1985 was still a direct translator.

LogicFailsMe 5 hours ago||
This is the way. Best thing since the reincarnation of Wall Street Raider.
newsoftheday 8 hours ago||
This is my all time favorite DOS game. It felt open world before people used that phrase. Amazing game.
hinkley 7 hours ago|
I believe this is only the second game I ever finished. But also the first I used the internet to finish.
krige 10 hours ago||
...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...
jhbadger 9 hours ago||
It is really, really easy to write a Forth interpreter (You can write a simple one in an afternoon). It's often the first software written for an architecture. The structure of Forth means that the hardware-dependent parts are contained in a small number of words (sort of like functions in other languages but not exactly). Forth can be implemented on tiny microcontrollers; a Megadrive would be luxury.
lstodd 9 hours ago||
It's.. not a compiler (besides I had Forth on my C64). Maybe one can call it a translator to ad-hoc bytecode. I also had USCD Pascal on that C64 which translated to bytecode. This was more JVM-like. So nothing hard about it.
lebuffon 3 hours ago|||
Forth is a compiler but what it "compiles" is not standard. The implementor decides what they need. Forth can compile pointers to native code that are the VM's instructions, called direct threading. Forth can compile pointers to pointers to native code VM instructions, called indirect threading. Forth can compile byte code like OpenFirmware/OpenBoot.

And modern systems compile optimized native code (VFX Forth, SwiftForth) but still remain fully interactive at the console.

EarlKing 7 hours ago|||
Point of information: By and large FORTHs did not use bytecode. Execution tokens (XTs) were usually stored as a function of the default word size, which typically was 16 bits. There were some FORTHs that went out of their way to use token threading so they could store programs in byte codes, but those were pretty rare. Rarer still were programs that mixed byte code with word-sized code (although one such scheme is described in an issue of Forth Dimensions).
myth_drannon 9 hours ago|
This game looked very familiar and after googling around it looks like it is recognized as the progenitor of Starcontrol game.