La version la plus récente de bsnes (Super Nes). Moins rapide que la précédente mais elle a pour principale fonction d’être la plus précise possible par rapport à la réalité.


This one uses the old win32 interface, and adds a new feature I´d like people with sound troubles to try out. The config file now contains "audio.latency". Don´t mess with "audio.frequency", it won´t do you any good and gets overridden by the speed regulation settings for now.

The audio.latency is a precise measurement of the millisecond delay between sound being output by a real SNES and hearing that same sound in bsnes. It takes into account the current playback frequency, as well as the three-ring buffering system used by bsnes´ audio system.
Formula: sample_latency = CURRENT_playback_frequency / 1000 * config_file_latency * 3 (so 32khz + 75ms latency means each ring buffer is 800 samples long). The new formula should make latency sound better (it´s consistent now) on fast / slow emulation speed throttling settings as well.
I also cut out the fourth ring, since it was redundant. This should make bsnes appear ~25% more responsive to sound with the same buffer latency. As a result, I increased the latency to 75ms (it was at ~45 before).
I´d like to know what the lowest good value is that works on 95% of sound cards, so I can use that. I´ll let people with cheap sound cards increase their latency setting manually (eventually it will be an option in the GUI).

NOTE: this version does nothing for triple buffering/vsync/whatever. You must disable triple buffering to try out the latency settings. This version is strictly to test audio playback support.

I also added in my audio point resampler. Good god, it sounds terrible. Regardless of the latency setting (either really high or really low), the pitch difference between each audio ring is extremely noticeable. The code is there now in src/ui/audio/dsound.cpp : AudioDS::run_videosync(), if anyone would like to take a look. I´ll hold my breath ;)
[/CODE]