【3DSチート入門⑥】Gateway条件一覧

3DSチート

リンク先を参考にまとめます

https://github.com/JourneyOver/CTRPF-AR-CHEAT-CODES/blob/master/ActionReplayCodeTypes.txt

オフセット系(offset)

アクティブ化

オフセット#1をアクティブに(デフォルト)
DF000000 00000000

オフセット#2をアクティブに
DF000000 00000001
代入

オフセット#1代入
D3000000 00000000

オフセット#2代入
D3000001 00000000

ポインター
Bxxxxxxx 00000000
加算

オフセット加算
DC000000 xxxxxxxx
コピー

オフセット#1をオフセット#2にコピー
DF000000 00010000

オフセット#2をオフセット#1にコピー
DF000000 00010001

通常書き込み

4byte書き込み
0xxxxxxx yyyyyyyy

2byte書き込み
1xxxxxxx 0000yyyy

1byte書き込み
2xxxxxxx 000000yy
その他

加算
F1xxxxxx yyyyyyyy

乗算(掛け算)
F2xxxxxx yyyyyyyy

除算(割り算)
F3xxxxxx yyyyyyyy

上3つをfloat(小数)として計算するモード(重要性低い)

無効(デフォルト)
F0000001 00000000

有効
F0000001 00000001

特殊系書き込み

データコピー

オフセット#2のアドレスからyバイト分を、オフセット#1のアドレスからyバイト分書き込む(丸コピ)
FC000000 yyyyyyyy
パッチコード

yにバイト数、zに値を設定し、x+オフセットのアドレスから書き込む
Exxxxxxx yyyyyyyy
zzzzzzzz zzzzzzzz

データレジスタ系(data)

アクティブ化

data#1をアクティブに(デフォルト)
DF000001 00000000

data#2をアクティブに
DF000001 00000001
代入

アクティブdataに代入
D5000000 xxxxxxxx

data#1に代入
D5000001 xxxxxxxx

data#2に代入
D5000002 xxxxxxxx

乱数生成(x~yの間で生成)
FFxxxxxx yyyyyyyy
加算

アクティブdataに加算
D4000000 xxxxxxxx

data#1に加算
D4000001 xxxxxxxx

data#2に加算
D4000002 xxxxxxxx
読み込み

4byte アクティブdata
D9000000 xxxxxxxx

4byte data#1
D9000001 xxxxxxxx

4byte data#2
D9000002 xxxxxxxx

2byte アクティブdata
DA000000 xxxxxxxx

2byte data#1
DA000001 xxxxxxxx

2byte data#2
DA000002 xxxxxxxx

1byte アクティブdata
DB000000 xxxxxxxx

1byte data#1
DB000001 xxxxxxxx

1byte data#2
DB000002 xxxxxxxx
書き込み

4byte アクティブdata
D6000000 xxxxxxxx

4byte data#1
D6000001 xxxxxxxx

4byte data#2
D6000002 xxxxxxxx

2byte アクティブdata
D7000000 xxxxxxxx

2byte data#1
D7000001 xxxxxxxx

2byte data#2
D7000002 xxxxxxxx

1byte アクティブdata
D8000000 xxxxxxxx

1byte data#1
D8000001 xxxxxxxx

1byte data#2
D8000002 xxxxxxxx
コピー

data#1をdata#2にコピー
DF000001 00010000

data#2をdata#1にコピー
DF000001 00010001
その他(全てアクティブdataに対する操作)

乗算(掛け算)
F4000000 xxxxxxxx

除算(割り算)
F5000000 xxxxxxxx

ビット演算(反転以外重要性低い)

論理積 AND (&=) どちらかが0なら0?
F6000000 xxxxxxxx

論理和 OR (|=) どちらかが1なら1?
F7000000 xxxxxxxx

排他的論理和 XOR (^=) 両方同じなら0,違っていたら1?
F8000000 xxxxxxxx

論理否定(ビット反転) NOT (~=) 1と0を逆にする(反転)
引き算に使えます!
F9000000 00000000

シフト演算(重要性低い)

ビットを左へシフト (<<=)
FA000000 xxxxxxxx

ビットを右へシフト (>>=)
FB000000 xxxxxxxx

浮動小数点(float)(重要性低い)

整数として扱う(デフォルト)、変換なし
DFFFFFFE 00000000

floatとして扱う、変換なし
DFFFFFFE 00000001

整数として扱う、floatから変換される
DFFFFFFE 00000010

floatとして扱う、整数から変換される
DFFFFFFE 00000011

オフセットとデータレジスタのコピー

オフセット#1をdata#1にコピー
DF000000 00020000

オフセット#2をdata#2にコピー
DF000000 00020001

data#1をオフセット#1にコピー
DF000001 00020000

data#2をオフセット#2にコピー
DF000001 00020001

ストレージ系(storage)

アクティブ化

ストレージ#1をアクティブに(デフォルト)
DF000002 00000000

ストレージ#2をアクティブに
DF000002 00000001
コピー(使用)

ストレージ#1をdata#1にコピー
DF000002 00010000

ストレージ#2をdata#2にコピー
DF000002 00010001

data#1をストレージ#1にコピー
DF000002 00020000

data#2をストレージ#2にコピー
DF000002 00020001

ループ系

ループ数x回
C0000000 xxxxxxxx

ループ数data#1回
C1000000 00000000

ループ数data#2回
C2000000 00000000

ループを実行(ループ数-1して戻る)
D1000000 00000000

ループを途中で抜ける
D0000000 00000001

終了系

if条件を終了する
D0000000 00000000

if条件を終了、ループを実行(ループ数-1して戻る)、オフセット&dataの初期化
D2000000 00000000

途中でコードを終了する? (if条件と組み合わせて使う終了命令)
D2000000 00000001

if条件系

yがx+オフセットのアドレスの値と比較される(デフォルト)
DFFFFFFF 00000000

4byte

yがx+オフセットより大きい場合
3xxxxxxx yyyyyyyy

yがx+オフセット未満の場合
4xxxxxxx yyyyyyyy

yとx+オフセットが等しい場合
5xxxxxxx yyyyyyyy

yとx+オフセットが等しくない場合
6xxxxxxx yyyyyyyy

2byte (我理解できずzは00でok)
https://twitter.com/does_its_work/status/1624045181346381827
yがx+オフセットより大きい場合 7xxxxxxx zzzzyyyy yがx+オフセット未満の場合 8xxxxxxx zzzzyyyy yとx+オフセットが等しい場合 9xxxxxxx zzzzyyyy yとx+オフセットが等しくない場合 Axxxxxxx zzzzyyyy
dataがx+オフセットと比較される
DFFFFFFF 00000001

dataがx+オフセットより大きい場合 (以下略)
3xxxxxxx 00000000
yがdataと比較される
DFFFFFFF 00000002

yがdataより大きい場合 (以下略)
30000000 yyyyyyyy
yがストレージと比較される
DFFFFFFF 00000003

yがストレージより大きい場合 (以下略)
30000000 yyyyyyyy
dataがストレージと比較される
DFFFFFFF 00000004

dataがストレージより大きい場合 (以下略)
30000000 00000000
ボタン入力

DD000000 xxxxxxxx

0x1         A
0x2         B
0x4         Select
0x8         Start
0x10        Right
0x20        Left
0x40        Up
0x80        Down
0x100       R
0x200       L
0x400       X
0x800       Y
0x1000      Debug	
0x2000      Not-Folded
0x4000      ZL (N3DS Only)
0x8000      ZR (N3DS Only)
0x100000    Touchpad (any position)
0x1000000   CStick-Right (N3DS Only)
0x2000000   CStick-Left (N3DS Only)
0x4000000   CStick-Up (N3DS Only)
0x8000000   CStick-Down (N3DS Only)
0x10000000  CPad-Right
0x20000000  CPad-Left
0x40000000  CPad-Up
0x80000000  CPad-Down
下画面タッチ

タッチしたx座標がB以上A以下の場合
DE000000 aaaabbbb

タッチしたy座標がB以上A以下の場合
DE000001 aaaabbbb
データ検索

オフセットからオフセット+yまでのアドレスで、zに入力した値が検出されると、以下の命令が実行される(xにはzのバイト数を入力する)
FE00xxxx yyyyyyyy
zzzzzzzz zzzzzzzz

ASM系(ARM Assembly)

次回以降別で書きます

ASM code
F0F00000 xxxxxxxx
zzzzzzzz zzzzzzzz

hook at offset
FD000000 xxxxxxxx
zzzzzzzz zzzzzzzz

コメント

  1. 【3DSチート入門⑥】Gateway条件一覧 | blog.mh4.jp
    cswgonvxy http://www.g8m3f3n58h52dsn2e064sw4jjvy6439ds.org/
    [url=http://www.g8m3f3n58h52dsn2e064sw4jjvy6439ds.org/]ucswgonvxy[/url]
    acswgonvxy