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.