Alright, this is my first tutorial, so here goes...
*NOTE* This tutorial is assuming you know how to use spritetool and insert custom sprites into your hack.
So, many people can't seem to get Romi's Variable Width Font Cutscene tool working, so here is how to do it.
What You Will Need:
A SMW ROM (Can be hacked)
Lunar Magic (Of course)
Romi's Spritetool
This version of Xkas
Cutscene Tool
You also need
Activeperl installed.
Part 1: Getting it Set Up
Once you have all that, make sure spritetool is in the same folder of your ROM. Now take the version of xkas you downloaded, and replace the original one include with spritetool in it.
Now that the basics are done, extract the compressed (zipped) folder with Cutscene tool in it to the folder that your ROM is in. Go into the "sprites" folder and take out the sprites and put them in the "sprites" folder included with spritetool. Now go into the "bin" file, go into "msg", and create a new text file.
Part 2: Writing Your Cutscene
Now that everything is set up, it's time to wright your cutscene!! These are the commands you can use:
[end=xx]
Where xx is, put a level number to teleport there, or one of the following for other effects:
goal-Ends the level as a normal exit.
sgoal-Ends the level as a secret exit.
exit-Fades to over world, just like a side exit.
If you don't put anything at the end, than it will automaticly use side exit mode.
[]
forcibly outputs a space.
[br]
Breaks a line.
[wait]
Wait for the player to press a button before continuing. Also restarts cutscene if the player is holding A or B.
[wait=xxx]
Wait the decimal number of frames until continuing. Replace xxx with the amount of frames to wait. Number can be anywhere between 0 and 255.
[font color=x]
Replace x with a number between 1 and 3. This changes the font color.
[/font color]
Changes the font color back to normal.
[pad left=*] [pad right=*] [pad=*,*]
I don't really get what this does, so here's Romi's description:
Originally posted by Romi
Sets up padding width of either left side or right side, or both at once. When you specify both at once, the first one is for left, the second one if for right, respectively. * can be anywhere between 0-255. Although, you have to beware of it if (256 - left_width - right_width) is minus or much width, to render any terms, can be left, or the game may be crashed or freezed because of terms that were unable to fit in space.
Initially, the left width and the right width are both set to 8.
[music=xx]
Replace xx with a hex number to changes the music. Note that you can only have custom music change to another custom song if they are in the same block. A block is 4 different songs. They start at 20-23, then 24-27, and so on. Also note that you must put the hex number one more higher than it actually is. So if I wanted to change the music to song 22, than I'd have to type:
[music=23]
[erase]
Erases current text.
[topic][/topic]
Between [topic] and [/topic], right the topic of the scene. You can change it as much as you want. It's usualy used to show that a charcter is speaking.
[sprite=*](X,Y,T,P,S)...[/sprite]
Draws a sprite. This is more advanced.
Originally posted by RomiShows the sprite tiles at any place; but basically you only want to show them on the top display.
In the first sprite tag, you specify the number of the sprite tiles in hexadecimal which can be anywhere between 1-7F. Between the sprite tags, you specify OAM attributes in (X,Y,T,P,S) as many times as you specified in *. Each character stands for X, Y, Tile, Property, Size, respectively. As the name suggests, X and Y are coordinates to show the tile, Tile is the tile number, Property is the property of the tile in YXPPCCCT format and these 4 attributes should be specified in hexadecimal. Size is the tile size, and should be named either small or big.
[sprite=erase]
Erases the sprite tiles you drew.
Originally posted by Romi
[label=*]
Defines a label in the current position. This tag itself doesn't interfere the result size.
[branch=*] [branch2=*]
Lets the player select one sentence from last 2-5 sentences. Depends on which is selected, jumps to either label. You separate each label by a comma, and the tool automatically calculates the number of labels in the tag. After selected, it breaks one line automatically. However, if you specify the tag name as branch2, it won't.
[jump=*]
Jumps to the label.
[skip=*]
Jumps to the label if the Start button is pressed. The label should be in right before the [end=*] tag
Now that you've wrote your cutscene, go back into "bin" and open up the file called "list". In there, right a number and the name of your text file with the cutscene in it. e.g.
00 test
01 hi
02 COOKIES FOR DINNER!!
Now save it, and open up the batch file. It should be called "perl". It will convert your cutscene into an ASM file. It will be called "vwf_data1". Replace the one in your sprites folder with it. Note that you must do that every time you make changes, otherwise they won't be saved.
Now insert the sprites with spritetool.
Part 3: Activating the Cutscene
Now that your sprites are inserted, press ctrl+delete to delete all objects and sprites, and then set mario's cordinates to 0. Now insert the main sprite (the "vwf" one). Make sure not to set the extra bit though; doing so will probably crash the game. And now insert the data sprite (the one called "vwf_data1"). Place move the data sprite to a different position depending on the cutscene you want to play. So if I wanted to play cutscene number 0, then I'd leave in the top-right coner. Or if I wanted to play number 256, then you'd put it in the bottom right corner. Now just play the level, and if you did everything right, than you'll have a cutscene!!
I hope this helps everyone. If you have a problem or question, than feel free to post.
Your layout has been removed.