2011年7月3日から2011年7月1日までの日記を表示中
2011年 7月 3日 (日)
■バース電池レス化
昨日作ったバースのROMを実際に動かしてみました.いきなり実機でやる前に,まずはエミュレーター上で・・・って,何かいきなりレジスタへの不正なアクセスがあったとかいうメッセージが出るぞ (;´Д`)
逆アセンブル結果を見返してもアドレスの入れ替えが間違っているようには見えません.問題となっているのは,掛け算を利用したプロテクションの部分なんですが,ここでは単に掛け算結果の上位16bitを読んでるだけだしなぁ.このレジスタは,電池が生きてる間は0x148番地で,電池が切れると0x146番地に移動するんで,単純にアドレスを書き換えてやればいいはずなんですが・・・って,上位16bitを読んでるはずなのに,move.lで読んだ値をadd.wしてるじゃん!
68000はビッグエンディアンなので,add.wされるのは,電池切れする前の場合,0x148番地ではなく0x14a番地から読んだ値ということに・・・.電池切れする前の0x14a番地は,掛け算の結果の下位16bitを読み出すレジスタ.このレジスタは,電池切れすると0x144番地に移ります.つまり,ここでは本来読みたいレジスタと全然違うレジスタを読んじゃってることになりますね.
・・・いやしかし,これでも普通に動いているように見えるなw.読んでるだけで使ってないのかな? とりあえず 0x144番地からmove.wするように書き換えて対処.上位と下位の両方を読まなければならないハードウェア仕様的な制約があったりすると厄介ですが,その辺どうなんだろうなぁ・・・? まあとにかく,これでエミュレーターでエラーは出なくなりました.
続いて実機で動かしてみます.うちにあるバースはプログラムROMが4Mbit x 2の構成.修正箇所は両方に存在しているため,両方とも差し替える必要があります.というわけでROMを2個焼いて,CボードをPANG!3のものと交換してみました.
スイッチオン!・・・キタ━━━━(゜∀゜)━━━━ッ!!
とりあえずそれっぽい絵が出て動いています.まずは成功といったところでしょうか.
クレジットつぎ込んでエンディングまで確認しようかと思ったんですが・・・このゲーム,戻り復活なんですね・・・.23面あたりで挫けて一旦終了 _|‾|○.遊んだ範囲では怪しいところはなかったかな? 赤い網みたいなのが出てくるところで,網が地上物のように見えたけど (地上物だと思って重なろうとして何回か激突死したw),あれは単に元々絵がアレだからなのかな・・・.
[コメントを書く]
■秋葉原
午後になってだらだらと秋葉原へ移動.主な目的は先日取り寄せた基板の受け渡しですw.早速トラタワで1枚受け渡しして,そのまま上の階で取り置きしてもらっていた基板を購入.またG-NETが1枚・・・w
その後は,久々に影武者に行ってみました.16時近くと,お昼には超遅い時間ですが,まあ起きてから何も食べていなかったので・・・w.丁度冷やし油そばなる夏限定っぽいメニューが新たにできていたので,これを注文.トッピングはヤサイニンニクで.
おおお,これは美味い!そして量も丁度いい!夏の板武者はこれで決まりですね!w
お腹いっぱいになったところでpiyoさんたちと合流して,また板の受け渡しを・・・,って2枚渡して終わりのはずが,何かまた大量の荷物が・・・w.その後,ナツゲーに行ってタイトーのCDを買いつつニチブツくんに板を渡して,アキヨドでスマートフォン用の小物とか買って離脱.いやー,今回も荷物多くてやばいです・・・.
買ったものとか.基板以外はこんな程度ですw
こちらは預かりもの.
すごいなーw
おおおー.
[コメントを書く]
- Doi 2011/07/12(火) 16:51:40
- アルテミスの腋(*´ω`*)ぺろぺろ
- nosuke 2011/07/12(火) 23:39:15
- うわぁ・・・w
■サーバ不調
またサーバマシンの騒音が酷いことになったので,再度分解してもう少し調べてみました.どうもファンがヒートシンクのどこかにわずかに接触することがあるようで,それでカチカチ鳴っているっぽい. 真面目に買い換え検討した方がよさそうですね,こりゃ・・・.ファンレスのネットトップとかそういうのがいいのかな?
[コメントを書く]
2011年 7月 2日 (土)
■バース電池レス化
実家で朝と夕方に用事があったので,日中はバースの電池レス化作業を進めたり.じっくり作業する時間が確保できたのって,何かずいぶん久しぶりかも・・・w
まずはエミュレーターの方に手を入れて,ビデオ回りのレジスタにアクセスしている命令のアドレスをまとめて後から抜き出せるようにするところから.デバッガでやればいいじゃんと思われるかもしれませんが,デモ1回回す間に通るところを引っ掛けるだけでも結構手間なので・・・.
エミュレーターを起動するとThinkPadのXのパレットが崩壊して画面がサイケな状態になるという全然本質的じゃない問題が発生してはまりましたが,ビデオドライバを入れ替えたりしているうちにどうにか解決してようやく作業開始.もうこのT60環境は色々厳しいな・・・.
軽く手を入れたMAMEで,デモを1回回してやったところ,見事にレジスタにアクセスしている命令のアドレスをごっそりと取り出すことに成功.やった.そしてこれをメモリアクセスでやってやれば,CPS2やFD1094,Kabukiなんかも・・・ゴクリ.
もちろん,これですべてのアクセスを抽出できるわけではないので,抽出できなかった分は従来通り,レジスタのアドレスなどを頼りに検索しては逆アセンブルの繰り返し.うーん,やっぱりここはしんどいですね.どこが命令でどこがデータなのかの情報も別途抜き出して,これをヒントに逆アセンブルしてやれば,もう少しマシになるかな・・・?
そんな感じで帰宅後もポチポチROMを書き換えて,ひとまず完成.ナイツオブザラウンドみたいに,シーンごとのレイヤイネーブルマスクの値がテーブルになってどっかに保存されているのかと思ったんですが,バースはその辺,構造が違うようで,直値でビットの上げ下げしてました.ステージごとに大きくレイヤの使い方を変えたりしていないってことなのかなー.
[コメントを書く]
2011年 7月1日 (金)
■スマートフォン
朝から髪切ったり買い物したりしてきました.髪はちょっとだけいじってもらったので,若干雰囲気変わったかもしれません・・・w.で,帰り際に,駅前のauショップに寄ってスマートフォンに機種変更してみました.変更先の機種はこれ.
IS12SHです.何かauから「お前の携帯電話は来年になると周波帯の事情で使えなくなるから早く機種変汁」というお手紙が来てて,若干割引になるみたいだったんで,せっかくなら・・・と.いやー,電話かけられるAndroidを触るのはこれが初めてですね・・・w
[コメントを書く]
■エアキャップ
[コメントを書く]
2011年7月3日から2011年7月1日までの日記を表示中
なってました.
何か自分で間違えて命令部分まで書き換えちゃってたみたいですorz