読者です 読者をやめる 読者になる 読者になる

pspのUMDからデータを抽出。

つよきす三学期portableのデータ(主に画像)を吸い出すべく奔走したのでせっかくなので書いておく。
(これも語りつくされた話題だろうけど、相も変わらず個人ブログなので関係ないのだ。)


多分これはいろんなパッケージ化されたデータファイルに応用できるんだろうなあ。


というわけで時系列順にやったことをまとめていく。


まず、つよきす三学期のデータファイルは.RUFという拡張子の謎ファイルだ。
.fpkとか.ypfなら大した事ないが早速よくわからなかった。

テキストで見てもヘッダにはRUFと書いてあるので嘘でもないらしい。

拡張子で調べる限りでは「Assimilation Ruffle」というソフトの分割情報ファイルらしいので、探してみる。
.RUFから.rufに拡張子をリネームしたファイルを入れると結合、.RUFのままいれると分割という選択肢が押せるようになる。(この時点で怪しさ満載だ。)

とりあえず分割…うおーー!jpgがいっぱいだー!

展開成功!

と思ったんだけどお察しのとおりぜんぜん関係なくて、jpgに偽装した複数のファイルに暗号化しただけだった。


ここでRUFからのアプローチを諦める。

テキストで眺めると、たとえばBGM.RUFならAT3が単純梱包されているだけらしい。

これならなんとかなりそうだ。

ということで、まずはextract dataの後継と紹介されていたcrassを使ってみる。
が、結果は見るも無残、敗退した。(そもそもcrass自体公式から消えており探すのに手間取った。迷惑すぎる。)


次に、本命extract dataを使ってみる。

これも公開停止されているらしく、とりあえず野良っぽいのを探してきた。

ttp://tlwiki.org/index.php?title=File:ExtractData120.7z

一応これ。

これにBGM.RUFを入れると、中身をリストアップしてくれた。

全部抽出。音楽ゲット!


となったんだけど、当然AT3が聞けるわけもなく、それの変換作業も行う。

ttp://www.geocities.jp/suponnsa/coru/at3.html

こちらを参考に二つのソフトをいれ変換を試みるもうまくいかない。

むかついたのでsonic stageを一時的にインストールすることに。

しかしsonic stageを入れた後もこれらのソフトでは変換できない。(しかもソニステでAT3が再生できなかった。意味がわからない。)

キレたのでsonic stageをアンインストール。代替手段を模索する。

いきついたのはこれ。

ttp://www.marcnetsystem.co.uk/

こちらのHiMDRenderer 1.00 beta 4で、上記までの状態で無事七割がたのAT3ファイルをmp3に変換することが出来た。

結局なんで他のソフトで出来なかったのかはわからない。

(ちなみに変換はそこそこ普通にだれる長さだった。早いは早いけど、ファイル数が多かったので。)


そして次はCG。

CG.RUFをextract dataに突っ込む。

が、リストアップされない。
おそらくGIMファイルを検索できないからだろうと思ったので、GIMファイルのsusieプラグインを導入。

しかしextract dataは使えない。

困ったけれど仕方がない。

ここで一旦振り出しにもどった。


最後にたどり着いたのはこれ。

ttp://np301kaizoublog.blog109.fc2.com/blog-entry-212.html

こちらを参考にX-Ripperをダウンロード。

これが良い感じだった。

GIM用のiniを導入してCG.RUFを抽出。

やっとGIMファイルを取り出すことが出来た。

ちなみにこれは1100枚あったこともあるがかなりの時間を待たされた。


最後にGIMをBMPに変換。

これが出来ればちゃんと抽出できたことになる。

というわけで、成功…んんっ?!



ああああああああ!!!



全部近衛素奈緒の顔アップだ〜〜〜〜〜(唖然)


しかし解像度が368x272という微妙なサイズなのが判明したのは悲しい…。



状況を確認する限りでは、ファイル名が1番ではGIMファイルひとつで107MBに対し、最後には97KBになっており、だんだんと下がっているらしい。

もちろん上の画像を見てわかるとおりGIM2BMPで107MBと97KBのGIMどちらを変換してもおなじものになる。

また、バイナリを見る限りひとつめのデータには複数のGIMがまとまっているように見える。

ここから推測するに一番目を複数のGIMに分割してやればよさそうだ。(つまり、ひとつ番号がすすむごとに一番後ろのGIMが含まれない複合GIMが生成されていたことになる。X-Ripperで長い間またされたのはこのためだったようだ。)


というわけでedamame_aruを使用してGIMを分割する。

ttp://www.geocities.jp/noretales/tool.html

こちらを使用する。

これに一番目のGIMをD&D、検索文字列をMIGに、拡張子をGIMにする。(GIMのヘッダはMIGだ。)

ビンゴ!

見事に1100個ほどのGIMファイルに分割された。

これをGIM2BMPする。

これでCGの抽出終了。



長かった…。

こんなに苦労したのにサイズが368x272なんて、ひどい。


まったくもって骨折り損のくたびれ儲けだったのが悔やまれる。



【追記】

解像度はPSPにあわせてあるようなのでこれ以上の向上は望めない。

しかし一般的な手順を一通り経験した上で改善できるところはたくさんあって、おそらく上記抽出手順はすべて最後に使用したedamame_aruのみで代用できる。

実際抽出したいファイルのヘッダさえわかれば単純梱包されたファイルならedamameを使用するのが一番早そうだ。(GIMならMIG、AT3ならRIFFだ。)

X-Ripperは抽出精度に疑問が残るし、extract dataはわかりやすいUIだが画像に弱い。

まあ何より僕がコマンドプロンプトで動くアプリケーションが好きっていうのもあるんだけど。

ためしにCG.RUFをedamameで抽出、GIM2BMPでBMP変換までやってみたところものの五分程度で終わったので、五時間くらい試行錯誤した身としてはオススメだ。



それにしても公式にあるイベントCGよりも抽出画像のほうが画質が悪いのは、納得いかないものがある。