ZSNES is a
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
Super Nintendo Entertainment System
The Super Nintendo Entertainment System, commonly shortened to Super Nintendo, Super NES or SNES, is a Fourth generation of video game consoles, 16-bit home video game console developed by Nintendo that was released in 1990 in Japan, 1991 in No ...
emulator
In computing, an emulator is Computer hardware, hardware or software that enables one computer system (called the ''host'') to behave like another computer system (called the ''guest''). An emulator typically enables the host system to run sof ...
written mostly in
x86 assembly with official ports for
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
DOS
DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
,
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, and unofficial ports for
Xbox
Xbox is a video gaming brand that consists of four main home video game console lines, as well as application software, applications (games), the streaming media, streaming service Xbox Cloud Gaming, and online services such as the Xbox networ ...
and
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
.
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-2.0-or-later license on 2 April 2001. Despite an announcement by ''adventure_of_link'' in 2009 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 (1.51 released on 24 January 2007). 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 early in being able to emulate several of the
SNES enhancement chips at some level. Until version 1.50, ZSNES featured netplay via
TCP/IP
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
or
UDP.
An early ZSNES feature of interest was "ZMV movie
This feature enabled players to record their play session inputs and then output those to a ZMV file, in such a way that another user with a copy of ZSNES, a matching
ROM
Rom, or ROM may refer to:
Biomechanics and medicine
* Risk of mortality, a medical classification to estimate the likelihood of death for a patient
* Rupture of membranes, a term used during pregnancy to describe a rupture of the amniotic sac
* ...
file, and the ZMV file, should be able to "watch" the other person's gameplay. This long preceded mass availability of gameplay videos online, being an early form of sharing this type of content.
Because ZSNES is largely written in
low-level assembly language
In computing, assembly language (alternatively assembler language or symbolic machine code), often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence bet ...
for
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
processors, the idea of porting ZSNES to devices using
RISC
In electronics and computer science, a reduced instruction set computer (RISC) is a computer architecture designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a comp ...
architectures such as
ARM
In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between ...
is highly unfeasible. Commercial gaming consoles did not typically use x86 processors (with the
original Xbox being the most well-known exception) prior to the
eighth generation, with the 2013 releases of the
Xbox One
The Xbox One is a home video game console developed by Microsoft. Announced in May 2013, it is the successor to Xbox 360 and the third console in the Xbox#Consoles, Xbox series. It was first released in North America, parts of Europe, Austra ...
and
PlayStation 4
The PlayStation 4 (PS4) is a home video game console developed by Sony Interactive Entertainment. Announced as the successor to the PlayStation 3 in February 2013, it was launched on November 15, 2013, in North America, November 29, 2013, in ...
.
Development history
The first public release of ZSNES was version 0.150, on October 14, 1997. It incorporated the entire 65816 instruction set from the SNES's modified
WDC 65C816
The W65C816S (also 65C816 or 65816) is a 16-bit microprocessor (MPU) developed and sold by the Western Design Center (WDC). Introduced in 1985, the W65C816S is an enhanced version of the WDC 65C02 8-bit MPU, itself a CMOS enhancement of the vener ...
microprocessor, as well as
SRAM support and partial
Mode 7
Mode 7 is a graphics mode on the Super Nintendo Entertainment System video game console that allows a background layer to be rotated and scaled on a scanline-by-scanline basis to create many different depth effects. It also supports wrapping eff ...
implementation. It also already offered
save state
A saved game (also called a game save, savegame, savefile, save point, or simply save) is a piece of digitally stored information about the progress of a player in a video game.
From the earliest games in the 1970s onward, game platform hardw ...
s to a .ZST file as an additional feature. This initial version missed certain DSP features.
Version 0.600 from September 9, 1998, was the first to feature developer Pharos (as a coding assistant), and was a milestone release due to the implementation a of new 16-bit graphics engine, as well as featuring an entirely new
GUI with more functions available than before. Shortly afterwards, version 0.700 from October 27, 1998, was the first to compile with
C code.
Starting from version 0.900c/a from July 4, 1999, an important feature for the time was added, which was native
ZIP compression support, which allowed users to save space in the then expensive hard disks. Also, work intensified on improving support of the
SA-1 chip.
Version 1.000 from September 1, 2000, marks ZSNES's first official Windows release, and the next several versions of the emulator focused on improving the quality of this port. In April 2, 2001, the software's source code was released and the team was joined by coder Teuf.
Release 1.30b from June 16, 2001, can be considered a landmark in Super Nintendo emulation, as it added initial support to
Star Ocean and its
S-DD1
The list of Super NES enhancement chips demonstrates Nintendo hardware designers' plan to easily expand the Super Nintendo Entertainment System with special coprocessors. This standardized selection of chips was available to licensed developers, t ...
compression chip. This title pushed the limits of the system's hardware, boasting voice clips and enhanced graphics, and was tricky to even get running on an emulator.
After zsKnight's departure for personal reasons in July 2001, the project made a release in homage to him and his family, version 1.337, from September 30, 2001. The emulator continued being updated until releases halted in July of 2002, and it would be more than two years until a new public release.
When version 1.40 eventually released on December 25, 2004, it marked a turning point for the project, with new contributors and significant overhauls to the emulator's ageing systems. Developers Nach and pagefault particularly focused on removing several of the infamous hacks that were part of ZSNES's code base, implementing proper code that tricky games relied on. In tandem with that, extensive work was carried out to better support special chips.
Version v1.50 from December 22, 2006, was another major overhaul, which according to the developers: "ZSNES is a program with over 200,000 lines of source code, and in this release, over 25% of that has been modified; also, around 15% of the assembly has been ported to C." This was the final major release of the emulator, being followed by the minor 1.51, and winding down thereafter.
Reception
ZSNES was generally well-regarded in its heyday, with British game magazine ''
Retro Gamer
''Retro Gamer'' is a British magazine, published worldwide, covering Retrogaming, retro video games. It was the first commercial magazine to be devoted entirely to the subject. Launched in January 2004 as a quarterly publication, ''Retro Gamer'' ...
'' in 2005 calling the emulator "very impressive" and praising the "incredible toaster mode".
However, with the more recent development of more accurate SNES emulators such as
Snes9x and
higan
is a Buddhist holiday exclusively celebrated by Japanese sects for seven days; three days before and after both the Spring equinox ( shunbun) and Autumnal equinox ( shūbun). It is observed by nearly every Buddhist school in Japan. The tradi ...
as computers have gradually become more powerful, retrospective reviews have criticized ZSNES not only for its relatively low accuracy, but also because its 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 the newer emulators that have superseded ZSNES. Some of these other emulators even include a mode which is explicitly designed to replicate the quirks of ZSNES, allowing the ZSNES-focused mods to become playable again.
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.
See also
*
List of video game console emulators
The following is a list of notable video game console emulators.
Arcade
* Visual Pinball
Atari
; Atari 2600
* Stella
Microsoft
; Xbox
* xemu
; Xbox 360
* Xenia
Nintendo
Home consoles
; Nintendo Entertainment System
* FCEUX
* NESticle ...
References
External links
*
ZSNES Documentation
{{DEFAULTSORT:Zsnes
1997 software
Super Nintendo Entertainment System emulators
Linux emulation software
Windows emulation software
DOS emulation software
Free video game console emulators
Free software that uses SDL
Cross-platform software
Free software programmed in C
Free software programmed in C++
Assembly language software
Portable software
Discontinued emulators