Surround audio 5.1 upmix configs

Although retro games supported several surround audio technologies Retroarch only supports 2.0 Stereo channel audio output. Systems (or games) that support Dolby Surround include snes, n64, psx, ps2, etc Dolby ProLogic saw very little shine and instead many systems opted for QSound like MegaDrive, Saturn, 32X, or Dreamcast. QSound was also used in Arcade boards like CPS1, CPS2, CPS3 as well as Zinc1 and Zinc2.

Fortunately there are system wide programs that let you manipulate audio in real-time like for example EqualizerAPO. I didn’t see any upmix configs targeted at these technologies so I read a bit and made my own. I tested them thoroughly and they sound good and immersive. Dolby ProLogic II is more complex to code and can’t be reproduced within the simple EqualizerAPO code syntax.

I personally don’t own a 5.1 audio setup, but you can use HeSuVi to upmix 5.1 to 7.1 and then virtualize to 2.0 for headphones or 2.0 for stereo speakers using the program’s HRIRs.

QSound and Dolby Surround/ProLogic are all intended for use with stereo signals. For Dolby Surround, you’ll need a receiver that can support “decoding” it to include the center and surround speakers, but it should work fine with RA’s stereo output, while QSound just fakes surround with 2 speakers using DSP magic.

1 Like

Yes that’s right they are stereo but some emulators can decode them to multichannel like PCSX2 or Dolphin, it’s not “Dolby” decoding but an -I guess- accurate approximation, FreeSurround in the case of Dolphin.

I just had a look at the PCSX2 implementation of DPL and ported to EqualizerAPO so it can be used with Retroarch or MAME.

QSound is virtualized stereo using psychoacoustics, it’s similar or more primitive version of the current Dolby Virtual Speaker technology. While I was reading I found this post, so I think it would be safe to assume that QSound can be “decoded” back. I think I could remove the low pass for surround to replicate Game Mode. DPLII is harder to port to EqualizerAPO because it uses peak and frequency analysis.

EDIT: pcsx2 upmix code isn’t called on the emulator’s front end, so it doesn’t work, use my configs above instead.

1 Like