Locked



Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
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).
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
In joypad configuration and customize hotkeys you can select more than 1 "box", they remains green. It is somewhat a minor bug but still a bug ;). This bug is from official version. It would be also nice if we could be able to configurate directories. Imo, I think your Snes9x v. 1.43 is better than the official one. That's just my opinion. It's not that they have made bad work. The only problem, it's missing some sound effects in some games.
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
The green boxes thing they already had some code to fix, but it had the side effect of making blue not appear on some boxes where it should appear, so it was left disabled, and I haven't found out how to get around those side effects either yet. If it's missing sound effects in some games, this is from a setting being changed like volume height envelope reading being off. I haven't touched the actual sound code. (well if you still think it's a bug, could you give an example or 2 that's easy to test?)
Emulator Coder, Site Developer, Former player
Joined: 11/6/2004
Posts: 833
I hate to say this, but I'm going to have to report a bug. I also told Bisqwit this. I guess nobody's really tried it yet. snapshot.cpp, line 1079 -WRITE_STREAM (buffer, strlen (buffer), stream); +WRITE_STREAM(buffer, 11, stream); You can't use strlen anymore. This will make this patch get over the movie length limit.
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
nitsuja wrote:
(well if you still think it's a bug, could you give an example or 2 that's easy to test?)
There's Final Fight Guy.
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
OK, I'll see what Final Fight Guy does for me. About the bug... hmm, I just assumed Bisqwit's patch handled it correctly, since I thought people have already been using it for movies longer than the previous movie length limit.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
nitsuja wrote:
About the bug... hmm, I just assumed Bisqwit's patch handled it correctly, since I thought people have already been using it for movies longer than the previous movie length limit.
The bug only appeared in certain (but not rare) cases.
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
Phil wrote:
nitsuja wrote:
(well if you still think it's a bug, could you give an example or 2 that's easy to test?)
There's Final Fight Guy.
Can you give some more details? I tried it out for a while and it sounds *exactly* the same to me.
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
nitsuja wrote:
Phil wrote:
nitsuja wrote:
(well if you still think it's a bug, could you give an example or 2 that's easy to test?)
There's Final Fight Guy.
Can you give some more details? I tried it out for a while and it sounds *exactly* the same to me.
Listen that AVI. http://hiddendragon.sytes.net/FFGuy-missing%20sound.avi
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
Phil wrote:
Listen that AVI. http://hiddendragon.sytes.net/FFGuy-missing%20sound.avi
OK, I found your problem. You have "Fake Mute desync workaround" turned on -- I guess it does have some side effects after all. I don't believe this game requires that option to stay in sync, so turn it off and it'll sound fine. I didn't test for a really long time though, it's possible that a while later in the game it starts desyncing unless you have the option checked, but so far Out of this World is the ONLY game I know of that requires this option to stay in sync (EDIT: and Prince of Persia 2, and Terranigma). (note: SMRPG does not require it either as far as I can tell, maybe it was VHER all along?)
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
Hey guys... I just updated this to version 4. New changes include the ROM's CRC32 getting saved with the movie files, and the movie length limit fix being applied. See the first post for the file and more info.
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
Can you patch Snes9x so people can compile the source using MinGW? More details there: http://www.snes9x.com/phpbb2/viewtopic.php?t=1304
nesrocks
He/Him
Player (247)
Joined: 5/1/2004
Posts: 4096
Location: Rio, Brazil
i would still like to have a increase decrease savestate slot system hotkey and a save / load to current state slot hotkey also, that would be the ultimate last thing needed, imo.
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
OK, I'll try to put in the alternate savestate system. About MinGW, I've never even heard of it, but I'll see if I can apply that patch, hopefully it'll work... On an unrelated topic, I discovered something wrong with the last update, it's not really a bug, but... what happened is that because a ROM name is 23 bytes, I was offsetting the movie data by an odd number of bytes which makes the movie hard to hex edit because it isn't word-aligned. I've uploaded a fix to save movies with an extra byte of padding for alignment, so... people who've already downloaded v4 should really consider re-downloading it.
Former player
Joined: 10/17/2004
Posts: 226
Location: Bonn, Germany
Just a little request: In the old Snes9x it was possible to make screenshots, by pressing F12 (the screens were then called for example SuperMarioWorld007.png) This doesn't work anymore in your improvement, and i also couldn't find this in the "Customize Hotkeys" menu. Would be nice if you could add that :)
Former player
Joined: 8/12/2004
Posts: 651
Location: Alberta, Canada
I thought of something else that would be nice to add along side with my requests for always on top, and keep playing while not in focus. Would it be possible to add support for the taskbar? I hate having to minimize all my open windows to find the program when it's been lost underneith. Also, how did you end up adding the CRC and current rom name?
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
VIPer7 wrote:
Just a little request: In the old Snes9x it was possible to make screenshots, by pressing F12 (the screens were then called for example SuperMarioWorld007.png) This doesn't work anymore in your improvement, and i also couldn't find this in the "Customize Hotkeys" menu. Would be nice if you could add that :)
In some precedent thread, he said he fixed that. So download the latest version and try.
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
BoltR wrote:
Would it be possible to add support for the taskbar? I hate having to minimize all my open windows to find the program when it's been lost underneith. Also, how did you end up adding the CRC and current rom name?
I'm not sure what you mean about the taskbar, Snes9x already goes in the taskbar like other applications. (Maybe you mean when it has a dialog box open?) I was intending to add the CRC32 and rom name between the save data and the controller data, but I think I was mistaken about the order of the offsets (one of them seemed to be relative to the other) so I ended up adding it between the metadata and the save data. So it's essentially part of the metadata, i.e. the comment text, just it won't display in the comment box because it starts with a null character. (Maybe that's a terrible way of doing it but it's not caused any problems so far.) (I'll make the screenshot button customizable when I get around to it.)
Former player
Joined: 8/12/2004
Posts: 651
Location: Alberta, Canada
nitsuja wrote:
I'm not sure what you mean about the taskbar, Snes9x already goes in the taskbar like other applications. (Maybe you mean when it has a dialog box open?)
Turns out this just seems to be a problem that only I am having. I really wonder what is causing it... Edit: Ok, it seems my shell just doesn't notice it when the program loads. If I kill my shell and reload it while SNES9x is still running then it shows the program in the taskbar. Wonder what is causing it...
Joined: 7/28/2004
Posts: 57
Out of curiousity, is there any easy way to make it so that when SNES9X isn't the active focus, movies will continue to play? Every other rerecording emulator that I've seen (famtasia, fceu, and gens) all continue to play once I alt-tab away, but SNES9X does not, requiring it to be the active focus to play.
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
About it not showing up in the taskbar, maybe Snes9x is starting itself up or unhiding its window in a nonstandard way that doesn't inform your shell it goes in the taskbar. Playing while not in focus should actually be pretty easy to implement, it should just require turning off some "pause when the window gets disabled" code when a setting is on. Always-on-top is something I don't know how to do though, at least not without requiring a restart of the emulator for its setting to take effect. (For me, I can already just right click on Snes9x in the taskbar and choose "Always on top" but that's functionality that came with my video card.)
Joined: 7/28/2004
Posts: 57
Well, always on top doesn't really concern me. I have speedruns maximized to fill the monitor when I watch them; I just want to be able to watch them and do stuff on the other monitor without disrupting the speedrun. Famtasia is particularily quirky in this aspect because I can actually use a gamepad and play while it is not the active focus, something which amused me greatly when I discovered it.
Former player
Joined: 8/1/2004
Posts: 2687
Location: Seattle, WA
Sabikage wrote:
I just want to be able to watch them and do stuff on the other monitor without disrupting the speedrun.
This has been one of my only real problems with snes9x. I hate having to actually watch every frame of every movie that goes through snes9x, especially when I just need to hop 20 minutes into it. If this issue was fixed, I would be very grateful.
hi nitrodon streamline: cyn-chine
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
OK, I made "Pause When Inactive" an option you can turn off if you want Snes9x to keep playing games/movies when it isn't the active window. (You can still give games input while inactive, btw.) If you also want sound to play while it's inactive, you can set Sound Driver to "FMOD DirectSound" in the Sound Settings menu, but keep in mind that unfortunately this locks the "Sync samples with sound CPU" option off which a few movies need to play back right. I was going to implement the other requests too, but I don't have time right now to do more and so many people requested this one feature that I thought I might as well post it as another update. (Oh, and as usual, see the first page of this thread for the file. This post is talking about v5.)
Former player
Joined: 8/1/2004
Posts: 2687
Location: Seattle, WA
nitsuja wrote:
If you also want sound to play while it's inactive, you can set Sound Driver to "FMOD DirectSound" in the Sound Settings menu, but keep in mind that unfortunately this locks the "Sync samples with sound CPU" option off which a few movies need to play back right.
This does not work for my PC. In fact, only the snes9x direct sound setting works.
hi nitrodon streamline: cyn-chine

Locked