I’m in the middle of developing a new z machine interpreter in Rust. I’m mostly doing it for myself, because I’ve always loved Infocom games ever since I played one on my Atari 800xl ![]()
I just thought I’d put feelers out there to see if anyone else would be interested in this project, or will there be crickets when I’m finished…
I have the core VM finished, and most of the screen output done. I have three layers in the design: the rust VM core, a rust front end (which draws the game on a frame buffer), and a platform layer that displays the frame buffer, plays sounds received from the rust front end, loads fonts, saves games, provides keys and mouse clicks to the rust front end, etc.
So the platform layer will be super thin, and easy to port to anything. The rust layers do no system I/O at all.
I’m targeting all versions, including V6.
Oh, and I implemented a saved draw list, so I can do things like pinch to zoom, and keep crisp text when zooming/resizing.
For rendering, I’m using vello and tiny-skia, along with cosmic-text.
I’m also toying with the idea of incorporating a simple gcc style debugger in the rust frontend (the platform layer doesn’t have to know anything about it), so the frame buffer would just be split between the game and the debugger.
If anyone is interested, I’ll plan on releasing the source under the MIT license once it’s in a good state.
Once I have the GTK platform up and running, I’ll do an Android one, with Google’s handwriting recognition, I think.
What do you all think? I know there seems to be more interest in Glulx and stuff, but I’ve always had a soft spot for the z machine. I’m calling it RustyGrue by the way.