![]() ![]() While I’m happy with this progress, it feels like I’m not seeing the forest for the trees. For instance, I’ve implemented functions to decode a Z-string into printable chars given an arbitrary memory address, and I was going to move onto user input encoding next. My current strategy has been to build out specific functions of the interpreter. By default the size of this stack is set at 16384, which should be sufficient for any game. This document was published in 1996 whereas the spec was updated in 2014, so I’m unsure if I’d be missing anything critical by following this guide. The Z-machine contains an evaluation stack which games use as a sort of scratch space when performing calculations. The Z-machine, And How To Emulate It – a PDF much heavier in prose but dives into the high level concepts of the Z-machine.I suppose it’s a good reference when you have specific questions, but as someone trying to understand the big picture it feels overwhelming. The official spec which I find quite terse and disjointed (but that’s probably due to my lack of experience in this area).So far I’ve been following two documents: I have a conceptual understanding of how CPUs work and interact with memory and I/O, but no hands-on experience implementing a virtual one. Save files are stored in the standard Quetzalsave format. Nitfol makes use of the GlkAPI, and supports versions 1 through 8 of the Z-machine, including the version 6 graphical Z-machine. I’m a programmer by trade but haven’t written any sort of interpreter or emulator before. Popular interpreters include Nitfol and Frotz. ![]() I’ve been wanting to write a Z-machine interpreter and wanted to get the community’s advice on the best process to follow. ![]()
0 Comments
Leave a Reply. |