「ゲームを改造」と聞くと、ゲーム機そのものを分解して改造して・・・
ということをイメージしてしまうかもしれませんが、ここで言う改造とはそういうことではありません。
改造の対象はゲーム機、ではなくゲーム機の中で処理されているデータのことです。
ゲーム機はコンピュータなので、ゲーム機の内部でプログラムが実行されています。
情報処理関係の勉強をしたことがある方なら簡単にイメージできると思いますが、
そのようなことを学んだことがない方には少々イメージしにくいかもしれません。
簡単に説明すると、プログラムとはゲームを動かすための命令の集合です。
例えば、「モニタ(テレビやパソコン画面など)にゲーム画面を表示しなさい」
「画面上のキャラクタを右に動かしなさい」・・・という命令があります。
それらの命令を次々に実行していくことで、一つのゲームとして実行されるわけです。
(ちなみに命令を出すのはCPUと呼ばれるものですが、
それを説明すると専門的な内容になってしまうのでここでは割愛します)
さて、ここからはゲームの具体的な内容に入っていきます。
RPG系のゲームには、主人公のレベルや強さといったものがあります。
これらの値はゲーム中に変動するため、その値を保存しておかなければなりません。
もし値を保存していない場合、レベルが上がっても強さが変わらない・・・なんてことになります。
ゲームが実行されると、まずはレベルの値をAという場所に保存しておきます。
そしてステータス画面等でレベルを表示する場合、
プログラムは「Aの値をレベルとして表示しなさい」という命令を実行します。
レベルが上がった場合には、「Aの値を+1してAに保存しなさい」という命令を実行します。
これらの命令を実行していくことでレベルの管理をしています(下図のようなイメージです)。
攻撃力や防御力といった強さについても同じようなことをしています。

ここからやっと本題の説明です。
ゲームを改造するとは具体的にどうすることなのか?
上でゲーム機の中で処理されているデータを改造すること、と説明しました。
ここで言うデータとはレベルや強さのことです。
(ゲーム中で扱われるキャラクタグラフィックや名前など全てがデータです)
レベルや強さの値はプログラムがどこかに保存しているということを先程説明しました。
改造というのは、保存されているレベルや強さの値を強制的に書き換えてしまうことです。
1つ例を挙げます。今、主人公のレベルが1だとします。この1という値はAに保存されているとします。
ここで強制的にAの値を99に書き換えてしまいます。
すると、ゲーム内で主人公のレベルが99になります。たったこれだけのことなので簡単ですね。
前置きが長くなりましたが、ゲームを改造するということはゲームのデータを書き換えるということになります。
では、実際にデータを書き換えるためにはどうすればいいのか?ということを次に説明します。
ゲームのデータを書き換えるためのツールはいくつかあります。
プロアクションリプレイ(PAR)やコードフリーク、エミュレータなどです。
改造ツールをすぐに手に入れたい方は左のサイドバーにある[商品リンク]からどうぞ。
エミュレータについては次項で詳しく説明します。
基本的な使い方はどれも同じだと思います(詳しい使い方はツールの説明書等で調べてください)。
[ゲームを改造]で説明したようにデータはある場所(ここではA)に保存されています。
これらのツールに「Aという場所にXXという値を入れる」という情報を入力します。
例えば、レベルを99にしたい場合は「レベルが保存されている場所Aに99を入れる」という情報を入力、
攻撃力を99にしたい場合は「攻撃力が保存されている場所Bに99を入れる」という情報を入力します。
これによって、ゲーム内でレベルや攻撃力が99になります。
ここで入力する情報というのが改造コードと呼ばれるものです。
次に改造コードについての説明をします。
改造コードとは改造ツールに入力するための情報であることを説明しました。
もう少し具体的に説明すると、データが保存されているある場所に指定した値を設定する、というものです。
実際にコードを見てみると分かりやすいと思います。
ここでは当サイトに掲載しているSFCのゲーム「ドラゴンクエスト6」の改造コードを見てみます。
主人公のレベルのコードは[7E4025 XX(22)]となっています。
[(22)]と[XX]の前の空白はコードを利用しやすくするために記載している情報なので、
改造コードは[7E4025XX]となります。
レベルが保存されている場所を表しているのが[7E4025]、設定する値を表しているのが[XX]です。
ちなみに、XXには実際に指定する数字が入ります。
例えば主人公のレベルを99にしたい場合は、[7E402522]という情報をツールに入力します。
ここで疑問に思った方がいると思います。レベルを99にしたいのに、なぜXXに22が入っているのか?
これは16進数の知識等が必要となりますので、その説明は別ページで説明する予定です。
とりあえず、このゲームではレベル99を22と表す、と認識してください。
[7E402522]をツールに入力することで、主人公のレベルが保存されている場所7E4025に
22(99のこと)が設定され、ゲーム内で主人公のレベルが99になります(下図のようなイメージです)。
※保存されている場所のことをアドレスと呼びます。

つまり改造コードとは、改造ツールに入力するためのアドレスと値の情報です。
ここまで分かれば、後はツールの使い方を知ることで改造コードを利用できるようになります。
ただし、改造コードを利用する行為には注意すべきことがあるのでそれを次に説明します。
とても大切なことなので初めての方は必ずお読み下さい。
〜補足〜
改造コードのことはチートコードとも呼ばれます。
海外ではこのような改造行為をチートと呼んでいるようなので、そこからきているのではないかと思います。
どちらが正しいとか、呼び方で意味が違うとかは人それぞれ考え方が異なると思いますが、
ここでは改造コードという言葉を使って説明します。
改造コードはデータを自分の好きなように変更することができます。
しかし、それによって開発者が予期しない状態になり、バグる可能性があります。
ゲーム中にバグってしまうと、最悪の場合セーブデータが消えることもあります。
当然ですが、改造によって消えたデータは保障されませんので、
改造行為は全て自己責任で行ってください。
改造を行う場合にはセーブデータのバックアップをしておくことをお勧めします。
NDSやPSP等のゲーム機にはオンライン対応のゲームが出ています。
これらのゲームに対しても改造コードによってデータの改変を行うことができます。
ただし、改変されたデータを使ってオンライン対戦等の通信を行う行為は決してしないでください。
改変されたデータでは予期しない状態になり、
自分だけでなく通信相手にも影響を及ぼす可能性があります。
最悪の場合、サーバ側のコンピュータにも影響を及ぼしゲーム会社に損害を与える可能性もあります。
これは立派な違法行為であり、逮捕されることもあります。
改造は個人で楽しむ範囲に留め、他の方に迷惑の掛からないようにしてください。