Build Your Own Arcade Controls Forum
Software Support => GroovyMAME => Topic started by: krick on September 30, 2012, 01:00:01 pm
-
It looks like soundsync was removed from the GroovyMAME patch starting with the 145 releases. Did I miss something?
-
Yes, the -soundsync option was removed with the new implementation, but the functionality is still there, it's only that now the sound is always tied to the emulation speed.
The old patch was taken from CabMAME, it worked by dynamically modifying the sample rate of the directsound's buffer. There was no way to do this on the SDL side.
The new patch gets the sound mixed at the correct rate before it's sent to the OSD layer, that makes it OS independent.
-
So you still had to add code in your patch.
The soundsync code isn't in official MAME, correct?
But now it's automatic and you can't manually toggle it on and off at the command line or in the ini file?
I'm just making sure that I understand so that I don't give people wrong information.
-
Yes that's right. The exact behaviour is this: the 'soundsync' functionality is now integrated in the -syncrefresh option. This seemed to me like the natural way of doing things. If -syncrefresh is disabled (i.e. by enabling -triplebuffer) then the sound is left alone as emulation is supposed to run at 100% either way.
The soundsync code isn't in official MAME, although I might submit the whole 'synchronization part' of the Groovy patch (not the modeline stuff) at some point. Anyway, the new 'soundsync' patch is extremely simple and clean, it just makes use of one already built-in mechanism in MAME (used by the somewhat absurd -refreshspeed option), so it's not exactly a hack.
-
It makes sense that if you enable -syncrefresh, that the sound should speed up or slow down accordingly since you're syncing both the video and the audio to the refresh rate. I think you could make the case that it should be in baseline MAME.
It also makes perfect sense that if you enable -triplebuffer, then the emulation (both video and audio) should be decoupled from the refresh rate and the audio should play at normal speed. This is also obviously mutually exclusive with -syncrefresh.
I never really understood what -refreshspeed was supposed to do in baseline MAME.