Menu ▾ ▴

Tree [ec9ae8] master /
 History

HTTPS access


File Date Author Commit
 .agents 2026-07-27 Fredrick Meunier Fredrick Meunier [8e5be9] Updates for a "1.9.1" version
 .beads 2026-05-30 Fredrick Meunier Fredrick Meunier [f7f561] Fixes for GitHub actions builds with new SDL au...
 .github 1 day ago Fredrick Meunier Fredrick Meunier [ff922b] Update Emscripten workflow checkout actions to ...
 .pi 2026-09-20 Fredrick Meunier Fredrick Meunier [5ea13d] Add disk idle automation scenarios
 automation 6 days ago Fredrick Meunier Fredrick Meunier [3a0b53] Skip automation PC checks when no PC target is ...
 compat 2026-10-17 Fredrick Meunier Fredrick Meunier [0a55b1] Fix Emscripten audio waits and standardise on S...
 data 1 day ago Fredrick Meunier Fredrick Meunier [90935e] Updates for a "1.10.1" version
 debugger 2026-08-22 Fredrick Meunier Fredrick Meunier [6ae1f8] Add CB BIT/RES/SET 0,(HL) disassembler tests an...
 hacking 6 days ago Fredrick Meunier Fredrick Meunier [7107cc] Remove obsolete libaudiofile build dependencies...
 infrastructure 2023-07-11 Stuart Brady Stuart Brady [e09eee] Initial support for Currah uSpeech peripheral
 lib 2019-02-09 Sergio Baldoví Sergio Baldoví [a64a8b] Rename keyboard image to keyboard.png
 m4 2026-10-06 Fredrick Meunier Fredrick Meunier [1a94f1] Remove SDL 1 support and retain SDL 2 backends
 machines 2026-09-27 Fredrick Meunier Fredrick Meunier [12c7be] Load snapshot machine ROMs through explicit res...
 man 1 day ago Fredrick Meunier Fredrick Meunier [ec9ae8] Updates for a "1.10.1" version
 peripherals 2026-10-12 Fredrick Meunier Fredrick Meunier [fb37da] Fix undefined behavior in IDE unit tests and UD...
 perl 2016-10-24 Fredrick Meunier Fredrick Meunier [5de510] Retire legacy RCS tags
 pokefinder 2026-08-14 Fredrick Meunier Fredrick Meunier [215f85] Extend unittest to cover pokefinder incremented...
 roms 2016-11-06 Sergio Baldoví Sergio Baldoví [0748a3] Tweak text as SE roms are covered by GPL
 sound 5 days ago Fredrick Meunier Fredrick Meunier [d04e92] Bound SDL2 producer waits when audio consumptio...
 timer 2026-10-06 Fredrick Meunier Fredrick Meunier [dea583] Pace callback audio at exact production boundaries
 tools 2026-09-02 Fredrick Meunier Fredrick Meunier [bee4b6] Add C source complexity metrics tooling
 ui 2026-10-16 Fredrick Meunier Fredrick Meunier [57812c] Retire 8-bit audio output compatibility
 unittests 6 days ago Fredrick Meunier Fredrick Meunier [02fbb2] Migrate Windows builds to MSYS2 with integrated...
 z80 6 days ago Fredrick Meunier Fredrick Meunier [3a0b53] Skip automation PC checks when no PC target is ...
 .gitattributes 6 days ago Fredrick Meunier Fredrick Meunier [02fbb2] Migrate Windows builds to MSYS2 with integrated...
 .gitignore 2026-10-17 Fredrick Meunier Fredrick Meunier [438102] Ignore generated unit test binaries
 AUTHORS 2026-09-24 Fredrick Meunier Fredrick Meunier [878ed4] Fix stale UI statements in AUTHORS and the man ...
 COPYING 2007-05-26 Stuart Brady Stuart Brady [5bed54] Update FSF address in GPL notices, add autogene...
 ChangeLog 1 day ago Fredrick Meunier Fredrick Meunier [90935e] Updates for a "1.10.1" version
 INSTALL 6 days ago Fredrick Meunier Fredrick Meunier [02fbb2] Migrate Windows builds to MSYS2 with integrated...
 Makefile.am 2026-10-11 Fredrick Meunier Fredrick Meunier [07d84e] Deduplicate conditional .PHONY declaration (pro...
 PORTING 2008-07-15 Philip Kendall Philip Kendall [b7c924] Add document on what you can and cannot do with...
 README 1 day ago Fredrick Meunier Fredrick Meunier [ec9ae8] Updates for a "1.10.1" version
 THANKS 2021-02-21 Sergio Baldoví Sergio Baldoví [917517] Rename GTK+ to GTK
 autogen.sh 2017-06-10 Fredrick Meunier Fredrick Meunier [b84b3a] Swtich to using autoreconf
 bitmap.h 2016-10-24 Fredrick Meunier Fredrick Meunier [5de510] Retire legacy RCS tags
 compat.h 2026-09-20 Fredrick Meunier Fredrick Meunier [afc5de] Move display timing clock into compatibility layer
 configure.ac 1 day ago Fredrick Meunier Fredrick Meunier [ec9ae8] Updates for a "1.10.1" version
 display.c 2026-10-17 Fredrick Meunier Fredrick Meunier [860baa] Preserve display image data across refreshes (b...
 display.h 2026-09-14 Fredrick Meunier Fredrick Meunier [c4a62a] Clean up display module interfaces
 display_border.c 2026-10-17 Fredrick Meunier Fredrick Meunier [860baa] Preserve display image data across refreshes (b...
 display_dirty.c 2026-09-14 Fredrick Meunier Fredrick Meunier [1f1132] Format display modules with uncrustify
 display_internal.h 2026-10-17 Fredrick Meunier Fredrick Meunier [860baa] Preserve display image data across refreshes (b...
 display_render.c 2026-10-17 Fredrick Meunier Fredrick Meunier [860baa] Preserve display image data across refreshes (b...
 event.c 2026-04-05 Fredrick Meunier Fredrick Meunier [8b7367] Uncrustify event.c
 event.h 2026-03-10 Fredrick Meunier Fredrick Meunier [469125] Update dates for next release.
 fuse.c 2026-10-17 Fredrick Meunier Fredrick Meunier [a100c5] Correct --fb-mode to --fbmode in options help (...
 fuse.h 2026-08-29 Alberto Garcia Alberto Garcia [dc4b14] Set the application ID
 input.c 2026-09-29 Fredrick Meunier Fredrick Meunier [4187f4] Make joystick menu mapping configurable for wid...
 input.h 2026-09-11 Fredrick Meunier Fredrick Meunier [99082f] Fix incorrect CAPS SHIFT state when multiple ho...
 keyboard.c 2026-09-29 Fredrick Meunier Fredrick Meunier [4187f4] Make joystick menu mapping configurable for wid...
 keyboard.h 2026-09-29 Fredrick Meunier Fredrick Meunier [4187f4] Make joystick menu mapping configurable for wid...
 keysyms.dat 2016-10-24 Fredrick Meunier Fredrick Meunier [5de510] Retire legacy RCS tags
 keysyms.pl 2026-10-06 Fredrick Meunier Fredrick Meunier [1a94f1] Remove SDL 1 support and retain SDL 2 backends
 loader.c 2026-10-10 Fredrick Meunier Fredrick Meunier [e52d19] Avoid mistaking keyboard scans for tape loader ...
 loader.h 2026-09-12 Fredrick Meunier Fredrick Meunier [dd739f] Accelerate Microprose loaders (bug #430) (thank...
 loader_detector.c 2026-10-10 Fredrick Meunier Fredrick Meunier [e52d19] Avoid mistaking keyboard scans for tape loader ...
 loader_internals.h 2026-10-10 Fredrick Meunier Fredrick Meunier [e52d19] Avoid mistaking keyboard scans for tape loader ...
 machine.c 2026-10-06 Fredrick Meunier Fredrick Meunier [782e76] Schedule audio at safe subframe boundaries
 machine.h 2026-09-27 Fredrick Meunier Fredrick Meunier [12c7be] Load snapshot machine ROMs through explicit res...
 memory_pages.c 2026-09-27 Fredrick Meunier Fredrick Meunier [12c7be] Load snapshot machine ROMs through explicit res...
 memory_pages.h 2026-08-17 Fredrick Meunier Fredrick Meunier [d3f46b] Preserve snapshot ROMs across soft reset
 mempool.c 2026-04-11 Fredrick Meunier Fredrick Meunier [6d4277] Add mempool_strdup NULL guard
 mempool.h 2016-10-24 Fredrick Meunier Fredrick Meunier [5de510] Retire legacy RCS tags
 menu.c 1 day ago Fredrick Meunier Fredrick Meunier [f03e34] Make the ZXMMC eject menu item work (patch #510)
 menu.h 2026-09-08 Fredrick Meunier Fredrick Meunier [8b8dc8] Add DISCiPLE magic button action for widget UIs...
 menu_data.dat 2026-10-06 Fredrick Meunier Fredrick Meunier [1a94f1] Remove SDL 1 support and retain SDL 2 backends
 menu_data.pl 2021-03-15 Fredrick Meunier Fredrick Meunier [a44a74] Change libspectrum.h and config.h include style
 module.c 2026-09-27 Fredrick Meunier Fredrick Meunier [12c7be] Load snapshot machine ROMs through explicit res...
 module.h 2026-09-27 Fredrick Meunier Fredrick Meunier [12c7be] Load snapshot machine ROMs through explicit res...
 movie.c 2026-09-16 Fredrick Meunier Fredrick Meunier [e1f798] Add FMF extension when recording movies (bug #469)
 movie.h 2016-10-24 Fredrick Meunier Fredrick Meunier [5de510] Retire legacy RCS tags
 movie_tables.h 2016-10-24 Fredrick Meunier Fredrick Meunier [5de510] Retire legacy RCS tags
 periph.c 2026-09-18 Fredrick Meunier Fredrick Meunier [87acd9] Add structured RZX automation lifecycle
 periph.h 2026-03-10 Fredrick Meunier Fredrick Meunier [469125] Update dates for next release.
 phantom_typist.c 2026-09-08 Fredrick Meunier Fredrick Meunier [8b8dc8] Add DISCiPLE magic button action for widget UIs...
 phantom_typist.h 2017-11-19 Sergio Baldoví Sergio Baldoví [bf3f3a] Fix implicit declaration warning
 profile.c 2026-03-10 Fredrick Meunier Fredrick Meunier [469125] Update dates for next release.
 profile.h 2016-10-24 Fredrick Meunier Fredrick Meunier [5de510] Retire legacy RCS tags
 psg.c 2026-06-15 Fredrick Meunier Fredrick Meunier [1c9767] Updates for copyright headers
 psg.h 2026-06-15 Fredrick Meunier Fredrick Meunier [1c9767] Updates for copyright headers
 rectangle.c 2026-04-09 Fredrick Meunier Fredrick Meunier [a40dfe] Fix same-x overlap miss in x-dimension merge
 rectangle.h 2026-04-07 Fredrick Meunier Fredrick Meunier [984196] Rectangle merge misses same-y overlap when fram...
 rzx.c 2026-10-06 Fredrick Meunier Fredrick Meunier [782e76] Schedule audio at safe subframe boundaries
 rzx.h 2026-09-13 Fredrick Meunier Fredrick Meunier [e87c11] Handle Spectaculator +D RZX snapshot paging
 rzx_internal.h 2026-09-08 Fredrick Meunier Fredrick Meunier [b22469] Split RZX recording support from playback
 rzx_recording.c 2026-10-09 Fredrick Meunier Fredrick Meunier [68d202] Replace sampled tape recording with MIC edge ca...
 screenshot.c 2026-09-18 Fredrick Meunier Fredrick Meunier [7edc24] Capture automation screen audio and state evidence
 screenshot.h 2026-07-23 Fredrick Meunier Fredrick Meunier [c80090] Replace magic screen size literals with named c...
 settings-header.pl 2016-11-18 BogDan Vatra BogDan Vatra [461390] Remove unused include
 settings.dat 2026-10-16 Fredrick Meunier Fredrick Meunier [57812c] Retire 8-bit audio output compatibility
 settings.pl 2026-10-09 Fredrick Meunier Fredrick Meunier [43f887] Support deprecated command-line options and con...
 slt.c 2026-09-27 Fredrick Meunier Fredrick Meunier [a5e242] Allocate SLT screen in reset-managed memory pool
 slt.h 2021-03-15 Fredrick Meunier Fredrick Meunier [a44a74] Change libspectrum.h and config.h include style
 snapshot.c 2026-10-06 Fredrick Meunier Fredrick Meunier [782e76] Schedule audio at safe subframe boundaries
 snapshot.h 2026-03-10 Fredrick Meunier Fredrick Meunier [469125] Update dates for next release.
 sound.c 2026-10-16 Fredrick Meunier Fredrick Meunier [ab7e85] Prevent DAC auto-muting with balanced silence n...
 sound.h 2026-10-06 Fredrick Meunier Fredrick Meunier [e21aa0] Add preventive adaptive pacing for callback audio
 spectrum.c 2026-10-09 Fredrick Meunier Fredrick Meunier [68d202] Replace sampled tape recording with MIC edge ca...
 spectrum.h 2026-09-17 Fredrick Meunier Fredrick Meunier [6d308a] Implement minimal one-shot automation support
 svg.c 2026-07-15 Fredrick Meunier Fredrick Meunier [5f82f2] Fix off-by-one in svg_startcapture allocation
 svg.h 2016-10-24 Fredrick Meunier Fredrick Meunier [5de510] Retire legacy RCS tags
 tape.c 2026-10-17 Fredrick Meunier Fredrick Meunier [e7444b] Support ROM tape traps for standard PZX data bl...
 tape.h 2026-10-10 Fredrick Meunier Fredrick Meunier [4e6647] Preserve complete UTF-8 tape metadata in browse...
 tape_block.c 2026-10-10 Fredrick Meunier Fredrick Meunier [4e6647] Preserve complete UTF-8 tape metadata in browse...
 tape_internals.h 2026-10-17 Fredrick Meunier Fredrick Meunier [e7444b] Support ROM tape traps for standard PZX data bl...
 tape_record.c 2026-10-09 Fredrick Meunier Fredrick Meunier [68d202] Replace sampled tape recording with MIC edge ca...
 tape_traps.c 2026-10-17 Fredrick Meunier Fredrick Meunier [e7444b] Support ROM tape traps for standard PZX data bl...
 ui.c 2026-09-19 Fredrick Meunier Fredrick Meunier [e2982d] Send RZX compatibility warnings to console
 uidisplay.c 2026-03-10 Fredrick Meunier Fredrick Meunier [469125] Update dates for next release.
 uimedia.c 2026-08-13 Fredrick Meunier Fredrick Meunier [dd48d9] Avoid rereading startup media files
 update-release.py 2026-05-17 Fredrick Meunier Fredrick Meunier [fe1d30] Add release process documentation and distribut...
 utils.c 2026-10-06 Fredrick Meunier Fredrick Meunier [782e76] Schedule audio at safe subframe boundaries
 utils.h 2026-09-16 Fredrick Meunier Fredrick Meunier [8d5884] Use libspectrum loaded file abstraction (part o...
 utils_string.c 2026-10-06 Fredrick Meunier Fredrick Meunier [782e76] Schedule audio at safe subframe boundaries
 windres.rc 2026-03-10 Fredrick Meunier Fredrick Meunier [469125] Update dates for next release.

Read Me

The Free Unix Spectrum Emulator (Fuse) 1.10.1
============================================

Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat
unsurprisingly, an emulator of the ZX Spectrum (a popular 1980s home
computer, especially in the UK) for Unix. However, it has now also
been ported to macOS, which may or may not count as a Unix variant
depending on your advocacy position and Windows which definitely isn't
a Unix variant. Fuse also emulates some of the better-known ZX Spectrum
clones as well.

What Fuse does have:

* Accurate Spectrum 16K/48K/128K/+2/+2A/+3 emulation.
* Working Spectrum +3e and SE, Timex TC2048, TC2068 and TS2068,
  Pentagon 128, "512" (Pentagon 128 with extra memory) and 1024 and
  Scorpion ZS 256 emulation.
* Runs at true Speccy speed on any computer you're likely to try it on.
* Support for loading from .tzx files, including accelerated loading.
* Sound (on systems supporting the Open Sound System, SDL2, OpenBSD/
  Solaris's /dev/audio, CoreAudio or PulseAudio).
* Emulation of most of the common joysticks used on the Spectrum
  (including Kempston, Sinclair and Cursor joysticks).
* Emulation of some of the printers you could attach to a Spectrum.
* Support for the RZX input recording file format, including
  rollback and 'competition mode'.
* Emulation of the Currah µSource, Interface 1, Kempston mouse,
  Multiface One/128/3 and TTX2000S interfaces.
* Emulation of the Covox, Currah µSpeech, Fuller audio box, Melodik and
  SpecDrum audio interfaces.
* Emulation of the DivIDE, DivMMC, Spectrum +3e, ZXATASP, ZXCF and ZXMMC
  storage interfaces.
* Emulation of the Beta 128, +D, Didaktik 80/40, DISCiPLE and Opus Discovery
  disk interfaces.
* Emulation of the Spectranet and SpeccyBoot network interfaces.
* Emulation of the TTX2000 S Teletext adapter.
* Support for the Recreated ZX Spectrum Bluetooth keyboard.

Help! <xyz> doesn't work
------------------------

If you're having a problem using/running/building Fuse, the two places
you're most likely to get help are the development mailing list
<fuse-emulator-devel@lists.sf.net> or the official forums at
<https://sourceforge.net/p/fuse-emulator/discussion/>.

What you'll need to run Fuse
----------------------------

Unix, Linux, BSD, etc.

Required:

* X, SDL2 or framebuffer support. If you have GTK, you'll get
  a (much) nicer user interface under X.
* libspectrum: this is available from
  https://fuse-emulator.sourceforge.net/libspectrum.php

Optional:

* Other libraries will give you some extended functionality:
  * libgcrypt: the ability to digitally sign input recordings (note that
    Fuse requires version 1.1.42 or later).
  * libpng: the ability to save screenshots
  * libxml2: the ability to load and save Fuse's current configuration
  * zlib: support for compressed RZX files

If you've used Fuse prior to version 0.5.0, note that the external
utilities (tzxlist, etc) are now available separately from Fuse
itself. See https://fuse-emulator.sourceforge.net/ for details.

macOS

* Either the native port by Fredrick Meunier, or the original version
  will compile on macOS 14.4 (Panther) or later.
* Use clang; historical gcc-llvm-4.2.1 fails to correctly compile z80_ops.c.

Windows

* The Win32 and SDL2 UIs can be used under Windows.
* pthreads-win32 library will give the ability to use posix threads, needed by
  some peripherals.

Building Fuse
-------------

See the file `INSTALL' for more detailed information.

Closing comments
----------------

Fuse has its own home page, which you can find at:

https://fuse-emulator.sourceforge.net/

and contains much of the information listed here. 

News of new versions of Fuse (and other important Fuse-related
announcements) are distributed via the fuse-emulator-announce mailing
list on SourceForge; see
https://lists.sourceforge.net/lists/listinfo/fuse-emulator-announce
for details on how to subscribe and the like.

If you've got any bug reports, suggestions or the like for Fuse, or
just want to get involved in the development, this is coordinated via
the fuse-emulator-devel mailing list,
https://lists.sourceforge.net/lists/listinfo/fuse-emulator-devel
and the Fuse project page on SourceForge,
https://sourceforge.net/projects/fuse-emulator/

Maintainer release notes are in `hacking/releasing.md'.

For Spectrum discussions not directly related to Fuse, visit either the
Usenet newsgroup `comp.sys.sinclair' or the World of Spectrum forums
<http://www.worldofspectrum.org/forums/>.

Philip Kendall <philip-fuse@shadowmagic.org.uk>
25th October, 2026