Skip to content

Release 6: Input history, input colours, font updates

Choose a tag to compare

@fredrikr fredrikr released this 19 Mar 07:46
· 557 commits to master since this release

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)