# ZSNES v1.51 Documentation

## About

### About ZSNES

ZSNES is a SNES emulator that has been worked on since 1997. Originally programmed by zsKnight and _Demo_, the project has since then attracted a number of new developers and contributors.

On April 2, 2001, the ZSNES project was GPL'ed and its source released to the public. Written in a mixture of x86 assembler, C, and C++, ZSNES currently runs on Windows, DOS, x86 versions of Linux and FreeBSD, x86 Macintosh computers, and the Microsoft Xbox.

#### Donations

If you enjoy using ZSNES to re-live and enhance your experiences with the Super Nintendo, please consider making a donation to support further development.

You have two options when making a donation. You can choose to make a donation through the ZSNES SourceForge Project Donation Page: Donate to ZSNES through SourceForge.

Alternatively, you can send money to the ZSNES creator's PayPal account: Donate directly to zsKnight, creator of ZSNES.

### About the Documentation

The ZSNES Documentation Project was started by RichardC in an attempt to update and reorganize all of the ZSNES documentation into an easy to read, easy to access collection. It made its public debut upon the release of ZSNES v1.40. It is officially available in HTML, CHM, and text formats.

If you have any suggestions or corrections that you would like to submit, feel free to let us know at our forum on the ZSNES Message Board.

RichardC would like to give a special thanks to Nach and the ZSNES community for all the help and support that they have given to him and the project.

### Credits

#### Founding Developers

- zsKnight
- _Demo_

#### Current / Active Developers

- pagefault - primary core developer, primary Win port developer.
- Nach - primary non-core developer, mostly works on significant back-end overhauling and large new features.
- grinvader - primary ASM to C porter, primary Unix build maintainer, many GUI improvements and other, and power of no pants.
- Jonas Quinn - primary bug fixer, also video code contributor.
- ipher - ZSNES GUI expert, WIP distributor.
- Deathlike2 - minor feature adder, also an ASM to C porter.

#### Assistant Coders

- hpsolo
- Pharos
- Siloh (a.k.a. Stainless, a.k.a. randilyn)
- StatMan
- teuf
- theoddone33

#### Contributors (in alphabetical order)

- aaronl
- Aerdan
- amit
- anomie
- BRPXQZME
- byuu
- Diablo-D3
- EvilTypeGuy
- hector
- Khan Artist (a.k.a. Noxious Ninja)
- kode54
- Kreed
- MaxSt
- MKendora
- Neviksti
- Overload
- prometheus
- relnev
- snes6502
- TRAC
- zinx

#### Documentation Writers/Contributors

Contributors are listed loosely based on their dates of contribution.

- RichardC - founder of the ZSNES Documentation Project. First active administrator. He had the dirty job of doing the initial conversion of the docs into HTML.
- Nach - programmer extraordinaire, and knows ZSNES very well. He helps a lot in documenting the obscure things we writers don't know about.
- LDAWG - updated v1.40 changelog, based on a 2 year summary by Nach, as well as another 6 months of developer notes.
- kevman - helped with the v1.40 FAQ updates.
- xamenus - joined the project shortly after RichardC's initial release, and made many grammar fixes and updated the content. Combined the three separate, port-specific documentations into one. Still contributes some content from time to time.
- Noxious Ninja - manpage expert. No longer active in the emulation "scene", he always had something useful to contribute.
- Clements - maintainer of the CHM file. Also assists with coding and content.
- AspiringSquire - designer and maintainer of the TXT version of the docs; occasionally contributes content. Also an expert with grammar and vocabulary corrections.
- Jipcy - current active administrator and mark-up chief. Manages and contributes to all parts of the docs.
- Jonas Quinn - mainly helps in super-optimizing the images.
- Deathlike2 - ZBoard tech help expert. Also makes many suggestions/corrections to the docs.

Special thanks to Radio. He designed the ZSNES.com main page layout, from which we stole this design for the HTML docs. Also special thanks to Roman Rudenko, for finding the elusive "display:inline" fix for floated items in IE.

Also thanks to SnesCentral for providing some info!

#### Thanks

All ports of ZSNES use NASM v0.98+, GNU Make, zlib, libpng, and JMAlib to compile, link, compress, decompress, and execute.

In addition to the above, ZSNES Win uses Visual C++ 2003 (or MinGW), DirectX 8, UPX, and ManyMouse; ZSNES SDL uses GCC, SDL v1.20, and ManyMouse; and ZSNES DOS uses DJGPP, CWSDPMI, and UPX.

Thanks to those who produced these fine programs!

##### Special Thanks to:

- wnelson; without him, ZSNES would have never existed!
- Y0SHi for his excellent SNES docs, his help, and his excellent support!
- Ashley, Barubary, CyberWarriorX, DCX, DooMStalK, Fanwen, GreenImp, Hucard, Kaiden, PolestaR, Stalphos Knight, Star Creator, TeleKawaru, the people on the ZSNES IRC channel, and the regulars of the ZSNES message board!
- All of our beta testers for being a great help!
- The MAME team; info on 256x256x256 scanlines mode is from the MAME source!

##### Also Thanks to:

- The_Teach of Snes9x for some great info and the nice chats!
- Trepalium of Snes9x for some great info and help!
- Gary of Snes9x and Steve Snake of Kega for being the source of info for sound decompression!
- Gary of Snes9x for being the source of info for TCall/PCall and also for lots of help!
- MrGrim for his great support!
- Crono for info on Sound Blaster programming, surround sound, sound interpolation, and other sound stuff!
- Aquis for the ZSNES logo!
- Alucard for helping us with an issue in the 65816!
- Vertigo for making a compatibility list!
- EFX for being a great supporter and also giving a lot of help and stuff!
- Zophar for being a great supporter and also maintaining the mirror site!
- Chris Hickman for redesigning the ZSNES web page!
- CSoft for (previously) hosting our web page!
- Marius Fodor for the code for VSync, Sidewinder, Gamepad Pro, and some optimization info!
- Sardu for some great info and help!
- Lord ESNES for some great help!
- Robert Grubbs for the Sidewinder info!
- Nerlaska for some useful info on optimizing and also for some help!
- Diskdude for writing SNESkart which we used for the info on cheat codes!
- DarkForce for some great help!
- Pharos for some keyboard coding help!
- Ivar and Gary of the Snes9x team for all their great help, which includes their SuperFX info and code, DSP-1 info, info on interleave formats (HiROM and SuperFX), offset per tile mode, FIR filter, and some insights on SPC700 and HDMA bugs!
- WolfWings ShadowFlight for help on several issues of NASM!
- Wildfire for some help!
- A CoolMan for the algorithm for EAGLE!
- Neill Corlett for some info on the .ips format and also helping out a lot on improving the sound engine!
- Kreed for the 2xSaI and Super Eagle source codes!
- Markus Oberhumer and Laszlo Molnar for the UPX compression utility.
- Jean-loup Gailly, Mark Adler, and Gilles Vollant for the unzip routines!
- kode54 for the low pass filter routines!
- Andy Goth for some help on the design of the key combination engine!
- Yamaha of XYZZ (Scott Scriven) for his water effect code.
- ipher for compiling and releasing WIP builds!
- cdbsi for the ZSNES icons!
- The Dumper for lots of help with special chips.
- snes6502 for the Xbox port!
- hector and BRPXQZME for helping to port ZSNES to Mac OS X!
- The NSRT Team, for their excellent utility, JMA compression, NSRT headers, and a great database!
- All those people who contributed by either updating the docs, helping us, supporting us, or reporting bugs!

The changelog contains innumerable credits to people for their contributions or individual fixes. Many of them are not listed on this page.

Also thanks to all those whom we forgot!

Also, good luck to all those who are writing emulators, especially those who are writing SNES emulators, including Snes9x, SNEeSe, Super Sleuth, and bsnes!