2011年10月15日から2011年10月11日までの日記を表示中

2011年10月15日 (土)

秋葉原

昼間は昨日から始めたスパIIXの電池レス化作業の続きを実施.プログラムとデータがちょこちょこ入り組んでいて,頭が痛くなりそうです.ただ,ツールがそれなりに機能してくれて,ぱっと見だと見落としそうな命令やデータの存在を教えてくれるのがありがたい感じ.

で,夕方からは秋葉原に行ってきました.ラーメン食べたい病が発症していたので,千石に行ってマックジャパンに行った後は,影武者で朝・昼・晩ご飯を兼ねた油そばを注文.うむ,満足.影武者の油そばは,何となくポクポクポクチンの変なメニュー (闇ポクとか) を思い出しますw

油そば

影武者の後は,トラタワへ移動.相変わらずこの時間の8Fは人が多い・・・w.今日はマイコンソフトの中の人もお仕事でいらしていましたw.基板を見ながらお話ししたり,取り置きをお願いしていた基板とかを購入した後は,7Fに移動.さっきご飯を食べたばかりなので,飲みはパスして軽く遊んでから撤収しました.虫姫さま1.5は初クリアです.やっぱ無印よりだいぶ簡単になってるんですかねw.

虫姫さま1.5クリア

スコアは気にしないw

あと何かと話題のゲットスターも遊んでみました(笑).雰囲気的にはファミコンの凡作っぽい感じですね・・・w.1位のスコア結構すごいなーと思ってゲームオーバー後のネームエントリを見てみたらニチブツくんでした(笑)

ゲットスター

2011年10月14日 (金)

スパIIX電池レス化

ドイさんがCPS2の電池レス化に挑戦し始めたのを見ていたら,自分も再度挑んでみたくなり,以前より考えていた補助ツールを作成して参戦してみることにしました.

補助ツールと言っても大したものではなく,バイナリを16Byte単位で見て,それが命令かデータかを推定するだけのものです.推定の判断基準は,16進数表示した際の「0」の数とか,ASCIIコード範囲の値の出現率とか,同じ数値の出現率とかそういうの.

前にもどっかで書きましたが,CPS2のプログラムは,命令として実行される部分が暗号化された状態でROMに書き込まれています (というか,命令としてROMにアクセスした場合に,読み出した値を復号化し,それ以外の場合には読み出した値そのものを使うようになっている).電池が切れると,復号キーや復号範囲も消えてしまうため,この状態で無理矢理ゲームを動かすには,ROM上の命令部分のみを復号化してあげなければなりません.

復号化のルーチン自体は,既に海外の凄い人が解析していて,MAMEなどにも組み込まれていますが,どこが命令として実行され,どこがデータとして読み出される領域なのかは,実際にプログラムを動かしてみないとわからない部分があるため,静的な情報は存在していないようです.

そこで,CPS2の電池レス化は「どこが命令でどこがデータなのかを明確に切り分ける」という作業を最初に行うことになります (細かいことを言うと,ROMチェックの処理では命令部分をデータとして読み出したりもするはずなので,理論上明確に定まらない部分があったりもするのですが・・・).前置きが長くなりましたが,今回作った補助ツールは,それをある程度自動で推定してくれるものになります.

CPS2のプログラムの暗号化処理は結構気合いが入った処理をしているお陰で,暗号化された状態の命令部分は非常にランダム性が高くなります.一方で,これを復号化した場合,68000の機械語の羅列になるので,同じような16進数が何度も出て来たり,ゼロが多数出現したりするようになり,ランダム性が大幅に低下します.また,データ領域は最初から暗号化されていないため,同じ数が何度も続いたり,ASCIIな値が並んでいたりと,元々規則性が高い状態となっており,逆にこれを無理矢理復号化すると,非常にランダム性が高い状態となります.

そんなわけで,プログラムを逆アセンブルしたり,実行時のトレースを利用したりしなくても,まったく復号化していない状態においてランダム性の低いデータの並びを示している部分がデータ領域で,逆に全体を復号化した際にランダム性の低いデータの並びとなっている部分が命令部分という風に,それなりに領域を推定できることになります.補助ツールでは,この特性を利用して命令とデータの境界を大雑把に推定します.

まあ,理屈はこんな感じなんですが,実際にこれがうまく機能するのか,ひとまず,推定の条件を適当に決めて,以前手作業で電池レス化を済ませたヴァンパイアセイヴァー2のプログラムROMを入力して確認してみました.結果,前の方の数領域に関して,見事に実際の境界と同じところが抽出できました.ふむ,これはなかなか使えそうです.

それでは次に,未知のプログラムに対して適用してみたいと思います.今回対象とするのはスパIIX.某キッチン戦士が電池交換をミスって電池切れさせちゃったやつです.

電池切れスパIIX

開けてみたところ,交換した電池がついたままの状態でした.あー,この交換方式は,美しいんですが,失敗する可能性が・・・.

電池が残っていた

一応念のため,電池切れチェッカーを動かしてみましたが,やっぱり電池切れでしたw

死亡確認w

というわけで,補助ツールを使っての電池レス化を開始・・・.って,スパIIXは先頭の4MByteが暗号化対象範囲なのかよ・・・.広いだろ(;´Д`).しかもROMの中身を見ると,先頭3MByteくらいまでは命令が入ってるっぽいし.ヴァンパイアセイヴァー2よりはるかに大変そうですなこりゃ・・・.今週末で終わるかな・・・.

[コメントを書く]

Doi 2011/10/19(水) 01:28:22
CPS2の電池レス化って傍から見ると格好良いですが
やる事って凄い地味ですね・・・遠い目

とりあえず、自分はココら辺りは絶対に大丈夫と言う
文字が並んでるデータ部意外は、動いてる状態でWP READ仕掛けて
読み込んだ部分を抽出する方法でやって見たいとおもいます。

2011年10月13日 (木)

板来来

探していた1枚が手に入りました.ドラマティックアドベンチャークイズ キース&ルーシィ.

キース&ルーシィ

まあ,中身は料理王みたいにぶっ飛んでいない,割と普通のクイズゲームですw.全然見掛けない割にはあんまり高くなかったので助かりました (それでもクイズとしてはだいぶ高かったけど・・・)

プレイデモ

あと,G-NETのBIOSアップデート用のROMもようやく入手w.

G-NETのアップデート用ROM (多分)

2011年10月12日 (水)

何もしていない

今日は何もしてないなー.月曜に買ってきたMVSをちょこちょこ遊んだりしてみましたが,あしたのジョー伝説は,MVS版も音周りが凄いというかやばいですね・・・w

2011年10月11日 (火)

System Iの音問題

昨日のメルヘンメイズの一部の音が出ない問題を追ってみました.とりあえずROMやチップ,コネクタなんかの接触を確認したり,なぎ倒されてる部品を起こしたりしてみましたが,何も変化なし (´・ω・`)

メルヘンメイズの基板

さっさと安心したかったので,倉庫番DXの基板を引っ張り出して・・・

倉庫番DXの基板

ROMとセキュリティチップをごっそり載せ換えてみました.サンハヤトのIC EXTRACTORが大活躍でしたが,やっぱり何度もやるもんじゃないっすねこれ・・・w.あ,よく見たら倉庫番DXは,一部ROM(C)ですなー.海外版からの変更かな.

倉庫番DXのマザーにメルヘンメイズのROMを載せてみた

お,こっちのマザーボードだと,ちゃんとメルヘンメイズで攻撃音が鳴りますねー.まずは一安心w.一方,元々メルヘンメイズだったマザーボードだと,倉庫番DXは音楽がまったく鳴らない状態となってしまいました (;´Д`).まあ,これで,マザーボード側の問題確定ということになりますね.もう少し調べてみます.

ナムコのSystem IのマザーボードはROMが乗ってる基板と,CPUやカスタムチップがたくさん乗ってる基板の2階建て構造です (というか,ROMが乗ってる基板をROMボードとかサブボードとか呼んで,CPUが乗ってる方をマザーボードと呼ぶのが自然な気もしますが・・・).これのどっちに問題があるか,組み合わせを変えて確認してみました.

結果,以下のCPUやカスタムチップが乗ってる方の基板に問題があるっぽいこと判明.これをつけた方の基板で音がおかしくなります(´・ω・`)

問題のある基板

ひとまずこの音声と関係しているらしいカスタムチップを正常な方と交換してみましたが,ここには問題はないようで,特に状況に変化は見られませんでした.残念.

カスタム交換してみたけど効果なし

次に,だめなマザーの方のYM2151の足をロジックプローブで観測してみたところ,データバスに全然信号が流れていないことが判明.

YM2151

となるとこの121番のカスタムチップが故障してるのかなぁ・・・.うーん・・・.と,今日はこの辺で終了.さて,どうしよう.

121

まあ,とりあえず,ROMが乗ってる側をROMボードと考え,この小さい基板をマザーボード的に使い回せば,両方手軽に遊べるのでOKかw

2011年10月15日から2011年10月11日までの日記を表示中

中の人情報

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

カレンダー

2011年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件のコメント

過去ログ