Fuse

Fuse is a free ZX Spectrum emulator written in C.

Hardware emulated

 * Accurate 16K, 48K (including the NTSC variant), 128K, +2, +2A and +3 emulation.
 * Working +3e, SE, TC2048, TC2068, TS2068, Pentagon 128, Pentagon "512" (Pentagon 128 modified for extra memory), Pentagon 1024 and Scorpion ZS 256 emulation.
 * Runs at true Speccy speed on any computer you're likely to try it on.
 * Support for loading from .tzx files, including accelerated loading.
 * Sound (on Windows and Mac OS X, and on systems supporting ALSA, the Open Sound System, SDL or OpenBSD/Solaris's /dev/audio).
 * Kempston joystick emulation.
 * Emulation of the various printers you could attach to the Spectrum.
 * Support for the RZX input recording file format, including 'competition mode'.
 * Emulation of the DivIDE, Interface I, +D, Beta 128, Opus Discovery, Kempston mouse, Fuller audio box, Spectrum +3e, ZXATASP and ZXCF interfaces.

Resources

 * Website
 * Supporting library for file input/output