ActionReplayのコントローラー操作方法およびメモリ書き込み・条件節・ループ・レジスタ演算法文法です。
基本操作
- Rボタン : 新しいコードを次に追加
- Lボタン : 新しいコードを前に追加
- Yボタン : コードを削除
- Xボタン : コードをコピー(copy to clipboard / clear clipboard / Delete all / Converter / Hex Editor / Help)
メモリ書き込みコード
- 0XXXXXXX YYYYYYYY : [XXXXXXX +オフセット]への32ビット書き込み
- 1XXXXXXX 0000YYYY : [XXXXXXX +オフセット]への16ビット書き込み
- 2XXXXXXX 000000YY : [XXXXXXX +オフセット]への8ビット書き込み
条件付き32ビットコード
- 3XXXXXXX YYYYYYYY : より大きい(YYYYYYYY > [XXXXXXX +オフセット])
- 4XXXXXXX YYYYYYYY : 未満(YYYYYYYY < [XXXXXXX +オフセット])
- 5XXXXXXX YYYYYYYY : 等しい(YYYYYYYY == [XXXXXXX +オフセット])
- 6XXXXXXX YYYYYYYY : 等しくない(YYYYYYYY != [XXXXXXX +オフセット])
条件付き16ビットコード
- 7XXXXXXX ZZZZYYYY : より大きい(YYYY > [XXXXXXX +オフセット] & ~ZZZZ)
- 8XXXXXXX ZZZZYYYY : 未満(YYYY < [XXXXXXX +オフセット] & ~ZZZZ)
- 9XXXXXXX ZZZZYYYY : 等しい(YYYY == [XXXXXXX +オフセット] & ~ZZZZ)
- AXXXXXXX ZZZZYYYY : 等しくない(YYYY != [XXXXXXX +オフセット] & ~ZZZZ)
条件付きモード (DFFFFFFF)
- DFFFFFFF 00000000 : 条件付きコード:アドレスの値がYYYY(即時値)と比較されます
- DFFFFFFF 00000001 : 条件付きコード:アドレスの値がアクティブなデータレジスタと比較されます
- DFFFFFFF 00000002 : 条件付きコード:アクティブなデータレジスタがYYYY(即時値)と比較されます
- DFFFFFFF 00000003 : 条件付きコード:アクティブなストレージ・レジスターがYYYY(即時値)と比較されます
- DFFFFFFF 00000004 : 条件コード:アクティブなデータ・レジスターがアクティブなストレージ・レジスターと比較されます
オフセットコード
- BXXXXXXX 00000000 : オフセット = *(XXXXXXX + オフセット)
- D3000000 XXXXXXXX : オフセット#1 = XXXXXXXX
- D3000001 XXXXXXXX : オフセット#2 = XXXXXXXX
- DC000000 XXXXXXXX : 現在のオフセットに値を追加します
ループコード
- C0000000 YYYYYYYY : 次のブロックをYYYYYYYY回実行します(即値)
- C1000000 00000000 : データ#1に格納されている値と同じ回数だけ次のブロックを実行します
- C2000000 00000000 : データ#2に格納されている値と同じ回数だけ次のブロックを実行します
- D1000000 00000000 : ループ実行
- D0000000 00000001 : ループの実行を直接停止します(次のブロックにジャンプします)
ターミネータ(終了処理)
- D0000000 00000000 : 条件付きブロックを終了します
- D2000000 00000000 : すべてのブロックを終了/ループを実行
- D2000000 00000001 : コードの実行を終了します(すべてのブロック/次の命令を無視します)
データレジスタコード (D4 - DB)
- D4000000 XXXXXXXX : アクティブなデータレジスタにXXXXXXXXを追加
- D4000001 XXXXXXXX : データ#1 = データ#1 + データ#2 + XXXXXXXX
- D4000002 XXXXXXXX : データ#2 = データ#2 + データ#1 + XXXXXXXX
- D5000000 XXXXXXXX : データ = XXXXXXXX
- D5000001 XXXXXXXX : データ#1 = XXXXXXXX
- D5000002 XXXXXXXX : データ#2 = XXXXXXXX
- D6000000-02 XXXXXXXX : (32ビット) [XXXXXXXX + offset] = data; オフセット += 4
- D7000000-02 XXXXXXXX : (16ビット) [XXXXXXXX + offset] = data & 0xffff; オフセット += 2
- D8000000-02 XXXXXXXX : (8ビット) [XXXXXXXX + offset] = data & 0xff; オフセット++
- D9000000-02 XXXXXXXX : (32ビット) データを[XXXXXXXX + offset]に設定
- DA000000-02 XXXXXXXX : (16ビット) データを[XXXXXXXX + offset] & 0xFFFFに設定
- DB000000-02 XXXXXXXX : (8ビット) データを[XXXXXXXX + offset] & 0xFFに設定
パッチ・入力・制御コード
- EXXXXXXX YYYYYYYY ZZZZZZZZ : Yバイト(Z)を[XXXXXXX + オフセット]にコピーします
- DD000000 XXXXXXXX : KEYPADの値がXXXXXXXXの場合、次のブロックを実行します
- DE000000 AAAABBBB : touchposXがAAAA >= X >= BBBBの間にある場合次のブロックを実行
- DE000001 AAAABBBB : touchposYがAAAA >= Y >= BBBBの間にある場合次のブロックを実行
- DFFFFFFE 00000000 : アクティブなデータレジスタを整数として設定(変換なし)
- DFFFFFFE 00000001 : アクティブなデータレジスタをfloatとして設定(変換なし)
- DFFFFFFE 00000010 : アクティブなデータレジスタを整数として設定(浮動小数点から変換)
- DFFFFFFE 00000011 : アクティブなデータレジスタをfloatとして設定(整数から変換)
- DF000000-02 XXXXXXXX : レジスタ選択・コピー(オフセット/データ/ストレージ間の転送)
算術演算・拡張機能 (F0 - FF)
- F0000001 00000000/01 : F1, F2, F3コードのフロートモード無効/有効
- F1XXXXXX YYYYYYYY : *(XXXXXX + オフセット) += YYYYYYYY
- F2XXXXXX YYYYYYYY : *(XXXXXX + オフセット) *= YYYYYYYY
- F3XXXXXX YYYYYYYY : *(XXXXXX + オフセット) /= YYYYYYYY
- F4000000 YYYYYYYY : MUL - data *= YYYYYYYY
- F5000000 YYYYYYYY : DIV - data /= YYYYYYYY
- F6000000 YYYYYYYY : AND - data &= YYYYYYYY
- F7000000 YYYYYYYY : OR - data |= YYYYYYYY
- F8000000 YYYYYYYY : XOR - data ^= YYYYYYYY
- F9000000 00000000 : NOT - data = ~data
- FA000000 YYYYYYYY : 左シフト - data <<= YYYYYYYY
- FB000000 YYYYYYYY : 右シフト - data >>= YYYYYYYY
- FC000000 YYYYYYYY : データコピー: YYYYYYYYバイトを[offset#2]から[offset#1]にコピー
- FE00XXXX YYYYYYYY ZZZZZZZZ : データ検索: オフセットからパターンZを検索し一致時ブロック実行
- FFXXXXXX YYYYYYYY : 乱数生成: data = XXXXXXとYYYYYYYYの間の乱数
- F0F00000 ZZZZZZZZ XXXXXXXX : カスタムASMルーチン: ARコードに埋め込まれたARM32 asm命令を実行