# Snes9x Support (mostly audio)



## the_randomizer (Feb 6, 2012)

(Hopefully, this is the right location to post this) To quote LeonardoF. Matheus, 





LeonardoF.Matheus said:


> the_randomizer said:
> 
> 
> > 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.
> ...



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.


----------



## LeonardoFM (Feb 6, 2012)

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!


----------



## the_randomizer (Feb 6, 2012)

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 TLR 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.


----------



## LeonardoFM (Feb 6, 2012)

the_randomizer said:


> 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 TLR 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?


----------



## the_randomizer (Feb 7, 2012)

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.


----------



## LeonardoFM (Feb 7, 2012)

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.


----------



## LeonardoFM (Feb 21, 2012)

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 "OpenGLisablePBOs" 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


----------

