スプライトを追加
必要ソフト
@Stirling
AFreeSpaceFinder
BOverworldEditor
COverworldEditorRE
今回はスプライト数を追加する方法を説明します。
1.
まず、Stirlingを起動し、0x367C38へ移動。
そこから0x3691DF(5544Byte)までのスプライトデータをコピーします。

2.
増やしたいスプライト数に36を掛けたものを5544に足します。
1つ追加する場合は 1×36=36 → 5544+36=5580Byte となります。
FreeSpaceFinder等で 5580Byte分 の空き容量がある場所を探します。

3.
今回は0x700000を使います。
出てきたオフセットに先ほどコピーしたデータを貼り付けます。

4.
貼り付けたデータの末尾へ移動。
コピーしたデータの最後へ行き、FF FF 〜で始まるところからコピーし、末尾へ貼り付けます。
これを増やしたいスプライトの数だけ繰り返します。 ※10個増やす場合10回貼り付ける。
新しく追加したデータ全ての先頭のオフセットをメモしておきます。0x7015A8

コピーしたデータは下記のようになっています。
------------------------------------------------------------------------------
FF FF , 15 , 11 FF 11 , 00 10 , 80 , 00 , 40 , 00 , 1A 00 00 00 , 68 77 36 08 , D8 7A 36 08
F0 73 36 08 , 78 5D 36 08 , F0 11 1F 08
FF FF = Starter Byte
15 = Palette
11 FF 11 = Unknown Data 1
00 10 = Unknown Data Size
80 = Width
00 = Unknown Byte 1
40 = Height
00 = Unknown Byte 1
1A 00 00 00 = Unknown Data 2
68 77 36 08 = Unknown Pointer 1
D8 7A 36 08 = Unknown Pointer 2
F0 73 36 08 = Unknown Pointer 3
78 5D 36 08 = Sprite Pointer
┗0x365D78 = 90 9B 35 08 00 10 00 00(スプライトデータ参照先)
┗0x359B90(データ本体)
F0 11 1F 08 = Unknown Pointer 4
Unknown Data Size = (Width × Height)/2
※ 00 10 = (80×40)/2 = 1000の逆順
------------------------------------------------------------------------------
5.
今回は32×16のスプライトを追加します。
Width、Height、Unknown Data Sizeを変更します。

6.
次にスプライトデータを定義している部分を変更します。
44Byte×増やしたいスプライト数分の空き容量を探します。
今回は0x800000を使います。
先ほどの表のSprite Pointerにあたる部分を0x800000の逆順に変えます。

7.
更に Unknown Data Size×8 を計算し空き容量を探します。
0100×8 = 800Byte
ここでは0x810000を使います。
上記の空きオフセットの逆順 + 08 00 20 00 00を一纏めと定義。
0x800000に上で定義したものを8回書きます。

8.
定義の空きオフセットの部分にUnknown Data Sizeの分を加えていきます。
今回は100なので+100hとなります。
これを増やしたいスプライトの数だけ繰り返します。

9.
0x363E38へ移動し、0x364127(752Byte)までコピーします。
752に増やしたいスプライトの数×4を足します。
(1×4)+752 = 756Byte
756Byte分の空き容量を探し、先ほどコピーしたデータを貼り付けます。
ここでは0x840000を使います。
4の工程でメモしたオフセット逆順 + 08をコピーしたデータの末尾に加えていきます。
※10個増やした場合10回貼り付ける。

10.
0x05EBB4へ移動し、9の工程で指定したオフセット逆順に書き変えます。

11.
スプライト数の制限を変更します。
0x05EBA0へ移動し、97(151個)をFF(255個)に変えます。
12.
スプライトの追加は以上で終了ですが、この状態では編集することができません。
OverWorldEditorのフォルダにあるSprites.iniをメモ帳などで開きます。
SpriteBankを3の工程で指定したオフセットに、SpriteCountは255に変更します。

どっかミスったから修正中。
16×16 データサイズ : 80(128B)
Unknown Pointer 1 : 08367778
Unknown Pointer 2 : 083677D0
Unknown Pointer 3 : 083673F0
Unknown Pointer 4 : 081F11F0
------------------------------------
16×32 データサイズ : 100(256B)
Unknown Pointer 1 : 08367798
Unknown Pointer 2 : 08367824
Unknown Pointer 3 : 083674F8
Unknown Pointer 4 : 081F11F0
------------------------------------
32×32 データサイズ : 200(512B)
Unknown Pointer 1 : 083677A0
Unknown Pointer 2 : 08367878
Unknown Pointer 3 : 083673F0
Unknown Pointer 4 : 081F11F0
これを参考に書き換えると良いかも。
HOME
|