Zero 0.7.1 and Zero 0.6.6 available

A quick update with fixes for a bunch of issues:

– Fixed issues in load and save binary dialog boxes (serbalgi)
– Fixed issues with going fullscreen in GDI (serbalgi) (0.7.1)
– Fixed crash issue on .Net 4 and above (zxmak)
– Fixed crash when loading invalid SNA snapshot (karingal)
– Fixed apparent hang when trying to close emulator in fullscreen – directX only (hikoki) (0.7.1)
– Fixed ULA Snapshot (SZX) not loading correctly (serbalgi)

Zero 0.7 Vanilla and Zero 0.6.5 now available!


After months of grueling work, I’m proud to announce the Vanilla version of Zero, which is a regular Windows version of the emulator. I’ve tried to make it as good as I possibly could and hope some of you who wanted this version will enjoy it.



For those who still like the old look, there’s no need to fret because a new version 0.6.5 is also available! Both the versions can be downloaded from the Download page.

The combined change list is as follows:

+ Plain vanilla windows (v0.7)!
+ Implemented correct cold boot and reset emulation.
+ Updated SZX implementation to match SZX 1.4 specifications.
+ Almost all the aspects of the emulator can now be configured via the command line (see README)
+ Added option to enable Vsynch for DirectX renderer.
+ Added shortcut keys for all major emulator functions (v0.7)
+ Added indicators to main window (v0.7)
+ Added FPS and emulator state readout to status menu (v0.7)
+ Added Most Recently Used (MRU/recent files) capability to main menu (v0.7)
+ Made the Monitor window completely resizable (polomint) (v0.7)
+ Made the Memory viewer resizable vertically (polomint) (v0.7)
+ Added shortcut keys for debugging in the Monitor (polomint) (v0.7)
+ Allow the main emulation window to be resized arbitratrily (v0.7).
+ Added Flash Load for standard tape blocks.
* The emulator is not paused when switching to full screen mode anymore.
* Exit full screen if user needs to be shown a dialog box or tool window (v0.7).
* Reworked pentagon renderer to show aesthetically correct screen dimensions (0.7).
* The last used joystick(s) are now remembered when the emulator starts up.
* On selecting a file from Recent Files list, it’s moved to the top of the recent file stack (v0.7).
* The tape browser and other tool windows are non-modal. They will also pop to front if their icons are clicked again (Stefan).
– Fixed an issue with IN when AY emulation is enabled on a 48k speccy.
– Fixed an issue with the envelope in AY emulation (FrankT).
– Fixed a contention timing issue with IN.
– Fixed Options page not correctly reflecting the sound settings for AY and Stereo sound modes.
– Fixed the Machine State window not showing correct info when first invoked from Monitor.
– Fixed issues with button and image placement if Windows text size is increased.
– Fixed incorrect machine id being saved in SZX Header when 128KE is used.
– Fixed AY not being enabled in 128K and above machines (doh!).
– Fixed machine timing not being read or saved correctly when using a SZX snapshot.
– Fixed Wrong Key2Joy joystick type being used during emulation.
– Fixed renderer not being re-initialized correctly (say when VSync is enabled/disabled).
– Fixed an issue with tape auto-stop causing edge loader to fail.
– Fixed crash if monitor is launched or machine is reset during the Overscan demo (Stefan).
– Fixed a bug in DDCB and FDCB versions of RES opcode.
– Fixed full screen toggle issue. Also uses correct desktop resolution instead of hard coded width and height (v0.7).
– Fixed edge load interfering with fast load when trying to load standard blocks.
– Fixed sound being disabled after loading from tape (Russ Hoy).
– Fixed Fast Loading, which was broken (didn’t load some tapes).
– Fixed Pixel Smoothing option not reflecting currently in the Options window (Russ Hoy).
– Fixed resetting to wrong machine after RZX playback (Russ Hoy).
– Fixed a problem with Infoseek download not auto-loading selected tape. Plus some cross-thread exception. (Russ Hoy)
– Fixed the issue with window not resizing correctly when switching between Pentagon and some other machine (v0.7).
– Fixed relative jump addresses not wrapping correctly if calculated address is > 65535, in the Debugger.
– Fixed tool tip for system variables not showing hex number if user has selected hex view in Debugger.
– Fixed an issue with the +3 not resetting properly (serbalgi).
– Fixed crash on mouse focus being lost due to ALT + TAB (karingal).
– Fixed window size incrementing by 100% instead of 50% as intended (Daren)

Stay updated!

The official twitter account for all things Zero is now active (see sidebar on the right)! I will be posting new developments in Zero as and when they happen, in real time, so that you know a) what’s coming up in the next release b) that I’m still working on the emulator. 🙂

Zero 0.6

Hey, look! A new update to Zero and it’s not even a year since the last one. Progress!

Anyway, here’s a comprehensive list of all the changes in this latest version of Zero:

Version 0.6
+ Target .Net Framework 2.0.
+ AGD 4.2 Special Edition is bundled with the emulator (Jonathan Cauldwell).
+ Added Kempston Mouse emulation to Pentagon 128K.
+ Reworked sound emulation using DirectSound (thx to  Alex Makeev).
+ Removed all SlimDX dependencies.Using pure DirectX for rendering, sound and input now.
+ RZX Recording with ability to record over a period of sessions. And Rollback!
+ Moved Tape Deck icon back to main window (Arm73).
+ Changed default font for all windows to the system default font (except for special cases where Consolas is preferable)
+ Updated some icons.
+ Completely overhauled the debbuger UI (Arda, Chris Cowley).
+ Added Memory Execute breakpoint condition to debugger (Adler).
+ Added 48K Keyboard Viewer.
+ Load/Save Binary can now load/save data into any RAM page (for 128K and above).
+ Added ability to send keywords to editor via the 48K keyboard helper.
+ Added option to auto-load a program after download completion in Infoseek Wizard (everyone!).
+ Changed information in program details of Infoseek Wizard. Plus other dicking about with the UI, including full size screenshots.
* Flattened the icons on the emulator window to be consistent with the rest of the look.
* Turn off Auto Play/Stop if edge loading is disabled.
* Turn off tape even if Auto Play/Stop is enabled, if Stop is pressed on Tape Deck.
– Fixed on screen indicators not showing up in full screen mode.
– Fixed an annoying focus issue where the emulator would occassionally come to the foreground of any overlapping tool window when the mouse was moved over the emulator window (what a mouthful eh?).
– Fixed an issue with trapping of SAVEs from BASIC, wherein the user wasn’t being prompted a file to save to.
– Fixed +3 emulation bug (rotatrix demo now works properly).
– Fixed kempston joystick emulation for all models (ikci).
– Last session details are now stored in user profile path to comply with UAC guidelines.
– Trace and disassembly logs are now saved in user selected folders.
– Fixed exception when display settings where changed from Options in fullscreen mode (Scotty, Arm73).
– Fixed ULA Plus mode being disabled in 128K and above models (Arm73).
– Ignore re-triggered interrupts just after loading a SNApshot (karingal).

Zero 0.5

At long last, Zero 0.5 is finally here with a host of new features and bug fixes. Check the Download section for the links.


  •  Zero can be made to automatically restore the last session on startup by turning on the feature via Options.
  • On screen indicators, like tape and disk activity, can be turned off via Options.
  • Key2Joy feature added that lets the cursor keys be used as a joystick. ALT is fire.
  • Joystick support added. Button mapping is pending.
  • 128K and +3 emulation now pass the fusetest, FWIW.
  • Added support for ZX Spectrum +3 and disk emulation (thanks to Woody for providing the fdc765.dll).
  • Added support for Pentagon 128K and TR DOS (again thanks to Woody for providing the wd1793.dll).
  • Added support for RZX playback.
  • Cheat Helper, File Finder and Tape Browser have all been moved to a new menu that comes up when the Toolbox icon is pressed.
  •  Tape Browser now comes up only if its explicitly called up by the user from the above menu.
  •  Icons tweaked to reflect the change in user interface.
  •  Tape Browser settings are now saved between sessions.
  •  Disks drives are accessible throught the right-click context menu. 2 drives are supported for the +3 and 4 drives for the Pentagon.
  • Added support for external tapes and disks as specified in szx file format.
  • Disk drive activity icon and files download complete icons now appear in main window when required.
  •  Emulation speed control added in Options.
  •  Added support for forced 4:3 aspect ratio in full screen.
  •  Added ULA Plus and +3 disk support when loading from SZX.
  •  Monitor now supports Go To address. Clicking on the register values on the right panel also causes a GO TO that address.(CCowley, Obo and others)
  •  Monitor can now set breakpoints for specific values read/write from memory, ports etc.
  •  Monitor can step over LDIR, INIR and other block commands (Obo)
  •  Added more options to window sizes in the Options window.
  •  Added support for loading and saving .scr files.
  •  Added an “Auto Load” option in the tape deck, which replaces the near useless “Auto Rewind” option.
  •  Zero’s settings are no more stored in a config file in the installation folder. They are now stored in the user profile folders as required by UAC guidelines.
  •  The default config xml file has been removed, as it was quite redundant. Default settings are applied internally.
  •  Removed the Soft Reset option and replaced both Hard and Soft reset option with a single Reset option, which is equivalent to a hard reset.
  •  All external tools for PZX handling have now been replaced by a single dll that is called directly from code.
  •  Updated TapeDeck GUI.
  •  Redesigned the breakpoint window in Monitor. Added options to break on interrupt and re-triggered interrupt.
  •  Made the Pentagon render window more symmetrical.
  •  128ke is not the default machine for loading snapshots anymore. User has to enable it in options for that to work.
  •  Changes to the sound playback routines. Shouldn’t make any difference to end-user. I think.
  •  Pixel smoothing option added to Direct X rendering. Off by default.
  •  Fixed tape deck crashing when the Next button is pressed on the last tape block.
  •  Fixed a raft of DDCB/FDCB opcodes (Woody).
  •  Fixed IN contention (Woody).
  •  Fixed ULA PLus emulation that was broken in beta 4.
  •  Switching to Pentagon and other models is smoother as window is not resized.
  •  Better Pentagon rendering with a more t-state accurate core and renderer (Woody).
  •  Fixed timing for EX (SP), HL/IX/IY instructions (Woody).
  •  Fixed spectrum reset when running some of the test suites from a tape file, when doing a Fast Load.
  •  Fixed EI prefixed emulation.
  •  Fixed incorrect saving of screenshots in format other than the selected one (PNG was being saved as JPEG for instance. *ahem*).
  •  Fixed Robocop.dsk crash issue due to a stray page pointer issue.(Woody)
  •  Fixed scanline option being turned off when exiting Options (karingal, Obo)
  •  Fixed +3 emulation screwing up pacemuzx (Obo)
  •  Fixed a crash when the zx model was restarted with the monitor running (Obo)
  •  Fixed an issue where even if Pause on Emulation feature was enabled in options, the emulator resumed emulation when it wasn’t the foreground app and the mouse was moved over it. (Obo)
  •  Fixed ULA Plus timing and colours (Andrew Owen)
  •  Fixed rendering for 128KE model. The last few bytes of the last scanline weren’t being rendered sometimes.
  •  Possibly fixed the debugger not updating the view to reflect the latest memory state.
  •  Fixed incorrect emulation of some of the rare undocumented FD/DD opcodes.
  •  Fixed toolbar freeze when switching back from full screen.
  •  Fixed the monitor not updating the banks information in 128k mode.
  •  Fixed inaudible beeper sound when played parallely with AY.
  •  Improved GDI rendering speed. Still slower than DirectX though!
  •  Fixed a problem in Program Finder where it would frequently drop connection with Infoseek because of the way the Infoseek API works. Thanks to Martijn for this!

Zero 0.4.6 – WoS Special!

The latest version 0.4.6 of Zero is finally available. Find available from the Download section.

Here’s what has changed from the previous version:

  • Switched to a more consistent set of icons.
  • Added display of information for standard data tape blocks.
  • Added Sound to options menu. Stereo/Mono, Enable AY for 48k options added.
  • Added Program Finder to allow downloading of programs, scans, docs etc directly from WoS archives.
  • Added Stereo ACB and ABC mode selection to Sound options.+ Added ability to play AY sound in 48k mode.
  • Added support for Spectrum 128ke.
  • Switched to Consolas as default font for Monitor. If font isn’t found on user machine, default font is used.
  • Fixed edge loading. Now faster and better and can handle most if not all tape loaders.
  • Fixed zoom level discrepancy (>50%)
  • Fixed data length displayed for standard data blocks
  • Fixed crash when a ROM couldn’t be located at startup and user tried to exit.
  • Fixed Spectrum 128k model incorrectly trying to load 128ke rom.
  • Some keyboard shortcuts have been moved around, noticeably for the window sizing functions (see ReadMe for details).
  • Fixed tape insert behaviour. Now, trying to insert a tape automatically ejects previous tape
  • Fixed crash when attempting to load a 128k tape in a 48k machine.
  • Fixed crash when the next button on tape browser is pressed repeatedly past end of tape.
  • Fixed Auto Rewind. Now tapes wrap around correctly.

As usual feedback, bug reports etc welcome!

Zero is the new Ziggy!

I have made available a new version of Zero (aka Ziggy) as a preview build 0.4.5. That is, the build is likely to have a few minor quibbles (like references to Ziggy still existing in the app 😉 ).

Basically, I’m looking for feedback on the various changes I’ve made to Zero including:
1) Better use of CPU cycles.
2) Emulator can be re-sized in 50% increments and is limited by the resolution of your monitor.
3) Three levels of borders can be set via the Options menu.
4) Zipped files are supported.
5) POK files are supported.
6) Various sundry visual changes.

For other changes see the What’s New text file.

1) Do not unzip this version to your installation folder! Instead unzip to a new folder location.

2) Since this isn’t a true stable release I haven’t bundled the SlimDX setup with this. If you’ve already installed SlimDX you don’t need to worry. If you haven’t, you’ll need to download the SlimDX runtime.

3) Your previous Ziggy version will remain untouched. Any extensions registered will still trigger the previous Ziggy version. To launch Zero you will have to navigate to the Zero folder you just unzipped these files to.

4) Zero has preliminary support for the 128ke model. By default this is the standard 128K model and should load most files including 48k games that didn’t work on the standard 128k machine. However, if you’re looking for 128k contention and accurate emulation you should switch to the 128K model from the machine selector. Zero will use the last selected 128k model from thereon.



Ziggy is a ZX Spectrum emulator written in C# on the .Net platform. It currently emulates the 48k and 128k models with a very high degree accuracy. The latest current version is 0.4.

Ziggy currently sports the following features:

* 100% accurate… oh ok then, highly accurate 48k and 128k emulation. Not kidding. 😉
* Support for both the beeper and multi-channel AY sound.
* DirectX and GDI support. Works best with DirectX though.
* Support for snapshots (sna, szx, z80) and tapes (pzx, tzx, tap, csw)
* Save screenshots from emulator in bmp, png, gif and jpeg format.
* Debugger with stepping facility.
* Tape browser with support for accelerated loading via various (read 2) means.
* Ability to run files from command line, drag and drop. If file associations are enabled,
double-clicking from explorer will launch Ziggy.
* Supports issue 2 keyboards, late timings and a host of other speccy idiosyncracies.
* Full screen mode.
* ULA Plus support.

It’s free to use and can be downloaded from any of the following links:
1. Yantragames
2. Google Sites