[掲示板へもどる]
一括表示

  [No.773] Re: Please help extract .bin file. 投稿者:まくちゃん  投稿日:2011/03/24(Thu) 02:52:56

どうも、はじめまして。

こちらは私に解析を依頼する場所ではありませんのでお間違いのないように。

一応、解析をしてみましたがPS2用にSwizzleされた256色カラーの画像でした。
1枚目を変換するとこんな感じです。
http://www.cute.or.jp/~makuchan/images11/all3_00.png
結構面倒くさかった。


  [No.775] データを眺めてプログラムを書くのです 投稿者:まくちゃん  投稿日:2011/03/24(Thu) 14:53:39

> How to extract .bin file?
> Tell me, please!

ダンプエディタでデータを見て位置を割り出し
自分が欲しいデータに変換するプログラムを書くだけです。

このデータは画像データが連結しているファイルでした。
以下のようにファイルは階層になっています。

グループA
画像1
画像2
画像…

グループB
画像1
画像2
画像…

グループの情報はこのデータには入っていないようです。
別のテーブルファイルかゲームプログラムに組み込まれていると推測します。

グループの先頭はこのようになっていると思われます。
http://www.cute.or.jp/~makuchan/images11/all3dat1.png

グループヘッダのはC8h(200)バイト固定かと思われます。
その次にピクセルデータとカラーデータに50h(80)バイトのヘッダがありました。
その後にデータが続きます。
画像の解像度やフォーマット情報はまだ割り出せていませんが
どれも256色32bitRGBAのフォーマットかと思います。

ピクセルデータはPS2用に最適化されています。
そのまま並べても絵になりません。
簡単にはunSiwzzle出来なかったので”PS2 Texture unSiwzzle”でGoogle検索すると
ソースコードが公開されている解析フォーラムがヒットしたので、それを使わせてもらいました。

ピクセルのあとに50h(80)バイトのヘッダがありRGBAのカラーデータが並んでいます。
http://www.cute.or.jp/~makuchan/images11/all3dat2.png

32bit RGBAですが配置はBGRAの順に並んでいます。
またアルファ値の最大値が128だったので2倍して127でリミッターをかける必要があると思います。

256色のカラーデータは順番に並んでいません。
これもPS2用に最適化されているかと思います。

-------------------------------------------------
00 01 02 03 04 05 06 07 | 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 | 18 19 1A 1B 1C 1D 1E 1F
-------------------------------------------------
20 21 22 23 24 25 26 27 | 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 | 38 39 3A 3B 3C 3D 3E 3F
-------------------------------------------------
A | B → D | C
C | D → B | A

こんな感じでスワップする必要がありました。

グループですが情報がないのでファイルサイズで次のグループを割り出すことができると思います。
各グループのオフセットは0x800単位なのでデータの終わりから次の0x800がファイルサイズから
溢れているか?そしてヘッタ情報からデータが存在するかと見れば良いかと思います。


  [No.776] ツールをアップしておきます。 投稿者:まくちゃん  投稿日:2011/03/24(Thu) 19:57:27

どれも512x512だったので画像サイズを指定している場所はわかりませんでした。
512x512固定のDDSファイルを出力します。

こちらをダウンロードしてall3extと同じフォルダーにall3 cut data.binを置いて
convert.batを実行してください。
http://www.cute.or.jp/~makuchan/pce/all3ext.zip

実行にはVC++2008のランタイムが必要です。

即席なので何か問題が生じても責任は持ちません。