Releases: johanberntsson/ozmoo
Releases · johanberntsson/ozmoo
Release 14
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.
Release 13.6
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.
Release 13.1
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.
Release 13
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.
Release 12.2
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.
Release 12.1
Release 12.1
Bugfixes:
- If the player started a z1 or z2 game built with scrollback support, and chose to use the REU for caching story data, scrollback data would overwrite story data in the REU, leading to crashes and/or other weird behaviour.
Release 12
New/changed features:
- Added soft scrolling as an option for C64 and for C128 in 40 col mode
- Made scrolling flicker free and tear free except when using fastest scroll speed, on all but 80 col C128.
- Let player choose slower scrolling, key repeat mode and change device# for saves.
- Games start in slow scroll mode if available, otherwise with scroll slowness = 1 (fastest mode that is flicker-free and tear-free).
- Allow scrollback on C64, C128 and Plus/4 to use RAM (only if REU is unavailble on C64/C128). Enable with -sb:6|8|10|12 for different buffer sizes.
- Allow build mode 71 (for 1571 disk) on C64 and Plus/4.
- Empty keyboard buffer when game starts, so player doesn't accidentally miss an initial quote screen or something.
- Allow a non-standard boot file name on MEGA65 too (makes the game not auto-boot, which may be what you want.)
Optimizations:
- REU Boost Mode for C64 + C128 - When REU is used for caching, use a vmem model better suited to REU. This is enabled by default. Build with -rb:0 to disable.
- Faster page copying on C64 and C128 with REU, by copying to the REU and then from it.
- Faster screen clearing on C128 in 80 col mode.
- Faster writing of characters to screen on C128 in 80 col mode.
- Faster writing of buffered text to screen (faster on all platforms, a lot faster on C128 in 80 col mode).
- Optimized scrolling (don't scroll colour memory for games that don't use colour, + general code optimization).
Bugfixes:
- Fixed bug that could cause z5+ games that use colour to print invisible text.
- Made scrollback buffer turn down CPU speed on C128 while performing REU operations.
- Fixed that an extra empty line was put in scrollback buffer when a newline character came just after a line ending in the last column.
- Ozmoo didn't change the default colours when switching between lightmode and darkmode, so attempts to use colour number 1 (default colour) would always use the default colour for lightmode.
- Backslash wasn't recognized when giving a path to sound files.
- Made interpreter, in addition to make.rb, recognize scenarios on C64 when dynamic memory is so large that REU Boost mode can't be engaged.
- Fixed bad value for blue colour on Plus/4.
Release 11.2
Bugfixes:
- Workaround for ROM bug on MEGA65 which caused last byte of dynamic memory not to be saved, and then this byte was corrupted on restore.
Release 11.1
Bugfixes:
- Fixed bug which caused disks / disk images to be unmounted when using scrollback mode on MEGA65.
Release 11
New/changed features:
- New scrollback buffer available on MEGA65, C64 with REU and C128 with REU. Enabled by default on MEGA65. Enable with -sb or -sb:1. Disable with -sb:0.
- When restarting a game with sound (MEGA65 only) Ozmoo detects that the sounds have already been loaded, making restart a lot faster.
- Player can now switch to darkmode by pressing F1 on the splash screen.
- New option -rd to reserve the entire directory track, i.e. don't store any story data there, typically to allow for directory art.
- Option -re (check for runtime errors) is now enabled by default for MEGA65.
- New make.rb syntax for runtime errors: -re or -re:1 to turn it on. -re:0 to turn it off.
- New make.rb syntax for slow mode: -sl or -sl:1 to turn it on. -sl:0 to turn it off.
- Option -dd (disable darkmode) has been replaced by -dm or -dm:1 to enable darkmode or -dm:0 to disable it. Darkmode is still enabled by default, except for the game Beyond Zork, where it doesn't work well.
- New make.rb syntax for command history: -ch or -ch:1 to enable it, using the default buffer size. -ch:0 to disable it.
- Command history is now enabled by default on MEGA65.
- Changed MEGA65 version to store entire zcode file as one file instead of one file for dynmem and one for statmem
- The MEGA65 version now has no config information stored on disk. This, together with the zcode file being stored in a regular file, means that you can copy a game by just copying the files on the disk. However, the zcode file is stored with an optimized interleave pattern which yields the best loading times when loading from a real floppy - if you make a file copy, you lose that. Copying a floppy image / floppy to a floppy image / floppy with the BACKUP command on the MEGA65 retains the interleave pattern.
- Ozmoo used to hope an REU was big enough to hold the game data. It can now use any REU size - it calculates the size and figures out what fits. The REU can be used to cache game data and/or scrollback buffer.
- Fixed PRINTSPEED mode which was broken. It now prints the # of instructions executed per second, twice per second.
- Indentation on splash screen is now rounded up instead of down (looks better)
- Documented MEGA65 specifics in tech report.
- Documented source files for sound support in tech report.
- Fixed minor problems in tech report.
- Renamed source code file names file_name.* to file-name.* to be more similar to other source files.
- Made MEGA65 builds use the actual boot file file name when restarting instead of "*" (all other targets already did).
Optimizations:
- Faster way to jump to instruction code
- Made restart code less different for different targets, and shorter for Plus/4 and C128.
- Optimized multiplication for input interrupt intervals, thus removing the last use of the generic 16-bit unsigned multiplication routine.
- Removed the generic 16-bit unsigned multiplication routine mult16
Bugfixes:
- Fixed bug: Cursor wasn't showing during save/restore if a blinking cursor was used and it was off when save/restore started.
- Fixed bug: Extension was included in disk title.
- Fixed bug: Ozmoo would ask player to insert Boot/Story disk when restarting, even if it was already in the boot device.
- Fixed bug: Ozmoo would ask player to reinsert Boot/Story disk after save/restore, even though the Boot/Story disk isn't needed.
- Fixed bug: Ozmoo put the computer in a weird state after Quit, if a custom font was used.
- Fixed bug: Restart on MEGA65 only worked if game was loaded from device 8.
- Fixed bug: Save always chose 8 as default save device on MEGA65 - now it chooses the boot device.
- Don't print irrelevant info on dynmem blocks and vmem blocks for MEGA65 in make.rb.
- Default colours were not written to header on MEGA65.
- Incorrect colours were retrieved from the header when the game asked to set background or foreground colours to default.
- make.rb failed to autostart game (-s option) if the story file had a space character in it.
- Fixed bad handling of left and right cursor keys in history mode.