What's New : ------------ v1.17, Win v0.85 - Added slow-down key. You can configure it in Misc -> Game Keys - Invulnerability bug of the 3rd boss in Demon's Crest in the good checksum roms is fixed through rom mirroring I also noticed that this fix is the same as what the author of SNEeSe told me before about on some MegamanX1 roms, but I never had that rom so I never added this until now. Guess that rom is also fixed too. - Changed memory initialization values - Lost Viking 2 works again - 65816: Fixed WAI instruction timing with HIRQ's Top Gear 2 - 2 player mode works now - Improved IRQ re-execution timing precision - Starfox 2 beta now runs with sound! - Fixed flickering problem in Starfox 2 beta - Added Mode 2 16x16 tile offset per tile mode - (Win32) Improved the timestamps on UDP headers. This should (hopefully) solve those out of sync (where both sides see different things) problems with certain connections (ie. T1/LAN connections) in netplay. - (Win32) Added a big notice in netplay.txt. For all of you who used netplay and had poor experiences with a ping time of less than 300ms, read it! Also added a more realistic system requirements description for decent netplay in netplay.txt rather than a cpu speed estimate. - Changed reverse stereo method to become invisible to the sound registers in emulation v1.14, Win v0.80 - Fixed configuration files from removing spaces from directory names - (DOS) Fixed 640x480 vesa2 scanline+interpolation display problem - (Win32) Improved Windows speed in 32-bit windowed mode. Should give around an 18% speed increase in FPS. - (Win32) More netplay improvements. Shouldn't be as jumpy when one side lacks input. - (Win32) Starting netplay will now force the max frameskip to 3 if it is less than it and also force on auto frameskip. - (Win32) MMX optimised netplay with back buffer enabled. - (Win32) Fixed load state in netplay to load properly instead of sometimes stalling for no reason - (DOS) Accidently deleted the code to initialize IPX. Fixed now. - Fixed a configuration loading problem when loading ZSNES from a different directory. - (Win32) Attempted to fix those out of sync problems (although I don't know if it's fixed now since those problems rarely happen to me) - (Win32) Displayed the current filename in the load window for those files with extra long names. - (Win32) Added nickname support to NetPlay. There's a 9 character nickname size limit. - (Win32) Added actions to chat (similar to how mIRC works - use /me ) - (Win32) Nicknames can be changed in the windowed chat by typing /nick - Added a small buffer to the in-game chat to allow up to 5 chat strings displayed at once. - Local chat strings now appear in that buffer - Thickened black borders on the 5x5 font - Extended in-game chat length by around 30 characters - Fixed up Interpolation v1.12, Win v0.74 - (Win32) Hopefully fixed up those green display bugs in scanlines/2xSaI in 1:5:5:5 16bit modes. - (Win32) Improved lost packet recovery time and reduced the number of lost packet stalls in UDP netplay (should produce more fluid netplay) - (Win32) Fixed up crashing bug in Tales of Phantasia with a 512 byte header - Extended filename length of the Quick Menu - (Win32) Hopefully fixed up the mouse wheel support for certain mice - Temp .ZIP directory is now cleared if it exists prior to another .ZIP file being loaded. - (Win32) Improved DirectInput error handling v1.11, Win v0.72 - (Win32) ZSNESw won't crash anymore if you don't have a soundcard or if DirectSound fails to initialize. - (Win32) Fixed a nasty performance bug with certain types of joystick/drivers installed, causing the FPS to be slower for no reason. - (Win32) Wrote an MMX optimised blitter for 16bit non-D windowed and full screen modes. - (Win32) Added simple wheel mouse support. v1.10, Win v0.70 - Fixed games that turns on the x239 resolution (eg. Chrono Trigger battles) when scanline mode is enabled - (Win32) Fixed up crashing bugs on extra long filenames with underscores - (Win32) Hopefully fixed the odd colored interpolation in 1:5:5:5 16bit color settings - (Win32) Hopefully won't crash anymore when the temporary directory exists prior to unzipping a .zip file - (Win32) Fixed loading of .zip files with more than 2 '.'s in the filename. Thanks to DCX for helping us troubleshoot this. - (Win32) Fixed up short filename saveram/save states loading when the long filename has spaces in it. - Added TCP/IP Support. It is recommended that for playable netplay, you'd have an average ping time of less than 300ms (type ping in dos) and that packet loss is minimal for TCP/IP (not UDP). At the moment, you cannot have more than 2 connections Thanks for all the testers for testing this, especially DooMStalK, GreenImp, and TeleKawaru! Also added back buffer support. This will sacrifice cpu power for netplay to make it much more playable. WARNING: High cpu speed recommendations (~450mhz+). Please see netplay.txt for details. - Added save states to netplay (just use them like you normally do) - Save Ram is now defaulted to load/save on the server's side Save Ram are not supported in SA-1/SuperFX games due to their size, but you can use save states instead in that case. - Increased chat line length in the out-of-game chatbox by a lot - Partly increased the chat line length in-game - in-game chat text now stays longer on-screen by 2 seconds - Added reset in netplay - Fixed up movie recording feature - (Win32) Mouse shouldn't get stuck on the left side anymore. - (Win32) Video mode 3 (256x224FS) shouldn't crash anymore. Thanks to kode54 for his assistance on the above 2 bugfixes. - (Win32) Fixed the instability bug where the window can sometimes start shaking for no reason and takes away windows resources. - (Win32) Re-wrote keyboard character input routines - Fixed up FF2(4)'s music in lower sampling rates - (Win32) Coded in the UDP protocol as a replacement for TCP/IP. Some network configurations won't work with UDP. However, it is strongly recommended that you use UDP if you can because of the speed increase. In order to disable UDP and use TCP/IP, both sides must de-select UDP. - (Win32) Added a small multiplayer game list (multi.txt) - Added an updated Windows FAQ, courtesy of TuxedoMsk of VGNetwork who updated it. - Added a more user friendly input selection routine (changed Direct Input to Keyb/Joystick and it also auto-sets keyb/Joystick when you set a key) - Hopefully fixed up the sprite priority problems (eg. FF2/4's damage points) - (Win32) Added rewind support for up to 8 levels (in 8 second intervals) (NOTE: Windows Port only! - Sorry DOS Port users). In order to activate this, assign a key to the Rewind Key in the Misc -> GameKeys option. Note: Netplay plays really nice as long as the net connection is not unstable, both sides have a fast cpu (speed requirements depend on the game), and at least have a 28.8 connection. *** PLEASE READ ZSNESW.TXT IF YOU ARE STILL HAVING PROBLEMS WITH THE WINDOWS PORT v1.01 - Fixed a problem with offset per tile mode with MMX2 in the new 16bit engine - Fixed crashing problem in MMX2 (Win port) - Removed clock option (Win port) - Disabling the new graphics 16bit engine is now properly saved in the configuration files - Added the win port version number to the about box (Win port) - Fixed the % of execution problem in IPX/Modem modes v1.000 - Implemented C4 emulation : - C4 Sprite structure -> OAM conversion routines - Sprite Rotate/Scale ability - Sprite disintegrate function - All in-game used math co-processor functions (hopefully) - Both wireframe modes - There are still some problems with C4 emulation, but I'd consider them to be quite minor to just leave them there. Thanks to StarCreator for recording a bunch of movies off of the real snes for me to compare! - Tweaked ADSR a bit - Decreased envelope when key on is issued while sound is still playing. This fixed static/popping sound bugs that affected many games. - Added the ability to select the Add-on device (Snes Mouse/Super Scope) from the GUI through the Add-on option in the Config Menu - Added a hack to allow the mouse to control the cursor in Lethal Enforcers (Press '7' 4 times to activate or select it from the Add-on option in the Config Menu). Unfortunately, this method has problems (ie. mouse moves things that it shouldn't) but it should be good enough, especially for those who asked for this. I doubt this works in LE2, however. - Added a manual load entry box so that you can type in the filenames/directories manually or type in part of the filename and the GUI will seek to whichever filename contains or closely contains that part - Pharos coded a water effect, getting help from Scott Scriven's water effect code. - You can enable/disable the Water Effect and Snow Effect from the GUI Options (MISC Menu in the GUI) - Implemented Sprite Windowing to the new gfx 8bit engine. This completes all the features that I have planned for that engine. - Fixed a really nasty stereo bug that caused volume levels/pans to sound completely off on one of the speakers - Added player 5 as a normal player instead of just being available in modem/ipx play - Implemented an option to turn in-game messages/fps display to be transparent - Added a Set Keys feature to the Input Routines in the GUI that allows you to set all of the standard SNES keys all at once instead of clicking on the inputs separately to set them - Ported the new graphics 8bit engine to 16bit: - All the standard snes features from the 8bit engine - Works with all 16bit resolution modes/effects - Ported high resolution Mode 7 - Added proper main/sub screen support and windowing support - Added all transparencies modes - Added Direct Color Mode7 - 2xSaI and 50/75% scanlines can now co-exist with high resolution modes - This is now the default engine for 16bit. Some games won't work well with this engine such as some SuperFX games (eg. Stunt Race FX in the menus). You can switch back to the old graphics engine by pressing the '8' key. - Implemented a dual cache system in the tile modes. I don't know how much of a speed increase this gives since my system can already run the old graphics engine at full speed and framerate. - Full 15bit transparencies for MMX cpus only. - High Resolution Mode7 can be toggled on/off in the Video Options. It is disabled by default since this feature requires a fast CPU. - Added 48khz sound sampling rate - Tweaked VBlank timing a bit - Tweaked 65816 CPU cycle execution a bit - Added Kreed's Super 2xSaI engine. It's written in C, so it requires a really fast cpu to run it. - Added picture preview to the save states in the F3 window. Newly created save states will contain a small picture in them. Pictures will not appear in old save states, however. v0.991 - Disabled 2xSaI/Super Eagle when in the GUI - Fixed up cheat code search (Got broken in v0.990 during port preparation) v0.990 - Added speed hack for Kirby Super Star (US) - SPC700 (Sound cpu emulation) is now enabled by default whether sound is enabled or not. Emulation will now be slower than normal if you usually run with sound off, but the compatibility is higher. However, you can disable this through the options window in the GUI if speed is of your concern. Also, a few games only run with it disabled so this option may be useful in those cases. - Decreased cheat code description length by 1 since the last letter was causing some corruption to the next cheat code - Added an option to raise the pitch level to the pre-v0.989 pitch levels, mainly for non-Creative brand sound cards. - You can now change the sound settings (Enable Sound, Stereo, Sound Frequency) with immediate effects without re-starting ZSNES. However, there seems to be some problems with stereo switching on SB Live!'s. - Configuration is now saved whenever you exit the GUI instead of just exiting the program - Lots of port preparation done on the source. - Memory/Commandline fix on the C version. A version should not be needed anymore (hopefully) - The GUI is now using the standard in-game video blitter rather than it own. - Fixed up SnapShot key in 8bit mode - Implemented 4-point gaussian interpolation. This is the interpolation used by the actual snes! Many thanks goes to Neill Corlett for his work on finding this info! Of course, this routine takes up an extra cpu load so emulation will slow down a bit if your computer isn't fast enough, but you can always disable interpolation through the sound options. - Fixed up Pitch Modulation method. Thanks again, Neill! - Pitch modulation was modulating from the wrong channel. Fixed. - Tweaked SuperFX timing. - Added a move window feature to the F1 menu - Expanded filename length in the GUI display for long filenames by 3, but had to decrease the directory name by 2. - Added support for % codes in long filenames 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 v0.800c- Fixed up sound speeds. Timers were computed incorrectly. - Fixed a sprite priority bug - Fixed up a bug that prevented the gui to be disabled - Fixed up SPC capture - Fixed a bug when VIRQ is set on the same scanline as NMI - Implemented an automatic .IPS patcher. Just rename your .IPS file to the rom filename with the .IPS extension and ZSNES will patch the rom realtime without modifying the rom file's contents. Thanks to Neill Corlett for most of the .IPS info! - Snapshot capture/skip 2 frames option now returns back to the proper menu item - Fixed a calibration bug with 6/8button joysticks - Fixed up display in 640x480x8 new gfx engine - Fixed up hi resolution displays in all 640x480x8b modes - Fixed up a bug where Mode 7 becomes corrupt after selecting Save CFG from the GUI - Fixed a memory map bug in lorom DSP1 games - Fixed a potential DSP1 crashing bug where a negative value is being square rooted - Hopefully fixed the modem bug when using an IRQ that is bigger than 7 - Fixed up an ADSR bug for games that changes ADSR mid-sample - Fixed up echo emulation (possibly slowed down emulation) - Fixed up a sprite caching bug - Fixed up a DSP1 byte check stall bug - Implemented a commandline to disable spc700 speed hacks (-7) Might help with some compatibility - Implemented SA-1 support (most functions emulated)! Unfortunately, it's still buggy. Thanks to the snes9x team for providing info! - Fixed a bug when selecting drive A/B while a disk is not in the drive caused a long check sequence - Implemented Keyboard support to most of Option, Sound, and GUI Option configurations in the GUI - Changed sound init code a bit. Hopefully improves sound card compatibility, but might also ruin it. - Implemented off by 1 line fix (-9). This may help compatibility and fix some minor graphic glitches, but may also ruin some too. v0.715 - Fixed a crashing bug when 16bit back window clipping was using an undefined windowing clip buffer - Added spc program counter check to the spc stall detection to reduce false alarms - Tweaked IRQ processing a bit - ZSNES.CFG and ZGUICFG.DAT are now fixed so that they will use the current directory when the SET CMDLINE detection fails - Fixed several mode 7 bugs in the new graphic engines - Implemented an option to save the configuration files in the MISC menu - Added a shadow to the in-game text displays - Fixed a bug created in v0.700 where pressing F3 while sound is disabled crashes zsnes - Fixed up player 4 and player 5 so they now work again - Fixed up color a bit in the old graphics 16bit engine - Added gamma control to 16bit old graphics engine - Fixed a cheat code bug where pressing the down key in the browser overflows by 3 rows - Fixed up a bug where any memory allocation below 48mbit support crashes - Added out of memory error when loading a file from the gui - Fixed a minor off by 1 pixel windowing bug - Fixed up memory requirements in the readme.txt. It seems like compiling with C takes up 3.0 more megs. It shouldn't though. An asm only version will be release later without dsp1/ipx support unless the reason is figured out. NOTE : It seems like IPX mode randomly loses packets in certain configurations so IPX isn't recommended to use yet. v0.700 - Fixed another offset per tile mode bug - Fixed up joystick button update rate - Fixed a bug that caused sound buffer dump option to crash - Fixed a minor sound initialization bug - ZSNES now compiles with C code! - Fully rewritten commandline parser routines - Partially rewritten SET BLASTER/SET CMDLINE detection - Implemented partial DSP1 support. Seems to have some precision problems. Thanks to the snes9x team for the info! - Fixed a mode 7 nonrepeat mode off by 1 tile bug - Implemented snapshot/increment by 2 frame feature in the F1 menu for those interested in producing animations - Added variable sound buffer size to reduce static in higher sampling rates - Changed method of reading the mouse cursor position in the GUI. Hopefully, this fixes those mouse crash problems when zsnes is run in pure dos and sometimes win95. - Added a commandline to disable palette 0 (back color) modification in 256 color modes - Implemented Turbo Buttons for buttons A,B,X, and Y. Use the GUI to define those keys - Added the ability to toggle Turbo Change speed to 30hz instead of 60hz in the Options menu - Started C4 chip emulation. Nothing is playable yet. - Fixed up SET CMDLINE detection. Hopefully, zsnes.cfg and zguicfg.dat will now end up in the correct directory. - Started Modem Support (direct modem to modem). DOS-Compatible modem required! Thanks to Dark Force for helping out on getting a bug that kept USR's and other modems from working! Also thanks to The Minder for a lot of help testing! Note : Modem mode isn't free of bugs - Added in-game chat key to the GUI keys for modem/net support. Currently defaulted to 't' - Forgot to add EMMS after any MMX routines that seems to cause any FPU instructions to crash - Fixed an interrupt re-enable bug in the Gamepad Pro code which seems to have eliminated the locking bugs when it's not set on GrIP mode - Implemented keys to adjust Frame Rate up or down during gameplay. You can define them through the GUI under Gamekeys - Implemented keys to slide the volume level up or down during gameplay - Fixed a small HDMA screw up bug when using Save/Load states which caused the screen to flicker once in many games - Finally fix up 48mbit mapper support! Many thanks to Dark Force, Mike Gilroy, and Frank Hughes for a lot of help on this! - Several fixes to register 4211h - Rewrote IRQ timing handler (not perfect, but better) - Implemented Fossil Driver support to the modem support. - Fixed an IRQ reenable bug - Increased default cycles a bit - Fixed some major mode 7 rotation bugs - Added support for uninterleaved 48mbit roms - Added a FIX option to the cheat code to correct incorrectly converted codes - Implemented Mode 7 horizontal flip - Implemented primitive IPX support. It is very primitive at the moment and may not work since it isn't really tested much. - Optimised some 65816 direct page addressing modes NOTE : .ZMV (Movie) files recorded under v0.635 has good potential on becoming obsolete in this version because of the timing changes NOTE : IPX support and Modem support may be buggy since it hasn't been tested on multiple types of connections yet. v0.635 - Sidewinder fix options are now swapped since the majority seems to work better with the other sidewinder routine. - Implemented EXTBG mode7 in 256 color old graphics engine. - Fixed a DSP Sound bug where some sound effects weren't played in certain games - Tweaked joystick routines again - Fixed up a bug where sometimes loading a game after playing another game screws up emulation - Optimised 640x480x8, 512x384x8, and 512x384x16 video modes - Implemented EXTBG mode7 in 65536 color old graphics engine. - Fixed an offset per tile mode range clipping bug - Fixed up offset per tile mode in new gfx 8bit engine - Fixed a bug which caused a crash when a state is loaded while playing/recording a movie file - Optimised new gfx 16bit non-transparency mode - Implemented SPC700 stall detection/recovery attempt - Fixed up a new header detection bug in v0.625 - Modified memory allocation routines. Hope this fixes those random crash problems that some people seem to have - Fixed a sound bug where the song leaks after it ends, sometimes producing an unwanted beep - Optimised new gfx 16bit transparency modes - Multiple DSP sound bug fixes - Implemented transparencies in high res 16x8 tiles - Implemented a command line to disable the sound DSP (-dd). Use -s and -dd if you want spc700 emulation to be enabled without sound to improve compatibility - Fixed a bug where joystick support makes the emulation slow - Had to remove some memory allocated variables and convert them to arrays since they were causing random crashes on specific computers. - Fixed up pressing save state/load state in game so that it doesn't clear any key presses v0.625 - Fixed up a major speed drop bug by just adding some empty space. Most likely a cache/alignment problem. - Used an older version of wdosx because the new version sometimes crashes during compiling - Executable is now uncompressed. It's 3 megs, but it provides a much faster start up time. - Seems like EPACK can only support a maximum of 6 commandlines. Fixed after executable is decompressed - Fixed a bug where buttons 7 and 8 of 8 button joystick support sticks once pressed - Swapped button 5/6 and 7/8 in the default joystick configuration for 8 button joysticks - It seems like 16bit HDMA < 5 was causing problems with some sound cards. It now reroutes back to 8bit DMA like how v0.400 did it. - Implemented a new offset per tile mode engine into the old graphics engine (mostly transferred from 8bit newgfx engine) - Implemented Horizontal offset per tile mode in both 8bit and 16 bit old graphics engine (Mode2/8x8 only) - Implemented Horizontal offset per tile mode in 8bit new graphics engine (Mode2/8x8 only) - Tweaked sidewinder routines. Hopefully, this will help those who have troubles using sidewinder support - For those with sidewinder pads who has troubles with the tweaked routines, a 'Sidewinder Fix' option in the GUI is added in the Config/Options menu - Commandline -i now uninterleaves an incorrectly interleaved rom - Tweaked GamePad Pro routines. Not exactly sure if this will help those with 2 GPP joysticks though - Fixed up sticky buttons in the GUI cheat menu when no cheat codes are present - Fixed a bug where using -1 and -2 in the commandlines didn't activate the joystick movement/buttons - Fixed an offset per tile mode wrapping bug - ZSNES will now not crash when zsnes.cfg and zguicfg.dat are write protected files - Fixed up the GUI when 239 y resolution is used in the game - Optimised some minor mode 7 routines - SNES Header display in the GUI now displays the filename for blank headers. This will fail for headers with garbled header names - Inserted an extra reminder in the cheat menu - Implemented 239 y-resolution support for .PCX snapshots - Implemented 239 y-resolution support for .BMP snapshots - Added multiple .SPC saves (Up to 10 saves only) - Save State Selection Menu (default F3) now highlights used state boxes in red - Tweaked 2player/6button/8button joystick routines a bit - Fixed a cheat code bug where pressing TAB adds an extra character at the end of the address - Removed the blank line from the .PCX and .BMP snapshots - Implemented Joystick Calibration for non digital joysticks - Fixed a bug where parallel port LPT2 player 2 wasn't selectable in v0.605 - Stabilized the joystick code a bit - Fixed up a cheat code bug where using a PAR code that accesses RAM doesn't freeze when the .cht file is loaded - Added a small delay to play a note when a key on is issued from the sound DSP. Not sure if this fixes anything though - Fixed some sound compatibility problems when RESET is used - Implemented Movie Record/Playback support. Read GUINotes.txt for details. - Added a small detection for long filenames and prevented users from selecting it when it isn't detected - Fixed a bug where max frame skip didn't save - Fix a timing bug where running a game off the gui ran 1 less line in the 65816 than running off the commandline - Implemented FPS at start option in the Config/Options menu - Fixed a bug in the newgfx16bit engine where 8bpp tiles displayed incorrectly - Reduced the filesize by 1200k through many changes in the code (filesize is now 2.0 megs) - Fixed some VIRQ bugs that caused certain games to crash - Added DMA area execution for IRET - Added a 'Bugs Section' in the readme.txt - Show all extensions is now disabled when snes header view is selected in the GUI - Implemented partial Direct Color mode in Mode 7 (no transparencies yet, only works in 16bit old gfx engine) - Improved header detection a bit - Fixed up a sprite bug in games which changes the address in the middle of the screen v0.605 - Fixed up a FPS display bug when switching between auto frame rate and manual frame rate in the GUI - Cheat Codes can now be toggled ON/OFF by double clicking on them - Tab key now switches from the Cheat Code enter box to the Description box - Fixed a Save State/Load State bug in the menu where it saved in the load directory instead of the save directory - Implemented 8button joystick support (Not tested) - Implemented an option in the .cfg file to enable reversed stereo sound (ReverseStereo) - Implemented an option in the .cfg file to share Player 1 and Player 2 controls with Player 3 and Player 4's controls. This option allows you to use 2 devices (Joystick and Keyboard) for both player 1 and player 2, but this also disables MultiTap support. (Pl34to12Share) - Added Reverse Stereo to the GUI under config/sound - Added Player 3, Player 4 to use as Player 1, Player 2 in the GUI under config/options - Compiled under a new version of wdosx. Hope this doesn't cause any problems v0.601 - Fixed up a sound card deinit bug that sometimes caused ZSNES to crash in certain sound cards - Disabled Autoinit mode when a low sampling rate is used in 8bit sound. Probabily was also causing problems in some cards Note : The offset per tile mode in the 16bit oldgfx engine seems to randomly crash sometimes for an unknown reason. If 16bit mode crashes for you and 8bit doesn't, press the '0' key in 16bit mode to disable that mode. v0.600 *** ADDED A NEW MEMBER TO THE ZSNES TEAM! *** Welcome Pharos to the team, his role is currently a coding assitant. So far, he helped us objectize the zsnes source code which greatly helped in the compile time, provided assembly help, and helped us prepare on linking C code to zsnes (not completely there yet). Note : It is strongly recommended to not use the 16-bit new graphics engine yet because of bugs and speed concerns. It is enabled only in 320x240x65536 for those who are interested. - Added partial 65816 execution in the DMA registers (doesn't seem to fix mucht due to some other problem) Thanks to Alucard for this info! This also slowed down emulation a bit. - Implemented sprite priority correction into the new graphics engine - Implemented mosaic into the new graphics engine - Implemented true 512 horizontal resolution into new graphics engine (both 16x8 and 16x16 tile modes) - Implemented interlaced 448 vertical resolution into new graphics engine - Implemented offset per tile mode into the new graphics engine (Mode 2/Vertical only). More accurate compared to the old graphics engine. (seems to be a bug where the game gets very slow sometimes though) - Started 16-bit new graphics engine - Implemented sprite priority correction in 16bit new gfx engine - Implemented palette raster effects in 16bit new gfx engine - Fixed a minor bg enable/disable bug in the new gfx engine - Multiple SPC700 bug fixes. More games run now! - Implemented SPCPlay sound engine into zsnes : - Echo & FIR Filter Support (Slowed down emulation, but gives better sound) Thanks to feenix65 for info on FIR Filter! - Volume fixes - Rewrote ADSR/GAIN engine - Added Adjustable Volume through the commandline and zsnes.cfg - 16000 and 32000 extra sampling rates - Many other bug fixes - Fixed a minor HDMA bug - Fixed an old style joystick read bug that prevented the joypad from functioning in certain games - Several optimisations on Echo & FIR Filter - Several Sound DSP Fixes - Temporarily fixed a V-latch bug in some games that don't update the display at every frame - Add/Removed some game hacks for compatibility - Modified Song Start Search in .spc capture. Should be much better now. - Fixed a sprite window clipping bug where it was used when it's not supposed to be. - Modified memory allocation technique in zsnes. This should now eliminate some random crash errors. Thanks to Y0SHi for this info! - -c now does full screen instead of small screen in 640x480 modes. For small screen, use -cc - Fixed a back area 1/2 addition bug which caused the background to be sometimes darker than usual - Fixed a mode 7 transparency bug - Added 8-bit stereo sound and 8-bit sound high speed mode support (high speed mode support is just the implementation of 8bit 44100khz or 22050khz stereo) Thanks to Crono for a lot of help on this! - Fixed up sound blaster deinit code Thanks again to Crono! - Wrote an entirely new GUI : - Mouse driven GUI/Menu Based - Full Keyboard Support in all the Quick (Arrow Menu), Load, and Cheat menu items - Ability to display load names under 8.3 filename format, snes header name, and win95 long filenames - Support for Save State, Load State, and Select State through menu items - Quick Load Menu (Arrow menu) which allows you to quickly load the last 10 games loaded - Ability to Freeze or Clear the Quick Load Menu - An Options menu which allows you to configure settings such as video mode, sound settings, frame skip, etc. - Added the ability to customize the game keys such as the save state key, misc toggles, etc. - Ability to use those keys as joystick buttons - Customizeable background palette displacement - Several minor GUI customization features - Ability to quickly exit/enter the GUI with the right mouse button (Disabled by default) - Ability to Enter Game Genie, Pro Action Replay, or Game Finger Cheat Codes - Ability to browse the cheat codes and Toggle or Remove the codes - Ability to Save/Load Cheat Codes (saves them as .CHT files in the same directory as the .SRM/.ZST files) - Ability to Select Input Devices for each joypad - Ability to Define Keys/Button configuration for each joypad - Joypad can now move in the GUI (disabled by default) - Added some future reserve menus (Netplay, Cheat Search Engine) But they are NOT implemented in zsnes yet. - Fixed a bug when clearing the screen in 640x480x65536 - Implemented full add, half add, full subtract, and half subtract into the new 16bit graphics engine Not sure why, but some transparency modes are actually slower than the old engine. Most likely flushing the cache a lot somewhere. - Implemented background transparencies into new 16bit graphics engine (implemented incorrectly at the moment. Some transparency modes also is slower than the old graphics engine, but that will change in the future) - Implemented fixed color transparencies (very incorrect because of lack of windowing) - Fixed a minor bug in the fast forward routines - Rewrote most of the 65816 speed hack. It should now be a lot more friendly with games (reduced graphic glitches/increased compatibility). - Fixed a bug in Mode7 with Windowing and Transparency enabled - Allowed 16bit HDMA sound blaster values less than 5 to be used. Not exactly sure if this works though. - Implemented Mouse Disable Command Line (-j) - Rewrote Input Device Routines (Keyboard, Joystick, SNES Mouse, and Super Scope Handlers) - Added GamePad Pro Support (Don't know if it works on a standard GrIP system though). Thanks to Marius Fodor for the code! - Added Snes Parallel Port Support for both LPT1 and LPT2. Thanks to Karl for the code! - Added MultiTap (Multiplayer 5) Support! (Only up to 4 players at the moment though) - Joystick Port 209h support - Fixed an overflow caching bug in the new gfx engine where a few games run very slow - Added some C -> ASM converted DSP1 functions. Some functions were unable to convert properly so no DSP1 games are playable until the actual C code is in - Executable is now compressed using epack - Implemented sprite transparency into the 16-bit new graphics engine - Implemented mode7 transparency into the 16-bit new graphics engine - Higher memory requirements (Sorry, but this is unavoidable as long as ZSNES keeps expanding) - Implemented Echo Disable in the zsnes.cfg for those who want some extra speed in return for lost sound quality - A bunch of other fixes that we forgot to list v0.400 - Fixed a dual windowing bug in mode 7 in 65536 color mode - Re-added FPU Copy due to a demand - Implemented MMX Copy. Use -om to enable. Thanks to Angels Holocaust for this info! - Fixed a bug when writing to .bmp files - Added (buggy) SuperFX support (9.5MB memory required) Special thanks to the snes9x team for all the info and help! - Fixed up sprite windowing. Should hopefully be correct now - Added a commandline to show all file extensions through the GUI Use -sa to enable - Added Noise to the Sound DSP - Added a Fast Forward key. Use the Tilde Key (~) located at the top-left of your keyboard. - Added Sprite Priority Correction - Fixed a tile caching bug that caused some tile corruption - Fixed a 65816 bug in XCE on the x flag. Thanks to ]SiMKiN[ for this! - Implemented Interleaved format and a simple auto detection. In case autodetect fails, use -i. Thanks to feenix65 for this info! - Improved header detection. Should now work better with demos and games with weird filesizes - Added a new graphics engine in 256 color mode. It should be much faster in areas that don't use mode 7, but lacks a lot of features such as windowing, mosaic, and sprite priorities so it is disabled by default. It can be enabled by pressing 8 during gameplay. (~40-100% faster) - Optimised Mode 7 in 256 color mode - Implemented dual windowing to color window clipping - Fixed several color window clipping bugs - Added full resolution screenshot capture in 640x480x65536 mode To activate while in that mode, hold backspace and press F1 - Fixed several transparency bugs - Added NewGfx to zsnes.cfg which determines if the new graphics engine is enabled at start - Added CopyMethod to zsnes.cfg which can default the copy method as either fpu copy or mmx copy - Allowed systems with 5.5MB of RAM free to load 2mbit roms - Fixed sidewinder support when sound is set at a high sampling rate. Thanks to Marius Fodor for the source! v0.393 - Whoops! Forgot to remove the debug variables in v0.391 - Fixed another sprite clipping bug - Fixed clipping in Mode7 16-bit mode - Removed FPU Copy since it didn't seem to speed up emulation - Added .USA and .JAP rom extension into the GUI - Added Save SPC Data which saves the contents of the SPC700/DSP of the beginning of the next song (Future Reserved) - Add Sound Buffer Dump which dumps the decompressed sound buffer as raw pcm. This can become quite inaccurate due to the way how zsnes stores its decompressed sounds. - Added MenuItem Sound Buffer Dump into the F1 Menu - Added MenuItem Save SPC Data into the F1 Menu - Added a key to disable offset mode. Press 0 key to activate/deactivate - Added small screen support in 640x480VESA2 modes. This mode should be much faster for those who use 640x480. Use the -c commandline to enable this when in 640x480. - Added an option for centered small screen. Use the -cc commandline. - Fixed up 320x240x65536 support for ARGB cards again. It now should be working. (No, seriously!) - Removed some static from the sound. v0.391 - Fixed a bug in DMA from v0.390 - Fixed some sprite windowing clipping bugs - Fixed an OAM overflow bug. Thanks to DJRob for some help on this! - Fixed a save state bug where running a game off the commandline and having a save directory specified prevented more than 1 save state - Fixed a transparency bug from v0.390 v0.390 - Fixed a bug which caused 320x240x65536 to display incorrectly on video cards with an 16-bit ARGB setting - Fixed a minor screen add/sub bug - Fixed a minor sprite priority bug - Fixed a BG3 priority bug in BG Mode 0 - Fixed a color window addition bug - Fixed a minor VIRQ enable bug - Swapped The Cursor Button and Autofire Switch in Super Scope - Fixed a joystick read timing bug - Sound volume register returned an invalid value. Now fixed. - Added some dword alignment to some variables. Thanks to Marius Fodor for this info! - Implemented 64k sram files - Implemented Sprite VRAM address changing in the middle of the screen. Should fix some games such as Lufia 2 - Added some hacks to get some games working better - DSP : Fixed a divide by 0 bug when key on is set without any sound variables initialized - Increased default cycles executed in FastROM. - Added ZSNES.FAQ . Read this if you have troubles! - Added a key to disable/enable Windowing. Press 9 to activate this. - Implemented EAGLE algorithm in 640x480x256 video mode. Use -y to enable. Thanks to A CoolMan for the algorithm! Later on, we'll implement his code which has MMX acceleration! - Implemented FPU copy. Use -o to enable. Used only when copying buffer to video in 320x240 vesa2 modes. - Re-wrote Windowing routines for speed and expandability - Added Dual Windowing on BGs in all logic modes - Added Dual Windowing on Sprites - Added some minor stuff to the header displayer - Added partial offset per tile mode. (Mode 2/Vertical/8x8) Thanks to the feenix65 for some help on this! Implementation still a bit buggy. - Sorry, but memory requirements had to increase by a bit. - Fixed a tile graphics wrapping bug - Clean up and optimised 16-bit graphics code - Fixed up a display bug when switching from 239 to 224 y resolution - Optimised some video processing code. Thanks to Crash_Man for the help! - Minor optimisations to the 65816 - Improved color intensity in the back area - Fixed a sram directory bug where the save state didn't save in the save directory when the game is specified from the command line - Fixed a keyboard bug when left-shift is selected as a key. Thanks to Pharos for help on this! - Some DMA speedups - Some optimisations to OAM/VRAM write - Sorry, but SuperFX emulation is disabled for this public version. v0.305 - Fixed a snes ppu multiplication bug. Thanks to Lord Esnes! - Hopefully fixed 6-button joystick support. - Fixed a little memory overflow bug which caused some games to not work - Forgot to clear NMI wait substitute variables when another game is loaded from the GUI - Changed sound processing engine back to v0.297. If for any reason you want to go back to v0.300 sound engine, use -x as a command line - Added Cursor Mode Button to the Super Scope. Never thought it was necessary until recently. Use the =/+ key. v0.300b - Fixed a bug that causes sidewinder support to crash. v0.300 - Fixed a 65816 wrapping bug - Added Super Scope Emulation! (Press 7 beyond mouse) - Some minor touches to the GUI - Manually calculated RGB bit lengths when using 16-bit modes - Fixed another bug when loading 48mbit images from the GUI - Sped up the execution loop when sound is enabled - Implemented NMI wait substitute for speed - Added some extra vesa2 routines to help some video cards with ARGB format of 1:5:5:5, however interpolation won't work for those at the moment. Thanks to Dark Force for helping out on this one! - Implemented 512x384 VESA2 resolution for both 8 and 16 bit - Implemented Sound Mute and Reset - Implemented Joystick Remapping. Edit ZSNES.CFG to access this. - Fixed and sped up 6 button joystick support - Fixed 2 2-button joystick support - Hopefully fixed 2 sidewinder support - Fixed an overflow sound bug v0.297 - Fixed a bug when loading 48mbit images from the GUI - Fixed some crashing bugs by just adding some zero space Very weird bug! v0.296 - Fixed up Cheat Menu in 16-bit color mode - Changed SPC700 skipper back since it was causing problems in certain games - Added Multiple Snapshot files - Fixed a minor loading bug - Fixed 16-bit color full add/sub conversion table when video is in BGR format - Fixed some fixed color screen add/sub bugs - Supported .SWC format in the GUI v0.295 - Compiled under a newer version of WDOSX. This should help fix some VESA 2 problems. - Fixed multiple SPC700 bugs - Added a command line to force either NTSC (-t) or PAL (-u) timing - Added a command line to force 8-bit sound on (-8) - Zsnes.cfg is now loaded from the directory where zsnes.exe is located - Zsnes.cfg now re-writes itself when zsnes exits - Reduced zsnes.exe filesize - The IRQ's are now more stable. This should help fix some crashing/rebooting problems under dos. Thanks to Sardu for some help on this! - Fixed some VRAM accessing bugs - Several fixes to the sound DSP - Optimised SPC700 a bit - Implemented primitive Mode 5, 512 horizontal resolution. To get full potential of this mode, use 640x480 resolutions except for interpolated/nonscanline mode. - Improved 65816 <-> SPC700 communication - Slightly improved sound skipper - Fixed a directory changing bug - Implemented Scanlines for 640x480x256 video mode - Added a temporary command line to enable sound compression buffering (-Q) - Added a extra menu which pops out when you press F1 - Added snapshot feature. Press F1 and select Save Snapshot ZSNES saves 256 color under image.pcx and 65536 under image.bmp. - Added FPS feature. At the moment, it only works when auto frame rate is used. - 65816 bugfix : x flag is supposed be used in MVN/MVP - Fixed up color addition/subtraction clipping a bit - Added Scanlines, Interpolation, Enterskip, and Force 8-bit sound in zsnes.cfg - GUI now saves the loading directory - Added a separate save directory feature in zsnes.cfg. - SPC700 bugfix : fixed mem.bit addressing mode. Thanks to Phoenix for this info! - Fix up a bug where more memory was cleared than needed in 256 color video memory processing - Optimised video memory clearing in 65536 color mode - Minor optimisations to the 65816/SPC700 - Implemented Mode 7 Tile #0 Repetition - Rewrote most of the Mode 7 routines for speed - Fixed a 65536 color Mode 7 bug where the background wasn't cleared properly - Added Pro Action Replay, Gold Finger,and Game Genie cheat code support - Optimised Memory/Register accessing routines - Used a newer version of Sidewinder driver. Should fix some problems and also support 2 sidewinder pads (not tested yet). Thanks Robert! Also, thanks to Sardu for helping to get it to work right! - Whoops! 256 Color palette was set when GUI is exited in 16-bit mode. Hopefully fixed now. - Added the ability to Clear/Disable/Enable cheat codes through the menu. - Optimised Graphics Decompression Routines. Thanks to Nerlaska for this info! - A Bunch of other Minor Bugs Fixed. v0.270 - Properly cleared memory when loaded off of the GUI - Implemented realtime adsr/gain switch. Special thanks to Sardu for help on this! - Fixed up a VESA 2 error message - Temporarily disabled Sound Compress buffering till we can get the bugs out. - Volume fixes to the sound DSP - Fixed up > 16mbit LoROM support - Added partial 48mbit ROM support (no games seems to work yet + 9MB mem required) - Fixed a SRAM Memory Map Bug - Fixed a bug in old style joystick read - Disabled sram save using tilde key. Instead, enter/exit the GUI since it also saves the sram. - Added panic key which turns back on all sound channels and backgrounds. Press 6 to activate this. - Added snes mouse support! Use 7 to switch between keyboard and mouse. Thanks to Y0SHi for info on this! - Panic key now turns off mouse when mouse is enabled - Fixed a minor IRQ bug - Fixed a HDMA bug. Thanks to Lord Esnes for help on this! - Fixed a timing bug. Thanks to TaNdRuM for help on this! - Fixed up some Fixed color add/sub bugs - Implemented OBJ Name Base Select. Thanks to Y0SHi for info! - Windowing was off by 1 pixel. Now fixed. - Fixed Screen Add/Sub on back area - Added support for 4 and 6 button joysticks - Added support for sidewinder joypads - Fixed a VESA 2.0 bug. It should be more compatible now. - Implemented Interpolation for 640x480x65536 mode. Use -Y to enable. - Modified sound mixing code a bit - Added GUI disable in zsnes.cfg. Add this if you want to disable the GUI GUIDisable = 1 - Implemented Directory Changing in the GUI - Fixed a bug where it crashed when loading some ROMs - Fixed an ADSR sustain bug. Thanks to Trepalium for help on this!