-
-
Notifications
You must be signed in to change notification settings - Fork 149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ES1688 emulation missing ESS Mixer registers #3700
Comments
Indeed, thanks for reporting @wbcbz7! DOSBox-X has the 0x36 command implemented, so I missed that when I ported the code over. I found it strange that the tunes kept playing for a few more seconds when you switched to a different one; now I understand the reason, that was the fade out time 😄 Enjoy Staging 😎 |
@wbcbz7 I've fixed this in the linked ticket, should be in the next dev build. Are you aware of any other programs that exercise the ESS specific mixer registers? |
I've just checked the latest dev build, and seems like fadeout is almost there, but it sounds like volume curve being too steep; also volume adjustment (using -/+ keys) doesn't work properly (volume drops by ~12dB and locks at that level). Looking at mixer-related commit, I've noticed there is a typo in As for other ESS-enabled applications that are using ESS-specific mixers, apart from Windows 3.x/9x driveres, I am not aware of those. |
@wbcbz7 Thanks for the pointers, this is helpful. I'll fix the wrong register index for the mixer read port, sure, but fixing the volume ramp would require some reversing (DOSBox-X uses the same wrong ramp, just by looking at the code). I have a bunch of ESS sound cards so I could reverse it, but frankly I have better things to do 😄 Maybe I'll try a hack to use the SB16 ramp for ESS, maybe that curve is a bit closer. Overall, the DOSBox-X ESS mixer seems to be shoehorned into the SB mixer implementation, so it's kinda expected to be somewhat wrong if there was no extra validation of the actual hardware behaviour. EDIT: Seems like the attenuation is constant 2db per step according to this: I'll give that a go. |
@wbcbz7 Fixed, and this is the extent I'm willing to go. The "proper" fix would involve using "mixed" SB Pro volume curves for the master volume and the DAC, and the different ESS volume curve for the FM output (as we only support ESFM at the moment, but not the rest of the ESS card), and the complication is not worth it. It would involve significant refactors for not much benefit. Our supported use case for the ESS card is a hybrid mode: ESFM for FM ("extended mode"), and SB Pro compatibility for the rest, including the DAC ("legacy mode"). |
yup, with the recent dev build FM volume mixer seems to behave as intended, and the difference between emulated and real mixer curve seems to be negligible enough, so I'll leave it as now. thanks for fixing! :) |
Are you using the latest Dosbox-Staging Version?
Different version than latest?
No response
What Operating System are you using?
Windows 10
If Other OS, please describe
No response
Relevant hardware info
No response
Have you checked that no other similar issue already exists?
A clear and concise description of what the bug is.
Hey there!
I've been recently checking out DOSBox Staging, and noticed that ESS AudioDrive emulation does not support extended ESS mixer registers, in particular Extended FM Volume register (index 0x36).
For example, koolnESS by The Furnace Posse uses mixer registers to fade out audio during song changing or exit, and seems that this effect is missing in DOSBox Staging (reference capture from real ES1869 with fadeout here: https://youtu.be/i_4dg8xUaBA?si=cMV6Tn63Y4rMLMHs&t=190)
Thanks in advance! :)
Steps to reproduce the behaviour.
No response
Download URL of affected game or software
https://www.pouet.net/prod.php?which=96920
Your configuration
No response
Provide a Log
No response
Code of Conduct & Contributing Guidelines
The text was updated successfully, but these errors were encountered: