Sinclair ZX Spectrum emulator for RISC OS based on Fuse open source project

With this emulator you can use most ZX Spectrum software including games on your RISC OS platform. You can find free downloads in internet for the disc images. You will also find a collection of the best ZX Spectrum games on our Cloverleaf RISC OS distribution.

Changes from last RISC OS Fuse version in 2012

2018-12-09 Philip Kendall <[email protected]>

* Fuse 1.5.7 released.

* Miscellaneous improvements:
* “Save binary” command can now save 65536 bytes again (regression
introduced in 1.5.6; thanks, thrice) (Philip Kendall).
* Remove gcc 8 string overflow warnings (Philip Kendall).

2018-08-06 Philip Kendall <[email protected]>

* Fuse 1.5.6 released.

* Emulation core improvements:
* Z80 flags register is now correct after SCF and CCF (Sergio
Baldoví).

* Miscellaneous improvements:
* More improvements disabling phantom typist after finishing loading
TAP or standard ROM TZX files (thanks, Alberto Garcia) (Fredrick
Meunier).
* “Variant” Alkatraz loaders (e.g. Gauntlet 3 and Shadow Dancer),
“Variant” Search Loader programs (e.g. Lotus Esprit Turbo
Challenge and Space Crusade) and Dinaload loaders (e.g. Astro Marine
Corps) are now accelerated (Philip Kendall).
* Stop RZX playback/recording on machine reset/change (Sergio
Baldoví).
* Various minor bugfixes.


2018-04-29 Philip Kendall <[email protected]>

* Fuse 1.5.3 released.

* Emulation core improvements:
* Disable inactive peripherals after loading a snapshot (Sergio
Baldoví).


2018-03-27 Philip Kendall <[email protected]>

* Fuse 1.5.2 released.

* Emulation core improvements:
* Emulate ROM bug loading zero length blocks when using tape traps
(ub880d).

* Machine specific improvements:
* Fix the format of double-sided +3 disks (Sergio Baldoví).

* Miscellaneous improvements:
* Spectrum reset is accelerated when phantom typist is enabled and a
file is loaded from the menu (Fredrick Meunier).
* Add options UI for phantom typist (Fredrick Meunier).

2018-02-25 Philip Kendall <[email protected]magic.org.uk>

* Fuse 1.5.1 released.

* Debugger improvements:
* Prevent crash when we try to disassemble an instruction with many
DD or FD prefixes (Philip Kendall; thanks, Miguel Angel Rodríguez
Jódar).
* Fix crash when setting debugger variables (Gergely Szasz).

* Profiler improvements:
* Prevent crash when we try to profile an instruction with many DD
or FD prefixes (Philip Kendall; thanks, Sergio Baldoví).


2017-12-10 Philip Kendall <[email protected]>

* Fuse 1.5.0 released.

* Debugger improvements:
* Ensure conditional timed breakpoints work correctly (Philip
Kendall).

* Miscellaneous improvements:
* Autoload snapshots replaced by a “phantom typist” which types
LOAD “” or similar.
* Alkatraz loaders (e.g. Cobra and Fairlight) are now accelerated
(Philip Kendall).

2017-10-10 Philip Kendall <[email protected]>

* Fuse 1.4.1 released.

* Emulation core improvements:
* Improvements to the loader acceleration code to reduce errors –
Blood Brothers, City Slicker, Driller, Dynamite Dan, Games
Compendium (by Gremlin), Joe Blade II, Kokotoni Wilf, Powerplay,
Saboteur, Trapdoor and Zanthrax now all load successfully (thanks,
windale and ub880d) (Philip Kendall).
* Multiface 3 returns values stored from ports 0x1ffd and 0x7ffd
(thanks, Fredrick Meunier) (Sergio Baldoví).
* Set contention for DivIDE/DivMMC EPROM memory and clear data to 1’s
(Sergio Baldoví).

* Debugger improvements:
* Allow an exit code to be specified when using the “exit” command
(Philip Kendall).
* Add new “tape:microphone” and “spectrum:frames” system variables to
allow access to the current tape level and frame count since reset
(Philip Kendall).

* Deprecated features removed:
* All Z80 variables in the debugger must now be referenced as
“z80:NAME” rather than just “NAME” e.g. “set z80:af 0x1234”
rather than just “set af 0x1234” (Philip Kendall).

2017-09-03 Philip Kendall <[email protected]>

* Fuse 1.4.0 released.

* New features:
* Add DivMMC emulation (Philip Kendall and Sergio Baldoví).
* Add ZXMMC emulation (Philip Kendall and Sergio Baldoví).

2017-07-31 Philip Kendall <[email protected]>

* Fuse 1.3.8 released.

* Emulation core improvements:
* Add workaround for Multiface One and 128 clash (thanks, Fredrick
Meunier) (Sergio Baldoví).
* Limit RZX sentinel warning to once per playback (Sergio Baldoví).
* Disable Melodik interface on 128K machines (Sergio Baldoví).
* Correct the list of machines for Multiface One (Fredrick Meunier).

2017-07-02 Philip Kendall <[email protected]>

* Fuse 1.3.7 released.

* New features:
* Add Multiface One/128/3 interface emulation (Gergely Szasz and
Sergio Baldoví).

* Machine specific improvements:
* Restore +2A/+3 ALL_RAM mode from snapshots (Sergio Baldoví).

2017-06-01 Philip Kendall <[email protected]>

* Fuse 1.3.6 released.

* Emulation core improvements:
* Add Covox interface emulation (Fredrick Meunier).
* Disable accelerate loader while recording RZX files (thanks,
windale) (Sergio Baldoví).


2017-04-28 Philip Kendall <[email protected]>

* Fuse 1.3.5 released.

* Emulation core improvements:
* Disable tape traps when playing/recording RZX files (thanks,
windale) (Sergio Baldoví).


2017-03-07 Philip Kendall <[email protected]>

* Fuse 1.3.4 released.

* Debugger improvements:
* Fix syntax for “breakpoint read” debugger command (thanks, Andy
Chadbourne) (Sergio Baldoví).


2017-01-31 Philip Kendall <[email protected]>

* Fuse 1.3.3 released.

* Emulation core improvements:
* Add support for the hidden MEMPTR register (thanks, Boo-boo,
Vladimir Kladov and the members of the “Z80 Assembly Programming On
The ZX Spectrum” Facebook group) (Philip Kendall).
* Mark new disks as needing to be saved (Gergely Szasz).
* Show more information on disk modification status in menus (Gergely
Szasz).


2016-12-05 Philip Kendall <[email protected]>

* Fuse 1.3.2 released.

* Emulation core improvements:
* Allow keyboard arrow keys to be used as a cursor joystick (thanks,
solaris104) (Fredrick Meunier)
* Limit sound generation to less than 500% speed (thanks, windale and
Sergio Baldoví) (Fredrick Meunier).

2016-11-05 Philip Kendall <[email protected]>

* Fuse 1.3.1 released.

* Emulation core improvements:
* Warn on inserting large disk image (thanks, Stefano Bodrato)
(Fredrick Meunier)


2016-10-02 Philip Kendall <[email protected]>

* Fuse 1.3.0 released.

* New features:
* Recreated ZX Spectrum Bluetooth keyboard support (thanks, thrice,
Philip Kendall and Sergio Baldoví) (Ekkehard Morgenstern).

* Emulation core improvements:
* Reset machine when auto-loading TRD/SCL disks (thanks, BogDan Vatra
and Fredrick Meunier) (Sergio Baldoví).

* Machine specific improvements:
* Update +3e ROMs to v1.43 (Sergio Baldoví; thanks, Garry Lancaster).


2016-08-21 Philip Kendall <[email protected]>

* Fuse 1.2.2 released.

* New features:
* Support loading first tape, snapshot, dock cartridge or RZX file
found inside .zip files (Patrik Rak and Sergio Baldoví).
* Support auto-booting TR-DOS disk images without a boot file (thanks,
windale, BogDan Vatra and Fredrick Meunier) (Sergio Baldoví).

* Emulation core improvements:
* Change microphone state when 0 tstate pulses do not have the no edge
flag set (Fredrick Meunier).

* Machine specific improvements:
* Fix +3 disk autoload (thanks, windale and BogDan Vatra) (Sergio
Baldoví and Fredrick Meunier).
* Fix floppy drive selection when resetting a +3 (thanks, windale and
BogDan Vatra) (Sergio Baldoví).


2016-07-17 Philip Kendall <[email protected]>

* Fuse 1.2.1 released.

* Emulation core improvements:
* Fix bugs when the detect loaders feature is being used (thanks, Lee
Tonks and windale) (Fredrick Meunier).

* Debugger improvements:
* Remove the need for “%” when accessing system variables (Philip
Kendall).
* Add Z80 registers as debugger variables (Philip Kendall).
* Expose last byte written to the ULA, tstates since interrupt,
primary and secondary memory control ports as debugger system
variables (Philip Kendall).
* Make breakpoints on events honour lifetime (Sergio Baldoví).
* Extend breakpoints on paging events to more peripherals: Beta 128,
+D, Didaktik 80, DISCiPLE, Opus Discovery and SpeccyBoot (Sergio
Baldoví).
* Split +D memory sources into RAM and ROM sections (Sergio Baldoví).
* Coalesce +D and DISCiPLE RAM pages so they show as 8K pages (Sergio
Baldoví).


2016-06-06 Philip Kendall <[email protected]>

* Fuse 1.2.0 released.

* New features:
* Add Currah µSource emulation (Stuart Brady).
* Add Didaktik 80/40 emulation (Gergely Szasz).
* Capture BASIC video functions to SVG file (Stefano Bodrato).
* Support bash completion (Sergio Baldoví).

* Emulation core improvements:
* Allow continuing RZX recordings if there is a final snapshot in the
RZX (Sergio Baldoví).
* Fix the prune function on RZX rollback (Sergio Baldoví).
* Use SZX format for the initial snapshot in RZX files (Sergio
Baldoví).
* Fix loading of EDSK files with Sector Offset block (Sergio Baldoví).
* Migrate disk “index event” handling to the FDD layer and have the
FDC layer use it for their STATUS registers (Gergely Szasz).
* Implement WD2797 emulation (Gergely Szasz).
* Centralise the “Disk icon” update code to the FDD layer (Gergely
Szasz).
* Fix disk image corruption after saving UDI files (Sergio Baldoví).
* Check ready status after loading a disk into floppy disk drive
(thanks, John Elliott) (Sergio Baldoví).
* Fix overlapped SEEK commands (Sergio Baldoví).
* Fix length of data returned by READ_DIAG (thanks, Fredrick Meunier)
(Sergio Baldoví).
* Fix writing .td0 format disk files (Sergio Baldoví).
* Fix speech in Cobra’s Arc – Medium Case.tzx when loaded with tape
traps enabled (thanks, zx81 and Sergio Baldoví) (Fredrick Meunier).
* Skip tape traps if VERIFY is requested (UB880D).
* Fix loading sound with some custom loaders (Fredrick Meunier).
* Check if data blocks are headers for handling PZX files (Fredrick
Meunier).
* Correct display of pulses in PZX pulse block for tape browser
(Fredrick Meunier).
* Set AF, AF’ and SP to 0xffff on reset (Stuart Brady).
* Leave most registers unchanged on a soft reset (Stuart Brady).
* Emulate interrupt and NMI timings more precisely (Stuart Brady).
* Emulate NMOS and CMOS Z80 variants (Stuart Brady).
* Switch to 2KB page size (Stuart Brady).
* Fix inaccurate output when AY envelopes are used (Matthew Westcott
and Fredrick Meunier).
* Fix some peripherals activation when loading snapshots (Sergio
Baldoví).

* Machine specific improvements:
* The address range 0x4000 – 0x7FFF is contended on the TS2068 in the
home, Dock and Exrom banks (thanks, Richard Atkinson). It is assumed
that this is the same for other Timex models (Fredrick Meunier).
* Clear all Opus RAM on hard reset (Stuart Brady).
* Ensure the ZX Printer does not require a hard reset to enable
(thanks, RMartins) (Fredrick Meunier).
* Fix timing of events when emulating Scorpion (Stuart Brady).
* Ensure we have successfully selected a Pentagon or a Timex machine
before inserting their media (Fredrick Meunier).
* Prefer Scorpion to Pentagon when loading SCL/TRD disks for better
timing compatibility (thanks, windale) (Sergio Baldoví).
* Fix Beta 128 type II commands (thanks, windale and BogDan Vatra)
(Sergio Baldoví).
* Don’t enable the Beta 128 interface when loading a snapshot on a
machine with Beta built-in (thanks, windale and BogDan Vatra)
(Fredrick Meunier).
* Lock port +3 1FFDh if paging is disabled (Brian Ruthven and Fredrick
Meunier).
* Spectranet: fix segfault in error handling when setting SO_REUSEADDR
(Stuart Brady).
* Update SE ROMs to v4.07 (thanks, Andrew Owen) (Sergio Baldoví).

* Debugger improvements:
* Fix disassembly of LD (HL), LD (IX) and LD (IY) (BogDan Vatra).
* Add I and R register setting and getting to the debugger (Sergio
Baldoví).
* Show the status of the halted flag in the debugger (Stuart Brady).
* Fix time breakpoints later than a frame in the future (Sergio
Baldoví).
* Timex EXROM and Dock text was truncated in the debugger UI (thanks,
Andrew Owen and Sergio Baldoví) (Fredrick Meunier).
* Win32: relocate halted flag and set monospaced font (Sergio
Baldoví).
* Fix memory issues when removing a matched breakpoint (Tom Seddon).
* Signal the UI when the breakpoints list is changed (BogDan Vatra).
* Document IF token for conditional expressions in debugger section
(thanks, TK90XFan) (Sergio Baldoví).
* Fix documentation of address syntax used in debugger section
(Sergio Baldoví).
* Allow debugger to dereference memory locations (Philip Kendall).
* Allow strings with escaped spaces in the debugger (Sergio Baldoví).
* Make wildcard event breakpoints work (thanks, Sergio Baldoví)
(Philip Kendall).
* Protect divide expression from a divide by zero exception (Fredrick
Meunier).


2013-05-19 Philip Kendall <[email protected]>

* Fuse 1.1.0 released.

* Remove ROMs that there is no formal permission to distribute.

* New features:
* Add Spectranet ethernet interface emulation (Philip Kendall).
* Add SpeccyBoot ethernet interface emulation (Patrik Persson).
* Add SpecDrum sound interface emulation (Jon Mitchell).
* Add DISCiPLE disk interface emulation (Stuart Brady).
Sinclair Network emulation is not provided, and the interface is
not available under 128K emulation in this release.
* Support reading PZX files (Fredrick Meunier).
* Add support for POK files (Sergio Baldoví).
* Add recording of movies to FMF files (Gergely Szasz).
* Add GTK+ 3 compatibility (Sergio Baldoví).

* Emulation core improvements:
* Add support for ABC AY stereo (Stuart Brady).
* Correct feedback in AY noise generator (Patrik Rak).
* MIC bit only isn’t enough to drive the speaker (Fredrick Meunier).
* Mirror Interface 1 ROM to the second 8Kb of ROM as in the real
interface (Fredrick Meunier, with thanks to mcleod_ideafix and
zx81).
* Support the Beta interface setting to not auto-boot the interface
on 48K machines (ketmar).

* Machine specific improvements:
* Read and write all potential 1024k worth of memory pages from a
snap (ketmar and Fredrick Meunier).
* Initialise the Pentagon 1024k memory ports from a snapshot (ketmar
and Fredrick Meunier).
* Restore the paged state of the Beta ROM when loading Pentagon
128k/512k/1024k snapshots (ketmar and Fredrick Meunier).

* Debugger improvements:
* Disassemble ED 4D as RETI (Simon Owen).
* Add IM, IFF1 and IFF2 setting and getting to the debugger (Alex
Badea).