• Please review our updated Terms and Rules here

đź‘» Spectral

Jimmy Gallagher

New Member
Joined
Mar 15, 2025
Messages
5
Spectral is an experimental emulator that I have been randomly assembling since the pandemic days, inspired by my old fZX32 emulator. Accuracy and performance are long-term goals, but the primary focus is just having fun with this thing. Hardcore ZX users will find little value in this emulator right now, but I hope newbies may find its ease of use somehow appealing to try. That being said, Spectral has a very compatible TAP/TZX loader and some other interesting features that provide me some fun in these days. Code is highly experimental and prone to change in the future. I will keep altering/breaking things randomly for good sake.

17898337313377746944_20250316175730_1.png
17898337313377746944_20250316185217_1.png
17898337313377746944_20250316185348_1.png
17898337313377746944_20250316185528_1.png

Features
  • Unlicensed.
  • Single executable.
  • Z80. Z80 Disassembler.
  • 16, 48, 128, +2, +2A, +3, Pentagon128 models.
  • Issue 2/3 keyboards.
  • ULA/ULA+ graphics.
  • Beeper/AY chips. Turbosound (Turbo-AY).
  • Kempston mouse.
  • Kempston/Fuller/Cursor/Sinclair joysticks. Gamepad support (Windows, Linux).
  • RF/CRT experience (not physically accurate though).
  • TAP/TZX/PZX/CSW tapes. Z80/SNA/SZX snaps. ROM/IF2 roms.
  • DSK/EDSK/TRD/SCL/FDI/MGT/IMG/HOBETA disks.
  • SCR/PNG screenshots. MP4/MPG video recordings (no sound).
  • ZIP/RAR/GZ archives.
  • AY tunes player.
  • Nec µ765/Betadisk interfaces.
  • Auto load games. Auto play/stop tape. TurboROM.
  • Graphical tape browser.
  • 25/30/50/60Hz fps lock.
  • Run-Ahead.
  • POK support.
  • Gunstick, Lightgun.
  • External shaders support.
  • Internal savestates.
  • Graphical User Interface.
  • Portable: Windows, Linux, MacOS.
  • Embedded ZXDB.
  • ZXDB Browser. ZXDB Gallery.
  • Can translate game menus from some languages into English.
  • Games can be appended to executable and get a standalone game viewer.
TODO
  • Extra accurate Z80 backend.
  • Cycle accurate (border, multicolor, etc).
  • RZX support.
  • MP3s.
  • Netplay.
  • Optimized.
Source (and 2nd issue tracker) — github.com/r-lyeh/Spectral/
Discord (main issue tracker and support) — discord.gg/UpB7nahEFU
 
Nice work!

Does it support booting from alternative .ROM/.BIN images? Many "updated" versions of Sinclair BASIC have been made over the years, such as OpenSE.
 
Does it support booting from alternative .ROM/.BIN images?
@r-lyeh:
Yes and no. Spectral will reset the roms and state after every drag 'n drop. right now, you can drop basic roms or interface I roms into the emulator and give them a try, it will work. but if you drop a second file after that, Spectral will reset the roms again and will use the default stuff


Examples of palettes usage

1. Spectral
2. Atkinson
3. Vivid
4. Ala-Konni
5. Goblin22
6. Gray
7. Negative

%pn (2025-03-17 09-52-31).png %pn (2025-03-17 09-52-42).png %pn (2025-03-17 09-52-54).png %pn (2025-03-17 09-53-04).png %pn (2025-03-17 09-53-14).png %pn (2025-03-17 09-53-22).png %pn (2025-03-17 09-53-31).png
Spectral (2025-03-17 09-48-57).png %pn (2025-03-17 09-49-13).png %pn (2025-03-17 09-49-24).png %pn (2025-03-17 09-49-33).png %pn (2025-03-17 09-49-45).png %pn (2025-03-17 09-49-59).png %pn (2025-03-17 09-50-07).png
 
Spectral 1.12
new: x8 zoom mode
new: palette files (.pal)
new: 2-frame run-ahead mode
new: authored fantasy15,dream15,hue15,skin5,remix palettes
new: adapted classic amstrad cpc,dawnbringer,gameboy,pico8,petit palettes
new: added support to rename files via local folder (F2 key)
new: exposed ZX_BLUR and ZX_BLOOM options within reworked TV menu
new: option to display the palette in use (ZX_PALETTE_PREVIEW)
new: option to paste host clipboard into BASIC
new: ZX_PLAYER binaries can have "-rf"/"-crt" in filename to select the tv mode (via argv[0])
new: added many new cmdline options (suggested by Janko)

chg: added checkbox to toggle Horace
chg: prefer png game-maps over scanned jpegs
chg: use crosshair cursor when lightguns are in use
chg: added vivid palette to ZX_PLAYER binaries by default
chg: added Z and UP key mappings as secondary and terciary gamepad buttons by default
chg: adjusted Horace's luma detection code so it works on RF modes
chg: adjusted hovering areas on ui buttons
chg: do not patch .tap checksums anymore, since we stopped from hotpatching medias some releases ago
chg: reduced separation of L/R stereo channels (note that real ZX is mono, in any case)
chg: upgraded zxdb to v1.0.214

fix: fixed linux build (reported by @md0-code)
fix: fixed macos-build in GHA (objc_msgSend args mismatch)
fix: fixed windows-latest build in GHA (windows-2019 was deprecated)
fix: fixed downloading urls with plus chars in them (see: ExplodingFist+ case)(Windows)
fix: fixed local browser resetting scroll position on enter key
fix: fixed mid-raster renderer to be more accurate during paper cycles (reported by cafedead)
fix: fixed missing cp1252 > utf8 conversion in prompt() call (Windows)
fix: fixed plausible crash during audio initialization on some hw specs (since v1.10)
fix: fixed occasional flashing terminal window while clicking on the first link in a session (Windows release builds)
fix: fixed saving screenshots or videos with disallowed chars in them (see: JackTheNipperII:Coconut case)(Windows, Linux, Mac)
fix: loading medias with no supported file types on them (see: PacmanEmulator)
fix: missing Enter keypress while typing in BASIC (reported by @skoolkid)(Linux,OSX)
fix: missing AY speech in AY=2 mode (regression) (see: Robocop.dsk)
fix: prevented ZX_PLAYER from creating the .Spectral/ folder

lab: lobby chat
lab: sprite outlines
lab: attribute clash removal
lab: can edit palette colors (shift+click any toolbar palette color)
lab: highlight vram changes

brk: switched to relative paths in options (.ini)
brk: deprecated ZX_SHADER,ZX_FOLDER_WINDOWS,ZX_FOLDER_UNIX options (.ini)
 

Attachments

  • Spectral 1.12.png
    Spectral 1.12.png
    148.7 KB · Views: 5
Back
Top