シリアルコードの使い方です。
シリアルコードはただ単にコードが短く出来るという優れもの。
よくCG全開やアイテムMAXに使います。
条件はアドレスとアドレスの間が同じのとき。
例としてまずはこちらのコードを短くしていきます。
_L 0x0134902E 0x000000FF
_L 0x0134902F 0x000000FF
_L 0x01349030 0x000000FF
_L 0x01349031 0x000000FF
_L 0x01349032 0x000000FF
0x8aaaaaaa 0xbbbbyyyy
0x000000dd 0x000000ee
アドレスaaaaaaaからbbbb個のアドレスになるように
yyyyアドレスずつずらしながら値ddを書き込み続ける。このときddもee分ずつ増加して書き込まれる。
五つのアドレスで一番低いアドレス0x0134902Eこれからはじめていきます。0x80134902E 0xbbbbyyyy
bbbb個のアドレスになるようにです。
コードの数が5つなのでbbbbに書き込む値は5と分かります。0x8134902E 0x0005yyyy
次のアドレスが_L 0x0134902Fと+1hずつあがってきているので
yyyyに書き込む値は1と分かります。0x8134902E 0x00050001
アドレスに書き込む値がFFなので0x000000FF 0x00000000でおkです。
短く出来ました。
0x8134902E 0x00050001
0x000000FF 0x00000000
8bit
0x8aaaaaaa 0xbbbbyyyy
0x000000dd 0x000000ee
アドレスaaaaaaaからbbbb個のアドレスになるようにyyyyアドレスずつずらしながら値ddを書き込み続ける。
このときddもee分ずつ増加して書き込まれる。
16bit
0x8aaaaaaa 0xbbbbyyyy
0x1000dddd 0x0000eeee
アドレスaaaaaaaからbbbb個のアドレスになるようにyyyy*2アドレスずつずらしながら値ddddを書き込み続ける。
このときddddもeeee分ずつ増加して書き込まれる。
32bit
0x4aaaaaaa 0xbbbbyyyy
0xdddddddd 0xeeeeeeee
アドレスaaaaaaaからbbbb個のアドレスになるように yyyy*4アドレスずつずらしながら値ddddddddを書き込み続ける。
このときddddddddもeeeeeeee分ずつ増加して書き込まれる
ddもee分ずつ増加して書き込まれるが分からない人は続きへ


←クリックお願いします
0x8aaaaaaa 0xbbbbyyyy
0x000000dd 0x000000ee
アドレスaaaaaaaからbbbb個のアドレスになるようにyyyyアドレスずつずらしながら値ddを書き込み続ける。
このときddもee分ずつ増加して書き込まれる。
ddもee分ずつ増加して書き込まれる。
つまり例として
0x20000000 0x03020100
0x20000004 0x07060504
0x20000008 0x0B0A0908
0x2000000C 0x0F0E0D0C
0x20000010 0x13121110
このようなコードがあった場合も簡単に短縮できます。
条件は+h1で1ずつあがっていくコード
よくアイテムリスト系で使われます。
アドレス | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +A | +B | +C | +D | +E | +F |
0x00000000 | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F |
0x00000010 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F |
短縮するには0x00000000がアドレスなので0x80000000
個数は1F個(16進数)なのでbbbbには1Fを
0x80000000 0x001Fyyyy
コードでは32bitですが、1ずつあがっているので8bit書き込みになり、yyyy=0001です。
0x80000000 0x001F0001
最初に始まる値が00なので
0x80000000 0x001F0001
0x00000000 0x000000ee
さらに+1hあがっていくのでee=1です
0x80000000 0x001F0001
0x00000000 0x00000001
これで完成。
+2hに値を増加させたければ
0x80000000 0x001F0001
0x00000000 0x00000002でおk
値が8bitを越す場合は
16bit
0x80000000 0x031F0001
0x10000000 0x00000001
32bit
0x40000000 0xDDFF0001
0x00000000 0x00000001
8bit
0x8aaaaaaa 0xbbbbyyyy
0x000000dd 0x000000ee
アドレスaaaaaaaからbbbb個のアドレスになるようにyyyyアドレスずつずらしながら値ddを書き込み続ける。
このときddもee分ずつ増加して書き込まれる。
16bit
0x8aaaaaaa 0xbbbbyyyy
0x1000dddd 0x0000eeee
アドレスaaaaaaaからbbbb個のアドレスになるようにyyyy*2アドレスずつずらしながら値ddddを書き込み続ける。
このときddddもeeee分ずつ増加して書き込まれる。
32bit
0x4aaaaaaa 0xbbbbyyyy
0xdddddddd 0xeeeeeeee
アドレスaaaaaaaからbbbb個のアドレスになるように yyyy*4アドレスずつずらしながら値ddddddddを書き込み続ける。
このときddddddddもeeeeeeee分ずつ増加して書き込まれる