東方のBGMに関連するファイルをそれぞれ調べてみた

東方のBGMに関連するファイルをそれぞれ調べてみた

東方の、原曲に関するファイル: thbgm.dat | thbgm.fmt | musiccmt.txt
「thbgm.dat」については前回書きましたのでそっち参照。
今回は、「th**.dat」についていきたいと思います。
このファイルは「thbgm.dat」と違って暗号化されています。しかし、そのアルゴリズムは東方によって違うらしく、暗号化まで調べるのは面倒なのでここは抜き出しツールで。
そして、中にある、原曲に関係するのは、
thbgm.fmtとmusiccmt.txt、
そして、紅魔郷~体験版花映塚はMIDI版の原曲、
です。

thbgm.fmtのフォーマット

どうやらこれが抜き出し機とかで使われる曲目ファイルの元になるようです。
テキストデータでなくバイナリデータで、
16バイト:ファイル名「*.wav」(余った部分はNULL)
36バイト:なんかのデータ
を繰り返しにぶち込んでます。
この、”なんかのデータ”が、曲目ファイルの「何バイト~何バイト」のデータとふWAVEのフォーマットのデータを持っているようです。
(↓2011/12/19編集)

何byte目 : データ
+0 : 開始位置 (絶対位置)
+4 : 謎の数値
+8 : イントロ長 (相対位置)
+12 : 謎の数値 (4byte目のと同じ数値)
+16 : PCMWAVEFORMAT構造体
東方のBGMは全部サンプリングレートとか一緒じゃなきゃいけないのかと思っていましたが違っていてもいいようです。
+32 : NULL文字4つ

おそらく4byte目の数値使うとイントロ長さとループ部の長さが出るんだとは思いますが、よくわかりません。

もうちょっと今後も調べようと思います。
- 追加 -

musiccmt.txtのフォーマット

テキストファイルです。

#
# 曲のコメント
#

で始まり、

@bgm/*.wav
No.*  ******
♪******

****************
****************
****************
****************
****************

というのが並べて書かれています。
しかし、
「#0123456789012345678901234567890」
というのがところどころ「@bgm/*.wav」の前の行に投入されています。たぶんなんかの目印なのでしょうが、何を意味しているのかは分かりませんでした。
まだわからないこと多くて恥ずかしいのですが、これからも頑張って解析していきます。
↓応援にクリックくれると助かります。