テトリスDSの操作性を改善するチートコード

エミュレータに関する話。

 

テトリスDSが面白いという話をよく聞いていたので結構前に買っていたんですけど、あんまり手をつけてなかったんですよね。

最近になって思い出して少し触ってるんですけど、任天堂ファミコンゲームとうまく融合していて面白いですね。独自モードもあるので結構新鮮な気持ちで遊べます。

 

ただ、今遊んでみると横タメ移動とかソフトドロップが結構遅いので、最近のテトリステトリス99とか、ぷよテトとか、テトエフェとか)に慣れているとすごくもどかしい気持ちになるんですよね。

「もっと速く動かしたい!」と。

 

というわけで、先日テトリスプラス(PS版)の操作性を改善するチートコードを作成したのを活かせるんじゃないかと考えて、より速く操作できるようになるチートコードを作成しました。

DeSmuME、melonDS上にて動作確認をしています。

実機で出来るかどうかは自分がプロアクションリプレイみたいなものを持ってないのでわかりません。

 

チートのご利用は自己責任でお願いします。

 

(2024/2/4追記)チートコードの一部を変更しました。詳細は記事最後尾に。

チートコードについて

操作性を改善するチートは大きく分けて3種類あります。

・横タメ移動(ARR&DAS)を速くするチート

・ソフトドロップディレイ(以下、SDDとします)を無効化するチート

・ソフトドロップを速くするチート

また、ゲームモードによって参照アドレスが異なるので、「スタンダード」「ミッション」「プッシュ」の3つのモード用にそれぞれ用意しています。

 

順番に解説します。

横タメ移動(ARR&DASを速くするチート)

基本的にはテトリスプラスの記事で紹介したのと同様。左と右で参照アドレスが違うので、別々で用意してあります。

1つにまとめようと思ったらmelonDS上でうまく動かなかったので…。

なんかうまい方法があったら教えてください。チートコードわからないよ。

Action Replay Code

DAS&ARR-Faster (Standard Mode,1/2)

72177A54 00FF0500

82177A54 00FF0100

22177A55 00000001

DAS&ARR-Faster (Standard Mode,2/2) 

72177A54 FF000005

82177A54 FF000001

22177A54 00000001

DAS&ARR-Faster (Mission Mode,1/2)

721B280C 00FF0500

821B280C 00FF0100

221B280D 00000001

DAS&ARR-Faster (Mission Mode,2/2)

721B280C FF000005

821B280C FF000001

221B280C 00000001

DAS&ARR-Faster (Push Mode,1/2)

721805AC 00FF0500

821805AC 00FF0100

221805AD 00000001

DAS&ARR-Faster (Push Mode,2/2)

721805AC FF000005

821805AC FF000001

221805AC 00000001

 

1、2両方を有効化しないと片方だけ速くなります。

このコードではARRが2Fになりますが、それぞれのコード最終行の「0100」または「0001」を「0000」に置き換えるとARRが1Fになります。お好みで。

 

SDDを無効化するチート

テトリスDSには左右移動のDASと同様、ソフトドロップにもDASが存在します。

2024年現在における主流のテトリスにはSDDが存在しないので、これを無効化するチートを作成しました。

Action Replay Code

SDD-Disable (Standard Mode)

92177A52 00FF0A00

22177A53 00000003

SDD-Disable (Mission Mode)

921B280A 00FF0A00

221B280B 00000003

SDD-Disable (Push Mode)

921805AA 00FF0A00

221805AB 00000003

ソフトドロップの仕組みは以下の通り。

下を入力

→ソフトドロップ値(SD値とします)=10に設定

→1フレーム毎にSD値が1ずつ減少

→SD値が0になった時、下に1マス移動し、SD値=3に設定

→以下、繰り返し

ということから、SDDは10Fあることがわかります。

SDDをなくすためには、SD値の初期状態を10から3に変えてあげればいいので、

「SD値=A(16進数で10)になったとき、SD値=3に置き換える」

というコードにしています。

 

ソフトドロップを速くするチート

ソフトドロップ自体も今のテトリスと比べるとちょっと遅い気がするので作成。参照アドレス自体はSDD無効化チートと同じで、このコード自体にSDD無効化が含まれているので、こちらを有効化している場合はSDD無効化チートは必要ありません。好きな方を選んでください。

Action Replay Code

SDS-Faster(Standard Mode)

72177A52 00FF0B00
82177A52 00FF0200
22177A53 00000002

SDS-Faster(Mission Mode)

721B280A 00FF0B00
821B280A 00FF0200
221B280B 00000002

SDS-Faster(Push Mode)

721805AA 00FF0B00
821805AA 00FF0200
221805AB 00000002

※Soft Drop SpeedをSDSと略して記載しています。

上でソフトドロップの仕組みを書いたように、ソフトドロップは3Fで繰り返し行われます。

このチートコードでは、2<SD値<11の場合を見て、SD値がこの範囲内にある場合は、SD値=2に置き換えています。

こうすることで、ソフトドロップの間隔が2Fになる、ということです。

また、最終行の「02」を「01」にすると1Fになります。お好みで。

 

(2024/2/4)追記

以前は値の書き換えに16bit(2バイト)書き込みを使用していましたが、8bit(1バイト)書き込みに変更しました。

というのも、DAS&ARRに用いている値もソフトドロップに用いている値の両方とも1バイトしか使用していないから、2バイト書き換えを使うと隣の1バイトが巻き込まれちゃうからですね。

説明が難しいのでこのくらいで。

以前のコードでも問題は生じなかったのですが念のため。