TOP
改造コード
その他
DuckStation専用コード形式を紹介(一部のみ)
DuckStationのdatabseフォルダにあるchtdb.txtに全て載ってはいるものの英語なので、使い所が多そうなやつのみ日本語で載せておきます
・90XXXXXX YYYYYYYY 4バイト書き込み
アドレスXXXXXXにYYYYYYYYを書き込む
・A0XXXXXX YYYYYYYY 4バイト条件判定
アドレスXXXXXXがYYYYYYYYの時、次の一行を実行する
A1だったらYYYYYYYYでなければ
A2だったらYYYYYYYYより小さければ
A3だったらYYYYYYYYより大きければ
・A4XXXXXX YYYYYYYY
00000000 FFFF 4バイト条件判定(複数行スキップ)
アドレスXXXXXXがYYYYYYYYの時、00000000 FFFFまでの範囲内のコードを実行する
・C0XXXXXX YYYY
00000000 FFFF 2バイト条件判定(複数行スキップ)
アドレスXXXXXXがYYYYの時、00000000 FFFFまでの範囲内のコードを実行する
C5だったらYYYYより小さければ
C6だったらYYYYより大きければ
・A7XXXXXX YYYYZZZZ 2バイト条件判定(書き込み機能付き)
アドレスXXXXXXがYYYYの時、ZZZZを書き込む
また、アドレスXXXXXXがZZZZの時、コードをオフにするとYYYYを書き込む
A6だとコードをオフにするときにYYYYを書き込まない
・F5XXXXXX YYYYZZZZ 2バイト条件判定?
アドレスXXXXXXがYYYYの時、ZZZZを書き込む
次のフレームでアドレスXXXXXXがZZZZの時、YYYYを書き込む
の繰り返し
後述のD7コードでQを1にしたやつと組み合わせると1ボタンで値を切り替えるコードが作れます
・D7PQRRRR TTYYYYYY
00000000 FFFF ボタン押下による条件判定(複数行スキップ)
P = 0 ボタンが押されていれば
1 ボタンが押されていなければ?
Q = 0 押してからのフレーム数を判定に使わない(指定したボタンが押されている間、00000000 FFFFまでの範囲内のコードを実行する)
1 押してからRRRRフレーム後に1フレームだけ00000000 FFFFまでの範囲内のコードを実行する
2 押してからRRRRフレーム経過するまで00000000 FFFFまでの範囲内のコードを実行する(経過したら停止)
3 押してからRRRRフレーム後から00000000 FFFFまでの範囲内のコードを実行するようになる
4 押してからRRRRフレーム経過するまで00000000 FFFFまでの範囲内のコードを実行し、経過後の1フレームだけ停止、次のフレームからまた実行する
RRRR = Qが1~4の場合にフレーム数を指定
TT = よくわからん Temp Register 00-FF, 00 will mean it wont be used, if it's not 00 do not use the same value for jokers using different keypress combinations for the same game.
YYYYYY = 指定するボタン
000001 L2ボタン
000002 R2ボタン
000004 L1ボタン
000008 R1ボタン
000010 △ボタン
000020 〇ボタン
000040 ×ボタン
000080 □ボタン
000100 SELECTボタン
000200 L3ボタン
000400 R3ボタン
000800 STARTボタン
001000 十字キー上
002000 十字キー右
004000 十字キー下
008000 十字キー左
010000 R3スティック上
020000 R3スティック右
040000 R3スティック下
080000 R3スティック左
100000 L3スティック上
200000 L3スティック右
400000 L3スティック下
800000 L3スティック左
複数のボタンを指定するにはボタン値を加算すればOK
ちなみにビット演算なので指定したボタン以外が同時に押されていても有効になる
・60XXXXXX YYYYYYYY 4バイト数値加減算
アドレスXXXXXXにYYYYYYYYを加算する
61だと減算する
・53WVPPPP QQQQTTTT
X0YYYYYY ZZZZZZZZ シリアルコード
W = 0 アドレスを増やしていく
1 減らしていく
V = 0 値を増やしていく
1 減らしていく
PPPP = 書き込む回数
QQQQ = 書き込む間隔(書き込んだ部分も数える)
TTTT = 書き込む毎に増やしていくor減らしていく値
X = 3 1バイト書き込み
8 2バイト
9 4バイト
YYYYYY = 開始アドレス
ZZZZZZZZ = 最初に書き込む値
例
5300000E 00080001
9000A000 10000000
の場合
こうなる