Spectaculator 9.1 for Windows Released!

This release brings a major rework of the virtual keyboard, significant improvements to the screenshot system, extensive joystick configuration enhancements, and a broad sweep of UX modernisation across dialogs, the debugger, and Windows theming support.

It is a free upgrade for existing users with a valid license for version 9.0. Grab it from the downloads page as usual and install over the top of any existing installation.

Virtual Keyboard

  • Completely redesigned virtual keyboard using high-resolution PNG artwork for the 48K, 128K/+, keyboard layouts, replacing the previous low resolution BMP images.
  • Fixed an issue where the virtual keyboard was not visible.
  • Virtual keyboard key states are now reset when the computer is reset.

Screenshots

  • Screenshots can now be saved or copied to the clipboard at various sizes, with configurable
    scale factor and optional border, all driven from the Advanced preferences page.
  • Added support for PNG screenshots, which is now the default format; BMP is still supported
    for compatibility with older applications.
  • Added a Save Screenshot (F4) to the File menu that saves a screenshot directly to disk
    using the configured size and border settings. Repeated captures for the same program
    title produce an auto-incrementing sequence number.
  • Screenshots are now generated directly from the Spectrum’s framebuffer rather than by capturing the Direct3D back buffer. Alt+PrtScn can still be used to capture the entire emulator window, including any visual filters.
  • Fixed a stale-frame bug when resizing the window while emulation is paused; this also affected clipboard copy, which could previously produce images of the wrong dimensions.

Joysticks & Controllers

  • Fixed a buffer overflow caused when certain controllers (flight sticks) report more than the hard limit of 32 buttons; unusable axes are now hidden and unmappable buttons are marked N/A.
  • Added named button labels for The Quickshot II, and X52 H.O.T.A.S., replacing generic
    button numbers.
  • Removed legacy UV-axis support that predated USB joystick POV hat support.
  • Removed the default Up/Down/Left/Right mappings from the Right Stick, which conflicted with the X52 2nd Stage Trigger; analogue thresholds have been tuned.
  • Backspace and Delete keys now clear a button mapping from within the joystick button mappings UI.

Debugger

  • Added Fill Memory — fill any block of memory with a specified value.
  • Added Export Memory — export a region of memory to a file.
  • Added Edit → Paste File Contents to import binary data directly into memory.
  • Added Undo support to the Memory Inspector.
  • Memory Inspector now remembers its last-viewed address across restarts.
  • Added a recent files list to the debugger for debugger projects.
  • DEL key now deletes selected items in the Breakpoints and Watches inspectors.
  • Reworked the unsaved-changes prompt for improved UX.
  • Fixed the Memory Inspector not posting ZXNC_MEMORY_CHANGED notifications; fixed the
    Graphics Inspector not registering for the same notification. All inspectors now update correctly when
    memory changes, regardless of the source of the change.
  • Added Edit → Export to the debugger’s main file menu.

Dialogs and UX

  • Menus and menu items are now drawn with the correct theme colours on modern versions of Windows.
  • Zoom calculations now correctly account for DPI settings.
  • Fixed clipped text in the Switch Model dialog at 125% DPI.
  • Increased the width of File New dialog to avoid the need for vertical scrolling.
  • Removed the prompt to switch to +3 mode when loading +3 content.
  • In full-screen mode, the menu bar is now only shown when the mouse cursor approaches it.
  • Lots more refactoring to improve support on high-DPI displays.
  • Fixed scrolling issues in the Advanced preferences page during in-place editing.
  • Removed the obsolete Use default refresh rate (LCD panels) option.
  • Removed the Scaling Mode option as it was never implemented in the Direct3D renderer.

File Handling

  • File → Save As now remembers the last used file type for the duration of the session,
    resetting when Spectaculator is restarted.
  • Files that cannot be opened (e.g. .bmp and .png files) are no longer added to the
    recent files list.
  • You are no longer prompted to overwrite an existing file if that file is already open.
  • Prompting for missing tape files when loading a snapshot is now optional, with a Don’t show this again option in the warning dialog.
  • Ejecting media now correctly clears the active document for +3 disks, TR-DOS disks, Microdrive cartridges, Plus 3 disk images, and Plus D disk images.

Tape & Media

  • Hardened TAP file parsing against malformed input.
  • Fixed a crash when loading malformed TAP files containing 1-byte or 0-byte blocks.
  • Fixed the Cassette Recorder holding a stale value for the RZX recording state. This fixes
    the issue where flash loading became disabled after recording an RZX.

Sound

  • Refactored the GS128, Covox, Plus D, SpecDrum, uSpeech, and Interface 1 plugins to use
    the platform-agnostic sound manager, replacing direct DirectSound usage.
  • Fixed crash when no sound card is present on the host machine and the Interface 1 is enabled.

Miscellaneous

  • Miscellaneous
  • The uSpeech ROM is now mirrored at 0x0800.
  • A custom ROM can now be loaded for the Scorpion ZS-256.

… and finally

My thanks as always to everyone who took the time to report bugs, share feedback, and support the project.

Jonathan Needle, May 2026.