2011年10月23日から2011年10月19日までの日記を表示中

2011年10月23日 (日)

スパIIX 電池レス化

豪鬼を出した直後の処理で,本来プログラムとして実行される部分がデータとして読み出されてVRAMに転送されているのを発見して冷や汗をかきました.おそらく,転送したデータ自体は使われておらず,元々余っていた豪鬼用のデータ領域の後ろの方にプログラムを突っ込んで,なおかつキャラ関係なく固定長のデータをVRAMに転送するようになっているために,豪鬼の場合にプログラムが復号化されていない状態でゴミデータとしてVRAMに転送されているだけだとは思うんですが,まあ,これにより,やっぱりデータアクセスのログは過信はできないなぁということに・・・.

ところで,ふと気になって,現在いじっているROMイメージのSHA1をMAMEのソースに書かれているssf2xjdのものと比べてみたところ,何と半分くらいが一致するという結果になりました.ひょっとして,説明書きに「Phoenix Edition」って書いてあっても,単純に電池レス化だけしましたよってのが含まれているのか?フェニックスってついてるやつはどれも言語切り替えとかの機能がついてる変な改造版かと思い込んでいました.ああ,不覚・・・.

このまま詰めの作業を進めても,おそらくMAMEで対応しているデータセットとまったく同じものができて終わりだと思うので,スパIIXの電池レス化は一旦ここでやめておくことにしますw.ただ,今後のためにも,静的な解析でもっと詰めるための手法を考えておこうとは思いますが.命令部分を何とかして辿り尽くすことができれば・・・と思うんですが,厄介なのはディスプレースメント付きPC相対とかで読み出される,jmpとかrtsの後ろに格納されたオフセット情報の類なんですよね.この辺はデータとして読み出されるわけではなく,命令と同じでデコードが必要なんですが,どこから始まっているかはわかっても,どこまでがそうなのかは実行時にしか決まらないため,何となくデータを見て判断するしかないんですよね・・・.どうやるのがいいかなぁ.

[コメントを書く]

Doi 2011/10/28(金) 09:50:51
CPS2の電池レスの完全を求めると心折れますね・・・
くろ 2011/10/29(土) 07:33:06
でも、起動時に「Phoenix Edition」って表示されるんで明らかに付け加えてますよね。
nosuke 2011/10/29(土) 14:01:12
>> Doiさん
いやまさに,心折れますねー.99%くらいまでの自動化,何とか
実現したいですw
>> くろさん
うおー,やっぱりそういう表示の変更とかあるんですか.
要らぬことを・・・w
Doi 2011/11/01(火) 16:37:56
「Phoenix Edition」のROMから「Phoenix Edition」の文字消しちゃえば良いんですよ!(ぉ

自動化ねぇ・・・今回作った非常にゴミのようなツールを駆使しても
ツール任せは6割ぐらいで、残りは手作業なんですよね
もう、しばらくCPS2の電池レス化は勘弁です。

あと、長江電池切れたら担当します。(完璧じゃないですが…)

冬の本構想

何か出すなら本気で考えないとまずい時期になってしまいました.今週末当落発表だし.「本を書くためだけに何か新たにしんどいことをする」のはやらないと決めているので,やるなら楽しいことの副産物.でも,今から新しいことを始めてそれをネタにするのは凄く厳しいので・・・.となると・・・.

いつかチャンスがあればと思っていたタイトルが突然転がり込むようにして手に入ってしまいました.まさかのチキチキボーイズ.

チキチキボーイズ

やべえ,アクション楽しい (*´Д`).音楽素敵 (*´Д`).ほんとありがとうございました.

プレイデモ

あと,バッキーオヘアの日本語版も.

バッキーオヘア

いやー,以前は日本語版ないと思ってて,普通に英語版入手しちゃったんですよね・・・.実は単にMAMEが対応していないだけだったという (;´Д`)

日本語版

日本語で喋るのかと思ったんですが,英語のナレーションに日本語の字幕という構成でしたw

日本語字幕

こいつを壊せ!

こいつを壊せ!

ちなみに,バッキーオヘアのおまけ(?)についてきたワイルドウェストカウボーイズは,音声不良のジャンクということでしたが,動かしてみたら普通に音が鳴りました・・・と思ったら,しばらくして酷いノイズの嵐に・・・.まあきっと,054986Aのコンデンサの液漏れによる容量抜けか何かなんでしょうなぁ.この機に手持ちの基板の 054986A と 054544 のコンデンサを一気に交換してしまいたいところです.搭載してる基板,手元に何枚あるんだろうって感じですが・・・(;´Д`)

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個目以外は殆ど焼き直すことないとは思いますが・・・.

電池レス版ROMを焼いてみた

さて,どうなるか・・・キタ━━━━(゜∀゜)━━━━ッ!!

実機でも動いた

無事実機で電池レス版が動きました.

スパIIX

とりあえずデモに関しては落ちないですね.クレジット入れて遊ぼうとしたら即リセットがかかりましたがw.いやー,ここまで長かったなぁw

プレイデモ

2011年10月23日から2011年10月19日までの日記を表示中

中の人情報

名前:
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件のコメント

過去ログ