2009年10月8日から2009年10月4日までの日記を表示中

2009年10月 8日 (木)

冬の本

冬の本に着手しました.試しに上下巻くっつけてみたら140ページくらいになったw (当たり前か).加筆分もさっさと書いてページ数決めておかないとー.このページ数だとポプルスが妥当なのかなぁ.

飲み

飲みでした.今日も相当飲んだ.タクシーで帰宅後,疲労爆発で何もできずに就寝.

2009年10月 7日 (水)

RefControl

最近PrefBarを入れてデフォルトでリファラを切った生活を送ったりしているんですが,これだとときどき不便なので今更ながらRefControlを導入してみました.とりあえずITmediaとG-HALさんのページのみオンになるようにしてみたw

プロギア

1ゲームだけやったら3ボスで死亡 (´・ω・`)

2009年10月 6日 (火)

セイヴァー2を電池レス化してみる おまけ

プログラムROMのチェックでNGが出る問題.後ろの方のプログラムROMのアドレスにwatchpointを仕掛けてやったら何をやっているのかあっさり判明しました.各ROMの先頭アドレスから0xfffおきに1byteずつ読んで足し込んでいき,結果を最初のプログラムROMに書いてある2Byteと比較するだけでした.もっとすごい計算しているかと思ったぜー.そして超便利だなwatchpoint.

模範解答を現状のプログラムROMに合わせて修正したらOKになりました.これで既知の問題は全部片付いたか.ちなみに模範解答の部分はデコード不要領域でした.数値だけだとどっちなのか判断つかなくて最後まで迷ったところだなぁ,これ.

プログラムROMチェックも突破

2009年10月 5日 (月)

今日のハードオフ

ファミコンソフトが結構増えてたけど,箱に詰め込んでレジ前に縦に4個も5個も積み上げるの漁りにくいから勘弁してくれ (;´Д`)

つっぱり大相撲他

というわけでやっとつっぱり大相撲ゲット.105円でした.同じ箱に前からあった超汚い350円のが入っているのが何とも・・・.

C77

受付確認ハガキが届いておりました.当落は来月頭だっけ?はー.

2009年10月 4日 (日)

セイヴァー2を電池レス化してみる その3

電話で起こされたのを機に,そのまま作業再開.サウンドテストの表示が変な問題は,単純にデコード不要な領域を見落としていて,文字列データの部分をデコードしてしまっていたのが原因でした.

ここで既知の問題は一通り片付いたので本日一発目の実機チェック.実機でもばっちりゲームまで到達しました.写真は何かハメコミっぽいけど違いますよw.

実機でも起動した

が,いざ遊んでみるといきなりリセット発生.どうも2回目のダウンを奪う直前にリセットがかかるっぽい (;´Д`).MAMEでも再現するし.今度はどこだー.

今回も例外ベクタにブレークポイントを仕掛けまくったら今度はアドレスエラーで落ちてることが判明.でもスタックを見てもどこで落ちているのかやっぱりよくわからん・・・.仕方ないので落ちる直前でトレースを取るようにしてやったところ原因がわかりました.本来デコード不要なところをデコードしてるせいで,その値をROMから読んでjmpした際にめちゃくちゃなところに飛んでいました.

何でこんな初歩的なのを今まで見落としていたのか・・・と思ったら,この部分,デコードするとちょうど 68000 の命令になるらしく,dis.x の出力ではデータではなく自然な命令列になってました (;´Д`).こういうパターンもやっぱりあるのか・・・

他にもこういうのがあったとしても dis.x 側から探すのはさすがに厳しそう.そこでデコード前のROMデータに対して現時点で判明しているデコード不要の部分のみをわざとデコードしたデータを作ってみました.こうすると,データの殆どの部分がランダムな値の並びになるので,未発見のデコードが不要な部分の規則的なデータの並びが目立つようになり,バイナリデータの目視で発見しやすくなるという具合です(笑).hexdump の出力をざーっと目で確認してみたところ,3ヶ所くらいデコード不要指定漏れが見つかりました.ほんと抜け漏れなく探すの難しいわー.

これらの修正で,勝利しても落ちなくなりました(笑).よかったよかった.というわけで,あらためて実機でプレー.落ちずに1周してくれましたよ.わーい.ていうかモリガンでクリアしたんだけど,エンディングのカットってこれでいいのかw?

エンディング

スタッフロール

ちなみにテストモード内のメモリテストがNGになるんですよねー.ワークRAMの方は 0xFFFFF0 からの16Byteを飛ばすようにして回避できましたが,ROMの方がよくわからん.何を計算していて,答えはどこにあるんだろうなー.

メモリテスト

そんなわけで,とりあえず68000初心者でも根性とROM焼き環境があれば電池レス化は可能ということが確認できました (笑).死んだ板がまだあと2個あるので,次はもう少しエレガントにやる方法を模索していきたいですね.デコード前のデータのランダムさをうまく数値化して半自動化できたら面白いかもなぁw.あと今回全く試さなかったんですが,dis.x以外の逆アセンブラも試してみたいところ.

あと,本当は「ここが俺の見つけたデコード不要領域だぜ!」とか「ここにパッチを当てろッ」とか出したいんですが,どこまで出していいものやら.それからMAMEベースに作ったツールとかもそのうち出せればと思うんですが,MAMEのソースを流用したエミュレータ以外のものはライセンス的にどうなんだろう的な・・・

ちなみに電池レス化するとメモリのアクセスレイテンシが減るからタイミングがずれるという説もありますが,そもそもゲームは1フレーム内でやること全部やったらフレーム同期待つだろうから,アクセスレイテンシが減って違いが出るとしたら処理落ちするくらい処理が重くなったときとかですかねー.考えたくないけど,プロギアとかだと差が出るのかなぁ.いやだなぁ.

2009年10月8日から2009年10月4日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2009年10月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ