Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
09313 Sound Major Always 1 day ago 17 hours ago
Tester belegdol View Status Public Platform MAME (Self-compiled)
Assigned To Resolution Open OS Linux (64-bit)
Status [?] Confirmed Driver
Version 0.283 Fixed in Version Build x64
Fixed in Git Commit Github Pull Request #
Summary 09313: vcop2: Music missing in beginner stage
Description As of 0.283, vcop2 lacks music during gameplay in the beginner stage. It works in 0.280 and is broken in 0.282. I was not able to bisect it any further yet.
Steps To Reproduce 1. Start vcop2
2. Insert coin
3. Start beginner stage
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems vcop2
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
2
User avatar
No.23857
PL1
Tester
1 day ago
v0.281 has music.

Scott
User avatar
No.23858
gm_matthew
Tester
17 hours ago
I have identified the cause of this bug and am currently working on a fix.

When the game wants to play a sound effect or music track, it runs a subroutine that writes the appropriate sound command to a buffer in memory, increments the buffer index and unmasks sound interrupts. When a sound interrupt is asserted, it reads the command from the buffer via the index and transmits it to the SCSP.

The reason why this is not working properly is that the subroutine unmasks sound interrupts before incrementing the buffer index, but MAME 0.282 and later fires a sound interrupt the instant it is unmasked which results in the wrong command being transmitted because the buffer index has not been incremented yet. (Patching the game program so that it increments the buffer index first results in sound and music working as expected.)

It seems that there must be a tiny delay between an interrupt being unmasked and the same interrupt being asserted, at least enough for the i960 to execute an additional write instruction.