2011年7月2日の日記の1番目の記事へのコメント
■バース電池レス化
実家で朝と夕方に用事があったので,日中はバースの電池レス化作業を進めたり.じっくり作業する時間が確保できたのって,何かずいぶん久しぶりかも・・・w
まずはエミュレーターの方に手を入れて,ビデオ回りのレジスタにアクセスしている命令のアドレスをまとめて後から抜き出せるようにするところから.デバッガでやればいいじゃんと思われるかもしれませんが,デモ1回回す間に通るところを引っ掛けるだけでも結構手間なので・・・.
エミュレーターを起動するとThinkPadのXのパレットが崩壊して画面がサイケな状態になるという全然本質的じゃない問題が発生してはまりましたが,ビデオドライバを入れ替えたりしているうちにどうにか解決してようやく作業開始.もうこのT60環境は色々厳しいな・・・.
軽く手を入れたMAMEで,デモを1回回してやったところ,見事にレジスタにアクセスしている命令のアドレスをごっそりと取り出すことに成功.やった.そしてこれをメモリアクセスでやってやれば,CPS2やFD1094,Kabukiなんかも・・・ゴクリ.
もちろん,これですべてのアクセスを抽出できるわけではないので,抽出できなかった分は従来通り,レジスタのアドレスなどを頼りに検索しては逆アセンブルの繰り返し.うーん,やっぱりここはしんどいですね.どこが命令でどこがデータなのかの情報も別途抜き出して,これをヒントに逆アセンブルしてやれば,もう少しマシになるかな・・・?
そんな感じで帰宅後もポチポチROMを書き換えて,ひとまず完成.ナイツオブザラウンドみたいに,シーンごとのレイヤイネーブルマスクの値がテーブルになってどっかに保存されているのかと思ったんですが,バースはその辺,構造が違うようで,直値でビットの上げ下げしてました.ステージごとに大きくレイヤの使い方を変えたりしていないってことなのかなー.
2011年7月2日の日記の1番目の記事へのコメント
[コメントを書く]