50:ストライダー飛龍/とまる

最終状態:完了
report#50.1
投稿者:na6ko
時刻:2018-03-21 19:25:08
状態:新規
頻度:必ず起きる
BOOT後、 NEC Avenue の長時間ロード画面が完了し画面が切り替わるあたりで停まる.
report#50.2
投稿者:na6ko
時刻:2018-03-21 19:28:45
状態:受付済
頻度:必ず起きる
READ(6) で sector count 0x20 (=0x10000byte)でADPCM DMA をするが、
ここの write address が 0xc0000 になっている.
この場合 address 0xc000 から 0x4000 byte を読んだあとに address が 0xffff -> 0x0000 になり、 upergrafx 特有の内部処理で停まっているのが原因.
このバグ自体は直せるが、エミュレータでは write address が 0xc000 ではなく 0x0000 になっていることが気になる.
report#50.3
投稿者:na6ko
時刻:2018-03-21 19:51:43
状態:受付済
頻度:必ず起きる
write address が 0xc000 になっている理由は下記の順.
- BIOS の初期化で 0x0000 を代入
- NEC Avenue の画面を出すときに 6280 から ADPCM へ 0xc000 byte 書き込む
- DMA 転送の初期化で address 0x1ff80d.w.1 = 0 のまま address 0x1ff80b.w = 1 で転送開始

<BTS:49> で転送自体は始まるようになったが address 0xc000 -> 0xffff -> 0x0000 の別の理由で停まるようになっていた.
report#50.4
投稿者:na6ko
時刻:2018-03-21 20:08:35
状態:修正済
頻度:必ず起きる
6280 address 0x1ff80d.w.7 = 1 の時に ADPCM 向け RAM.write address = 0 にするように設定して動作した.
ADPCM 向け RAM.write address 0xffff -> 0x0000 の処理は現状のソースでは MSM5205 再生時のみの対応で, 非再生時に対応していない.
対応する場合ソースの修正がかなり多く、今回のように以前動いていたソフトが停まることになる可能性が高いので一旦保留.
本当にこの対処が必要な場合に改めてソースを直す.
report#50.5
投稿者:na6ko
時刻:2018-04-08 23:49:35
状態:完了
頻度:必ず起きる
終了