Yahoo知恵袋の質問に回答

最終更新日:2011/12/01

はじめに

Yahoo知恵袋にてたまたま当サイトの改造コードについての質問を見つけました。
ちょっと嬉しくなったので、こちらで回答させていただきます。(もう期限は過ぎていました)。

パーフェクトダークの改造コードは、需要があるのかないのかわからなかったので、この質問はとても嬉しかったです。ありがとうございます。
本当は、 総合掲示板に、2011/03/04(金) 00:28(記事No.1105)に回答を投稿していたのですが、絶対見ないだろうなと思い、補足を加え、改めてページにまとめました。

その質問者様がご覧になるかわかりませんが、それ以外でも誰かの理解の助けになればいいと思います。

質問内容:
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1156404061

「ペラジック2でコンバット改造コード作成手順」の「オブジェクトの改造」のページにあるコードのサーチの仕方についての質問です。
質問内容を要約すると、「全体的に意味不明」「どんな知識が必要か」ということです。

必要な知識

まず必要な知識をまとめます。

メモリとは、値のことです。
アドレスは、その値が格納されている「場所」を表します。
そして、その値を覗いたり編集したりすることができるのが、メモリエディタです。

N64の場合は、16進数で値が格納されています。
アドレス一つに00~FF(0~255)までの値を格納できます。

ここで「事前知識」のページに書いてある内容を解説します。

アドレス1つにのみ書き込むのが、1バイト(8ビット)書き込み。
アドレス2つに書き込むのが、2バイト(16ビット)書き込みです。

アドレス2つ分なので、0000~FFFF(0~65535)までの値を書き込むことができます。

改造コードは、あるアドレスに値を「書き込む」というものです。
その為の(書き込む)アドレスを「値の並び」を利用してサーチするのが目的です。

補足

オブジェクトの改造」のページについての補足説明です。

ポインタについて

ポインタは、「ある値のアドレス」を記録しています。
ポインタとして機能するアドレスが存在します。
そのアドレスに格納されている値は、参照先のアドレスを表しています。
その値を参照することで、参照先のアドレスの値を読み込むことができます。

パーフェクトダークで、ステージの改造を行うときに、アドレスの参照先が毎回変動してしまいます。
これでは、改造コードを作成する上で不便なので、「ポインタ固定コード」で、ポインタを固定しています。

管理アドレスの差について

管理アドレスの差についてですが、改造コードは基本的に、エミュレータ上でサーチをします。
ほとんどの場合は、サーチした改造コードをそのまま実機にも適応できるのですが、今回の場合は、実機とエミュレータで値が変わります。

「ペラジック2」の場合だとエミュレータは実機より20大きくなります。
言い換えると、実機はエミュレータよりも20小さいので、実機に応用したい場合は少なくとも+20で考えてからエミュレータでサーチする必要があります。

最後に

改めまして、質問ありがとうございました。
質問から大分月日が経っていますが、ご理解いただけたでしょうか。気になります。
いろいろ質問には答えていきたいと思うので、皆様からの質問をお待ちしております!

質問は、[総合掲示板]にお願いします!