2010年10月16日の日記を表示中
2010年10月16日 (土)
■ケイブ祭り
赤い刀のインストセットが欲しかったので,今回は参加してみました.一応12時からアクセスはしていたんですが,503エラーばかりでちっとも商品のページが表示されません.1時間近く経過したあたりから,たまに商品ページが表示されるようになったんですが,カートに入れると503エラー.仕方ないのでカートに入るまでクリックを繰り返していたら,いつの間にか1個しか要らないものがカートに複数入っていたりで,何かもうね・・・.そしてこれをまた延々リロードしてゼロにして,再度カートに入れ直す・・・と.終わってんなー.
そんな感じで,結局注文確定できたのは13時半近く.最後の決済のところでなぜかカードの認証がはねられてしまい,代引きにせざるを得ませんでした (´・ω・`).なんだかよくわからんなー.
ちなみに,1時間以上だらだらと張り付いて買ったものは一通り夜まで残ってたみたいです.たくさん作ったからなのか,人気がないからなのか・・・.赤い刀,ゲームは非常に面白いと思うんですけどねー (シナリオは何か暗いっぽいのであんまり好きじゃないですが・・・)
■秋葉原
ケイブ祭り後は秋葉原へ.15時くらいに出発して,あきばおーでM3のカタログを買って,千石電商でパーツを買った後は,いつも通り基板屋さんへ.久しぶりにトライでそこそこのものを買わせていただきましたw.ほんといつもすいません.マックジャパンは,先週超でかいのを買ったので,今週はお話しのみw.いやー,どちらのお店でも色々とためになるお話を聞くことができました.
その後はパーツの買い忘れを思い出して一旦トライに寄りつつ影武者へ.ちょい辛にしてみたけど,普通のに肉を追加で入れた方がよかったかなw
お腹を満たした後は,トレーダーと超芋 (すごく久しぶりに行ったw) で適当にジャンクソフトを購入し,オヤイデで16芯のケーブルを買って秋葉原離脱.オヤイデは対応いいですねー.横断歩道の駅側のケーブル屋さんは・・・あっ!w
というわけで買ったものとか.何かポリスノーツのパイロットディスクはダブってるような気がしなくもないけど・・・
[コメントを書く]
■板
とりあえず天地を喰らうIIとパニッシャーで1枚しかなかったカードコネクタが不便すぎる感じだったので,こちらのセイミツのを導入してみました.見た目がイマイチな上に,切り欠きがなくて逆刺しが心配なのがアレですが・・・.
うちのハーネスには逆刺し防止の仕掛けがついているので,こんな感じのものを挟まないと使えないのが不便なんですよねー.うーん.
ところでこの板は何でしょう.
ゴクリ・・・
じゃーん,System32のダークエッジでした.
ただし,電池が切れていますw
ダークエッジは,Jリーグ1994と同じように,電池が切れていても起動はします.ただし,いつもの警告文 → ハイスコアと画面が切り替わった後,タイトルロゴが出てくる前で画面がブラックアウトします.その後,一瞬タイトル画面が出るものの,デモプレイに入る瞬間に再度画面がブラックアウトしてしまい,そのまま再度ハイスコアが表示されるまで真っ黒なまま.
また,コインを入れた後も,同様にキャラクターセレクトのところからずっと画面が黒いままになります.コンティニュー表示のところでようやく画面が出ますが,その後はまた同じことの繰り返し.つまり,上の画像は,辛うじて映る絵を抜き出しただけなんですねーw
というわけで,今日はこれの復活に挑戦してみます.
ひとまず,MAMEで羊羹のエミュレーションを無効にして動かしてみたところ,これとまったく同じ現象が出ました.素晴らしい.この状態で動くようなパッチを当てればいいんだな.
MAMEのソースによると,ダークエッジの羊羹は,垂直同期割り込みに合わせて動き出し,メモリの特定の領域をゼロクリアしたり,条件次第で特定の場所を書き換えたりします.これと同じことをV60側でやってやれば,ダークエッジは再度動くようになるはず.同じことをやるには,V60の垂直同期割り込みのハンドラに羊羹がやっていたのと同じ処理を書き足せばよい,と.
垂直同期割り込みのハンドラは,MAMEのデバッガで,1フレーム進んだ瞬間に止まるように動かしたら一瞬で見つかりました.結構ギチギチに命令が詰まっていましたが,幸いなことにハンドラの直後に3ByteのNOPがくっついていました.3Byteあればサブルーチンコールができるので,後ろの方の命令を3Byteずらして,スタックからレジスタの値をPOPする直前に,羊羹相当の処理を行う以下のルーチンに飛ばします.
mov.h #0, R1 mov.h R1, 7072[R25] mov.h R1, 7082[R25] test.b 212c[R25] bz FIN dec.b 212c[R25] bnz FIN mov.b #1, 212e[R25] FIN: rsr
問題は,これをROMのどこに突っ込むか.ROMの後ろの方にはスペースが全然見当たらなかったんですが,少し戻ったら0xffで埋まった,いかにも未使用っぽい領域があったので,そこをちょこっと間借りすることに.
場所が決まったら,今度はアセンブルします.といっても,V60のアセンブラがないので,上記コードはハンドアセンブルで機械語にw.まあ,大部分は,MAMEの逆アセンブルの出力結果を見ながらの切り貼りで済みましたがw.上記サブルーチンは,機械語で32Byteに収まりました.
この変更を適用したところ,MAME上で羊羹のエミュレーションなしでダークエッジが動くようになりました.やった! 後は焼いて実機で動くことを確認すれば・・・って,ダークエッジのROMは27C240なの!? うはー,在庫がない(;´Д`)
いやでも,16bit幅の4MbitのROMなら27C4096と同じだよな・・・.ひょっとしてゲタ履かせれば使えるんじゃ? そう思ってデータシートを見たら,なんとこれらはピン互換.下駄すら必要ありませんでしたw.27C4096ならたくさんあるぜ!
というわけで,さっそく焼いて実機で動かしてみたところ・・・キタ━━━━(゜∀゜)━━━━ッ!! タイトル画面のアニメーションが出ました!
そしてゲーム画面もちゃんと映る!今までブラックアウトしていた部分が全部出ています.やっほう!
当然ROMチェックはBADになりますが・・・
こちらも修正してOKに.バーニングライバルの経験もあって,一瞬で見つけられましたw
というわけで,作業時間は4時間弱ってところですかね.簡単に終わってよかったです.まあ簡単に終わったのは,MAMEがプロテクションを完璧にエミュレーションしてくれてるお陰なんですけどね.一体中の人はどうやって調べたんだろうなぁ・・・.
ちなみに,電池レス化した後,ヒートランの様子をだらだらとUstreamで流しっぱなしにしていたら,外国の方がチャットで話しかけてきて結構大変でしたw
[コメントを書く]
■PS2PCB
[コメントを書く]
2010年10月16日の日記を表示中
[コメントを書く]