ROM ハッキング
On 12月 28, 2021 by admin多くの異なるプログラマーまたはプログラミングチームによって作成された ROM データは、非常に多様です。 Hex エディタは通常、テキストの編集や、構造がわかっている他のデータ (たとえば、アイテムのプロパティ) の編集、および Assembly hacking に使用されます。
テキストの編集は、ハッキングの最も基本的な形態の 1 つです。 多くのゲームはテキストを ASCII 形式で保存しません。このため、テキスト編集を容易にするために、どのバイト値がどのアルファベットに対応するかを知ることができる、いくつかの特殊な 16 進エディタが開発されました。これらのバイト=文字の関係を定義したファイルは「テーブル」ファイルと呼ばれます。 他のゲームでは、単純なテキスト圧縮技術 (バイト ペア エンコード、デュアル タイル エンコードまたは DTE とも呼ばれ、2 つ以上の文字の特定の組み合わせが 1 バイトとしてエンコードされる) を使用しており、適切な装備の hex エディタで容易に編集することができます。 一部の勇敢なハッカーは、hex エディタでレベル編集を行いますが、これは非常に困難です(レベルのストレージ形式が hex エディタで表示される方法に酷似しているゲームを除きます)。 グラフィックデータの形式はゲーム機によって異なるが、初期のもの(ファミコン、スーパーファミコン、ゲームボーイなど)は、グラフィックをタイルという8×8ピクセルの単位で格納し、それを画面上に配置して目的の結果を出す。 これらのタイルの編集は、Hex エディタでも可能ですが、一般的にはタイルエディタ (Tile Layer や Tile Molester など) を使って行います。
より洗練されたグラフィックス ハッキングでは、タイルや色だけでなく、タイルの配置方法やタイル グループの生成方法を変更し、最終的な外観をより柔軟に制御できるようにします。 これは、hex編集または(特定のゲームまたは特定のシステム用の)特殊なツールによって達成されます。 グラフィックハックの良い例は、未完成のポケモントーザックで、ゲームに全く新しい世代のポケモンとタイルを追加しようとするハックです。
Palette editingEdit
Another common form of hacking is palette hacking, where color values are modified to change the colors in the game (this often goes hand-in-hand with graphics hacking); Palette values are commonly stored in Hex.これは、プレイヤーが見ている色を変更するために色の値を修正するパレットハッキングです。 パレット値は16進数で保存される。ファミコンゲームの場合、グラフィックはあらかじめ定義された色のセットを使っており、その中からゲームを選択し、パレットハッキングはその色の中から選択された色を変更することであるため、非常に簡単である。 スーパーファミコンや他機種のゲームでは、RGBの絶対的な色数を記憶しているので、少し複雑になります。 パレットエディタは通常シンプルで、レベルエディタやゲーム専用のグラフィックエディタと一緒になっていることが多い。
レベルエディットエディット
ROMハックの最も人気のある形式の1つ、レベルエディットは、ゲームのレベルやマップを変更または再設計することです。 これは、ほとんどの場合、特定のゲームのために特別に調整されたエディタ(レベルエディタと呼ばれる)を使用して行われます。 レベルエディットは、ゲームの難易度を上げるため、ゲームの流れを変えるため、あるいは古いゲームに何か新しいものを与えるために行われることがあります。 3731>
Data editingEdit
多くのハッキング(特にロールプレイングビデオゲーム)のコアコンポーネントは、キャラクター、アイテム、および敵のプロパティなどのデータを編集することです。 これは通常、データの場所と構造がわかっている場合は、(Hex エディタを使用して) 手動で、またはこの機能を持つゲーム固有のエディタを使用して行われます。 これによって、ハッカーは武器の動作、敵の強さ、行動などを変更することができます。 3731>
Assembly hackingEdit
最も強力で、間違いなく最も困難なハッキング技術は、ゲームの実際のコードを編集することで、ASMハッキング(「ASM」は「アセンブリ」の意味で、初期のビデオゲームに使用されていたプログラミング言語の種類に言及)と呼ばれるプロセスである。 ASMハッキングは、ゲームによってコードが大きく異なるため、決まったパターンはありませんが、熟練したASMハッカーの多くは、デバッガーやトレーサーを内蔵したエミュレーターを使用するか、ディスアセンブラでROMを実行し、コードを解析して、必要に応じてヘキサエディタやアセンブラを使ってコードを変更します。 上記の比較的簡単な方法に比べるとかなり難易度は高いですが、ASMハッキングでは敵のAIを変更したり、グラフィックの生成方法を変更したりと、(もちろん、ゲームプラットフォームのハードウェア/ソフトウェアの制限内で)何でも可能です。 (もちろん、ハッカーが既存のコードを理解し、修正する能力によって可能性は制限されます。)
開発者が型付き言語を使用した場合、ハッカーは適切なコンパイラーにアクセスできれば、同じ言語でゲーム用の独自のコードをコンパイルできる可能性があります。 MIPS-GCC は Nintendo 64 用のコードをコンパイルできるので、このような例としては C 言語を使って Nintendo 64 ゲームをハックすることができます。
Music hackingEdit
Music hacks are relatively rare, because the wide variety of ways games store music data (therefore the difficult in locating and modifying this data) and the difficulties in composing new music (or porting music from another game). 音楽クラッキングは非常に珍しいため、多くのハックでは移植/作曲された音楽が追加されていません。 ただし、ゲームボーイアドバンスの音楽はM4Aエンジン(Sappy Driver)を使っているので、SapTapperを使えばゲームボーイアドバンスの音楽データをハックすることができる。 Sappy 2006 など、このエンジンで動作するさまざまなユーティリティが作成されました。
ゲーム間で同じエンジンが使用されているもうひとつの例は Nintendo 64 で、ほとんどのゲームは同じフォーマットを使用していますが、それぞれ異なるサウンドバンクを使用しています。 N64 Midi Tool として知られるユーティリティは、Nintendo 64 ゲームの大半が使用するシーケンスを編集するために作成されましたが、Super Mario 64 など、わずかに異なるエンジンを使用するファーストパーティの N64 タイトルは対象外となっています。 今日現在、SMPSエンジンを使用するゲーム(特にソニック・ザ・ヘッジホッグゲーム)の音楽を変更する様々なツールが存在し、それらの多くはSteam Workshopに進出している。
ROM expansionEdit
一般的に、ROMハッカーは通常ゲームにコンテンツを追加できず、単に既存のコンテンツを変更するだけである。 この制限は、ROMイメージの総サイズを増加させ、より多くのコンテンツと、より大きなゲームのためのスペースを作る、ROM拡張によって克服することができます。 しかし、その難易度は、ゲームソフトの機種によって異なる。 例えば、ファミコンのROMを拡張する場合、ゲームに使用されているマッパーにより、拡張が困難、あるいは不可能な場合があります。 例えば、あるマッパーで16個のROMバンクが使用可能で、それが全て使用されている場合、それ以上のROMの拡張は、何らかの方法でゲームを別のマッパーに変換しない限り不可能ですが、これは簡単なようで非常に難しいことです。 一方、スーファミのゲームの拡張は、(比較的)簡単です。 追加されたスペースを利用するために、ゲームコードの一部を変更したり、書き直したりして(上記のアセンブリハック参照)、ゲームがどこを見ればいいのか分かるようにする必要があります。 もう一つのタイプのROM拡張は、ゲームボーイアドバンスのROMで、かなり簡単です。 ROM自体は一般に小さいのですが、使用可能なメモリ空間がそれを最大17倍も上回ることがあります
。
コメントを残す