Here is a version of Snes9x that is modified to be better, both for movie-recording purposes and for general use, than the current official release it is based on (which is 1.43 Final). Not to say that Snes9x wasn't awesome already, but it was lacking certain features and had various desync issues.
It (the latest Windows executable) is available at:
http://nvdata.pilif.ch/snes9xw-improvement7.zip
(version 7)
http://nvdata.pilif.ch/snes9x-imp-v6v7.diff.zip
(diff from version 6 to version 7)
Or if you really want a previous version:
http://nvdata.pilif.ch/snes9xw-improvement6.zip
http://www.filespace.org/nitsuja/snes9xw-improvement6.zip
(version 6)
http://nvdata.pilif.ch/snes9x-improvement6-src.rar
(version 6 source)
http://nvdata.pilif.ch/snes9xw-improvement5.zip
(version 5)
http://nvdata.pilif.ch/snes9xw-improvement4.zip
(version 4)
http://nvdata.pilif.ch/snes9x-improvement3.zip
http://www.filespace.org/nitsuja/snes9x-improvement3.zip
(version 3)
http://nvdata.pilif.ch/snes9x-improvement3-src.rar
(version 3 source)
(thanks pilif for hosting these)
Here's the full info:
Snes9x 1.43 improvement v7
Newest change(s) in this version:
* Fixed the problem with input fields staying green when deselected.
* Added another page to the hotkeys menu filled with more hotkeys, so now almost no keys are hardcoded anymore.
* Added proper key conflict detection, including between game buttons and hotkeys.
* Added more info to input config text message, repositioned some dialog elements, removed controller toggle-mode checkbox, moved turbo/toggle keys around to make more sense (you may have to reassign them if you have them set from an older version).
* Fixed a bug (mine) that prevented Pocky & Rocky from working (it didn't seem to affect any other games).
* Fixed a bug (not mine) with the & symbol in the "recent roms" menu and author info display.
* Made the Snes9x icon high-resolution so it doesn't look quite as ugly. (Just what everyone needed, right?)
* Made drop-down boxes that make no sense to type into un-editable.
* Added an accelerator shortcut to access the hotkeys menu, put "maintain aspect ratio" and "use video memory" in the Window menu, removed fake accelerators.
* Fixed problem with Escape not exiting the Display dialog box.
* Incorporated Nach's updated JMA code.
General:
* Made "Pause When Inactive" an option in the Settings dialog, so you can turn it off if you want Snes9x to keep playing games when it isn't the active window. If you also want sound to play while it's inactive, you can set Sound Driver to "FMOD DirectSound" in the Sound Settings menu.
Input-Related:
* Customizable hotkeys
* The option to allow left+right and up+down to be pressed has been added.
* Option to display pressed input buttons (credit to Bisqwit)
* Removed 1-frame lag from the input that's displayed.
* Added ability to toggle a button on or lock it on autofire using modifiers or a per-controller toggle switch. Very useful for getting around the maximum limit of keys your keyboard lets you hold at once, and also for relieving you from having to hold a button for extended periods of time.
* Fixed joypad dialog and added turbo buttons
* Made "fast-forward" and "show input" customizable hotkeys, so input can now be shown while playing, and made "save screenshot" a hotkey as well.
* Added alternate save state system (increment/decrement/save/load current slot, as new hotkeys).
Graphics-Related:
* Made black bar at bottom of game optional
* Added a display option to maintain correct aspect ratio.
* Enabled the GUI option to use video memory and bilinear-filter any mode, not just OpenGL
Sound-Related:
* Gave frame advance sound (optional)
Movie-Related:
* Zelda desync bug fixed! (credit to FabianX)
* OotW/PoP2 sound desync bug fixed (Fake Mute desync workaround option) (credit to Bisqwit)
* Terranigma desync bug fixed (incorporated into Fake Mute option)
* Movie length limit fixed (credit to Bisqwit and DeHackEd)
* Movie play and record dialogs contain relevant sync-related emulator options.
* Added "Clear SRAM" option to recording dialog, so you can make sure you're starting from a totally clean state.
* An option to switch between WIP and Final timing has been added, so you can record for the version of your choice and play back either type of movie.
* Incorporated important sync settings being saved into movies upon record and re-record, and loaded from them on playback. (Currently, you must click Browse... and select the movie for it to load the sync settings.) This does not interfere with official version compatibility going in either direction, at least not with the 1.43 Final or WIP.
* Changed it so left+right does not even get recorded into the movie if the left+right option is not enabled. (Snes9x used to always record both directions into the movie even when it ignored one of them.)
* Changed default to read-only for playing movies, since more people seem to prefer that being the default.
* The ROM's CRC32 and name are now stored in recorded movie files, and displayed along with your current ROM upon loading. Old movies that are modified using this version will have the new information inserted into the movie using the current ROM. Backward compatibility is still maintained.
* Moved frame counter display to not overwrite other messages, changed messages and message timings a bit.
Movie Compatibility -- Because there is now an option to switch between timing modes:
* This version can play all movies made with either the Final or the WIP, with the right settings on.
* This version can make movies for either the Final or the WIP, whichever is desired.
Known Issues / things to watch out for:
* If you do not record a movie with the WIP1 timing, you may get occasional desyncs while recording, because this is how the official Snes9x 1.43 Final version behaves.
* Some games (such as Terranigma) desync when you play them at too high a speed (such as with fast-forward) due to unknown reasons.
* Some games (such as Super Bomberman 2 and Mortal Kombat II) require Volume Height Envelope Reading to be OFF to record reliably.
* Some games (such as Nosferatu) still rely on specific sound settings (such as a certain KHz rate, etc.) to play back reliably.
* Movies will still desync if you play them without letting the game emulate for at least 10 seconds to "warm up" first.
* Turning on Left+Right/Up+Down may cause movies that were made without this option to desync.
* If you turn on Left+Right/Up+Down, no *official* version of the Snes9x emulator will be able to play back the movie that's generated.
* If a movie of a game that was affected by the sound desync bug (such as Out of this World) is recorded with this emulator, it can also be played back in this version, but if you want to play it back with an official version you'll have to set the sound playback rate to <No Sound> when playing it.
* The input that is displayed is not updated between frames; you have to advance at least one frame to see the new input you're entering be displayed.
* Key conflict catching is not very comprehensive and can also catches things that are no longer conflicts (in which case, just ignore the color).