14 users online: annaxmaria, aroohwahoou, CogashiGarlic, Cornkid1x, Domokun007,  Fernap, GrenCarret, Idyllic, kiki79250, MarioTeam, mr_cool, Natsuz2, SolveForX, TheJank - Guests: 101 - Bots: 246
Users: 55,697 (2,352 active)
Latest user: tkHilker

VWF Cutscene Tool

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:

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.

Breaks a line.

Wait for the player to press a button before continuing. Also restarts cutscene if the player is holding A or B.

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.

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:

Erases current text.


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.

Draws a sprite. This is more advanced.

Originally posted by Romi
Shows 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.

Erases the sprite tiles you drew.

Originally posted by Romi

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.
Jumps to the label.
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

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.
This is really good for your first tutorial, but I think this would be better in the Basic or Advanced Forum.
Background image by Tzadkiel & Anomalin
thank you soo much finally i can make cutscenes!!

ohh didn't noticed
100th POST ^^

I cry when angels deserve to die <3
Lay-out made by Broozer

Good. I was wondering what the hell to do with this.

I vote for sticky, but in Basic SMW Hacking. This one has too many stickies. 0_o
This looks like it will help many people, but may I recommend making a tutorial on how to use the font convertor?

World Community Grid: Thread | Team
OK, thanks everyone. Could a mod please move this to basic or advanced? (Whichever one would be better.) Once I'm a bit better at this, I'll add a new section about the font converter and drawing sprites.
Your layout has been removed.
Why not submitting such stuff to the documents section? It would be in good hands there. Also it would prevent cluttering up the forums and eventually getting lost between other threads if not stickied.

I'd love to have my tutorials destickied and trashed too as I'm not planning to continue those but no one wants to get rid of them.
Some time tomorrow I'll add a new section in the tutorial about how to draw sprites. Then later, I might do another section on font converter.
Your layout has been removed.
When I click on perl a message shows up that says:
"Loading user definition...
Finished defining

Couldn't open miau for reading
Push any button to continue . . . "

My steps:

1. Made a new .txt file in msg folder.
2. Wrote cutscene.
3. Opened list.txt deleted everything and wrote: 01 miau
4. Double clicked on perl.bat

I have installed ActivePerl, but thats all hat its saying.

EDIT: I have saved after I wrote: 01 miau , of course.
Your layout has been removed.
Perhaps you can add what the sprite property tiles mean, as they create the palettes for your tile. This is what I posted in the thread about the tool in Advanced SMW Hacking:

Originally posted by Yoshiboy
Apparently it doesn't support Palette D. Here is a documentation of what the palette gets set to:

00 Yellow-Pink-Gray Palette (GFX01) 
02 Pink-Gray Palette (GFX01) 
04 Yellow Palette (GFX01)
06 Blue Palette (GFX01) 
08 Red Palette (GFX01)

Just add 1 to the property number of that palette, and it will be set to the tiles in SP4. The tile number of the sprite is just for the tile on that graphics page.
Hi. I'm totally n00bish and just wanted to ask something.
When I start sprite_tool.exe first he asks for the rom. That's no problem but after that he asks for the listfile and I don't know which file I have to insert =(
Originally posted by SuiZiD
Hi. I'm totally n00bish and just wanted to ask something.
When I start sprite_tool.exe first he asks for the rom. That's no problem but after that he asks for the listfile and I don't know which file I have to insert =(

You need to type "sprites.txt" or what else the name of your sprite list is. (It should be located in the same folder as SpriteTool.)
I did it but now Lunar Magic said the Rom is corrupted -.-
I did it 5 times now with reading this Tutorial but it corrupted every time oO
Few tools fix the checksum. I say ignore it.
<blm> zsnes users are the flatearthers of emulation
ok thanks i fixed it by myself but now (i know i am a damn nub i started with smw hacking yesterday) i stuck at activating in the game. i don't unterstand how to place the main sprite and so on could anybody explain it in n00bish step by step? xD
it wont work for me.....I can insert the vwf1 asm file and cfg file in spiret tool

quted by ghostly kirby.
Now insert the main sprite (the "vwf" one).
whene it was going to insert the main sprite (vwf) it seys that exsas found a error and to read the tempas txr....

once in the tempas.txt it seys this....

error: tmpasm.asm: line 236{2}: invalid opcode or command [PEA .ReturnedCommand-1]
error: tmpasm.asm: line 672: invalid opcode or command [PEA .ReturnedCommand-1]
error: tmpasm.asm: line 978{2}: file not found [incbin vwf.bin]
error: tmpasm.asm: line 979{2}: file not found [incbin width.bin]
INIT 008000
MAIN 00807b
error: tmpasm.asm: line 978{2}: file not found [incbin vwf.bin]
error: tmpasm.asm: line 979{2}: file not found [incbin width.bin]
I put vwf.bin and width.bin in the tilemap folder with all the other .bin files but it still gives me the error above.


ps.good tutoreal.

douple ps. how do you set mario cordenets to zero?

Put it in the Sprite Tool folder, not the tilemaps folder.

Also, to change Mario's coordinates, click on the 2nd door button.

Are you using romi's spritetool and did you download the special xkas?

World Community Grid: Thread | Team
yes i have romi's spiret tool and xksas.

i do not know if its the special xksas but i got the xksas mentiond in the tutor.
Could you maybe explain the sprite making part a little better? I don't understand how to set up the tiles.