75:ヴァリスII/最初のデモでとまる

最終状態:完了
report#75.1
投稿者:na6ko
時刻:2018-08-08 15:25:44
状態:受付済
頻度:必ず起きる
再現方法:
ゲームを起動して1分ほど放置する
https://youtu.be/lHL6hkaX_AM
report#75.2
投稿者:na6ko
時刻:2018-08-08 15:26:48
状態:受付済
頻度:必ず起きる
debug terminal をみる限りでは推測不明
report#75.3
投稿者:na6ko
時刻:2018-08-09 02:40:16
状態:受付済
頻度:必ず起きる
00] 00 00 00 00 00 00                                                  [40/1836]
disc #0011
DE.00]x01
DE.01]x01
DE.02]x02
08> 000E06 02-> 6280
08> 000E08 01-> 6280
08> 000E09 01-> 6280
08> 000E0A 12-> 6280
08> 000E1A 08-> 6280
08> 000E3A 0C-> 6280
08> 000E9A 20-> ADPCM RAM 02
08> 00111E 04-> 6280
08> 001122 18-> 6280
08> 00113A 10-> 6280
08> 0011DC 04-> 6280
08> 00114A 10-> ADPCM RAM 02
D8> 01:23:70 play
audio play
drive stop
08> 0011E0 04-> 6280
08> 00115A 0C-> 6280
08> 001166 14-> 6280
08> 00117A 08-> 6280
08> 001182 08-> ADPCM RAM 02
08> 001198 08-> ADPCM RAM 02
D8> 02:19:64 play
audio play ここで停まる
report#75.4
投稿者:na6ko
時刻:2018-09-09 23:28:18
状態:修正済
頻度:必ず起きる
6280 の動作を見ていると 0x1ff80c.r.0 == 1 を期待しているが 0 のままなので進行停止になっていた.

MAME の動作 (以前の実装)
- 0x1ff80d.w.7 = 1 の時点で 0x1ff80c.r.0 = 1 とする.

Mednafen の動作 (現在の実装)
- 0x1ff80d.w.7 = 1 で rw_length = 0 を代入 (実装していなかった)
- 0x1ff80d.w.7 = 1 で 0x1ff80c.r.0 = 0 (実装済み)
- 6280 から ADPCM 用 RAM を読むときに rw_length == 0 なら 0x1ff80c.r.0 = 1 とする (実装していなかった)

0x1ff80d.w.7 = 1 のほうは完全に実装し忘れだったが問題になるソフトが Valis II 以外になかった.
0x1ff80c.r.0 の参照は ADPCM の再生後にやるのが普通で, 6280 から読んだあとを想定していなかったので mednafen のソースもちゃんと読んでいなかった.

0x1ff80c.r.0 = 1 の更新条件はソース上では 2つになってしまった.
当実装では 6280 からの read と MSM5205 からの read で別にしているが本物では同じかもしれない. MSM5205 への fifo が空にしてから更新しないと早めに ADPCM 再生がとまることがあるので統合できない.
report#75.5
投稿者:na6ko
時刻:2018-10-31 23:14:43
状態:完了
頻度:必ず起きる
終了