cheatsファイル読み込み
テストしていて1つ気が付いた。
cheatsファイルではコードが暗号化と非暗号化が混在する可能性がある。
出力時は全部非暗号化にしてしまえば問題ないが、読み込み時はどちらなのか判断しなければならない。
判断の方法が問題になる。
試しに、全ての命令部を暗号化・非暗号化で並べてみた。
だが、ほとんどの数値が両方に存在し、これでは判定できない。
しかし、XPLでは実際に判定をしているのだから、何か方法があるはず。
そう思い調べたところ、PS2のメモリは32MBで、アドレスは0〜1FFFFFFの間にしかならないことがわかった。
そうすると、コードの2桁目は非暗号化なら0か1、暗号化ならCかDにしかならない。
ほぼ解決。
ただ、3コードのように複数行を使うもののときで、前半がデータの場合どうするかが未解決。
1行目に合わせるしかないと思うが、それでいいかは不明。
とりあえず、1行目に合わせるということで進めようと思う。
出力に関しては、仕様が明確になっているので、面倒ではあるが問題はない。
一つは、PAR3コードの除外。
もう一つは、コードの変形。
これは、
Aコード → 2コードに置き換え
Eコード → 複数のDコードへ
4コード(連続書込) → 展開
を行う。
変形の対象はこれだけでいいみたいだ。
(先日2chで聞いた)
もし、他にあったらそのときに対応しよう。
cheatsファイルではコードが暗号化と非暗号化が混在する可能性がある。
出力時は全部非暗号化にしてしまえば問題ないが、読み込み時はどちらなのか判断しなければならない。
判断の方法が問題になる。
試しに、全ての命令部を暗号化・非暗号化で並べてみた。
だが、ほとんどの数値が両方に存在し、これでは判定できない。
しかし、XPLでは実際に判定をしているのだから、何か方法があるはず。
そう思い調べたところ、PS2のメモリは32MBで、アドレスは0〜1FFFFFFの間にしかならないことがわかった。
そうすると、コードの2桁目は非暗号化なら0か1、暗号化ならCかDにしかならない。
ほぼ解決。
ただ、3コードのように複数行を使うもののときで、前半がデータの場合どうするかが未解決。
1行目に合わせるしかないと思うが、それでいいかは不明。
とりあえず、1行目に合わせるということで進めようと思う。
出力に関しては、仕様が明確になっているので、面倒ではあるが問題はない。
一つは、PAR3コードの除外。
もう一つは、コードの変形。
これは、
Aコード → 2コードに置き換え
Eコード → 複数のDコードへ
4コード(連続書込) → 展開
を行う。
変形の対象はこれだけでいいみたいだ。
(先日2chで聞いた)
もし、他にあったらそのときに対応しよう。
Comments