2011年10月22日から2011年10月18日までの日記を表示中
2011年10月22日 (土)
■飲み
昨日帰宅した後に中途半端に椅子で寝てしまったせいか,本格的に横になって寝ようとしても全然寝付けず,仕方がないので朝まで雑用を色々と片付けたりしてから就寝.うーん,中途半端に寝たせいで疲れが・・・w
で,午後に無理矢理起きて,基板のチェックをしたりした後,夕方に大荷物を持って秋葉原へ移動.預かっていた基板やその他をまとめてお届けしてきました.量が多くて腕が痛い・・・(;´Д`).そのまま30分ほどで基板屋さんをチェックして,慌しく秋葉原を離脱.今日は珍しく何も買いませんでした.まあ,たまにはね・・・w
そんなわけで,夜は秋葉原ではなく新橋のドイツビールのお店で飲みでした.お疲れ様でした.
2011年10月21日 (金)
■飲み
割と突発気味に呼ばれて飲んできました.お疲れ様でした.
ちなみに,帰りに,雨で濡れた階段で滑ってこけてしまいましたw.手とか腰とか痛いです (´・ω・`).あと,日本酒を飲んだので頭も痛いです (´・ω・`)
[コメントを書く]
2011年10月20日 (木)
■スパIIX 電池レス化
昨日追加した,ROMへのアクセスの状況を取得する機能を利用して,エミュレーター上でクレジットを入れてプレーした際のログを取得してみました.エミュレーター側は,まともに遊べる環境ではないので,ログを取るためのプレーが非常に大変です (;´Д`)
ログを取得しては間違いをあぶり出して修正する作業を何度か繰り返し,間違い出てこなくなったところで再度実機用のプログラムを焼いていざプレー.・・・おお,今度はクレジット入れてプレーしてても落ちないぞw.難易度を最低にして本田で一周してみましたが,無事エンディングまで完走しました.こりゃゴールも近いか?
が,その後,池田さんに「豪鬼もチェックしてください!」と言われ,試してみたら,見事にリセットがwww.やはり実際に動かして取得した記録による暗号化・復号化領域の切り分けはカバレッジの問題が大きいですな・・・.最後はやっぱり静的な解析で詰めるしかないのかなぁ・・・.
[コメントを書く]
2011年10月19日 (水)
■スパIIX 電池レス化
あまりにもデモで落ちる箇所が多く,デバッガでトレースを取って命令を遡って原因を探すのが非常にしんどい感じです.もっと楽にやる方法はないかと考えていたところで,ドイさんの発言により,以前にMAME内部でのメモリアクセスにフックをかけて,どこのアドレスにどんなアクセスがあったかを記録する仕掛けを作りかけていたことを思い出しました (元々はCPS1の電池レス化のために作った).これを完成させれば,エミュレーターで実行した範囲は完璧に命令とデータを分けられるはず・・・.
というわけで,早速以前の残骸を発掘して完成させてみることに.プログラムROMは高々先頭4MByteだけなので,4M要素の配列を静的に確保しておき,ROMの読み出しが発生したら,そこに命令として読まれたかデータとして読まれたかの情報を書き込みます.で,エミュレーターの終了時やシグナルを受けた際に,この配列の内容をファイルに書き出して利用する感じ.トレースのログみたいにアクセスの順番を残す必要は一切ないので,情報としてはひとまずこれで十分でしょう.
問題は,どうやってROMの読み出し時に処理を割り込ませるかなんですが・・・.当初,CPS2のハードウェア定義の方で,先頭4MByteのアドレス空間に対して,読み出し時に呼ばれるハンドラを登録しようとしたんですが,CPS2のように暗号化したままのROMと復号化した状態のROMの両方を使うようなプログラムの場合,後々復号化処理のための領域の登録ができなくなるようで,これはうまくいきませんでした.
そこで,上品にやるのは諦め,68000のCPUエミュレーターの方のソースに手を突っ込み,メモリアクセスする部分にこの処理を割り込ませてやったところ,こっちは成功.無事データと命令の読み出しを区別して,記録できる状態となりました.
というわけで,これを利用して,通常版でデモを延々回した際のアクセス状況を取得し,現在の電池レス化版のROMの暗号化・復号化範囲と照らし合わせたところ,見事に漏れや間違いがボロボロと・・・.いやー,まだこんなにあったのか・・・.
この辺を必死に直してやったところ,エミュレーター上でデモが落ちなくなったので,いよいよ実機で動かしてみることにします.動かすためには4MbitのROMを6個も焼かないとだめなんですよね・・・.まあ,1回焼いちゃえば,1個目以外は殆ど焼き直すことないとは思いますが・・・.
さて,どうなるか・・・キタ━━━━(゜∀゜)━━━━ッ!!
無事実機で電池レス版が動きました.
とりあえずデモに関しては落ちないですね.クレジット入れて遊ぼうとしたら即リセットがかかりましたがw.いやー,ここまで長かったなぁw
[コメントを書く]
2011年10月18日 (火)
■スパIIX 電池レス化
ようやくデモの3周目 (バイソンが出てくるあたり) まで進むようになりました.その他,dis.xの出力から分岐命令を抜き出して,分岐先がデータになっている部分を探して潰したりと,あの手この手でちまちま間違いを探しては潰しています.しかしこんな状態じゃまともになるまでまだまだかかりそうだなぁ.
[コメントを書く]
2011年10月22日から2011年10月18日までの日記を表示中
[コメントを書く]