07-27-2009, 03:12 AM
GSdx's fps readout is generally not trustworthy, especially with MTGS enabled. The only true way to test PCSX2's Limit accuracy is to disable Timestretching on either SPU2-X or ZeroSPU2, and see if it ever skips during a part of a game that runs full framerate on your machine. I usually use a menu screen, since those typically run very fast. If the limiter has accuracy problems, the SPU2 plugin will either "skip" or "pop" every 15-30 seconds (spu2-x), or loop in and out of studderyness (zerospu2 -- typically smooth for 7-15 seconds, and studdery for a few seconds). If the audio plays smooth, then all is well.
I added logging features to spu2-x to log buffer over/underruns. It's specifically included for this purpose.
The last time I tested it (which admittedly was some months ago, just before the 0.9.6 release), all was fine. GSdx's FPS readout was pretty inaccurate as always, but the sound never skipped and that meant that the emulation was dead on accurate.
The reason this works is because the SPU2 is timed to the frequency of your soundcard, which uses its own internal 48khz timer. If PCSX2 is timed properly itself, it feeds your SPU2 plugin exactly 48000 samples per second. If it's off by any amount, you'll get eventual skips and studders caused by the internal sound buffers getting overrun or underrun.
Now for the kicker: enabling vsync is not accurate. PS2 games are clocked at 59.94 frames per second, and so running them at 60fps will cause audio to skip/desync every 16 seconds or so. To get PS2-accurate timings you need to have the internal limiter enabled, regardless of the vsync setting.
I added logging features to spu2-x to log buffer over/underruns. It's specifically included for this purpose.
The last time I tested it (which admittedly was some months ago, just before the 0.9.6 release), all was fine. GSdx's FPS readout was pretty inaccurate as always, but the sound never skipped and that meant that the emulation was dead on accurate.
The reason this works is because the SPU2 is timed to the frequency of your soundcard, which uses its own internal 48khz timer. If PCSX2 is timed properly itself, it feeds your SPU2 plugin exactly 48000 samples per second. If it's off by any amount, you'll get eventual skips and studders caused by the internal sound buffers getting overrun or underrun.
Now for the kicker: enabling vsync is not accurate. PS2 games are clocked at 59.94 frames per second, and so running them at 60fps will cause audio to skip/desync every 16 seconds or so. To get PS2-accurate timings you need to have the internal limiter enabled, regardless of the vsync setting.