- --
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
|
No.23857
PL1 Tester
1 day ago
|
v0.281 has music. Scott |
|---|---|
|
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. |