I have been studying the NeoGeo Z80 communication method for BGM / SFX and how it send commands, and I have found a way to tell the Z80 CPU to switch between sound banks, so basically I made a module that will tell the CPU to read SFX commands.
Since the game constantly send the Z80 CPU commands to play BGM I had to study how it worked. I was able to find out those commands and I made a module to intercept them and instead of switching back to BGM sound banks, it will switch or stay with the SFX sound bank.
So far most NeoGeo games are working with this SFX disabling feature and Im just finding out where are the remaining sound bank addresses for the rest of the NeoGeo drivers.
After I finish this I will post the source code and a patch for the latest binary (for those who don't know how to compile it).
PS: The same method does work to disable SFX as well to hear only BGM while playing NeoGeo games. I am only doing this for NeoGeo ATM, but QSound / CPS1 may have a similar way to tell the CPU to disable BGM.
SeeYaa!