【[Stirling]を使った編集】
ここでは[Stirling]を使ってROMを編集して説明します。
まず、編集する前に以下のものが全てあるか確認してください。
・FF6のROMデータ
・[Stirling]
・FF6構造体([Stirling]と同じフォルダに入れ、名前が「struct」であるか)
上記3つが確認出来たら次へ行きます。
では、編集を始めますが、その前にROMデータのバックアップを取って起きましょう。
もし編集に失敗して間違って保存し終了した時にも大丈夫なように(エラーで強制終了しても大丈夫なように)
1:ヘッダの削除
ROMにはヘッダというものがあります(付いていない場合もあります)
このヘッダとは無くても正常に起動しプレイできます。
なぜ、ヘッダを削除するのかというと
ヘッダは先頭0x000000から0x0001FFまで0x200バイトあり、その後ろに実際のデータが並んでいます。
このヘッダがあると実際のデータが0x200バイトずれてしまい編集し辛くなります。
なので、始めにこのヘッダを削除して編集しやすくします。
しかし、ここで注意が必要です。
先ほど「付いていない場合もある」と記述しましたが、付いていないROMから0x200バイト削除するとROMが破損してしまいバグってしまいます。
では、どのようなデータがヘッダなのか?
私は全てのROMのヘッダを見たわけではないので一概にそうとは言い切れませんがFF6の場合実データの開始データを把握していますのでそれで説明します。
アドレス0x000000の位置から「20 79 68 6B 03 00 08 08 4C A8 C0 4C 3F 4A EA EA」と検索します。
検索結果のアドレスが0x000200だとヘッダが存在します。
【ヘッダが有る場合】
【ヘッダが無い場合】
※これがFF6の開始位置のデータです。上記「」内の数字をそのままコピペしてください。
検索結果が0x000000の場合は検索されません(検索開始位置と検索データ一致位置が同じなので検索されません)
上記の確認をして、検索結果アドレスが0x000200の場合はヘッダを削除しましょう。
0x000000から0x0001FFまで選択し
右クリック
選択範囲の削除をクリック
これでヘッダを削除出来ました。
このヘッダなしのROMを保存して置きましょう(改造する場合はこの方が良いので)
2:検索、置換、移動、比較
まずは検索をして見ましょう。
検索欄に「2A C5 46」と入れて検索します。
次検索を押すといくつか見つかりました。
では置換をして見ましょう。
データ位置を先頭にして、
検索欄に「2A C5 46」
置換欄に「9E 8C A6」
と入力します。
「一括置換」を押し置換を行います。
18個置換されたと思います。
これで、データの変更が出来ました。
何が変わったのかエミュレータで確認してみましょう。
と、その前にこの置換したデータを別名で保存してください。
(ヘッダなしのROM(置換前)とヘッダなしのROM(置換後)の二つある状態にして下さい)
ゲームを進めて最初の「ガード2体」と戦ってみましょう。
「ガード」という名前が「ミイラ」に変わっていたら成功です。
では編集に戻ります。
次は移動してみましょう。
「FC800」と移動先アドレスを入力して移動します。
ここが戦闘時に表示される「ガード」の名前の先頭文字です。
次は比較してみます。
ヘッダなしのROM(置換前)とヘッダなしのROM(置換後)を開きます。
比較ボタンを押します。
と表示されるので「OK」を押します。
「比較結果の強調表示」と「シンクロスクロール」にチェックを入れます。
相違箇所をダブルうリックして移動しましょう。
変更(相違)箇所が赤で強調されています。
変更前のデータがどこにあり、何バイト変更されているのかがわかります。
これを利用して元のデータの修復などを行うことにも使用できます。
基本操作は以上です。
※ヘッダなしのROM(置換後)は削除してください。
3:構造体での編集
では、上で変更したことを構造体を使って変更してみましょう。
ヘッダなしのROMを開きます。
構造体編集ボタンを押します。
構造体が起動するので、変更したい項目を選びます。
<注意>構造体開始位置が000000では無い場合は000000を指定し開始位置を変更しましょう!
※「アドレス指定」、「アドレスベース」の「16進」にチェックを入れ、
「アドレス」に「0」と入力し「OK」を押す。
変更項目から「FF6モンスター名」を選択します。
ズラっとモンスターの名前が書かれた状態になったと思います。
「ガード」の項を開きましょう。
※10進数の表記になっているので「右クリック」→「一括基数指定」→「16進表示」を押し、表示を16進数にしましょう。
「ガード」の項目を開くと
0x2A
0xC5
0x46
0xFF
0xFF
0xFF
0xFF
0xFF
と表示されています。
この「0x2A」「0xC5」「0x46」が「ガード」という文字になっています。
[FF6文字コード変換]を使って読むことが出来ます。
因みに0xFFは何もなし(スペース)をあらわします。
では、この「0x2A」「0xC5」「0x46」を以下のように変えてみましょう。
0x91
0x87
0x73
0xFF
0xFF
0xFF
0xFF
0xFF
変更したら、また別の名前で保存しましょう。
(ヘッダなしのROM(変更前)とヘッダなしのROM(変更後)の二つある状態にして下さい)
変更されたかエミュレータで確認してみます。
これが構造体の機能です。
最初の方法は「ガード」という文字コードがわからないと出来ません。
さらに、「ガード」という文字を全て変更してしまいます。
実は「ガードリーダー」も「ミイラリーダー」になっています。
しかし、この構造体を使用すれば文字コードで探さなくても変更したい項目を選んで変更するだけで出来てしまいます。
構造体は編集することも出来ますので、自分に合った(ROMに合わせた)構造体が作れます。
【構造体の編集方法】[工事中]
これで[Stirling]の基本機能と操作方法の説明を終わります。
戻る