- --
Viewing Issue Advanced Details
ID | Category [?] | Severity [?] | Reproducibility | Date Submitted | Last Update |
---|---|---|---|---|---|
09229 | Sound | Minor | Always | 7 days ago | 5 days ago |
Tester | hap | View Status | Public | Platform | MAME (Official Binary) |
Assigned To | Resolution | Open | OS | Windows 11/10 (64-bit) | |
Status [?] | Acknowledged | Driver | |||
Version | 0.278 | Fixed in Version | Build | 64-bit | |
Fixed in Git Commit | Github Pull Request # | ||||
Summary | 09229: moomesa: volume cuts sometimes after sound effect triggers | ||||
Description |
It has volume cuts sometimes after sound effect triggers, such as the player shot sound. mame moomesa -wavwrite 1.wav is fine, so it seems like a bug in sound.cpp? If I disable audio effects (or switch resampler type), the bug is still there. If I skip the sound_stream_update in k054539.cpp, the bug is still there. It continuously writes to active_w in k054321_device, which calls propagate_volume(), which calls m_speaker->set_input_gain, which calls sound.cpp sound_stream::update(), I think the bug is in there. I assume it can be worked around it like this: if (m_active != data) { m_active = data; propagate_volume(); } But that doesn't fix the underlying issue in sound.cpp moomesa isn't the only game using this chip. You can hear the volume chopping too in for example xexex after you go to service mode, and modify the global volume. |
||||
Steps To Reproduce | Just play the game, and shoot a lot. | ||||
Additional Information | |||||
Github Commit | |||||
Flags | |||||
Regression Version | 0.278 | ||||
Affected Sets / Systems | moomesa | ||||
Attached Files
|
|||||
Relationships
There are no relationship linked to this issue. |
Notes
3
![]() No.23547
Robbbert Moderator
7 days ago
|
Can't get the sound to misbehave. But it seems you've already fixed it? |
---|---|
![]() No.23548
hap Developer
7 days ago
|
No I did not fix it. |
![]() No.23550
hap Developer
6 days ago
|
I worked around it here for this specific use case: https://github.com/mamedev/mame/commit/e298ea572791f4abb85cd9805124b79d6e5f7beb I say workaround, but the commit itself is not bad in any way. It makes sense to skip an unnecessary call to update() if the gain value did not change. The issue can still be reproduced in moomesa service mode: Go to game options, put the cursor on sound volume, and the music is choppy. The bug in sound.cpp: I suspect it may be doing commit() twice. This: m_write_position += samples; |