2009年9月17日の日記を表示中

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月17日の日記を表示中

中の人情報

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

過去ログ