Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
03910 Sound Major Always Jun 30, 2010, 21:09 Jul 5, 2010, 11:50
Tester hap View Status Public Platform
Assigned To hap Resolution Fixed OS
Status [?] Resolved Driver
Version 0.138u2 Fixed in Version 0.138u3 Build
Fixed in Git Commit Github Pull Request #
Summary 03910: All sets using stereo sound: Right speaker is louder than left speaker
Description Right speaker is louder than left speaker in games with stereo sound.

easily audible in eg. qsound logo in sfa2 as well as neogeo booting fanfare
Steps To Reproduce
Additional Information
Github Commit
Flags
Regression Version 0.138u2
Affected Sets / Systems All sets using stereo sound
Attached Files
wav file icon sfau1.wav (1,272,862 bytes) Jun 30, 2010, 21:39
wav file icon sfau2.wav (1,277,534 bytes) Jun 30, 2010, 21:39
Relationships
There are no relationship linked to this issue.
Notes
3
User avatar
No.06317
Tafoid
Administrator
Jun 30, 2010, 21:40
edited on: Jun 30, 2010, 21:42
Confirmed and attached -wavwrite of the set, sfa in u1 and u2 for comparison. The right channel seems pretty much double what it should be.
User avatar
No.06320
hap
Developer
Jul 1, 2010, 19:38
found the cause:
When setting up stereo speakers (sound.h/c), right speaker m_config.m_x is 0.2 (correct), and left speaker should be -0.2 but it is 0.0, resulting in a 'mono' left speaker.

Why this happens? dunno... that puzzle is for Aaron :P
User avatar
No.06334
hap
Developer
Jul 4, 2010, 22:20
Ok, the problem is that doing "* (double)(1 << 24)" and then "/ (double)(1 << 24)" converts any negative value to 0.0. This is not just used in sound.h/c, but also eg. video.h/c where eg. astrocde.c last param of "MDRV_SCREEN_DEFAULT_POSITION(1.1, 0.0, 1.18, -0.018)" (_yoffs) is converted to 0.0.

my build is 32-bit btw