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)|
|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.|
Originally posted at https://github.com/mamedev/mame/issues/7171
Needs regression version.
Apparently a sound channel never goes key off?
|Affected Sets / Systems||gunlock, rayforce, rayforcej|
|There are no relationship linked to this issue.|
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.
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)
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)
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.
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