Repository navigation
Releases: johanberntsson/ozmoo
Release list
Release 16.1
New/changed functionality:
- Changed random opcode to work like the standard suggests: If a negative seed in the range [-1,-999] is given, random n gives a sequence of numbers 1 .. (-seed), modulus n.
- There is now an Ozmoo port, separately maintained, for Oric-1 / Atmos. See readme file.
Optimizations:
- Made random draw only one random byte value instead of two, when range < 256. Not in benchmark mode though, or existing walkthroughs would stop working.
Bugfixes:
- Fixed: Special characters Sentence space and Tab in v6 games weren't printed.
Release 16
New/changed functionality:
- Support for Z-code version 6 games with graphics on MEGA65 and Commander X16
- Support for Z-code version 6 games without graphics on C64, C128 and Plus/4.
- Fixed incorrect text in usage screen in make.rb, saying values 0 and 1 mean background and foreground for -bordecol etc, when it's actually values bg and fg now.
- Disabled run/stop key in image loader program, on C64.
- Fixed garbage showing on top screen row when enabling darkmode at first MORE prompt in z1-z4 game with initial text longer than a screenful, on Plus/4 build with virtual memory.
Z-machine version 6 support means it's now possible to play Zork Zero, Arthur and Shogun on C64, C128 and Plus/4, albeit without graphics. Text-only Journey really needs an 80-column screen, and will play nicely on C128.
On the MEGA65 and Commander X16, all of these games are playable with graphics, and mouse support.
Of course, this presents an opportunity to write new text adventures with graphics, and possibly sound, for MEGA65 and Commander X16. Such games will also be playable on modern computers, using Frotz and other Z-code interpreters.
Release 15.5
New/changed functionality:
- Changed statusline (z1-z3) to show "99:999" or "12:34 PM" for 32 column screen, nothing for 20-22 column screen, "Sc: 99 Mv:999" for 40 column screen.
Optimizations:
- Slight optimizations in code for virtual memory optimization.
- Optimized statusline (z1-z3) so it doesn't print spaces where score/moves will be printed anyway.
- Turned subroutines into macros for performance in text.asm: convert_zchar_to_char, get_next_zchar, init_get_zchar, was_last_zchar.
- Optimized convert_zchar_to_char and translate_zscii_to_petscii.
- Reversed numbering of chars in a zchar triplet when decoding strings, so first char is # 2 and last char is # 0, as this makes for shorter, faster code.
Bugfixes:
- Fixed bug: On C128, if there was a page in the vmem cache, which belongs to the vmem block we decide to throw out, and the block was below $d000 in bank 1, the page index wasn't updated to reflect that the page became invalid, which could lead to the program crashing.
- 40 column screen was showing streaks of garbage during initial loading of game data, when launching game in 80 column mode on C128, if not caching to REU.
Release 15
New/changed features:
- Added option for continuous virtual memory optimization on C64 and C128 - switch little used vmem blocks in unbanked RAM for much used vmem blocks in banked RAM, for performance. Enabled by default. Can be disabled with -vo:0. Cost 430 bytes on C64, 640 bytes on C128. Note: this has no effect when an REU is used for caching game data.
- Updated tech report (and to a lesser extent, the manual).
- Added tests/memcheck_c64.rb and memcheck_c128.rb to check a memory dump for virtual memory corruption.
Optimizations:
- Use REU for fast memory copying even if REU caching not active, if REU is 256+ KB, on C64 and on C128 in 80 column mode.
- Use a macro instead of a subroutine to read data at PC on C128 (like we already do on C64), for performance.
Bugfixes:
- Fixed very old bug: If REU was too small to cache game, Undo was blocked from using REU.
- Changed some old error messages in make.rb, referring to command line options which have been renamed.
Release 14.64
Optimizations:
- Reuse object start address in object table, if same object is used twice in a row.
- Minor optimization affecting all opcodes that read or write property values.
Bugfixes:
- Fixed: If the last line on a screenful of text ended with a character in the rightmost column and then a newline character, the MORE prompt was printed on the next line, thus making the top line scroll off screen when it shouldn't.
Release 14.60
New/changed features:
- A loader image can now be added for C128 builds as well. The image should be in Koala Multicolor format (same as for C64) and is shown on the 40-column display until the player presses a key or 17 seconds pass - then the game loads.
- Solutions for Calypso (release 8, serial 250827), PunyInform Advent (release 1-7, serial 241124, 250704, 250809, 251011, 251113, 251126, 251205), and Inform 6 Advent (release 9, serial 060321) added to benchmarks.json, allowing Ozmoo to auto-play the games for benchmarking purposes.
- Renamed example game advent.z3 to advent_zil.z3
- Added example game advent_punyinform.z5
Bugfixes:
- Added missing file to repo: asm/walkthrough.tpl
- Queueing of @sound_effect commands fired after the same keyboard input, now works properly, as required by Lurking Horror (Issue #78). Each sound is played at least one full repetition.
- Fixed: Asking to play a new sound while one was playing, caused the repeat and routine arguments of the new sound to be used for the currently playing sound. (Issue #77)
- @sound_effect with effect = 4 (finish with) was ignored. It is now correctly treated as effect = 3 (stop).
- @sound_effect with number = 0 and effect = 3 (stop) or 4 (finish with) produced a beep instead of stopping the current sound. Fixed. (Issue #76)
- Fixed old method name in tests/test_builds.rb
- Fixed typos in comments in source code (Issue #75)
Release 14.56
New/changed features:
- Added support for showing a loader image on MEGA65 (Type: IFF)
- Added information on max call depth to VIEW_STACK_RECORDS mode.
Bugfixes:
- Fixed bug in calculation of save slot count for non-VM builds on C64, Plus/4 and MEGA65.
- Init dynmem_pointer on MEGA65 before splash screen, as it's used if player changes to darkmode while on splash screen, and this would cause the interpreter to break on a MEGA65 with a newer ROM version.
Release 14.51
New/changed features:
- Added option to write an Ozmoo signature into the game header - target platform (1-5), minor version#, "OZ", at $38-$3b. Can be controlled with -sig[:0|1|noninfocom]. Default is noninfocom, meaning it's written if the serial number starts with 0-7 or 9.
- Added option -username:"value" to write a username into the game header. E.g. to make the debug verb "flush 33" work in Hollywood Hijinx, you can do -username:TOMAS
Bugfixes:
- Fixed corrupt story file in RAM after restart command or a reset, on X16.
Release 14.49
Bugfixes:
- If a game was built with a scrollback buffer in RAM, less than 12 KB in size, on C64 or C128, and the RAM buffer was used when playing (because the player lacked an REU or had insufficient REU space) , the game would sometimes crash soon after exiting scrollback viewing mode.
Release 14.48
Bug fixes:
- Fixed bug which stopped sound games from building.
- Fixed test cases in tests folder which hadn't been updated to new way of specifying colours.