2009年10月31日から2009年10月1日までの日記を表示中

2009年10月31日 (土)

原稿

メルセンヌツイスタそのものだとイマイチな感じだったので,Hack the Cell '09 の課題をほぼそのままサンプルにさせてもらうことにしましたw.単純に乱数系列作る機能を高速化するのではなく,合計値を求める部分を高速化するという点で実は結構バランスのいい題材になっているということに今更ながら気づいたり.ループアンローリングを始めるとソースでページ食いまくるけどベーマガみたいなもんだと思えば・・・だめかw?

プロギア

数日前にニコニコ動画でこんな攻略動画を見て「稼がない,こんなやり方もあるのか!」と衝撃を受けたわけですが,今日何度か実践してみたらついに4ボスを撃破して5面まで到達することに成功しました.まあ,4面の戦車で1UPを取れるようになったというのもあるんですがw (でもその直前でよく死ぬw).抱え死にが多かったので,練習すればもうちっと行けそうです.

5面ですぐ終了 (´・ω・`)

ダイヤにした後,道中はなるべく低速で頑張る&アイテム出ても取りに行かないというのがなかなかストイックで辛いのですがw,それでも4面でエクステンドするし,これはありかも.あと,今まで見たことないくらいまでゲージが上がって驚きましたw

ゲージの上がり方がハンパない

しかし,こんなに面白いのになんで今まで移植されてないんですかねー (まあ,プロギアに限った話じゃないけど).プロギアは子供が戦争に行くという設定とかに問題があるのかな.いやでも戦場のヴァルキュリアとかも年齢設定こんな感じだから関係ないか.結局版権とかビジネス的な問題とかそういう問題かなー.

[コメントを書く]

solino 2009/11/03(火) 23:55:50
面白くても、シューティングは儲からないと言う定理があるからでは?w
私は弾幕じゃないタイプの新作シューティングが出て欲しいですね〜
nosuke 2009/11/05(木) 01:00:11
悲しい定理ですねーw
シューティングで儲けるためには・・・本作だけで完結させずに
ネオロマ路線に走るとか? って,CAVEがそれに近いかな.
まあでもネオロマと違って絶対的なパイが小さいから厳しいかw

2009年10月30日 (金)

冬コミ

◎貴サークルは、水曜日 東地区“V”ブロック−30b に配置されました。

というわけでスペース確保できました.何かお誕生席っぽい?とにかく頑張らないとな・・・.関係者の皆様,よろしくお願い致します.

電源

ATX電源って実は -5V とか -12V とか出てたのね.-5V,ハーネスに配線すれば即利用OKか.

2009年10月29日 (木)

uim.elとEmacs23

Emacsでウィンドウを複数に分割して同じバッファを表示させた状態とし,片方のウィンドウで何か文字を入力した場合,もう片方のウィンドウは勝手にスクロールしたりせず元の位置のまま・・・というのが本来期待される動作なはずなんですが,Emacs23 + uim.el でこれをやると片方のウィンドウで入力した瞬間にもう片方のウィンドウがスクロールして同じ内容を表示するようになっちゃいます.こいつは片方でバッファの上の方を見たりしながら,もう片方でバッファの下の方に追記したい場合とかにものすごく不便です.

というわけで調べてみました.どうも uim-util.el にある以下の関数が期待したように動いていないのが原因っぽい.

(defun uim-goto-char (pt)
  (set-window-point (get-buffer-window (current-buffer)) pt))

Emacs23だと set-window-point がおかしいのかなーと思ったんですが,実験してみたところ set-window-point ではなく get-buffer-window が返してくるウィンドウの方がおかしいっぽいことが判明.たとえば以下を実行すると,本来なにも起こらないはずが隣のウィンドウに飛んじゃいますw

(select-window (get-buffer-window (current-buffer)))

うー,どうしたもんか.というかそもそも何でこんな複雑なことやってんだっけ・・・?普通に (goto-char pt) にしても動くんだよなぁw

アレスの翼

コメント欄でアレスの翼はJAMMAじゃなくて旧カプコンだという情報を頂きました.うは,そうだったのかー.なんということだ・・・.というかそうだとすると切り欠きの位置が違うから変なところに5Vかけてしまった気が・・・.

とりあえずダメ元でジャンクのハーネスから取ったコネクタを使って配線してみたところ,映像信号が一応出ているということが確認できました.

仮の配線

謎の線が映っています.

一応映像信号が出た

しかし,ゲームが始まっているというわけではなさそう.スピーカー線をつないでみたら音が鳴ったんですが,デモの音とかそういうのではなく,単にSEが延々と繰り返されているだけ.暴走しているのかな?

外れかけていたコンデンサをつけなおしたり交換したりしてみましたが特に変化なし.深追いしてまた昨日みたいにものすごいがっかり感を味わうのはいやなのでw,今日はこの辺でやめておくことにします.はー,原因は何だろうなぁ.

とりあえず何か足が錆び気味なICが1個あるのが気になります.こいつだけチップの表面が削られていて何だかわからんのですが・・・.うーん,関係あるのかなぁ.

足が錆びてる謎のIC

あと,基板たわみすぎだよなぁw

基板たわみすぎだろw

ちなみに,例によって +5V の線は 3.7V まで落ち込みます(;´Д`).電源が弱いのか基板がおかしいのか・・・.今度挑戦する際は電流も測ってみるかなぁ.あと,昨日,ATX電源のHDD用のコネクタから取ると電圧落ちないとか書きましたが,ありゃ単に測り間違いだったようです orz

しかし古い基板とかにはあんまり興味がないとか言っておきながら結局必死に動かそうとしているなぁw.やっぱ動かなくても仕方ないようなものが動いた時の感動がでかいからですかね.味わいてー.

2009年10月28日 (水)

Emacs23の記号

Emacs23をX上で使ってみたら一部の記号 (「α」とか「±」とか) が半角幅で全然違うフォントで描画されることに気づいてしまったため,どうにかして直してみました.ググってもそのものズバリは見つけられなかったんですが,何となく似たようなのを色々と混ぜて↓の形で一応解決.Emacs23なのに何でお前は東雲を使ってるのかという話もありますがw

;; ↓は元からあった部分
(create-fontset-from-fontset-spec
   "-shinonome-gothic-medium-r-normal--16-*-*-*-*-*-fontset-shinonome_16,
    ascii:-shinonome-gothic-medium-r-normal--16-*-iso8859-1,
    japanese-jisx0201:-shinonome-gothic-medium-r-normal--16-*-jisx0201.1976-0,
    japanese-jisx0208:-shinonome-gothic-medium-r-normal--16-*-jisx0208.1990-0")

(set-to-alist 'font "fontset-shinonome_16" 'default-frame-alist)

;; ↓を書き足し
(if (and (>= emacs-major-version 23) window-system)
    (mapcar '(lambda (x)
               (set-fontset-font "fontset-shinonome_16"
                                 (if (atom x)
                                     (cons x x)
                                   x)
                                 "-shinonome-gothic-medium-r-normal--16-*-*-*-*-*-jisx0208.1990-0"
                                 nil 'append))
            '((#xa2 . #xa3)
              (#xa7 . #xa8)
              #xac
              (#xb0 . #xb1)
              #xb4
              #xb6
              #xd7
              #xf7
              (#x0370 . #x03ff)
              (#x0400 . #x04ff)
              (#x2000 . #x206F)
              (#x2100 . #x214F)
              (#x2190 . #x21FF)
              (#x2200 . #x22FF)
              (#x2300 . #x23FF)
              (#x2500 . #x257F)
              (#x25A0 . #x25FF)
              (#x2600 . #x26FF)
              (#x2e80 . #xd7a3)
              (#xff00 . #xffef)
              )
           )
)

文字の範囲はEmacs22でutf-translate-cjk-set-unicode-rangeに設定するとよいとされているものをそのまま使用しています.何か後ろの方の範囲がちょっと広いような気もするけど・・・.

ちなみに,「変なフォントで描画されるなー」と思ったらその文字の上にカーソル持っていって M-x describe-char とかやると,それがどの文字で,どんなフォントで描画されているかが確認できたりします.あと,M-x describe-fontset RET とかやると,どのコードがどのフォントで描画されるかを確認できたりします.覚えておくと便利かも.

ジャンク板

昨日のジャンク板ですが,持て余し気味と思いつつも気になったので動かすことに挑戦してみました.まず一番動きそうなチャンピオンベースボール.ググったらおとかる。さんのところで配線情報発見.こりゃすげえ.でも36ピンのコネクタがないから試せません.残念・・・と思いきや,Gフロントで買ったジャンクパーツ袋をダメ元で漁ってみたら中からでてきましたよ36ピンのエッジコネクタw.ラッキーすぎる.

ジャンク袋の中に運良くに36ピンのコネクタを発見

というわけで既存の配線をぶった切ってボードに接続し,仮で配線して電源を入れてやったところ・・・

とりあえずハンダ付けしないで暫定接続

見事動作!やった! 同期信号に何かが乗っているのか,LM1881Nで信号を分離してやる必要がありましたが,それ以外は特にハマることもなくすんなりいきました.音も出ましたよ.「ストライーク!」とかw

チャンピオンベースボール動いた

調子に乗って次はジャントツに挑戦.こちらはひげねこ堂さんのところに配線情報がありました.こちらも同様に配線してみたところ・・・

ジャントツも暫定接続

動いているけど同期が取れず,画面が流れちゃいます.上の方には一応それっぽいのが出てるんですが・・・.XRGB-3なのがまずいのかなー.どうやっても安定しなかったので諦めて終了.

画面が流れてまともに映らず

続いてギャラガのコピー基板にチャレンジ.こちらは最初からJAMMA変換ハーネスがついてたんですが,うっかり切ってしまったのでw 残骸を参考にしながら暫定配線.・・・が,こっちは全然動かず.絵もでなければ音も出ません.うぬぬ.

テスターで電圧を測ってみると+5Vのところに+3Vくらいしか出ていません (;´Д`).えー.もしかして消費電力が結構大きくて ATXのマザーボード用のコネクタのところだと力不足だったりするのか? 試しに +5Vを ATX電源のHDDつなぐ方のコネクタから取ってみたら +5V で安定するようになりました.うーん,まじか・・・.

この状態で,倒れた部品を色々起こしたりしていたら時々XRGB-3が反応して画面がちらちらするように・・・.そしてさらに色々起こしているとついに絵が!

ギャラガも画面が流れてまともに映らず

しかしちゃんとした絵は出てくれません (;´Д`).何だろうなー.その後もしつこくあれこれいじっていたら,いつの間にかまったく絵が出なくなってしまいました.途中,一瞬焦げ臭い匂いしたりしたし,やっちまったっぽいなー・・・(;´Д`).やっちまったと思しき部品は一応見当はついているので,そのうち気が向いたらまたいじってみよう.あとツールが貧弱すぎるのも何とかしないとなぁ.

というわけで数時間かけて結果は1勝2敗.チャンピオンベースボールが動いた時は超盛り上がりましたが,その後の2連敗でグッタリです.はぁ・・・(´・ω・`).一応,King of Boxerも配線図があったので試そうと思えば試せるんですが (-5Vがないのでもしかしたらダメかも知れないけど),もう頑張る気力が・・・.

そういえば,昨日何だかわからないと書いた板ですが,元のオーナーの方による情報から察するに,どうもビデオハスラーのようです.確かにヤフオクに出品されているやつを見ると同じっぽい.配線はこれでいいのかな? 旧コナミってやつ? まあ,こっちも今日はやらんけど・・・.

2009年10月27日 (火)

ジャンク板

ジャンクの板セットみたいなのをゲットしてみました.ST-V以外はどれも古いんですが,そのほとんどが予想を遥かに超えた古さでどうしたもんかという感じです (;´Д`)

ジャンク基板

とりあえず起動しないというカプコンの板.入ってた中でST-V以外で唯一のJAMMAハーネスの板だったんで通電させてみたんですが,やっぱり起動しませんでした.せっかくJAMMAハーネスなのに・・・.(※JAMMAじゃありませんでした.切り欠きの位置とか違うし.酷い間違いでした) ROMを吸い出してCRCを調べてみたらどうもアレスの翼のようです.真ん中の黒いチップがセキュリティチップらしく,衝撃を与えるとデータが飛んでしまうとか何とか.動かすには要修理っぽいですね.今でも修理できるのかどうかわかりませんが・・・.

アレスの翼

その他はハーネスがないので動くかどうかすら確認のしようがない・・・というかまずそもそもその板が何なのかがわからないので配線を調べようがない・・・.というわけでとりあえずROMを吸ってわかる範囲で調べてみました.

これはセタの花合わせみたいです.1982年の作品.多分コピー.同じレイアウトの基板が他にもありましたw

花合わせ?

データイーストの18ホールプロゴルフ (のコピー基板?) です,多分 (どれがどれだかメモらなかったのでもうわけがわかりません・・・).こちらは1981年の作品とか.古いぜ・・・.

18ホールプロゴルフ

アルファ電子のチャンピオンベースボール.1983年です.アルファ電子のシールが貼ってあるんで多分これはオリジナルかと.

チャンピオンベースボール

Woodplace という会社の King of Boxerという作品.これもオリジナルっぽいです.1985年なので,他よりは若干新しめ・・・(;´Д`)

King of Boxer

これはギャラガの海賊版みたいです.

ギャラガのコピー?

そして多分サンリツのジャントツ.1983年の作品.これもオリジナルっぽいんですが,ROMを吸った結果が何かMAMEのソースと一致しませんでした.別ものなのか? うまく吸えてないだけ?

ジャントツ

この他,T.T.マージャンのコピーもあったり.あとROMを吸えなかったり,吸っても何だかわからないもの数点.例えば↓とか.

謎の板

シールを見れば何だかわかる人もいたりするんでしょうか.この辺見るとFalconという会社っぽいですが・・・.クレイジーコング?

ファルコンのシール?

それから,ROM自体がこんな感じでぶっ壊れているのもありました.切ない・・・.ちなみにこのボードの残りのROMを吸ってみたんですが,CRCが一致するものはMAMEに見当たらず,結局何の板かわかりませんでした (´・ω・`)

物理的に壊れたROM

あとこれはシールが邪魔でROM自体が何なのかわからず調べられなかった板w.「大名エレクトロニクス」とシールが貼ってあるので麻雀とか花札とかそれ系っぽいですが・・・..あ,これ「だいみょう」じゃなくて「だいな」って読むみたいですよw

大名の基板

というわけで,突如として80年代の基板がいっぱいな状況となったわけですが,動くかどうかわからん上にここまで古いのにはあんまり興味がなかったりもして,正直完全に持て余し気味です (;´Д`).飛竜先生曰く「貴様にそんな玩具は必要ない」的な.気軽に手を出すべきものではなかったって感じで,ものすごく申し訳ない気分です・・・.うーん,どうしたものか.

ちなみにST-Vのマザーもアンプが壊れてるとかでジャンクだったんですが,コラムス97を動かしてみたところ,普通にキレイに音が出て遊べました.これはラッキー.あー,でももしかしてステレオで引っ張り出すとまずかったりするのかな? ST-Vのステレオのケーブルはまだ作ってないので試せず・・・.

ST-Vマザーテスト中

とりあえずコラムス97は動いた

[コメントを書く]

通りすがり 2009/10/29(木) 09:43:26
アレスの翼はJAMMAではなく、旧カプコン規格ですよ。動くといいですね。
nosuke 2009/10/29(木) 23:20:44
おおお,そうだったのですか! ありがとうございます!
早速配線してみたところ,とりあえず15kHzの映像信号が出る
ことが確認できました.
ただ,ちゃんと動いていないらしく,画面に変な線が出た状態のまま.
リセットするとたまにスピーカー線から効果音らしき音声が出続ける
ようになるのですが,それも何かデータを順番に再生しているだけの
ようで,単に暴走しているだけのような感じですw.うーん,先は長そう.
なにはともあれ,ありがとうございました.

2009年10月26日 (月)

ML

某MLにアドレスの追加依頼があったのでWebベースの管理システムで追加しようとしたんですがうまくいかず.入力フォームにアドレスを入れてボタンを押すと真っ白な画面に切り替わってそれっきり.ロックでもされてるのかと思って他の人に聞いてみたら,何とFirefoxでは追加できずIEじゃないと完了しないとのこと.以前はFirefoxだかMozillaだかでできたはずだけど・・・.確かにIEでやったら追加できました.恐ろしいな,この時代に逆行するようなシステム変更 (;´Д`).これ,一応結構なお金払ってやってもらってるサービスなんだよね・・・? すげーなー (棒

原稿

特に何かあるわけでもないんですが,なぜか落ち着いて集中できず進みが悪いです.うーん.

2009年10月25日 (日)

OOo-3.1.1

手元の環境が3.0.0のままだったので3.1.1に上げてみようとビルドに挑戦するも失敗.RPATHは/usr/local/lib/ に通っているのに,DLLチェックとやらで /usr/lib/libstdc++.so.6 を見に行って CXXABI_1.3.1 がないとか言ってこけやがります.よく見ろ,/usr/loca/lib/libstdc++.so.6 にはあるだろうがコンチクショウ! ・・・え? /usr と /usr/local の両方にgcc入れてんのかって? そうですけど何か.

2009年10月24日 (土)

fglrx

ThinkPad T60で使ってるビデオのドライバですが,fglrx 9.3だとACアダプタを抜いた時に画面が真っ黒になってしまう問題 (Alt+Ctrl+F1とかで一旦コンソールに切り替えてから再度Xに戻さないと復帰しない) や,DPMSが有効なのに一定時間経過したり「dpms force off」したりしてもバックライトが消えてくれない問題などがあって地味に鬱陶しかったので,バージョンを落としてちゃんと動くところを探してみました.

適当に色々試してみた結果,9.2はだめだけど9.1なら上記問題は発生しないことが判明 (8.12でもOKだった).というわけで当分9.1で頑張ります.というか,Mobility Radeon X1300 は9.4より先ではサポートされてないらしいんで頑張るも何もないんだけど・・・.あー,何かもう無理してfglrx使うこともないのかなぁ.

大統領,大統領じゃないか!

大統領

というわけでスペースボンバーでございます.安かったのでつい.

板

タイトル画面

デモ画面

あとこれも安かったのでゲット.正直,値段的にもSYSTEM32のマザーのおまけにROMがついてきたという感じですがw

Jリーグ1994

デモかっこいい.

Jリーグ1994

しかしゲーム画面は・・・.スーパーフォーメーションサッカーが凄くなったような感じかなー.1994年でこれかー.どうなんだろうなw.ちなみに初代スーパーフォーメーションサッカーは左手の親指の皮が剥けるまで遊んだ気がしますw

多分ゲーム画面

あ,でも主審をきちんと描画しているところは素敵かもw

主審

オープニングデモで出てくるこの画面がチラチラして辛すぎるw

デモ

いや,そんなことよりROMボードにFD1149 (羊羹) が載っていないことの方が重要だ.

ROMに羊羹が載っていないのが不思議

もちろんスパイダーマンみたいに最初から載っていないやつもあるわけですが,MAMEのソースやここを見るとJリーグ1994は羊羹必須に見えます.先日piyo氏がゲットしたやつにもついていたらしいし・・・.もしかしてここにSYSTEM32電池問題の攻略の突破口があったりして?とりあえずROM吸ってみるかなー.

しかしそれにしても各チームのメンバーが懐かしいですね.レッズのフォワードに水内が入っているのが熱いw

レッズ

ベルマーレの控えの選手の名前が何か変だ.いわげんの「大」ってどっから出てきたんだよw

ベルマーレ

リネカー2年目もいたんだっけ・・・.

グランパスエイト

セガのサッカーゲームといえば,サターンのビクトリーゴールシリーズが好きで遊びまくったなぁ.オープニングデモも超良かったし (この辺).でもその後のバーチャストライカーは何か違うだろって感じで全然楽しめず.・・・と途中から全然関係ない話をした挙句,特にオチもなく終わります.

地デジ

デジタル放送が映らないから見てくれと頼まれて見てみたら,なぜか全チャネル電波強度0.他の部屋だと映るのになぜだと思って裏を見たらなぜかその部屋だけアンテナ線が300Ωの平行フィーダー線でした (;´Д`).設置業者は「これで映りますよ」と言って去って行ったらしいが・・・.そりゃアナログ放送は映るだろうけどさー.うーん・・・.

2009年10月23日 (金)

パラスコード

32Xならこれだろう,というわけでゲットしてみました.

パラスコード

タイトル画面

こんな感じの斜め見下ろし型のシューティングで敵を乗っ取ったりするあたりがなかなか面白いんだと思うんですが・・・ (適当に撮ったらボケてた)

ゲーム画面

うーん,動くとかなりしょぼいなこれ (;´Д`).敵の動きとかはいいんですが,全体的に超もっさりカクカク.あと音楽がブツリと切れたり,タイトル画面の文字の背景の処理が適当だったりと,部分的に非常に雑な感じがします.いかにも当時の米国産ゲーム的な (実際どこ産かは知りませんけど・・・).ソニックスピンボールの残念感を思い出しました (;´Д`).アイディアは悪くないのにねー.惜しい.

タイトルの文字

ちなみにこのゲーム,対戦モードもあったりします.向かい合って撃ち合うタイプなので,スプライツともチェンブレともまた違った趣き.面白いかどうかは不明.

対戦モード

[コメントを書く]

solino 2009/10/25(日) 09:11:33
パラスはレアなんだけど面白くは無いですねw
32Xならステラアサルトの方が面白いと思いますよ〜
自分はアフターバーナーの為の所持ですがw
nosuke 2009/10/26(月) 00:58:59
> パラスはレアなんだけど面白くは無いですねw
や,やはりwww
ステラアサルトですか.これはサターン版もあるんですね.
合わせてチェックしてみたいと思います.
ちなみに今のところ手持ちの32Xのソフトの中ではスペースハリアーが
一番のお気に入りだったり(笑)

2009年10月22日 (木)

原稿

ようやく加筆部分に取りかかり始めました.とりあえず夏の本では「SIMD化の具体例はいい例が思いつかないから出しません (`・ω・´)キリッ」 と開き直って済ませていた部分をちゃんと書きます.題材は・・・メルセンヌツイスタでw

さすがにビットスライスはやるわけがありませんがw,まあオリジナルの genrand_int32 はSIMD化以外にも色々つっこみがいがあるので普通に軽くいじってみようかなーと.しかしこんなペースで間に合うのか? うーん.

Anthy

また変な候補が出まくるようになってきたので学習データを飛ばしたついでに anthy-9100h.patch13B-23-iconv-ucdict.2009X21.alt-depgraph-090712.alt-cannadic-090921に上げてみました (バージョンがすごいことになっているw).久しぶりに「朝臣」が出てきたw

そういや別にAnthyに限った話ではないんですが,configureしてmakeをかけると再度configureが走る (その前にautoconfか何かが走る?) のをエレガントに回避する方法が昔からずっとわからないままだったり.何かのファイルをtouchしたりしておけば回避できたりするのかな.

[コメントを書く]

G-HAL 2009/10/23(金) 22:14:07
touch configure
場合によっては、
touch aclocal.m4 ; sleep 1 ; find . -name Makefile.in -exec touch {} ; ; touch configure
(FAT系のfsの場合は sleep が 2)でないと駄目な場合もあるかもしれません。
あるいはハナからautoreconfしてしまうあたりかと。

RCS とか CVS とか SVN とか(たぶん git も)はファイルのタイムスタンプの復元方法にクセがある為、autoconf/automakeがらみのタイムスタンプの順番が同時刻なり逆順なりになってしまう場合があります。これのスマートでエレガントな対処方法は私も知りたいと思っている所です。
nosuke 2009/10/24(土) 17:11:18
おお,ありがとうございます.
sleepはさみながら順番にtouchしていく方法でうまくいきました.
configureにtouchする前に config.h.in にtouchしておくと
autoheaderも走らずに済むようですね.
少なくともconfigureしてmakeしたら再度勝手にconfigureが走って
こけるという悲しい思いをせずに済むので,個人的にはこれで
十分エレガントかと思いますw
G-HAL 2010/03/29(月) 00:41:39
今更ですが。
configure.ac に AM_MAINTAINER_MODE を入れて configure や Makefile を作れば、touch せずとも再度勝手に autoreconf や configure が走らずに済むそうです。
副作用として、configure.ac や Makefile.am 等を更新しても autoconf/automake が走らなくなります。その場合でも ./configure --enable-maintainer-mode すれば、更新時に autoconf/automake が走る様になるそうです。
nosuke 2010/03/30(火) 02:30:28
わざわざありがとうございます.
実はG-HALさんの日記も時々拝見しておりまして,その辺の話は
チェック済みでしたw

2009年10月21日 (水)

ハードオフ

うっかり今日も寄ってしまった.箱入りの古めのファミコンソフトが結構入ってたんですが,特別欲しいものはなかったので見送り.あと一昨日見かけた1,050円のツインファミコンがまだ売れ残っていたんですが,かなり悩んだ末こちらも見送ることに.結局何も買わずに離脱w

ちなみに1,050円のツインファミコンはおぼの号と同じ黒いタイプ (AN-500B) だったんですが,なぜか赤いタイプ (AN-500R) は4,200円で売られてました.くそー,赤が1,050円だったら間違いなく買っていたんだが・・・.

そういや店内でなぜかイオシスのごっすんごっすんのやつが流れてました.恐ろしい時代になったものだ.

原稿

「--param」を索引のキーワードにする際に「\index{--param@--param}」とかしてしまうと索引のページで「--」の部分が横棒に置き換わってしまってイヤンな感じで困っていたんですが,Twitterでぼやいてみたら@mojinが対処方法を教えてくれました.「-{}-{}param」とやって見事に解決 .すごすぎる.ありがとうございます.また一つLaTeXのbkが蓄積された.

[コメントを書く]

mojin 2009/10/22(木) 05:49:35
改めてポストのページを見たら、なにやら怪しいAAにしか見えなかったw
nosuke 2009/10/23(金) 00:41:38
これを簡素化したものですねわかります
http://unko.client.jp/AA/aab2.html
mojin 2009/10/23(金) 03:10:52
食事中に見てもうた><

pidgin-2.6.3

yazさんパッチも出ていたのでWindows版をビルドして置いておきました.欲しい方はこちらからどうぞ.

2009年10月20日 (火)

焼肉

ヒタヒタさんに誘われて突発的に焼肉行ってきました.うまかったけど何で平日に・・・と思ったらヒタヒタさんは明日お休みとか何とかw.ちょwww

2009年10月19日 (月)

今日のハードオフ

ねんがんのバーチャルボーイをてにいれたぞ!

バーチャルボーイ

箱入りだけどゲームソフトがなくて動作確認できなかったとかいうことで2,625円也.相変わらずよくわからないぜハードオフ.

中はこんな具合.こんな綺麗な本体が故障品のはずがない!

中身

取り扱い説明書がついていないのが惜しいところですが,代わりに外部電源供給用のACアダプタタップが入ってました.すげえよ.

ACアダプタタップ

こんな感じで電池ボックスの代わりに装着して,スーファミとかのACアダプタをつないで動かすことができます.

ACアダプタタップ 装着したところ

というわけで10年くらい前 (もしかしたらもっと前かも) に新品50円で買ったバーチャルボーイのソフト達を引っ張り出してきました.ついにこれらを開封するときが来たか・・・.

バーチャルボーイのソフト達

ゴゴゴゴゴ・・・

バーティカルフォース開けてみた

設置完了! いざ電源ON!

設置したところ

キタ━━━━(゜∀゜)━━━━ッ!! ありがとう,ハードオフ!

無事起動

バーチャルボーイ起動ロゴ

バーティカルフォース

すげえ,何か奥行きを感じるぜ!

バーティカルフォース ゲーム画面

しかし目とか首とか疲れるな・・・.10分と遊べる気がしません (;´Д`).こりゃーアレなわけだ.

その他3本も無事動作.あともう1本むき出しのが何かあった気がするんですがどこいったかな・・・.

テレロボクサー

ギャラクティックピンボール

マリオズテニス

というわけでバーチャルボーイでした.まさに赤い黒歴史.ちなみにマルイの値札がついたままでしたが,かつてのオーナーは 15,000円 で普通に買ったってことかなぁ.すげえなぁ.

15,000円だったらしい

[コメントを書く]

tacash 2009/10/21(水) 02:21:54
マルイで売ってたってのがすごいなw
nosuke 2009/10/22(木) 00:54:33
子供向けの玩具コーナーとかで扱ってたのかねー
solino 2009/10/22(木) 09:13:58
私も近年、タップと自体付きで1500円で購入しましたが裸なので綺麗な筐体が羨ましいです〜
テレロボクサーは面白いですよ、後、絶対買うと思いますが、レッドアラートは買いましょう、このソフトのための本体ですwレトロフューチャーって感じで面白いよ。
nosuke 2009/10/22(木) 20:40:50
おお,1,500円ならもう1台買ってもいい値段ですね(笑)
ちなみに,あともう1本持っていたむき出しのソフトは
お勧め頂いたレッドアラートでした.
タイトルすら忘れていたというw
今度遊んでみます.
nosuke 2009/10/22(木) 22:20:44
あ,レッドアラームかw

2009年10月18日 (日)

Pidgin

Yahoo Japanでファイル転送するとクラッシュする問題,前にyazさんから頂いたパッチを当てて試してみたんですが,それ以外にも色々問題があるようで相変わらず落ちまくり. Linux上のPidginからWindows上のPidginに送信しようとすると必ず受信に失敗してキャンセルが送信側に送られるようなんですが (ネットワークの問題?面倒でこのパターンしか試してないので切り分けできてません),送信側で会話ウィンドウを開かずに仲間リストからファイル送信をしていた場合,この時点で送信側がクラッシュする模様です・・・.gdbで軽く追ってみただけでは原因がサッパリだったのでここは深追いしないことに (一応原稿優先ということで).本家の方にパッチ上がってたりしないかなー.

[コメントを書く]

yaz 2009/10/21(水) 13:34:30
p2pコネクションを張れなかった時の判定がドモルガン的に間違ってたんだと思います。trunkでは修正されていたと記憶していますが、ファイル転送はまだできないかも。
nosuke 2009/10/22(木) 00:42:42
おお,本家でも認識されているんですね.
おとなしくそっちを待ちますw

ぴじつた 0.9.0

リリースされたのでWindows版をビルドして置いておきました.こちらからどうぞ.

2009年10月17日 (土)

横浜

よかったのかホイホイついてきて.俺は(ry 的な感じで横浜の元町の方をふらふらしてました.

プロギア

ボルトとリベットで組んでも普通に4ボスまで行けました.しかしリングだと誰と組んでも全然だめだ(;´Д`).先は長い.

2009年10月16日 (金)

プロギア

原稿やらずにゲームしたりしてました.ボルトでネイルと組んで4ボス到達がやっとだったので,気分を変えてチェーンと組んでみたら4ボス3形態目まで到達.全然倒せる気がしないけど (;´Д`).4面道中はチェーンの方が全然楽な感じなのでしばらくこれで頑張ってみよう.

プロギア

いやー,それにしても弾消しが気持ちいいゲームだなぁ.奮発してよかったなぁ.

2009年10月15日 (木)

今日は最初から高かったので頑張らなかったら落とせませんでした (´・ω・`).残念だ.けど競ってたら5kくらい上がった気がするからアレでよかったんだろう,きっと.次も同じくらいで出てくれるといいんだけど滅多に見ないのがなー.というか最近のオークションどっぷりっぷりはヤバいw.Twitter見返してもそんなポストばかりしてるしw

ダウンロードコンテンツ

ダウンロードコンテンツの場合,「デキが最高すぎるから記念にもう1個買う」っていう買い方ができないですね.いや,できるのかもしれないけど,それは単なるおひねりでしかなくて,本体が2個でもない限り買う側には何もないわけで・・・なんてことをケツイ移植話見て思ったり (ケツイはパッケージ販売だと思いますけど).

2009年10月14日 (水)

GO! G.I.JOE!!

G.I.JOE

思い出補正バリバリかと思ったらそうでもなくて今でも普通に面白い.ついカッとなってやっちまったかと思ったけど全然そんなことなくてよかったよw

G.I.JOE デモ画面

考えてみると,このゲーム,グラフィックやサウンドの演出が手持ちの基板の中で最もアーケードゲームらしいゲームなのではないかと.もちろん個人的な感想ですが.このテの常時拡大処理バリバリのやつ,他に持ってないよな多分・・・.

G.I.JOE デモ画面

G.I.JOEといえば,数年前にカートゥーンネットワークでアニメが放映されていたんですが (多分これ),出てたのはこのゲームのキャラとは全然違う人たちだったのね.ゲームと同じ人が出てるアニメはこっちらしい.そしてこっちベースのが映画化されてた.初めて知ったよ.しかも公開今年じゃん.疎すぎるw.↓はオーハラさん (スカーレット)

スカーレットさん

しかし何というか,棚に空きがなくてしまうことができません_|‾|○.仕切りを交換して密度を上げるしかないか.あとマザーがなくて動かせない板が2枚もあるのが切ないので何とかしたいところ・・・.

原稿

索引の抽出が全然進まねー(;´Д`).品質は別として,よくあれだけの量をあの短期間で手で突っ込めたな・・・.

2009年10月13日 (火)

今日のハードオフ

寄らずに帰るか迷ったけど,ちょっと考え事をしたかったので行くことに (寄って歩いて帰ると50分近く歩けるのでいっぱい考え事ができるw).行ったらハードのジャンクコーナーにこんなのがあったのでゲットしてみました.

買ったもの

謎のPS2用と思しき21ピンケーブル,21ピンのコネクタ部分が千石で売ってるやつと似た感じで安っぽいなーと思って分解してみたら中からコードブッシュが出てきましたw.どうも改造品っぽい.ベースは何なんだろうな.結構丁寧に加工してあるなー.

コネクタ分解したところ

麻雀コントローラーはファミコン用のやつなんですが,まあ部材が基板用に使えるかなーと思いまして.

[コメントを書く]

yaz 2009/10/15(木) 13:46:38
この麻雀コントローラうちにあったし!w
nosuke 2009/10/17(土) 02:35:34
俺,この原稿が終わったらこれを改造してスーパーリアル麻雀PVを
動かすんだ・・・

原稿

ひたすら \index の部分を抜き出しては別ファイルに書き出し.めちゃくちゃ量がある上に,「なんでこんなの索引のキーワードにしたんだろう」的なのが結構あって萎えます (;´Д`).そしてまだ2章までしかできていない・・・.ちゃんとスケジュール引いてやってかないと・・・.

ぴじつた

hgのを引っ張ってくると,なんとReply,Favorite,RTの各機能が使えたりします (yazさんがものすごい勢いで実装した).自分でビルドできる人は是非お試しあれ.明日余裕があったらお試し用にWindows版ビルドしておきます.

RTとかに対応したぴじつた

[コメントを書く]

nosuke 2009/10/14(水) 19:34:55
どうぞー
http://obn.sakura.ne.jp/pidgin-twitter-20091014.zip
nosuke 2009/10/16(金) 03:11:38
バグ修正版
http://obn.sakura.ne.jp/pidgin-twitter-20091015.zip

2009年10月12日 (月)

原稿

この前考えた索引の入れ方だとイマイチ可読性がよくないことがわかったので別の方法を検討してみました.半日考え色々試した末,結局LaTeXの中で完結させるのを諦め,CSV風のリストからawkでsedのスクリプトを生成し,それを使ってsedでtexのソース中の<>で囲われたキーワードの後ろにindexコマンドを埋め込むようにしました.これで頑張ってみよう.

2009年10月11日 (日)

M3-2009秋

行ってきましたM3.朝9時に関内駅改札前でよみさんと待ち合わせで,そのまま徒歩で会場へ.・・・うおお,何てところにあるんだ.天気はいいし,眺めもいいし (ただし会場入り口前の待機列からは海は見えない),快適すぎるぞこの会場.待機場所も下が木なので座りやすいです (ただしささくれには注意).椅子要らなかったなー.

M3会場

左は海

右も海

列に着いたのは9時15分頃で,その頃で4〜500人くらい? 80〜100人くらいの列の5本目でした.珍しく列から離れてコンビニ行ってご飯買って戻った後,11時までそのまま待機.会場入り口前のスロープには列は5本しか作られず,それより後は会場両脇の高い所に列を形成したため,左側がガラ空きで快適でした.まあ,上は上で眺めが良さそうで羨ましかったですがw

11時過ぎに列の圧縮が始まり,そのまま11時半ちょっと過ぎに順調に入場.そして予定通りサクサク回って20分もかからないうちに終了(笑).「みんなのめたるDeath」も無事予約成功です.名簿一番ゲットだぜw.で,その後よみさんと合流して12時ちょっと過ぎに会場を離脱しました.お疲れ様でしたー.

撤収した頃の周りの景色

その後は,ここは関内なんだぜ?ということで関内二郎に.恥ずかしながら実は初二郎.1時間半くらい並んでようやく入店.とりあえず最初なので普通に小ニンニクにしてみましたが,ポクチンや大二郎での経験もあって,何の抵抗もなく自然に受け入れることができ,大変おいしく頂くことができました.写真↓はよみさんのやつ (自分は撮らずに箸をつけてしまった).やべえ,写真を見るとまたよだれがw

二郎

食後はブックオフ見たりしてから横浜に移動し,めろんと虎に寄って解散.よみさんはめろんで紅楼夢第2部をがっつり堪能されてました.自分は矩形波迷奏のみ購入.東方のボンバーマンみたいなやつも気になったけど,まず遊ぶ時間ないだろうから見送り.

そんなわけで買ったもの.

買ったもの

いわま氏が腰を痛めてしまったようで,「みんなのめたるDeath」のおまけの「日本ヘヴィメタル協会」の発送も後日となるようです.どうぞお大事になさってください.届くの楽しみー.

カーネル

2.6.27.36に落としてみたんですが,make oldconfig した際にIDEだかATAだかのコンフィギュレーションをミスったらしく/dev/cdromが開けなくなってしまいました(;´Д`).・・・と思ったけど /dev/sr0 を作ってそっちを使うようにしたら復活.えーと,何らかの変更によって /dev/hda じゃダメになったということか・・・?

2009年10月10日 (土)

洗車

洗車してみました.超久しぶりだ.ついでにワイパーのゴムも交換.こんな作業でもあんなに取るんだなーw

M3行く前の日

明日のM3のサークルチェックを実施.今回から場所がPiOから横浜の大さん橋ホールというところに移って参加サークル数が増えたわけですが,気になる作品を出すサークルは逆にずいぶん減った気が.お馴染みのところがあんまり出ていない? リスト作ったけど買うのは10点程の寂しい状況w

今回一番の期待は「みんなのめたるDeath」.曲目を見たら「赤鬼と青鬼のタンゴ」と「忍者はどこじゃ」が入っていて超感激w.プレスが間に合わないらしく,会場では予約・支払いのみの後日発送らしいのですが,おまけの「日本ヘヴィメタル協会」含め非常に楽しみです.

2009年10月 9日 (金)

引っ越し手伝い

hyousuke氏が引っ越すにあたり液晶とかは心配だから業者に任せたくないぜとかいうので朝から車出してきました.当初,積んで運んで降ろして終わりだと思ってたんですが,行ったら全然片付け終わってなくて,なぜか掃除機がけとかを手伝うことに(笑).結局昼過ぎにようやく積み込みが終わって出発でき,引越し先に運び終えたのはおやつの時間も過ぎた頃.正直なめてたぜーw.まあ無事終わってよかったね.

[コメントを書く]

hyousuke 2009/10/14(水) 21:11:09
フヒヒ、いろいろ働かせてしまったすんませんでした。何か食いに行きましょう。

CPS2の妄想

2chのスレでのCPS2の電池レス化の話を見て思いついた話.うちのヴァンパイアセイヴァー2は,プログラムROMの中身をすべてデコードし,電池が無い状態でも動くようにして復活させました.このような復活のさせ方をした場合,アドレスレジスタによる間接参照以外でROMを読み出した際のレイテンシが小さくなってしまうかもしれないため,意図的にやらせていないものについては処理落ちの仕方が変わってしまうかもしれないという懸念がありました (実際に検証していないので,これも都市伝説の可能性もありますが).

これに対し,暗号化キーが生きている別のゲームのROMボードを利用して復活させた場合,上記の懸念事項は回避できるのではないかと思われます.例えば以下のようにやる感じで.

  1. 電池切れしたゲームとROMのエンコード範囲が同じROMボードを用意する (例: セイヴァー2の場合,エンコード範囲は 0x000000 から 0x100000 までなので,同じ範囲がエンコードされているストゼロ2などを用意する)
  2. 電池切れしたゲームのプログラムROMのエンコードされている部分をすべてデコードする (メモリアクセス先の変更は行わない)
  3. デコードしたプログラムROM中のウォッチドッグ命令を,別途用意したROMボードのウォッチドッグ命令に書き換える (例: セイヴァー2をストゼロ2を使って復活させる場合,「cmpi.l #$06920760,D0 」を「cmpi.l #$30399783,D0」に置き換える)
  4. デコードしたプログラムROM上の,元々エンコードされていた部分を,別途用意したROMボードのキーで再度エンコードする (例: セイヴァー2をストゼロ2を使って復活させる場合,0x83f47e99,0xda772111 でエンコードする)
  5. 別途用意したROMボードから既存のROMを全部抜いて,先ほど再エンコードしたデータを焼いたEPROMを差し,残りの部分には元のボードから抜いたROMを移植する (例: セイヴァー2をストゼロ2を使って復活させる場合,ROM3とROM4については先ほど再エンコードしたものを焼いたものを移植し,それ以外についてはマスクROMも含めて全部元の基板のものを移植する)

この場合,移植先のボードの方の電池は生きたまま運用することになるので電池レスにはなりませんが,デコード処理はキーに依存しないはずなので,電池切れする前と同一のタイミングで動作するようになるのではないかと思われます (デコード処理の有無がゲームの実行速度に影響するのであれば,ですが).

あ,でもウォッチドッグの命令が全然違うとサイクル数がずれてやっぱり処理のタイミングがちょっとだけ変わっちゃったりするのかも?いや,そもそもROM抜いた瞬間に電池死んだりする仕掛けがあったりするとアウトかw.怖くて試せねーw

動作確認

いえーい,BATSUGUNだぜー!

バツグン デモ

まあ今回は基板じゃなくてサターン版なんだけどね(´・ω・`).普通に動いて(゜Д゜)ウマー.

バツグン

ちなみにこれ,どうもケースが経年劣化していたようで,CDを取り出した瞬間にCDを支える部分がボロっと崩れてしまいはめられなくなってしまいました(;´Д`).代わりに他のサターンのソフトからケースを奪おうと手頃なのを探してみたところ,誰かから貰ってダブっていたぷよぷよSUN発見.が,開けてみたところ,付属品は帯まできっちり残って非常に状態がいいのになぜか中身がスパロボ (;´Д`).なんだそりゃー.今までずっとぷよぷよSUNがダブっていると思っていたけど違ったのか.まあでもおかげで躊躇することなくケースを交換できましたw

ついでにこの前秋葉原でワゴンで買ったガンバードも動作確認.

ガンバード

オープニングデモが汚いムービーなのはサターン的事情か・・・.え?ゲーム本編の方? モニター立てるの面倒でまだ遊んでなかったりw

ガンバード デモ

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月 3日 (土)

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

一昨日の続き.MAMEでvsav2を動かした場合と比べてみたところ,vsav2dの方が途中で全然違う命令を実行し始めるために暴走していたことが判明.同じアドレスから読んでいるのになぜだ・・・と思ったら,デコードしなければならない領域をデコードし忘れていたのが原因でした.本来は命令であるべきところをdis.xがデータとして誤認識しており,それをデコードしなくてよい値と判断してしまったのがその原因 (;´Д`).そしてなぜかmove.bの先頭2byteと次の2byteの間にラベルがついており,上の方で addaでそのラベルが参照されているのがさらにその原因です.dis.xに-k オプションをつけたりはずしたりしても効果なし.こういうのは手で探して直さないとだめかー (´・ω・`)

というわけでdis.xの出力のデータ領域を上から1個1個確認しながら手で直しているうちに今度は別の問題が発生.データ領域であることはほぼ確実な領域でも,デコード前の値は超ランダムな感じで,デコードすると意味のありそうな値になる領域が結構あるのです.見るからにデコードした方が正しい値っぽい.うー,どういうことだ?同じデータ領域でもデコードした方がいいものとしない方がいいものがある?

規則性がよくわかりませんが,とにかくデータ領域だからなんでもデコード不要というわけではなさそうです.そんなわけで,再度 dis.x の出力結果を上から順番に追い,デコードするとランダムな感じの値になってしまうところを探すことにしました.

デコードすべきデータ領域は,dis.xの出力結果の値の並びが見るからに整然としていていかにも意味のありそうな値となっており,逆にデコードすべきでない領域は,デコード前の方を見るとランダムなデータの中に突然規則的なデータが現れるため一目瞭然.こうやって1個1個見比べて見つけ出して行きます.どうもデコードが不要な領域はアドレスレジスタ間接形式でアクセスされる領域っぽいですなぁ.どういう仕組みになってんだ?FC0とかFC1の信号見てデコードの有無を切り替えているのか?

と,そんなこんな感じで頑張って1MByte分のデータを追って,130個ほどのデコード不要領域を抽出しました.あっさり書いてますが,めちゃくちゃ辛いですw.さっそく抽出した情報を元にvsav2dのROMイメージを作り直してMAMEで動かしてみたところ,見事にオープニングデモが始まりました!やった! 方針は間違っていなかったようです.が,オープニングデモが1周して,実際のゲームプレーのデモに入るところで強制リセット (´・ω・`).あと,F2 (テストスイッチ) を押しても強制リセットがかかります.しょんぼり.

ところで実機ではどうなんだろうと思ってこの状態のを焼いてみたところ,こっちでは全く画面出ず _|‾|○. リセットをかけるたびにいつもの灰色画面だったり紫画面だったり・・・あれ?紫画面? 画面をよく見てみると,実は一瞬だけメモリチェックの画面が出ているっぽい.あっという間にチェックが終わって,その後暴走して画面がグレーになるわけか・・・.MAMEだと動くのにー.↓XRGB-3で強制的に画面を保持してみたところ

うっすらとメモリチェックの結果が出ている

とりあえず実機の方をエミュレータと同じところにまで持っていきたいので追ってみたところ,メモリチェックの後に再度ワークRAMを初期化しており,その中で 0xFFFFFx の領域を書き潰していました.ここに変な値を書いたときの挙動がMAMEと違うってことかな.ここを修正したら実機でも見事にオープニングデモに到達するようになりました.やったね! もちろん,デモ終了後リセットがかかるところはMAMEと一緒です(笑)

実機でもオープニングデモが出るところまで到達

さて,次はリセットの原因調査ですね.どうせ例外で落ちているんだろうということで,例外ベクタの先にブレークポイントを張りまくったら引っかかりました.不正な命令を実行しているらしい.ふーむ,本来命令のはずのところをデコード不要のデータとみなしてしまっているところがあるとかその辺かなー.

う,例外ベクタにとんできた際のスタックの見方がよくわからん・・・.仕方ないのでトレース取ったりしてどうにか解決.やっぱりデコード不要の範囲の指定がおかしかった.というわけで,その辺直したらF2で落ちなくなり,オープニングデモ後のプレー画面まで到達するようにもなりました.わーい,もう一息か?

しかしここでまた問題が.サウンドテストの画面が何か変(;´Д`).これはデコード不要のところを間違ってデコードしちゃっているっぽいなぁ.・・・と,ここで唐突に気力が尽きて本日の解析はおしまい.ほんとすげー疲れるわこれ.明日に続きます.

文字が一部壊れている

夜になって届きましたよ.

オープニングデモ

『今はマネドルっすよ』

マネーアイドルエクスチェンジャー

しかし今見ると絵が結構アレだなw.だがそれがいい.あとデコと訴訟騒ぎがあったとか知らんかったよ.

対戦デモ

2009年10月 2日 (金)

飲み

(その気になれば) 歩いて帰れるのをいいことに終電後まで飲んでました.ビールうますぎる.よく飲んだなぁ.帰宅後,あまりに眠くて何もせずにそのまま就寝.

2009年10月1日 (木)

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

10月になったのでそろそろ原稿モードに移らないとまずい感じなわけですが,その前にこれだけはってことでヴァンパイアセイヴァー2の電池レス化に挑戦してみました.例によって超長い上に,途中で終わってるので最終的な結論だけに興味がある人は後日のを読んでくださいw

CPS2のゲームの電池レス化の手順はCPS-2 Shock に書かれています.ただしアウトラインのみで,具体的な使用ツール類やノウハウについては言及されていません.軽く探した感じだとこれ以上の情報は得られなかったので,これと電池切れになったCPS2のROMボードもエミュレーションできるMAMEのソース,それから実際に電池切れになったボードで動いた実績のある suicidetester のバイナリをヒントに頑張るしかなさそうです.

一応 CPS-2 Shock で公開されている電池レス化の大雑把な手順は以下の通り.

  • 暗号化されたデータをデコードしたROMを用意する
  • プログラム中で 0x400000 からの14Byte にアクセスしている部分を書き換えて,0xFFFFF0 からの 14Byteへのアクセスに置き換える
  • メモリ初期化処理で0xFFFFF0 からの領域に何か書いたりしないようにプログラムを書き換える
  • 元々 0xFFFFF0 を使っている処理は他のところを使うように書き換える

まあ要するにROMをデコードして,さらに0x40000x へのアクセスを 0xFFFFFx へのアクセスに書き換えろという話です.本当にこれだけなのかという感じですが・・・.プログラムに修正を加えなければならない理由は特に見つけられなかったんですが,まあ電池が飛ぶとなんでもかんでもFで埋まるせいかな,と.

というわけで,とりあえずデコードから.MAMEのソースによると,暗号化されているのはプログラムROM (27C4096が8個くらい並んでいるアレ) だけで,さらに実際に暗号化されている範囲はゲームによって異なるようです.ヴァンパイアセイヴァー2の場合,0x000000 〜 0x100000 の範囲が暗号化の対象らしいので,デコードするのは3番と4番のROMの中身だけでよいことになります.

CPS2の暗号化処理のアルゴリズムと各ゲームごとのキーは明らかになっており,全部MAMEで実装されているので,まずはMAMEのcps2crpt.cを使ってデコーダを作成してみました.早速吸い出した3番のROMの中身を突っ込んでみたところ,最初の4Byteがスタックポインタらしき値で,次の4Byteがいかにも実行開始アドレスっぽい値のバイナリが出現.実行開始アドレス (らしき値) から先を逆アセンブルしてみたら 0x400000 などを初期化するコードが出てきたので,デコード自体はうまくいっていそうです.ナイス滑り出し.

逆アセンブルした結果を眺めてみたところ,0x40000xへの書き込み部分を4ヶ所ほど発見.さっそくバイナリエディタ (というかEmacs) で0xFFFFFxに書き換えてみました.ひょっとしてこれで動いちゃったりして? といきなり焼き込んでみたけどピクリともしませんでした (´・ω・`) .画面はいつだってグレー.まあ,そんなに簡単にいくわけないですね.にしてもサンハヤトのROM抜き (GX-7) は便利だなぁ.みんなも買った方がいいよw

というわけでここからはMAME上でデバッグします.SDLMAME の電池切れCPS2 (dead_cps2) のゲームとしてヴァンパイアセイヴァー2を追加して (以下vsav2d),デバッグオプションつきでビルドし直してパッチを当てたROMイメージを動かしてみたところ,ばっちり暴走することが確認できました(笑) (もちろんデコードとかしてない素のROMイメージの方 (vsav2) は普通に動く)

vsav2とvsav2dとで挙動を比較してみると,ROMから読み出した飛び先のアドレスがvsav2dとvsav2とで違うために暴走していることが判明.・・・vsav2dの方が正しい値 (デコードされた値) を読み出しているように見えますが・・・.あれ? vsav2の方で読めてる値はデコード前の値だじゃん? あれ? デコードしちゃいけないってこと?

そこで,吸い出したROMをちゃんとバイナリエディタで眺めてみたところ衝撃の事実が発覚しましたw.普通に「WORK」とか「OKAMOTO」とかの文字列がバリバリでてきます.もしかして,命令メモリとしてアクセスする際はデコードした結果を使い,データメモリとしてアクセスする際は生の値を使うとかそういう感じ? そういえば,前にどこかでCPS2は命令部分のみデコードが必要とか読んだような (出典見つけられず).命令メモリのことだと思ってたわ・・・.MAMEだとデコードした後にあらためて m68k_set_encrypted_opcode_rangeとか呼んでいるのはそういうことか.

もしそうだとすると,全体をデコードするのではなく,実行時に命令としてアクセスされる部分だけをデコードする必要がありそうです.これを静的にやろうと思うと,どこが命令でどこがデータとしてアクセスされるのかを見極めなければならないわけですが・・・,うーん.無理やり全体をデコードしても命令だけは出揃うはずなので,これを逆アセンブルした結果を元に解析できるかもしれませんが,GNUのアセンブラだと厳しそう・・・.MAMEでvsav2の方を動かしてトレースを取って調べるという手も考えられますが,これはカバレッジ面で現実的じゃないし・・・どうしたものか.

プログラムを静的に解析して,データとそれ以外とで分離して結果を出してくれる逆アセンブラとかがあればいいんだけど・・・とググってみたところ発見.dis.xというツール.・・・あるんだ.X68000やっぱすげぇ.

これ,X68000用らしいんですが,落として説明を読んだところFreeBSDでも動くっぽい.じゃあLinuxでも動くんじゃない? というわけで make してみたら,make時にいっぱい警告が出るものの普通に動くバイナリができちゃいました (main.cでcurses.hを常にincludeするように変更する必要あり).なんかいい流れじゃない?

さっそくこんな感じでエンディアンを入れ替えたバイナリをdis.xにかけてみたところ,見事にコードとデータが分かれたアセンブリが出てきました.そしてさっきデコードしてしまって問題になった部分は,きちんとデータとして認識されているっぽいです.すごい!素敵!どんなコードかはここに出せないので,まあ想像してくださいw

dis.xの出力を信じて,逆アセンブルの結果をからデータのアドレス範囲を抜き出し,その範囲に入っているデータのみデコードせずに元の値を使うようにしてROMイメージを作り直してやったところ・・・メモリチェックキタ━━━━(゜∀゜)━━━━ッ!!

なんとMAME上でメモリチェックが始まりました.やったね! ってメモリRAMがNGだし.あー,例の 0xFFFFFx アクセス問題か.該当箇所を見つけてそこを修正したら突破・・・したけどメモリチェックから先でやっぱり暴走するw.

というわけで今日はこの辺でおしまい.後日に続くー.

今日のプロギア

2回だけプレー.1回目は4面の下方向に弾をばらまきまくるヘリ2機が同時に出てくるところのちょっと先で終了.2回目は4ボスで終了.地味に進んでいるけど3ボスがまだよくわからん.2ボスもあんまり安定しないなぁ.まあ,あまりにもいつも通りですがw

4ボスで撃沈

いい加減画面デジカメで撮るのもアレだし,綺麗に静止画撮れる環境考えるべきか?でもゲームの度に裏でそれ動かすのもなんか面倒で結局使わなくなりそう・・・

[コメントを書く]

通りすがり 2010/03/11(木) 11:50:07
デジカメの画像の方が、味があって自分は好みです。
結構綺麗ですし、臨場感もあるので。

nosuke 2010/03/13(土) 05:35:15
おお,ありがとうございます.
確かにキャプチャだと実機で動いている感がなくなっちゃうんですよね.
ベストは
プレー中の動画を高画質でキャプチャ
→後で再生して一時停止してデジカメで撮影
かなぁ(笑)

2009年10月31日から2009年10月1日までの日記を表示中

中の人情報

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

過去ログ