基礎知識
戦闘関係
このページには、ゲームデータ部分(ROM領域)内の、特に重要な基礎データ(バンク$D5及び$D6に入っているデータ)の一覧を掲載する。
頭に$がついている値は16進数、%がついている値は2進数。
1バイト内に8ビットのON・OFFデータを格納する場合、状態異常と属性は以下に対応している。複数の状態異常や属性のデータを格納したい場合(キャラ固有の無効状態異常や回避属性の設定など)に用いられる。
| 2進法の位 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
|---|---|---|---|---|---|---|---|---|
| 状態異常 | 石化 | 酔い | 眠り | マヒ | 毒 | 腕かため | 足かため | 首かため |
| 属性1 | 手 | 足 | 突 | 鋭 | 鈍 | 締 | 飛 | 背 |
| 属性2 | 火 | 水 | 風 | 土 | 精 | 善 | 悪 | 無 |
以下、「状態異常(8ビット)」「属性1(8ビット)」「属性2(8ビット)」と表記する場合は上表に対応する。
例えば「状態異常(8ビット)」は、1バイトで8種類の状態異常のON・OFFを表し、例えば「$A1」であれば2進数「%1010 0001」だから、石化・眠り・首かためがONで、それ以外はOFFの意味である。
属性1つだけを表す場合(技の属性など)は、4バイト(16進数1文字分)で以下表記が使われることもある。
| 属性 | 数値 |
|---|---|
| 手 | $0 |
| 足 | $1 |
| 突 | $2 |
| 鋭 | $3 |
| 鈍 | $4 |
| 締 | $5 |
| 飛 | $6 |
| 背 | $7 |
| 火 | $8 |
| 水 | $9 |
| 風 | $A |
| 土 | $B |
| 精 | $C |
| 善 | $D |
| 悪 | $E |
| 無 | $F |
アドレス:$D5:00C0~$D5:04CA
ID$00~$16までの23キャラ分。1キャラにつき00~44の45バイト分のデータ。
各データの補足は表の下にある。
| No. | 内容 |
|---|---|
| 00 | HP 初期値 *$80以上の時は、実際のHP = (味方キャラデータ00 & $7F) * $10 |
| 01 | 力 初期値 |
| 02 | 速 初期値 |
| 03 | 体 初期値 |
| 04 | 知 初期値 |
| 05 | 技 レベル00(技ID) |
| 06 | 技 レベル01(技ID) |
| 07 | 技 レベル02(技ID) |
| 08 | 技 レベル03(技ID) |
| 09 | 技 レベル04(技ID) |
| 10 | 技 レベル05(技ID) |
| 11 | 技 レベル06(技ID) |
| 12 | 技 レベル07(技ID) |
| 13 | 技 レベル08(技ID) |
| 14 | 技 レベル09(技ID) |
| 15 | 技 レベル10(技ID) |
| 16 | 技 レベル11(技ID) |
| 17 | 技 レベル12(技ID) |
| 18 | 技 レベル13(技ID) |
| 19 | 技 レベル14(技ID) |
| 20 | 技 レベル16(技ID) |
| 21 | レベルアップ時 力上昇値(※計算方法は表の下) |
| 22 | レベルアップ時 速上昇値(※計算方法は表の下) |
| 23 | レベルアップ時 体上昇値(※計算方法は表の下) |
| 24 | レベルアップ時 知上昇値(※計算方法は表の下) |
| 25 | レベル 初期値 |
| 26 | 装備可能(上4ビット:タイプ/下4ビット:種類) |
| 27 | レベルアップ時 HP上昇値(※計算方法は表の下) |
| 28 | 無効状態異常(8ビット) |
| 29 | 上4ビット:背後補正/下4ビット:側面補正 |
| 30 | 回避属性1(8ビット) |
| 31 | 回避属性2(8ビット) |
| 32 | 頭 初期装備(アイテムID) |
| 33 | 右 初期装備(アイテムID) |
| 34 | 左 初期装備(アイテムID) |
| 35 | 体 初期装備(アイテムID) |
| 36 | 足 初期装備(アイテムID) |
| 37 | アクセサリ1 初期装備(アイテムID) |
| 38 | アクセサリ2 初期装備(アイテムID) |
| 39 | アクセサリ3 初期装備(アイテムID) |
| 40 | アクセサリ4 初期装備(アイテムID) |
| 41 | アクセサリ5 初期装備(アイテムID) |
| 42 | (全キャラ$00) |
| 43 | (全キャラ$00) |
| 44 | 最終編追加レベル |
| ID | キャラクター名 |
|---|---|
| 00 | オルステッド |
| 01 | ストレイボウ |
| 02 | ウラヌス |
| 03 | ハッシュ |
| 04 | ポゴ |
| 05 | ゴリ |
| 06 | べる |
| 07 | ざき |
| 08 | 心山拳老師 |
| 09 | ユン・ジョウ |
| 0A | レイ・クウゴ |
| 0B | サモ・ハッカ |
| 0C | サンダウン |
| 0D | マッドドッグ |
| 0E | おぼろ丸 |
| 0F | とらわれの男 |
| 10 | 高原 日勝 |
| 11 | アキラ |
| 12 | タロイモ |
| 13 | 無法松 |
| 14 | キューブ |
| 15 | キャプテンS |
| 16 | カラクリ丸 |
順に、レベルアップ時の力上昇値/速上昇値/体上昇値/知上昇値(上限値と下限値)を計算するための値が入っている。
実際のゲーム内では、下限値を「基本値」として、「加算値」に乱数を掛けた数値が基本値に加えられてレベルアップ時のステータス上昇値が決まる。
「基本値」+「加算値」が最大になる時が上限値ということになる。
これらの値は、ゲーム内でレベルアップしないキャラにも設定されている。
計算方法は共通で、
下限値 = データ値の上4ビット = trunc(データ値 & $F0 / $10)
上限値 = max(下限値 + データ値の下4ビット-1, 0) = max(下限値 + データ値 & $0F -1, 0)
例:
高原日勝は、味方キャラデータ21~24に$52, $42, $11, $01と値が入っているので、
| 能力 | 下限値 | 上限値 |
|---|---|---|
| 力 | trunc($52 & $F0 / $10) = $5 | max($5 + $52 & $0F -1, 0) = $6 |
| 速 | trunc($42 & $F0 / $10) = $4 | max($4 + $42 & $0F -1, 0) = $5 |
| 体 | trunc($11 & $F0 / $10) = $1 | max($1 + $11 & $0F -1, 0) = $1 |
| 知 | trunc($01 & $F0 / $10) = $0 | max($0 + $01 & $0F -1, 0) = $0 |
力は5~6、速は4~5、体は1、知は0となる。
レベルアップ時のHP上昇値(上限値と下限値)を計算するための値が入っている。
ゲーム内でレベルアップしないキャラにも設定されている。
上2ビットに計算方法パターン、下6ビットに計算用の数値が入る。
便宜上、下の表では味方キャラデータ27の下6ビットの値を、「計算値」とする。
x, yは計算に使うための変数。
xが基礎値、yが加算値のようなもので、基礎値に加算値を加えて上昇値とするのだが、加算値には乱数でブレを生じさせる仕組みである。
| 上2ビット | 基礎値x | 加算値y |
|---|---|---|
| %00 | 計算値 | trunc(計算値/2) |
| %01 | 計算値 | 計算値 |
| %10 | trunc(計算値/2) | 計算値 |
| %11 | 0 | 計算値 |
HP上昇の下限値は、
下限値 = x
HP上昇の上限値は、
上限値 = x + trunc(y * $FF / $100)
= x + max(y - 1, 0)
このように計算される。
例:オルステッド
味方キャラデータ27 = $1A = %0001 1010
下6ビット = %0001 1010 = $1A(10進法26)
上2ビット = %00
下限値 = 味方キャラデータ27の下6ビット
= $1A(10進法26)
上限値 = max($1A + trunc($1A/2)-1, 0)
= max($1A + $0D - 1, 0)
= max($26, 0)
= $26(10進法38)
よってレベルアップ時のHP上昇値は26~38となる。
装備可能な装備種類とタイプの値が入っている。
装備アイテムに該当の装備種類やタイプが設定されている場合、キャラ側にも同じ装備種類とタイプが設定されていないと装備できない。
また、装備変更時に参照する値であり、初期装備には関係しない。
よって、とらわれの男は装備種類が「銃」にもかかわらず、装備種類「刀」の「ヨシユキ」が初期装備になっている。
データ集 > 装備 > 装備種類/タイプも参照。
タイプ:上4ビット
以下4ビットを加算した値が入る。該当しない場合は%0000が入る。
また、重装かつ超能(%1001)の時は「勇者」、特殊かつ重装(%1100)の時は「野性」も追加になる。
「勇者」は実質、ハッシュ専用「ブライオン」(アイテムID23)と、オルステッドも装備可能な「ブライオン」(アイテムID24)のためにある分類だが、データ上では一応、カラクリ丸も重装かつ超能のために「勇者」フラグが付くことになる。
| 上4ビット | タイプ |
|---|---|
| %0001 | 超能 |
| %0010 | 女性 |
| %0100 | 特殊 |
| %1000 | 重装 |
装備種類:下4ビット
どのキャラも以下のいずれかの値が入る。
ゴリは原始編での装備がかなり限られているが、装備種類を「ロボ」に設定することで制限をかけている(よって装備種類の名称とキャラが必ずしも一致するとは限らない)。
| 下4ビット | 装備種類 |
|---|---|
| $6 | 銃 |
| $7 | 杖 |
| $8 | 日用品 |
| $9 | 野性武器 |
| $A | 刀 |
| $B | グローブ |
| $C | 剣 |
| $D | ロボ |
例:
ポゴの味方キャラデータ26の値は「$C9」。
$C9 = $1100 1001
上4ビットが$1100なので、タイプは特殊・重装・野性。
下4ビットが$9なので、装備種類は野性武器。
アドレス:$D5:04CB~$D5:24CA
ID$00~$FFまでの256キャラ分。1キャラにつき00~31の32バイト分のデータ。
各データの補足は表の下にある。
| No. | 内容 |
|---|---|
| 00 | 移動パターン |
| 01 | 上4ビット:フィールド吸収/下4ビット:移動頻度 |
| 02 | (データアドレス呼び出しの値) |
| 03 | (データアドレス呼び出しの値) |
| 04 | HP *$80以上の時は、実際のHP = (敵データ04 & $7F) * $10 |
| 05 | 力 |
| 06 | 速 |
| 07 | 体 |
| 08 | 知 |
| 09 | 上1ビット:使用技を敵技IDから取得するなら0、味方技IDから取得するなら1/下7ビット:レベル |
| 10 | 無効状態異常(8ビット) |
| 11 | 使用技1 技ID 敵データ09上1ビットが0なら敵技ID/1なら味方技ID、以下敵データ14まで同じ |
| 12 | 使用技2 技ID |
| 13 | 使用技3 技ID |
| 14 | 使用技4 技ID |
| 15 | タイプ |
| 16 | カウンター行動異常 手/足(行動異常IDがそれぞれ上4ビット・下4ビットに入る。以下No.23まで同じ) |
| 17 | カウンター行動異常 突/鋭 |
| 18 | カウンター行動異常 鈍/締 |
| 19 | カウンター行動異常 飛/背 |
| 20 | カウンター行動異常 火/水 |
| 21 | カウンター行動異常 風/土 |
| 22 | カウンター行動異常 精/善 |
| 23 | カウンター行動異常 悪/無 ※下1桁(4ビット)はそのまま種族の値。 |
| 24 | ドロップアイテム1(アイテムID) |
| 25 | ドロップアイテム2(アイテムID) |
| 26 | ドロップアイテム3(アイテムID) |
| 27 | ※未使用データ |
| 28 | ※未使用データ |
| 29 | 上4ビット:背後補正/下4ビット:側面補正 |
| 30 | 回避属性1(8ビット) |
| 31 | 回避属性2(上7ビット)/下1ビットはダメージフィールド無効だと%1 |
上4ビットのフィールド吸収は、以下合計値で表す。$0だとフィールド吸収なし。
フィールド無効かどうかは敵データ31の下1ビットに入る($1だと無効)。
| 値 | フィールド |
|---|---|
| $1 | 電 |
| $2 | 火 |
| $4 | 毒 |
| $8 | 水 |
タイプについてのデータが入っている。
タイプがNAMEだと、倒した人数に応じて固有名称が変化する。
幕末編のザコ敵が対象だが、最終編のザビエールも含まれている(ザビエールは名前変化しない)
下の4種類以外の、タイプなしの敵とNAMEの敵は、戦闘初期位置がランダムで1~2マスズレることがある。
タイプのフラグが複数の場合は加算する。COLLAPSEかつLEADERのマザーCOMやからくり源内などは$09が入る。
| 上位 4ビット | 下位 4ビット | タイプ |
|---|---|---|
| 0 | 0 | (なし) |
| 0 | 1 | COLLAPSE |
| 0 | 2 | BREAKDOWN |
| 0 | 4 | OBJECT |
| 0 | 8 | LEADER |
| 2 | 0 | NAME 忍者(2人組) |
| 3 | 0 | NAME 虚無僧 |
| 4 | 0 | NAME 奴 |
| 5 | 0 | NAME 浪人 |
| 6 | 0 | NAME 藩士 |
| 7 | 0 | NAME 強藩士 |
| 8 | 0 | NAME 外人 |
| 9 | 0 | NAME 商人 |
| A | 0 | NAME 家老 |
| B | 0 | NAME 忍者 |
| C | 0 | NAME くの一/ザビエール |
| D | 0 | NAME 腰元 |
| F | 0 | NAME 忍者(4人組) |
下位4ビットは無属性攻撃に対してのカウンター行動異常であるのと同時に、種族の値でもある。
種族の値は、開戦時行動異常に関係してくる。
名称は世界の合言葉は森部様参照。
| 下位 4ビット | 種族 |
|---|---|
| $0 | (なし) |
| $1 | 超人 |
| $2 | 妖怪 |
| $3 | 悪魔 |
| $4 | 猛禽 |
| $5 | 虫 |
| $6 | 機械 |
| $7 | 植物 |
| $8 | 小型動物 |
| $9 | (なし) |
| $A | 大型動物 |
| $B | 宇宙人 |
| $C | 軟体動物 |
| $D | 物質 |
| $E | 魔法生命 |
| $F | 恐竜 |
アドレス:味方技データ$D5:24CB~$D5:3DB1/敵技データ$D5:3DB2~$D5:56CA
それぞれID$00~$FFの256×2種類。1つの技につき00~24の25バイト分のデータ。
表の後に詳細な説明を掲載している。
| No. | 内容 |
|---|---|
| 00 | - |
| 01 | - |
| 02 | - |
| 03 | - |
| 04 | - |
| 05 | - |
| 06 | 技の方向 |
| 07 | 上1~2ビット:自身依存係数/上3~4ビット:自身依存ステータス/下4ビット:射程 |
| 08 | 使用不能状態異常(8ビット) |
| 09 | 状態異常(8ビット) |
| 10 | 上8ビット-下2ビット:LV差係数/下2ビット:敵依存ステータス・防御力依存係数 |
| 11 | 上2ビット:命中タイプ/下6ビット:位置変化 |
| 12 | 上2~4ビット:必中状態異常(腕・足・首)/下2ビット:効果範囲(1) |
| 13 | 上4ビット:周囲攻撃2、反撃専用4、回復8/下4ビット:技の属性 |
| 14 | 反撃属性1 |
| 15 | 上7ビット:反撃属性2※無属性除く/下1ビット:攻撃力依存(あり:%1、なし:%0) |
| 16 | - |
| 17 | 上4ビット:発動時間(16で1ターン)/下4ビット:技LV |
| 18 | 上1~2ビット:状態異常自身依存ステータス/上3~4ビット:状態異常敵依存ステータス/下4ビット:状態異常時間係数 |
| 19 | 最大連発数・ヒット数パターン |
| 20 | - |
| 21 | 上4ビット:特殊なタイプ/下3ビット:効果範囲(2) |
| 22 | 上4ビット:ダメージフィールド/下4ビット:上4ビットが8以上の時、行動異常の値 |
| 23 | ステータス変化 |
| 24 | - |
技の方向。
キャラが右下向きの時、上4ビットは下図の青数字、下4ビットは赤数字の合計値で表す。
周囲攻撃だと$00が入る。
例えば正面3方向だと$83が入る。
上1~2ビット:自身依存係数
| 数値 | 自身依存係数 |
|---|---|
| %00 | 1 |
| %01 | 1/2 |
| %10 | 1/4 |
| %11 | なし |
上3~4ビット:自身依存ステータス
| 数値 | 自身依存ステータス |
|---|---|
| %00 | 力 |
| %01 | 速 |
| %10 | 体 |
| %11 | 知 |
下4ビット:射程
| 数値 | 射程 |
|---|---|
| $0 | なし |
| $1 | 1 |
| $2 | 2 |
| $3 | 1~2 |
| $4 | 3 |
| $5 | - |
| $6 | 2~3 |
| $7 | 1~3 |
| $8 | 3~ |
| $9 | - |
| $A | - |
| $B | - |
| $C | 2~ |
| $D | - |
| $E | 1~ |
| $F | 無限 |
上8ビットと%1111 1100の論理積がLV差係数。
つまり上8ビットから下2ビットを引くとLV差係数になる。
下2ビットは敵依存ステータスと防御力依存係数を兼用した値で、対応は以下の通り。
| 16進数 | 2進数 | 敵依存 ステータス | 防御力 依存係数 |
|---|---|---|---|
| $0 | %00 | 力 | 1/4 |
| $1 | %01 | 速 | 1/2 |
| $2 | %10 | 体 | 1 |
| $3 | %11 | 知 | 0 |
敵依存ステータスは攻撃を受ける側の依存ステータス、防御力依存係数は攻撃を受ける側の防御の値がどれだけ関係するかを表しているので、意味合い自体はまったく異なるが、実際には同じ値から計算されているということになる。
上2ビットは命中タイプ。
| 数値 2進数 | 内容 |
|---|---|
| %00 | 狙撃 |
| %01 | 直進 |
| %10 | 貫通(目標まで) |
| %11 | 貫通(目標より先まで) |
下6ビットは位置変化の値、以下合計値が入る。
| 数値 2進数 | 数値 16進数 | 内容 |
|---|---|---|
| %000001 | $01 | 後方吹き飛ばし |
| %000010 | $02 | 90度右回転 |
| %000100 | $04 | 180度回転 |
| %001000 | $08 | 使用者後退 |
| %010000 | $10 | 使用者90度右回転 |
| %100000 | $20 | 使用者180度回転 |
上2~4ビット:必中状態異常
各ビットが「腕かため」・「足かため」・「首かため」順に対応。
下2ビット:効果範囲
技データ21の下3ビットが%000の時のみ、技データ12の下2ビットが以下の値で範囲を示す。
| 数値 2進数 | 効果範囲 |
|---|---|
| $00 | 1×1 |
| $01 | 3×3 |
| $10 | 5×5 |
| $11 | 全体 |
他の範囲(縦と横の範囲が異なる場合)は、技データ21の下3ビットに効果範囲が入る。
上4ビットは、技のタイプ関係の値の合計値が入る。
| 上4ビット | 内容 |
|---|---|
| $0 | 通常 |
| $2 | 範囲が周囲 |
| $4 | 反撃専用 |
| $8 | 回復 |
周囲かつ回復技だと$2 + $8で$Aが入ることになる。
下4ビットは技の属性の値。
| 属性 | 数値 |
|---|---|
| 手 | $0 |
| 足 | $1 |
| 突 | $2 |
| 鋭 | $3 |
| 鈍 | $4 |
| 締 | $5 |
| 飛 | $6 |
| 背 | $7 |
| 火 | $8 |
| 水 | $9 |
| 風 | $A |
| 土 | $B |
| 精 | $C |
| 善 | $D |
| 悪 | $E |
| 無 | $F |
反撃属性1が入る。
反撃属性の続きは技データ15に入る。
| 2進法の位 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
|---|---|---|---|---|---|---|---|---|
| 属性1 | 手 | 足 | 突 | 鋭 | 鈍 | 締 | 飛 | 背 |
上7ビット:反撃属性2
下1ビット:攻撃力依存(あり:%1、なし:%0)
無属性は反撃属性に設定されないため、下1ビットの値には攻撃力依存の値が入っている。
| 2進法の位 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
|---|---|---|---|---|---|---|---|---|
| 属性2 | 火 | 水 | 風 | 土 | 精 | 善 | 悪 | - |
状態異常を発生させる場合の、状態異常関連の数値。状態異常を発生させない技なら$00。
上1~2ビット:状態異常自身依存ステータス
上3~4ビット:状態異常敵依存ステータス
| 数値 | 内容 |
|---|---|
| %00 | 力 |
| %01 | 速 |
| %10 | 体 |
| %11 | 知 |
下4ビット:状態異常時間係数($0~$F)
最大連発数と、ヒット数パターンのデータが収められている。
| 2進法の位 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
|---|---|---|---|---|---|---|---|---|
| 収録データ | ① | ② | ③ | |||||
| 数値 | ヒット数パターン |
|---|---|
| %00 | 通常(最大連発数がヒット数) |
| %01 | レベルにより減 |
| %10 | 範囲内に1ヒット |
| %11 | ランダムに減 |
上4ビット:特殊なタイプ
特殊な効果があるタイプの値が入る。技データ13の上4ビット(技のタイプ)が$8以上か未満かでも判断される。
技データ13の上4ビットが$8未満:
| 数値 | タイプ |
|---|---|
| $3 | 吸収 |
| $7 | 外すとダメージ |
| $8 | 自爆999ダメージ |
技データ13の上4ビットが$8以上:
| 数値 | タイプ |
|---|---|
| $3 | HP振り分け |
| $8 | 自滅 |
下3ビット:効果範囲
下3ビットが%000の時は、技データ12に効果範囲が入る。
| 数値 2進数 | 効果範囲 |
|---|---|
| %001 | 縦±0×横全体 |
| %010 | 縦±1×横全体 |
| %011 | 縦±2×横全体 |
| %100 | 縦全体×横±0 |
| %101 | 縦全体×横±1 |
| %111 | 縦全体×横±2 |
ダメージフィールドと行動異常の値が入っている。
上4ビットはダメージフィールドで、行動異常が発生する場合は+$8される。
| 値 | フィールド |
|---|---|
| $4 | 水 |
| $5 | 毒 |
| $6 | 火 |
| $7 | 電 |
下4ビットは、上4ビットが$8以上の時、行動異常の値$0~$Fが入る。
ステータス変動。$00ならステータス変動なし。
上1ビット:%0なら変動するのは標的、%1なら変動するのは使用者
上2~3ビット:下降か上昇か
| 数値 | 内容 |
|---|---|
| %00 | 下降・大 |
| %01 | 下降・中 |
| %10 | 下降・小 |
| %11 | 上昇 |
上4~8ビット:変動するステータス、合計値が入る。
| 数値 | 内容 |
|---|---|
| %00001 | 力 |
| %00010 | 速 |
| %00100 | 体 |
| %01000 | 知 |
| %10000 | レベル |
アドレス:$D5:644B~$D5:64CA
ID$0~$Fの16種類。1つの行動異常につき0~7の8バイト分のデータ。
| No. | 内容 |
|---|---|
| 0 | 上4ビットが使用不能になる技番号 |
| 1 | - |
| 2 | レベル変動値 |
| 3 | 行動順・発生時修正値 |
| 4 | 行動順・被ダメージ定数 |
| 5 | 行動順・攻撃以外の増加値 |
| 6 | 行動順・攻撃時の減少値 |
| 7 | - |
レベル変動がマイナス補正になる場合があるが、その場合は$100からマイナス分を引いた値が入る。
アドレス:$D5:71C4~$D5:81C3
ID$00~$FFまでの256種類分。1アイテムにつき00~15の16バイト分のデータ。
| No. | 内容 |
|---|---|
| 00 | 上4ビット:1~7は主装備位置、8以上なら罠アイテム/下4ビット:装備品なら装備種類、装備品以外ならアイテム種別 |
| 01 | 上6ビット:装備部位/下1ビット:材料アイテム |
| 02 | 無効状態異常(8ビット) |
| 03 | 上4ビット:装備タイプ/下4ビット:フィールド吸収 |
| 04 | 回避属性1(8ビット) |
| 05 | 回避属性2(8ビット) |
| 06 | 力 主能力変動値(符号付き8ビット整数値、一番上のビットが正負、下7ビットが数値になる。以下09まで同じ) |
| 07 | 速 主能力変動値 |
| 08 | 体 主能力変動値 |
| 09 | 知 主能力変動値 |
| 10 | 味方技ID |
| 11 | 副能力変動値計算用の値 |
| 12 | メカがアクセサリ装備で技追加($08~$0F) |
| 13 | 上4ビット:戦闘開始時行動異常を起こす敵種族/下4ビット:戦闘開始時行動異常 |
| 14 | 下6ビット:攻撃または防御の値 |
| 15 | 状態異常追加効果(8ビット) |
装備品は、主装備位置が指定されている場合、主装備位置以外では副能力変動値が使用される。
アイテムデータ06~09の力・速・体・知(主能力変動値、符号付き8ビット整数値)と、アイテムデータ11(副能力変動値計算用の値)から、以下のように計算して副能力変動値とする。
主能力変動値を符号付き8ビット整数値とするので、2進数にして一番上の値が1なら負の値であり、下7ビット分が整数値である。
(主能力変動値が負の値($80~$FF)の場合、$100-主能力変動値で、10進数のように考えることができる。主能力変動値が$FBなら$100-$FB = $5なので、10進数だと「-5」である)
まず、「副能力用計算値」を以下のように計算する。
次に、アイテムデータ11(副能力変動値計算用の値)に$00が入っているかどうかで分岐する。
| 上2ビット | 能力値 |
|---|---|
| 00 | 力 |
| 01 | 速 |
| 10 | 体 |
| 11 | 知 |
例1:
「木の棒」(主能力変動値はすべて$00)、アイテムデータ11は$45なので、
アイテムデータ11:
$45 = %0100 0101
アイテムデータ11の上2ビット:$01 変動する能力値 速
アイテムデータ11の下6ビット:%0000 0101 = $05
速:
副能力用計算値 = trunc($00/2)
= $00
副能力変動値 = (副能力用計算値 + (アイテムデータ11の下6ビットと$FFの排他的論理和 + 1)) & $FF
= ($00 + ($05 XOR $FF + $01)) & $FF
= ($00 + $FB) & $FF
= $FB
$100-$FB = $05、10進数5なので、「木の棒」の副能力変動値(速)-5となる。
例2:
「野性バッグ」(主能力変動値は力$14、知$08)、アイテムデータ11は$14なので、
アイテムデータ11:
$14 = %0001 0100
アイテムデータ11の上2ビット:$00 変動する能力値 力
アイテムデータ11の下6ビット:%0001 0100 = $14
力:
副能力用計算値 = trunc($14/2)
= $0A
副能力変動値 = (副能力用計算値 + (アイテムデータ11の下6ビットと$FFの排他的論理和 + 1)) & $FF
= ($0A + ($14 XOR $FF + $01)) & $FF
= ($0A + $EC) & $FF
= $F6
$100-$F6 = $0A、10進数10なので、「野性バッグ」の副能力変動値(力)-10となる。
知:
副能力用計算値 = trunc($08/2)
= $04
「野性バッグ」の副能力変動値(知)+4となる。
例3:
「ワタナベのパンツ」(主能力変動値は知$E7)、アイテムデータ11は$E0なので、
アイテムデータ11:
$E0 = %1110 0000
アイテムデータ11の上2ビット:$11 変動する能力値 知
アイテムデータ11の下6ビット:%0010 0000 = $20
知:
副能力用計算値 = trunc($FFE7/2) & $00FF
= $F3
副能力変動値 = (副能力用計算値 + (アイテムデータ11の下6ビットと$FFの排他的論理和 + 1)) & $FF
= ($F3 + ($20 XOR $FF + $01)) & $FF
= ($F3 + ($DF + $01)) & $FF
= ($F3 + $E0) & $FF
= $1D3 & $FF
= $D3
上4ビット:
$1~$7なら主装備位置、$8以上なら罠アイテム。
| 数値 | 主装備位置 |
|---|---|
| $1 | 頭 |
| $2 | 右 |
| $3 | 左 |
| $4 | 体 |
| $5 | 足 |
| $6 | アクセサリー |
| $7 | 自由 |
下4ビット:
装備品なら装備種類、装備品以外ならアイテム種別。
| 数値 | 内容 |
|---|---|
| $0 | (なし) |
| $1 | - |
| $2 | 回復(無限) |
| $3 | 回復(1回) |
| $4 | 攻撃(無限) |
| $5 | 攻撃(1回) |
| $6 | 銃 |
| $7 | 杖 |
| $8 | 日用品 |
| $9 | 野性武器 |
| $A | 刀 |
| $B | グローブ |
| $C | 剣 |
| $D | ロボ |
| $E | 重要 |
| $F | 盾 |
上6ビット:装備可能部位
以下合計値が入る。%000000の場合、装備品ではない。
| 数値 | 装備可能部位 |
|---|---|
| %000001 | アクセサリー |
| %000010 | 足 |
| %000100 | 体 |
| %001000 | 左 |
| %010000 | 右 |
| %100000 | 頭 |
下1ビット:材料アイテムなら%1。
上4ビットは装備タイプ。
| 値 | 装備タイプ |
|---|---|
| $0 | (なし) |
| $1 | 超能 |
| $4 | 特殊 |
| $6 | 女性 |
| $8 | 重装 |
| $9 | 勇者 |
| $C | 野性 |
下4ビット:フィールド吸収
以下合計値が入る。
| 値 | フィールド |
|---|---|
| $1 | 電 |
| $2 | 火 |
| $4 | 毒 |
| $8 | 水 |
左装備時の、戦闘開始時行動異常関係データ。
上4ビットは戦闘開始時行動異常を起こす敵種族、下4ビットは戦闘開始時行動異常。
| 上位 4ビット | 種族 |
|---|---|
| $0 | (なし) |
| $1 | 超人 |
| $2 | 妖怪 |
| $3 | 悪魔 |
| $4 | 猛禽 |
| $5 | 虫 |
| $6 | 機械 |
| $7 | 植物 |
| $8 | 小型動物 |
| $9 | (なし) |
| $A | 大型動物 |
| $B | 宇宙人 |
| $C | 軟体動物 |
| $D | 物質 |
| $E | 魔法生命 |
| $F | 恐竜 |
アドレス:$D6:4280~$D6:512F
ID$00~$FFまでの256種類分。1パーティにつき9~37バイト分のデータ(敵の総数により可変)。
以下表では、敵ID(0)のように、後ろのカッコ内に敵番号を記す。
向きと初期座標は、表の下で詳細を説明している。
| No. | 内容 |
|---|---|
| 00 | 敵パーティレベル |
| 01 | $00:通常 $01:敵対敵(ブリキ大王戦など) $10または$20:原始編のざき戦 $40:味方対味方(功夫編修行など) |
| 02 | 味方1 向き/初期座標 |
| 03 | 味方2 向き/初期座標 |
| 04 | 味方3 向き/初期座標 |
| 05 | 味方4 向き/初期座標 |
| 06 | 上位8ビット:アイテム入手率補正 下位8ビット:敵の総数 |
| 07 | 敵ID(0) |
| 08 | 向き/初期座標(0) |
| 09 | 敵ID(1) |
| 10 | 向き/初期座標(1) |
| 11 | 敵ID(2) |
| 12 | 向き/初期座標(2) |
| 13 | 敵ID(3) |
| 14 | 向き/初期座標(3) |
| 15 | 敵ID(4) |
| 16 | 向き/初期座標(4) |
| 17 | 敵ID(5) |
| 18 | 向き/初期座標(5) |
| 19 | 敵ID(6) |
| 20 | 向き/初期座標(6) |
| 21 | 敵ID(7) |
| 22 | 向き/初期座標(7) |
| 23 | 敵ID(8) |
| 24 | 向き/初期座標(8) |
| 25 | 敵ID(9) |
| 26 | 向き/初期座標(9) |
| 27 | 敵ID(A) |
| 28 | 向き/初期座標(A) |
| 29 | 敵ID(B) |
| 30 | 向き/初期座標(B) |
| 31 | 敵ID(C) |
| 32 | 向き/初期座標(C) |
| 33 | 敵ID(D) |
| 34 | 向き/初期座標(D) |
| 35 | 敵ID(E) |
| 36 | 向き/初期座標(E) |
向き/初期座標が入るアドレスには、以下のようにしてデータが収納されている。
上2ビット:向き
以下の数値が入る。
| 数値 | 向き |
|---|---|
| %00 | 右下 |
| %01 | 左下 |
| %10 | 右上 |
| %11 | 左上 |
下6ビット:座標
左上マスを(0,0)として、右方向がX(0~6)、下方向がY(0~6)。
3ビットずつ区切って、順に(X,Y)が入る。
複数マスにまたがる敵は左上マス位置の座標になる。
例:
向き/初期座標の値が$D3なら、%1101 0011なので、
向き:%11(左上向き)
X座標:%010
Y座標:%011
初期座標(2,3)
となる。