SDスナ解析 1. 2. 3.

スナッチャーにもバグ?


  エミュレータでゲームをすると画面や動作が変になる、そんなゲームを解析すると
  実機依存型のバグが見つかってしまうのです。

  例によって私はVDP、VRAM関係はわかりません。
  ゲームの途中でVRAMをセーブして、エミュレータとMSX実機でのVRAMの
  違いから推理しただけです。
  コナミのプログラマさん、私の推理が違っていたらご免なさい。


バグだと思うところは・・・

  スナッチャーのメインルーチンは、C000h〜D1FFhあたりかな。
  CDB7hにVDPコマンドHMMVルーチンがあります。HL,BC,D,Aレジスタに値を設定し
  てコールするようです。ところが Dレジスタの設定をしないままHMMVルーチンをコ
  ールしているところがあるのです。

  プログラムの流れで、Dレジスタには66hが入っていますが、DレジスタはDYの上位
  設定に使われるので、ビット0,1だけが有効みたいです。
  そうすると D=02h になるような気がしますが、実機では D=00h になるようです。 

  それでMSX実機では問題は発生しません。


エミュレータでは・・・

  スクリーン7を使うと、VRAMのF800h〜FBFFhあたりはスプライト関連に使われ
  るのでしょうか。
  F800h〜FFFFhにVDPコマンドHMMVで00hを書き込んでいる所があります。
  Dレジスタの設定をしていないところです。それでVRAMのこのアドレスがクリア
  されず、画面にゴミが出ることになります。


  私の推理、どうでしょう。詰めがあまいかも知れない。


戻る トップページに戻る