アットウィキロゴ

リアルタイムエンカウント

カウントダウン初期値は#$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バイトのインデックスを示す。

処理

  1. $74, $75にエンカウントテーブルのアドレスを設定する
  2. Aにエンカウントテーブルのインデックス番号を設定する
  3. $DDACを呼ぶ

例えばバンク1(地下街ハンク)の1FでAに0を指定して$DDACを呼び出されると、
2~3匹のラットと0~1匹のきょうけんが出現する。
その際のパレットは5バイト目が0なので、以下のデータを使用する。
  • BGパレットは$B940からの16バイト
  • スプライトパレットは$BA00からの16バイト
最終更新:2025年10月16日 22:00