NES(海外版ファミリーコンピューター)向けのテトリスは、一定以上のレベルに到達すると処理落ちが発生してゲームを続行できなくなります。この処理落ちを活用して任意のコードを実行させる手法が編み出されました。

How to Reprogram Tetris By Playing It - Behind the Code Leveled Up - YouTube

NES向けに販売されていたテトリスにはゲームオーバーになるまでプレイし続けられる「エンドレスモード」が存在しています。このエンドレスモードはレベル1〜レベル18まではテトリミノの落下速度が上昇し続け、レベル19〜レベル28は一定の落下速度を保ち、レベル29で急激に高速化するという仕組みが採用されています。このため数年前まではレベル29が上限レベルと考えられていたのですが、2010年代〜2020年代頃に「タッピング」や「ローリング」といったコントローラー高速連打法がトッププレイヤー間で流行したことによりレベル30以降に突入するプレイヤーが続出しました。レベル上限突破のために編み出された連打法の詳細やトップレベルプレイヤーによる技術向上の歴史は以下のリンク先に詳しくまとまっています。

平成元年発売のテトリスの世界大会が 今大変なことになっている|slappin' Notes

https://note.com/radio613/n/n03ad52985274



その後もプレイヤーの技術向上は続き、2022年には「レベル29の壁を突破してプレイし続けた結果、テトリミノの色変化を表現するためのカラーパレットを使い切り、色表示がバグる」というカラーパレットバグまで人力で到達するプレイヤーが登場。そして2024年1月には13歳のプレイヤーがレベル157までプレイし続け、「ラインを消去したものの処理落ちが発生してゲームが停止する」という状態に人力で到達。これにより、NES版テトリスは発売から34年の時を経て完全攻略されました。

13歳のゲーマーがファミコン版テトリスを「完全攻略」、レベル157でキルスクリーン到達に成功 - GIGAZINE



ゲーマーコミュニティの解析により、NES版テトリスの処理落ちによるゲーム停止は「スコア計算に時間がかかりすぎてクラッシュしている」ことが原因であることが突き止められました。また、クラッシュの際にメモリ内の意図しない部分のデータを読み取っていることも明らかになりました。ゲーム関連YouTubeチャンネルのDisplaced Gamersは「クラッシュ時にメモリ内の意図しない部分を読み込む」という動作に着目し、「テトリスプレイ中の操作でメモリ内に任意のデータを用意しておき、クラッシュ時に読み込ませる」という手法でテトリスプレイだけでテトリスをハックすることに挑戦しました。

試行錯誤の末、Displaced Gamersは「クラッシュ時にスコアの値を書き換えるコードを読み込ませる」という操作を実現しました。エミュレータ上でハックを実行した結果は次の通り。以下は、クラッシュ寸前の画面です。



クラッシュするはずの場面でスコアが書き換わりました。



スコアが書き換わったことで「スコア計算に時間がかかりすぎてクラッシュ」という動作の回避に成功し、ゲームを続行することができました。



Displaced GamersはエミュレータではなくNES実機でも同様のハックを試みています。ただし、ハックを人間の手で実行するには「テトリスをレベル上限までプレイし続ける超絶技巧」に加えて「テトリスプレイ中にメモリに任意のコードを仕込む神業スキル」も必要です。Displaced Gamersにはそこまでのプレイスキルがなかったため、「テトリミノの落下速度を遅くする」などのチートを併用しました。



チートを使ってはいるものの、手動でコードを実行することに成功しました。



このハックを活用すれば、理論的にはテトリスを永遠にプレイ可能というわけです。