Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
d36545d
Added support for loading .S snapshot files (D40's snapshots when ex…
arki55 Nov 9, 2022
c5e6e61
Arki55 T6 - Describing file format in options.dat
arki55 Dec 17, 2022
2effbd6
More accurate emulation of AM29F010B flash ROM.
ZXGuesser Sep 21, 2022
382e41a
build: Supporting bash script for github workflows, used to verify if…
arki55 Feb 5, 2023
ef43aa1
arki55 / T9-github-build-checks
arki55 Feb 5, 2023
0c515b4
fix: Wrong branch name, was missing bash script
arki55 Feb 5, 2023
58ac76a
fix: Updated in_config.sh as it should be, Checking that a message is…
arki55 Feb 5, 2023
089c82c
Arki55/features/t9 GitHub build checks fuse App ==> arki55/github-w…
arki55 Mar 5, 2023
3183073
Arki55/features/t9 GitHub build checks fuse ==> arki55/github-workflo…
arki55 Mar 8, 2023
f25b134
Merge /u/arki55/fuse/ branch arki55/github-workflows into master
Mar 19, 2023
844574d
Merge /u/arki55/fuse/ branch arki55/features/T6-options-dat-descripti…
Mar 19, 2023
dad3ee2
Suppress maximizing on win32 UI
arki55 Apr 4, 2023
53f2658
Fixed handling of multiple monitors on win32 UI
arki55 Apr 13, 2023
10d667d
feat: Move sound peripherals into its own menu "Peripherals/Sound"
arki55 Apr 27, 2023
69793e3
fix: Update cross-compiling for WII
arki55 May 3, 2023
dbd89b5
Merge request #12: support for loading .S snapshot files
sbaldovi May 4, 2023
93c6cd5
feat: Added build definition for SDL 1 UI + Sound on Windows
arki55 May 16, 2023
8dade2e
Merge request #22: Fix cross-compiling for WII
sbaldovi May 18, 2023
e3abbdf
Merge request #23: Add GitHub workflow for SDL 1 UI + sound
sbaldovi May 18, 2023
1b3d133
Replace obsolete autoconf macros
sbaldovi Jun 3, 2023
9f55934
Rename 'icon' to 'generic-icon' in the mime-info file
bertogg Jun 3, 2023
adf05c4
Remove mime types for img/raw/rom files
sbaldovi Jun 10, 2023
69a847a
Merge request #20: Move sound peripherals into its own menu
sbaldovi Jun 10, 2023
2ff7ebb
Document Sound Peripherals Options dialog
sbaldovi Jun 10, 2023
81efcbc
Reset machine when enabling/disabling a sound peripheral
sbaldovi Jun 11, 2023
e09eeec
Initial support for Currah uSpeech peripheral
sdbrady Jul 11, 2023
8fd7451
Add UI elements to manage SP0256 ROM file location
Jul 19, 2023
3276880
Enhanced Currah uSpeech paging logic:
Jul 19, 2023
a263ed4
Enable snapshot support for Currah uSpeech
Jul 19, 2023
b5830f3
Document SP0256 ROM option and uSpeech memory source
sbaldovi Jul 19, 2023
4ac1289
Fix ROM entries order in menu.c
Jul 21, 2023
47275ac
Do ZX Spectrum ROM inaccessible while uSpeech is paged
sbaldovi Jul 21, 2023
165e303
CI: TEST-BUILD and Nightly Build GitHub workflows
arki55 Jul 25, 2023
06039b5
ci: Remove unused workflow file
arki55 Jul 25, 2023
2324c3d
Add memory address mirroring and more I/O ports to uSpeech
sbaldovi Aug 5, 2023
4b1a7e6
ci: Daily test (pre)release as new release with date+time, dropping o…
arki55 Aug 7, 2023
7718c3a
Merge request #25: GitHub test and nightly builds
sbaldovi Aug 21, 2023
adc0759
Fix audio glitches in SP0256 samples
sbaldovi Aug 28, 2023
8813734
Update SP0256 code from upstream
sbaldovi Aug 30, 2023
a92e319
Beautify uSpeech code with uncrustify
sbaldovi Aug 30, 2023
efffc40
Document uSpeech volume option
sbaldovi Aug 30, 2023
1bb5a4c
Add uSpeech page/unpage events to debugger
sbaldovi Sep 19, 2023
bd36f29
Limit uSpeech to 48K machines
sbaldovi Sep 19, 2023
404a9b5
uSpeech intonation changes SP0256 clock frequency
sbaldovi Sep 26, 2023
0302d3b
Avoid the use of 64-bit integers
sbaldovi Sep 26, 2023
bd5c569
Disable debugging macros
sbaldovi Sep 26, 2023
bf896c0
Declare missing function prototypes and unused parameters
sbaldovi Sep 28, 2023
c8f1224
Fusify C99 variable types (we are still C89)
sbaldovi Oct 1, 2023
03924f6
Document sp0256 ROM
sbaldovi Oct 1, 2023
7d00e36
List Currah uSpeech as a supported peripheral
sbaldovi Oct 8, 2023
c80f3d9
Merge branch 'patches-142-currah-uspeech'
sbaldovi Oct 8, 2023
eacc100
Group empty memory mapping of Spectrum 16K on debugger
sbaldovi Oct 8, 2023
f804695
Distribute sp0256.h and uspeech.h in source tarballs
sbaldovi Oct 8, 2023
ce0a650
Fix SCAN bug in uPD765 FDC
szaszg Oct 21, 2023
84f7feb
Add debugging info in uPD765 FDC
szaszg Oct 21, 2023
3af9c32
Pad disk tracks to length multiple of 256 bytes
szaszg Nov 1, 2023
d789c00
Treat special "Stored data length" in EDSK images
szaszg Nov 4, 2023
edac608
Allow to merge disk sides with different bpt
szaszg Nov 4, 2023
51f4e27
Allow to load unformatted EDSK disk images
szaszg Nov 4, 2023
54bb531
Bug 504 - avoid overflow in event_add_cmp
petemoore Jan 20, 2024
03bee5e
Cap tstates of timer event to (further) prevent segfault.
pak21 Jan 24, 2024
d9dc145
Remove use of deprecated `gdk_keymap_get_default` function.
pak21 Feb 18, 2024
256bd78
Protect against desynchronized packet streams, and fast forward buffe…
ZXGuesser Apr 6, 2024
52da915
move FIONREAD probe to compat function
ZXGuesser Jun 30, 2024
8fd925c
Merge request #30: improve the teletext datastream code
sbaldovi Jul 6, 2024
5143897
Use PNG instead of XPM for the icons in the GTK UI
bertogg Oct 11, 2024
9b8343b
Don't leak tape_marker_pixbuf when the tape browser is closed
bertogg Oct 11, 2024
8f11027
Remove GTK names for XPM icons used in Xlib UI
sbaldovi Oct 19, 2024
e65a7bb
Suppress a -Wmisleading-indentation warning from GCC in Xlib UI
sbaldovi Oct 19, 2024
039d7db
Keep only the mime types for the most common formats
bertogg Oct 5, 2024
cf5f29e
Updates for next version
fmeunier Mar 8, 2026
396039a
Add missing include in ui/uijoystick.c (patch #445) (Viorel).
fmeunier Mar 8, 2026
4691257
Update dates for next release.
fmeunier Mar 10, 2026
2cc00a7
Updates for a "1.7.0" version
fmeunier Mar 10, 2026
e550d79
Ignore .grepai directory
fmeunier Mar 10, 2026
b1ed033
Fuse depends on libspectrum 1.6.0 for uSpeech and .S support
fmeunier Mar 10, 2026
d936529
Raise W5100 CON and DISCON socket interrupts on state transitions
fmeunier Mar 15, 2026
3b138af
Update dates for 1.7.0 release
fmeunier Mar 20, 2026
d30cd15
Fix minor version and dates
fmeunier Mar 20, 2026
d20d052
Remove GTK2 from the build.
Mar 24, 2026
4377e2b
Remove conditional GTK2 sections from the code.
Mar 24, 2026
276955f
GTK2 removal cleanups.
Mar 24, 2026
b9ce7d3
Add back in the gtk3=yes flag, it was missing from the summary
Mar 24, 2026
404e45b
Suppress GTK compilation warnings.
Mar 25, 2026
dc8bb80
Compile warnings cleanup
Mar 25, 2026
ee4be00
One more compile warning
Mar 25, 2026
ce5dbbb
Correct libspectrum DLL version (thanks, Guesser)
fmeunier Mar 26, 2026
4246cd3
Merge /u/dfzx/fuse-emulator/ branch df-remove-gtk2 into master
Mar 26, 2026
d17c3cd
Remove a couple more GTK2 files
Mar 26, 2026
6ef15e1
Use LIBSPECTRUM_SUPPORTS_WAV to gate wav feaures
fmeunier Mar 27, 2026
1ab5a70
Merge /u/dfzx/fuse-emulator/ branch df-gtk3-cleanups into master
Mar 27, 2026
74187c4
Merge /u/dfzx/fuse-emulator/ branch df-fix-warnings into master
Mar 27, 2026
ff4052e
Avoid common-symbol alignment warnings on macOS
fmeunier Mar 27, 2026
a4a3ddd
Avoid startup abort when Spectranet networking is blocked
fmeunier Mar 28, 2026
9b20041
Set default scaler to 2x
fmeunier Mar 29, 2026
09ca6b1
Mark source .dat files as text for merges
fmeunier Mar 29, 2026
3aecb61
Document the profiler menu options (fixes bug #303)
fmeunier Mar 30, 2026
9a93922
Fix out-of-tree builds by using full paths in generated #includes
fmeunier Mar 30, 2026
0ff7fe6
Add AppStream metainfo file
bertogg Mar 30, 2026
f94cd73
Remove $-prefixed hex digit syntax from the debugger (fixes bug #407)
fmeunier Apr 4, 2026
9370801
Add mempool_strdup and edge-case coverage to unittests
fmeunier Apr 4, 2026
8b7367b
Uncrustify event.c
fmeunier Apr 5, 2026
74b3d01
Add utils_safe_strdup unit test
fmeunier Apr 5, 2026
6de4576
Use __builtin_ctz to speed up display dirty-bit scanning
fmeunier Apr 7, 2026
9841967
Rectangle merge misses same-y overlap when frame skip enabled
fmeunier Apr 7, 2026
a40dfed
Fix same-x overlap miss in x-dimension merge
fmeunier Apr 9, 2026
6b98f41
Bump actions/checkout@v3 to v4
fmeunier Apr 9, 2026
d295569
Add bitmap_ops_test to cover bitmap.h bit manipulation
fmeunier Apr 10, 2026
44e574a
Initial commit of a display.c unit test code.
pak21 Mar 11, 2017
acf5a67
A first actual test.
pak21 Mar 13, 2017
bee397a
Add a first non-trivial test.
pak21 Mar 16, 2017
4abc180
Add a test for reading from correct x.
pak21 Mar 16, 2017
c0f6555
Tidy up duplicated code and add one more test.
pak21 May 4, 2017
719e1fc
Add test for flashing colours.
pak21 May 4, 2017
b58886d
Add tests for display_dirty_sinclair().
pak21 May 4, 2017
9c2e74b
Improve isolation of display unit tests
fmeunier Apr 10, 2026
dc40286
Move test target to top level Makefile.am
fmeunier Apr 10, 2026
484352d
Add some more ChangeLog entries for the next release
fmeunier Apr 10, 2026
5e64a70
Improve make check: add displaytest
fmeunier Apr 11, 2026
6d4277c
Add mempool_strdup NULL guard
fmeunier Apr 11, 2026
54a5224
Add SDL2 UI
fmeunier Apr 12, 2026
9be1741
Run make check in the null-UI Linux build
fmeunier Apr 12, 2026
62dd4da
Add edge-case coverage to sdl2displaytest
fmeunier Apr 12, 2026
a51a68d
Updare ChangeLog`
fmeunier Apr 13, 2026
18b94af
Run make check in the null-UI macOS build
fmeunier Apr 13, 2026
1f201cd
Add boundary and guard-condition tests for SDL2 joystick and mouse he…
fmeunier Apr 15, 2026
0797793
Add tiebreaker and edge-case tests for sdl2display_compare_mode_info
fmeunier Apr 15, 2026
5197fb6
Rename ui/gtk to ui/gtk3
Mar 27, 2026
197598e
Store the configuration file in the XDG configuration directory
bertogg Apr 17, 2026
9b4c365
Add missing branch coverage for compare_and_merge_rectangles
fmeunier Apr 20, 2026
77ab511
Add coverage for display_write_if_dirty_timex
fmeunier Apr 20, 2026
5196785
Merge /u/bertogg/fuse-emulator/ branch patch-443-use-xdg-config-home-…
Apr 20, 2026
0dbd14e
Use the macros provided by gtk/glib to disable deprecation warnings
bertogg Apr 22, 2026
90a4e48
gtk3: Add menu_data.ui to the GResource file
bertogg Apr 22, 2026
ee67771
Get rid of UTILS_AUXILIARY_GTK
bertogg Apr 22, 2026
761733c
Distribute ui/widget/fuse.font in SDL2 build for Windows
sbaldovi Apr 26, 2026
b6993b5
Add GitHub Actions libspectrum workflows and Windows release packaging
fmeunier Apr 28, 2026
960610d
Document new location of the configuration file
sbaldovi Apr 28, 2026
bbc28dd
Fix missing bit number in DD/FD CB disassembly
fmeunier Apr 29, 2026
e86746c
Use BIT helpers in DD/FD CB disassembly
fmeunier May 1, 2026
9a56b2e
Add BIT/RES/SET disassembler regression tests
fmeunier May 2, 2026
fda3970
Add coverage for display_dirty_flashing_sinclair
fmeunier May 2, 2026
1844814
Add coverage for display_write_if_dirty_pentagon_16_col
github-actions[bot] Apr 18, 2026
ad44dad
Expand queued redraw areas to avoid redraw seams in GTK3 (fixes bug #…
fmeunier May 3, 2026
0b4c6dd
Align upload-artifact to v8 across all workflows
fmeunier May 4, 2026
ff0bb0e
Extend disassembler coverage for FD CB and negative offsets
fmeunier May 4, 2026
87954ef
Add coverage for display_dirty_flashing_timex
fmeunier May 4, 2026
ffa4f49
Print expected vs actual in failing disassembler tests
fmeunier May 5, 2026
07d6bba
Add ED-prefix disassembler coverage
fmeunier May 5, 2026
8376de5
Merge remote-tracking branch 'upstream-main/master' into feature/merg…
desertkun May 6, 2026
f639e87
Post-merge patches (conflict resolution)
desertkun May 6, 2026
0f6feb6
Remove github workflows
desertkun May 6, 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
39 changes: 39 additions & 0 deletions .beads/issues.jsonl

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/settings.dat text
/menu_data.dat text
/keysyms.dat text
/ui/options.dat text
/z80/*.dat text
21 changes: 14 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
*.swp
*.orig
.DS_Store
.grepai
.vscode
/aclocal.m4
/autom4te.cache
Expand All @@ -15,8 +16,8 @@
/config.sub
/configure
/cscope.out
/data/fuse.desktop
/data/fuse.xml
/data/net.sourceforge.fuse_emulator.Fuse.desktop
/data/shell-completion/bash.txt
/data/shell-completion/man.txt
/data/shell-completion/settings.txt
Expand Down Expand Up @@ -70,12 +71,14 @@
/stamp-h.in
tags
/ui/fb/keysyms.c
/ui/gtk/keysyms.c
/ui/gtk/menu_data.c
/ui/gtk/menu_data.ui
/ui/gtk/options.c
/ui/gtk/options.h
/ui/gtk/options_internals.h
/ui/gtk3/keysyms.c
/ui/gtk3/menu_data.c
/ui/gtk3/menu_data.ui
/ui/gtk3/options.c
/ui/gtk3/options.h
/ui/gtk3/options_internals.h
/ui/gtk3/resources.c
/ui/gtk3/resources.h
/ui/null/options.c
/ui/sdl/keysyms.c
/ui/widget/fuse.font
Expand All @@ -93,6 +96,10 @@ tags
/ui/win32/options.rc
/ui/xlib/keysyms.c
/ui/xlib/xpixmaps.c
/unittests/displaytest
/unittests/sdl2displaytest
/unittests/sdl2joysticktest
/unittests/sdl2mousetest
/ylwrap
/z80/coretest
/z80/coretest.exe
Expand Down
2 changes: 1 addition & 1 deletion 3rdparty/libspectrum
Submodule libspectrum updated 60 files
+8 −0 .github/scripts/in_config.sh
+120 −0 .github/workflows/build_linux.yml
+174 −0 .github/workflows/build_linux_sub.yml
+56 −0 .github/workflows/build_macos.yml
+177 −0 .github/workflows/build_macos_sub.yml
+18 −0 .github/workflows/build_wii.yml
+180 −0 .github/workflows/build_wii_sub.yml
+56 −0 .github/workflows/build_windows.yml
+239 −0 .github/workflows/build_windows_sub.yml
+7 −0 .gitignore
+37 −2 ChangeLog
+19 −6 Makefile.am
+9 −6 README
+1 −1 accessor.pl
+15 −15 buffer.c
+127 −12 configure.ac
+7 −10 creator.c
+2 −2 crypto.c
+1 −4 dck.c
+1 −1 doc/Makefile.am
+43 −2 doc/libspectrum.3
+196 −49 doc/libspectrum.txt
+504 −0 dsnap.c
+1 −3 ide.c
+10 −3 internals.h
+5 −3 libspectrum.c
+11 −7 libspectrum.h.in
+2 −1 libspectrum.pc.in
+7 −9 m4/audiofile.m4
+220 −91 m4/pkg.m4
+11 −4 make-perl.c
+1 −1 microdrive.c
+1 −1 myglib/ghash.c
+4 −4 myglib/glock.c
+1 −1 myglib/gslist.c
+4 −4 pzx_read.c
+1 −6 rzx.c
+6 −2 sna.c
+5 −1 snap_accessors.txt
+8 −1 snapshot.c
+59 −5 szx.c
+5 −5 tape.c
+2 −2 tape_accessors.pl
+1 −1 tape_block.c
+2 −2 tape_set.pl
+21 −4 test/Makefile.am
+ test/pzx-archive-info-tags.pzx
+84 −24 test/szx.c
+1,983 −11 test/test.c
+1 −0 test/test.h
+5 −5 test/test_edges.c
+54 −0 test/wav-fixtures.pl
+1 −1 utilities.c
+60 −103 wav.c
+141 −0 wav_audiofile.c
+20 −0 wav_internals.h
+209 −0 wav_macos.c
+5 −1 z80.c
+5 −5 zip.c
+1 −1 zip.h
99 changes: 97 additions & 2 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,9 +1,81 @@
2021-??-?? Philip Kendall <philip-fuse@shadowmagic.org.uk>
2026-??-?? Philip Kendall <philip-fuse@shadowmagic.org.uk>

* Fuse 1.?.? released.
* Fuse 1.x.x released.

* New features:
* Add SDL 2 compatibility (thanks, Gergely Szasz, Vitaly Greck,
Marc Serdeliuc, Sergio Baldoví and Alberto Garcia)
(Fredrick Meunier)

* UI improvements:
* Make 2x the default display scaler so Fuse is more usable on
modern screens (Fredrick Meunier).

* Emulation core improvements:
* Speed up display dirty-bit scanning with __builtin_ctz (Fredrick
Meunier).

* Debugger improvements:
* Remove $-prefixed hex digit syntax from the debugger to prevent
clashes with variables (fixes bug #407) (thanks, Gergely Szasz and
Sergio Baldoví).

* Deprecated features removed:
* Remove GTK2 support from the build and codebase (Derek Fountain).

* Miscellaneous improvements:
* Win32: don't abort startup if networking is blocked; instead,
disable Spectranet with a warning (Fredrick Meunier).
* Use LIBSPECTRUM_SUPPORTS_WAV to gate WAV support (Fredrick
Meunier).
* Correct libspectrum DLL version (thanks, Guesser) (Fredrick
Meunier).
* Suppress or fix various compiler warnings, including common-symbol
alignment warnings on macOS (Derek Fountain and Fredrick Meunier).
* Fix out-of-tree builds by using full paths in generated #includes
(Alberto Garcia).
* Add an AppStream metainfo file (Alberto Garcia).
* Document the profiler menu options (fixes bug #303) (Fredrick
Meunier).

* 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).

* Various other minor bugfixes.

2026-03-21 Philip Kendall <philip-fuse@shadowmagic.org.uk>

* Fuse 1.7.0 released.

* New features:
* Add Currah µSpeech emulation (Stuart Brady, Vic Chwe and Sergio
Baldoví).

* Emulation core improvements:
* Speed up reading emulated memory locations (Jindřich Makovička).
* More accurate emulation of AM29F010B flash ROM (Guesser).
* EDSK disk images: allow loading unformatted disk images (fixes
bug #455) (Gergely Szasz).
* EDSK disk images: allow merging disk sides with different bytes
per track (fixes bug #454) (Gergely Szasz).
* EDSK disk images: handle special "Stored data length" extension
per Simon Owen's spec, fixing load of Cabal, NARC and Robin of
Sherlock (fixes bug #452) (Gergely Szasz).
* EDSK disk images: pad disk tracks to a multiple of 256 bytes,
fixing Action Countdown, Discology +3, Genial, Gonzzalezz, SP5
and Trigger (Lightgun) (fixes bug #451) (Gergely Szasz).
* Fix SCAN bug in uPD765 FDC, allowing formatting on CP/M Plus and
Fuzix (fixes bug #453) (thanks, Phil Reynolds and Vic Chwe)
(Gergely Szasz).
* TTX2000S: improve teletext datastream code; protect against
desynchronised packet streams and fast-forward buffer after
emulation is paused (Guesser and Sergio Baldoví).
* Spectranet: raise W5100 CON and DISCON socket interrupts on state
transitions, fixing delayed connect/disconnect detection in BASIC
channels/streams (fixes bug #513) (Guesser).

* UI improvements:
* Timex: don't abort if the Timex dock cartridge image is not
Expand All @@ -12,9 +84,32 @@
(Gergely Szasz).
* GTK UI: Fix loading binary data from deleted files (thanks, Crisis)
(Sergio Baldoví).
* GTK UI: use PNG instead of XPM for toolbar icons, fixing display
with gdk-pixbuf >= 2.42.11 (fixes bug #509) (Alberto Garcia).
* GTK UI: fix memory leak of tape_marker_pixbuf when the tape
browser is closed (Alberto Garcia).
* GTK UI: remove use of deprecated gdk_keymap_get_default (Philip
Kendall).
* Move sound peripherals into their own "Peripherals/Sound" menu
(Miroslav Ďurčík and Sergio Baldoví).
* Win32 UI: fix handling of multiple monitors (fixes bug #491)
(Miroslav Ďurčík).
* Win32 UI: suppress unwanted window maximising on title bar
double-click (fixes bug #488) (Miroslav Ďurčík).

* Miscellaneous improvements:
* Add ZIP files to the bash completion script (Alberto Garcia).
* Prevent potential segmentation fault due to overflow when emulation
speed is set very high (Pete Moore).
* Cap tstates of timer event to further prevent segfault (fixes
bug #504) (Pete Moore and Philip Kendall).
* Remove SVGAlib UI (Sergio Baldoví).
* Remove MIME types for obscure and generic file formats, and rename
'icon' to 'generic-icon' in the MIME info file (fixes bug #494)
(Alberto Garcia and Sergio Baldoví).
* Replace obsolete autoconf macros (Sergio Baldoví).
* Add support for loading .S snapshot files (Miroslav Ďurčík).
* Add missing include in ui/uijoystick.c (Viorel).

2021-02-27 Philip Kendall <philip-fuse@shadowmagic.org.uk>

Expand Down
2 changes: 1 addition & 1 deletion INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ PKG_CONFIG_LIBDIR=/usr/local/i686-w64-mingw32/lib/pkgconfig \
--prefix=/usr/local/i686-w64-mingw32
make

Note: you need `libspectrum-9.dll' and the `roms' directory and the `lib'
Note: you need `libspectrum-18.dll' and the `roms' directory and the `lib'
directory to `fuse' run perfectly. You may copy this file and directories
into that directory where `fuse.exe' exists. On Windows you may need to
copy all files from `lib/uncompressed' into `lib'. Alternatively, you could
Expand Down
37 changes: 29 additions & 8 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 1999-2015 Philip Kendall
## Copyright (c) 1999-2017 Philip Kendall

## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -65,8 +65,12 @@ fuse_LDADD = \
$(X_LIBS) \
$(XML_LIBS)

if USE_SDL
fuse_LDADD += $(SDL_LIBS)
if USE_SDL1
fuse_LDADD += $(SDL1_LIBS)
endif

if USE_SDL2
fuse_LDADD += $(SDL2_LIBS)
endif

fuse_DEPENDENCIES =
Expand All @@ -92,8 +96,12 @@ AM_CPPFLAGS = \
-DFUSEDATADIR="\"${pkgdatadir}\"" \
$(PNG_CFLAGS)

if USE_SDL
AM_CPPFLAGS += $(SDL_CFLAGS)
if USE_SDL1
AM_CPPFLAGS += $(SDL1_CFLAGS)
endif

if USE_SDL2
AM_CPPFLAGS += $(SDL2_CFLAGS)
endif

AM_CFLAGS = $(WARN_CFLAGS) $(PTHREAD_CFLAGS)
Expand Down Expand Up @@ -140,7 +148,6 @@ EXTRA_DIST = AUTHORS \
m4/ax_create_stdint_h.m4 \
m4/ax_pthread.m4 \
m4/ax_string_strcasecmp.m4 \
m4/gtk-2.0.m4 \
m4/pkg.m4 \
m4/sdl.m4 \
menu_data.dat \
Expand All @@ -157,12 +164,18 @@ DISTCLEANFILES =

pkgdata_DATA =

test: z80/coretest unittests/displaytest
z80/coretest $(srcdir)/z80/tests/tests.in > z80/tests.actual
cmp z80/tests.actual $(srcdir)/z80/tests/tests.expected
./unittests/displaytest


## Resources for Windows executables
if COMPAT_WIN32

fuse_LDFLAGS = -mwindows
fuse_SOURCES += windres.rc
fuse_LDADD += windres.o
fuse_LDADD += -lcomctl32 -lwinmm windres.o
fuse_DEPENDENCIES += windres.o

windres.o: windres.rc data/win32/winfuse.ico data/win32/fuse.manifest $(ui_win32_res)
Expand All @@ -187,13 +200,21 @@ include sound/Makefile.am
include timer/Makefile.am
include ui/Makefile.am
include ui/fb/Makefile.am
include ui/gtk/Makefile.am
include ui/gtk3/Makefile.am
include ui/null/Makefile.am
include ui/scaler/Makefile.am
include ui/sdl/Makefile.am
include ui/sdl2/Makefile.am
include ui/widget/Makefile.am
include ui/wii/Makefile.am
include ui/win32/Makefile.am
include ui/xlib/Makefile.am
include unittests/Makefile.am
include z80/Makefile.am

check-local: fuse unittests/displaytest unittests/sdl2displaytest unittests/sdl2joysticktest unittests/sdl2mousetest
$(top_builddir)/fuse --unittests
$(top_builddir)/unittests/displaytest
$(top_builddir)/unittests/sdl2displaytest
$(top_builddir)/unittests/sdl2joysticktest
$(top_builddir)/unittests/sdl2mousetest
8 changes: 4 additions & 4 deletions README
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
The Free Unix Spectrum Emulator (Fuse) 1.6.0
The Free Unix Spectrum Emulator (Fuse) 1.7.0
============================================

Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat
Expand Down Expand Up @@ -26,8 +26,8 @@ What Fuse does have:
rollback and 'competition mode'.
* Emulation of the Currah µSource, Interface 1, Kempston mouse,
Multiface One/128/3 and TTX2000S interfaces.
* Emulation of the Covox, Fuller audio box, Melodik and SpecDrum audio
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
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>
27th February, 2021
10th March, 2026
17 changes: 9 additions & 8 deletions compat.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* compat.h: various compatibility bits
Copyright (c) 2003-2012 Philip Kendall
Copyright (c) 2015 Stuart Brady
Copyright (c) 2015 Sergio Baldoví
Copyright (c) 2015-2016 Sergio Baldoví

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -117,7 +117,6 @@ typedef enum utils_aux_type {
UTILS_AUXILIARY_LIB, /* Something from the lib/ directory */
UTILS_AUXILIARY_ROM, /* Something from the roms/ directory */
UTILS_AUXILIARY_WIDGET, /* Something from the widget/ directory */
UTILS_AUXILIARY_GTK, /* Something from the gtk/ directory */

} utils_aux_type;

Expand All @@ -133,16 +132,12 @@ typedef struct path_context {
int compat_osname( char *buffer, size_t length );
const char* compat_get_temp_path( void );
const char* compat_get_config_path( void );
const char* compat_get_fallback_config_path( void );
int compat_is_absolute_path( const char *path );
int compat_get_next_path( path_context *ctx );

typedef FILE* compat_fd;

#ifndef GEKKO
typedef DIR* compat_dir;
#else /* #ifndef GEKKO */
typedef DIR_ITER* compat_dir;
#endif /* #ifndef GEKKO */

extern const compat_fd COMPAT_FILE_OPEN_FAILED;

Expand Down Expand Up @@ -184,13 +179,18 @@ int compat_get_tap( const char *interface_name );

#ifdef WIN32
#include <winsock2.h>
#include <ws2tcpip.h>
#define COMPAT_ENOTCONN WSAENOTCONN
#define COMPAT_EWOULDBLOCK WSAEWOULDBLOCK
#define COMPAT_EINPROGRESS WSAEINPROGRESS
#define COMPAT_ECONNREFUSED WSAECONNREFUSED
typedef SOCKET compat_socket_t;
typedef SOCKADDR compat_sockaddr;
#else /* #ifndef WIN32 */
#elif GEKKO
/* no sockets under WII, just define the minimum
to feed the below compat_ declarations */
typedef int compat_socket_t;
#else /* #ifndef WIN32 && GEKKO */
#include <sys/socket.h>
#include <netdb.h>
#include <errno.h>
Expand All @@ -209,6 +209,7 @@ void compat_socket_networking_init( void );
void compat_socket_networking_end( void );

int compat_socket_blocking_mode( compat_socket_t fd, int blocking );
int compat_socket_get_fionread( compat_socket_t fd, u_long *bytes );
int compat_socket_close( compat_socket_t fd );
int compat_socket_get_error( void );
const char *compat_socket_get_strerror( void );
Expand Down
4 changes: 2 additions & 2 deletions compat/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2003-2013 Philip Kendall
## Copyright (c) 2003-2016 Philip Kendall
## Copyright (c) 2015 Sergio Baldoví

## This program is free software; you can redistribute it and/or modify
Expand Down Expand Up @@ -83,7 +83,7 @@ endif
## Wii routines
if COMPAT_WII
fuse_SOURCES += \
compat/wii/dir.c \
compat/unix/dir.c \
compat/unix/file.c \
compat/wii/osname.c \
compat/wii/paths.c \
Expand Down
7 changes: 6 additions & 1 deletion compat/amiga/paths.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ compat_get_config_path( void )
return "PROGDIR:settings";
}

const char*
compat_get_fallback_config_path( void )
{
return NULL;
}

int
compat_is_absolute_path( const char *path )
{
Expand All @@ -72,7 +78,6 @@ compat_get_next_path( path_context *ctx )
case UTILS_AUXILIARY_LIB: strncpy( ctx->path, "PROGDIR:lib/", PATH_MAX); return 1;
case UTILS_AUXILIARY_ROM: strncpy( ctx->path, "PROGDIR:roms/", PATH_MAX); return 1;
case UTILS_AUXILIARY_WIDGET: strncpy( ctx->path, "PROGDIR:ui/widget/", PATH_MAX); return 1;
case UTILS_AUXILIARY_GTK: strncpy( ctx->path, "PROGDIR:ui/gtk/", PATH_MAX); return 1;
default:
ui_error( UI_ERROR_ERROR, "unknown auxiliary file type %d", ctx->type );
return 0;
Expand Down
Loading