QtSpecem (C) 2020-2025 Rui Fernando Ferreira Ribeiro
Z80A core emulation (C) 1991-2025 Rui Fernando Ferreira Ribeiro
New Qt6 ZX Spectrum emulator
It also has a companion debugger, https://github.com/ruyrybeyro/debugZ80
Z80 C emulation from my old emulators WSpecem/emz80, corrected, fixed and improved to support the documented and undocumented funcionalities of a Z80 from Zilog (including Q/WZ/MEMPTR). It passes all the zxeall/z80test tests.
Floating bus behaviour implemented and passing Ramsoft's floatspy tests.
Real time emulator, no sound support.
Still (very) rudimentary user interface.
The project idea is being a emulator framework for having independent utilities, running in the same machine as different programs. For now it has a command line debugger.
Supports drag-and-drop, file as arguments, and SLT, TAP, Z80, SNA, SNX, SIT, RAW, ZX, PRG, ACH, ROM, DAT, SCR, SEM snapshot emulation formats.
For loading a TAP file, drag&drop and then do LOAD "".
For now pressing F2 saves Z80 snapshots at /tmp.
Kempston Joystick ALT + cursor keys
Timex video modes+ULAplus
Very hackish early support for Timex cartridges
KNOWN BUGs
- SHIFT 0-9 does not work in MacOS due to a Qt feature, use Command 0-9 instead.
"Features"
Loading a TAP file introduces patches to the ROM. A ROM checksum will fail after loading/drag and dropping a TAP file.
COMPILING for MacOS:
You need to install Command Line Developer Tools and the Qt6 development framework.
brew install sdl2
qmake # or ./do_qmake
make
For Mac deployment in a self-contained executable:
macdeployqt QtSpecem.app
For compiling in Linux:
Redhat based
sudo dnf install epel-release git
sudo yum groupinstall "C Development Tools and Libraries"
sudo yum install SDL2 SDL2-devel
sudo yum install mesa-libGL-devel
sudo dnf install qt6-qtbase qt6-qtbase-devel qt6-qtdeclarative qt6-qtdeclarative-devel qt6-qtmultimedia qt6-qtmultimedia-devel
git clone https://github.com/ruyrybeyro/QtSpecem
cd QtSpecem
qmake # or ./scripts/do_qmake.sh
make
(see scripts/rh.sh)
Debian/Ubuntu based
sudo apt install git build-essential libsdl2-dev
sudo apt install qt6-base-dev qt6-base-dev-tools qt6-declarative-dev qt6-multimedia-dev
git clone https://github.com/ruyrybeyro/QtSpecem
cd QtSpecem
qmake # or ./do_qmake.sh
make
(see scripts/debian.sh)
If all the icons do not appear,
sudo apt install adwaita-icon-theme
sudo apt install breeze-icon-theme
For cross-compiling for Windows in Ubuntu (obsolete):
Installing compiler toolchain:
add to sources.list
deb [arch=amd64] https://pkg.mxe.cc/repos/apt focal main
apt update
sudo apt install mxe-x86-64-w64-mingw64.static-qt6
Compiling:
PATH=/usr/lib/mxe/usr/bin:$PATH
git clone https://github.com/ruyrybeyro/QtSpecem
cd QtSpecem
/usr/lib/mxe/usr/x86_64-w64-mingw32.static/qt6/bin/qmake
If all goes well, a self contained binary is created at release/QtSpecem.exe
. Tested in MacOS Monterey, Big Sur, Catalina, Mojave, High Sierra; Linux Debian 10 and Debian 11. Windows 10.
Keys in QtSpecem:
F2 - Z80 file dump /tmp/w0000.z80 where 0000 is incremented
F5 - TAP file dump /tmp/w0000.tap where 0000 is incremented
F12 - save image snapshot /tmp/snap0000.png where 0000 is incremented