Many early shmups of the 8/16-bit era are plagued by high-pich SFXs (sound effects), associated with firing and explosions. Since these are the most common actions in shmup games, they end up covering the BGM (BackGround Music) almost completely.
If you’re playing on real hardware the only thing you can do is to tinker with your TV audio equalizer and try to reduce the high frequency bands, but this is likely to affect the BGM as well. So lowering the master volume is my most common solution to avoid headaches.
The proper solution would be lowering the actual SFXs volume via a ROM hack, but this requires effort and time.
As alternative with emulators we can try to reduce the volume of the audio chip sound channels where the SFXs are played, hopefully without affecting the BGM.
Unfortunately not every emulator has this feature, and some libretro cores are missing it even if supported by the emulator:
- Nestopia -> individual channel volume adjustments are supported by the core, but they were missing in the libretro port. Added with this PR by me.
- FCEUmm -> individual channels disable core options are available already, just enable the “Show Advanced Sound Options” and reopen the menu.
- Gambatte -> not supported by the original core, WIP per-channel volume adjustments implementation here (help needed).
- SameBoy -> not supported by the original core.
- VisualBoyAdvance-M -> can disable individual sound channels via core options.
- mGBA -> the standalone version can disable individual sound channels (via the “Audio/Video->Audio channels” menu), but these options are missing in the libretro core.
- BSnes/Higan -> not supported by the original core, only available in this fork
- Snes9x -> individual channels disable core options were present, but they were not working correctly with savestates and rewind. Fixed with this PR by me. Later PR for proper channels volume scaling here.
- Mednafen/Beetle pce-fast -> supported by the original core only with CD games, i’ve added individual PSG channels volume adjustments with this PR.
- Mednafen/Beetle pce -> not supported by the original core, my pce-fast PR could be easily backported though…
- Genesis-Plus-GX -> not supported by the original core. Per-channel volume scaling added with this PR by me. Also check the “PSG and FM Preamp Level” core options.
- OpenMSX -> has switches to mute individual sound channels, also accessible via the “Sound Settings…” GUI menu. This core has no libretro port currently.
- blueMSX -> the standalone version has a nice mixer for the sound chips (not per-channel). This is not available in the libretro core.
- VICE -> not supported by the original core.
- DOSBox -> supported via the MIXER builtin command.
- PUAE, FS-UAE -> not supported by the original cores.
- MAME -> only a few drivers provide per-channel volume customization in the “Slider Controls” UI menu (e.g. lwings).
- FBNeo -> not supported by the original core, WIP implementation here. Since this is not going to be merged soon i’ve released a few builds here you can try.
To conclude, a (very partial) list of games affected by this issue with suggestions on how to fix it:
- NES\Abadox -> reduce Square 1 ch vol
- NES\Burai Fighter -> reduce f Square 2 ch vol (affects the BGM)
- NES\Contra -> reduce Square 1 and 2 ch vol (affects the BGM)
- NES\Felix the Cat -> reduce Square 2 ch vol (affects the BGM)
- NES\Final Mission | S.C.A.T. -> reduce Square 1 and Noise ch vol (affects the BGM)
- NES\Gun.Smoke
- NES\Gun Nac
- NES\Legendary Wings
- NES\Summer Carnival ’92 – Recca -> reduce Square 2, Triangle, Noise ch vol
- NES\Super Contra -> reduce Square 1, Noise ch vol (affects the BGM)
- NES\TwinBee 3 -> reduce Square 1 ch vol (affects the BGM)
- SNES\Blazeon -> reduce 5+6 ch vol
- SNES\Genocide 2
- SNES\Super Adventure Island -> reduce 8 ch vol
- SNES\Super Earth Defense Force -> reduce 6+7+8 ch vol or use this patch
- PCE\Darius Plus
- PCE\Fantasy Zone
- PCE\Honey in the Sky
- PCE\Ordyne -> reduce 4 + 5 ch vol (affects the BGM)
- PCE\Side Arms – Hyper Dyne -> reduce 4+5 ch vol
- PCE\Tatsujin
- PCE\Toy Shop Boys
- PCE\Xevious – Fardraut Densetsu -> reduce 3+5 ch vol
- PCE\Zero Wing
- PCECD\Sylphia -> reduce the CD PSG vol
- PCECD\Avenger -> reduce the CD PSG vol
- SMD\Grind Stormer | Grindstormer
- SMD\Golden Axe
- SMD\Altered Beast
- SMD\Final Zone | FZ Senki Axis
- SMS\Fantasy Zone II – The Tears of Opa-Opa
- SMS\Bomber Raid (reduce Noise channel 3)
- SMS\Aleste (reduce FM channels 4 and 5)
- arcade\Air Buster -> reduce ADPCM ch vol
- arcade\Air Duel
- arcade\Altered Beast
- arcade\BlaZeon
- arcade\Drift Out
- arcade\Forgotten Worlds
- arcade\Haunted Castle -> reduce PCM 0+1 ch vol
- arcade\Liquid Kids
- arcade\Insector X -> reduce 0,1,2 ch vol
- arcade\Mortal Kombat -> adjust via the service menu
- arcade\Mortal Kombat 2 -> adjust via the service menu
- arcade\Pistol Daimyo no Bouken
- arcade\Toki -> reduce ADPCM ch vol
- arcade\Un Squadron
- arcade\Varth
UPDATE: i’ve created this repo with some per-game core option overrides ready to use in Retroarch.