BBC Micro Z-Machine Interpreter v5

From Retrosoftware

(Difference between revisions)
Jump to: navigation, search
(First draft)
Line 4: Line 4:
===License===
===License===
-
Software license TBC
+
This software is copyrighted [http://en.wikipedia.org/wiki/Freeware freeware] and can be used for commercial or non-commercial purposes.
===Introduction===
===Introduction===
 +
 +
'''PROJECT STATUS: ''On Hold.'''''
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.
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.

Revision as of 21:06, 26 July 2008

Contents

BBC Micro Z-Machine v1.1 (Infocom v3-5) Interpreter by Jon Welch

License

This software is copyrighted freeware and can be used for commercial or non-commercial purposes.


Introduction

PROJECT STATUS: On Hold.

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 at a BBC Micro Model B+ or Master 128 with a 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 (v5 games can potentially reach 256 KB). Games will instead need to be stored on a standard Acorn DFS disc. Exceptionally large games (> 200K) will need to be split across a double-sided 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, the ROM will run in MODE 0 and use all 64K of sideways RAM for dynamic storage plus all the main memory for cache. This should allow it to play v4 and v5 games, hopefully even those that require the largest amount of Dynamic Storage, such as ZDungeon, Curses, Beyond Zork, A Mind Forever Voyaging and Trinity.

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 7 to develop games for the BBC Micro Model B+ / Master 128 and many other modern platforms.


Potential Feature Support

Features listed below are described in more detail in the
Inform Designer's Manual Chapter VII and in the Z-Machine standards v1.0 and v1.1
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
Support for Z-Machine v4 4 - YES
Support for Z-Machine v5 5 - YES
Support for Z-Machine v6 and above 6,8 - NO
auxiliary files 5,6,8 (true)  ?
coloured text 5,6,8 ((0->1) & 1 ~= 0) Partial (2 or 4 colour selectable modes)
input streams 5,6,8 (true)  ?
menus 6 (($10-->0) & 256 ~= 0) NO
mouse 5,6 (($10-->0) & 32 ~= 0) NO
output streams 5,6,8 (true)  ?
pictures 6 (($10-->0) & 8 ~= 0) NO
sounds 5,6,8 (($10-->0) & 128 ~= 0) NO
throw/catch stack frames 5,6,8 (true)  ?
timed keyboard interrupts 5,6,8 ((0->1) & 128 ~= 0)  ?
Bold / Italic Text 5,6,8 -  ?
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 and the majority of the V5 opcodes)
Latest "unofficial" release.
http://www.g7jjf.com/progs/zcode.zip


Sample Screenshots

 
BBC Micro Master 128 version of Z-Machine Interpreter running a Z-code port of the original 350 point Adventure / Colossal Cave by Crowther & Woods with a traditional green font colourPosted: Sat May 31, 2008 16:17
BBC Micro Master 128 version of Z-Machine Interpreter running a Z-code port of the original 350 point Adventure
/ Colossal Cave by Crowther & Woods with a traditional green font colour

Posted: Sat May 31, 2008 16:17
BBC Micro Master 128 version of Z-Machine Interpreter running IntroComp 2005 entry The Hobbit in the colour style of BBC micro adventure The Lord of the Rings: Game OnePosted: Sat May 31, 2008 16:33
BBC Micro Master 128 version of Z-Machine Interpreter running IntroComp 2005 entry The Hobbit in the colour style of BBC micro adventure The Lord of the Rings: Game One
Posted: Sat May 31, 2008 16:33



Compatibility Testing Matrix



Commercial Infocom Games
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
MILLIWAYS: The Restaurant at the End of the Universe Prototype (v. 15.880512) milliways_release15.z4 v4 92,928 - - - - 6,333
A Mind Forever Voyaging amfv.z4 v4 262,018 - - - - 31,691
Bureaucracy bureaucr.z4 v4 243,341 - - - - 18,207
Nord and Bert nordandb.z4 v4 170,285 - - - - 14,852
Trinity trinity.z4 v4 262,065 - - - - 37,726
Beyond Zork beyondzo.z5 v5 276,480 - - - - 25,720
Borderzone borderzo.z5 v5 178,373 - - - - 21,562
Sherlock sherlock.z5 v5 188,445 - - - - 16,441
Leather Goddesses of Phobos Solid Gold (4/880405) leather.z5 v5 159,928 - - - - 15,145
Hitchhiker's Guide to the Galaxy Solid Gold (31/871119) hitchhik.z5 v5 184,320 - - - - 15,156
Planetfall Solid Gold (10/880531) planetfa.z5 v5 136,560 - - - - 17,435
Wishbringer Solid Gold (23/880706) wishbrin.z5 v5 164,712 - - - - 15,424
ZORK I Solid Gold (52/871125) zork1.z5 v5 105,264 - - - - 15,166



Games available from the IF Archive
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
Colossal Cave / Adventure
(350 points)
Advent.z5 v5 138,240 - - - - 17,864
Conan Kill Everything ConanKillEverything.z5 v5 91,136 - - - - 5,645
Crobe Crobe.z5 v5 89,088 - - - - 16,311
Countdown to Doom CtDoom.z5 v5 132,608 - - - - 16,419
Curses curses.z5 v5 259,072 - - - - 26,163
CZECH czech.z5 v5 13,312 - - - - 2,001
Fyleet Fyleet.z5 v5 137,728 - - - - 23,673
Interactive Fiction: Quake quake.z5 v5 133,120 - - - - 9,418
Last Days of Doom LDoDoom.z5 v5 200,192 - - - - 9,418
Return to Doom RtDoom.z5 v5 179,200 - - - - 18,150
Scott Adams' Marvel Adventure: Hulk HULK.z5 v5 25,600 - - - - 6,564
Scott Adams' Marvel Adventure: Spider-man SPIDERMN.z5 v5 27,136 - - - - 8,016
Strict Z Test strictz.z5 v5 4,096 - - - - 1,509
TerpEtude etude.z5 and gntests.z5 v5 16,896 and 7,168 - - - - 1,514 and 1,216
ZDungeon zdungeon.z5 v5 188,928 - - - - 32,019
Zork - The Cavern of Doom cavern.z5 v5 133,120 - - - - 7,967
Zork: The Undiscovered Underground ZTUU.z5 v5 102,912 - - - - 10,445


Change Log

Not released yet