

It is a unique emulator that supports many different platforms like NES, SNES, Sega Master System and Genesis, and more.
#NESTOPIA VSYNC MAC OS#
NESASM-format assembly source code available on request.RetroArch is a cross-platform app that can run on the platforms like Windows, Mac OS x, and Linux. For reference, a video frame is 16.7 msec long. This means that joypad input to audio output latency is 58 msec greater than a NES, and joypad input to video output latency is 58 - 20 = 38 msec greater than a NES. On my NES emulator with vsync disabled on a 76 Hz CRT monitor, Time_Latency gave 58 msec and Audio_Latency gave 20 msec. Time_Latency gives an emulator's input+audio latency, and the difference of Time_Latency - Audio_Latency gives the emulator's input+video latency.

Adjust the value past what seems correct, so you get a feel for how much of a difference there is between synchronized and unsynchronized.īoth tests display the value in milliseconds relative to a NES. Hold the direction to adjust the delay value shown, as it changes fairly slowly. Up and down make coarse adjustments, and left and right make fine adjustments.

Use the joypad to adjust the delay until the sound and image seem synchronized. When run, it clicks and flashes a box at a regular interval. When that occurred, there was a clear audible difference in my head that I was in sync it was as if the click and my button press became one (experiment and you'll hear what I mean).Īudio_Latency.nes times the relative latency of audio as compared to video. I noticed that I normally pressed the button early, so I had to consciously delay a bit until the sound of the button pressing was in synchronous with the click. It's best to close your eyes to avoid visual distraction (especially trying to read the time on screen, which could influence you adjust your timing to get a particular value). After you establish a good rhythm and maintain if for the last four presses, you can stop pressing the button and read the result on screen, which is the average of the last four presses. When run, it clicks at a regular interval and your task is to press a button in sync with the sound (any button on the joypad will work). Time_Latency.nes times overall latency from joypad input to audio output. Thanks for the idea, Redx the new tests are great and much more accurate (well, assuming I've written them correctly). I guess I'll have to do some writeups on these tests eventually, to help people write them for other platforms, since they're so useful for measuring responsiveness. You'd unconsciously adjust your timing so that you were pressing it just as the image appeared (unless you absolutely suck at music and rhythm, in which case it's time to hit Parappa for some practice first). Presumably this would remove reaction time, since you could anticipate the regular rhythm. It could display a steady tempo of flashing/sound and have you press the button at the same regular rhythm. That gives me another idea for the original test. Run this test with two different configurations and compare the two values to find the relative difference in latency. You could use left and right to adjust the relative timing until you perceived them to be in synchronous, then press a button to get the relative delay the test is having to introduce. Hmmm, I could write one which only relied on the user to adjust the timing until the image and sound occurred at the same time. The current test should allow this somewhat, since it makes a click at the same moment it changes the screen. This of course relies on the user to do the timing, but it might provide further useful data. The basic idea would be to program a rom that simply make a noise at the exact same time it change the display.Nifty idea.
