- ベストアンサー
FMFファイルの構造を知りたいのですが
FMFファイルの構造を知りたいのですが (intや型char型などの)どうやって調べればよいのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>そこで質問なのですが、マニュアルがない場合、どうやって調べればよいのでしょうか?調べることはできないのでしょうか? ソースコードも無い&ドキュメントも無い状況だとリバースエンジニアリングの領分に近いですが、色々なパターンのfmfファイルを作ってそれをバイナリエディタで比較していけば、どこの部分がどういう意味を持つか大体は調べることが出来ます。 実際フォーマットが分かっていても曖昧な部分がある場合は同様の事をすることがあります。 マップファイルの場合は、エディタ上で入力したものが反映される訳ですから解析しやすい部類と言えるでしょう。
その他の回答 (4)
- zwi
- ベストアンサー率56% (730/1282)
私もダウンロードしてみましたが、マニュアルやサンプルで十分必要な情報は記載されている様に思います。 それと第一にやるべき事は、Platinumのリンクなどの記載ですね。 >なぜPlatinumをFMF読み込みすると何も表示されないのでしょうか? FMFの中に画像の情報がないのでしょうがないのでは? >あとプログラミングして実行したときにFMFだけ読み込んでも表示されるのですがなぜでしょうか? 自分で画像を読み込んでいるのでは? 自分で書いたプログラムですよね?
お礼
回答ありがとうございます。マニュアルがあるとは知りませんでした。学校で配布されたやつなのでマニュアルがなくって。。。自分で書いたプログラムではないです。ソースを調べたら画像を読み込んでいました。回答誠にありがとうございました。
- hidebun
- ベストアンサー率50% (92/181)
私も存じませんが、このHPで配布されているものですよね。 http://www.hyperdevice.net/ いくつかバージョンがあるようです。 試しにv1.71をダウンロードして解凍すると…。 おお、manual.txtが同梱されている。 ナニナニ。 === ■FMFファイルの説明 FMFファイルはヘッダと1つ以上のレイヤーデータからなるバイナリファイルで、 シンプルなファイル構造になっています。 先頭にヘッダ領域(20Byte)が記録されておりその後にレイヤーデータブロックがFMFヘッダの layerCount数出力されています。 [ヘッダ領域][レイヤー0領域][レイヤー1領域][レイヤーN領域]... ヘッダ領域のサイズは20byte固定. 各レイヤー領域のサイズは mapWidth * mapHeight * (bitCount / 8) byte. ・データサイズの表記について [U1] unsigned char (1byte) [U4] unsigned integer (4byte) バイトオーダーは最下位バイトから記録されるリトルエンディアンです。 【FMFファイルヘッダ (20 byte)】 +0 identifier [U4] // ファイル識別子 'FMF_' (0x5F464D46) +4 size [U4] // ヘッダを除いたデータサイズ +8 mapWidth [U4] // マップの横幅 +12 mapHeight [U4] // マップの縦幅 +16 chipHeight [U1] // パーツの横幅 +17 chipHeight [U1] // パーツの縦幅 +18 layerCount [U1] // レイヤー数 +19 bitCount [U1] // レイヤーデータのビットカウント(8/16) 【レイヤーデータ】 FMFヘッダの直後からマップパーツの値が mapWidth * mapHeight 個、ベタに並んでいます。 bitCountが8の場合、1パーツ8ビット(1byte) bitCountが16の場合、1パーツが16ビット(2byte) 1レイヤーのデータサイズは以下のようになる。 layerSize = mapWidth * mapHeight * (bitCount / 8); また、 fileSize = headerSize(20bytes) + layerSize * layerCount; となる。 ※詳しくは添付のソースコードを参照してください。 === ふーむ。サンプルのソースコードまで用意してくれているのか。 作者は、なかなか親切ですねー。
お礼
回答ありがとうございます。学校で配布されたものでしたので、マニュアルまであるとは知りませんでした。そこで質問なのですが、マニュアルがない場合、どうやって調べればよいのでしょうか?調べることはできないのでしょうか?
- zwi
- ベストアンサー率56% (730/1282)
さもPlatinumを有名なモノのように書かれていますが私は存じません。#1の回答者さんも同じだと思います。
お礼
返信ありがとうございます。そのように書いたつもりではないのですが。。。そうなんですか。マップエディタのソフトなんですが、誰かわかる人いらっしゃいましたらよろしくお願いします。ファイルの構造(int型,char型など)を調べる方法がわかる方でもいいのでいらっしゃいましたら、ご教授のほどよろしくお願いします。特定しないとわからないのであれば、何でもいいのでよろしくおねがいします。
- hitomura
- ベストアンサー率48% (325/664)
すみませんが、FMFファイルと聞いて思い当たるものがありません。何に使用するファイルでしょうか。
お礼
回答ありがとうございます。Platinumを書き出しや読み込みするときに出力されるFMFファイルです。
補足
すみません。後もう二つ質問します。なぜPlatinumをFMF読み込みすると何も表示されないのでしょうか?あとプログラミングして実行したときにFMFだけ読み込んでも表示されるのですがなぜでしょうか?
お礼
そうなんですか。試行錯誤しながら調べていくということですか。貴重な回答ありがとうございました。