PCSX2 / pcsx2

PCSX2 - The Playstation 2 Emulator
https://pcsx2.net
GNU General Public License v3.0
11.57k stars 1.6k forks source link

Implemented, but not called configuration options in SPU2-X. #1800

Closed VoidXH closed 1 year ago

VoidXH commented 7 years ago

PCSX2 version: v1.5.0-dev-1867-g5751e38

Description of the issue: Channel volume adjusting is not implemented, but ProLogic is, however, it's not called in the code.

Also, the LFE generation is a lowpass only. By Dolby standards, the LFE channel is 10 dB louder than the others, so by default, it should be on -10.

How to reproduce the issue: Use the following setings in the SPU2-X config file, but nothing will change: VolumeAdjustLFE(dB)=-10.000000 DplDecodingLevel=2

Last known version to work: As far as I have used PCSX2, these never worked.

ramapcsx2 commented 7 years ago

At one point this must've worked. It could be like 5 years ago though, back when I actually had a 5.1 setup and was testing Gigaherz's work. What should work is sending out a correct ProLogic 2 stream when the game supports it. Your decoder will then have to expand it to 5.1.

VoidXH commented 7 years ago

That's what I'm doing right now, but it's not adaptive, so I have to switch the output to stereo and the receiver to DPL II every time I play a PS2 game.

KrossX commented 7 years ago

I did a quick look and the setting seems to be "used" at least. However, AdvancedVolumeControl needs to be set to one/true for the volumeadjust* values to take effect.

MrCK1 commented 6 years ago

I could maybe do a "psuedo test" of these options later. I don't have a 5.1 setup, but my SoundBlaster X-Fi is capable outputting separate channels, ect.

mirh commented 6 years ago

I thought Pro Logic was still, technically speaking, a stereo signal?

p.s. with audacity, I remember I could record without problems from all the 8 channels of my realtek together

VoidXH commented 6 years ago

The problem is not the absence of any surround output, but the surrounds get the same signal as the fronts, even with DplDecodingLevel set to 1 or 2. DPL 1 would decode a mono surround track (by simply substracting one channel from another), and DPL 2 can actually create a pretty decent 5.1 sound.

FlatOutPS2 commented 6 years ago

Is there any soundtest homebrew for testing this?

ramapcsx2 commented 6 years ago

Not really, but the Tri Ace games use DPL2 nicely. In Star Ocean 3, there is a sound test where you can position the source "behind the listener" and it actually works, or used to work. The source was on the rear speakers.

turtleli commented 6 years ago

@VoidXH Can you post your full SPU2-X.ini?

FlatOutPS2 commented 6 years ago

@VoidXH Did you have AVC set to true( AdvancedVolumeControl=True )?

Once I set that and DplDecodingLevel to 2, the VolumeAdjust channels work as they should.

Thanks to @ramapcsx2 for suggesting SO3. It was ideal for this situation.

MrCK1 commented 6 years ago

So what's the difference of DplDecodingLevel 1 and 2 in the .ini? Edit: Found the explanation - Apparently though, DPL Decoding isn't fully implemented at the level it should be?

Regardless, it sounds like something that could be added to the GUI in the future - I was actually considering adding a tickbox and/or sliders for Advanced Volume Control at some point.

FlatOutPS2 commented 6 years ago

So what's the difference of DplDecodingLevel 1 and 2 in the .ini?

https://en.wikipedia.org/wiki/Dolby_Pro_Logic#Dolby_Pro_Logic_II

Regardless, it sounds like something that could be added to the GUI in the future - I was actually considering adding a tickbox and/or sliders for Advanced Volume Control at some point.

Yeah, both DPL and AVC should be added to the GUI (an adaptive submenu depending on what expansion mode is selected seems like the best way to do it).

mirh commented 6 years ago

Should this be renamed to "improve DPL" then? Btw I found this nice writeup

VoidXH commented 1 year ago

I retried with v1.7.3494, and the issue is still present. Channel volumes are not affected (all config files modified accordingly: PCSX2.ini, SPU2.ini, and SPU2-X.ini, and AdvancedVolumeControl is TRUE). Channel gains are also unaffected, and when DPL decoding level is set to 2, the left and rear left output is still the same. Using the following line in Equalizer APO results in silence, the equal signals cancel each other, so DPL is not active: Copy: L=L+-1.0*RL R=R+-1.0*RR C=0 SUB=0 RL=0 RR=0 SL=0 SR=0

stenzek commented 1 year ago

That is ~500 builds behind current master, and no longer supported (nor is wx or advanced volume control).