リアルタイムエンカウント
カウントダウン初期値は#$60
フレームごとにカウントダウンしていき、0になった時点でエンカウントするかどうかの処理が行われる。
出現する敵の種類
バンク1~8の$B880から保存される
種類数は可変
| 00 |
ラット |
| 01 |
スライム |
| 02 |
アント |
| 03 |
セントピード |
| 04 |
どくぐも |
| 05 |
きょうけん |
| 06 |
グリズリー |
| 07 |
がいこつ |
| 08 |
えいへい1 |
| 09 |
ゾンビ |
| 0A |
えいへい2 |
| 0B |
コボルド |
| 0C |
ゴブリン |
| 0D |
ゴブリン2 |
| 0E |
ゴブリン1 |
| 0F |
おおかみおとこ |
| 10 |
リザードマン |
| 11 |
シルフ |
| 12 |
アサッシン |
| 13 |
とうのへいし |
| 14 |
とうのへいし2 |
| 15 |
とうのへいし3 |
| 16 |
ハーピー |
| 17 |
しのばんけん |
| 18 |
デスアイ |
| 19 |
バブーン1 |
| 1A |
セントール2 |
| 1B |
セントール1 |
| 1C |
ジャイアント |
| 1D |
バンパイア |
| 1E |
バブーン2 |
| 1F |
つかいま1 |
| 20 |
つかいま2 |
| 21 |
ゴーゴン |
| 22 |
キマイラ |
| 23 |
ドワーフ |
| 24 |
キャットマン |
| 25 |
ワイバーン |
| 26 |
デーモン1 |
| 27 |
デーモン2 |
| 28 |
くろいりゅう |
| 29 |
レイス |
| 2A |
しんえいたい1 |
| 2B |
しんえいたい2 |
| 2C |
あかいりゅう |
| 2D |
ハイデーモン1 |
| 2E |
ハイデーモン2 |
| 2F |
ハイプリースト1 |
| 30 |
ハイプリースト2 |
| 31 |
ゴーレム |
| 32 |
バグアイ |
| 33 |
バグホーン |
| 34 |
ダムドール |
| 35 |
ゾゼム |
| 36 |
バーザス |
| 37 |
デスマスター |
| 38 |
リーザ |
| 39 |
トワイライト |
例えばバンク1(地下街ハンク1F/2F)では以下のように設定されている。
L_01_B880:
DB $06 ; 敵:グリズリー
DB $00 ; 敵:ラット
DB $05 ; 敵:きょうけん
DB $03 ; 敵:セントピード
DB $01 ; 敵:スライム
DB $02 ; 敵:アント
DB $04 ; 敵:どくぐも
DB $07 ; 敵:がいこつ
DB $09 ; 敵:ゾンビ
DB $08 ; 敵:えいへい1
DB $0A ; 敵:えいへい2
DB $32 ; 敵:バグアイ
DB $33 ; 敵:バグホーン
敵グラフィック用パレット
バンク1~8で共通のアドレスを使用する。
- $B940(BGパレット)
- $BA00(スプライトパレット)
エンカウントテーブル
各5バイト
1バイト目=剣士のレベル
2~4バイト目=上4bit:種類、下3bit:数決定方法
5バイト目=パレット
例えばバンク1(地下街ハンク)の1Fでは以下のように設定されている。
L_01_B88D:
; 00
DB $04 ; 剣士のレベル
DB $16 ; 1:ラット、6:(2~3の乱数)匹
DB $24 ; 2:きょうけん、4:(0~1の乱数)匹
DB $00
DB $00
; 01
DB $02 ; 剣士のレベル
DB $37 ; 3:セントピード、7:(1~4の乱数)匹
DB $00
DB $00
DB $02
(以下略)
種類
$B880からのオフセットで指定する。
数決定方法
| 1 |
1匹 |
| 2 |
2匹 |
| 3 |
3匹 |
| 4 |
(0~1の乱数)匹 |
| 5 |
(1~2の乱数)匹 |
| 6 |
(2~3の乱数)匹 |
| 7 |
(1~4の乱数)匹 |
パレット
$B940(BGパレット), $BA00(スプライトパレット)から各16バイトのインデックスを示す。
処理
- $74, $75にエンカウントテーブルのアドレスを設定する
- Aにエンカウントテーブルのインデックス番号を設定する
- $DDACを呼ぶ
例えばバンク1(地下街ハンク)の1FでAに0を指定して$DDACを呼び出されると、
2~3匹のラットと0~1匹のきょうけんが出現する。
その際のパレットは5バイト目が0なので、以下のデータを使用する。
- BGパレットは$B940からの16バイト
- スプライトパレットは$BA00からの16バイト
最終更新:2025年10月16日 22:00