![]() 改造入門 −第1章−
さて、第0章に続きこのページでもコードの仕組みについて触れてみたいと思います。 改造コードによっては1行でなく、2〜4行で掲載されているものもありますが、 これは意味もなく行数が増えているのではありません。 例えばRPGの主人公の経験値が3行で掲載されていた場合 『3行全て入力しないといけないんですか?1行だけじゃダメですか?』 と、疑問に思われた方も多いと思います。 結論から言えば、3行全て入力しなくてはいけません。 コードの行数は改造する数値と常に比例しているからです。詳しくは下記で紹介します。 1.コードの仕組み LV2 経験値のアドレスが0001だったとすると、GB用のコードでは 01xx0100で表記するというのは第0章を読んでいただければわかると思います。 そこで主人公の経験値が最大○○○だった場合を考えてみたいと思います。 もし最大値が99だとしたら、16進数では63と表しますよね? この数値をxxに代入すると、01630100となり、1行で改造できるわけです。 01630100 では、最大値が9999999だった場合はどうでしょうか? 16進数では98967Fとなりますので、当然1行では収まりません。 16進数の桁数にあわせてxxも増やしていきます。 この時、アドレスが1ずつ増えていくことにご注意下さい。
2.好みの数値に変更する方法 経験値などの最大が9999999であっても、その数にあわせる必要はありません。 所持金を100Gにしたり攻撃力を200にしたり、 とにかく、改造コードさえわかっていれば自分好みに変更することができます。 もし経験値を99に変更する場合は、コードも1行ですむわけですから 残った行数には全て00を代入して下さい。 【行数は各項目(経験値など)の最大値に比例します。9999999の場合は3行】 01630100 01000200 01000300 256以上の数値に改造する場合もやり方は同じです。 なお、代入する数値は各項目の最大値桁数でないと都合が悪いので、 足りない分は必ず先頭に0を付けるようにして下さい。
続けて16進数をxxに代入すればいいのですが、 その前に一つだけ注意しなくてはいけないことがあります。 3.リトルエンディアンとビッグエンディアン GB用コードのアドレスが逆に表記されているのはすでにご説明しましたが、 これと似たような感じ?で、コードのxxに代入する数値も全て逆に入力しなくてはいけません。 どのゲームも基本的にリトルエンディアン方式を採用しているからです。 エンディアンとは簡単に言うとデータ(代入する数値)をメモリ(アドレス)に配置する方法で、 リトルエンディアンは下位(Bit)から上位(Bit)へ、 ビッグエンディアンは上位(Bit)から下位(Bit)へ代入していきます。 例えば改造したい数値が123456(16進数)だった場合、下記のように表記します。 ※GB、SFC、PSなどのゲームは全てリトルエンディアン。
実際に16進数000100、0003E7、00270F、00FFFFを リトルエンディアン方式で代入してみたいと思います。
|