2010年10月20日から2010年10月16日までの日記を表示中
2010年10月20日 (水)
■飲み
久々に平日飲みでした.全然時間ないなー.
[コメントを書く]
■PCエンジン
ちょっと超兄貴を動かしてみたくなりPCエンジン一式を引っ張り出してみたんですが,なぜかコアグラ本体から映像が出ません (DSUB 8ピンに交換してあってRGB信号が取り出せるようにしてある).ワンダーモモを起動してみたら音が出たので一応動いてはいる模様.しかし映像が出ない.XRGB-3側で,一応15kHzを認識して,真っ黒な画面は出るので,何らかの映像信号は出ているっぽいんですが・・・.うーん.
とにかく映像が出ているかどうかだけでも確認しようと,インターフェースユニット側のビデオ出力を液晶につないでみたら,なぜか突然RGB出力の画面が映りました.ケーブルを抜くと再度映らなくなり,さすとまた映る・・・.えーと,インターフェースユニット側に負荷をかけないと信号が出ないとか? 前からそうだったっけ・・・?少なくともスーグラと組み合わせて使ってたときは違ったよなぁ.まあ,そのうち詳しく見てみますかねー.
ちなみに,CD-ROM^2はばっちりでした.貼り合わせて作ったギアは,しっかり働いてくれているようです.すばらしい.
[コメントを書く]
■荷物
ケイブ祭りで買ったものが届いてました.うおお,箱でけぇw
しかし中はスカスカw
に,2枚あるのは,うっかりしてたからじゃなくて,よみさんの分なんだからね!
インストセットがでかいので,あんな箱に入っていたわけですなー.
[コメントを書く]
2010年10月19日 (火)
■何もしていない
今日もなんか忙しくて本当に何もしていないような.あ,セカイモンにアカウント作ってみたよw.そして後でYahooのアカウントでいいことを知る(´・ω・`)
[コメントを書く]
2010年10月18日 (月)
■電池交換
帰宅してザ・キングオブドラゴンズの電池交換を済ませるなど.というか遅かったので今日はそれしかできてません(;´Д`)
交換後,無事動いている様子.
ガードのコツがつかめん.
他にも結構な勢いで色々入荷しているんですが,最近全然写真アップしてませんな・・・.
[コメントを書く]
2010年10月17日 (日)
■荷物
明るくなってから寝たのに,午前中に荷物が2度も届いて叩き起こされる展開.しかも2個目の荷物の梱包が驚くほど簡素で,ビックリして目が覚めました (;´Д`)
見ての通り,基板にエアキャップを巻いて紐で縛った状態.恐ろしいことにレスロック(足) がついたまま (しかも外向き) なので,少しでもどこかに引っかかったりしていたら基板の角がめりっといっていたことでしょう.
ちなみに,中身はテトリスプラス+マザーボードです.値段的には全然大したことのない基板ですが,ROM目当てではなく(テトリスプラス,これで4枚目だし・・・),1枚確実なメガシステム32のマザーボードを押えておくことが目的だったので,割れてなくて本当によかったなーと.
って,何か書いてあるし(;´Д`)
[コメントを書く]
■板
今日は先手を打ってソニックの電池切れ対策をやってみました.MAMEのソースによると,ソニックの羊羹は,RAMのとあるアドレスにデータが書かれると,別の場所をゼロクリアしたりしつつ,書かれた値を元にROM上のテーブルを引いて,RAMの別の領域に書き出すということをやってるらしいです.
MAMEを使って調べたところ,このトリガとなるRAMの領域はステージを管理する変数っぽく,主に2ヶ所で値を書いているようです.ウォッチポイントをセットして確認した感じだと,片方はコインを入れてキャラを選んだり,ステージが次に進んだりするときに書き込まれる感じ.もう片方は全然通らないけど,近くのデータ領域を見るに,何となくデバッグ目的のステージセレクト用っぽい.とりあえず前者が動けば十分そうですなー.
しかし,そうはいってもMAMEでやってる処理と同じ処理を書いて,それをうまいこと差し込む方法を探すのは結構面倒そう.・・・そうだ,どこかにデバッグ用の羊羹相当の機能を提供する関数が残ってるんじゃない?というわけで,一生懸命探してみたんですが,それっぽいところは見つかりませんでした.テーブルをROMからRAMにコピーしているところを発見したので.この近くにあるかと思ったんですけどねー.
そんな感じで前者の部分をJSR命令に置き換え,後ろの方の空き領域に以下のコードをドカッと足してみました.アセンブラはないので,今回も当然ハンドアセンブラ _|‾|○.MAMEで答え合わせができるのがせめてもの救いかw.ちなみにpush/popとか,ぱっと見ソニックではあんまり使われていないようだけど,どうなんだろう・・・.
push R1 cmp.b #E, 65C4[R25] ble LABEL1 mov.b #E, 65C4[R25] LABEL1: mov.h 65C4[R25], R1 mov.h 7500[R25](R1), R1 mov.h R1, 706E[R25] mov.w #0, 70BC[R25] pop R1 rsr
ひとまず,羊羹のエミュレーションを切ったMAME上で,このパッチで動くようになりました.あとは,実機上での確認ですが,電池の切れたソニックが手元にないので,これを実機上で試すことはできません・・・.あ,EPROMとGALとジャンパを電池のないJリーグ1994のサブボードに移植すればいけるかな?
ちなみに,ソニックのこのプロテクションは,デモプレイなどでは発動しないため,電池が切れても立ち上がって普通にデモがぐるぐる回るはずです.コインを入れてキャラを選んだ時点で初めて電池切れがわかるっぽい (リセットがかかったり,変なステージから即死の状態で始まったりすると思われる).恐ろしい・・・.
[コメントを書く]
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月20日から2010年10月16日までの日記を表示中
だんだんエスカレートする☆さんのフリーダムっぷりに
二の句が出ません。
これ、よく無事に届きましたねぇ。
本当、☆さんの品物は、いざ届いても安心できませんね。
まあ,確かに☆さんのチェンジエアブレードだったか出たツイ
だったかは,これが紙に代わっただけだったような気もしますがw
けれども、☆さん以外にもこんな梱包で発送される方が
存在するとは・・・・