フェイの問題完全分析

※このページは上級者向けであることを予め断っておきます。
このページの内容を理解するには、16進数、バイナリデータ及び風来のシレンのシステムに関する知識を必要とします。
それらに関する初歩的な質問はご遠慮下さい。

・フェイの問題ファイルのおおまかな構造
基本データ問題データ問題データ問題データ・・・

フェイの問題ファイルは、基本データと問題データに分かれています。
基本データは必ず1つで、問題のタイトル、難易度等の情報が記録されています。
問題データは問題の個数分あり、問題の地形、モンスター、道具等の情報が記録されています。

基本データ

・基本データの構造(括弧内の数値はデータサイズ)
ヘッダー(50)作成ソフトとファイル名(32)難易度の長さ(1)問題数(1)難易度(x)問題のタイトル(32x)問題データの開始位置(4x)

・ヘッダー(50)
このファイルがフェイの問題ファイルであることを示す文字列が入ります。フェイの問題ファイルのバージョンもここで宣言されます。
現行バージョン(Version 2.0)の場合、以下の文字列が入ります。
54 68 69 73 20 69 73 20 66 65 69 2D 6E 6F 2D 6D
6F 6E 64 61 69 20 66 69 6C 65 20 57 69 6E 56 65
72 32 2E 30 00 00 00 00 00 00 00 00 00 00 00 00
00 00
This is fei-no-m
ondai file WinVe
r2.0............
..

・作成ソフトとファイル名(32)
このファイルが、チュンソフトによって作られたものか、ユーザーによって作られたものかという情報と、このファイルのファイル名が入ります。
最初の7バイトには、以下の文字列が入ります。
ChunOrg:チュンソフト専用のフェイの問題作成キットで作成
UserOrg:一般公開されているフェイの問題作成キットで作成
作成者の後には拡張子を除いたフェイの問題ファイルのファイル名が入ります。
これは問題が解かれたかどうかがレジストリに記録される時に、フェイの問題ファイルによってそれを区別するのに使われます。
ファイル名が終わった後は、このデータが32バイトになるまで00hで埋めていきます。

・難易度の長さ(1)
難易度データの長さを1バイトで設定します。つまり必ず問題数と同じ数値になります。

・問題数(1)
問題数を1バイトで設定します。

・難易度(x)
問題の難易度を01〜05で1問目から順に入れていきます。

・問題のタイトル(32x)
問題のタイトルを1問目から順に入れていきます。
タイトルの後はタイトル1問分の長さが32バイトになるまで00hで埋めから、次の問題のタイトルを入れていきます。

・問題データの開始位置(4x)
問題データが開始されるアドレスを4バイトで1問目から順に入れていきます。
勿論、小さい位から順に入ります。

問題データの構造

・問題データの構造にあたっての注意事項
問題データの座標は、フェイの問題作成キットの座標より、縦横共に+4されています。座標(1,2)は(5,6)となる訳です。
また、座標は、上桁は使われることが無いにも関わらず、何故か2バイト分取っています。

・問題データの構造(括弧内の数値はデータサイズ)
背景(1)FF通路、水脈データ(6x)FF FFシレンの初期ステータス(9)FF FF怪物データ(10x)FF FF道具データ(12x)FF FF部屋データ(9x)FF

・背景(1)
ダンジョンの背景を1バイトで設定します。ダンジョンの背景は01〜14hの20種類で、この内01〜11hはゴミ壺ダンジョンの1〜17階の背景と同じです。
12〜14はSFC版シレンにしか出ない背景3種類です。

・通路、水脈データ(6x)
ここでは解説を省略します。

・シレンの初期ステータス(9)
シレンの初期ステータスの構造は以下の通りです。(括弧内の数値はデータサイズ)
X座標(2)Y座標(2)レベル(1)最大HP(2)現在HP(2)
レベルは0〜46hです。47h以上にすると強制終了となります。
HPは0〜FAhです。FBh以上にしたり、現在HPを最大HPより大きくすると強制終了となります。

・怪物データ(10x)
怪物データの構造は以下の通りです。(括弧内の数値はデータサイズ)
X座標(2)Y座標(2)種族(1)一般村民モード(1)レベル(1)状態(1)化ける種族(1)意味無し(1)
先に出た怪物程行動優先順位が高くなります。
種族の表は、生物リストを参照して下さい。
一般村民モードは、00でオフ、00以外でオンになります。
オンにすると、起きていても動かなくなり、話し掛けると「私は、善良な一般村民です。」と話します。
但し、寝ている+一般村民モードの怪物に話し掛けると強制終了となります。
状態には以下の数値が入ります。
00:起きている
01〜7F:問題が開始されてからそのターン後に目を覚ます
80〜FD:かなしばり(通常はFDが使われます)
FE:睡眠2
FF:睡眠1
化ける種族は、カラス天狗系の時に、どの種族に化けるかを設定します。
最後の1バイトは、通常は意味無しですが、カラス天狗系+00以外の怪物に攻撃されようとすると強制終了となります。

・道具データ(12x)
アイテムリストを参照して下さい。構造もこちらに書かれてあります。

・部屋データ(9x)
部屋番号(1)開始X座標(2)開始Y座標(2)終了X座標(2)終了Y座標(2)
部屋番号は00〜09hです。
開始座標はX座標、Y座標共に実際の開始座標よりも-1、終了座標はX座標、Y座標共に実際の終了座標よりも+1されていることにご注意下さい。

フェイの問題の構造は以上の通りです。
何でもただ読むだけではなく実際にやってみることが最大の上達方法です。
よく分からない場合は、簡単なフェイの問題を作って、それをバイナリエディタで開いて見ていきましょう。

という訳で、フェイの問題には多くの没システムがあることが明らかになりました。
特に設定されたターン後に目を覚ますモンスターは、色々と利用出来そうです。
貴方もこの没システムを使って、難問を作ってみては如何でしょうか?

戻る