Recently FuSoYa has created a feature known as SpriteMap16, for use with your custom sprites to make them show correctly in-editor. I found this to be cumbersome the first time but now that it's figured out I can help you.
You'll need:
1. Basic Map16 Skills
2. Custom Sprites
3. Lunar Magic VERSION 1.64 OR HIGHER! NO OTHER VERSION WILL WORK.
Okay.
A note: THIS DOES NOT AFFECT THE GAME. AT ALL. THIS SIMPLY LETS THINGS DISPLAY CORRECTLY IN LUNAR MAGIC.
I hate reading!
There's a video tutorial here if you'd like.
1. Pick the custom sprite you want to use. Get it's sprite number.
2. Make a new .txt file. Put in the number of the sprite you will edit and then press file > save as.
3. There, change the bottom box (it should say .txt or something like that) to "all files."
4. Name your .txt file (your rom's name).ssc . Make sure it is in the same folder.
5. Open up your hack in Lunar Magic.
6. Open up the Map16 editor.
7. Press ctrl+shift+page down.
8. Now, go to page 0x20 (yes, you have that now! However it cannot be used in the actual game AT ALL. DO NOT TRY. IT IS SIMPLY A REPRESENTATION OF SPRITE GFX.)
9. Now you can treat these tiles just like regular map16 tiles. Go to "edit 16x16 attributes" and change the tile to the tile of the sprite GFX (8x8 editor) you want just like normal. Or, just click > right click on position.
(Note: You can edit regular sprite's graphics as well but the differences are numerous enough I suggest you just read the help file for that.)
10. Take any tiles you want and put them on page 24 and up. Do not use 23 and below because it just won't work with sprites period.
11. Awesome. Got the graphics you want? Press ctrl+shift+f9 to save the data (yes, just like map16 in regular LM except with ctrl+shift.) (A note- if you will use the 8x8 tile idea, DO NOT use the regular 8x8 tile numbers. Replace the first number- probably 2,3,or 4- with 1 or 0. Pretend like page 2 is the start of the 8x8 editor stuff.)
12. Now comes the customisation part. First, you will want to name the custom sprite. Remember that .ssc (.txt) file you made in step 4? Open it up again. You should have the sprite number of the custom sprite you are using there. I will use 10 as a example.
You would have:
10
and that's it.
13. Now you need a description for the sprite. The format for the .ssc file should be as follows:
{Sprite Number}(TAB){Type}(TAB){Description}
Now, it's pretty clear, but you may be wondering about "type." Well, this is pretty easy.
20 = this is a custom sprite when the extra bit (extra info = 2) is not set. Most sprites do not use extra info = 3 so this is all you usually need.
30 = this is when a custom sprite DOES use the extra bit. However, it needs a seperate entry from 20. If you use the extra bit but only 20 is set, that's fine. This will take from 20 instead.
This isn't quite clear, so here is some examples.
Sprite 13, with extra info only using 2. It is a beezo.
13 20 A beezo that flies from SMB2.
Sprite 14, with extra info using 3 AND 2. It is, say, a floating pickle.
13 20 A pickle that floats.
13 30 A pickle that floats. BUT if you are seeing this message, it is also shooting plants at the player because the extra bit is set!
As you can see, the extra bit (extra info at 3) requires a completely different entry. Keep this in mind.
Now, how about 3 sprites- 10,11,12- where 10 and 12 use the extra bit.
10 20 A SMB1 goomba.
10 30 A SMB1 goomba that walks fast because the extra bit is set.
11 20 A crab from Mario Brothers.
12 20 A upside-down podobo.
12 30 A fast upside-down podobo. Extra bit is set.
Not all that bad, right?
14. Now you can specify the tiles so that it not only has the right description, it has the right graphics too. Both this AND the description section go in the same .ssc file!
I like to organise this so while the description area and tile area can probably go in any order, it's best to do this.
The tile format is as follows:
{Sprite Number}(TAB){Type}(TAB){X Offset}(COMMA){Y Offset}(COMMA){Tile}
This requires a lot more explanation.
X offset is the PIXELS in decimal that the tile is displaced. 16 is one full tile over. This is a bit tricky to work with so just do your best to tweak with it for a while. Y offset is the same but in the Y direction. The higher the number the lower down it is.
Tile: This is the tile that you set up in the sprite map16. BUT! It is not 2400 or 2523 or 24A8 like you think. Open up your calculator, go to view > scientific, and then select hex. Now take the tile number you have and SUBTRACT 2000. For instance, tile 2456 is now 456. And 25A9 is now 5A9. DO NOT forget this step!
Type is almost always 22. I will explain when it would be 32 below.
Now, you can draw more than one tile, we will get to that later.
Let's say sprite A9, which will use tile 2478, which is a pickle GFX. I also want the regular pickle description. Here is what I would do in the .ssc file:
A9 20 A flying pickle.
A9 22 0,0,478
That 22 IS A MUST! Otherwise this will just be a description. Make sure it is 22!
That would create a pickle tile right on the sprite.
How about a beezo (GFX tile 2677 and 2679) that has two tiles:
B8 20 A beezo from SMB2.
B8 22 0,0,677 0,16,679
Did you notice how there is a space? Think of the tile as a "section." You separate this section by a space! Just make a space and start again to draw more tiles. You'll also notice the 0,16- this tile is one tile down from the original one.
Now here is where you would use 32. How about a sprite (number 17) that uses 4 graphics tiles. BUT! It also uses the extra bit to determine if they are a green palette or blue. If you don't have different graphics for this type, it will just use the 22 graphics.
17 20 A generic boss.
17 30 A generic boss using a blue palette.
17 22 0,0,278 0,16,27A 16,0,27C 16,16,27E
17 32 0,0,281 0,16,283 16,0,285 16,16,287
32 is used like 30, only for the tiles. It allows you to change the graphics tile based on the extra bit.
15. Save and then close Lunar Magic. Re-open it and bam, your sprites should be all nice and prissy!
Here is another example.
17 20 A sprite that kills mario when he touches it.
17 22 0,0,898 0,0,288
18 20 A shyguy.
18 30 A blue shyguy.
18 22 0,0,400
18 32 0,0,402
19 20 Test sprite
19 30 Test sprite with new feature.
19 22 0,0,500 0,16,678
(Because on 19 is did not specify 32, they will use the same graphics.)
Here is another, straight from my hack:
11 20 A enemy from SMB2 that flies.
11 22 0,0,502
12 20 A snift that will shoot little missles at Mario.
12 22 0,0,503
13 20 A shyguy.
13 22 0,0,500
14 20 A Tweeter.
14 22 0,0,501
15 20 A hopping YI muncher.
15 22 0,0,504
16 20 A hedgehog that extends spries when Mario gets close.
16 22 0,0,505
18 20 The firebar.
18 22 0,0,507 -16,0,507 -32,0,507
19 20 A SuperFirebar.
19 22 0,0,507 -16,0,507 -32,0,507 -48,0,507 -64,0,507 -80,0,507
1A 20 The Koopa generator
1A 22 0,0,506 0,16,516
1B 20 The VWF cutscene tool activator.
1B 22 0,0,50B
1C 20 The message handler sprite for the VWF. Message is determined by x/ypos.
1c 22 0,0,50A 0,0,509
1E 20 The BushMonster. This guy quikly runs and climbs up walls.
1E 22 0,0,508
Another little note- you can superimpose graphics (make them overlap) and they will still show properly. So you can do
11 22 0,0,500 0,0,501 and they will overlap not just overwrite. I use this in the VWF message determiner entry.
Obviously this is not easy to get and all questions are appreciated and will be answered.
Custom Sprite Lists:
(Keep in mind that this does not insert sprites; but it does let you make a list for the custom sprites.)
Open up your sprite inserter and you may notice that "custom sprite list" part. There is a lengthy and cumbersome way to add to this list, but I like this way better:
1. Insert the sprite
2. Select it. Move it to the first screen, on position 7,7. (You can tell what position you are at on the bottom-left of Lunar Magic.)
3. Press Ctrl-Shift-F12.
4. Done. Repeat for more entries.
If you make a mistake with your entry, just open up (yourrom'sname).mwt and delete a entry.
You'll need:
1. Basic Map16 Skills
2. Custom Sprites
3. Lunar Magic VERSION 1.64 OR HIGHER! NO OTHER VERSION WILL WORK.
Okay.
A note: THIS DOES NOT AFFECT THE GAME. AT ALL. THIS SIMPLY LETS THINGS DISPLAY CORRECTLY IN LUNAR MAGIC.
I hate reading!
There's a video tutorial here if you'd like.
1. Pick the custom sprite you want to use. Get it's sprite number.
2. Make a new .txt file. Put in the number of the sprite you will edit and then press file > save as.
3. There, change the bottom box (it should say .txt or something like that) to "all files."
4. Name your .txt file (your rom's name).ssc . Make sure it is in the same folder.
5. Open up your hack in Lunar Magic.
6. Open up the Map16 editor.
7. Press ctrl+shift+page down.
8. Now, go to page 0x20 (yes, you have that now! However it cannot be used in the actual game AT ALL. DO NOT TRY. IT IS SIMPLY A REPRESENTATION OF SPRITE GFX.)
9. Now you can treat these tiles just like regular map16 tiles. Go to "edit 16x16 attributes" and change the tile to the tile of the sprite GFX (8x8 editor) you want just like normal. Or, just click > right click on position.
(Note: You can edit regular sprite's graphics as well but the differences are numerous enough I suggest you just read the help file for that.)
10. Take any tiles you want and put them on page 24 and up. Do not use 23 and below because it just won't work with sprites period.
11. Awesome. Got the graphics you want? Press ctrl+shift+f9 to save the data (yes, just like map16 in regular LM except with ctrl+shift.) (A note- if you will use the 8x8 tile idea, DO NOT use the regular 8x8 tile numbers. Replace the first number- probably 2,3,or 4- with 1 or 0. Pretend like page 2 is the start of the 8x8 editor stuff.)
12. Now comes the customisation part. First, you will want to name the custom sprite. Remember that .ssc (.txt) file you made in step 4? Open it up again. You should have the sprite number of the custom sprite you are using there. I will use 10 as a example.
You would have:
10
and that's it.
13. Now you need a description for the sprite. The format for the .ssc file should be as follows:
{Sprite Number}(TAB){Type}(TAB){Description}
Now, it's pretty clear, but you may be wondering about "type." Well, this is pretty easy.
20 = this is a custom sprite when the extra bit (extra info = 2) is not set. Most sprites do not use extra info = 3 so this is all you usually need.
30 = this is when a custom sprite DOES use the extra bit. However, it needs a seperate entry from 20. If you use the extra bit but only 20 is set, that's fine. This will take from 20 instead.
This isn't quite clear, so here is some examples.
Sprite 13, with extra info only using 2. It is a beezo.
13 20 A beezo that flies from SMB2.
Sprite 14, with extra info using 3 AND 2. It is, say, a floating pickle.
13 20 A pickle that floats.
13 30 A pickle that floats. BUT if you are seeing this message, it is also shooting plants at the player because the extra bit is set!
As you can see, the extra bit (extra info at 3) requires a completely different entry. Keep this in mind.
Now, how about 3 sprites- 10,11,12- where 10 and 12 use the extra bit.
10 20 A SMB1 goomba.
10 30 A SMB1 goomba that walks fast because the extra bit is set.
11 20 A crab from Mario Brothers.
12 20 A upside-down podobo.
12 30 A fast upside-down podobo. Extra bit is set.
Not all that bad, right?
14. Now you can specify the tiles so that it not only has the right description, it has the right graphics too. Both this AND the description section go in the same .ssc file!
I like to organise this so while the description area and tile area can probably go in any order, it's best to do this.
The tile format is as follows:
{Sprite Number}(TAB){Type}(TAB){X Offset}(COMMA){Y Offset}(COMMA){Tile}
This requires a lot more explanation.
X offset is the PIXELS in decimal that the tile is displaced. 16 is one full tile over. This is a bit tricky to work with so just do your best to tweak with it for a while. Y offset is the same but in the Y direction. The higher the number the lower down it is.
Tile: This is the tile that you set up in the sprite map16. BUT! It is not 2400 or 2523 or 24A8 like you think. Open up your calculator, go to view > scientific, and then select hex. Now take the tile number you have and SUBTRACT 2000. For instance, tile 2456 is now 456. And 25A9 is now 5A9. DO NOT forget this step!
Type is almost always 22. I will explain when it would be 32 below.
Now, you can draw more than one tile, we will get to that later.
Let's say sprite A9, which will use tile 2478, which is a pickle GFX. I also want the regular pickle description. Here is what I would do in the .ssc file:
A9 20 A flying pickle.
A9 22 0,0,478
That 22 IS A MUST! Otherwise this will just be a description. Make sure it is 22!
That would create a pickle tile right on the sprite.
How about a beezo (GFX tile 2677 and 2679) that has two tiles:
B8 20 A beezo from SMB2.
B8 22 0,0,677 0,16,679
Did you notice how there is a space? Think of the tile as a "section." You separate this section by a space! Just make a space and start again to draw more tiles. You'll also notice the 0,16- this tile is one tile down from the original one.
Now here is where you would use 32. How about a sprite (number 17) that uses 4 graphics tiles. BUT! It also uses the extra bit to determine if they are a green palette or blue. If you don't have different graphics for this type, it will just use the 22 graphics.
17 20 A generic boss.
17 30 A generic boss using a blue palette.
17 22 0,0,278 0,16,27A 16,0,27C 16,16,27E
17 32 0,0,281 0,16,283 16,0,285 16,16,287
32 is used like 30, only for the tiles. It allows you to change the graphics tile based on the extra bit.
15. Save and then close Lunar Magic. Re-open it and bam, your sprites should be all nice and prissy!
Here is another example.
17 20 A sprite that kills mario when he touches it.
17 22 0,0,898 0,0,288
18 20 A shyguy.
18 30 A blue shyguy.
18 22 0,0,400
18 32 0,0,402
19 20 Test sprite
19 30 Test sprite with new feature.
19 22 0,0,500 0,16,678
(Because on 19 is did not specify 32, they will use the same graphics.)
Here is another, straight from my hack:
11 20 A enemy from SMB2 that flies.
11 22 0,0,502
12 20 A snift that will shoot little missles at Mario.
12 22 0,0,503
13 20 A shyguy.
13 22 0,0,500
14 20 A Tweeter.
14 22 0,0,501
15 20 A hopping YI muncher.
15 22 0,0,504
16 20 A hedgehog that extends spries when Mario gets close.
16 22 0,0,505
18 20 The firebar.
18 22 0,0,507 -16,0,507 -32,0,507
19 20 A SuperFirebar.
19 22 0,0,507 -16,0,507 -32,0,507 -48,0,507 -64,0,507 -80,0,507
1A 20 The Koopa generator
1A 22 0,0,506 0,16,516
1B 20 The VWF cutscene tool activator.
1B 22 0,0,50B
1C 20 The message handler sprite for the VWF. Message is determined by x/ypos.
1c 22 0,0,50A 0,0,509
1E 20 The BushMonster. This guy quikly runs and climbs up walls.
1E 22 0,0,508
Another little note- you can superimpose graphics (make them overlap) and they will still show properly. So you can do
11 22 0,0,500 0,0,501 and they will overlap not just overwrite. I use this in the VWF message determiner entry.
Obviously this is not easy to get and all questions are appreciated and will be answered.
Custom Sprite Lists:
(Keep in mind that this does not insert sprites; but it does let you make a list for the custom sprites.)
Open up your sprite inserter and you may notice that "custom sprite list" part. There is a lengthy and cumbersome way to add to this list, but I like this way better:
1. Insert the sprite
2. Select it. Move it to the first screen, on position 7,7. (You can tell what position you are at on the bottom-left of Lunar Magic.)
3. Press Ctrl-Shift-F12.
4. Done. Repeat for more entries.
If you make a mistake with your entry, just open up (yourrom'sname).mwt and delete a entry.