| debug | ||
| platform | ||
| shims | ||
| util | ||
| vendor | ||
| vm | ||
| .gitignore | ||
| .luacheckrc | ||
| bitops.lua | ||
| conf.lua | ||
| fs.lua | ||
| gamevm.lua | ||
| main.lua | ||
| notes.txt | ||
| README.md | ||
| run.lua | ||
starflightvm
tl;dr, I got nerdsniped by JP LeBreton: https://mastodon.social/@jplebreton/115039937564048561
Starflight is an early open-world space exploration RPG that was originally developed for MS-DOS in Forth. The cumbersome savegame system JP mentions involves the game literally overwriting its own executable files as it runs, such that if you fail to properly save your game, it will corrupt itself. I've never actually played it, but I know a few folks who think it's important, and over the past few years I have developed some experience building my own Forth systems for DOS games.
So I thought to myself: how hard could it be to reverse-engineer someone else's Forth system? Sounds like a fun little side project!
I decided to build it entirely in Lua and Love2D, the idea being that all aspects of the game could trivially be exposed to user-written plugins for inspection or modification. The ideal goal is to build a system that can be used both as a tool to investigate the inner workings of the game, and to provide a better user experience for those who just want to play it.
Of course right now it crashes after the title screens, but, you know, that's the goal.