ZX Spectrum Emulator for Windows
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.
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:
+ 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).
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!
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!
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.