チートバグの際のハードごとの特性

Last-modified: 2024-11-01 (金) 19:49:44

はじめに

多くの方々の尽力により、様々なハードにおいてチートバグプレイが可能となってきましたが、まだ不完全なところがあります。各ハードのチートバグ経験のある方は修正及び補足等お願いします。

新しいハードほどバグりにくくなりますが、推奨ハードはどれというものは特にありません。ただ、複数の機種前提で最初挑戦するならFC、SFC、GB(C)辺りからトライしていくと楽かもしれません。

目次

据え置き機/任天堂

ファミコン(FC)

ヒテッマン氏が主にバグらせていたハード。メモリ2KB、VRAM2KB。ソフトウェアの容量は数十KB程度。

比較的バグリやすく、適当なコードで十分バグるため人気が高い。803832氏の生成センターで生成されたコードで十分楽しめる。裏事情形式の動画が多い。チートバグの環境を整えるのは簡単(設備を揃える資金があれば)ではあるが、すでにプレイ動画が多数投稿されているため他のシリーズと被らないようにするのがやや難しい。

実機でのカセット半挿しでのバグらせが可能。しかし破損の危険がある。

関連 

スーパーファミコン(SFC)

ゲームとして十分成熟したハードであったため人気が高い。メモリ128KB、グラフィックメモリ64KB。ソフトウェアの容量は数MB。

FCより容量が大きくなったため長く楽しめるゲームが多く、シリーズ化されることが多い。ただしフリーズ率がやや高め。画質が良いゲームはかいめつして目に悪くなることが多いので注意。

環境を整える際には本数を揃えようとするとかなり費用がかかる。吸出し機とソフトの組み合わせ次第では吸い出せない。生成センター対応済み。

実機での半挿しは電源スイッチに連動したカセットストッパーがある関係上、本体の破損を伴うので不可。さらに仮に成功したとしても大抵は画面が真っ暗になるだけというイマイチな結果となる模様。

Nintendo 64

簡単にはバグらない部類に入る。メモリ標準4.5MB(36MBit)、拡張パックで9MB。ソフトウェアの容量は数十MB。

チートバグの環境を整えるのはFCとSFCと同様で難度は低めだが、非常にバグリにくいため敬遠される傾向にある。現状意図的なサーチがほぼ不可能。かつて生成センターにて対応されていたが、廃止された。

カセット半挿しが可能。(破損の危険性あり)代表的なものとしてゲッダンがある。

ゲームキューブ(GC)

バグ動画にでてくることは非常に稀。メモリ24MB、補助メモリ16MBとなっており簡単にバグるとは思えない。

Wiiからのリッピングが可能であり、エミュレータで動作するゲームも多くなってきている。エミュレータのDolphinにはデバッガーが内蔵されており、逆アセンブラやブレークポイント、メモリやレジスタ内容の表示などの機能を使うことができる。

チートコードを適用した際に、実行時コンパイラとキャッシュによる影響からか、メモリのプログラムが格納されている部分の数値が書き換えられても反映されない。ただし、起動時にコードを適用していれば反映される。

実機でのコードサーチは困難。生成センター非対応。対応しても恐らく上手くバグらないだろうと思われる。ISOイメージは1.35GB*1。領域は80000000-81800000。

Wii

内蔵メモリ24MB、外部メモリ64MBとなっており、簡単にバグるとは思えない。チートコードは4バイト。Wiiからのリッピングが可能とのことで、PCでチートバグが出来る機種のようだが、事前準備に問題がある。

解体後、変換前のNAND.jpg

生成センター非対応。対応しても恐らく上手くバグらないだろうと思われる。ISOイメージは4.37GB(2層メディアの場合は9GB)と非常に大きい*2

GCと同様に、Wiiからのリッピングが可能。チャンネルとしてインストールされているソフトはYet Another BlueDump ModをHomebrew Channelから起動して用いることで抽出できる。この際に、fakesignという単語が含まれる確認のメッセージが表示された場合、全てYesを選択すること。

バーチャルコンソールはROMとエミュレータのセットであり、メモリでは実機とは異なる位置にデータが格納されると思われる。
動かすためのエミュレータはGCと同じ(Dolphin)であり、デバッガーを使用できることとプログラムの書き換えがリアルタイムに適用されないのは共通である。

Wiiリモコンが無くてもゲーム自体は動作するが、Wiiリモコンを動かす動作は困難。領域は80000000~94000000?

実機でのコードサーチは可能だが、チートバグ用のコード作成には向いていない。動画はごく少数存在する。

Wii U

チートバグ実績あり。環境構築などのハードルが高い。実機でのコードサーチは可能だが、チートバグ用のコード作成には向いていない。

メモリ2GBとなるため、一般的な方法では厳しい。イメージサイズは25GB。

switch

メモリ4GB。既にチートバグ可能。

据え置き機/SCE

PlayStation(PS)

チートバグ動画作成の難度がかなり高い。しかしシリーズとして投稿している猛者もいる。エミュレータを使用する場合仮想BIOSがほぼ必須となる。

PARを使用する方法

PS用のプロアクションリプレイと、それが使用できる本体、パラレルポートのある古いPC(64ビットOS不可?)が必要であり、比較的正当な方法ではあるものの、現在では困難。

PSPにCFWを入れ、PSのBIOS DUMPERを強行使用する方法

ISOイメージを作成後CDからDUMPER.EXEを取り出し、PSX.EXE代わりに利用することでBIOS取り出しが可能だが不完全。ただ、だいたいの場合問題なく動く。手順が煩雑。

CFWを入れた時点でPSPのチートバグが可能になりますが、サポート保証外となります。自分の方はこの方法を使っていますが、あまりよい方法ではないと思われます。

BIOSを取り出さないで、仮想BIOS内蔵のARBEXを使用する方法

これがもっとも手軽なのではないだろうか。

PSPやアンドロイドでBIOSなしで可能だが、コード書き換えの手間を考えるととても実用的とはいえない。コードサイズは2バイト。書き換えが1バイト(00xx)の場合は3、2バイトの場合は8から始める2桁となる。特殊な形式で10,11,20,21、D0等を使用することがある。(本格的な解析時以外は余り使う必要がないと思われる)

メモリ2MB、グラフィックメモリ1MBでこの辺りからかなりバグリにくい部類に入っている。この辺りのハードからグラフィックバグがメインとなる。移動関連のバグも見られる。テキストバグは割り込みやテキストグラフィックバグが使われることが多い。シリーズ化する際は解析は必須だと思われる。かつて生成センターにて対応されていたが、廃止された。

汎用コードを使用して生成が可能で、30000000~30200000辺りを指定すればある程度はバグらせることが可能。生成センターでもある程度バグるものの、面白いバグを出すのはかなり困難。コード解析しても、一瞬のすきを突いて正しい状態で処理することもある。(1バイト書き込み、8にすると2バイト書き込みとなるが末尾が奇数の場合のみ有効)

メーカーロゴが出た後にコードをオンにすると比較的安定して動作する。ISOイメージは数百MB。

一例、他にも使用可能なソフトあり。

1F8010C4の先頭が格納されている領域+20h(+32)及びそれ以降の領域の数値を変更するとイルーム音楽になることがある。

PlayStation 2(PS2)

チートバグ動画は非常に少ない。

エミュレータでプレイする場合BIOS吸出しが必須。スワップマジックやPS3用のメモリーカードアダプターを使ってメモカブートを取り込んでからPS2用の「BIOS Dumper.ELF」を使う等、かなり手段も手順も多い。メモリ領域が32MBのため、適当コードだけではバグらない。PSですら比べ物にならないバグりにくさとなっている。

生成センター非対応。対応しても恐らく上手くバグらないかもしれない。コードを入れた場合、フリーズが多い模様。実機の場合はマスターコード必須。PCでやる場合かなりの性能が必要となる。動かない場合もあるので要確認。実機ではディスク入れ替え等が必要なためシリーズ化はハードルが非常に高い。

ISOイメージは数GB。

PlayStation 3(PS3)

以前より挑戦のハードル自体は下がっているものの、今の所ヒテリスでの実績はなし。メモリ256MB、VRAM256MB。領域が広すぎる上複雑でかなり難易度が高いと思われる。

セーブデータの改変も可能だがそれだけで簡単にバグるとは考えにくい。ディスクの容量は25~50GB。

PlayStation 4(PS4)

メモリ8GB。

据え置き機/マイクロソフト

XBOX

メモリ64MB、手軽にバグるとは思えない。生成センター非対応。対応しても恐らく上手くバグらないかもしれない。ISOイメージは数GB。

XBOX360

メモリ512MBとチートバグ向きとは思えない。
実機バグが可能なハードとしては最難関だと思われる。しかし改造動画が出回っている。
生成センター非対応。対応しても恐らく上手くバグらないかもしれない。
ISOイメージは数GB。

XBOX ONE

メモリ8GB。エミュレータで動く見込みも立っていない。ISOイメージは数十GBとなる見込み。

据え置き機/その他

Atari 2600 / カセットTVゲーム

生成センター非対応。RAMはたったの128バイト バグらせやすさではダントツだろう。

SEGA SG-1000

生成センター対応済み。RAM1KB、VRAM2KB・・・ん、これってバグらせやすいのか?

マークIII(SG-1000とそのⅡ、SC-3000互換の上位機種)

生成センター対応済み。RAM8KB、VRAM16KB FCに近い性能だがマイナー。

Master System

生成センター対応済み。SG-1000IVであり、アメリカ向けマークIII。

日本版はいろいろと強化された別物であるが、ソフトは同じなのでエミュレータではあまり関係ない。ただし、大概の海外版ソフトは日本版と端子形状が違うため、手を出す際は別の、あるいは両方に対応した吸い出し機が必要になる。

メガドライブ

チートバグ動画は少ないが実績あり。RAM及びVRAMは64KB。メモリ容量からSFC並のバグりやすさではないかと推測される。

追加オプションにメガCDと32Xがあり、それらの専用ゲームも遊べるが、バグらせられるかは未知数。生成センター対応済み。

セガサターン

RAM 2MB VRAM 1.5MB さらにゲームによっては4MBまでの拡張RAMを使用する。

本体メモリで見ればバグらせるのはPSとさほど変わりない難易度(かなり高い)ではないかと思われる…が、CPU周りが独特すぎるため要求されるエミュレーション環境が比較的高いという難点がある。

ドリームキャスト

RAM 16MB VRAM 8MB、サウンドRAM2MB。GD-ROMを使用、容量1GB。

エミュレータは実用的なレベルまで到達しているが、バグらせる難易度は非常に高いと思われる。

PCエンジン

RAM8KB、VRAM64KB FCとSFCの中間程度の性能。通常のROMのほか、拡張でCDとLDが利用できるのが特徴だが、やはりBIOS吸出しは必要。

なお、CDの方はシステムカードを他のソフトと同様に吸い出せばBIOSとして使用できる。

NEOGEO

メインRAM64KB、サウンドRAM2KB、VRAM68KB。ネオジオCDはPSと同じ方法で取り込める。アーケード版NEOGEOは基板等が必要となるがそこまでしてやるユーザーはほぼいないと思われる。

数値上はSFCより楽だが、販売期間が長期間で提供形式も複数あり、難易度は様々である模様。

携帯ゲーム機/任天堂

ゲームボーイ(GB)・ゲームボーイカラー(GBC)

FC等と比べてしまうとチートバグ動画はそれほど多くない。比較的簡単にバグる部類に入る。

RAMとVRAM共に8KBとFCの4倍となっている。GBCではRAM32KB、VRAM16KBと更に増えている。ソフトウェアの容量は数MB程度。白黒のゲームボーイは若干地味かもしれない。チートバグの環境を整えるのは一応簡単な部類に入る。

なお、GBC専用ソフトの場合、さいしょからが発生する確率が低い。その代わり、GBC以外の本体で起動した時のような警告画面が出る場合がある。生成センター対応済み。

ゲームボーイアドバンス(GBA)

チートバグ動画はやや少ない。

適当コードではPCM音源内蔵の影響で大音量の雑音が鳴るだけとなる可能性が非常に高い。RAM32KB、WRAM256KB、VRAM96KB。ソフトウェアの容量は数十MB程度。数値上SFCと大差ないように見えるが、SFCよりかなり後のハードであるため、データが複雑化しており難易度は上がっている。

フリーズ及び爆音多発でシリーズが続かない傾向にある。生成センター対応済み。

Nintendo DS

チートバグ動画は増加傾向にある。メモリ4MB、VRAM656KBとなっている。厳しそうに見えるが、ランダムコードである程度はバグる。と言っても、他のハードと比べると困難であり、グラフィック関連バグが多い。また、メモリ検索は絞り込みの難易度は低めだが、コードの構造が以前のハードとかなり異なりコードによっては探すのは難しい。チートバグが現実的なハードとしては相当難しい部類に入るのではないだろうか。

テキストはPS等と同じくメモリ上に読み込んだデータから改めて読み出すゲームが大半であり、制御は困難。イベントコードも同一であり、動きが複雑な影響でフリーズしやすい。ソフトウェアの容量は数百MB。x2000000~x23FFFFF(x=0,1,2、推奨は1バイト書き換えの2)がRAM領域となっている。サウンドはx3000000~となっている模様。

meccの設定
DeSmuME_0.9.11_x86.exe\DeSmuME_0.9.11_x86.exe|\\$032a0eb8,$400000,$2000000\\|||!PreviousSetting!

Nintendo 3DS

メモリ64MB、VRAM4MB。チートバグ自体はすでに可能になっているが、困難。

携帯ゲーム機/ソニー

PSP

エミュレータやカスタムファームでバグらせることが可能なものの、メモリ領域がメインメモリ32MB(実際は8MBをシステムが持っていくので24MB、2000番台からキャッシュ含め64MB)、DRAM4MB。アドレス領域は08800000~0A7FFFFFとなるが、CWC形式は、0x00000000~0x02000000になっている。

PCへの取り込みはカスタムファーム(1000番台対応のCFW、すべて対応のLCFW)で可能。(保証対象外)
psp.jpg
ソフトがまだ高めで、かなりの性能も必要となる。ここ最近で動作率が急激に上昇しやれるレベルになってきた。

生成センター非対応。対応しても恐らく上手くバグらないかもしれない。まともにバグらせるには解析が必要になる。ということでハードルが高い。動画はごく少数。ISOイメージは1GB前後。

バグらせてみると、領域を絞り込んでもPSですら比較にならないほどフリーズ率が高い。適当コードでは配信できるレベルではない。PPSSPPの使用が最適。エミュレータにより動作状況が異なる。PPSSPPはエミュレータが可変アドレスのため、検索値+差分でデータ位置を指定する必要がある。

PSvita

現状チートバグ動画なし。メインメモリ512MB、VRAM128MB、実機バグが可能な段階までは来ている。

携帯ゲーム機/その他

ゲームギア

生成センター対応済み。RAM8KB、VRAM16KB。どこかで見たスペックである。

セガマークIIIの携帯機仕様(厳密なスペックは異なる)であり、同一内容のソフトも存在するため、若干ずれる可能性もあるが、同じようにバグらせることが可能と思われる。むしろ展開期間が長かったため、ソフトの種類が多くかつ安いので、こちらのほうが手軽だろう。

ワンダースワン

WRAM 16KB EEPROM 2KB VRAM 16KB ROMは16MB以下。Oswan 及びWSCamp+MECCで一応チートは可能。

アーケード機

個人が新品を入手することは困難(というか不可能)だが、中古品であれば入手することは可能。もっとも、ハードを保有しているユーザー自体少数派のため、バグプレイのノウハウは無いに等しい。

挑戦する猛者はいるだろうか…?

PC向けゲーム

難易度はソフトによる。

データ吸い出しの必要はなく、解析ツールが存在するものの、ゲーム起動時に大量のデータを読み込むのでゲーム機よりも厄介。ソフトウェアやデータが可変アドレスの場合があるほか、メモリ異常検知、書き換え防止などチート対策がなされている場合があり、一見シンプルそうなゲームでも簡単とは限らない。

スマートフォン等のアプリ

未知数。エミュレータ環境があるがかなり難度が高い模様。

補足:最近のゲームがバグリにくい理由

最近のゲームはバグらせにくい傾向にある。理由は以下の通り。

  1. チート対策がされており、数値等はサーチしてもバグらない。複数行なら可能だが、適当コードではまず無理。
  2. メモリ領域が広くなった為コードがヒットしにくい。FCを1とするとSFCが48、PSが1500(あくまでも合計の比較なので参考程度に)
  3. グラフィックが高画質化した影響で1つのコードに割り振られている領域が狭く、派手なバグとなりにくい。ただ、コード次第では参照先を大幅に変えられ大きくバグる可能性もある。
  4. データの中に非常に多くのファイルがあり、参照先が間違うとフリーズすると思われる。(ファイルサイズの大きさ自体は、すべてのファイルを常時使用していないのであまり重要ではない。SFCはFCの100倍程度で、PSはさらにその100倍程度)
  5. 可変アドレスが多く安定してバグらない。
  6. データを出力した後にメモリ領域が0で上書きされ、探しにくい。また、この影響によりコードを入れ続けていると問題が出ることが多い。
  7. カートリッジよりディスクの方が読み込みが遅いのでデータをまとめて読む場合が多いが、PS辺りからデータのまとめ読み込みが標準となり、テキストコードやイベントコードがメモリ上からしか関連データを読み込めない場合があり、幅広い現象を発生させるのが困難。

メモリから見るバグりやすさの目安

数KBクラス
非常にバグらせやすい、しいて言うならば、領域の関係によりバグのパターンが少なめ。
テキストバグは適当コードでも見つかりやすい。

数百KBクラス
フリーズがやや目立つものの、バグりやすい。
未調整の適当コードではテキストバグが簡単に出るレベルではない。

数MBクラス
フリーズが多く、派手にバグることも少ない、コード領域の傾向等を見つければある程度は可能。
2Dと3Dの中間的なハードで多いメモリ量であり、パターン自体は多彩。3Dではグラフィックが伸びるバグがよく見られる。
動画投稿数が比較的少ないので、独特のバグを発生させられる可能性がある。
適当コードの限界ラインだと思われる。

数十MBクラス
数MBクラスと比べても、非常にフリーズが多く、バグらせるのが困難、現実的ではない。
派手にバグらせるにはデータ自体の解析が必要となるので、
相当時間をかけるか、チートコード作成者並みのスキルが必要となる。
チートコードを参考にしてその近辺をバグらせるのも有効かもしれない。

数百MBクラス
チート対策やゲーム構造の都合の問題によりランダムコードでバグったとしても領域が変わってしまい役に立たない。派手な露骨バグも調べてまでやる必要があるか疑問なレベルの難易度に達している模様。

実機チートバグ

注意: 実機チートバグはハードを破損する可能性が高く、推奨されない。

実機にてチートコードを入れるかFC及び64にてカセットの半挿し(半抜き)でバグを発生させることが可能。ただし、半挿しでも差し込み状態によっては本体やカセットに負荷がかかるので破損の危険性がある。
PS等ディスクを読みだすタイプのハードであれば破損は(ほぼ)起こらないが、メモリーカードなどセーブ媒体を使用しながらバグらせると、セーブデータどころかセーブ媒体自体が破損することもあるので要注意。

また、チートコードを入れる場合フリーズしてから復帰させるまで時間がかかるのでフリーズが多い上位ハードは非常に時間がかかるので実用的ではない。

スマホ及びタブレットでのチートバグ

スマホやタブレットで利用可能なエミュレータがあり、一部のゲームの動作及びチートコードの入力は可能。もちろんゲームは自分で用意する必要がある。やりやすさはPCでのチートバグには及ばず、性能はかなり必要。

HDMIキャプチャの機器で録画が可能。しかし大半の機種でHDCPの解除が必要となる*3。やっぱりPCでやったほうがいいと思われる。スマホやタブレット自体はjavaベースでメモリ解析出来ない等の理由で現状チートバグは実質不能だと思われる。apkを解体して中身を破壊すればもしかしたら・・・程度である。

なお、スマホゲームの中には、不正行為防止のため、エミュレータなど指定外環境でのプレイや、ツールを併用したプレイが禁止されているものもある。この場合、たとえ不正を意図しないチートバグプレイであっても、不正行為とみなされる可能性もあるため注意。

関連機器

中古でしか手に入らない機器、現在実質使用不可能な機器は原則除いてあります。

全般

ダンパー系で可能

SFC

Super UFO pro 8 初期費用1万程度 特殊カートリッジ難あり ファイルのリネームが必要 使用例が少ないので詳細不明

GB、GBC、GBA 

同一の機器で可能。
GBAに限ればDSでコードフリークから吸出しソフトを起動して吸い出すことができる。
実用的なFC、SFC、GBAの環境を整えると費用は機器のみで2~3万程度。

GC及びwii

1実機にHomebrew Channelを導入しフラッシュメモリ上のwiiウェア等はBootMiiで取り出し、ShowMiiWadsで変換、
かなり時間が掛かるので用途的にメリットが低いと思われる。ISOイメージも別のソフトで同等の作業回数が必要。
ハードルが高めで、保証外行為になる。バーチャルコンソールもエミュレータで可能。他のエミュレータで可能な形式に変換できるらしい。
2対応した中古のDVDドライブの入手、ダウンロード関連は使用できない。

DS 

NDS SMS2及びNDS SMS4 4の方が高いが速度が早い。
NDS Adaptor Plusなど、セーブデータ関連のトラブルが多い模様。入手、導入難度が上がっている。
コードフリーク等、Homebrewが起動できる環境があれば吸い出すソフトがある模様。

PS/PS2 

isobuster、CdManipulatorなどでPCにisoやimg形式で取り込めるが、大半の場合BIOS(ゲーム機の動作関連の情報等)が必要。

解析用ソフト等

スペシャルねこまんま及びうさみみハリケーン

PCゲーム用 メモリサーチや解析、ブレークポイントの使用、逆アセンブラ等。

cep

エミュレータ用 メモリサーチや解析、SFC及びPS対応

cep補助ツール SFC及びPS対応の生成センターに近いもの
配布トコロてソ
置き場

Stirling

ステートセーブの比較等

emuhaste

エミュレータ用 メモリサーチや解析、ブレークポイントの使用、逆アセンブラ等


*1 実際にはそこまで使用していない
*2 実際にはそこまで使用していない
*3 解除可能。