I just re-uploaded new patches, slightly done differently so now take the -p0 option and also made sure I applied the hiscore_linux -> groovymame one in the same git tree. I had them so they could be mutually exclusive of each other which might have caused the Windows patch program to not be able to handle applying. They worked in Linux most likely because it's a newer version of patch which has better fuzzy logic at figuring out where to properly place the code, I suspect the Windows one is older or a different branch and isn't able to do that. So I'm pretty sure these should work now in Windows, basically went through the exact same method I used before, didn't think about the patch program not being able to handle it.
Also, after checking, it's weird because soundsync should only be used if specified at the command line/ini file and if the vertical frequency is not able to be matched, otherwise it's forced off. So sounds strange, not sure if possibly something else is happening, but from the code logic I can't see how it's occurring. I did make a few changes here to try and double check it's always off by default, I'm reworking a few things, added dual monitor support now (where it'll now check and not make up for dual monitor games in the resolution anymore if you specified more than one screen with the numscreens option).
Also should I enable the direct input all the time, or is that something that not everyone would want? I saw a thread on mame world about it and seems it might be something I shouldn't enable by deafult, although it could in theory be turned into an option although not sure how 'intrusive' it'll be to do that and if it'll increase the work to keep up per mame versions or not and might be left I'm guessing set as is and changed manually at compile.