Skip to content

wermipls/sleepdart

Repository files navigation

sleepdart

A half-hearted attempt at writing a reasonably accurate ZX Spectrum emulator.

sleepdart running Shock

See it in action:

Features

  • Mostly cycle-accurate Z80 emulation, including contention and fetch/write timings
  • Sub-frame accuracy for ULA draws
  • Tape (.tap file) support with basic hooks for fast/automated loading
  • Beeper sound
  • AY-3 sound (based on ayumi library)
  • Reasonably fast (typically ~3500 FPS uncapped on an i3-4150)
  • Keyboard input
  • SZX state loading
  • Adjustable palettes
  • More to come...

Building

Clone the repository, including submodules:

git clone --recursive https://github.com/wermipls/sleepdart

Windows (MSYS2 MinGW 64-bit)

pacman -S git mingw-w64-x86_64-meson mingw-w64-x86_64-pkgconf mingw-w64-x86_64-binutils mingw-w64-x86_64-gcc mingw-w64-x86_64-sdl3 zlib

meson setup build # add "-Dbuildtype=debug" for a debug build
meson compile -C build

License

sleepdart is licensed under 0-clause BSD.

The program makes use of several third-party libraries, in part or in whole:

This emulator bundles the unmodified ZX Spectrum ROMs. Amstrad have kindly given their permission to redistribute the Spectrum ROMs, as long as the original copyright notices are unchanged; see Cliff Lawson's post on Usenet.

Binaries in the tests directory are subject to their own distribution terms, some of them unspecified; look at text files in the respective test directories for any licensing information.

About

a half-hearted attempt at writing a reasonably accurate ZX Spectrum emulator. WIP

Resources

License

Stars

Watchers

Forks

Contributors