Snes9x Support (mostly audio)

the_randomizer

The Temp's official fox whisperer
Member
Joined
Apr 29, 2011
Messages
31,284
Reaction score
19,077
Trophies
3
Age
40
Location
Dr. Wahwee's castle
XP
18,997
Country
United States
(Hopefully, this is the right location to post this) To quote LeonardoF. Matheus,
SnesGT is my second favorite, but the SPC700 emulation is based off of Anomie's (I think) core, and Snes9x actually has slightly more accurate sound than SnesGT, since that uses Blaarg's SPC700/S-SMP core, making it perfect. In fact, Square Enix games (Lavos' scream in particular) are spot on. Too bad Snes emulators on the DS emulators will never achieve such levels of audio accuracy.
Good to know you like to talk about this sorta stuff, and i'm gonna ask you something. But this one will probably be the last off-topic, i would appreciate if you show me a more appropriate thread here to keep up our conversation, my friend...

So here it is... I use the latest Snes9x version (1.53) and it's definitely the best off all versions out there, but there are a few issues which i find pretty annoying regarding the audio crackling if i use Direct3d in Windowed mode 4x (3x and smaller is fine) or Fullscreen. No matter what filter do i use, it still occurs. I prefer using NTSC Composite, but 2xSai is pretty good too as it blends some dithering very well. But no matter which one i use, i still get the crackling noise. I put the sound sample at 22KHz and Buffer Length at 64ms. My Input Rate is at 31900. I use Win XP SP3 and NVidia onboard and my video drivers are up to date. The issues with the DirectDraw and OpenGL options on Snes9x are that the Vsync is not perfect and full of Input Delay/Lag and no way i'm able to use any of the NTSC filters on these two rendering options as these filters are turn the emulation slow as hell. Do you have any suggestions about my problem? I was left with no choice but to use SnesGT as its vertical sync is done properly and its audio is a lot more accurate than ZSnes'

This link here explains well what i mean by "Vsync not being perfect":

http://www.neogaf.co...ad.php?t=421792

Thank you and see ya

Snes9x is a tricky emulator to configure properly, especially in the audio department, there are a lot of things we're going to try do and pinpoint the issue(s) at hand. I will update this thread with more information as time goes on. Will post more info back in roughly 100 minutes from now.
 
Right... Yeah, please help me with this one, and i think we could be helping some other people with similar issues too... So i'll be waiting
I would not mind using DirectDraw or OpenGL if only they would not have ANY tearing with vertical scrolling in this version (1.53). Currently i'm using the emu with DirectDraw and 2xSai but only because SnesGT doesn't run the new hack of Mega Man X3 Zero Project (final release)

So, thank you!
 
All right, I'll do the best I can to get these issues neutralized. There are three modes used to render the graphics in Snes9x, Direct3D, DirectDraw and OpenGL respectively. The screen tearing can be caused by any number of factors including, but not limited to the GPU not being able to keep up with the no. of frames it has to render every second, or it could simply be a driver issue. Sometimes newer drivers could have a broken feature that causes these issues, this is where driver rollback has an advantage. What GPU/video card does your computer have? Is it a GPU that's integrated or discrete (removable or permanent)? And regarding the audio crackling, this can be pretty tricky pinpointing, but I recall having the same issue. The default audio output of a real Snes is 16-bit stereo with a 32000Hz/32KHz sample rate with Gaussian interpolation (which gives the console its distinctive muffled sound that so many people have grown to love).

The latency in Snes9x is set at 64ms by default and goes all the way up to ~320ms, so what I've done is tried that setting in increments, 32, 64, 96,128,160,192ms etc until I can no longer notice any popping/crackling in the audio. With regards to the input frequency, that too is defaulted at 32000Hz (this is also the sample frequency for the SPC700/S-SMP); this should not go below 31800Hz as it will change the pitch in the audio itself (games will sound slightly off). This is quite a mouthful and possibly a TL:DR post, but this should get you in the right direction. As far as SnesGT goes, it's a good emulator, but I can't use it since it hates Windows 7 when you have Aero on (framerate issues, screen tearing, etc). Look forward to hearing your report! I admit that I'm not an expert per se, but I am thoroughly familiar with emulators since I stared using them in 1997.
 
All right, I'll do the best I can to get these issues neutralized. There are three modes used to render the graphics in Snes9x, Direct3D, DirectDraw and OpenGL respectively. The screen tearing can be caused by any number of factors including, but not limited to the GPU not being able to keep up with the no. of frames it has to render every second, or it could simply be a driver issue. Sometimes newer drivers could have a broken feature that causes these issues, this is where driver rollback has an advantage. What GPU/video card does your computer have? Is it a GPU that's integrated or discrete (removable or permanent)? And regarding the audio crackling, this can be pretty tricky pinpointing, but I recall having the same issue. The default audio output of a real Snes is 16-bit stereo with a 32000Hz/32KHz sample rate with Gaussian interpolation (which gives the console its distinctive muffled sound that so many people have grown to love).

The latency in Snes9x is set at 64ms by default and goes all the way up to ~320ms, so what I've done is tried that setting in increments, 32, 64, 96,128,160,192ms etc until I can no longer notice any popping/crackling in the audio. With regards to the input frequency, that too is defaulted at 32000Hz (this is also the sample frequency for the SPC700/S-SMP); this should not go below 31800Hz as it will change the pitch in the audio itself (games will sound slightly off). This is quite a mouthful and possibly a TL:DR post, but this should get you in the right direction. As far as SnesGT goes, it's a good emulator, but I can't use it since it hates Windows 7 when you have Aero on (framerate issues, screen tearing, etc). Look forward to hearing your report! I admit that I'm not an expert per se, but I am thoroughly familiar with emulators since I stared using them in 1997.
My GPU is onboard. NVidia GeForce 6100 nForce 405 - 256 mb

I have 2 gb of RAM (each slot with 1 gb)

AMD Sempron Processor

Win XP SP3

Increasing the Latency would be a good choice, but this takes us to another problem: the greater the Latency, the greater the input delay/lag

How do you get out of this now my friend?
 
I can see that this is like a very frustrating for you (at least I think it might be) and getting emulators to work to our needs can be a real pain in the butt. You can try a test build that SparroHac (an Snes9x coder, I think), that fixes certain issues with audio crackling http://download.sessionclan.de/overfiend/snes9x/testbuilds/snes9x_testbuild_23122011.zip As for buffer, try 96, 112 and then 128. Any of those values shouldn't be detrimental to input lag, whereas the highest values (210ms) would certainly mess things up. I recall helping Tantric/dborth on finding out the perfect input frequency values for Snes9xGx and the magical number was somewhere around 31940-31960Hz, so you can try that, too. Also make sure Sync Sound is enabled. Let me know what happens.
 
Thank you. I will! I'm gonna try later and report here. Let's see if this build fixes things up to our tastes haha

EDIT:

Alright, i just tried out this test version you gave me but no big visible changes here. I could be mistaken but the Vsync issue was A BIT improved but the tearing still bugs me... To tell you the truth, using OpenGL here is not an option as it either have a noticeable input delay (with vsync on - which works fine) or annoying tearing with Vsync off (obviously). So, to simplify things, we just have to figure out how to get rid of this tearing on DirectDraw even when Vsync is on (and figure out WHAT causes the NTSC filter to run almost freezing) or how get Direct3d working properly without the crackling annoyance. The good point of this render method here is that it runs the NTSC filter fine as well as others such as 2xSai.
 
Ok, i'm back to post the solution to my problem. I hope this helps someone with this exact problem.

I'm using Snes9x 1.53 Test Build (23-12-2011)
OpenGL as output method (what will help here is that i set yo TRUE the "OpenGL:DisablePBOs" option inside the "snes9x.conf" file)
When i set that to TRUE, i was able to use the NTSC Filter running at normal speed AND the Curvature Shader for OpenGL mode.
The last thing i changed was the Sound Driver from "XAudio2" to "Snes9x DirectSound" with the Buffer Length at 64 ms and the Input Rate at 31850

Now there's barely any input lag... I'm sure there's something, but it's not that noticeable, even in Super Mario World

So, there's my recommendation, i'm sure this is the definitive Build for those with my old problem, see you... Thank you The Randomizer
 

Site & Scene News

Popular threads in this forum