daniel5151
Joined 10 years ago
Joined 10 years ago
Happy to answer any questions :)
https://stackoverflow.com/questions/3730019/why-not-use-doub...
Having games target the abstract z-machine platform made it incredibly easy for Infocom to port games across platforms, as instead of re-writing every game from scratch, they could simply write a z-machine interpreter for said platform, and immediately gain access to their entire adventure game catalog!
A happy side-effect of all this is that it's super easy to run these classic adventure games on modern platforms, as instead of emulating the UI/UX of a 80s microcomputer, it's possible to write a z-machine interpreter that takes full advantage of modern GUIs.
One of my personal favorite modern z-machine interpreters is `encrusted` [1], which is written in Rust that runs on the Web thanks to WebAssembly. As a fun side-project, I ended up forking the project and making `embcrusted` [2], a z-machine interpreter that can run on embedded platforms without a full C-library. In a weekend or two of hacking, I was able to port a z-machine interpreter to my mechanical keyboard, in order to get the "authentic" experience of playing a text-adventure game through a teletype :)
Unlike retro consoles/handhelds, there doesn't seem to be much nostalgia in the public consciousness for OG iPods - which is fair, given that most people just see them as antiquated MP3 players. That said, some of the later models did have some pretty neat little games which have yet to be preserved, and can only be played by owning the original hardware.
It was a lot of fun hacking away at the project, and I'd made a surprising amount of progress given that I'd opted to roll my own full-system emulator (in Rust!) as opposed to using something like QEMU.
Who knows, maybe when I have more free time I'll revisit the project and keep pushing it closer to completion. Not sure when though - emulation is a real time hog when you're also juggling a full time job!
It might've been because my early testing was done via an old Arduino Uno board, and I must've figured that I might as well port the sketch over to the ESP32 once I had it working.
(I'm general though, I will say that LLMs can totally write bespoke one-off firmwares like this, and I don't feel too bad about it, given that it's running entirely within my LAN, and will never actually get "productized")