Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
ec49e31
Add some more ChangeLog entries for the next release
fmeunier May 7, 2026
22b24ef
Close SDL2 fullscreen mode audit issue
fmeunier May 9, 2026
45ac256
Use SDL2 desktop fullscreen by default
fmeunier May 9, 2026
f19b845
Switch SDL2 fullscreen to desktop presentation
fmeunier May 10, 2026
aa48049
Use bilinear scaling in SDL 2 fullscreen (thanks, Alberto Garcia)
fmeunier May 11, 2026
ba5e7b0
Avoid visible fullscreen startup window recreation in SDL2
fmeunier May 11, 2026
8e81202
Reuse window across display mode changes in SDL2 (Alberto Garcia)
fmeunier May 12, 2026
ec2888f
Preserve fitting scaler in SDL2 fullscreen
fmeunier May 12, 2026
0aaf4b2
Model SDL2 fullscreen scaler transitions explicitly
fmeunier May 12, 2026
f6a4fcd
Updates for a "1.8.0" version
fmeunier May 13, 2026
98ffba1
Correct upload-artefact to refer to the latest version v7
fmeunier May 13, 2026
e21ad54
Fix Windows link failure in sdl2scalerstatetest
fmeunier May 13, 2026
e0714f3
Ship the AppStream metainfo file in the tarballs
bertogg May 13, 2026
1803847
Fix out-of-tree builds by using bare filenames in #includes
bertogg May 13, 2026
e65abf8
Various Windows release fixes
fmeunier May 13, 2026
1a9340e
Ensure that the roms are available when running the unit tests
bertogg May 13, 2026
897d9d3
Make xpixmaps.c generation deterministic
bertogg May 13, 2026
7c2b394
Add missing version number update
fmeunier May 13, 2026
415167b
Merge /u/bertogg/fuse-emulator/ branch misc-1_8_0-fixes into master
May 13, 2026
8a3f91e
Merge tag 'fuse-1.8.0'
morozov May 21, 2026
d181e6c
Merge remote-tracking branch 'origin/master' into merge/fuse-1.8.0
desertkun May 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .beads/issues.jsonl

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ tags
/ui/xlib/xpixmaps.c
/unittests/displaytest
/unittests/sdl2displaytest
/unittests/sdl2scalerstatetest
/unittests/sdl2joysticktest
/unittests/sdl2mousetest
/ylwrap
Expand Down
27 changes: 25 additions & 2 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
2026-??-?? Philip Kendall <philip-fuse@shadowmagic.org.uk>
2026-05-11 Fredrick Meunier <fredm@spamcop.net>

* Fuse 1.x.x released.
* Fuse 1.8.0 released.

* New features:
* Add SDL 2 compatibility (thanks, Gergely Szasz, Vitaly Greck,
Expand All @@ -10,6 +10,9 @@
* UI improvements:
* Make 2x the default display scaler so Fuse is more usable on
modern screens (Fredrick Meunier).
* GTK UI: Fix loading binary data from deleted files (thanks, Crisis)
* Expand queued redraw areas to avoid redraw seams in GTK3 (fixes
bug #516) (Fredrick Meunier).

* Emulation core improvements:
* Speed up display dirty-bit scanning with __builtin_ctz (Fredrick
Expand All @@ -19,6 +22,8 @@
* Remove $-prefixed hex digit syntax from the debugger to prevent
clashes with variables (fixes bug #407) (thanks, Gergely Szasz and
Sergio Baldoví).
* Fix missing bit number in DD/FD CB disassembly (fixes bug #515)
(Cesar Hernandez).

* Deprecated features removed:
* Remove GTK2 support from the build and codebase (Derek Fountain).
Expand All @@ -37,12 +42,30 @@
* Add an AppStream metainfo file (Alberto Garcia).
* Document the profiler menu options (fixes bug #303) (Fredrick
Meunier).
* Store the configuration file in the XDG configuration directory,
with fallback to ~/.fuserc for reading (patches #443) (Alberto
Garcia).
* Document new location of the configuration file (Sergio Baldoví).
* Rename ui/gtk to ui/gtk3 (Derek Fountain).
* Use the macros provided by gtk/glib to disable deprecation
warnings (Alberto Garcia).
* Add menu_data.ui to the GTK3 GResource file (Alberto Garcia).
* Remove UTILS_AUXILIARY_GTK as the GTK build no longer needs
external auxiliary files (Alberto Garcia).
* Distribute ui/widget/fuse.font in the SDL2 build for Windows
(Sergio Baldoví).

* Testing improvements:
* Add unit tests for display rendering and dirty-region handling
(Philip Kendall and Fredrick Meunier).
* Expand unit test coverage for bitmap operations, mempool_strdup and
utils_safe_strdup edge cases (Fredrick Meunier).
* Add GitHub Actions libspectrum workflows and Windows release
packaging (Fredrick Meunier).
* Add ED-prefix disassembler coverage (Fredrick Meunier).
* Extend disassembler coverage for FD CB and negative offsets
(Fredrick Meunier).
* Add BIT/RES/SET disassembler regression tests (Fredrick Meunier).

* Various other minor bugfixes.

Expand Down
4 changes: 3 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -227,9 +227,11 @@ include ui/xlib/Makefile.am
include unittests/Makefile.am
include z80/Makefile.am

check-local: fuse unittests/displaytest unittests/sdl2displaytest unittests/sdl2joysticktest unittests/sdl2mousetest
check-local: fuse unittests/displaytest unittests/sdl2displaytest unittests/sdl2scalerstatetest unittests/sdl2joysticktest unittests/sdl2mousetest
@test -e $(top_builddir)/roms || ln -sf "$(abs_top_srcdir)/roms" $(top_builddir)/roms
$(top_builddir)/fuse --unittests
$(top_builddir)/unittests/displaytest
$(top_builddir)/unittests/sdl2displaytest
$(top_builddir)/unittests/sdl2scalerstatetest
$(top_builddir)/unittests/sdl2joysticktest
$(top_builddir)/unittests/sdl2mousetest
4 changes: 2 additions & 2 deletions README
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
The Free Unix Spectrum Emulator (Fuse) 1.7.0
The Free Unix Spectrum Emulator (Fuse) 1.8.0
============================================

Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat
Expand Down Expand Up @@ -114,4 +114,4 @@ Usenet newsgroup `comp.sys.sinclair' or the World of Spectrum forums
<http://www.worldofspectrum.org/forums/>.

Philip Kendall <philip-fuse@shadowmagic.org.uk>
10th March, 2026
11th May, 2026
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ dnl E-mail: philip-fuse@shadowmagic.org.uk

dnl Package version (user-visible: tarballs, fuse --version, NSIS text).
dnl Keep README, man/fuse.1 (.TH third field), metainfo.xml, and fusepb MARKETING_VERSION in sync.
m4_define([fuse_version], [1.7.0-fusex-0.1])
m4_define([fuse_version], [1.8.0-fusex-0.1])

dnl Win32 FILEVERSION / NSIS VIProductVersion require four integers only; map fusex-0.1 -> fourth field 1.
m4_define([fuse_major_version], [1])
m4_define([fuse_minor_version], [7])
m4_define([fuse_minor_version], [8])
m4_define([fuse_micro_version], [0])
m4_define([fuse_nano_version], [1])
m4_define([fuse_full_version], [fuse_major_version.fuse_minor_version.fuse_micro_version.fuse_nano_version])
Expand Down
1 change: 1 addition & 0 deletions data/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ endif

EXTRA_DIST += \
data/net.sourceforge.fuse_emulator.Fuse.desktop.in \
data/net.sourceforge.fuse_emulator.Fuse.metainfo.xml \
data/fuse.xml.in \
data/shell-completion/diff_options.sh \
data/win32/fuse.manifest.in \
Expand Down
14 changes: 14 additions & 0 deletions data/net.sourceforge.fuse_emulator.Fuse.metainfo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,20 @@
</ul>
</description>
</release>
<release date="2026-05-11" version="1.8.0">
<description>
<ul>
<li>Added SDL 2 compatibility</li>
<li>2× display scaler is now the default for better usability on modern screens</li>
<li>GTK2 support removed</li>
<li>Improved display rendering performance</li>
<li>Fixed redraw seams in GTK3</li>
<li>Debugger: removed $-prefixed hex digit syntax</li>
<li>Debugger: fixed missing bit number in DD/FD CB disassembly</li>
<li>Various compiler warning fixes and build improvements</li>
</ul>
</description>
</release>
<release date="2026-03-24" version="1.7.0">
<description>
<ul>
Expand Down
20 changes: 20 additions & 0 deletions data/win32/3rd-party/SDL2-LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Simple DirectMedia Layer 2 (SDL2)
Copyright (C) 1997-2026 Sam Lantinga <slouken@libsdl.org>

This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.
149 changes: 149 additions & 0 deletions data/win32/LICENSES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Fuse - the Free Unix Spectrum Emulator
Upstream-Contact: fuse-emulator-devel@lists.sourceforge.net
Source: https://sourceforge.net/projects/fuse-emulator/

Files: *
Copyright: 1999-2026 Philip Kendall and others
License: GPL-2+
The complete text of the license can be found in the file COPYING.txt
Comment:
See the AUTHORS.txt file for details on other contributors.
.
Files are assumed to be under the same license terms as the application
as a whole unless otherwise explicitly stated in the file.
.
This program is built using MinGW-w64 together with additional runtime
libraries from the Windows CI environment. The corresponding third-party
notices copied into the package are stored in the 3rd-party directory.

Files: libspectrum-*.dll
Copyright: 1999-2026 Philip Kendall and others
License: GPL-2+
The complete text of the license can be found in COPYING.txt.
Additional third-party notices, when present, can be found in the
3rd-party directory.

Files: libgcc_s_sjlj-1.dll libstdc++-6.dll
Copyright: 1987-2026 Free Software Foundation, Inc.
License: GPL-3+ and GCC-Runtime-Library-Exception-3.1
The corresponding notices copied from the build environment can be found in
the 3rd-party directory.

Files: libwinpthread-1.dll
Copyright: 2011-2026 mingw-w64 project
License: MIT
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: libgpg-error-0.dll
Copyright: 2003-2026 g10 Code GmbH
License: LGPL-2.1+
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: libgcrypt-20.dll
Copyright: 1989-2026 Free Software Foundation, Inc.
2012-2026 g10 Code GmbH
License: LGPL-2.1+
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: libpng16-16.dll
Copyright: 1995-2026 The PNG Reference Library Authors
License: libpng
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: zlib1.dll
Copyright: 1995-2026 Jean-loup Gailly and Mark Adler
License: Zlib
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: libbz2-1.dll
Copyright: 1996-2026 Julian R Seward and others
License: BSD-style
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: libaudiofile-1.dll
Copyright: 1998-2026 audiofile contributors
License: LGPL-2.1+
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: libFLAC-8.dll
Copyright: 2000-2026 Josh Coalson and Xiph.Org Foundation
License: BSD-style
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: libOGG-0.dll
Copyright: 2002-2026 Xiph.Org Foundation
License: BSD-style
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: libxml2-2.dll
Copyright: 1998-2026 Daniel Veillard and others
License: MIT
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: iconv.dll
Copyright: 1999-2026 Free Software Foundation, Inc.
License: LGPL-2.1+
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: liblzma-5.dll
Copyright: 2009-2026 Tukaani Project and contributors
License: public-domain and LGPL-2.1+
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: SDL.dll
Copyright: 1997-2026 Sam Lantinga and SDL contributors
License: LGPL-2.1+
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: SDL2.dll
Copyright: 1997-2026 Sam Lantinga and SDL contributors
License: Zlib
The corresponding notice copied from the build environment can be found in
the 3rd-party directory.

Files: roms\{128-?.rom,48.rom,plus2-?.rom,plus3-?.rom,tc2048.rom}
Copyright: Amstrad
License: distribution-allowed
See roms\README.copyright for further information.

Files: roms\{disciple.rom,plusd.rom}
Copyright: Datel Microelectronics
License: distribution-allowed
See roms\README.copyright for further information.

Files: roms\plus3e-?.rom
Copyright: Amstrad and Garry Lancaster
License: distribution-allowed
See roms\README.copyright for further information.

Files: roms\se-?.rom
Copyright: 1999-2013 Andrew Owen
1989-1990 BetaSoft
1981 Nine Tiles Networks Ltd
License: GPL-2+
The complete text of the license can be found in COPYING.txt.
See roms\README.copyright for further information.

Files: roms\speccyboot-1.4.rom
Copyright: 2009 Patrick Persson
License: MIT
See roms\README.copyright for further information.

Files: roms\tc2048-?.rom roms\tc2068-?.rom
Copyright: Amstrad and Timex
License: distribution-allowed
See roms\README.copyright for further information.
40 changes: 40 additions & 0 deletions data/win32/README-win32.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Fuse for Windows
================

This is a binary distribution of Fuse (the Free Unix Spectrum Emulator) for
Windows. For an introduction to Fuse, see README.txt. For more detailed
documentation, read fuse.html.

Requirements
------------

A supported 32-bit or 64-bit Windows system for the bundled 32-bit build.

Libraries
---------

These binaries are built with the MinGW/Cygwin packages used by the current
Windows CI workflow. Depending on the selected UI and enabled features, the
package may include DLLs from these components:

audiofile
bzip2
libFLAC
libgcrypt
libgpg-error
libOGG
libpng
libspectrum
libstdc++
libxml2
win-iconv
winpthreads
xz / liblzma
zlib
SDL
SDL2

See LICENSES.txt for copyright and license details.

For more detailed documentation, browse:
https://sourceforge.net/p/fuse-emulator/wiki/Building%20Fuse%20on%20Windows%20with%20Cygwin/
22 changes: 16 additions & 6 deletions data/win32/distribution.mk
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,34 @@ install-win32: all
test -n "$(DESTDIR)" || { echo "ERROR: set DESTDIR path"; exit 1; }
$(MKDIR_P) $(DESTDIR)/roms/ || exit 1
$(MKDIR_P) $(DESTDIR)/lib/ || exit 1
case "$(UI)" in \
sdl|sdl2) \
$(MKDIR_P) $(DESTDIR)/ui/widget/ || exit 1; \
cp $(top_builddir)/ui/widget/fuse.font $(DESTDIR)/ui/widget \
;; \
esac
$(MKDIR_P) $(DESTDIR)/3rd-party/ || exit 1
test "$(UI)" != "sdl" -a "$(UI)" != "sdl2" || $(MKDIR_P) $(DESTDIR)/ui/widget/ || exit 1
cp $(top_srcdir)/roms/*.rom $(DESTDIR)/roms
cp $(top_srcdir)/roms/README.copyright $(DESTDIR)/roms
cp $(top_srcdir)/lib/*.bmp $(DESTDIR)/lib
cp $(top_srcdir)/lib/*.png $(DESTDIR)/lib
cp $(top_srcdir)/lib/*.scr $(DESTDIR)/lib
test "$(UI)" != "sdl" -a "$(UI)" != "sdl2" || cp $(top_builddir)/ui/widget/fuse.font $(DESTDIR)/ui/widget
# Copy fuse executable (we should manually copy the required libraries)
cp $(top_builddir)/.libs/fuse$(EXEEXT) $(DESTDIR) || \
cp $(top_builddir)/fuse$(EXEEXT) $(DESTDIR)
# Get text files
for file in AUTHORS ChangeLog COPYING README; \
do cp "$(top_srcdir)/$$file" "$(DESTDIR)/$$file.txt"; \
done
cp "$(top_srcdir)/data/win32/README-win32.txt" "$(DESTDIR)/README-win32.txt"
cp "$(top_srcdir)/data/win32/LICENSES.txt" "$(DESTDIR)/LICENSES.txt"
@has_sdl=no; \
has_sdl2=no; \
test -f "$(DESTDIR)/SDL.dll" && has_sdl=yes; \
test -f "$(DESTDIR)/SDL2.dll" && has_sdl2=yes; \
awk -v has_sdl="$$has_sdl" -v has_sdl2="$$has_sdl2" '\
/^Files: SDL\.dll$$/ { skip = ( has_sdl != "yes" ); } \
/^Files: SDL2\.dll$$/ { skip = ( has_sdl2 != "yes" ); } \
/^Files: / && $$0 != "Files: SDL.dll" && $$0 != "Files: SDL2.dll" { skip = 0; } \
!skip { print }' \
"$(DESTDIR)/LICENSES.txt" > "$(DESTDIR)/LICENSES.txt.tmp" && \
mv "$(DESTDIR)/LICENSES.txt.tmp" "$(DESTDIR)/LICENSES.txt"
# Get manuals
if test -n "$(GROFF)"; then \
sed ':a;N;$$!ba;s/\.PP\n\.TS/\.bp\n&/g' $(top_srcdir)/man/fuse.1 | \
Expand Down
Loading
Loading