2011年1月30日の日記の1番目の記事へのコメント
■ナイツオブザラウンド 電池レス化
ナイツオブザラウンドの電池レス化に挑戦してみました.とりあえず現在発生している現象が本当に電池切れによる現象なのかを確認するところから.ROMを吸・・・って何じゃこりゃぁぁ!!!?
なんと19番のROMのシールが全然別の基板のものではないですか.S2Tってことは,ダッシュターボかな?・・・いやいや,そんなことより,これ,適当にその辺に転がってたジャンク基板のROM挿したとかだったらどうしよう・・・と心配したんですが,吸い出したら一応中身はナイツオブザラウンドの19番ROMのデータでした.うーん,電池切れな上に一部ROM(C)疑惑か・・・.微妙だなぁ (;´Д`)
下がり気味のモチベーションに必死に抗いつつ,MAMEのソースを修正して,電池切れと同じ (であろう) ハードウェア構成を作った上で動かしてみたところ,見事に同じ現象が発生しました.ずっと画面が真っ暗で,音だけ再生され,オープニングデモで剣を地面に突き刺すところだけ画面の下の方に草原か何かが表示されます.電池切れ確定で良さそうです.はぁ・・・.
というわけで,次は世の中の実績調査.The Dead Battery Societyによると,CPS1は普通に電池レス化できるみたいですね.US版に関しては実際にデータがありました.MAMEのソースを見る限り,ナイツオブザラウンドは日本語版と海外版とでセキュリティ回りで違いは特になさそう.これは希望が持てます.
CPS1のプロテクションは,MAMEのソース (src/mame/video/cps1.c) を読んだ感じだと,どうもグラフィック回りのレジスタのアドレスを,デフォルト(Cボードにカスタムパーツは乗っているけど電池がないタイプのもの) からちょっとずらすことで行っている模様.ということは,レジスタを参照している部分のアドレスを,デフォルトの値に修正してやればよいのか? レジスタのアドレス範囲を参照しているところを,MAMEのデバッグモードで引っ掛けてやると,あっさり見つかりました.絶対アドレスを指定してアクセスしているので非常に探しやすいですね.これならすぐ終わるかな?
・・・と思いきや,どうもレジスタのアドレスだけでなく,レイヤ関係のビットマスク(レイヤイネーブルマスク)のビット位置も電池で保存されているらしく,切れるとこれのビットの位置が変わってしまう模様.レイヤのビットマスクは,レイヤコントロールなるレジスタに書かれた値とANDを取るらしく,探したら,このレジスタに書く値はメモリ上の固定番地に常駐しているっぽい.というわけで,ここを書き換える部分も全チェックして,ビットの位置を変更してやりました.はー.もう他にはないかな?
一通り修正して,MAMEで動かしてみたところ,電池切れの環境で起動することが確認できました.それではいよいよ実機へ.
ROMを焼いて装着して電源ON!・・・あれ,何も変わってないぞ・・・.あ,Cボードの設定を切り替えるのを忘れていた (;´Д`).The Dead Battery Society の情報によると,Cボードは,そのまま使う場合,上に乗っているカスタムチップの45番と46番のピンをGNDから+5Vにつなぎ変えないとダメらしいのです.が,はんだを温めるのがちょっと面倒だったので,ここはクイズ殿様の野望2のCボードを拝借することにしました.こっちは元々Cボードにカスタムチップがある上に,電池が乗っていない基板なので,最初から45番ピンと46番ピンが+5Vにつながっています.それでは改めて・・・.
・・・キタ━━━━(゜∀゜)━━━━ッ!!
普通に動いています!やりました!うおおお!!!
・・・と思ったら2面の途中で画面が真っ暗に orz.再度MAMEで確認してみたら,こっちは落ちないけど,おかしなアドレスのレジスタに書き込みをしたとのメッセージが・・・.あ,これ,電池なし版でアドレスがどこだかわからなかったレジスタか・・・.適当にデフォルトのCボードで空いているアドレスを指定したのがまずかった模様.MAMEでは用途自体がUnknownとなっているし,いじらなくていいのかな・・・? というわけでここを元に戻したところ,2面でも落ちなくなりました.よーし,今日はここまでだ.オリジナルのCボードの改造はまた明日にします.
ちなみに,ナイツオブザラウンド,キングオブザドラゴンズ,キャプテンコマンドーのCボード (90631C-5) と,電池のないタイプのCボード (92631C-6) とは,こんな感じで45番と46番の配線が違ってます (他も少々違うようですが・・・).ナイツオブザラウンドではGND直結ですが,殿様の野望2では+5Vにつながっていました.まあ,そういうことですね.
ていうか今気づいたんだけど,なんかうちの殿様の野望のROMシール,全部がこんな感じで露骨にコピーっぽいんですが・・・(;´Д`).いやでも,わざわざこんな基板をコピーして作るやつなんていないよなぁ・・・.
2011年1月30日の日記の1番目の記事へのコメント
[コメントを書く]