What's new in version 9.0.2

This version has significant enhancements to the debugger:

  • Add debugger projects to save and load debugger sessions (breakpoints, watches, labels, comments, bookmarks).

  • Significant enhancements to the breakpoints system:

    • Breakpoints can now be disabled and enabled without having to delete them.

    • Break on condition (execute, memory r/w, i/o r/w, hit count) with expressions.

    • Common C-like expression language for debugger expressions.

    • Assign labels for easy reference in the new breakpoints window.

    • Helpers for common i/o breakpoints such as ULA, keyboard rows, Kempston joystick, memory paging.

  • Watch window:

  • Enhanced disassembly window:

  • Memory Inspector:

    • Toggle between bytes, words and ASCII values.

  • Call stack window:

    • Shows the call stack (stack pointer) when stepping through code.

    • Double-click to jump to the disassembly window at the call site.

    • Use Quick Peek to quickly see the code at the call site.

    • Push and Pop the stack.

  • Screen Inspector:

    • Show the active, normal or shadow screens.

    • Show only pixel values.

    • See immediate updates when stepping through code in the debugger.

    • Quick access to set pixel/attribute read/write breakpoints via context menu.

  • Graphics Inspector:

    • Find and show sprites, fonts and other graphical data.

    • Support tile sizes up to 256x256 pixels.

    • Set pad bytes to skip metadata.

    • Copy sprites and other graphical data to the clipboard.

    • Export sprites and other graphical data to PNG files.

  • Quick Peek:

    • Mouse over an address to see the disassembly, bytes and ASCII values behind it in a tool tip window.

  • Other debugger improvements:

  • Other fixes/enhancements:

    • Support for high DPI displays

      • UI elements are now scaled correctly.

      • Zoom options now scale correctly.

      • Text is now crisp and clear on high DPI displays.

      • Overlays scale correctly.

    • Improved compatibility with multi-monitor setups:

      • Full screen on any monitor

      • Prefer fullscreen, windowed mode (Desktop) in the advanced settings to avoid changing the screen mode.

      • Can use your entire desktop without Spectaculator minifying if you leave its monitor.

      • Windows will no longer snap back to the primary monitor on start up.

    • Fix audio output for TZX 1.20 GDB blocks in some scenarios.

    • Fix .tzx files only containing GDBs not being playable.

    • Fix AY noise period.

    • Fix AY envelope generator overflowing the volume for the %1101 shape. With thanks to Franck Sutton.

    • NMI key is now Alt+F5 to stop debug F5 triggering it by accident.

    • Auto load now randomises the system state.

    • Fixed COMCOM keyboard joystick typos in UI to COMCON.

    • Fixed crash when HDMI audio is disconnected during monitor sleep.

    • Fixed early/late timings resetting to early.

    • Escape ampersands in file names and the recent files list.

    • Fixed crash when displaying long file names in the Cassette Recorder window title bar.

    • Clear P/V flag on an interrupted LD A,I/R as per known Z80 bug.

    • Fix timing for sequences of $FD/$DD prefixes.

    • +2A/+3: Switch screens between pixel and attribute byte fetches. With thanks to Patrik Rak.

    • Fixed clipping of display on ultra-wide monitors (e.g. 32:9 aspect ratio) in full screen mode.

    • Interface 1 ROM is now mirrored at $2000 due to partial address decoding.

    • Custom ROMs are now initialised at startup again.

    • Fix storing path to disk files in .szx snapshots in Unicode builds.

    • Add option to pause the emulator when Spectaculator loses the focus.

    • Use UTF-8 encoding for license key names to avoid problems with non-ASCII characters.

    • GAC can now save runnable adventures to tap/tzx files.

Minimum requirements are now Windows® 7 /w SP1, all cumulative updates and hardware-accelerated Direct3D 9 graphics.