Viewing Issue Advanced Details
|ID||Category [?]||Severity [?]||Reproducibility||Date Submitted||Last Update|
|07607||Sound||Minor||Always||Apr 5, 2020, 18:48||Apr 1, 2021, 20:25|
|Tester||Hydreigon||View Status||Public||Platform||MAME (Official Binary)|
|Assigned To||dink||Resolution||Fixed||OS||Windows 10 (64-bit)|
|Version||0.219||Fixed in Version||0.231||Build||64-bit|
|Fixed in Git Commit||289efaf||Github Pull Request #|
|Summary||07607: scross, scrossa, scrossu: No engine sound|
|Description||The game doesn't produce the bike engine sound.|
|Steps To Reproduce||Play the game.|
Earlier version of MAME with engine sounds?
|Flags||Verified with Original|
|Regression Version||0.70u5 (Added)|
|Affected Sets / Systems||scross, scrossa, scrossu|
multipcm.cpp (21,993 bytes) Mar 28, 2021, 05:40 Uploaded by dink
dink's experimental scross enginesound fix
|There are no relationship linked to this issue.|
Apr 5, 2020, 21:36
The first video you have in your description is NOT MAME - at least any released MAME that I can tell. I tested all the way back to 0.71 (first release version) and there is no engine sound. The same user that posted the netplay version about 2 years later posted a video where it said it was "from MAME" - there is no engine audio.
So, the issue is since added as far as I can tell - the other emulator I cannot prove, but I suspect it is a version of modeler, but the latest version I could access which had built-in Kaillera 0.9.3a and it does not have Stadium Cross in its list of games supported or in texts.
Anyway, I can confirm no engine sound, but I cannot fully divine the origin of the emulator in the video - but suspect Modeler.
Apr 6, 2020, 02:50
|Update: It turns out Stadium Cross is one of those games that has a separate sound route for the engine speakers (requiring its own machine config). That will require a bit of research.|
Mar 13, 2021, 06:00
edited on: Mar 13, 2021, 06:05
There's a lot of weirdness going on in the driver.
First init_scross() does
m_soundcpu->space(AS_PROGRAM).install_write_handler(0xb0, 0xbf, write8smo_delegate(*this, FUNC(segas32_state::scross_bank_w)));
which should actually be AS_IO, I believe, otherwise it's mapped over ROM instead over the standard banking the other multi games use.
By doing this the game actually sounds worse though.
Secondly, the game never seems to change the bank, not in game, nor in sound test. Removing the banking and loading the ROMs entirely gives same exact sound as before, but still no motor sound.
Thirdly, is the YM3438 even used in this game? If I mute it I hear no differences. EDIT: Seems to be used for IRQ.
Mar 27, 2021, 10:49
|I wonder if the motor sound is actually generated by a game specific IO board with its own sound hardware / speaker?|
Mar 27, 2021, 16:17
edited on: Mar 27, 2021, 16:18
|My prediction was this game having its engine sound routed through a different sound channel but that may be incorrect. I'm getting a manual for this game (because the current scan is incomplete and doesn't have the wiring diagram) to see if any additional speakers are routed through a different channel.|
Mar 28, 2021, 05:45
After a bit of debugging I realized that the sound cpu is first setting the key on for channel 0x1a (engine sound channel), then it writes the sample#.
as it sits, multipcm.cpp only supports writing the sample# _then_ key-on, which is why the engine sound gets skipped.
I made an experimental fix for fbneo, then ported it over to the latest multipcm.cpp from mame. Please forgive me if it doesn't cleanly compile, I'm sure Haze can figure out what I meant and fix it. Here's the modified source for mame/src/devices/sound/ (attached up above)
in write_slot(): case #4 was changed to just do key on / key off. the rest of the code, which sets the current sample and gathers data from it, was moved into "Sample" / case #1.
So far I only tested scross and orunners, if you'd like to help test it and find problems caused by this fix I'd like to know about it & would be interested in exploring other routes to a fix, if it comes to that.