<BTS:21>の対処では直りませんでした. 別途解析いたします.
MAMEのAudio再生完了フラグがおかしいのでIRQ2を無理矢理なかったことにしてゲームを始めるようにする方法.
bp w@fff6
b@20f5=91
bpdi
<BTS:58> の修正で添付の画面も変になりました.
1 こだちが登場する
2 VRAM を ADPCM 用 RAM へコピー
3 2画面縦スクロール構成に変更
4 通常ゲーム場面に戻る際に 2 のコピーしたデータを ADPCM 用 RAM へ復帰する
ADPCM RAM で操作する address の開始は 0xda00.
3 の初期化の部分で write address を 0xda00 に設定するときに, ADPCM controll register (絶対 address 0x1ff80d) へ設定する data が 0x63, 0x62, 0x60 の順番.
通常 write address を設定する場面は bit6, bit5 が 1 になっておらず、こちらの実装ではそれの場合の対処が入っていない.
手順の4が間違っていたので書き直し.
1 こだちが登場する
2 VRAM を ADPCM 用 RAM へコピー
3 2画面縦スクロール構成に変更
4 通常ゲーム場面に戻る際に 2 のコピーしたデータを VRAM へ復帰する
本件の状態を保留に変更.
ADPCM 再生時の書込み処理は現在の構成では CD-ROM からの DMA のみを想定しており、 6280 からの低速な書込みを想定していない.
CD-ROM からの DMA の互換機能も十分ではないため、それの改修に合わせて修正を検討する.
<BTS:19> と原因は大体同じだったのでついでに直した.
ADPCM controller の処理分岐部分を古いコードを捨てて作り直したが、まだ絵が化けていた.
その原因は address 0x1ff80d data bit 0 の解釈が間違っていただけだった.
本件は修正済みとする.
I just tested with build 20180806 and works without problem!
Thank you very much!