ff6rndenc - ファイナルファンタジーVI 出現モンスター予測プログラム

目次

はじめに

本プログラム(ff6rndenc)は、『ファイナルファンタジーVI』においてランダムエンカウントで出現するモンスターを事前に予測するためのプログラムです。低レベル攻略を行う際に、魔大陸上空の帝国空軍との戦闘で、意図的に「2体組を5回出す」といったことも可能になります。

なお、ff6rndencはスーパーファミコン版でのモンスター出現の挙動をもとに予測を行うようになっていますが、おそらくはプレイステーション版でも問題なく予測できると思います。とはいえ、ff6rndencを実行して得られた予測結果の検証は、スーパーファミコン版にしろプレイステーション版にしろ、ほとんど行っていません。ご注意ください。

アーカイブ

アーカイブに含まれているファイルは以下のとおりです。なお、2種類のアーカイブを用意していますが、どちらも内容は同一です。

ソースファイル(ff6rndenc.c)

ff6rndencのソースファイルです。文字コードはShift_JIS(改行コード: CR + LF)となっています。

実行ファイル(ff6rndenc.exe)

ff6rndencのWin32環境での実行ファイルです。

ドキュメントファイル(ff6rndenc.html)

このファイルです。文字コードはISO-2022-JP(改行コード: LF)となっています。

スタイルシートファイル(style.css)

ff6rndenc.htmlに適用しているスタイルシートです。

ソースファイル(ff6rndtbl.c)

各種テーブルファイルを出力するプログラムのソースファイルです。文字コードはShift_JIS(改行コード: CR + LF)となっています。

各種テーブルファイル(ff6monenc*tbl*.txt)

モンスターパーティ選択時に使用される乱数表や、モンスターパーティの出現順番表などのファイルです。単なる資料として添付しているだけで、プログラムの実行に必要なファイルではありません。文字コードはUS-ASCII(改行コード: CR + LF)となっています。

実行方法

書式

ff6rndenc [-h] [-a [NUMBER]] [-b NUMBER] [-m NUMBER] [encount-pattern]

encount-patternには、'A', 'B', 'C', 'D'の4文字を並べて構成した文字列を指定します(例: "BABCDABC")。大文字小文字は区別しません。'A'〜'D'の文字の詳しい説明については、『実際の使い方』をご覧ください。

また、特殊な記号として、'.', '[', ']'(左から、ピリオド・始め角括弧・終わり角括弧)を使うことができます。これらは正規表現の「ドット」「文字クラス」に似た機能を持つ記号です。詳しい説明は省略します。

なお、encount-patternを省略した場合は、標準入力から文字列を入力します。

各種オプションの説明は以下のとおりです。

-a [NUMBER]

魔大陸上空での帝国空軍との戦闘の予測(あと何回戦闘すれば「2体組3回」以上の組み合わせが出現するか)を表示します。-aオプションの後に数値を指定すると、「2体組n回」のnを指定できます(範囲は0〜6まで)。

-b NUMBER

今後の敵出現予測を何件まで表示するか指定します。デフォルト値は10です。0を指定すると、今後の敵出現予測を表示しません。

-m NUMBER

乱数位置の候補を何件まで表示するか指定します。デフォルト値は100です。0を指定すると、乱数位置の候補を表示しません。

-h

簡単なヘルプメッセージを表示します。

実際の使い方

ここでは、実際にこのプログラムを使用して、魔大陸突入時の帝国空軍との戦闘におけるモンスター出現パターンを予測する手順を説明します。原理については『敵出現予測の原理』で説明します。

前準備

当然と言えば当然ですが、「魔大陸に行ける状態のセーブデータ」を用意します。予測が終了した後は、すぐに魔大陸に突入することになるので、装備品やアイテムなどは万全の状態に整えておいてください。

敵出現パターンの予測

まず、「ランダムエンカウントで4種類のモンスターパーティが出現する場所」に行きます。敵が弱いので、フィガロ城周辺の砂漠が最適でしょう。この場所では、以下の4種類のモンスターパーティが出現します。以下、この4種類をそれぞれA〜Dとします。

ここで1度セーブしておきます。そして、歩き回って十数回程度戦闘をします。このとき、A〜Dのモンスターパーティがどの順番で出現したかをメモしておいてください。なお、戦闘には勝利しても逃走してもどちらでもかまいませんが、低レベル攻略の場合ならば当然逃走してください。

ここでは、15回戦闘してモンスターパーティが"B, A, B, C, D, A, B, C, C, A, A, A, D, A, B"の順番で出現したものとします。ここで一度ff6rndencを実行してみます(魔大陸上空での帝国空軍との戦闘予測を表示するために、"-a"オプションを指定してください)。

> ff6rndenc -a babcdabccaaadab

入力出現パターン:
  B, A, B, C, D, A, B, C, C, A, A, A, D, A, B

No.1: 現在乱数位置: 2752h, 初期乱数位置: 2743h
  2体組3回: あと  19回戦闘後に出現, 乱数位置: 2765h, パターン: A, A, A, B, B, B
  2体組4回: あと  20回戦闘後に出現, 乱数位置: 2766h, パターン: A, A, B, B, B, B
  2体組5回: あと  21回戦闘後に出現, 乱数位置: 2767h, パターン: A, B, B, B, B, B
  2体組6回: あと 814回戦闘後に出現, 乱数位置: 2A80h, パターン: B, B, B, B, B, B

No.2: 現在乱数位置: 3252h, 初期乱数位置: 3243h
  2体組3回: あと  20回戦闘後に出現, 乱数位置: 3266h, パターン: A, A, B, B, A, B
  2体組4回: あと  21回戦闘後に出現, 乱数位置: 3267h, パターン: A, B, B, A, B, B
  2体組5回: あと  86回戦闘後に出現, 乱数位置: 32A8h, パターン: B, A, B, B, B, B
  2体組6回: あと 814回戦闘後に出現, 乱数位置: 3580h, パターン: B, B, B, B, B, B

No.3: 現在乱数位置: 3D52h, 初期乱数位置: 3D43h
  2体組3回: あと  21回戦闘後に出現, 乱数位置: 3D67h, パターン: A, A, B, A, B, B
  2体組4回: あと  23回戦闘後に出現, 乱数位置: 3D69h, パターン: B, A, B, B, A, B
  2体組5回: あと  25回戦闘後に出現, 乱数位置: 3D6Bh, パターン: B, B, A, B, B, B
  2体組6回: あと 814回戦闘後に出現, 乱数位置: 4080h, パターン: B, B, B, B, B, B

No.4: 現在乱数位置: 8052h, 初期乱数位置: 8043h
  2体組3回: あと  19回戦闘後に出現, 乱数位置: 8065h, パターン: A, A, A, B, B, B
  2体組4回: あと  20回戦闘後に出現, 乱数位置: 8066h, パターン: A, A, B, B, B, B
  2体組5回: あと  21回戦闘後に出現, 乱数位置: 8067h, パターン: A, B, B, B, B, B
  2体組6回: あと 814回戦闘後に出現, 乱数位置: 8380h, パターン: B, B, B, B, B, B

No.5: 現在乱数位置: 8B52h, 初期乱数位置: 8B43h
  2体組3回: あと  20回戦闘後に出現, 乱数位置: 8B66h, パターン: A, A, B, B, A, B
  2体組4回: あと  21回戦闘後に出現, 乱数位置: 8B67h, パターン: A, B, B, A, B, B
  2体組5回: あと  86回戦闘後に出現, 乱数位置: 8BA8h, パターン: B, A, B, B, B, B
  2体組6回: あと 814回戦闘後に出現, 乱数位置: 8E80h, パターン: B, B, B, B, B, B

No.6: 現在乱数位置: CE52h, 初期乱数位置: CE43h
  2体組3回: あと  19回戦闘後に出現, 乱数位置: CE65h, パターン: A, A, A, B, B, B
  2体組4回: あと  20回戦闘後に出現, 乱数位置: CE66h, パターン: A, A, B, B, B, B
  2体組5回: あと  21回戦闘後に出現, 乱数位置: CE67h, パターン: A, B, B, B, B, B
  2体組6回: あと 814回戦闘後に出現, 乱数位置: D180h, パターン: B, B, B, B, B, B

No.7: 現在乱数位置: D952h, 初期乱数位置: D943h
  2体組3回: あと  20回戦闘後に出現, 乱数位置: D966h, パターン: A, A, B, B, A, B
  2体組4回: あと  21回戦闘後に出現, 乱数位置: D967h, パターン: A, B, B, A, B, B
  2体組5回: あと  86回戦闘後に出現, 乱数位置: D9A8h, パターン: B, A, B, B, B, B
  2体組6回: あと 814回戦闘後に出現, 乱数位置: DC80h, パターン: B, B, B, B, B, B

No.8: 現在乱数位置: E452h, 初期乱数位置: E443h
  2体組3回: あと  20回戦闘後に出現, 乱数位置: E466h, パターン: A, A, B, B, A, B
  2体組4回: あと  21回戦闘後に出現, 乱数位置: E467h, パターン: A, B, B, A, B, B
  2体組5回: あと  86回戦闘後に出現, 乱数位置: E4A8h, パターン: B, A, B, B, B, B
  2体組6回: あと 814回戦闘後に出現, 乱数位置: E780h, パターン: B, B, B, B, B, B

候補数: 8件

今後の敵出現予測:
  戦闘回数   通常A 通常B 通常C 通常D   固定A 固定B
     1回目:      8,    0,    0,    0       8,    0
     2回目:      0,    0,    8,    0       0,    8
     3回目:      0,    0,    8,    0       8,    0
     4回目:      8,    0,    0,    0       8,    0
     5回目:      8,    0,    0,    0       8,    0
     6回目:      0,    8,    0,    0       8,    0
     7回目:      8,    0,    0,    0       8,    0
     8回目:      8,    0,    0,    0       8,    0
     9回目:      1,    0,    0,    7       1,    7
    10回目:      8,    0,    0,    0       8,    0

この出力結果から、以下のようなことがわかります。

「2体組6回」を狙うには「あと814回戦闘」する必要があるため厳しすぎますが、「2体組5回」ならば(あと20回程度であれば)現実的な戦闘回数で狙えそうです。とりあえず、もうしばらく戦闘を重ねてみましょう。

そして、さらに9回戦闘してモンスターパーティが"A, C, C, A, A, B, A, A, A"の順番で出現したものとします。ここでもう一度ff6rndencを実行してみます。

> ff6rndenc -a babcdabccaaadabaccaabaaa

入力出現パターン:
  B, A, B, C, D, A, B, C, C, A, A, A, D, A, B, A, C, C, A, A, B, A, A, A

No.1: 現在乱数位置: CE5Bh, 初期乱数位置: CE43h
  2体組3回: あと  10回戦闘後に出現, 乱数位置: CE65h, パターン: A, A, A, B, B, B
  2体組4回: あと  11回戦闘後に出現, 乱数位置: CE66h, パターン: A, A, B, B, B, B
  2体組5回: あと  12回戦闘後に出現, 乱数位置: CE67h, パターン: A, B, B, B, B, B
  2体組6回: あと 805回戦闘後に出現, 乱数位置: D180h, パターン: B, B, B, B, B, B

候補数: 1件

今後の敵出現予測:
  戦闘回数   通常A 通常B 通常C 通常D   固定A 固定B
     1回目:      1,    0,    0,    0       1,    0
     2回目:      0,    1,    0,    0       1,    0
     3回目:      0,    1,    0,    0       1,    0
     4回目:      0,    1,    0,    0       1,    0
     5回目:      0,    0,    1,    0       0,    1
     6回目:      0,    1,    0,    0       1,    0
     7回目:      0,    1,    0,    0       1,    0
     8回目:      0,    1,    0,    0       1,    0
     9回目:      1,    0,    0,    0       1,    0
    10回目:      0,    0,    1,    0       1,    0

候補が1件だけに絞られました。これで予測は確定しました。どうやら、あと12回戦闘すれば「2体組5回」が出現するようです。

(なお、実際には候補を1件まで絞り込む必要はありません。例えば「2体組5回」を狙っている場合ならば、候補が複数あっても「2体組5回」の戦闘回数が同じである状態になれば、予測は確定したことになります)

魔大陸上空での戦闘

敵出現パターンの予測ができたので、あとは予測結果に従って戦闘を重ねれば「2体組5回」のパターンで帝国空軍と遭遇できます。さらに12回戦闘して、ここでセーブします。

ここで、魔大陸上空の6回の戦闘で「2体組」と「3体組」がどのような順番で出現するのか確認しておきましょう。先ほどの出力結果の中で、「2体組5回」の行に「パターン: A, B, B, B, B, B」とあります。この"A"と"B"は、魔大陸上空の戦闘では以下のモンスターパーティに対応します。

つまり、「パターン: A, B, B, B, B, B」の場合、最初の1回は「3体組」が出現して、その後の5回は「2体組」が出現するということになります。

さて、あとは飛空艇に乗って帝国空軍との戦闘を行うだけです。ff6rndencの予測どおりに「2体組5回」のパターンで帝国空軍が出現するはずです。

全滅後、リセットせずにそのまま再開

ff6rndencを使っていると、以下のような表示を見ることがあるでしょう。

> ff6rndenc -a -b0 ccbabbbdcc

入力出現パターン:
  C, C, B, A, B, B, B, D, C, C

No.1: 現在乱数位置: 0842h, 初期乱数位置: 0838h
  2体組3回: あと  30回戦闘後に出現, 乱数位置: 0860h, パターン: A, A, B, A, B, B
          全滅後   3回戦闘後に出現, 乱数位置: 083Dh, パターン: A, A, B, A, B, B
  2体組4回: あと  32回戦闘後に出現, 乱数位置: 0862h, パターン: B, A, B, B, A, B
  2体組5回: あと  62回戦闘後に出現, 乱数位置: 0880h, パターン: B, B, A, B, B, B
  2体組6回: あと 318回戦闘後に出現, 乱数位置: 0980h, パターン: B, B, B, B, B, B

候補数: 1件

「全滅後 3回戦闘後に出現」という表示があります。これは、予測のために戦闘を繰り返している過程の中に「2体組3回」の出現パターンが存在していた場合に表示されます。この場合、すでに「2体組3回」の出現パターンを逃しているわけですが、「全滅後、リセットせずにそのまま再開」することによって、以前セーブした時点からの出現パターンを再現することができます。

この例の場合、次の戦闘でわざと全滅することで、再度"C, C, B, ..."の順番でモンスターパーティが出現します。ここで3回戦闘した後に魔大陸に突入すれば、「2体組5回」のパターンで帝国空軍と遭遇できます。

なお、予測のために戦闘を繰り返している途中でセーブした場合は、この「全滅後 n回戦闘後に出現」の情報は意味のないものになります。

リセットして、全滅後再開

せっかく狙いどおりに「2体組」が出現したのに、戦闘で全滅してしまうこともあるかもしれません。そのような場合は、前述したとおり「全滅後、リセットせずにそのまま再開」することで、再度同じパターンで「2体組」を出すことができます。しかし、全滅後の経験値は全滅前の値を引き継いでいるため、それまでに「2体組」を倒した分の経験値が増えてしまっています。低レベル攻略の場合、これでは非常に困ります。

このような場合は、リセットして(セーブデータをロードして)その直後の戦闘で全滅することで、再度同じパターンで「2体組」を出すことができます。おそらく、セーブ時には「乱数の現在位置」が記録されているのに、ロード時にはセーブデータの「乱数の現在位置」を使用していないのだと思われます。

敵出現予測の原理

ここでは、モンスターの出現予測がどのような原理によってできるのかを説明します。

モンスター出現アルゴリズム

ファイナルファンタジーVIで、通常のランダムエンカウントの際には最大4種類のモンスターパーティの中から出現するモンスターが決まります。そして、4種類のパーティのどれが選択されるかを決めるために乱数が使用されています。フィガロ周辺の砂漠に出現するモンスターを例にして説明すると、以下のようになります。

4種類のパーティが選択される確率(通常エンカウント)
乱数値 確率 モンスターパーティ
A 00〜4f 80/256 (31.25%) デザートソーサー 2
B 50〜9f 80/256 (31.25%) アラクラン 3
C a0〜ef 80/256 (31.25%) デザートソーサー, アラクラン 2
D f0〜ff 16/256 (6.25%) デザートソーサー, アラクラン 3

では、魔大陸上空に出現する帝国空軍のモンスターの場合はどのような出現アルゴリズムになっているのでしょうか。これは通常のランダムエンカウントの場合とは異なっていて、最大2種類のモンスターパーティの中から出現するモンスターが決まります。

2種類のパーティが選択される確率(固定敵エンカウント)
乱数値 確率 モンスターパーティ
A 00〜bf 192/256 (75%) スカイアーマー 2, スピットファイア
B c0〜ff 64/256 (25%) スカイアーマー, スピットファイア

これ以外のモンスターパーティの組み合わせについては、『ff_analyzer - ファイナルファンタジーIV〜VI データ解析プログラム』の『モンスターのエンカウントテーブルデータ(VI)(ff6monenc.txt)』や『モンスターのエンカウントマップデータ(VI)(ff6monmap.txt)』をご覧ください。

乱数生成アルゴリズム

さて、モンスターパーティを選択する際に使用している乱数は、具体的にはどのようにして得られるのでしょうか。詳細なアルゴリズムについては後述するとして(『技術資料』参照)、便宜上、0〜255までの数値を65536個並べた「乱数表」が存在していて、その乱数表から順番に値を取り出していると考えてかまいません(乱数を1回使用するごとに、乱数表中の「現在位置」が1つ進む)。以下に実際の乱数表を示します。

「乱数」とはいえ、どのような順番でどのような値が出現するかは完全に決まっていることがわかると思います。

出現予測

以上の説明を踏まえて、モンスター出現予測の原理を説明します。

まず、「乱数」の値によってどのモンスターパーティが出現するかが決まることは前述しました。そして、「乱数」がどのような順番でどのような値をとるかは「乱数表」によって判明しています。よって、どのような順番でどのようなモンスターパーティが出現するかは簡単に予測できます。以下にモンスターパーティの出現順番表を示します。

これだけわかっていれば、すぐにでもモンスター出現予測ができそうに思えますが、大きな問題があります。それは、(モンスターパーティを選択する際に使用している)乱数の「現在位置」がわからないことです。リセットしてセーブデータをロードした時点で"0000"の位置から始まる――のであれば楽なのですが、それほど簡単にはいきません。

そこで、「何度か戦闘して出現パターンを記録しておき、表の中から合致する箇所を見つける」という方法を使うことで、乱数の現在位置を検索します。

例えば、"A, C, B, B, D"の順番でモンスターが出現したとします。ここで、通常エンカウント時のモンスターパーティの出現順番表の中から合致する箇所を探すと、最初に"0009〜000d"の箇所が合致します。ということは、乱数の現在位置が"000e"である可能性があることになります。もちろん、表の中には他にも合致する箇所があるため、現時点では"000e"は可能性の一つであるとしか言えません。この場合、すべての箇所を検索すると、"000e"を含めて28件の候補が見つかります。出現パターンをもっと「長く」すれば候補が絞れることは、『実際の使い方』の例にあるとおりです。

この「出現パターンに合致する区間を表の中から検索する」という処理が、ff6rndencで行っている処理です。実のところ、ff6rndencで行っていることは、「モンスター出現予測」というよりは「乱数の現在位置予測」と言っても過言ではありません。

技術資料

スーパーファミコン版『ファイナルファンタジーVI』における、実際のモンスター出現関連の処理(アセンブリ言語)は以下のようになります。

; 固定モンスター出現の際にどのモンスターパーティを選択するか
;   $CF5000:    固定モンスターのモンスターパーティテーブル(1024バイト)
L00A4DC:
        LDA     $EB
        REP     #$20
        ASL     A
        ASL     A
        TAX
        TDC
        SEP     #$20
        JSR     $C3C8       ; 乱数生成サブルーチンにジャンプする
        CMP     #$C0        ; 乱数値と$C0(192)とを比較する
        BCC     $A4EF       ; 乱数値が$C0(192)未満であればジャンプする

        INX                 ;
        INX                 ; モンスターパーティの番号を1つ進める

L00A4EF:
        REP     #$20
        LDA     $CF5000,X   ; 出現するモンスターパーティの番号を読み込む
        STA     $0011E0
        TDC
        SEP     #$20
        LDA     $EC
        AND     #$C0
        STA     $078A
        LDA     $EC
        AND     #$3F
        CMP     #$3F
        BNE     $A510

        LDA     $0522
        AND     #$7F

L00A510:
        STA     $0011E2
        TDC
        STA     $0011E3
        LDA     $1ED7
        AND     #$10
        LSR     A
        STA     $0011E4
        LDA     #$01
        STA     $56
        RTS
; ランダムエンカウントの際にどのモンスターパーティを選択するか
;   $CF4800:    ランダムエンカウントモンスターのモンスターパーティテーブル(2048バイト)
L00C15D:
        CMP     $1F6F
        BCS     $C1AA

        STZ     $1F6E
        STZ     $1F6F
        LDA     $24
        CMP     #$FF        ; $ff(255)は獣ヶ原を意味する
        BNE     $C171       ; $ff(255)でなければ通常のモンスターパーティ選択処理にジャンプする

        JMP     $C211       ; 獣ヶ原のモンスターパーティ選択処理にジャンプする

L00C171:
        REP     #$20
        ASL     A
        ASL     A
        ASL     A
        TAX
        TDC
        SEP     #$20
        JSR     $C3C8       ; 乱数生成サブルーチンにジャンプする
        CMP     #$50        ; 乱数値と$50(80)とを比較する
        BCC     $C18F       ; 乱数値が$50(80)未満であればジャンプする

        INX
        INX
        CMP     #$A0        ; 乱数値と$A0(160)とを比較する
        BCC     $C18F       ; 乱数値が$A0(160)未満であればジャンプする

        INX
        INX
        CMP     #$F0        ; 乱数値と$F0(240)とを比較する
        BCC     $C18F       ; 乱数値が$F0(240)未満であればジャンプする

        INX
        INX

L00C18F:
        REP     #$20
        LDA     $CF4800,X   ; 出現するモンスターパーティの番号を読み込む
        STA     $0011E0
        TDC
        SEP     #$20
        LDA     $1ED7
        AND     #$10
        LSR     A
        STA     $0011E4
        LDA     #$01
        BRA     $C1AB

L00C1AA:
        TDC

L00C1AB:
        PHA
        JSR     $0505
        PLA
        RTL
; 獣ヶ原での敵出現の際にどのモンスターパーティを選択するか
;   $1DDD:  モンスターパーティに遭遇したことがあるかどうかを示すフラグ?(64バイト)
;   $1FA5:  現在のモンスターグループ(1バイト)
L00C211:
        INC     $1FA5
        LDA     $1FA5
        AND     #$3F        ; 64種類のモンスターグループの中から選択される
        TAX

L00C21A:
        LDA     $1DDD,X
        BNE     $C226       ; 遭遇したことのあるモンスターパーティが含まれていればジャンプする

        TXA
        INC     A
        AND     #$3F
        TAX
        BRA     $C21A

L00C226:
        STA     $1A
        TXA
        STA     $1FA5
        REP     #$20
        ASL     A           ;
        ASL     A           ;
        ASL     A           ; モンスターグループの番号を8倍した値が、モンスターパーティの番号(の基本値)になる
        STA     $1E
        TDC
        SEP     #$20
        JSR     $C3C8       ; 乱数生成サブルーチンにジャンプする
        AND     #$07        ; 乱数値の下位3ビットのみ使用する
        TAX

L00C23C:
        LDA     $1A
        AND     $C0BA31,X   ; ($C0BA31以降の内容は、$01, $02, $04, $08, $10, $20, $40, $80)
        BNE     $C24B       ; 遭遇したことのあるモンスターパーティであればジャンプする

        TXA
        INC     A
        AND     #$07
        TAX
        BRA     $C23C

L00C24B:
        REP     #$21
        TXA
        ADC     $1E
        STA     $0011E0
        TDC
        SEP     #$20
        PHA
        JSR     $0505
        PLA
        LDA     #$01
        RTL
; どのモンスターパーティが出現するかを選択する際の乱数生成ルーチン
;   $1FA2:      乱数テーブル内の現在位置(1バイト)
;   $1FA3:      乱数テーブルの値に加算する値(1バイト)
;   $C0FD00:    乱数テーブル(256バイト)
L00C3C8:
        PHX
        INC     $1FA2
        BNE     $C3D7

        LDA     $1FA3
        CLC
        ADC     #$17
        STA     $1FA3

L00C3D7:
        LDA     $1FA2
        TAX
        LDA     $C0FD00,X
        CLC
        ADC     $1FA3
        PLX
        RTS

乱数生成ルーチンで使用している乱数テーブルの内容は、以下のようになっています。

; 乱数表
L00FD00:
        DB      $07 $B6 $F0 $1F $55 $5B $37 $E3 $AE $4F $B2 $5E $99 $F6 $77 $CB
        DB      $60 $8F $43 $3E $A7 $4C $2D $88 $C7 $68 $D7 $D1 $C2 $F2 $C1 $DD
        DB      $AA $93 $16 $F7 $26 $04 $36 $A1 $46 $4E $56 $BE $6C $6E $80 $D5
        DB      $B5 $8E $A4 $9E $E7 $CA $CE $21 $FF $0F $D4 $8C $E6 $D3 $98 $47
        DB      $F4 $0D $15 $ED $C4 $E4 $35 $78 $BA $DA $27 $61 $AB $B9 $C3 $7D
        DB      $85 $FC $95 $6B $30 $AD $86 $00 $8D $CD $7E $9F $E5 $EF $DB $59
        DB      $EB $05 $14 $C9 $24 $2C $A0 $3C $44 $69 $40 $71 $64 $3A $74 $7C
        DB      $84 $13 $94 $9C $96 $AC $B4 $BC $03 $DE $54 $DC $C5 $D8 $0C $B7
        DB      $25 $0B $01 $1C $23 $2B $33 $3B $97 $1B $62 $2F $B0 $E0 $73 $CC
        DB      $02 $4A $FE $9B $A3 $6D $19 $38 $75 $BD $66 $87 $3F $AF $F3 $FB
        DB      $83 $0A $12 $1A $22 $53 $90 $CF $7A $8B $52 $5A $49 $6A $72 $28
        DB      $58 $8A $BF $0E $06 $A2 $FD $FA $41 $65 $D2 $4D $E2 $5C $1D $45
        DB      $1E $09 $11 $B3 $5F $29 $79 $39 $2E $2A $51 $D9 $5D $A6 $EA $31
        DB      $81 $89 $10 $67 $F5 $A9 $42 $82 $70 $9D $92 $57 $E1 $3D $F1 $F9
        DB      $EE $08 $91 $18 $20 $B1 $A5 $BB $C6 $48 $50 $9A $D6 $7F $7B $E9
        DB      $76 $DF $32 $6F $34 $A8 $D0 $B8 $63 $C8 $C0 $EC $4B $E8 $17 $F8

今後の予定

魔導研究所でのマグナローダーズの出現パターン解析

低レベル攻略における重要ポイントであるマグナローダーズとの戦闘ですが、ここでの出現パターンも謎が多いことで知られています。このあたりの謎をプログラム解析により解明して、出現パターン予測を可能にしたいものです。

敵出現までに要する「歩数」の予測

魔大陸におけるニンジャや、フェニックスの洞窟のフェイズなどの逃げられないモンスターは、低レベル攻略においてやっかいな存在です。これらのモンスターの出現パターンを予測してエンカウントを避けることは、今のff6rndencでも(『敵出現予測の原理』を理解していれば)じゅうぶん可能です。しかし、敵出現までに要する「歩数」がわからないことには、完全にエンカウントを避けることは難しいでしょう。このあたりについてもある程度は調べているのですが……。

GUI版の作成

誰か作ってくれませんかね。

おわりに

くれぐれも、実行結果を盲信しないでください。例によって、私自身はプログラムのテストも実行結果の検証もほとんどやっていません。何か不具合があったならばご連絡ください。

本プログラム・本ドキュメントの著作権は、遠藤慎悟<s-endo@yk.rim.or.jp>(以下、原作者)にあります。

なお、原作者は本プログラムに関していかなる保証も行いません。同様に、本ドキュメント・本プログラムの出力結果の内容の正当性についてもいかなる保証も行いません。また、本プログラムを利用したことによって生起したいかなる損害に対する責任も負わないものとします。

履歴

最終更新

2001-12-30

更新履歴

2001-12-02

Author: Shingo Endo <s-endo@yk.rim.or.jp>
Last Updated: 2001-12-30
Copyright ©2001 Shingo Endo