ビジュアルシーンが終わり、次の読み込みで停止する.
SELECTボタンで回避可能.
MAME でも停まりました. SCSI status の遷移がおかしいみたいです.
PC E9DF付近で 0xd0 なので status 待ちのようです.
D8> 30:35:03
D9> 33:04:30 play
audio play
drive stop
08> 000E10 20 (ここでとまる)
MAME 同様 PC $e9e2 付近で SCSI 遷移でとまる.
EA97: ldx #$08
EA99: lda $1808
EA9C: sta ($FA),y
EA9E: lda $F8
EAA0: bne $EAA4
EAA2: dec $F9
EAA4: dea
EAA5: sta $F8
EAA7: ora $F9
EAA9: beq $EAB5
EAAB: iny
EAAC: bne $EA99
EA99: lda $1808
EA9C: sta ($FA),y <- ここで PC $4142 を書いてる
EA9E: lda $F8
EAA0: bne $EAA4
EAA4: dea
EAA5: sta $F8
EAA7: ora $F9
EAA9: beq $EAB5
EAAB: iny
EAAC: bne $EA99
(loops for 2540 instructions)
EAAE: inc $FB
EAB0: dex
EAB1: bne $EA99
(loops for 4 instructions)
EAA2: dec $F9
(loops for 2556 instructions)
EAAE: inc $FB
EAB0: dex
EAB1: bne $EA99
(loops for 411 instructions)
E870: bbs1 $F5 $E86D <- vblank 割り込み発生
E86D: jmp ($2202)
4182: brk <- 死亡
E736: bbs0 $F5 $E733
<BTS:15> と原因は同じで、 CD-ROM data 転送中に割り込みベクタの付近の命令を上書きする処理があるのに割り込みの禁止をし忘れている.
対処には割り込みを禁止するパッチをいれるか、正確な CD-ROM の読み込み時間を再現し偶然停まらないようにするの2択となる.
状態を保留にする.
mednafen pce_fast module でも再現.
CD読み込み時間を等速か高速に選べる設定を追加.
初期設定値は等速となり、その場合は改善した.
潜在的なバグは修正していないので、タイマーの値を変えるとまた停まる可能性があることに注意.
<BTS:15> と原因が同じため統合. この ID は停止する.