TOP > プログラミング関係解説&調査 > データマップ > RAM

「ライブ・ア・ライブ」データマップ > RAM

当ページの内容は、ある程度のプログラミングの知識を必要とする。
まず、プログラミング関係解説&調査をひととおり読んでいただきたい。

データマップについての説明と、ROM領域は前ページ参照。
サウンド(BGM・効果音)関連はこちら

RAM領域

RAM(Random-Access Memory)領域はバンク$00$3F$0000~$1FFF、バンク$7Eで、先に記した通りにバンク$80~にはバンク$00~がミラーリングされている。

$7E:0000$7F:FFFFはWRAM(Work RAM)というメモリ領域で、$7E:0000$7F:1FFFのみ、他バンクでもミラーリングされて共通の値が入る(バンク$00$3F, $80$BF
だいたいの場合で$00:0000$00:1FFF(またはミラーリングの$7E:0000$7F:1FFF)にて数値の読み書き・計算をするのは、ここがWRAMだからである。

WRAMの$7F:2000$7F:FFFFはミラーリングされていないため、別途、$00:2180$00:2183に値を読み書きすることで通信をして値を書き込む。
$00:2180$00:2183のように外部メモリとやりとりをするためのアドレスをI/Oレジスタというが、この後で説明する。

ミラーリング外の$7E:2000~には、VRAMなど外部メモリに送る画像関係データをまとめて書き込んで、ここからGDMA転送することがよくある。

※下位バイト・上位バイトについて
アドレス1つに入るデータは1バイト(16進数2文字)だが、中には連続した2つのアドレスを使って、2バイト(16進数4文字)のデータを記録している値もある。
その場合は、下位バイトのアドレスに下2桁、上位バイトのアドレスに上2桁が入っており、上位バイトアドレスの値・下位バイトアドレスの値を繋げて2バイト分のデータとする。

I/Oレジスタ

スーパーファミコンと周辺機器(ゲームカセット、操作用のコントローラ、及び、画像・音を出力するためのディスプレイやスピーカーつまりスーパーファミコンの時代だとブラウン管テレビ)が通信を行うための端子(接続部分)などをI/Oポートというのだが、これら周辺機器とのやりとり用に割り振られたメモリアドレスが「I/Oレジスタ」になる。
これはスーパーファミコンの仕様のため、どのスーパーファミコンソフトでも共通のはずである。
詳しいアドレスは上サイト様など参照。ここでは簡単な説明に留める。
プログラマーでない限りいろいろ詳しいことを知っておく必要はないし、筆者もわからないことだらけだが、とりあえず、知っておくと良いレジスタだけピックアップする。
用語の説明は表の下。

アドレス内容
$00:2100ディスプレイ制御レジスタ1
$00:2101OBSEL(スプライトのサイズを設定)
$00:2102~$00:2103OAMアドレス (下位8bit~上位1bit)
$00:2104OAM書き込み
$00:2105背景(BG)制御レジスタ
$00:2107背景(BG1)画面設定
$00:2108背景(BG2)画面設定
$00:2109背景(BG3)画面設定
$00:210A背景(BG4)画面設定
$00:2116~$00:2117VRAMアドレス (下位8bit~上位8bit)
$00:2118~$00:2119VRAMデータ書き込み (下位8bit~上位8bit)
$00:2121CGRAM カラーパレットアドレス指定
$00:2122CGRAM カラーパレット書き込み
$00:2140$00:2143サウンド用CPUであるAPU(SPC700)とのI/Oレジスタ($00:2144$00:217F$00:2140$00:2143をミラーリング)
$00:2180WRAMデータレジスタ
$00:2181~$00:2183WRAMアドレスレジスタ 3バイト (下位8bit・中位8bit・上位1bit)
$00:4200割り込み有効化レジスタ
$00:420BGDMA開始レジスタ
$00:420CHDMAチャネルレジスタ
$00:4212自動ジョイパッド読み取り機能のON・OFF状態
$00:4212bit7 自動ジョイパッド読み取り機能のONOFF記録
$00:4218~$00:4219自動ジョイパッド読み取り機能のコントローラ1のボタン状態出力先
$00:421A~$00:421B自動ジョイパッド読み取り機能のコントローラ2のボタン状態出力先(本作未使用)
$00:4218$00:421Fコントローラ(ジョイパッド)出力
$00:43n0GDMA / HDMA設定レジスタ(チャネルn)
$00:43n1GDMA 転送先指定 $04=OAM, $18=VRAM, $22=CGRAM, $80=WRAM
$00:43n3$00:43n2GDMA データ元アドレス(開始位置)
$00:43n4GDMA データ元バンク
$00:43n6$00:43n5GDMA 転送するデータ量
  • WRAM: Work RAM
    容量:128KB
    スーパーファミコンのメインメモリ。$7E:0000$7F:FFFF
  • VRAM: Video RAM
    容量:64KB
    グラフィックデータ(画像の構造)を記録するメモリ。
  • CGRAM: Color Generator RAM
    容量:512バイト
    スプライトや背景の色情報(カラーパレット)を記録するメモリ。
    アドレスをbyteではなくwordで指定するため注意が必要。2byte(バイト)で1word(ワード)になる。
  • OAM: Object Attribute Memory
    容量:544バイト
    スプライトの配置を記録するメモリ。
  • データ転送
    • GDMA(General Direct Memory Access):
      データ転送のこと。HDMAと合わせて8チャネル設定可能。
      これでWRAM, VRAM, CGRAM, OAMへデータを送る。
    • HDMA(HBlank DMA):
      HBlank(画面1行のグラフィックを描画した後の次の行の描画までの僅かな時間)を利用したデータ転送。

サブルーチンを見て、$00:2100$00:213Fの読み書きをしているのならだいたい画像関係だし、$00:2140$00:217Fならサウンド関係(バンク$C3)、$00:4218$00:4219はコントローラ出力の判定である。
$00:43n?は他メモリとのデータのやりとり(大抵はグラフィックのデータ)で、$00:43n1に何の値を書き込んだかで、カラーパレットのデータ($22=CGRAM)か、スプライト位置($04=OAM)か、大雑把に把握できる。
また、スーパーファミコンには画像の伸縮回転を行う機能があるが、そのためのI/Oレジスタ$00:211B$00:2120を利用した乗算、$00:4202$00:4206の乗算・除算用レジスタを使った乗算・除算も頻繁に見られる。

ゲームプレイ中、プレイヤーからのコントローラ(ジョイパッド)の入力待ちのため$00:4212の状態の読み取りを1フレームに1回行っており、ログを取ってみると$00:4212の読み取りループばかり並ぶのはこのため。

セーブデータ

ゲームのセーブデータは、ゲームのカセット内に入っているSRAMというメモリで保存する。
このメモリはボタン電池で電力を供給しており、電池切れするとデータを保持できなくなる。
ゲームのカセットがスーパーファミコンに接続され電源が入っている時は、SRAMへの電力供給はスーパーファミコン側から行われるので、もし電池切れしていても、スーパーファミコンの電源を切らない限り、セーブデータは保存可能。

SRAMは、メモリ割り当ての規格がHiROMの場合、バンク$30$3Fのアドレス$6000$7FFFに割り当てられている。

「ライブ・ア・ライブ」では、セーブデータ領域にバンク$30のみ使用している。
「ライブ・ア・ライブ」はセーブデータが4個あるが、データ領域は以下のように割り振られている。

アドレスセーブデータ
$30:6000$30:67F7セーブデータ1
$30:67F8$30:6FEFセーブデータ2
$30:6FF0$30:77E7セーブデータ3
$30:77E8$30:7FEFセーブデータ4

1つのセーブデータにセーブされるのは、$00:0A00$00:11F7の領域にあたる。
保存する必要があるデータが$00:0A00$00:11F7外にある場合、そのデータを$00:0A00$00:11F7内にコピーすることになるが、収まりきれない一部データ(主にシナリオフラグ関係のデータ)は圧縮して$00:0A00$00:11F7にコピーされ、セーブデータに保存される。
詳細はセーブデータのセーブ・ロードを参照。

フィールド

戦闘時の共通部分含む。

アドレス内容
$00:0000フィールド・コントローラ1のボタンを押した判定(合計値が入る)
Rボタン:$10 / Lボタン:$20 / Xボタン:$40 / Aボタン:$80
$00:0001フィールド・コントローラ1のボタンを押した判定(合計値が入る)
右:$01 / 左:$02 / 下:$04 / 上:$08 / スタートボタン:$10 / セレクトボタン:$20 / Yボタン:$40 / Bボタン:$80
$00:0002$00:0003フィールド・コントローラ2のボタン状況(本作では未使用)
$00:000Cマップ乱数計算用の値(戦闘中一時停止)
$00:000Dマップ乱数(戦闘中一時停止)
$00:002Dランダムエンカウント時 増加値(下4ビット)
$00:0036マップ乱数($00:000Dと同値)
$00:0070通常は$00、デモ画面は$01以上(変動)
$00:0107ランダムエンカウント時 危険度
$00:010B$00:01FF(※スタック領域。PHXPHYなどのニーモニックで値を一時的に記録するアドレス。詳細:65C816のスタック
$00:0114BG1のサイズ決定値
$00:0116BG2のサイズ決定値 兼 背景(BG2)が多重スクロールするマップでは$01$03, それ以外は$00
$00:011Fランダムエンカウント時 エリア危険度
$00:0134BG1タイルマップアドレスとサイズ[$00:2107]の下2ビット(マップサイズ)の値
$00:0135BG2タイルマップアドレスとサイズ[$00:2108]の下2ビット(マップサイズ)の値
$00:013Dアイテム取得や使用時、該当アイテムのアイテムIDが入る
$00:014A~4C最終編 時のダンジョンの鐘の鳴った回数
$00:0160場面チェンジのエフェクト
$00=黒にフェードアウト/$02=白にフェードアウト/$04=モザイク/$05=丸囲み/$06=三角囲み(戦闘突入時)
$00:01A0$00:01A3味方キャラ1~4の移動時の状態?
$00:01A4$00:01A8味方キャラ1~4の移動時の状態?
$00:01A9マップ上移動速度 $10:通常歩き $20:ダッシュ $40:おぼろ丸のダッシュ
$00:01AE$00:01A9と同値
$00:01B0ポゴが匂いを嗅いで、匂いに触れた時に出ている吹き出しの中身
$00:01BBランダムエンカウント時 危険度合計値
$00:01C0セリフ関係(テキスト呼び出し、吹き出し形状など)
$00:01C1吹き出しの位置と形状(吹き出しについている▽のマークの位置も)
$00:01C6$00:01C7セリフテキスト読み込み位置指定
$00:0200通常$00 フィールドでプレイヤーが操作できない時$01?(セリフ中や、敵シンボルと接触した時)
$00:020Aフィールド・コントローラ1のボタンを押した判定(合計値が入る)
右:$01 / 左:$02 / 下:$04 / 上:$08 / スタートボタン:$10 / セレクトボタン:$20 / Yボタン:$40 / Bボタン:$80
$00:0250$00:0252HDMA転送による多段スクロール量計算用変数
$00:0253$00:0255HDMA転送による多段スクロール量更新タイミング計算用変数
$00:0544$00:0545メニュー画面での現在のカーソル位置(十字ボタンで選択可能な画面における番号)
$00:054Dプレイ中のシナリオ番号
$00:054Fプレイ中のシナリオの主人公ID
$00:0565$00:0566メニュー画面 持ち物欄などでAボタンで何かを選んだ状態
$00:0567$00:0568メニュー画面 持ち物欄などでAボタンで何かを選んだ状態で更に他位置を選択
$00:0569$00:056Aメニュー画面 装備、持ち物、技、隊形、音声、セーブを選んだ時、それぞれ$0001$0006が入る
$00:0565現代編 対戦相手画面
(通常$FF、対戦相手を選ぶと値が入る。ナムキャット$00、エイジャ$01、トゥーラ・ハン$02、森部$03、モーガン$04、イヤウケア$05、オディ・オブライト$07
$00:0566は通常$FF、それ以外$00
$00:057Aメニュー画面・GDMA転送チャネルの設定の有無
$00:057D~$00:057Eメニュー画面・コントローラ1のボタン状態出力先
$00:06B9現代編 1番目に倒した対戦相手ID(1戦目終わるまでは$FF
$00:06BA現代編 2番目に倒した対戦相手ID(2戦目終わるまでは$FF
$00:06BB現代編 3番目に倒した対戦相手ID(3戦目終わるまでは$FF
$00:06BC現代編 4番目に倒した対戦相手ID(4戦目終わるまでは$FF
$00:06BD現代編 5番目に倒した対戦相手ID(5戦目終わるまでは$FF
$00:06BE現代編 6番目に倒した対戦相手ID(6戦目終わるまでは$FF
$00:06BF現代編 倒した対戦相手の人数累積($00$06
$00:0700$00:0920OAMへ転送するスプライト用データ
$00:0A00プレイ中のシナリオ 対応表
$00:0A01シナリオのクリア状況
(8ビットが各シナリオ対応。上の桁から順に中世、原始、SF、功夫、西部、現代、近未来、幕末)
$00:0A02~03現在居るエリアのID
(マップに対応した数値、シナリオ毎に異なる)
$00:0A04$00が入っていない場合、$00:2131(I/OポートアドレスCGADSUB グラフィック用カラーマス ColorMath制御)の初期値(ほぼSF編用?)
$00:0A05~07グラフィック用カラーマス(Color Math)制御値
最終編 時のダンジョンの鐘の鳴った回数($00:014A$00:014Cのコピー)
$00:0A10最終編主人公 対応表
$00:0A112人目のシナリオ別キャラデータID
$00:0A123人目のシナリオ別キャラデータID
$00:0A134人目のシナリオ別キャラデータID
$00:0A14パーティの人数($00:1人、$01:2人、$02:3人、$03:4人)
$00:0A15心山拳老師&師範が誰か(功夫編・最終編のみ)
$00=老師 $01=ユン $02=レイ $03=サモ
$00:0A20キャラ1 移動中のX座標のマスとマスの間の位置?
$00:0A21キャラ1 マップのX座標(マス目)
$00:0A22キャラ2 移動中のX座標のマスとマスの間の位置?
$00:0A23キャラ2 マップのX座標(マス目)
$00:0A24キャラ3 移動中のX座標のマスとマスの間の位置?
$00:0A25キャラ3 マップのX座標(マス目)
$00:0A26キャラ4 移動中のX座標のマスとマスの間の位置?
$00:0A27キャラ4 マップのX座標(マス目)
$00:0A28キャラ1 移動中のY座標のマスとマスの間の位置?
$00:0A29キャラ1 マップのY座標(マス目)
$00:0A2Aキャラ2 移動中のY座標マスとマスの間の位置?
$00:0A2Bキャラ2 マップのY座標(マス目)
$00:0A2Cキャラ3 移動中のY座標マスとマスの間の位置?
$00:0A2Dキャラ3 マップのY座標(マス目)
$00:0A2Eキャラ4 移動中のY座標マスとマスの間の位置?
$00:0A2Fキャラ4 マップのY座標(マス目)
$00:0A34キャラ1 向き 下=$00/上=$01/左=$02/右=$03
$00:0A35キャラ2 向き 下=$00/上=$01/左=$02/右=$03
$00:0A36キャラ3 向き 下=$00/上=$01/左=$02/右=$03
$00:0A37キャラ4 向き 下=$00/上=$01/左=$02/右=$03
$00:0A38$00:0A39[$00:210D](BG1水平スクロール量)計算用の値(2バイト)
$00:0A3A$00:0A3B[$00:210E](BG1垂直スクロール量)計算用の値(2バイト)
$00:0A3C$00:0A3D[$00:210F](BG2水平スクロール量)計算用の値(2バイト)
$00:0A3E$00:0A3F[$00:2110](BG2垂直スクロール量)計算用の値(2バイト)
$00:0A40$00:0A41[$00:210F](BG2水平スクロール量)多重スクロール時 計算用の値(2バイト)
$00:0A42$00:0A43[$00:2110](BG2垂直スクロール量)多重スクロール時 計算用の値(2バイト)
$00:0A531人目のキャラの向き? 下=$00/上=$01/左=$02/右=$03
$00:0A541人目のキャラの座標?状態?
$00:0A551人目のキャラに対する2人目のキャラの相対距離?(移動中$00 ダッシュ$04 停止$80 向き変えで値変わる)
$00:0A561人目のキャラに対する3人目のキャラの相対距離?
$00:0A571人目のキャラに対する4人目のキャラの相対距離?
$00:0A60フィールド上  サウンドルームBGMとは異なる BGM一覧表
$00:0A61BGMの再生ピッチ?(通常$FF、「いいお天気でしょっ!」の夜バージョンは$60
$00:0AB0主人公の行動順-1
(以下$00:0AB3まで入る数値は$00$03のいずれか、味方キャラ順は加入順)
$00:0AB1味方キャラ1の行動順-1
$00:0AB2味方キャラ2の行動順-1
$00:0AB3味方キャラ3の行動順-1
$00:0AB1隊形で左の位置にいる味方キャラ
$00:0AB2隊形で右の位置にいる味方キャラ
$00:0AB3隊形で下の位置にいる味方キャラ
$00:0AB4$00:0AB5セーブ回数 下位バイト/上位バイト
999回($03E7)を越えると0に戻る
$00:0AC0$00:0AC1マップタイマー00~15のON・OFF
C0に下位バイト、C1に上位バイト
$00:0AC2$00:0AC3マップタイマー00~15関連フラグ値
C2に下位バイト、C3に上位バイト
$00:0AC5原始編・近未来編のシンボルエンカウントのON/OFF?
$00:0ACA$00:0ACBポゴがパーティにいる時のみ、匂いを嗅いだ時の漂う匂いの表示タイマー。
匂いを嗅ぐと、$00:0ACA$01$00:0ACB$68が入り、360フレーム(6秒)のカウントを行う
$00:0ACC原始編でポゴが匂いを嗅げる、かつシンボルエンカウントありエリアだと$01が入る
$00:0ACE主人公キャラID(最終編は$08で固定)対応表
$00:0AE0$00:0AE1マップタイマー00残り時間 下位バイト/上位バイト
$00:0AE2$00:0AE3マップタイマー01残り時間 下位バイト/上位バイト
$00:0AE4$00:0AE5マップタイマー02残り時間 下位バイト/上位バイト
$00:0AE6$00:0AE7マップタイマー03残り時間 下位バイト/上位バイト
$00:0AE8$00:0AE9マップタイマー04残り時間 下位バイト/上位バイト
$00:0AEA$00:0AEBマップタイマー05残り時間 下位バイト/上位バイト
$00:0AEC$00:0AEDマップタイマー06残り時間 下位バイト/上位バイト
$00:0AEE$00:0AEFマップタイマー07残り時間 下位バイト/上位バイト
$00:0AF0$00:0AF1マップタイマー08残り時間 下位バイト/上位バイト
$00:0AF2$00:0AF3マップタイマー09残り時間 下位バイト/上位バイト
$00:0AF4$00:0AF5マップタイマー10残り時間 下位バイト/上位バイト
$00:0AF6$00:0AF7マップタイマー11残り時間 下位バイト/上位バイト
$00:0AF8$00:0AF9マップタイマー12残り時間 下位バイト/上位バイト
$00:0AFA$00:0AFBマップタイマー13残り時間 下位バイト/上位バイト
$00:0AFC$00:0AFDマップタイマー14残り時間 下位バイト/上位バイト
$00:0AFE$00:0AFFマップタイマー15残り時間 下位バイト/上位バイト
$00:0B01$00:0BFFアイテム欄に入っているアイテムID(最終編)
$00:0B01$00:0B27アイテム欄に入っているアイテムID(中世編)
$00:0B28$00:0B4Cアイテム欄に入っているアイテムID(原始編)
$00:0B4D$00:0B66アイテム欄に入っているアイテムID(西部編)
$00:0B67$00:0B88アイテム欄に入っているアイテムID(幕末編)
$00:0B89$00:0BBBアイテム欄に入っているアイテムID(近未来編)
$00:0BBD$00:0BE0アイテム欄に入っているアイテムID(功夫編)
$00:0BF5$00:0CF9アイテム欄に入っているアイテムID(SF編)
$00:0C01$00:0CFFアイテム欄に入っているアイテムIDの各個数(最終編)
$00:0C01$00:0C27アイテム欄に入っているアイテムIDの各個数(中世編)
$00:0C28$00:0C4Cアイテム欄に入っているアイテムIDの各個数(原始編)
$00:0C4D$00:0C66アイテム欄に入っているアイテムIDの各個数(西部編)
$00:0C67$00:0C88アイテム欄に入っているアイテムIDの各個数(幕末編)
$00:0C89$00:0CBBアイテム欄に入っているアイテムIDの各個数(近未来編)
$00:0CBD$00:0CE0アイテム欄に入っているアイテムIDの各個数(功夫編)
$00:0CF5$00:0DF9アイテム欄に入っているアイテムIDの各個数(SF編)
$00:0D00$00:0FBF【戦闘・マップ共通】シナリオ別キャラデータ(詳細後述)
$00:0F92幕末編における忍者(2人組)の遭遇数$00~$06
(戦闘開始直後に増加、「逃げる」コマンド選択時に増えた分だけ減少。$00:$0F9Fまで同じ)
$00:0F93虚無僧の遭遇数$00~$03
$00:0F94奴の遭遇数$00~$0A
$00:0F95浪人の遭遇数$00~$0A
$00:0F96藩士の遭遇数$00~$07
$00:0F97強藩士の遭遇数$00~$0A
$00:0F98外人の遭遇数$00~$02
$00:0F99商人の遭遇数$00~$04
$00:0F9A家老の遭遇数$00~$05
$00:0F9B忍者(1人)の遭遇数$00~$08
$00:0F9Cくの一の遭遇数$00~$04
$00:0F9D腰元の遭遇数$00~$09
$00:0F9F忍者(4人組)の遭遇数$00~$08
$00:10E5最終編の戦闘時のBGM
$00:10FE$00:10FF$00:1300$00:130Fを8ビット区切りで圧縮したデータ(セーブデータ保存用、セーブ時更新)
$00:11D0$00:11EF$00:1200$00:12FFを8ビット区切りで圧縮したデータ(セーブデータ保存用、セーブ時更新)
$00:11F0イベントカウンター用メモリ(シナリオによりカウントする値は変わる)
$00:1200$00:12FF【戦闘・マップ共通】シナリオ進行フラグ(詳細はシナリオ進行フラグページ参照)
$00:1300$00:1301心山拳伝承者 下位バイト/上位バイト
$0001ならユン、$0100ならレイ、$0000だとサモ
$00:1303初期値$00、西部編最後のマッドドッグとの戦闘で逃げると$01
$00:1304初期値$00、幕末編最後の選択肢で「面白い」を選ぶと$01
$00:1D00サウンドデータ転送ステータス$00:2140記録用【戦闘・マップ共通】
$00:1D01サウンドデータサイズ$00:2141記録用【戦闘・マップ共通】
$00:1D02$00:1D03転送先アドレス2バイト($00:2142$00:2143)記録用【戦闘・マップ共通】
$00:1D05現在のBGM【戦闘・マップ共通】 BGM一覧表
$00:1DE2現在のBGM【戦闘・マップ共通】 BGM一覧表
$7E:2A00$7E:2A3Fメニュー→装備で、該当キャラのシナリオ別キャラデータがそのまま入る($23のみ例外、異なる値が入る)
$7E:2F3C文字入力画面 ページ数($00~、シナリオなどにより最大ページ数は変動)
$7E:2F40文字入力画面 X軸のカーソル位置 左上座標を(0,0)とする。横方向は11文字。$00$0A
$7E:2F42文字入力画面 Y軸のカーソル位置 左上座標を(0,0)とする。縦方向は9文字。$00$08
$7E:2F44文字入力画面 入力した文字数(1文字で+2) $00$0C
$7E:2F46$7E:2F47文字入力画面 入力欄1文字目(2バイト)
$7E:2F48$7E:2F49文字入力画面 入力欄2文字目(2バイト)
$7E:2F4A$7E:2F4b文字入力画面 入力欄3文字目(2バイト)
$7E:2F4C$7E:2F4d文字入力画面 入力欄4文字目(2バイト)
$7E:2F4E$7E:2F4f文字入力画面 入力欄5文字目(2バイト)
$7E:2F50$7E:2F51文字入力画面 入力欄6文字目(2バイト)
$7E:3100$7E:31??HDMAテーブル コピー先
$7E:3800$7E:39FFカラーパレットのデータ コピー先
$7E:8000$7E:81FFカラーパレットのコピー先アドレス
$7E:8A00$7E:8AC6文字入力画面 文字コード(1文字2バイト、左上から右下へ、横11文字分、縦9文字分)
$7E:8A00$7E:8AFFメニュー画面>持ち物欄 整頓時アイテムIDコピー用アドレス
$7E:8B00$7E:8BFFメニュー画面>持ち物欄 整頓時アイテム所持数コピー用アドレス
$7E:8C00$7E:8DFFメニュー画面用カラーパレットのデータ コピー先
$7E:901D戦闘開始時に場の属性が決まっているエリアだと属性の値が入る
$7E:C000$7E:CE7Fキャラのスプライトデータ コピー先
シナリオID対応表
シナリオIDキャラクター
中世$00オルステッド
原始$01ポゴ
SF$02キューブ
功夫$03心山拳老師
西部$04サンダウン
現代$05高原日勝
近未来$06アキラ
幕末$07おぼろ丸
最終$08-

共通

マップ・戦闘どちらでも共通して値が読み書きされるあたりのアドレス。
他にもあるが、重要そうなあたりを。

シナリオ進行フラグは量が膨大になるため、ページを分けた。

シナリオ別キャラデータ

$7E:0D00$7E:0FBFに入る、各シナリオのキャラ用データ。
1キャラあたり64バイトの容量がある。
戦闘中もそれ以外も同じアドレスに入っている。
主人公+仲間3キャラのIDは順に$7E:0A10, $7E:0A11, $7E:0A12, $7E:0A13に入る(加入順?)

最終編以外は、主人公キャラのID・$08$09$0Aという順で上のアドレスに入ることになるが、最終編は各シナリオの主人公たちがパーティに加わった時点で2人目以降の値が更新されていく。

IDアドレス原始SF功夫西部現代近未来幕末中世最終
$00$7E:0D00-------オルステッドオルステッド
$01$7E:0D40ポゴ-------ポゴ
$02$7E:0D80-キャプテン
スクウェア
/キューブ
------キューブ
$03$7E:0DC0--心山拳老師-----心山拳師範
$04$7E:0E00---サンダウン----サンダウン
$05$7E:0E40----高原 日勝---高原 日勝
$06$7E:0E80-----アキラ--アキラ
$07$7E:0EC0------おぼろ丸-おぼろ丸
$08$7E:0F00ゴリ-ユン・ジョウマッドドッグ-タロイモとらわれの男ストレイボウ-
$09$7E:0F40べる-レイ・クウゴ--無法松カラクリ丸ウラヌス-
$0A$7E:0F80ざき-サモ・ハッカ--ブリキ大王-ハッシュブリキ大王
シナリオ別キャラデータの64バイト分データ

便宜上、64バイト分のデータに$00$3Fと番号を付けた。
空欄は筆者には不明な部分。

数値内容
$00キャラID(ブリキ大王は$40
$01 
$02右装備の追加効果の値(=アイテムデータ15、戦闘開始時に更新される)
$03 
$04$04を下位バイト、$05を上位バイトとした4桁の値+$D50000に、
味方キャラデータがそっくり入っている
$05
$06レベル
$07 
$08現在HP(下位バイト)
$09現在HP(上位バイト)
$0A最大HP(下位バイト)
$0B最大HP(上位バイト)
$0C前に出した技
$0D覚えた技(下位バイト)技00~07を2進数で表す
$0E覚えた技(上位バイト)技08~15を2進数で表す
$0F 
$10力(力+装備上昇分)
$11
$12力(装備上昇分)
$13速(速+装備上昇分)
$14
$15速(装備上昇分)
$16体(体+装備上昇分)
$17
$18体(装備上昇分)
$19知(知+装備上昇分)
$1A
$1B知(装備上昇分)
$1C側面補正
$1D背面補正
$1E経験値
$1F
$20無効状態異常
$21キャラ自身の回避属性(下位バイト)
$22キャラ自身の回避属性(上位バイト)
$23 
$24頭装備
$25右装備
$26左装備
$27体装備
$28足装備
$29アクセサリー1
$2Aアクセサリー2
$2Bアクセサリー3
$2Cアクセサリー4
$2Dアクセサリー5
$2E(味方キャラデータ42 全キャラ$00)
$2F防御合計値(初期値は味方キャラデータ43)
$30
$31フィールド吸収(下4ビット、$1:電/$2:火/$4:毒/$8:水 の合計値)
$32装備の回避属性(下位バイト)
$33装備の回避属性(上位バイト)
$34名前1文字目
$35名前2文字目
$36名前3文字目
$37名前4文字目
$38名前5文字目
$39名前6文字目
$3A名前7文字目
$3B名前8文字目
$3C名前9文字目
$3D名前10文字目
$3E名前11文字目
$3F名前12文字目

名前の文字については、文字データを参照のこと。

戦闘

戦闘中のアドレスと内容について。
$00:0???はバンク$7Eではなくバンク$00で呼び出されるのがほとんど。
$7E:9000~以降は、ほとんどの場合、計算用に他アドレスからコピーした値や、計算途中の値が入る。

戦闘全体に関する値
アドレス内容
$00:0041戦闘時の背景番号
$00:0043「逃げる」が有効な戦闘は$00、無効な戦闘は$01
$00:0338戦闘用乱数4(新たな乱数を計算するための値)
$00:0339戦闘用乱数3(新たな乱数を計算するための値)
$00:033A戦闘用乱数2(新たな乱数を計算するための値)
$00:033B戦闘用乱数1(現在の乱数)
$00:0344コントローラ1のボタンを押した判定(合計値が入る)
Rボタン:$10 / Lボタン:$20 / Xボタン:$40 / Aボタン:$80
$00:0345コントローラ1のボタンを押した判定(合計値が入る)
右:$01 / 左:$02 / 下:$04 / 上:$08 / スタートボタン:$10 / セレクトボタン:$20 / Yボタン:$40 / Bボタン:$80
$00:0348~$00:0349コントローラ2のボタン状態出力先(本作未使用)
$00:034C$00:0344内ボタンの、何かを操作した時の押したボタンを記録
$00:034D$00:0345内ボタンの、何かを操作した時の押したボタンを記録
$00:0354戦闘開始時にセット $00:0041の上6ビット
$00:0355敵パーティレベル
$00:0356操作キャラがブリキ大王かどうか(ブリキ大王操作時は$01、それ以外は$00
$00:0358上位バイトはアイテムドロップ率計算用数値、下位バイトは敵の総数
$00:035A$00:035B味方行動順の値(2バイト)
1人目から順に、$1C00, $1C40, $1C80, $1CC0が入る
$00:0368$00:0369技使用中、該当技の技データアドレス開始位置の値2バイトが入る
$00:036Cステータス復元用計算値(Yで$40、向き変えで$20
$00:036Dステータス復元用計算値(技使用中$10)
$00:0378$00:0379攻撃中の敵0~Eに対応したアドレス
1Bx0が2バイトで入る(アドレス呼び出し用)
$00:037B敵攻撃時、技範囲内にいる味方キャラの数カウント(攻撃決定時初期値$01、最大$04
$00:03AE行動ポイント(下位バイト)
$00:03AF行動ポイント(上位バイト)
$00:03E6戦闘コマンドにおけるカーソル位置(初期位置$00、技一覧やアイテム一覧でも)
$00:047E初期値$00、「逃げる」または「テレポート」選択時$FF
$00:0488$00:04BE戦闘フィールドマスの計算用アドレス
$00:04C8$00:04FF戦闘フィールドマスの状態(後述)
$7E:0700$7E:0920OAMへ転送するスプライト用データ
$7E:8000$7E:8200カラーパレットのコピー先アドレス
$7E:9009技使用時 技データ13 上4ビット:周囲攻撃2、反撃専用4、回復8/下4ビット:技の属性
$7E:900A技使用時 技データ22 上4ビット:ダメージフィールド/下4ビット:上4ビットが8以上の時、行動異常の値
$7E:900B技使用時 技データ10 上8ビット-下2ビット:LV差係数/下2ビット:敵依存ステータス・防御力依存係数
$7E:900C技使用時 使用者のレベル(現在値)
$7E:9010$7E:9028技使用時 該当技の技データ00~24が入る(次技使用直前まで値が残る)
$7E:9100原始編・ざき3戦目のみ ポゴの攻撃が命中した回数(4回目を当てた直後に戦闘が強制終了する)
$7E:9200~現代編・幕末編・功夫編修行 敵が使った技または心山拳老師が使った技(命中時)のIDが順に入る。$7E:9200の初期値は$00
(ラーニング判定用。敵/老師が技を使う度に、$7E:9200から順に$00が書き込まれたアドレスの値をチェックして、被っていないのなら敵/老師の使用技ID+次のアドレスに$00を書き込む)
$7E:A010$7E:A011現代編ワタナベイベント判定用の計算値(「カミツキ(青)」使用時のみ0以外が入る)
$7E:A01Aサモの「ほいこーろー」のSTEP数が蓄積される
$7E:A01D現代編ワタナベイベントのエイジャの向き判定 左上向きは$79、それ以外は$38
$7E:A020$7E:A47F技モーション計算用の値
$7E:B005$7E:B5FB表示する文字列のビットマップデータ(文字の画像データ)コピー先
$7E:D000$7E:DFFF戦闘中のキャラスプライト(元データからのコピー)
$7E:F980$7E:F99E技用のカラーパレットコピー先
$7E:FEF0戦闘中タイマー(下位バイト)
$7E:FEF1戦闘中タイマー(上位バイト)
$7E:FEFA通常$00、ハルマゲドンコマンドONの時$FFが入る
$7E:FEFB通常$00、最終編ラストバトルの7つの像の部屋の7連戦のみ$01
$7E:FEFC技データ24の効果音を繰り返す回数カウンター。技データ20の効果音サブルーチン時に$00を書き込んで初期化し、技データ24の効果音が鳴ると+1していく。多段ヒット技でヒット数の回数分効果音を鳴らす場合、鳴る度に+1
$7E:FEFDターン数(フィールドダメージ発動計算用。リセット時に0、メニュー開いても0、戦闘をまたいでも引き継ぎ)
$7E:FF00$7E:FF60表示する文字列のデータコピー先
$00:04C8$00:04FEの戦闘フィールドについて

戦闘フィールドは7×7マスで構成されているが、各マスに対応したアドレスは以下の通り。
$00:04????の値部分のみ記している。
各アドレスに、現在居るキャラクターと、ダメージフィールド状態が記録される。

C8C9CACBCCCDCECF
D0D1D2D3D4D5D6D7
D8D9DADBDCDDDEDF
E0E1E2E3E4E5E6E7
E8E9EAEBECEDEEEF
F0F1F2F3F4F5F6F7
F8F9FAFBFCFDFEFF

一番右の灰色背景部分は実際には戦闘フィールドではないため、$00が入っている。
プログラミング上、7という数字はキリが悪いので、横8×縦7でアドレスを設定しているようである。

各アドレスに入る数値は、何もなければ$00、それ以外はキャラクターの数値+ダメージフィールド状態の合計値になる。
敵が複数マスにまたがっている場合は該当マスに同じ数値が入る。

数値内容
$01味方キャラ1
$02味方キャラ2
$03味方キャラ3
$04味方キャラ4
$11敵キャラ0
$12敵キャラ1
$13敵キャラ2
$14敵キャラ3
$15敵キャラ4
$16敵キャラ5
$17敵キャラ6
$18敵キャラ7
$19敵キャラ8
$1A敵キャラ9
$1B敵キャラA
$1C敵キャラB
$1D敵キャラC
$1E敵キャラD
$1F敵キャラE
$80水フィールド
$A0毒フィールド
$C0火炎フィールド
$E0電撃フィールド
戦闘中の味方キャラデータ

戦闘時に読み書きされるアドレス。
最大4キャラ分のデータ領域。各64バイト。

味方キャラ番号アドレス
1$7E:1C00$7E:1C3F
2$7E:1C40$7E:1C7F
3$7E:1C80$7E:1CBF
4$7E:1CC0$7E:1CFF

各キャラに入る64バイト分のデータは以下の通り。
便宜上、64バイト分のデータに$00$3Fと番号を付けた。
空欄は筆者には不明な部分。

数値内容
$00味方キャラID
$01戦闘状態
$00:戦闘離脱 $20:味方キャラ敵対 $40:敵操作状態 $FF:通常)
$02 
$03シナリオ別キャラデータ開始アドレス(下位バイト)
$04シナリオ別キャラデータ開始アドレス(上位バイト)
$05技関係状態
$00:通常 $40:タメ時間中 $F0:技を出している最中
$06タメ時間ありの技発動までの時間
$07実行しようとしている技のタメ時間
$08 
$09 
$0A 
$0B 
$0C 
$0D 
$0E 
$0F 
$10キャラの位置のX軸(ピクセル単位・後述) 下位バイト
$11キャラの位置のX軸(ピクセル単位・後述) 上位バイト
$12キャラの位置のY軸(ピクセル単位・後述) 下位バイト
$13キャラの位置のY軸(ピクセル単位・後述) 上位バイト
$14ひとつ前の技(初期値$00の時にXボタンで前の技を選ぶと初期技を選択)
$15 
$16 
$17 
$18キャラ位置のマス目のX座標(左から$00$06
$19キャラ位置のマス目のY座標(上から$00$06
$1A途中計算用X座標
$1B途中計算用Y座標
$1C 
$1D向き(右下00/左下01/右上02/左上03
$1E 
$1F 
$20戦闘中に経験値が増える行動をしたかのフラグ。行動なし:$00 行動あり:$80
$21 
$22 
$23 
$24 
$25 
$26 
$27 
$28技の範囲指定~使用中、キャラ位置のマス目のX座標
$29技の範囲指定~使用中、キャラ位置のマス目のY座標
$2A 
$2B 
$2C 
$2D無効状態異常
$2ELV(現在値) - 背面補正(減算結果が負の場合は$00)※ダメージ受けた時に計算値が入る
$2F敵攻撃範囲内判定値
初期値$00, 敵攻撃時に範囲内にいると+1(味方キャラに$01$04の値が入る)
$30力(通常値)
$31速(通常値)
$32体(通常値)
$33知(通常値)
$34力(現在値)
$35速(現在値)
$36体(現在値)
$37知(現在値)
$38LV(現在値)
$39状態異常
$3A被ダメージ/回復量のヒット数
$3Bヒット数
$3C被ダメージの単発値(下1バイト)
$3D被ダメージの単発値(上1バイト)
$3E 
$3F 
キャラのピクセル単位の位置について

味方キャラが戦闘フィールドのどの位置に居るかを記録しているアドレスは、上の通りに$10$12$18~19に入る。
$18~19は、マス目を単位としており、$18は横方向(X座標・左から$00~$06)、$19は縦方向(Y座標・上から$00~$06)である。

$10$12だが、マス目ではなく、ゲーム画面の戦闘フィールド上のピクセル単位、つまりドット数での位置を示していると思われる。
スーパーファミコンの解像度は横256×縦224ピクセルで、戦闘フィールドは横32ピクセル×7マス(合計224ピクセル)、縦24ピクセル×7マス(合計168ピクセル)である。
16進数にすると、1マスのサイズは、横$20ピクセル、縦$18ピクセルで、戦闘フィールド全体は横$E0ピクセル、縦$A8ピクセルになる。

戦闘フィールド

$10に入る値は、戦闘フィールド左隅からの、該当キャラのドット絵の中心位置(単位ピクセル)になる。
$12に入る値は、戦闘フィールド上隅からの、該当キャラのドット絵の中心位置(単位ピクセル)になる。
例えば該当キャラが、左から2マス、上から3マスの位置に居る場合は、下図のようになる。

戦闘フィールド キャラが左から2マス、上から3マスの位置に居る

キャラの中心位置までの距離なので、横は$60ピクセル、縦は$3Cピクセル。
味方キャラデータ$10に入る値は$60、味方キャラデータ$12に入る値は$3Cということになる。

この値はピクセル単位で記録されているため、たとえばキャラが移動中、マス目とマス目の間にいる時はその値がフレーム単位(リアルタイム)で更新される。
また、ダメージをくらった時、キャラが左右に小さく動くモーションがあるが、この時にも横軸(X軸)にあたる味方キャラデータ$10の数値が少し動く。

以上から、マス目単位の味方キャラデータ$18$19は、向きや方向、位置を考慮した上でのダメージ量計算やターゲット計算などに用いられ、ピクセル単位でキャラの位置を記録する味方キャラデータ$10$12は、キャラのドット絵、技のモーションやエフェクトなどの表示位置計算に使っているのだろう、ということが推測できる。

味方キャラの技ID&関連ステータス

最大16種類の技、$00$0Fとしておく。

味方キャラ番号アドレス
1$7E:E900$7E:E93F
2$7E:E940$7E:E97F
3$7E:E980$7E:E9BF
4$7E:E9C0$7E:E9FF

例えば味方キャラ1の場合、以下のようにアドレスに値が入る。
技データ08は該当技が出せなくなる状態異常、技データ14~技データ15は反撃属性2バイト。
また、ラーニングなどでも技習得が可能な、レベル順に技を習得しないキャラの場合、アドレスは低い順に詰めて記録されていく(戦闘中の技一覧と同期している)。よって技LVとアドレスが必ずしも一致しない場合があるので注意。

技LV技ID技データ08技データ14技データ15
+反撃専用の値
00$7E:E900$7E:E910$7E:E920$7E:E930
01$7E:E901$7E:E911$7E:E921$7E:E931
02$7E:E902$7E:E912$7E:E922$7E:E932
03$7E:E903$7E:E913$7E:E923$7E:E933
04$7E:E904$7E:E914$7E:E924$7E:E934
05$7E:E905$7E:E915$7E:E925$7E:E935
06$7E:E906$7E:E916$7E:E926$7E:E936
07$7E:E907$7E:E917$7E:E927$7E:E937
08$7E:E908$7E:E918$7E:E928$7E:E938
09$7E:E909$7E:E919$7E:E929$7E:E939
10$7E:E90A$7E:E91A$7E:E92A$7E:E93A
11$7E:E90B$7E:E91B$7E:E92B$7E:E93B
12$7E:E90C$7E:E91C$7E:E92C$7E:E93C
13$7E:E90D$7E:E91D$7E:E92D$7E:E93D
14$7E:E90E$7E:E91E$7E:E92E$7E:E93E
16$7E:E90F$7E:E91F$7E:E92F$7E:E93F

※「技データ15+反撃専用の値」は、技データ15の上7ビット + 技データ13の上2ビット目に入っている反撃専用か否かの1ビット

味方キャラの状態

$7E:EA??は、計算途中の値なども含めた、味方キャラの状態に関する値が入る。各キャラ64バイト。

味方キャラ番号アドレス
1$7E:EA00
2$7E:EA40
3$7E:EA80
4$7E:EAC0
アドレス下2桁内容
$00首かため継続時間
$01足かため継続時間
$02腕かため継続時間
$03毒継続時間
$04マヒ継続時間
$05眠り継続時間
$06酔い継続時間
$07石化継続時間。0になっても石化は回復しない。
$20被ダメージ/回復量のヒット数
$2E~$2F被ダメージ/回復量の総ダメージ/回復量
$35回避属性判定
敵の種類

戦闘では最大4種類の敵が出現する。
最大4種類分のデータ領域。各64バイト。

敵種類アドレス
1$7E:1A00$7E:1A3F
2$7E:1A40$7E:1A7F
3$7E:1A80$7E:1ABF
4$7E:1AC0$7E:1AFF
数値内容
$00敵ID
$01該当の敵が居るなら$FF、居ないなら$00
$02横の幅(タイル数)※8×8ピクセルが1タイル
$03縦の幅(タイル数)
$04横の幅(マス数)
$05縦の幅(マス数)
$06VRAMグラフィック読み込み開始位置(VRAM$6000~から入る32×32タイルを1単位として、0からナンバリング)
$07VRAMグラフィックに占める行数(縦1×横4タイルを1単位としてデータに何行使用しているか)
$08 
$09CGRAMのカラーパレット開始アドレス(word単位)
$0A 
$0Bレベル
$0C 
$0D 
$0E 
$0F 
$10HP
10を下位バイト、11を上位バイトとした4桁の値
$11
$12技1の反撃属性1
$13技2の反撃属性1
$14技3の反撃属性1
$15技4の反撃属性1
$16技1の反撃属性2
$17技2の反撃属性2
$18技3の反撃属性2
$19技4の反撃属性2
$1A技1が使用不可になるステータス異常
$1B技2が使用不可になるステータス異常
$1C技3が使用不可になるステータス異常
$1D技4が使用不可になるステータス異常
$1E 
$1F 
$20敵データ00 移動パターン
$21敵データ01 上4ビット:フィールド吸収/下4ビット:移動頻度
$22敵データ02 (データアドレス呼び出しの値)
$23敵データ03 (データアドレス呼び出しの値)
$24敵データ04 HP *$80以上の時は、実際のHP = (敵データ04 & $7F) * $10
$25敵データ05 力
$26敵データ06 速
$27敵データ07 体
$28敵データ08 知
$29敵データ09 上1ビット:使用技を敵技IDから取得するなら0、味方技IDから取得するなら1/下7ビット:レベル
$2A敵データ10 無効状態異常
$2B敵データ11 使用技1 技ID 敵データ09上1ビットが0なら敵技ID/1なら味方技ID、以下敵データ14まで同じ
$2C敵データ12 使用技2 技ID
$2D敵データ13 使用技3 技ID
$2E敵データ14 使用技4 技ID
$2F敵データ15 タイプ
$30敵データ16 カウンター行動異常 手/足
$31敵データ17 カウンター行動異常 突/鋭
$32敵データ18 カウンター行動異常 鈍/締
$33敵データ19 カウンター行動異常 飛/背
$34敵データ20 カウンター行動異常 火/水
$35敵データ21 カウンター行動異常 風/土
$36敵データ22 カウンター行動異常 精/善
$37敵データ23 カウンター行動異常 悪/無 ※下1桁(4ビット)はそのまま種族の値
$38敵データ24 ドロップアイテム1
$39敵データ25 ドロップアイテム2
$3A敵データ26 ドロップアイテム3
$3B敵データ27 ※未使用データ
$3C敵データ28 ※未使用データ
$3D敵データ29 背後補正/側面補正
$3E敵データ30 回避属性 8ビットが手足突鋭鈍締飛背に対応
$3F敵データ31 回避属性 8ビットが火水風土精善悪無に対応
敵0~Eのデータ

敵は最大で15体出現する。便宜上、0~Eと番号を振ってある。
最大15キャラ分のデータ領域。
なお、戦闘に入った時、前の敵データを消さずに上書きするだけらしく、例えば敵パーティが4体の戦闘の後に敵パーティが2体の戦闘になった時、敵0と敵1のデータは上書き更新されるが、前の戦闘の敵2と敵3のデータは残ったまま。

$7E:AB??~以降は、ほとんどの場合、計算用に他アドレスからコピーした値や、計算途中の値が入る。
計算途中の値であるため、数フレームの間しか値が入らない、または入ってもすぐに変動することも多い。

敵キャラアドレス
0$7E:1B00$7E:1B0F, $7E:AA00$7E:AA0F, $7E:AB00
1$7E:1B10$7E:1B1F, $7E:AA10$7E:AA1F, $7E:AB10
2$7E:1B20$7E:1B2F, $7E:AA20$7E:AA2F, $7E:AB20
3$7E:1B30$7E:1B3F, $7E:AA30$7E:AA3F, $7E:AB30
4$7E:1B40$7E:1B4F, $7E:AA40$7E:AA4F, $7E:AB40
5$7E:1B50$7E:1B5F, $7E:AA50$7E:AA5F, $7E:AB50
6$7E:1B60$7E:1B6F, $7E:AA60$7E:AA6F, $7E:AB60
7$7E:1B70$7E:1B7F, $7E:AA70$7E:AA7F, $7E:AB70
8$7E:1B80$7E:1B8F, $7E:AA80$7E:AA8F, $7E:AB80
9$7E:1B90$7E:1B9F, $7E:AA90$7E:AA9F, $7E:AB90
A$7E:1BA0$7E:1BAF, $7E:AAA0$7E:AAAF, $7E:ABA0
B$7E:1BB0$7E:1BBF, $7E:AAB0$7E:AABF, $7E:ABB0
C$7E:1BC0$7E:1BCF, $7E:AAC0$7E:AACF, $7E:ABC0
D$7E:1BD0$7E:1BDF, $7E:AAD0$7E:AADF, $7E:ABD0
E$7E:1BE0$7E:1BEF, $7E:AAE0$7E:AAEF, $7E:ABE0
アドレス内容
$1B00敵ID
$1B01戦闘状態
$00:戦闘離脱 $20:敵キャラをプレイヤーが操作 $40:味方キャラが敵状態 $80:敵総数+1の敵番号 $FF:通常
$1B02 
$1B03
$1B04向き(右下$00/左下$40/右上$80/左上$C0
$1B05技関係状態
$00:通常 $40:タメ時間中 $80:移動中 $F0:技を出している最中
$1B06実行中の技のタメ時間(残り時間)
$1B07行動状態
$1B08途中計算用のマス目のX座標(左から$00$06)※敵の左上マス基準
$1B09途中計算用のマス目のY座標(上から$00$06)※敵の左上マス基準
$1B0A現在のキャラ位置のマス目のX座標(左から$00$06)※敵の左上マス基準
$1B0B現在のキャラ位置のマス目のY座標(上から$00$06)※敵の左上マス基準
$1B0Cキャラの位置のX軸(ピクセル単位) 下位バイト
$1B0Dキャラの位置のX軸(ピクセル単位) 上位バイト
$1B0Eキャラの位置のY軸(ピクセル単位) 下位バイト
$1B0Fキャラの位置のY軸(ピクセル単位) 上位バイト
$AA00現在HP
$AA00を下位バイト、$AA01を上位バイトとした4桁の値
$AA01
$AA02行動異常
$AA03力(現在値)
$AA04速(現在値)
$AA05体(現在値)
$AA06知(現在値)
$AA07状態異常
$AA08首かため回復までの残り時間
$AA09足かため回復までの残り時間
$AA0A腕かため回復までの残り時間
$AA0B毒回復までの残り時間
$AA0Cマヒ回復までの残り時間
$AA0D眠り回復までの残り時間
$AA0E酔い回復までの残り時間
$AA0F石化すると値がつく
$AB00LV(現在値)
$AB01攻撃/回復技の対象の範囲内にいる敵には順に$01~が入り、範囲外だと$FFが入る。
$AB02被ダメージ/回復量のヒット数
$AB03ヒット数(倒れるか999以上の時$FF?)
$AB04$AB05被ダメージの単発値(2バイト)※被ダメージは技だけでなくフィールドダメージなども含む
$AB06 
$AB07 
$AB08行動異常(計算用)
$AB09状態異常(計算用)
$AB0Aレベル現在値(向き補正込みの計算値)
$AB0B向き補正(正面:$00, 側面:$01, 背面:$80)
$AB0C状態異常(技によって発生した値、これと既に発生している状態異常を加算する)
$AB0D 
$AB0E 
$AB0F 
$AC00使用技(決定前)
$AC02$AC03技の範囲指定~使用中、キャラ位置のマス目のY/X座標
$AC04$AC05順序ポイント(2バイト)
$AC07移動または向き変え時、相対位置判定で一番近い位置の味方キャラ番号
$AD00$AD01被ダメージの総ダメージ量(2バイト)


このページをシェアする

上へ