Ozmoo Versions Save

A Z-machine interpreter for the Commodore 64 and similar computers

v14_29

2 weeks ago

Optimizations:

  • Removed num_default_properties, a byte value which was set but never read.

Bugfixes:

  • Cursor could be updated even when not on screen, potentially crashing the interpreter.
  • make.rb didn't complain if story file had an unsupported Z-code version (or wasn't a Z-code file at all).
  • make.rb would not report an error for X16 builds with a stack that's too big (~9+ KB), typically crashing the game at some point.
  • Restart didn't work on X16 if the filename of the Z-code file used had any capital letters.
  • Call to @set_cursor with line = 0 are illegal (Z-machine screen starts at line 1), but happen. Ozmoo was placing the cursor on the bottom line of the screen, but now the cursor is placed on the top line (line 1) instead.
  • X16 builds now perform NEW before loading game from disk again when restarting, to make debugging easier if file isn't found.

v14_24

1 month ago

New/changed features:

  • Appended ".prg" to boot file on X16, so it's easily recognizable as an executable file
  • Allow more characters in custom file names, now it's a-z, 0-9 and ".-()[]'"
  • Added option -x to automatically change verb "x" to "examine" in player input. Enabled by default for Infocom games that don't recognize x as a synonym for examine.

Optimizations:

  • Truncated long custom file names to 16 characters for all but X16, so we don't store more characters than necessary

Bugfixes:

  • A z1-z3 game would hang when entering a room where the room object has a newline character in the name
  • Beep on MEGA65 played 40 times too long (~3 s)
  • The pause when doing save or restore on MEGA65 was 40s instead of 1s.

v14_17

2 months ago

Bugfixes:

  • Fixed screen colour initialization issues
  • Stopped using ti_variable (RTC value in RAM) to fix frozen more prompt on X16
  • MORE prompt blinking frequency adjusted on MEGA65
  • MORE prompt now blinks in both 40 and 80 col mode on C128
  • Fixed cursor blinking on X16

v14_14

2 months ago

New/changed features:

  • User can create a .ozmoorc file to set paths to executables, e.g. X16 = C:\emu\x16emu.exe. .ozmoorc can be located in $OZMOO_HOME, cwd, or $HOME
  • Changed savefile prefix (all platforms), Zcode filename and font filename (X16 only), to make sure boot file is listed first on X16
  • Made a 255 byte command history buffer the default on X16, just like on MEGA65
  • Border colour is now set on X16 (for screen modes which have a border)

Optimizations:

  • Made scrolling 3.5 times faster on X16
  • Made printing a character faster on X16
  • Unified some MEGA65 + X16 code for loading story file into memory, for ease of maintenance

Bugfixes:

  • Listing save files didn't work correctly if scrollback buffer was enabled
  • Restart loaded entire story file on MEGA65, if a custom font was used
  • A conditional jump in the code could break because it had to jump too far, if you had smooth scroll, scrollback buffer and undo enabled.
  • A scrollback buffer in regular RAM made Beyond Zork builds break
  • Using a custom font on X16 made the font stay after QUIT

v14_7

3 months ago

New/changed features:

  • Made Quit work reliably on X16, and without resetting the computer.
  • Made restart fast on X16 (only reload dynamic part of gamefile after restart)
  • Enabled scroll speed control and tear-free scrolling on X16
  • Made Z-machine beeps work on X16
  • Added support for custom fonts on X16

Optimizations:

  • Moved print_buffer, print_buffer2, memory_buffer and directory_buffer to leave more continuous space for future use.
  • Made printing of a buffered line much faster on X16
  • Made clearing a line, a window or the entire screen much faster on X16, and a bit faster on MEGA65

Bugfixes:

  • Routine to cause delay on X16 was incorrect, could crash game when saving game.
  • Removed C64 keyboard handling references from X16 code.

v14

3 months ago

New/changed features:

  • Added target platform Commander X16 (use switch -t:x16)
  • Added build mode -ZIP, for X16 targets.
  • Added option -df:n (delete files), to decide what to do with files and folder created for the zip archive for build mode -ZIP. 0: Don't delete (default), 1: delete, f: force - always delete, even if zip operation failed.
  • Made game saves generic between MEGA65 and X16, and between builds using different versions and features of Ozmoo on these two platforms. Players should now be able to copy old save games to a build using a new version of Ozmoo, or with other features enabled, or from MEGA65 to X16 or the other way around. (But save games made with Ozmoo before Release 14 can NOT be used with release 14+ builds)
  • Added build mode -71D, for dual 1571 drives.
  • Varicella is now automatically patched to (a) fix a bug in colour handling in the game, and (b) adapt the game to Ozmoo's limitations in colour handling.

Optimizations:

  • The code for listing save files is now faster and shorter.

Bugfixes:

  • "erase_window 0" would crash the interpreter if window 0 had height 0.
  • Default screen colours weren't written into the header after a restart on MEGA65.
  • Build mode -P was broken, because dynmem size wasn't calculated. May have affected saves.
  • Made QUIT work correctly on MEGA65 games with and without a custom font.
  • Screen wasn't cleared after save/restore if REU caching was used.
  • Fixed bugs that made Ozmoo crash when printing to lower window when it's 0 lines high, or when scrolling the window when it's 1 line high.
  • Fixed debug messages and error messages that were stored with the wrong encoding. Some interpreter messages that used to be in upper case will now be in lower case.

v13_6

7 months ago

New features:

  • A script to test a number of builds (tests/test_builds.rb), to check that bugfixes and new features don't break Ozmoo when using certain combinations of command line parameters. This is mainly useful for the developers of Ozmoo.

Bugfixes:

  • Build using -P didn't work, probably since v13.0. Fixed.
  • make.rb didn't protest when asked to build with Undo in mode P, though it's not possible. Now it halts with an error.
  • make.rb would sometimes reserve too small a buffer for splash screen in mode P.
  • make.rb couldn't build a mode P game using the full memory if the story file had an odd number of pages, e.g. a game of 51.25 KB couldn't be built even if a 51 KB game left an empty memory page at the end.
  • make.rb now prints a warning if undo support was requested but game is z5-z8 and doesn't support undo.

v13_1

11 months ago

Bugfixes:

  • Fixed bug in text printing that could crash game, when printing a word longer than a line, or when text buffering was started in the middle of a screen line.

v13

11 months ago

New/changed features:

  • Undo support added: Player can undo a turn in z5+ games (using UNDO command) and in z1-z4 games (using Ctrl-U key) on C64/C128 with REU, C128 without REU (slower, and with limited dynmem size), and on MEGA65.

Bugfixes:

  • Picture loader gave build error.
  • Fix buggy printing when erase_window was called while buffered printing was active.
  • Don't recognize F5 key if there's no REU or RAM available for scrollback.
  • Ozmoo on C128 would boot into 80 column mode when game restarted in 40 column mode.

Refactoring:

  • Moved cursor code from text.asm to screenkernal.asm.
  • Moved screen model specific code from ozmoo.asm.

v_12_2a

1 year ago

New/changed features:

  • Allow C64 games with just one vmem block in unbanked RAM (requirement was two, up to now).

Bugfixes:

  • Game could hang if player pressed backspace while entering a save comment on MEGA65.