ZSNES


ZSNES is a free software Super Nintendo Entertainment System emulator written mostly in x86 assembly with official ports for Linux, DOS, Windows, and unofficial ports for Xbox and macOS.

Background

Development of ZSNES began on 3 July 1997 and the first version was released on 14 October 1997, for DOS. Since then, official ports have been made for Windows and Linux. The emulator became free software under the GPL license on 2 April 2001. Despite an announcement by adventure_of_link stating that "ZSNES is NOT dead, it's still in development" made on the ZSNES board after the departure of its original developers zsKnight and _Demo_, development has slowed dramatically since its last version. Much of the development efforts concentrated on increasing the emulator's portability, by rewriting assembly code in C and C++, including a new GUI using Qt.
ZSNES is notable in that it was among the first to emulate most SNES enhancement chips at some level. Until version 1.50, ZSNES featured netplay via TCP/IP or UDP.
Due to being written in low-level assembly language for x86 processors, it is not possible to port ZSNES to devices using RISC processors. Commercial gaming consoles did not typically use x86 processors prior to the eighth generation, with the 2013 releases of the Xbox One and PlayStation 4.

Reception

British game magazine Retro Gamer called ZSNES "very impressive" and praised the "incredible toaster mode" in 2005.
With the development of more accurate emulators such as Snes9x and higan along with computers generally being more powerful, ZSNES has been criticized for its relatively low accuracy. This is compounded by the fact that ZSNES's former popularity has led several fan-made translations and modifications to be designed with specific workarounds for the emulator's inaccuracies, which often makes them unplayable both on real hardware and in newer emulators without compatibility modes.
In 2015 an exploit that allowed a specially crafted SNES ROM to gain control of the host system, and thus be able to execute malicious code, was discovered in version 1.51; a partially fixed preview build was released shortly afterwards.