Infocom adventures
Re: Infocom adventures
Well I would have loved to see it genuinely running on a B, but I guess I can. Thanks for all the work.
Re: Infocom adventures
If I remember the history correctly, the Infocom Zork I-III games are a chopped up, arguably cut down but also arguably enhanced, version of the original minicomputer Zork. But the versions Jeremy has been working on here are AIUI full versions *of the Infocom games*, and these have their own very significant historical place (and general affection/nostalgia - lots more people will have experienced these than the original minicomputer version, given Infocom's success). Not to mention the non-Zork Infocom games which are all "the full, best and only versions" of themselves, not having minicomputer-based ancestors.
Just as a general reference, it's been a while since I read it but The Digital Antiquarian wrote a long and in-depth series of posts on Zork (and indeed the other Infocom games, later on). Not that there's any shortage of write-ups about everything Infocom related, but I did enjoy these.
Nooooo! Please keep on keeping on...
Re: Infocom adventures
-
- Posts: 330
- Joined: Thu Aug 10, 2017 9:07 pm
- Contact:
Re: Infocom adventures
While I haven't worked on this further, I did have some thoughts on how someone else might pick up the baton and run with it, should anyone so desire.
The byte code interpreter is <6Kb. If this is run from SWRAW/SWROM, what about the other 10Kb therein? One idea I had was to extract the first 10Kb from the swappable part of the game and append this to the interpreter (with suitable padding to align things) to make a 16Kb ROM. Then patch the virtual memory paging code so that instead of loading pages from disk if they are in the first 10Kb, just set the page number to be the page in ROM. This would work because during game play, the SWROM would always be paged in. Obviously this would have a direct performance improvement as more of the game code would be in memory at any give time, reducing the need for swapping. This is something Infocom could have done in the day, selling the game as a ROM+disk package, although I suspect it would not have been economically viable.
Because of the way the interpreter works, swappable memory is loaded on demand, so even if the game would fit in memory, that part of the game isn't preloaded. Again, that's a possible exercise for the reader. If this was done, another step could be to preload this, then, along with a ROM you could go further and perhaps preload the whole game from tape. I think that would be more of an exercise than having any point.
In terms of game size, using the latest version of Inform (6.42) and a modern abbreviation generator, a converted version of Ultimate Nightmare 2092 comes in at 31Kb which should work well in the scenario described above.
Jeremy
The byte code interpreter is <6Kb. If this is run from SWRAW/SWROM, what about the other 10Kb therein? One idea I had was to extract the first 10Kb from the swappable part of the game and append this to the interpreter (with suitable padding to align things) to make a 16Kb ROM. Then patch the virtual memory paging code so that instead of loading pages from disk if they are in the first 10Kb, just set the page number to be the page in ROM. This would work because during game play, the SWROM would always be paged in. Obviously this would have a direct performance improvement as more of the game code would be in memory at any give time, reducing the need for swapping. This is something Infocom could have done in the day, selling the game as a ROM+disk package, although I suspect it would not have been economically viable.
Because of the way the interpreter works, swappable memory is loaded on demand, so even if the game would fit in memory, that part of the game isn't preloaded. Again, that's a possible exercise for the reader. If this was done, another step could be to preload this, then, along with a ROM you could go further and perhaps preload the whole game from tape. I think that would be more of an exercise than having any point.
In terms of game size, using the latest version of Inform (6.42) and a modern abbreviation generator, a converted version of Ultimate Nightmare 2092 comes in at 31Kb which should work well in the scenario described above.
Jeremy