Release 6: Input history, input colours, font updates
New/changed features:
- Optional input history implemented. Activate with -ch
- Added player input colour parameters -ic and -dmic
- New version of Clairsys font, new localized versions of Clairsys.
- New font Clairsys Bold, including localized versions.
- Font folder has been reorganized.
- Changed so when Ozmoo is built without vmem (mode -P), SLOW mode is automatically enabled, and no buffers are used - memory access under IO/ROM is instead done with banking on every access. This allows for bigger games to use this mode.
- Updated to Exomizer 3.1.0.
Optimizations:
- Made scrolling faster. A lot.
- Reordered and optimized code in the main loop to shave off some cycles, based on how often different code paths are used.
- Optimized calculation of object address
- Changed jump in main loop using self-modifying code to avoid checking the z_exe_mode for every instruction.
- Optimized reading of object property data.
- Cache y value in new ZP register (mempointer_y) in vmem routines.
- Optimized skip_bytes_z_address.
- Moved Z-code instruction jump table to where it will always be in the same page, to avoid cycle penalty in lookup.
- Optimized lookup in vmem table to it's faster and so the lowbyte part doesn't pass a page boundary.
- Slight optimizations in test_attr, set_attr and clear_attr.
Fixed bugs:
- Warning with latest Acme due to typo ("Hex literal without any digits")
- Builds crashed if -t:c64 was specified, due to SUPPORT_REU being undefined.
- Blank out 40 col screen when decruncing using 2MHz on C128.
- Fixed bug which set colour incorrectly when clearing lines or entire screen on Plus/4
- @read_char didn't reset the row counter for the MORE prompt.
- Score/Time in z3 statusline is now placed close to the right-hand border even on 80 column screens.
- Fixed bug in calculate_propery_length_number (issue 29)
- Moved calls to before_dynmem_read and after_dynmem_read in objecttable.asm around to make sure they're always executed.
- Changed so the number of cache pages is always set to 4 when building for C128, since it has to be that size or Ozmoo crashes.
- Changed so the number of cache pages is set to 0, 1 or 2 (depending on splash screen) when using build mode -P (which doesn't use the cache, but the splash screen code is also located in the cache area).
- SLOW mode wasn't really working any more for platforms other than Plus/4. Fixed.
- Toggling darkmode in 40 col mode in a z5 game on C128 would change all text on screen to the new text colour, even text that had been printed with a different colour. Fixed. (It's still like this for 80 col, because it's hard to read the colour memory in 80 col)