BBC Micro Z-Machine Interpreter v3
From Retrosoftware
(First draft of v3 version) |
|||
| Line 4: | Line 4: | ||
===License=== | ===License=== | ||
| - | + | This software is copyrighted [http://en.wikipedia.org/wiki/Freeware freeware] and can be used for non-commercial purposes. | |
| Line 20: | Line 20: | ||
[http://www.retrosoftware.co.uk/forum/viewforum.php?f=30 Discuss BBC Micro Z-Machine Interpreter] | [http://www.retrosoftware.co.uk/forum/viewforum.php?f=30 Discuss BBC Micro Z-Machine Interpreter] | ||
| + | |||
| + | ''Use Inform 6.15 and the BBC Micro Z-Machine Interpreter in the complete [[BBC_Micro_Z-Machine_Interpreter_informz3|Inform / Z-Machine v1.1 (Infocom v3) Development Environment]] to develop games for the BBC Micro/GameBoy/C64/Spectrum +3 etc.'' | ||
Revision as of 21:13, 26 July 2008
Contents |
BBC Micro Z-Machine v1.1 (Infocom v3) Interpreter by Jon Welch
License
This software is copyrighted freeware and can be used for non-commercial purposes.
Introduction
The initial version will be written in BBC BASIC. This will require an ARM co-processor (emulable in BeebEm) or a machine running Risc OS to run, and will be very slow. UPDATE: The BASIC version is pretty much done with and is available to download below.
This version will feed into the development of a native 6502 assembler version, which is aimed to fit into a standard BBC Micro Model B with standard Acorn DFS disc drive. Features below will be implemented based purely on how much memory is available, how fast the assembled version runs, how much slow-down the disk interaction causes etc.
The assembled code will be supplied as a ROM image. Cassette support is not possible due to the size of Z-Machine games and the amount memory available on an unexpanded BBC Micro Model B. Games will instead need to be stored on a standard Acorn DFS disc.
One of the biggest limitations of fitting an interpreter for the larger v4 and v5 games into a machine family as small as the BBC Microcomputer range is that there isn't a lot of memory available for Dynamic Storage, which is the section of memory which is constantly written to to keep track of the status of your game. If this area was left on disk, the game would be extremely slow to play. Consequently, this standard Model B version will only run Infocom v3 games will be restricted to MODE 7, due to memory limitations of the various MODEs.
TESTERS: We require testers to playthrough games they are intimately familiar with (or are prepared to follow a walk-through). Please volunteer in the forum, if you're willing to try out any of the games listed in the testing matrix below:
Discuss BBC Micro Z-Machine Interpreter
Use Inform 6.15 and the BBC Micro Z-Machine Interpreter in the complete Inform / Z-Machine v1.1 (Infocom v3) Development Environment to develop games for the BBC Micro/GameBoy/C64/Spectrum +3 etc.
Potential Feature Support
| Feature | Used in Z-Machine Version(s) | Inform 'Available if' test | Likely to be included in BBC interpreter? |
|---|---|---|---|
| Full conformance to Z-Machine standard v1.0 | - | - | ? |
| Full conformance to Z-Machine Standard v1.1 | - | - | ? |
| Support for Z-Machine v3 | 3 | - | YES |
| Quetzal portable save-games support | - | - | ? |
| Limited Blorb Support (ability to extract Z-code file from blorb file and play it) | - | - | ? |
Downloads
BBC Micro Z-Machine Interpreter - BASIC program on disk image
(BBC BASIC, requires ARM co-processor to run)
Latest "unofficial" release.
http://www.g7jjf.com/progs/zmach.zip
BBC Micro Z-Machine Interpreter - prototype combined ROM image on disk image
(6502 assembled machine code, all V3 opcodes implemented)
Latest "unofficial" release.
http://www.g7jjf.com/progs/zcode.zip
Sample Screenshots
Compatibility Testing Matrix
| Game | Filename | Z-code Version | File Length | Tested First Few Moves | Tested to Completion On Date | Tested with BBC Interpreter Version | Tested By | Dynamic Storage Size |
|---|---|---|---|---|---|---|---|---|
| Ballyhoo | ballyhoo.z3 | v3 | 153,600 | - | - | - | - | 11,258 |
| Cutthroats | cutthroa.z3 | v3 | 112,640 | - | - | - | - | 10,826 |
| Deadline | deadline.z3 | v3 | 122,880 | - | - | - | - | 12,155 |
| Enchanter | enchante.z3 | v3 | 122,880 | - | - | - | - | 12,653 |
| Hitchhiker's Guide to the Galaxy (59/851108) | hitchhik.z3 | v3 | 113,664 | - | - | - | - | 9,738 |
| Hollywood Hijinx | hollywoo.z3 | v3 | 109,651 | - | - | - | - | 12,142 |
| Infidel | infidel.z3 | v3 | 122,880 | - | - | - | - | 11,773 |
| Leather Goddesses of Phobos (59/860730) | leather.z3 | v3 | 129,023 | - | - | - | - | 11,436 |
| Moonmist | moonmist.z3 | v3 | 153,600 | - | - | - | - | 13,860 |
| Planetfall (29/840118) | planetfa.z3 | v3 | 122,880 | - | - | - | - | 14,288 |
| Plundered Hearts | plundere.z3 | v3 | 128,963 | - | - | - | - | 9,715 |
| Seastalker | seastalk.z3 | v3 | 117,763 | - | - | - | - | 12,727 |
| Sorcerer | sorcerer.z3 | v3 | 122,880 | - | - | - | - | 11,508 |
| Spellbreaker | spellbre.z3 | v3 | 153,600 | - | - | - | - | 11,394 |
| Suspect | suspect.z3 | v3 | 122,880 | - | - | - | - | 12,634 |
| Starcross | starcros.z3 | v3 | 92,160 | - | - | - | - | 10,600 |
| Stationfall | stationf.z3 | v3 | 153,600 | - | - | - | - | 11,941 |
| Suspended | suspend.z3 | v3 | 122,880 | - | - | - | - | 9,862 |
| The Lurking Horror (includes sound) | lurking.z3 | v3 | 153,600 | - | - | - | - | 11,410 |
| The Witness | witness.z3 | v3 | 122,880 | - | - | - | - | 11,260 |
| Wishbringer (68/850501) | wishbrin.z3 | v3 | 128,905 | - | - | - | - | 11,774 |
| ZORK I (88/840726) | zork1.z3 | v3 | 92,160 | - | - | - | - | 11,859 |
| ZORK II | zork2.z3 | v3 | 92,160 | - | - | - | - | 11,189 |
| ZORK III | zork3.z3 | v3 | 92,160 | - | - | - | - | 11,656 |
| 1984 ZORK I Demo (IF tutorial, ZORK I) | zork_1_demo.z3 | v3 | 62,326 | - | - | - | - | 6,588 |
| 1984/5 Infocom Sampler 1 R55 (IF tutorial,ZORK I,Planetfall,Infidel,The Witness) | sampler1_R55.z3 | v3 | 126,902 | - | - | - | - | 13,557 |
| 1987 Infocom Sampler 2 (IF tutorial,ZORK I,Leather Goddesses of Phobos,Trinity) | sampler2.z3 | v3 | 125,315 | - | - | - | - | 11,908 |
| 1990 MINI-ZORK I | minizork.z3 | v3 | 52,216 | - | - | - | - | 8,583 |
Change Log
Not released yet