裏CHUNSOFT > ROMイメージ改造・解析 > アドレスリスト

アドレスリスト

風来のシレンでは、ROMの内容はメモリC00000〜FFFFFFにそのまま読み込まれます(ゲームソフトによっては、そう単純にはいかないこともあります)。 C08000〜C0FFFFの内容は、008000〜00FFFF、808000〜80FFFFにも読み込まれているようで(C18000〜C1FFFFも同様)、特殊な処理でそちらが実行されることもありますが、違いはよく分かりません。

プログラムの部分を理解するにはSFC用の逆アセンブラとそのアセンブリ言語に関する知識が必要です。 データの部分は、数値の意味がバイナリエディタを眺めれば明らかなものは当サイトでも解説していません。 数値の意味を推測することも改造・解析では重要です。

000000〜00FFFF プログラムその0

特殊な処理が多いです。

開始終了内容
00025C0063B7キャラのグラフィックデータオフセット
007E8E007FFF空き領域
008000008001FF FFで通常、00 00でデバッグモード
008002008080プログラムはここから実行される。メモリの初期化等。最も「親」のルーチン
00FFB000FFBFゲームコード(91AAXJ)
00FFC000FFD4ゲーム名(FURAI NO SIREN)
00FFE400FFFF割り込み時等にジャンプするアドレス表

010000〜01FFFF プログラムその1

普通の解析でよく見かけます。

開始終了内容
015240015A42NPC出現スクリプト
015B07015B64お竜の出現判定
015FE0016047座頭ケチの出現判定
0164CA016519飛脚の出現判定と選択

020000〜02FFFF プログラムその2

普通の解析でよく見かけます。

開始終了内容
0210AC0210D3キャラ番号$00の情報取得、$00=X座標,$01=Y座標,$02=方向,$03=キャラコード,$04=外見
0210D40210FEキャラ番号$00の情報取得、$00=現在HP,現在HPが0でなければ更に$01=外見,$03=方向,$04=X座標,$05=Y座標
0210FF021127キャラ番号$00の情報取得、$01=外見,$03=方向,$04=X座標,$05=Y座標,$06=キャラコード
021128021166キャラ番号$00の情報取得、$00=現在HP,$01=最大HP,$02〜$04=経験値,$05=レベル,$06=防御力,$07=攻撃力または剣の強さ
021167021183$00=ちから,$01=ちからの最大値,$02〜$05=ギタン,$06〜$07=満腹度
021184021194$00=$7E89B4,$01=$7E89B6
0234560236AAシレンの攻撃力計算、$00 = ($00 + 8)*(素手の攻撃力)/16
023935023958$00 = (00以上02以下の乱数) + (00以上02以下の乱数) + 02
023B89023BA5装備中の道具の道具番号を取得 $00=(武器),$01=(盾),$02=(腕輪),$03=(矢)
025E3B025FBAモンスターの行動処理オフセット(基点は020000+1)
026322026336やみふくろう
0284C8028587種族毎の弱点表
02945B0294A1シレンの素手の攻撃力
0294A20299E1ステータス表(レベル1)
0299E2029F21ステータス表(レベル2)
029F2202A461ステータス表(レベル3)
02A46202B0ECモンスター分布図(種族)
02B0ED02BD77モンスター分布図(レベル)
02BD7802CA02モンスター分布図(出現率、フロアの区切りも兼ねる)
02CA0402CAD8レベルアップに必要な経験値表
02CAD902CAF3フロア生成で用いられるパラメータ表

030000〜03FFFF プログラムその3

普通の解析でよく見かけます。

開始終了内容
03035D03039F$00の道具出現(値は自動で決定)
0303A00303CF武器、盾、腕輪の修正値を決める表
03041A030432道具を決めて出現させる
0304B403050B落ちている道具を1つ決定する
03059A0305F2合成・ブフー・つるはし・大部屋・モン巻の出現可否チェック、$00 = 00(不可),01(可)
03155D031579めぐすり草
031C70031CC3おはらいの巻物
031F29031F58ガイコツまどう系の杖の処理オフセット
0322ED0322FCパルプンテの巻物の処理オフセット
0341BB0342A2道具のグループ表
0342A303438A武器・盾の強さ
03438B034472修正値の最小値
03447303455A修正値の最大値
03455B03472A道具を使った時の処理オフセット(基点は030000+1)
03472B0348FA道具を投げた時の処理オフセット(基点は030000+1)
0348FB034986道具のグループの出現率
034987034A9E道具のグループ毎のオフセット(基点は034A9F)
034A9F034DFF道具の出現率
034E00035160道具の種類
0351610353B2出現する肉の種類
03546C035487地形のタイプ別処理オフセット
0355BD0355D6地形のタイプを決める表のオフセット
0355D703575C地形のタイプを決める表
03579B035807フロア生成(シャッフルダンジョン)
035808035849フロア生成(フェイの問題)
03584A03584Aフロア生成(欠番、RTS)
03584B035895フロア生成(通常の地形)
0358960358A9フロア生成(4分割前半、後半は大部屋と共用)
0358AA0358BDフロア生成(2分割前半、後半は大部屋と共用)
0358BE0358E9フロア生成(大部屋)
0358EA03590Dフロア生成(2分割、片方の部屋は迷路)
03590E03592Dフロア生成(大迷路)
03592E035943フロア生成(飛び地前半、後半は一本道と共用)
035944035959フロア生成(2分裂前半、後半は一本道と共用)
03595A03596Cフロア生成(格子前半、後半は一本道と共用)
03596D03597Fフロア生成(外周前半、後半は一本道と共用)
0359800359AEフロア生成(一本道)
0359AF0359D0座標($00,$01)のマス情報取得、$00=キャラ番号, $01=道具・罠, $02=地形
035B7A035BA1座標($00,$01)のキャラ番号=$02,他にも何かしている
0366C40366D4"X"番目の部屋を暗闇にする
036BB0036BBC$00 = (シャッフルダンジョンのマップ番号)
036BBD036BCD座標($00,$01)を1次元にする、"Y"のbit0〜5に$00のbit0〜5、bit6〜13に$01、bit14〜15に00を入れる
036BCE036BDE座標"Y"を2次元にする、$00に"Y"のbit0〜5、$01にbit6〜13を入れる
039D8C039E1C柱部屋の出現判定と出現処理
03B77C03B811フェイの問題、地形データオフセット
03B81203B8A7フェイの問題、道具データオフセット
03B8A803B93Dフェイの問題、階段の位置オフセット
03B93E03B9D3フェイの問題、罠データオフセット
03B9D403BA69フェイの問題、敵データオフセット
03BA6A03BAFFフェイの問題、部屋データオフセット
03BB0003BB95フェイの問題、出現しうる罠データオフセット
03BB9603D218フェイの問題データ
03D49203D4C3罠を踏んだ時の処理オフセット
03D4C403D4F5罠作動時のメッセージ番号表
03D4F603D527罠不発時のメッセージ番号表
03E15803E169デモデータオフセット
03E3CB03E404$00(2バイト) = $00 * $01
03F65F03F682$00 = (乱数)(普通の処理で使われるのはこちら)
03F68303F69E$00 = (乱数8回の平均)
03F69F03F6BD$00 = ($00以上$01以下の乱数)(256段階)
03F6EC03F70F$00 = (乱数)(アルゴリズムは上と同じだが、こちらは上とは独立で、$BA〜$BDを使う)
03F71003FFFF空き領域

040000〜04FFFF プログラムその4

この辺は普通の解析ではあまり見ません。

050000〜05FFFF プログラムその5

この辺は普通の解析ではあまり見ません。

060000〜06FFFF プログラムその6

値を取得するだけのルーチンや、メッセージやエフェクトを表示したりするような特殊なルーチンが多いようです。

開始終了内容
06051206051E$00 = $7ED294 + $00 (イベント$00の進行度)
062525062539メッセージ番号$00(2バイト)のメッセージ表示
062565062579キャラ番号$00のキャラに、エフェクト番号$02のエフェクトを再生
06275B062765$00 = $7ED5EC
062766062770$00 = $7ED5FE
06277106277B$00 = (フロア)
06277C062786$00 = $7ED5FA
062787062791$00 = $7ED5FB
06279206279C$00 = (場所)
0627B20627BC$00 = (町における初期X座標) , $01 = (町における初期Y座標)
0627BD0627C7$00 = $7ED5ED
0627DB0627E5$00 = (ダンジョンA)
0627E60627F0$00 = (ダンジョンB)
062B37062B41$00 = 00(町),01(ダンジョン)
062B42062B4C$00 = 00(マップなし),01(マップあり)
062B4D062B57モンスターハウス予約をする
062B58062B68$00 = (モンスターハウス予約) , モンスターハウス予約を示す値を00にする
0690600690D7レベル2,3のモンスターのパレット表

070000〜18FFFF キャラのグラフィックデータ

開始終了内容
07000018771Fキャラのグラフィックデータ
18772018FFFF空き領域

190000〜1B0FFF

開始終了内容
19A29819A88F価格リスト(壺以外)
19A89219A921価格リスト(壺)
19A92219FFFF空き領域

1B1000〜1BFFFF デモデータ

1B10001B1C59デモ1(SELECT+風来日記1,杉並の旧街道)
1B1C5A1B28BAデモ2(SELECT+風来日記2,竹林の村)
1B28BB1B35C5デモ3(SELECT+風来日記3,断崖の岩屋)
1B35C61B4224デモ4(START+風来日記1,山頂の町)
1B42251B4F15デモ5(START+風来日記2,テーブルマウンテン)
1B4F161B5B6Cデモ6(START+風来日記3,地下水脈の村)
1B5B6D1BFFFF空き領域

1C0000〜3DFFFF

1C02801C03FF古印体データ(数字)
1C04001C04BD古印体データオフセット
1C04BE1C1AD0古印体データ
1C699C1C71B9フォントデータオフセット(基点は1C79D8)
1C71BA1C79D7フォントデータ、文字毎の幅と高さ
1C79D81CDEB3フォントデータ
1CDEB41CFFFF空き領域
1D40041D40BAサウンドデータオフセット、没データ(基点は1D4000)
1D40BB1D4426サウンドデータオフセット(基点は1D4000)
1D4CBC1F214Eサウンドデータ、没データ
1F214F1FFFA1サウンドデータ
1FFFA21FFFFF空き領域
3B00003B0063武器・杖・盾のグラフィックデータオフセット
3B00643B8BB9武器・杖のグラフィックデータ
3B8BBA3B8D0D武器・杖のパレット(独自の色のみ、5色ずつ)
3B8D0E3BB8D5盾のグラフィックデータ
3BB8D63BB995盾のパレット(独自の色のみ、6色ずつ)
3BC5B93BCCC0モンスター・道具・罠のパレット(15色ずつ)
3BCCC13BD700道具のグラフィック
3DD5E93DE468道具と出にくい罠のグラフィック
3DE4693DFB68階段と出やすい罠のグラフィック(謎の没グラフィック1枚あり)
3DFB693DFFFF空き領域

3E0000〜3FFFFF テキスト

開始終了内容
3E00003E1297テキストデータオフセット(基点は3E0000または3F0000)
3E12983F1074テキストデータ
3F10793F11FA何かのタイムスタンプ
3F11FB3FFFFF空き領域

2010年3月7日更新

裏CHUNSOFT > ROMイメージ改造・解析 > アドレスリスト