68:pomping world / ADPCM の音が出続ける

最終状態:完了
report#68.1
投稿者:na6ko
時刻:2018-07-19 18:02:45
状態:受付済
頻度:必ず起きる
再現方法:
ゲームを起動し、1度目のデモを見終わり、2度目のタイトル画面以降で発生
ADPCM の再生停止を行なっていないようだ.
report#68.2
投稿者:na6ko
時刻:2018-07-19 19:24:47
状態:保留
頻度:必ず起きる
その場しのぎの修正方法は判明したが、根本的な修正が難しいので保留とする.

1) PCE 側の program の問題
デモ画面終了直前に ADPCM を再生するが、これの終了処理をせずに READ(6) を発行する.

2) UperGrafx 側の controller のバグ
ADPCM の length register == 0 のときに再生を停めていなかったので、停めるように修正. 通常は ADPCM 側から割り込みをかけて PCE がそのレジスタの終了処理をするのでこれ以外はなくても問題がなかった.

3) UperGrafx 側の仮想 CD drive の問題
READ(6) の発行は下記.
08> 0012F0 20-> 6280
08> 0012CC 20-> ADPCM RAM 02
08> 001310 04-> 6280

本物の CD drive であれば 1 度目の READ(6) の処理の途中で終了処理をしていない ADPCM の再生は停まる. こちらの実装では読み込みが明らかに早いので 2 度目の READ(6) を追記してしまい、再生されてしまうのが原因.

その場しのぎの回避方法として READ(6) に待ち時間(1sectorごとに3ms程度)をいれることにより回避はできる.
report#68.3
投稿者:na6ko
時刻:2018-09-09 15:00:20
状態:保留
頻度:必ず起きる
mednafen pce_fast module でも再現.
report#68.4
投稿者:na6ko
時刻:2018-09-11 14:22:48
状態:保留
頻度:必ず起きる
CD読み込み時間を等速相当に設定したら改善した.
report#68.5
投稿者:na6ko
時刻:2018-09-11 21:28:46
状態:保留
頻度:必ず起きる
CD読み込み時間を等速か高速に選べる設定を追加.
初期設定値は等速となり、その場合は改善した.
report#68.6
投稿者:na6ko
時刻:2018-09-11 21:29:19
状態:修正済
頻度:必ず起きる
状態変更
report#68.7
投稿者:na6ko
時刻:2018-10-30 19:57:14
状態:完了
頻度:必ず起きる
終了