128×128を超えるモンスターの表示方法
FF5で128×128を超える画像を持っているモンスターはネオエクスデスです。
ちなみにネオエクスデス戦のパーティ構成は
ちなみにネオエクスデス戦のパーティ構成は
番号 | 名称 | 備考 | パレット割り当て |
No.1 | ネオエクスデス | (画像受け持ち1:通称ダミー) | [00] |
No.2 | ネオエクスデス | (画像受け持ち2:通称ダミー) | [01] |
No.3 | エクスデス | ---- | [02] |
No.4 | ( ) | 本体1 | [02] |
No.5 | ( ) | 本体2 | [02] |
No.6 | ( ) | 本体3 | [02] |
No.7 | ( ) | 本体4 | [02] |
というようになっていて、ダミーがネオエクスデスの画像をそれぞれ受け持っています。
なので、128×128を超えるモンスターを表示させるにはダミーを複数用意し、
それらのダミーに画像を割り当てた後に、本体のモンスターを用意すればOKです。
それらのダミーに画像を割り当てた後に、本体のモンスターを用意すればOKです。
※主な注意点(後者は違和感を減らす場合)
- モンスターパーティー情報の1Byte目(視覚関係)のbit5を1に(+0x20)して
一部のモンスター(モンスター1,2)にカーソルを当てられないようにする
- あるモンスターが動いた時にモンスター1,2が点滅するようにする。
具体的には7EDBE4≠0にする。(ネオエクスデス処理に含まれる)
- 013031辺りでモンスター数を表示しないためのプログラムがあります。
ダミーモンスターが増える場合は、
ここのモンスターパーティ比較を付け加えると自然になります。
ここのモンスターパーティ比較を付け加えると自然になります。
16色を超えるモンスターの表示方法(32色・48色・64色)
基本的は128×128を超えるモンスターを出現させる処理と同じです。
※8×8のチップが16色を超えている場合は表示できません。
※8×8のチップが16色を超えている場合は表示できません。
- 64色での例
番号 | 名称 | 備考 | パレット割り当て |
No.1 | モンスター名 | ダミー1 | [00] |
No.2 | ( ) | ダミー2 | [01] |
No.3 | ( ) | ダミー3 | [02] |
No.4 | ( ) | ダミー4 | [03] |
No.5 | ( ) | 本体 | [03] |
オリジナルのままだと、モンスターNo.1,No.2に関しては
カーソルを当てられないようにできますが、
それ以降のモンスターについては設定できません。
010573付近にプログラムがあるので、JSL等でモンスターパーティ毎で個別で設定できるようにすれば、
自由に変えられるようになります。
カーソルを当てられないようにできますが、
それ以降のモンスターについては設定できません。
010573付近にプログラムがあるので、JSL等でモンスターパーティ毎で個別で設定できるようにすれば、
自由に変えられるようになります。
(例)
DA | PHX |
AE F0 04 | LDX $04F0(MonPartyID) |
BF xx yy zz | LDA $zzyyxx,x |
8D E1 DB | STA $DBE1 |
FA | PLX |
6B | RTL |
なお、オリジナルでは
LDA #$3F(No.1:#$80,No.2:#$40... ; カーソルを当てられるかどうか)
STA $DBE1
となっています。
LDA #$3F(No.1:#$80,No.2:#$40... ; カーソルを当てられるかどうか)
STA $DBE1
となっています。
モンスター関係
0ED000-0EF26F | : | モンスターの色RGB[2Bytes * 8 * 551] |
0EF270-0EF3FF | : | 未使用00 |
: | ||
100000-102FFF | : | モンスターステータス[32Bytes * 384] 102000-ボス |
103000-104FFF | : | モンスターパーティ[16Bytes * 512] 104B10-ボス |
105000-105FFF | : | モンスター盗む&落とすアイテム[4BYTE * 384] |
105600-105BFF | : | モンスターあやつるコマンド[4BYTE * 384] |
105C00-1067FF | : | モンスター名[8BYTE * 384] |
106800-106FFF | : | モンスターエンカウント(ランダム) |
: | ||
107800-1079FF | : | モンスターエンカウント(固定) |
107A00-107FFF | : | モンスターエンカウントマップ |
108000-1083FF | : | モンスターエンカウントマップ(ダンジョン) |
108400-1084BF | : | エンカウント数 増加設定(フィールド * 3)(*1) |
1084C0-1085BF | : | エンカウント数 増加設定(サブマップ * 1024)(*1) |
1085C0-1085FF | : | 未使用領域? |
108600-1086FF | : | モンスター放つ[1BYTE * 256] |
108700-1088FF | : | モンスターとくいわざ名[8BYTE * 100] |
108900-1098FF | : | モンスター画面座標[8BYTE * 512] |
109900-109BFF | : | モンスター得意技[2BYTE * 384] |
109C00-109EFF | : | モンスター行動 オフセット[2BYTE * 384] |
109F00-10C7FF | : | モンスター:行動 |
: | ||
10D000-10D003 | : | モンスター画像パターン オフセット[2BYTE * 2] |
10D004-10D333 | : | モンスター画像パターン(サイズ小)[8BYTE * 102] |
10D334- | : | モンスター画像パターン(サイズ大)[32BYTE * ] |
: | ||
10F000-10F1D3 | : | モンスターメッセージ オフセット[2BYTE * 134] |
10F1D4- | : | モンスターメッセージ |
: | ||
10FFE0- | : | モンスターパーティ (フラグ前後の変化、ラムウ・カトブレパスなど) |
: | ||
14B180-14B8FF | : | モンスター画像entry[5Bytes * 384] |
: | 1b:圧縮フラグ,15b:画像アドレス | |
: | 1b:大きさ,1b:影フラグ,4b:未使用 | |
: | 2b:色ID上位,1B:色ID下位,1B:形ID | |
: | ||
150000-182DD7 | : | モンスターグラフィック等[3,4BPP SNES形式] |
182DD8-182FFF | : | (空き領域?) |
(*1)エンカウント数の増加について(通称危険度?)
- フィールドの場合
32×32の区域ごとに設定可能。2bitずつで各地形に対応しています。
bit0-1:[海]
bit2-3:[砂漠]
bit4-5:[森]
bit6-7:[平地]
bit0-1:[海]
bit2-3:[砂漠]
bit4-5:[森]
bit6-7:[平地]
- サブマップの場合
bit0-1:[サブマップ00]
bit2-3:[サブマップ01]
bit4-5:[サブマップ02]
bit6-7:[サブマップ03]
…の順で設定。サブマップ04以降は次のバイトへ移っていきます。
bit2-3:[サブマップ01]
bit4-5:[サブマップ02]
bit6-7:[サブマップ03]
…の順で設定。サブマップ04以降は次のバイトへ移っていきます。
エンカウント数とは1歩歩いたときに加算されていく値で、
値が大きいほど敵が出やすくなります(乱数との比較処理のため)。
サブマップの場合では、00CB09-00CB10で設定されている値
フィールドの場合では、00CC4A-00CC4Fで設定されている値だけ増加していきます。
値が大きいほど敵が出やすくなります(乱数との比較処理のため)。
サブマップの場合では、00CB09-00CB10で設定されている値
フィールドの場合では、00CC4A-00CC4Fで設定されている値だけ増加していきます。
数値 | (サブマップ)増加値/歩 | (フィールド)増加値/歩 |
0 | +0.875 | +1.0 |
1 | +0.25 | +0.0625 |
2 | +1.5 | +1.5 |
3 | +2.0 | エンカウントしない(+0.0) |