1.敵&弾の高さを固定してみようぜの巻
数値を固定する時に使う最も基本的なチートは、
以下のようなものです。
_L 0xnaaaaaaa 0xbbbbbbbb
これは、アドレスaaaaaaaに数値bbbbbbbbを書き込むというチートコードです。
nは書き込むバイト数(2のn乗)を表していて、2バイト書き込みたい場合は1、
4バイト書き込みたい場合は2と書きます。それ以上はありません。
12345678という値を書き込みたいのに、nを0から2に増やすのを忘れると
1バイトの78しか書き込まれませんので注意しましょう。
これを使って1匹目の敵の高さを変えようとすると、以下のコードになります。
_C1 ZAKO HEIGHT(one only)
_L 0x1080232D 0x00000080
3面や10面以外は縦の移動がないので、nは0でも構いません。
5面では高さが1バイトでループしているので、こちらも0でいいと思います。
さて、値を固定したいのが1匹だけならこれで良いのですが、
複数の敵の高さを固定するとなると、敵の数だけ書かないといけません。
敵のアドレスは1匹につき50(16進数)個ずつ割り振られているので、
_C1 ZAKO HEIGHT(fukusuu)
_L 0x1080232D 0x00000080
_L 0x1080237D 0x00000080
_L 0x108023CD 0x00000080
_L 0x10802D1D 0x00000080
・
・
・
とキャラ数だけ書く必要があります。これでは面倒くさいですし、
なによりPSPのチートコードは1つのチートにつき30行までしか書けないので
敵の数によっては複数のチートに分けないといけなくなります。
そこで、こういった均等な間隔で割り振られている番地に
一括して値を書き込む機能を持ったチートを書くことにします。
以下のように書きます。
_L 0x8aaaaaaa 0xbbbbcccc
_L 0xnddddddd 0x00000000
これは、dddddddという値を、アドレスaaaaaaaから始めて
アドレス番地をcccc×(2のn乗)ずつずらしながら
bbbb個のアドレスに一括して書き込むというチートコードです。
2バイトの値を書き込みたいときはnの値を1にするのですが、
ccccの値を半分にしなければならない事に注意しましょう。
4バイトの値を書き込みたいときはdddddddの桁が足りないので、
_L 0x4aaaaaaa 0xbbbbcccc
_L 0xdddddddd 0x00000000
と書くようです。ccccの値は4で割ったものに。
さて、この一括コードを使って全ての敵&弾の高さを固定しましょう。
敵が20(16進数)キャラ、弾が22(16進数)キャラのようなので合計42(16進数)。
_C1 ZAKO HEIGHT(all)
_L 0x8080232D 0x00420028
_L 0x10000080
0x00000000
これで、全42(16進数)キャラの高さが0080に固定されました。