A cross-platform ZX Spectrum emulator written in Rust, featuring highly accurate Z80 and AY chip emulation.
RustZX is a ZX Spectrum emulator written in Rust that accurately simulates the hardware of the classic 8-bit computer. It allows users to run original Spectrum software, including games and applications, by emulating the Z80 CPU, AY sound chip, and other peripherals. The project solves the problem of preserving and experiencing Spectrum software on modern systems with high precision.
Retro computing enthusiasts, developers interested in emulation, and anyone looking to run ZX Spectrum software on modern hardware. It's also suitable for embedded developers due to its portable `no_std` core library.
Developers choose RustZX for its high accuracy in emulating obscure Z80 behaviors, cross-platform support, and the flexibility of a portable core library. Its focus on minimal resource usage and configurable features makes it stand out for both desktop and embedded use cases.
ZX Spectrum emulator written in Rust
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements rare Z80 behaviors like the WZ/memptr register and block instruction flag oddities, ensuring high accuracy for software that depends on these nuances.
Includes a no_std library with configurable Cargo features, allowing porting to resource-constrained devices while minimizing dynamic allocations.
Written in Rust, it runs on multiple operating systems and supports key file formats like TAP, SNA, and SZX for loading games and snapshots.
Offers fast tape loading options and adjustable sound latency with the --sound-latency flag, enabling optimization based on hardware capabilities.
Requires a C compiler, CMake, and specific Linux development packages like libasound2-dev, adding setup steps compared to pre-packaged emulators.
Only emulates 48K and 128K ZX Spectrum models, missing later variants such as +2A or +3, which may restrict compatibility with some software libraries.
Primarily command-line driven with minimal GUI and reliance on keyboard shortcuts, making it less accessible for casual users who prefer intuitive interfaces.