2009年9月17日から2009年9月13日までの日記を表示中

2009年 9月17日 (木)

飲み

突発で今日も飲み.ビールうめー.魚うめー.

銀河お嬢様をアレする 〜binファイル編

オーディオトラックに続き,今日はデータトラックの方を見てみました.データトラックはbinというありふれた拡張子がついていて,そこかしこで紹介されている pceconv.exe の挙動を見る限り zlibで圧縮されているようです.hexdump して見てみると,先頭にインデックスっぽいものがついています.試しに天外魔境を吸い出して pceconv.exe にかけてみたらやっぱり同じような感じになりました.これでオリジナルと見比べつつ解析するか?

いやでも既にツールがあるってことは,誰か海外でこの辺解析してる人いるんじゃないかなー.というわけでググってみたら,一発でそのものずばりの解説記事が出てきました.なるほど,256kByte単位で圧縮してるのねー.頑張って解析始めなくてよかった.後はこれの説明通りに適当にコード書けば・・・って,このポスト,末尾にデータトラックの圧縮と展開を行うツールのソースが添付されてるじゃん!素晴らしすぎる.

gccでコンパイルして,試しにさっき吸い出してpceconv.exeで変換してみた天外魔境のbinファイルを食わせてみたら,見事にisoファイルに戻りました.そしてユナやサファイアのbinファイルも無事変換に成功.ありがたいですなー.

銀河お嬢様をアレする 〜hcdファイル編

後はhcdファイルを残すのみとなりました.このファイルは上記リンク先のポストにも貼り付けられているようなフォーマットになっていて,各トラックの種類 (オーディオかデータか),ファイル名,開始位置とサイズに対応すると思しき数値のセットが列挙されています.

さっきのページにも書いてありますが,最初の数字がトラックの開始セクタで,次の数字がそのトラックのセクタ数みたいです.トラックの開始セクタが,前のトラックの開始セクタにセクタ数を足した値よりも大きい場合がありますが,これがプリギャップですな,多分.

とりあえず以下のような胡散臭いawkスクリプトを書いて,CUEシートっぽいものに変換.今回の作業の中で自分で何かを書くのこれが初めてかw

gawk -F ',' 'BEGIN{ base = 0; name = "yuna2_" }
{
 if ($2 == "audio") {
   printf("FILE \"%s%02d.wav\" WAVE\n", name, NR);
   printf("  TRACK %02d AUDIO\n", NR);
 } else {
   printf("FILE \"%s%02d.iso\" BINARY\n", name, NR);
   printf("  TRACK %02d MODE1/2048\n", NR);
 }
 pregap = $4 - base;
 if (NR > 1 && pregap > 0) {
   printf("    PREGAP %02d:%02d:%02d\n", pregap / 75 / 60, (pregap / 75) % 60, pregap % 75);
 }
 base = $4 + $5;
 printf("    INDEX 01 00:00:00\n");
}'

しかし未だにawkのいい書き方がわからんのよねー.・・・と関係ないですね.ちなみに,hcd5075.hcd (ユナ2) は12トラック目のセクタ数がおかしいのか,他より2桁くらいでかいのが気になりますw.プロテクトなのか? とりあえずここは 4548 に直して対処しちゃいましたが.

というわけで,CUEシートまでできたので,後はisoとwavと揃えて焼けばいいだけというところまで来たんですが・・・ここでハマりました.焼けるソフトが全然ない(;´Д`)

CUEシートに「BINARY」というのが入っていると,途端に対応してるツールが減るんですかね.CD Manipulator,Zulu2,EACを試したんですがどれもだめでした.あとLinuxにcdrdao入れてやってみたんですが,こっちはプリギャップがどうこうとかいわれてやっぱりだめ.

結局最後はCDRWINにまで行き着いてしまいましたw.遅いけど,まあこれが一番確実かー.というわけで,数十分の後,気になる円盤が焼きあがりましたよ.果たしてゲームは実機で動くのか・・・.

銀河お嬢様をアレできた

いよいよ緊張の実機動作タイム.果たしてうまく焼けているのか・・・.スーグラに初代CD-ROM2をつなぎ,アーケードカードを差してRUN・・・

はちすけキタ━━━━(゜∀゜)━━━━ッ!!

はちすけ

いえーい.ユナ2だぜー (番号が若かったので,しばらくこっちがユナ1だと勘違いしてましたw

ユナ2タイトル画面

かっこいい!

ユナ2のどっかの画面

何かトップを狙えみたいな話のオープニングデモですな・・・.

オープニング

ゲームも始まりました.音もちゃんと出ています.

ゲーム開始後

というわけで,PSPの銀河お嬢様伝説コレクションから吸い出した銀河お嬢様伝説ユナ2が,実機で動くことを確認できたというお話でした.感激だ.明日は銀河婦警伝説サファイアに挑戦したいところですね.

ちなみに,手を抜いて全然チェックしませんでしたが,多分at3から戻したwavファイルは本来のセクタ数と合わないんじゃないかという気がします.厳密にやるなら,この辺きっちり確認しないとまずいのかも・・・.

2009年 9月16日 (水)

飲み

平日なのに飲みでした.ビールうめー.

ROMライタ

ROMライタとイレーサが届きましたよ.いじるのは週末以降ですねー.どっかでタイミング見て若松行って色々仕入れてこよう.

ROMライタとイレーサ

レトロゲームファイン

Twitterで話題になってましたがデモで使ってるのががんばれゴエモンなのがステキすぎる(これがハイドライドスペシャルとかバードウィークだったらさらに面白かったけどw).レトロゲームファインは素晴らしいモードですね.ただ,この資料の以下の説明には違和感あり.

<レグザ>はドット感のある元信号に忠実な映像を表示することで、昔楽しんだレトロ感そのままの映像でゲームをプレイすることができます。

ドットくっきりのレトロなゲーム環境なんてアーケードとハンドヘルドと一部のPCくらいで,ブラウン管の画面を相手にゲームをしていたユーザの殆どはRFとかコンポジット,S端子あたりのドットの縁が滲みまくりの環境だったんじゃないかと思うんですけど (おぼの君なんか未だにそうだし).ドットが鮮明なのは,レトロ感じゃなくてある種の"憧れ"じゃないかなー (未だに自分はその憧れを追ってるわけですがw).「レトロ感」というなら,逆に自然な汚さを再現するモードを搭載すべきかと.あとXRGB-2 plusの擬似走査線表示モードみたいに走査線を出す機能つけたりして.あ,宣伝の仕方が違うだろと言いたいだけで,ドットくっきりというか,余計な画像加工しないゲーム向けモードの搭載は超大歓迎ですw (というかレトロ感のためにわざわざ汚くする機能なんか全然要らないんでw)

2009年 9月15日 (火)

銀河お嬢様をアレしたい

PSPの銀河お嬢様伝説コレクションを吸い出してもらったので例の計画に着手してみました.

銀河お嬢様伝説コレクション

例の計画ってのは,まあこれに入ってるデータを実機に持ってきて動かしてみようって話です.ユナの代わりにイースやドラキュラのイメージを突っ込んでPSP上で動かしちゃったりしている人は大勢いますが,やりたいのはその逆になります.他のPCエンジンのゲームと置き換えて動かせるなら,それと逆のことをすればいけるんじゃないのという安直な考えw.でも,軽くググった感じだと,そういうことやってる人が見当たらないんですよねー.当たり前のように簡単にできるからblogのネタにすらならないのか,逆に超難くて頓挫したのか,あるいは単にみんなマトモに動く本体を持ってないから試せないだけなのか,それとも誰もそんなことに興味がないというだけなのか・・・.まあ,2番目や3番目だと頑張りがいがありますねw.PSP本体を一度も持ったことがないくらいのPSP初心者なので色々不安はありますがw

とりあえず,吸い出してもらったディレクトリの中をざっと拝見.トラック構造がそのままファイルに置き換えられたような形になっていますな.ただし,オーディオ関連は拡張子がat3となっておりATRAC3だか何だかで圧縮されている模様.CUEシートっぽいものがhcdファイルに相当するようです (中はテキスト形式).そしていわゆる「コンピュータ用データ」はbinファイルになっているようで,他のゲームのイメージを持ってきて動かす際に使うツールの説明を見る感じだとzlibで圧縮されている?

それじゃあ無圧縮状態のデータの取り出しから始めてみますかね.Linuxだとできるのかどうかよくわからなかったので (ffmpeg とか MPlayer あたりで可能?),今回は不慣れながらもWindowsでやってみました (以下延々と試したことのメモが続くので,結論だけ知りたい方は次のエントリの末尾を見てくださいw)

まずはどこを見ても「とにかくこれを入れろ」と書かれている Sony ATRAC3 Audio Codec 0.98 をインストール.で,後は DirectShow Audio Converter を入れれば簡単にwavに変換できるらしい.・・・が,実際やってみると エラーが出て全然うまくいきません.エラーメッセージの日本語がお茶目すぎて何度も見てるとクラクラきますw

対応しいてない〜もしくわ〜

最新版のv6.01を使っているのがまずいのかと思い,PSP関連のサイトでの紹介に合わせて3.10に落としてみたりもしたんですが同様にうまくいきません.もしや64bit環境なのが悪い? というわけで32bit版のXPに移ってみたんですがやはり同様にだめでした (というか最初からいきなり x64版のXPでやるなよって話ですけどw). うーん.

エラーメッセージから察するに,フィルターがちゃんと導入できていないのか?調べたら,DirectShow Filter Toolなんていうツールを使うことでこの辺を管理できる模様.というか管理しないと色々問題があったりする場合があるのかー.難しいなぁ.で,ツールで見てみたんですが,これがさっぱりわかりませんw.リストに大量のフィルターが出てくるんですが,ATRAC3のCODECは一体その中のどれと関係してるのやらw

ファイルの拡張子が.acmだから,ACM Wrapper? これよりメリット値が大きいのがいっぱいあるのが問題? うーん,勘でどうにかなるものじゃなさそうですねー.メリット値が大きいやつを見ると,何やらNeroでインストールされたと思しきファイルが大量に並んでいます.ググってみたら,どうもNeroのフィルタがあるとSonicStageがちゃんと動かないとかの問題があったりする模様.ひょっとして関係あるのかなーと思ってNeroをアンインストールして,怪しそうなフィルタの登録を外してみたりしたんですが,残念ながら状況は変わりませんでした.

ふーむ,これだけだとフィルタがちゃんと動いていないのか,ソフトの問題なのか,あるいはファイルのフォーマットが悪いのか,全然切り分けられん・・・.そこで他のツールを探してみたところ,GoldWaveなる波形編集ソフトが例のフィルタに対応していることを発見.インストールして適当なwavファイルを開いてみたところ,保存形式にATRAC3が出現しました.ということはCODECは認識されていると見てよさそうですなー.

で,そのままGoldWaveでATRAC3形式でファイルを保存し,できたファイルをいじってみました.できたファイルの拡張子はwavのままで,GoldWaveで開いて再生することが可能.中を見ると,お嬢様伝説コレクションのat3と同様に頭にRIFFチャンクがついた構造になっています.ということはお嬢様伝説コレクションのat3ファイルもGoldWaveで読み込めたりする?・・・と一瞬期待して試してみたんですがやはりNGでした.CODECがないというエラーが出て開けません.残念.

また,GoldWaveで作成したat3ファイルを DirectShow Audio Converterで開いてみたところ,こちらは wavに再変換できました.ということは,これまでの状況から考えると,銀河お嬢様伝説コレクションに入っているat3のファイルはちょっと形式が特殊ということ? うーん,長くなったので次のエントリに続く.

銀河お嬢様をアレしたい 続き

上の続き.特殊なATRAC3なら本家SonicStageでどうよ? というわけで導入してみるも,VとCPのどちらを使ってもお嬢様伝説コレクションのファイルは対応していないみたいなことを言われて開けませんでした (´・ω・`).もちろん,さっきGoldWaveで作ったAT3ファイルは開けます.うーん,わからんなー.

他に何かないかとしつこくググっていたらSOU1氏のページがヒット.ふーむ,ヘッダ付け替えで強引に乗り切る手法か・・・.興味深いけど,データのフォーマットが違ったらそれまでだよな・・・,一応,ものは試しと先ほど GoldWaveで作ったat3ファイルのヘッダとくっつけてみたところ,SonicStageで開いてもエラーとは言われなくなりましたが,やはり再生はできませんでしたw.あー,せめてdataチャンクの後のデータの形式が何なのかがちゃんとわかればいいんだけどなー.

もはや打つ手なし? それでも諦め切れずに先ほどのSOU1氏の記事を読み返してみたところ,後ろの方にもう1つ,何やらツールらしきものの名前が.HiMDRenderer,そういうのもあるのか.ググるとその仕組みがでてきます.ほほう,なるほど.しかし,それって結局CODECが対応していないとだめなんじゃ・・・.と思いつつも試してみたら,何とこれが見事に成功.wavファイルができました.すげえ.いや,まだ油断はできん.結局中身が壊れてて再生できないwavファイルだったりす・・・って再生キタ━━━━(゜∀゜)━━━━ッ!! 「ピー!ガー!エヘヘー」とか「これはHEシステムの」とかいっちゃってますよ! ひゃっほう!

というわけで,まとめると Sony ATRAC3 Audio Codec 0.98 + HiMDRenderer 0.54 があれば,銀河お嬢様伝説コレクションのat3ファイルから非圧縮の状態のファイルを取り出せるようです.結局ファイルの中身の細かな形式が何だったのかはよくわからないままですが,とにかくこれで音声トラックのメドが立ちました.よーし,次はbinファイルだ.

2009年 9月14日 (月)

スチールシェルフ

例のゲーム棚,日が当たって大事なあれやこれやが日焼けするのがちょっとイヤンな感じだったので,ニトリでスチールシェルフ用カバーを買ってかぶせてみました.

スチールシェルフ用カバー

まあ,予想通り急激に野暮ったい感じにw

スチールシェルフ用カバーをかけたところ

前を開けると多少マシですが,それでもアレだw

前を開けた状態

まあでもきっとすぐ慣れるんだろうなw.カバーの四隅 (支柱に沿った部分) が縫い合わされていなければ隣のスチールシェルフのポールと連結して耐震性を高められるなーと思ってたんですが,やはりそういう構造にはなっておらず,支柱を露出できるのは正面側の部分だけでした (´・ω・`).残念.

星蓮船

5面を何度か練習した後,通しで2回くらいやったんですが,今日は6面まで行けませんでした (´・ω・`).5ボスの通常攻撃が苦手だ・・・.

玄箱でMotion

QVX-13NSはMotion JPEGとYUYVの両方に対応しており,Motion自体のログを見るときちんと両方を検出しているようなんですが,なぜかMotionはYUYVの方を常に使ってしまうという問題があったりします.VGAぐらいの解像度でいいんですけど,勝手にYUYV最低解像度 (?) に合わせるもんだから記録される動画の解像度がでかくて困る・・・.

どうにかならないのかと思ってソースを落として調べてみたら,v4l2_palette なるオプションで指定できそう.・・・あれ,でもパッケージで入ったやつにはそんなオプションがない? ・・・あー,lennyのは 3.2.9なのね (CHANGELOGを見ると3.2.10から入った模様).というわけでパッケージはやめにして 3.2.11.1 をビルドしてインストールしなおしたら無事解決しました.よしよし.ちなみにクロスコンパイルがうまくいかなかったんで,妥協して普通に玄箱でビルドしちゃいました.思っていたよりはコンパイル速いかも,玄箱・・・.

あと,昨日発生した,デーモンで上げておくと映像を記録し始めた瞬間にMotionが落ちる問題は,記録した映像の保存先のディレクトリの所有者が root になっていたのが原因でした.というか Motion はデフォルトだと motion というユーザの権限で動かすのか.徹底しているなー.あんまり好みじゃないけど・・・.

今日のハードオフ

今日は不作でした.こんだけ.

今日のハードオフ

死霊戦線のケースがなぜか神武伝承w

箱は神武伝承

でも中身は普通に(?) 死霊戦線でした.

中身は死霊戦線

2009年 9月13日 (日)

玄箱でMotion

パッケージを入れた瞬間に動き出すんですね.topで監視してみたら常時CPUを 30% くらい食っていて,カメラの前で手を振ったら 90% 超えましたw デフォルトだとswfで保存されますが,MPEGで保存するにはffmpeg要作り直し?まあでも外からブラウザで確認する場合,swfの方が便利だからこれでいいか.とりあえず Webサーバとかの方も整備してそれっぽくしてどれくらいまともに動くのかテストですね・・・./etc/init.d/motion で上げると映像を記録し始めた瞬間に落ちるのはなぜだ?

2009年9月17日から2009年9月13日までの日記を表示中

中の人情報

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

カレンダー

2009年9月
    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      

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ