1. 無料アクセス解析
プロフィール

五枚重ね

Author:五枚重ね
備えあれば憂いなし

mail:
gomaigasane(@)gmail.com
…(@)は@に置き換えで

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
FC2カウンター
ブロとも申請フォーム
ブログ内検索
RSSフィード
リンク
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)
Xbox360版アイドルマスター BNAファイル解析メモ
360版アイマスで使われているファイルのアーカイブ構造についてのメモ。
どのようにまとめて記事にするか悩んだが、結局自分が解析しながら書き殴っていた
Excel上のメモをそのまま表にして示すことにした。
いつも以上に読みづらく縦に長いが、「続きを読む」システムは好みではないのでこのままドーン。

※少しでもご興味の湧いた方は、バイナリエディタで対象ファイルを開きつつご覧ください。
「オフセット」などの語句の意味が分からないなどあれば、コメントにてご質問どうぞ。

<<BNAファイルのヘッダ構造>>
拡張子".bna"のファイル共通のヘッダ部分の構造について。
このファイルは内部に複数のファイルを含むアーカイブ状になっている。
「BNA=Bandai Namco Archive」といった具合のネーミングだろうか。
byte数 目印 情報の意味 備考・バイナリデータ
4   BNAヘッダ:'B' 'N' 'A' '0' 42 4E 41 30
4 #0 内包する.scb・.ahxファイルの総数  
4 #1 ディレクトリ名オフセット  
4 #2 ファイル名オフセット  
4 #3 ファイル内容オフセット  
4 #4 ファイルサイズ  
16*n   #1~4の繰り返し 計#0回
x #5 ディレクトリ名 末尾00
x #6 ファイル名 末尾00
x   #5または#6の繰り返し  
x   (ここまでのサイズが128byte以下なら埋め合わせ) 00


<<BNA中のSCBファイル>>
/root/script 内のBNAには、拡張子".scb"のファイルが含まれている。
このSCBファイルには、コミュパートで表示されるテキストが含まれている。
他にも音声や画像などの制御情報も含まれているようで構造がやや入り組んでいる。
[SCBファイルのヘッダ構造]
byte数 目印 情報の意味 備考・バイナリデータ
16 #7 SCBヘッダ:'S' 'C' 'B' ' '… 53 43 42 00 00 00 00 00 00 00 00 45 00 00 00 45
4   .scbファイルサイズ  
4   共通値?(CMD・LBLなどの種類数?) 00 00 00 07
4   ???  
4   共通ブランク? 00 00 00 00
4   ???  
12   共通値? FF FF 00 00 00 07 00 00 00 00 00 00
32   .scbファイル名(拡張子無し) 余り00
32   シチュエーション名(無ければブランク) 余り00
4   CMDヘッダ:'C' 'M' 'D' ' ' 43 4D 44 00
4 #8 CMDのサイズ  
4   CMDのオフセット #7開始位置が起点
4   フッタ CC CC CC CC
4   LBLヘッダ:'L' 'B' 'L' ' ' 4C 42 4C 00
4 #9 LBLのサイズ  
4   LBLのオフセット #7開始位置が起点
4   フッタ CC CC CC CC
4   MSGヘッダ:'M' 'S' 'G' ' ' 4D 53 47 00
4 #10 MSGのサイズ  
4   MSGのオフセット #7開始位置が起点
4   フッタ CC CC CC CC
4   VCNヘッダ:'V' 'C' 'N' ' ' 56 43 4E 00
4 #11 VCNのサイズ  
4   VCNのオフセット #7開始位置が起点
4   フッタ CC CC CC CC
4   LBNヘッダ:'L' 'B' 'N' ' ' 4C 42 4E 00
4 #12 LBNのサイズ  
4   LBNのオフセット #7開始位置が起点
4   フッタ CC CC CC CC
4   RSCヘッダ:'R' 'S' 'C' ' ' 52 53 43 00
4 #13 RSCのサイズ  
4   RSCのオフセット #7開始位置が起点
4   フッタ CC CC CC CC
4   RSNヘッダ:'R' 'S' 'N' ' ' 52 53 4E 00
4 #14 RSNのサイズ  
4   RSNのオフセット #7開始位置が起点
4   フッタ CC CC CC CC

[SCBファイルの内容部分の構造]
SCBファイルの具体的な内容にあたる部分は、上記のヘッダで示されているように
"CMD"や"MSG"などと名づけられた種類ごとに情報が分けられている。
以下に各種類毎のヘッダ構造と、情報の内容についての推察を示す。
byte数 目印 情報の意味 備考・バイナリデータ
SCB内:CMD
16   CMDヘッダ 43 4D 44 00 00 00 00 00 00 00 00 00 00 00 00 00
4 #15 ヘッダを除いたCMD内容サイズ #8-48byte
4 #16 ???#15/8だったり9だったり  
8   共通ブランク? 00 00 00 00 00 00 00 00
2   #16と同じ?  
2   共通ブランク? 00 00
4   #15と同じ?  
8   共通値?ヘッダここまで 01 00 00 00 00 00 00 00
4*n   CMD内容???  
4*n   (16byte単位に揃える穴埋めフッタ) CD CD CD CD
SCB内:LBL
16   LBLヘッダ 4C 42 4C 00 00 00 00 00 00 00 00 45 00 00 00 45
4   ヘッダを除いたLBL内容サイズ #9-32byte
4   LBLの内容数(上のサイズ÷8)  
8   共通ブランク ヘッダここまで 00 00 00 00 00 00 00 00
8*n   LBL内容??? 上4byteが1ずつ増加 下4byteは0
8*n   LBL内容??? 上4byteは0 下4byteが不定値増加
SCB内:MSG
16   MSGヘッダ 4D 53 47 00 00 00 00 00 00 00 00 00 00 00 00 45
4   ヘッダを除いたMSG内容サイズ #10-32byte
12   共通ブランク ヘッダここまで 00 00 00 00 00 00 00 00 00 00 00 00
2 #17 MSGの内包する個別テキスト数 個別テキスト=1ウィンドウで表示されるテキスト
2   共通ブランク? 00 00
4   テキスト内容の総サイズ  
2   共通値? 00 10
2   テキスト内容のオフセット #17開始位置が起点
4   共通ブランク? 00 00 00 00
4 #18 個別テキストのサイズ  
4 #19 個別テキストのオフセット #20開始位置が起点
8*n   #18~19の繰り返し 計#17回
8   (16byte単位に揃える穴埋めフッタ) CD CD CD CD CD CD CD CD
x #20 テキスト部分  
x<16   (16byte単位に揃える穴埋めフッタ) CD
SCB内:VCN
16   VCNヘッダ(MSGと同じ) 4D 53 47 00 00 00 00 00 00 00 00 00 00 00 00 45
4   ヘッダを除いたVCN内容サイズ #11-32byte
12   共通ブランク ヘッダここまで 00 00 00 00 00 00 00 00 00 00 00 00
2 #21 VCNの内包するAHXリンク数  
2   共通値? 01 00
4   AHXリンクリストのサイズ  
2   共通値? 00 10
2   AHXリンクリストのオフセット #21開始位置が起点
4   共通ブランク? 00 00 00 00
4 #22 AHXファイル名のサイズ  
4 #23 AHXファイル名のオフセット #24開始位置が起点
8*n   #22~23の繰り返し 計#21回
8   (16byte単位に揃える穴埋めフッタ) CC CC CC CC CC CC CC CC
x #24 AHXリンクリスト  
x<16   (16byte単位に揃える穴埋めフッタ) CC
SCB内:LBN
16   LBNヘッダ(MSGと同じ) 4D 53 47 00 00 00 00 00 00 00 00 00 00 00 00 45
4   ヘッダを除いたLBN内容サイズ #12-32byte
12   共通ブランク ヘッダここまで 00 00 00 00 00 00 00 00 00 00 00 00
2 #25 LBNの内包する○○リンク数  
2   共通値? 01 00
4   ○○リンクリストのサイズ  
2   共通値? 00 10
2   ○○リンクリストのオフセット #25開始位置が起点
4   共通ブランク? 00 00 00 00
4 #26 ○○リンク名のサイズ  
4 #27 ○○リンク名のオフセット #28開始位置が起点
8*n   #26~27の繰り返し 計#25回
8   (16byte単位に揃える穴埋めフッタ) CC CC CC CC CC CC CC CC
x #28 ○○リンクリスト  
x<16   (16byte単位に揃える穴埋めフッタ) CC
SCB内:RSC
16   RSCヘッダ 52 53 43 00 00 00 00 00 00 00 00 00 00 00 00 00
4   ヘッダを除いたRSC内容サイズ #13-32byte
4 #29 RSCの内包する△△数  
8   共通ブランク ヘッダここまで 00 00 00 00 00 00 00 00
4 #30 ???何らかのサイズ?  
4 #31 ???何らかのオフセット?  
8 #32 共通値? 00 00 00 00 FF FF FF FF
16*n   #30~32の繰り返し 計#29回
SCB内:RSN
16   RSNヘッダ(MSGと同じ) 4D 53 47 00 00 00 00 00 00 00 00 00 00 00 00 45
4   ヘッダを除いたRSN内容サイズ #14-32byte
12   共通ブランク ヘッダここまで 00 00 00 00 00 00 00 00 00 00 00 00
2 #33 RSNの内包する◇◇数  
2   共通値? 01 00
4   ◇◇リストのサイズ  
2   共通値? 00 10
2   ◇◇リストのオフセット #33開始位置が起点
4   共通ブランク? 00 00 00 00
4 #34 ◇◇のサイズ  
4 #35 ◇◇のオフセット #36開始位置が起点
8*n   #34~35の繰り返し 計#33回
8   (16byte単位に揃える穴埋めフッタ) CC CC CC CC CC CC CC CC
x #36 ◇◇(何なのか不明)  
x<16   (16byte単位に揃える穴埋めフッタ) CC


<<BNA中のAHXファイルのヘッダ構造>>
/root/script 内のBNAのほとんどには、拡張子".ahx"のファイルが含まれている。
いわゆるAHXファイルなので無知な自分が書く必要はないとも思うが、
適当に流し見したメモを以下に示す。肝心な部分が???でキャー恥ずかしい。
byte数 目印 情報の意味 備考・バイナリデータ
8   AHXヘッダ 80 00 00 20 11 00 00 01
4   サンプリング周波数(Hz) 24kHzなら00 00 5D C0
18   ???  
6   (' 'c' ')' 'C' 'R' 'I' 28 63 29 43 52 49
x   ???と実内容  
12   A' 'H' 'X' 'E' '(' 'c' ')' 'C' 'R' 'I' ' ' ' ' 41 48 58 45 28 63 29 43 52 49 00 00


<<まとめと雑感>>
まず、上の内容に少しでも目を通した方がおられたら心より感謝申し上げます。
意味を解読できた方は尊敬いたします。エスパー並の読解力か、私と波長が合うのか。
見た瞬間ワケワカンネーと読み飛ばした方。正解です。ここも読んでないだろうけど。

具体的なまとめに入る。
以前から書いているように、BNAの全体としてのアーカイブ構造は完全に把握できた。
scriptフォルダ以外でも同様なので、BNAのヘッダは上記で間違いないだろう。
BNA中のSCBファイルについても、全体構造とテキスト部分(上でいうMSG部分)は理解できた。
そして、AHX音声とのリンク(VCN)や他の何らかの要素とのリンク(LBN)も掴めたが、
具体的に個別のテキスト・選択肢とどう結び付けているのかはまだ分かっていない。
その不明点に当たるところが上記のリストで「○○」や「?」で置き換えている部分だろう。
現状、これらの不明点にまで踏み込んでの解析までは余裕が無く予定していない。

最後に、ここまで全部ご覧になった尊敬すべき方々、
    「○○」や「?」になっている部分について何らかご意見がありましたら
    是非是非、コメントにて情報提供をよろしくお願いします。
他にも「この部分は間違いだろ」「その見解で正しいと思う」などの指摘もあれば是非。
もちろん、「お前、暇人だな」といった感想まで何でもござれ。


[関連記事]
スポンサーサイト


ゲーム(コンシューマ) | 【2007-03-14(Wed) 01:54:57】 | Trackback:(0) | Comments:(0)
コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。