Everyone has heard of Nintendo's Super Nintendo (SNES) console, released in November of 1990, even newbies. Most people agree that it is the
best 16-bit console, with epic games like the Final Fantasy series (many
of which remain in Japan, unfortunately), the immortal Mario games, and many more.
The SNES is based on a 65c816 CPU, a descendant of the 6502 in the NES,
with 128k of RAM. It has 2 video chips, PPU1 5c77-01 and PPU2 5c78-03,
with 64k of Video RAM, which permit display resolution as high as 512x448
in 256 colours (out of a possible 32,768), with as many as 128 sprites
on screen, each with a size of 64x64 pixels. It can zoom, rotate, and independently
scroll any of it's 4 display planes.
The sound is based around SPC-700, a chip which everyone trying to add
sound to SNES emulators has come to hate. It was custom-manufactured by
Sony for Nintendo, the beginning of the business relation that tried and
failed to create the SNES-CD.
zsKnight and _Demo_ began this project July 3, 1997. On October 14,
1997, ZSNES 0.150 was released. It included many great features such as sound, multiple video modes, state saving, and excellent speed. Since then, ZSNES has progressed remarkably. Many special chips such as the DSP1, Super FX, and the SA-1 have been emulated, and lots of options have been added like SPC saving, GRiP and Sidewinder support, interpolated and surround sound, and many display resolutions and awesome graphics modes. Recently, a new member named Pharos joined the ZSNES team. With so many great features and such a bright future ahead of it, ZSNES is the only SNES emulator you will ever need.
These are some screenshots of some games running in ZSNES 0.915c
Chrono Trigger and Donkey Kong Country 2
Mario Kart and Mario RPG
Secret of Mana and Super Mario All Stars
Terranigma and Yoshi's Island
Here are the lastest version(s) of ZSNES!
ZSNES 0.953a & ZSNES 0.953c Released 8/5/99
Echo should sound better now
Restored the old Sound Blaster routines since the new ones seems to create some static in certain computer configurations
Increased volume intensity of more quiet samples
Fixed up crashing bug in pure dos when vesa 2 initialization failed
Included cwsdpmi.exe with the zsnes archive.
ZSNES 0.952 Released 8/3/99
Fixed a small H+V IRQ timing problem
Fixed the bug which caused HiROM games from not loading properly through the commandline
Fixed some vertical off by 1 line bugs
Attempting to save over read-only files shouldn't mess up anymore
ZSNES 0.951 Released 8/3/99
Fixed up the directory changing bugs that plagued v0.950
Start with newest save option now works with the save directory defined
Fixed up a crashing bug when a read only file is loaded
The volume level didn't modify the echo volume. Now fixed.
ZSNES 0.950 Released 8/2/99
Fixed up a pretty nasty .ZIP support bug where .ZIP files from the root directory weren't loaded up properly
Fixed up a display problem in the F1 menu in 256 color mode
Fixed an echo delay bug
Hopefully fixed the random beep encounter bug that occurs in some games with sound enabled
Several sound volume fixes
Sorry about those new problems in v0.941c. We traced some of the problems to the dos extender zsnes was using (thanks Maxim- for some help on this!) so we spent some time rewritng the file system so that it would be compatible with other extenders in pure dos.
Fixed Save Snapshot + Increment frame enter key affecting the game bug
Added Increment Frame Only option to the F1 menu
Made some minor changes to the Sound Blaster routines
Fixed some more sync bugs in .ZMV recording
Fixed a speed hack bug that occurred from v0.800 to v0.900. Hopefully the speed is better now.
Slightly improved the sound skipper when sound is disabled
You can now quickly modify the currently selected cheat code's value by typing a 2 digit hex number in the cheat code enter space
Added a hack to Chrono Trigger to prevent the screen from flashing before battles
Fixed a 16-bit mode 7 windowing distortion/crashing bug
Fixed a read memory leak bug in the 16-bit old gfx engine. Interesting that this bug plagued ZSNES all this time, but its effects didn't show until the recent versions.
ZSNES 0.941c & ZSNES 0.941a Released 7/18/99
Fixed a small newly created timing bug
Fixed flicker bug in 320x480x65536 video mode during high snes resolution mode
ZSNES 0.940c & ZSNES 0.940a Released 7/18/99
Fixed a major SuperFX bug! Starfox and other SuperFX games now show polygons! Note that the SuperFX still has bugs.
Fixed an offset per tile mode bug
Optimised SuperFX plot instruction.
Implemented a hack to get Winter Gold working. Thanks to Gary Henderson for this fix!
Fixed a flag setting bug in the XCE instruction (65816).
Fixed another HIRQ bug
Seems like a sprite cache bug that was fixed in v0.800 re-appeared in v0.900. Fixed now.
Fixed an SA-1 arithmetic calculation result timing bug
Forced the old gfx engine on when running Stunt Race FX since the new gfx engine was having lots of problems in 256 color mode
Fixed a new gfx 8bit engine mosaic crashing bug with certain games
Fixed a sprite cache bug in the new gfx engine
Fixed a DSP envelope bug which was causing some games to not work
WRAM data is now cleared by 0xFF
Fixed 320x480x16bit mode when switching from a 256 color mode
ZSNES 0.915c & ZSNES 0.915a Released 7/07/99
Skipped scanline length check/set in VESA 1.2 routines
Fixed a 256 color mode 7 slowdown bug that occurred in v0.910c
Added hi-res mode 7 hack to 320x480x256 video mode
Implemented 2xSaI engine for ARGB cards. Thanks to Kreed for the updated source!
2xSaI was missing a couple lines at the bottom. Now fixed
320x480 modes can now be selected in version A in the GUI
properly cleared 320x480x256 video mode
F3 menu should now be correct during hi-res mode 7
ZSNES 0.910c & ZSNES 0.910a Released 7/06/99
The bug where enabling auto-cheat load, having an Sram directory, and loading a rom without a .cht file which results in Zsnes changing the loading directory to the sram directory is fixed.
Fixed cheat search engine in version A
Tweaked HIRQ timing to fix some flickering in some games
Fixed screen shot capture in ARGB cards in 640x480x65536 mode with scanlines enabled
Implemented adjustable time interval for the sound reinitialization feature so that it can be set to values other than 30 seconds. It can be modified in zsnes.cfg (ReInitTime)
Cheat Search 'Add' button now works properly
Corrected Register 4212h to adjust to the new NMI timing
Implemented ARGB video mode support to VESA 1.2
Implemented 320x480x256 and 320x480x65536 video modes
Fixed a x448 resolution bug when scanlines are enabled
Prevented those with ARGB videocards from checking 2xSaI or Super Eagle engine for now
ZSNES 0.900c & ZSNES 0.900a Released 7/04/99
Fixed another sprite priority bug
HBlank is supposed to be noticed during VBlank
Fixed an IRQ bug that occured between v0.715 and v0.800
Fixed a 65816 DPage usage bug that occured between v0.715 and v0.800
Rewrote 65816 flag handling system.
Optimised SA-1 emulation
Optimised the 65816 main loop.
Implemented Surround Sound. It is defaulted off since it seems to create some bad static in some games. Thanks to Crono for info!
Wrote Interpolation in MMX. MMX cpu is required.
Implemented MMX auto-detection for MMX Interpolation and MMX Copy.
Fixed an 224HDMA line bug, thanks to Gary Henderson!
Optimised 320x240x16b and 640x480x16b for ARGB cards.
Removed Snow
Clock option is now visible to anyone. You can enable the in-game clock through the GUI in Config->Options.
Altered method of writing to file in Movie Recording mode, hoping that it will fix some problems after recording movies for a long period of time.
Altered data alignment size in source
Fixed a VESA2 divide by 0 bug in Banshee cards by checking the scanline length instead of setting it immediately. Thanks to Crono for some help!
Altered sound echo volume
Added sound interpolation based on Crono's code. Thanks to Crono for his help!
Added an option to turn off sound interpolation for speed
Implemented Pitch Modulation, thanks goes to Gary Henderson for clarification info!
Implemented an option in the GUI (Config->Options) to allow the Fast Forward key to act as a toggle (disabled by default)
Fixed a bug that prevented high resolution to sometimes not display in a 16bit video mode
Fixed a game stalling bug when pressing F3 during games that are sensitive to changes in the ENVX DSP register (Bomberman Series)
Added a hack for the graphic glitches in Dragon Quest 6
Fixed up in-game clock in the new gfx 16bit engine
Fixed a nasty bug in the ADSR engine. It was sometimes using an incorrect decay value, causing the sound to stick instead of fading out
Slightly fixed ADSR by completely skipping the attack stage when the attack duration is 0
Fixed a GAIN decrease->increase bug
Implemented a safe recovery feature for those computers that don't support the CPUID instruction (used for MMX detection). If ZSNES crashes at the very start, just re-run it.
Fixed a fixed color dual windowing bug in the subscreen which caused transparency to sometimes shift unexpectedly when the background scrolls
Implemented 50% Scanlines (Lance McKay's idea) and 25% Scanlines (Similar to Snes9x TV-Mode's scanline intensity) in 640x480x65536 video mode. These modes don't work on videocards with an ARGB setting yet.
Added MMX Support to 50% and 25% Scanlines modes
Implemented back buffer clear in MMX
.CHT files now saves to the proper save directory
Implemented the 2xSaI graphics engine (MMX Only). Many thanks to Kreed for this wonderful engine and source code!
Implemented Kreed's Super Eagle engine. Note that for both 2xSaI and Super Eagle, you need an MMX processor, enough RAM for the new gfx 16bit engine, and also be in 640x480x65536 video mode.
Implemented an option to auto-load a .cht file whenever a game is loaded. You can find this option at the bottom of the Cheat Window in the GUI.
Optimised Non-MMX Interpolation
Fixed a bug that caused save states to not save correctly after attempting to load a non-existing .cht file
Added a Quick SnapShot Key. You can set this key in the Misc -> GameKeys menu in the GUI. This key allows you to take a snapshot with just a press of a key.
Implemented .ZIP support. Thanks to Jean-loup Gailly, Mark Adler, and Gilles Vollant for the ZIP routines!
Fixed a bug where pressing PageUp/PageDown in the cheat window went over by 3 entries.
Implemented longer cheat descriptions. The cheat window and the .cht file format had to change a bit, however, ZSNES automatically converts any old formats to the new formats when it detects it.
Allowed the IRQ to be executed more than once on the same line through HIRQ. Fixes the flickering problems of Doom/Offroad Baja.
NMI now executes at line 225 instead of 224.
Saving/Loading the state causing the control to stop or skip has been fixed again.
.ZIP files can now be run from the commandline
Implemented an option for ZSNES to automatically save the save data approx. 5 seconds after it detects writes to it. This will not work for SuperFX or SA-1 special chip games, however. This option is disabled by default and can be enabled through the option window.
Implemented an option in the sound window to re-initialize the sound card after every 25-30 seconds. Hopefully fixes the problems where the sound gets staticy after a certain amount of time.
Newest Save Slot will now appear as orange in the Save State Select (F3) window
Fixed a spc700 <-> 65816 sync bug during movie (.ZMV) playback
Implemented an option to enable Old Gfx Engine Mode 2 (Accessible through the options window in the GUI). This mode fixes many transparency problems in 16bit modes, but can also create some and is also at times slower than the original engine.
Implemented 640x480x65536 VESA 1.2 support. Currently supports Full Scanlines and Smallscreen modes. However, it is strongly recommended that you only use VESA 1.2 support if your card cannot support VESA 2.0 (w/ linear framebuffer) since VESA 1.2 runs slower.
Implemented an option to disable Pitch Modulation
Sound card is now not re-initialized whenever a state is saved/loaded since some sound cards seems to have problems with it.
Implemented Single Windowing in the New Gfx 8bit engine, 8x8 and 16x16 tile modes only
Fixed 64k SRAM support when loaded from the GUI
Optimised high resolution new gfx modes in 640x480x256
Fixed the graphic glitches in x488 snes vertical resolution modes in 640x480x256 new gfx mode
Optimised 640x480x256 Eagle Engine
Fixed the GUI background display bug in the new gfx engine
Fixed .SPC capture in the new gfx engine
Added an option to start with the newest save state when the game is loaded. It can be enabled in Config->Options window in the GUI
Slightly optimised new gfx 8bit engine
Fixed several Mode 7 problems in the New Gfx 8bit engine
Changed DSP1 variables to use double instead of floats for a small speed increase. Thanks to Gary Henderson for this tip!
Fixed up the Mode 7 slowdown bug when the scale ratio becomes small in most graphics modes
Optimised some Mode 7 transparency modes
Implemented EXTBG mode 7 into the newgfx 8bit engine
Fixed the 'FIX' feature in the cheat menu. Seems like it wasn't writing any value to memory when it was clicked.
Game Genie codes are now defaulted to the 'FIX'ed mode. Seems like most of the codes needs this.
Implemented windowing to Mode 7, New Gfx Engine 8bit
Added support for .SPC v0.2 format
Added an option in zsnes.cfg to disable configuration saving for those who want to store zsnes.exe in a read-only storage area
Fixed GameKeys display in the GUI for certain keys (such as the snes parallel adapter keys)
Implemented hi-res mode 7 (vertical expand only). Currently only works in 640x480x256 newgfx engine (w/ Eagle and Scanlines disabled).
Fixed an offset per tile mode bug in the new gfx 8bit engine
Implemented dual windowing modes into the new gfx 8bit engine
New Gfx 8bit engine is now the default graphics engine in 256 color modes. It still lacks sprite windowing and also has some sprite flicker issues, but it's overall more stable, faster, and has more features. You can still switch back to the old gfx engine by pressing '8'.
Looks like Pitch Modulation was causing more sound problems than what it's worth. It's now disabled by default, but you can reenable it through the GUI.
Added auto save/load state feature where ZSNES will automatically loads back the previous state when you last properly exited ZSNES. This feature is disabled by default.
Compressed the executable using UPX
Note:
Only use the "a" version of ZSNES if the "c" version doesn't work well on your computer. The "a" version is assembly only and lacks IPX, DSP1, and zip support, however, it is more compatible with different computers.
Related Links:
Check out the ZSNES SPC page.
Check out the ZSNES ZMV page.
Check out the ZSNES ZST page.
Check out the ZSNES CHT page.
Check out the SNES SRM page.
Check out these cool ZSNES icons: (1) , (2)
Go here to see all the older versions.
Thanks to zsKnight, _Demo_, and Pharos for making this excellent emulator. We wish the best of luck to you for whatever the future holds. Be sure to visit the official ZSNES
Home Page.
|