What's New : ------------ v0.9891c - Slightly changed SB16 initialization - Forgot to remove DSP1 debug code - Fixed a pitch modulation bug when Voice 0 modulates Voice 1. Thanks to kode54 for this fix! v0.989c - Fixed some SA-1 sudden slowdowns. This does slow down the overall emulation speed in SA-1 games though. - All sounds were being played at the wrong pitch (slightly higher than normal. It's now fixed so Zsnes should sound better now. Thanks to kode54 for helping out here! v0.988c - Added some SA-1 speed hacks (Kirby DX/Parodius 3) - Implemented SDD-1 MMC. But none of the SDD-1 games run properly yet because of the compression chip. - Fixed up some slowdown problems in SA-1 games - Fixed up dirty CPUID fix for Cyrix CPUs so that you don't have to re-run Zsnes twice every time. v0.987c - Forgot to re-enable pitch modulation after disabling it for debugging purposes. v0.986c - Re-added Sound Buffering. I was hoping to re-write it, but later found out that it wasn't worth the trouble. - Fixed some Triple Buffering bugs, but I can't figure out that flicker glitch on NVidia cards - Added Simulated Triple Buffering for cards without VESA 3.0 Hardware triple buffering. This method does some lose frames, but should be faster than v-sync. This only works on VESA 2.0 modes. - Fixed up directory sorting to always put ./.. at the top. v0.985c - Added some more speedups to the SA-1 - SA-1: Fixed a branch problem with the BRL instruction - Implemented Save Ram support into netplay. Thanks to The Minder for help testing this! - Added a hack to get Mario Paint trainered rom with the trainer removed to work with the snes mouse instead of the keyboard/joystick - Prevented Joystick Keys/Buttons to be selected as the diagonal keys in the GUI - Fixed some crashing problems with the Modem Mode - Implemented a key combination editor in the GUI - Sped up V-Sync - Fixed an SA-1 memory map bug! Fixes DBZ:HD. - Added an small speed hack for DBZ:HD - Implemented SA-1 Super MMC - Finally, after many, many hours of hacking. Figured out what caused the odd noise sounds! So far, simulated noise is implemented since the true nature of how this noise is produced is unknown so it will sound somewhat off compared to the original sounds. There is also a slight chance that some sounds will become noise incorrectly and vice versa. - Fixed up Pitch Modulation - Fixed SNES Mouse/Super Scope support when Pl3/4 as Pl1/2 option is enabled - ADSR/GAIN overhaul (Sound DSP) : - Fixed several GAIN bugs - Implemented Increase Bentline/Decrease Exp GAIN modes properly - Rewrote Decay/Sustain modes in ADSR - Fixed a restarting ADSR bug - Removed Sound Buffering. I don't think it's worth losing the quality of the sound for a small amount of speed boost. - Implemented an option to disable the Noise Simulation for those games that aren't working properly because of it - Implemented Triple Buffering. You can enable this through the Video Options in the GUI. Unfortunately, Triple Buffering won't work with 2xSaI/Super Eagle engine at the moment since they rely on the previous screen for updating nor will it work properly with high resolution games in the old gfx engine. Thanks to GreenImp for patiently helping through testing! - Implemented Full Screen Interpolation. Only works on MMX CPU's at the moment. - Implemented Cheat Code Reflector (See Guinotes.txt for details) - Any proper VESA 2 error messages now doesn't exit the program when in the GUI but instead display the error message in a box and allows the user to continue. Thanks to Daniel for lending me his copier which helped me hack the SNES Sound Noise/ADSR stuff! v0.963c - Fixed DMA position reader to fix the high sample rate problem in SB-Live! cards. Thanks to ShihTzu for helping us with this! - Removed SB16 only message under stereo option in commandline help. Shouldn't really be there since v0.600. - Low Pass Filter is now disabled by default. But you can still enable it through the GUI. - Implemented an option in the GUI to not allow Zsnes to change the current start-up game path in the configuration. You can access this in Config->Options. - Joystick calibration values have been reset since there seems to be some problems with it. You may have to re-calibrate your joystick if it doesn't respond correctly. v0.962c - Exit text now only displays when text mode is 80x25 - Used hardware DMA counter to determine which sound block to write to rather than assuming it always starts at the first one for the sound routines. This should hopefully fix all those nasty sound static problems many people seems to have. Many thanks to Crono for the code and for his help! - Removed Re-Init Every 30 Second option. Shouldn't be needed anymore - Added the ability to disable the Low Pass Filter - Implemented Diagonal Keys - Implemented some SA-1 speedups v0.960c - Modified header reader a bit - DSP/SPC700: Modified EndX register usage to fix some compatibility - DSP/SPC700: Fixed up timing registers - DSP/SPC700: Fixed a sample looping bug causing many sounds to not sound correctly - SPC700: Fixed a small bug in TCALL. Not sure if it fixes anything - Added small optimisations to the MMX video copy routines - Fixed an adsr -> gain switching bug - Extended maximum number of cheat codes from 75 to 255 - Altered .spc format again, this time to suit the ID666 format - Worked a bit on SDD-1 emulation. Don't think we can go any further since we can't seem to figure out the compression algorithm used in that chip. - DSP/SPC700: Added low-pass filter by kode54. Thanks kode54 for the code! This enhances bass in some games. - SA-1: Fixed memory map access problems with several stack instructions and d-page instructions - SA-1: Minor fix to the timing - SA-1: Fixed a load state problem which causes Zsnes to crash sometimes - SA-1: Fixed a small problem with the cpu communication register - SA-1: Added a small speed hack for Kirby 3 - Added some transparency hacks (Kirby3, FF3) - Added an sram fix hack for Donkey Kong Country 2 trainer version - GUI now displays a message when SAVE CFG is selected - Added on-screen messages to the Background/Sound channel toggle keys - Added the missing video mode descriptions in the .cfg and commandline help v0.953c- 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. v0.952c- 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 v0.951c- 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. v0.950c- 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. v0.941c- Fixed a small newly created timing bug - Fixed flicker bug in 320x480x65536 video mode during high snes resolution mode v0.940c- 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 v0.915c- 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 v0.910c- 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 v0.900c- 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