Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
07861 Sound Major Always Jan 28, 2021, 18:52 Apr 4, 2023, 06:41
Tester Kale View Status Public Platform MAME (Self-compiled)
Assigned To Resolution Open OS Windows Vista/7/8 (64-bit)
Status [?] Confirmed Driver
Version 0.228 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 07861: gunlock, rayforce, rayforcej: Sound glitches badly after the first game over
Description After the first game over and starting a new game sound starts to glitch badly, for example by not playing back the Top Landing-esque sample in stage 1 "this is the control tower [...]" or start to hiccup the player death explosion when you lose a life.
Steps To Reproduce Game over once (don't continue), then start a new play.
Additional Information Originally posted at
Needs regression version.
Apparently a sound channel never goes key off?
Github Commit
Regression Version 0.195
Affected Sets / Systems gunlock, rayforce, rayforcej
Attached Files
There are no relationship linked to this issue.
User avatar
Jan 28, 2021, 19:55
As tested, it appears the regression happens here:

It is to be noted that there were acknowledged issues with this commit as the device was flagged as having "imperfect sound" but they have not been resolved or even looked at since that time.
User avatar
Apr 4, 2023, 00:31
edited on: Apr 4, 2023, 00:44
After the game over message, the audiocpu jumps to its reset routine.
(also happens in 0.194)

C10FA6: rts
C0B3F8: sf $d526.w
C0B3FC: move.w #$2700, D0
C0B400: dc.w $a000; opcode 1010 <-- huh
C10D8C: move.w D0, (A7)
C10D8E: addq.l #2, ($2,A7)
C10D92: rte
C0B402: jmp $c1089e.l <-- jump to reset routine
C1089E: moveq #$7f, D0

gunlocko doesn't do this, and the bug doesn't happen in that set.
The audiocpu roms are the same as the newer sets.
User avatar
Apr 4, 2023, 06:41
edited on: Apr 4, 2023, 06:42
maincpu side difference in the new sets is probably this, part of code insert $141a-14a3:
001450  move.b  #$ff, $c00488.l
001458  clr.w   $c00480.l
00145E  clr.w   $c00482.l
001464  lea     $c00000.l, A0
00146A  move.w  #$ff, D1
00146E  moveq   #$0, D0
001470  move.l  D0, (A0)+
001472  dbra    D1, 70
001476  rts