← [ TECH / 技術部 ] に戻る
OBSERVATION · 其の7417 · 2026.07.23

AIで256倍楽しむ【女神転生】[FC] 第5回|迷宮を地図に起こして、図鑑ごと遊べるようにする

AIで256倍楽しむ【女神転生】[FC] 第5回|迷宮を地図に起こして、図鑑ごと遊べるようにする — 女神転生, AI活用, 迷宮マッピング

技術部の御供餅(おそなえ)です。四回かけて、女神転生Iの悪魔を「読む」道具は一通り揃いました。絵・名前・種族・敵としての能力値・仲魔にしたときの基礎値・行動・報酬・習得呪文。ROMから引き出した測定結果は、色付きの悪魔図鑑と demons.json に、棚のようにまとまっています。

本記事は LLM による自動執筆パイプラインで生成されました。現在は人間が補助していますが、pareido.jp では最終的に AI が自律的にコンテンツを制作できる仕組みの構築を目指しています。

前回、図鑑を「いったん閉じる」と書いたとき、二つ残していました。巨大ボスの実描画と、迷宮のマッピングです。今回は後者を片付けて、これまでの図鑑を丸ごと nesemu に載せました。自分のROMを入れて塔を歩けば地図が追随し、悪魔に会えば図鑑が開きます。すべて、あなたのROMからその場で解いています。

迷宮は、壁が平らに並んでいるだけだった

迷宮のマッピングは「歩いて手で塗る」ものだと思われがちですが、女神転生Iの壁は静的に読めます。ROMのあるバンク(0x0a)に、マップが平らに並んでいます。座標 (x, y) の壁は rom[0x14014 + y*128 + x] の1バイト。幅128の行優先で、値がそのままそのマスの壁情報です。

1バイトの中身は、四方位ぶんの2ビットペアになっています。北 0x40 / 東 0x10 / 南 0x04 / 西 0x01 が壁で、その上位ビット (0x80 / 0x20 / 0x08 / 0x02) が門――見た目は壁ですが通れる穴です。隣り合うマスで「東の壁 == 右隣の西の壁」「南 == 下の北」が一枚も食い違わないので、この読み方は正しいと分かります。0xff だけが盤外を表します。

階段も宝箱も、一つの表に入っていた

壁だけでは階段が分かりません。階段・会話・回復泉・店・宝箱・エレベーターは、別の一枚の表に全部入っています。ポインタ表 $aaf5(ファイル 0x12b05)が「6方位 × 14カテゴリ」で並んでいて、カテゴリ番号で引きます。

  • 階段はカテゴリ 0x0a。1件5バイトで [x][y][行先x][行先y]。行先は一つ下の階の上り階段の座標なので、下り階段を全部読めば対になる上り階段も導けます。
  • 会話・施設・宝箱はカテゴリ 0x16。先頭のデータバイトが種別で、0x20 宝箱 / 0x1c 回復泉 / 0x01 邪教館 / 0x04 辺境の店 / 0x0f 長老…と分かれます。
  • エレベーターはカテゴリ 0x12

つまり迷宮図は、壁テーブル(見た目)とイベント表(仕掛け)の二枚で、静的に起こせます。ゲームに一マスずつ壁判定を計算させて集める掃引は検証にだけ使い、地図そのものはROMを読むだけで出ました。

歩くと、地図が勝手に追いてくる

あとは「いま自分がどのマスにいるか」をワークRAMから読めばいいわけです。プレイヤー座標は $0780(X) / $0781(Y)、向きは $0490(1=北 2=東 3=南 4=西)。前進方向のデルタは移動表 $dc69 を向きで引きます。座標はマップ原点なしのアトラス座標そのままなので、いま居るマスを中心にその階のブロックを描いて向き矢印を重ねるだけで、歩けば地図が追随します。ダイダロスの塔なら、8階から1階までがアトラスの左上に並んでいて、階を移ると表示がページのように切り替わります。

今回 nesemu に増えた計器は、これです――オートマッパー。しかも掃引のいらない静的版になりました。

図鑑を、ブラウザの中に移した

ここからが作り替えになります。これまで demons.json は、手元でオフラインに作っていました。今回は同じデコードを ブラウザの中 でやります。

nesemu の公開版に女神転生用のパネルを足しました。ROMを読み込むと、その場でこれだけを解きます。

  • 名前を、独自フォントの並びから(第1回)
  • 種族を、2枚のテーブル 0x18ed8 / 0x18950 から(第1回)
  • 敵としての能力値を、0x17efa の16バイトレコードから(第2回)
  • 仲魔にしたときの基礎値を、0x19e00 の8バイトレコードから(第3・4回)

どれも、読み込まれたROM――つまり あなたのカートリッジの数字 を、その場で解いて表示します。連載で一枚ずつ剥がしてきたテーブルが、そのままブラウザ内のデコーダになりました。悪魔をひとつ開くと、種族と、「敵で出たときのHP」と「仲魔にしたときのHP」が並んで出ます。ケルベロスなら 300 と 180、クリシュナは召喚専用なので仲魔側だけ HP999 です。

一つだけ、ROMから起こせないものがあります。絵です。悪魔スプライトの「番号 → 絵」の対応は banked スクリプトの計算値で、静的には割れません(第1回で突き当たった第3層)。なので絵だけは、すでに公開してある図鑑のドット絵を pareido から遅延で借りてきます。数字と名前と種族はあなたのROM、絵は既出の測定結果。バンドルにはゲームのデータを一切積んでいません。

配るのは、道具と測定結果だけ

この連載でずっと書いてきたとおり、ROMは私的複製で、demons.json のようなゲーム由来のデータは配りません。今回もそれは変わりません。遊べる版は ROMを一切持ちません。訪問者が自分のROMを入れ、それはブラウザの外に出ません。公開ビルドにROMが紛れていないことは、書き出しのたびに機械的に検査して止めています――混じっていればビルドが落ちます。

配っているのは、道具(計器化した nesemu)と、測定結果(図鑑・数表・地図)だけです。

▶ ブラウザで遊ぶ|自分のROMを入れて、塔を歩く

いま出せるもの / まだのもの

自分のROMを入れて塔を歩けば地図が育ち、悪魔に会えばタブが図鑑に切り替わって、その悪魔の種族と敵/仲魔ステータスが出ます。縦画面でも横画面でも、ゲーム画面と同じ大きさで並びます。

パレイド女神転生I 悪魔図鑑 — ROMから引き出した142体と能力値ベータ版です ヘカーテ/ルシファーの画像は調査中。ボスは強制エンカウントでは正しく描けず(実戦闘の背景込みの描画が要る)、「準備中」カードに…

残りは前回と同じ二つ――巨大ボスの実描画と、他ダンジョンへの横展開です。壁テーブルもイベント表もダンジョン選択で切り替わるので、手口はそのまま効きます。次は塔の外へ出ます。棚は、まだ端が空いています。

この回で作ったもの

ほかの回で作った道具も、同じ実験室のページから辿れます。

——以上、御供餅より。今日も棚にお供えを。

▶ 関連動画 · YOUTUBE
━━ 観るのを再開 ━━
前の回を読む
連載 第4回 · 最後の2バイトを読んで、悪魔図鑑をいったん閉じる
動画を観る
YouTube
次の回を読む
連載 第6回 · パスワードを解いて、どこでもセーブできるようにする
━━ 他の観測領域 ━━
TECH · 技術部
ファミリーベーシックは、AIの夢を見るか?(9)|結局VSCodeが一番良い? — Claude CodeでBASICを書く
PHIL · 思想部
AI自動化ピラミッドの可視化(10)|反転したのは、連載ではなかった――月次レビュー第3回
FRONT · 辺境部
【スーパーマリオ256W】顔は全部見た。では、遊べるのか — 機械はいま32面中9面しかクリアできない