Wednesday, January 18, 2023


#CSpect V2.19.0.3 changes

Massive update, with virtually all rendering components touched to properly allow for blending modes. While there has been a concerted effort to beta test this, please report any rendering oddities that you see on the Spectrum Next discord channel.
Also in this version, is a major update to audio/video syncing, producing far smoother and more playable results. The recommended command line for gamers will now be "-60 -vsync [game]". This should give full audio, and nice smooth gameplay.
General timing has also been improved, so without audio running at 60hz and vsync in fullscreen, everything should "glide" nicely again - as it used to in the C++ version.

Plugin authors be aware of a change to the Plugin system. Due to the new Audio/Visual syncing system, the emulator "could" now be running on a different thread, and as such, you can no longer do GUI/OS work from callbacks. ALL UI/OS work must now be managed via the new OSTick() callback. Like the Tick() callback, but this is always called from the OS thread, allowing you to open windows, and refresh/draw them. Please see updated plugins on my github for further example code.

Hope you all enjoy this one, it's been some time in the making - thanks to all who helped beta test it.

  • Fixed Timex Hires non-ULANext ink/paper orders
  • Fixed Timex Hires ULANext ink/paper orders
  • Added wildcard support in F_OPENDIR ($a3)
  • Added better exception reporting to the LOG for loading plugins
  • Fixed DeZog plugin building - DLL has been properly updated with new Plugin interface

  • Fixed up keyboard cross threading issues
  • Fixed up File open cross threading issue
  • Added a new OSTick() call to plugins to allow UI/OS function calls - please note the changes in plugins to avoid crashes
  • Fixed Timex hires with ULA Next ink/paper shift mode
  • Added a "Standard Plugin Keys" section to the readme.txt file

  • Fixed 2 profiler crashes, when clicking on the profile window in different states
  • Fixed ULA last line drawing
  • Fixed sprite in border bugs with new screen rendering
  • Fixed L2 640x256 and 320x256 clipping
  • Fixed Timex border colour issues
  • New Audio/Video syncing system
  • Fixed 320x256 window

  • Fixed a crash in Mode 6 and 7 when the tile window was larger than the screen
  • Fixed blending of tiles to border when in Mode 6 and 7
  • Fixed border when in Mode 6 and 7 when ULA is being used in blending
  • Fixed an esxDOS emulator issue, when a game requests too many bytes than is left in the file, and it fills the extra space with 0s resulting in game crashes
  • Timing fixed. 50hz and 60hz were both running slowly/weirdly both with and without sound. Should now be correct.
  • -60 and -VSYNC should now be perfectly smooth again
  • -fps added to show FPS on title bar
  • -freerun disable all timers and run as fast as we can (must use -sound as well)
  • ULA Y scrcolling fixed to use Yscroll value MOD 192 (instead of anything over 192 being 0)
  • ULA+TILE Stencil mode added. Stencil will use any ULA mode (normal, timex, lowres)
  • Mode6/7 blending can now be used with stencil mode (where ever the hardware allowed it)

If you want to support my work...
Become a Patreon at:
Or buy me a Ko-fi:
Main Website:

No comments: