Ozmoo Online

Ozmoo Online

Latest news

2022-08-10: Installed Ozmoo 11.2, which fixes a problem for MEGA65 where save + restore could corrupt the game state. [Show what has changed].

2022-08-09: Installed Ozmoo 11.1, which fixes a serious bug in the scrollback feature for MEGA65. [Show what has changed].

2022-08-09: Installed Ozmoo 11.0, which adds a scrollback buffer feature. Requires a MEGA65, a C64 with REU or a C128 with REU to work. [Show what has changed].

2022-06-22: Installed Ozmoo 10.7, which restores a lost pixel column on screen on MEGA65, and makes sure default save unit is same as the boot unit on MEGA65.

2022-06-21: Added link to Lurking Horror and Sherlock with sound for MEGA65. Accepting upload of Blorb files (which should contain a Z-code file). Installed Ozmoo 10.6, which fixes some issues with save, restore and restart on MEGA65.

2022-06-16: Installed Ozmoo 10.0, which allows for lightweight Inform 7 games to be played on MEGA65 (Use the MEGA65 XL Inform 7 stack option!) and games with any amount of dynamic memory (also MEGA65 only). Ozmoo 10 also supports sound on MEGA65, but not in Ozmoo Online. [Show what has changed].

Ozmoo is a Z-code interpreter for the Commodore 64, 128, Plus/4 and the MEGA65. It was written by Johan Berntsson and Fredrik Ramsberg, and released in 2018 under the GPL 2.0 license, meaning it can be included with games which are given away or sold. Ozmoo supports Z-code versions 3, 4, 5 and 8. You can use this page to build the interpreter and bundle it with a game. There is more information on the project homepage on GitHub.

Ozmoo was designed to be bundled with a game, much in the same way as the original Infocom interpreters. To do this, you run a Ruby script called make.rb which is included in the Ozmoo distribution. It assembles the interpreter, taking into account the Z-code version and the options specified when calling make.rb, adds as much as possible of the Z-code file, compresses the result and stores it as a file on a disk image. It then stores all the parts of the story that the game may need to load during gameplay in raw sectors on the disk.

Ozmoo can be downloaded and used to build games on Windows, Linux and Mac OS X. As an alternative, we have set up this page where you can build games online. It doesn't support all the possibilities which Ozmoo offers, but enough to get started. Options which are currently not supported on this page include user-supplied custom fonts, custom key-mappings, virtual memory preloading optimization and sound effects (sound is only supported for MEGA65, and not at all when building a game in Ozmoo Online).

Z-code files typically have names ending with .dat, .z3, .z4, .z5 or .z8. They can mainly be found in Infocom games (yes, you can grab a .dat file from say Zork 1 for MS-DOS and use it to build a version for C64 with Ozmoo!) and on if-archive. Z-code files produced by Infocom are usually quite fast on Ozmoo. Z-code files produced by Inform 5 or Inform 6 may at least be fast enough to be fun, but it depends on how much processing they do. Z-code files produced by Inform 7 or Dialog are pretty much guaranteed to be horribly slow, unless you're playing on a MEGA65, in which case Dialog and relatively lightweight Inform 7 titles may be enjoyable (Check the XL Stack option when building an Inform 7 game though, or it will likely crash at some point). There is also ZILF, a modern compiler for ZIL, the language Infocom used to write their games. Z-code files produced by ZILF should typically play just fine on Ozmoo.

Your files:



Upload Z-code file (.dat .z1 .z2 .z3 .z4 .z5 .z7 .z8), Blorb file (.blorb .blb .zblorb .zlb), Koala Paint multicolour image (.kla) or Multi-Botticelli image (.mbo)
 


Build game
 
Platform:  
Story file:   
Koala loader image:   
Multi-Botticelli loader image:   
Build mode:  
Language / Font:  
(*) Please learn more about Ozmoo and fonts first!
 
Command history:
Scrollback buffer:
MEGA65 XL Inform 7 stack:
Cursor:    
 
Colour scheme
Check out different colour combinations here.
 NormalDarkmode
Background:    
Text:    
Border:    
Statusline:     (z1-z3 only!)
Input text:     (z1-z4 only!)
Cursor: