Victory Road Archive

You are viewing an archive of Victory Road.

Victory Road closed on January 8, 2018. Thank you for making us a part of your lives since 2006! Please read this thread for details if you missed it.

Video and Computer Games → Randoguy Makes a Tutorial

Page 1 of 1

1. randoguy101 said on April 24, 2010, 07:48:34 PM (-07:00)

Volcarona
688 posts

Some dude asked me how to make a hack, and I figured that JAD could use some help as well, so why not?

This tutorial shall be divided into sections and be updated over time. There are the 4 main sections:

Simple Program Use
Complex Program Use
Simple Coding
Complex Coding

Within each main Section is a smaller section for each individual program:

Simple Program Use:

  • Lunar Magic v1.82 (Getting Started) [SPLMSMW]
  • Lunar Magic v1.82 (Basic Level Making) [SPLMLVL]
  • Lunar Magic v1.82 (Using Objects) [SPLMOBJ]
  • Lunar Magic v1.82 (Using Sprites) [SPLMSPR]
  • Lunar Magic v1.82 (Changing Level Properties) [SPLMPRO]
  • Lunar Magic v1.82 (Changing Palettes) [SPLMPAL]
  • Lunar Magic v1.82 (Working with Screen Exits) [SPLMSCR]
  • Lunar Magic v1.82 (Overworld Layer 1) [SPLMOW1]
  • Lunar Magic v1.82 (Overworld Layer 2) [SPLMOW2]
  • Lunar Magic v1.82 (Overworld Events) [SPLMOWE]
  • Lunar Magic v1.82 (Overworld Sprites) [SPLMOWS]
  • YY-CHR v0.99 (Loading and Saving .bin Files) [SPYYLSB]
  • YY-CHR v0.99 (AllGFX) [SPYYALL]
Complex Program Use:
  • Lunar Magic v1.82 (Locking your hack) [CPLMLOK]
  • Lunar Magic v1.82 (Map16) [CPLMM16]
  • Lunar Magic v1.82 (Manually Inserting) [CPLMMNL]
  • Lunar Magic v1.82 (Graphics Bypass) [CPLMGFX]
  • Lunar Magic v1.82 (ExGFX) [CPLMEXG]
  • Lunar Magic v1.82 (ExAnimation) [CPLMEXA]
  • Block Tool Super Deluxe v0.44 (Using ASM Blocks) [CPBTASM]
  • Block Tool Super Deluxe v0.44 (Using BIN Blocks) [CPBTBIN]
  • Lunar Magic v1.82 (Inserting Custom Blocks) [CPLMCTB]
  • Xkas v0.06 (Inserting Hex Edits) [CPXKHEX]
  • Xkas v0.06 (Inserting Patches) [CPXKASM]
  • Spritetool v1.40 (Saving Sprites) [CPSTSAV]
  • Spritetool v1.40 (Sprite List) [CPSTTXT]
  • Lunar Magic v1.82 (Inserting Custom Sprites) [CPLMCTS]
  • Carol's Addmusic v1.22 (Saving Music) [CPCASAV]
  • Carol's Addmusic v1.22 (Music List) [CPCATXT]
  • Romi's Addmusic (Saving Music) [CPRASAV]
  • Romi's Addmusic (Music List) [CPRAINI]
  • Romi's Addmusic (Inserting Sound Effects) [CPRASFX]
  • Lunar Magic v1.82 (Loading Custom Music) [CPLMMUS]
Simple Coding:
  • Block Tool Super Deluxe v0.43 (Making ASM Blocks) [SCBTASM]
  • Block Tool Super Deluxe v0.43 (Making BIN Blocks) [SCBTBIN]
  • Xkas v0.06 (Making Hex Edits) [SCXKHEX]
Complex Coding:
  • Xkas v0.06 (Making Small Patches) [CCXKSML]
  • Xkas v0.06 (Making Large Patches) [CCXKLRG]
  • Xkas v0.06 (LevelASM) [CCXKASM]
  • Spritetool v1.40 (Making Generators) [CCSTGNR]
  • Spritetool v1.40 (Making Small Sprites) [CCSTSML]
  • Spritetool v1.40 (Making Large Sprites) [CCSTLRG]
  • Spritetool v1.40 (Making Bosses) [CCSTBOS]
The brackets with letters inbetween are jump labels. They exist to jump to a certain part of the tutorial. The format goes like this:

[MMPPSSS]

Where:
MM = Main Section
PP = Program
SSS = Section of that program's tutorial

To use the jump labels, hit Ctrl+F and type the 7 letter label, then type a J at the end.

I've also listed the latest versions of each program, so you know which version you should have.

If you have any questions, feel free to ask them in this thread, I'd be glad to answer them!

Lunar Magic v1.82: Getting Started [SPLMSMWJ]
To start, you'll need the following programs:
Lunar Magic v1.82
Any SNES Emulator
A Clean, Headered, SMW ROM

First off, to be able to hack Super Mario World, you need a Super Mario World ROM. While we aren't allowed to distribute ROMs on this website, all you really need to do is Google it. However, for most of these programs, you can't just use any ROM, you need a 513KB one titled:

Super Mario World (U) [!]

Some programs/patches will only accept US ROMS, so the (U) is necessary. If you live in the UK, sorry, but a US ROM is usually necessary. As for the [!], that means that the ROM is headered, or in other words, it has 512 bytes of data at the top of it. While this may not seem important, Some patches only work with headered ROMs, so using a ROM that isn't headered could severely glitch (and possibly break) your hack.

Finally, and most importantly, your ROM needs to be clean. For it to be clean, it has to be a perfect dump of the game, with no problems in the data at all. To check if your ROM is clean, use the Clean ROM Verifier on SMWCentral.

Now that you have your ROM, you can start hacking! To start off, you'll want to download Lunar Magic v1.82. This program can insert graphics, edit levels, change the overworld, and a few more things. It's the program you'll be using the most, in fact, as everything is tied to either the overworld or the levels.

First, you need to open your ROM. To do this, Click the Single folder button in the top left corner, and select your ROM.

Embedded image

If it shows the first level of Super Mario World, congratulations, you have successfully opened Lunar Magic!

As you can see, there are many buttons. I made a simple diagram explaining them.

Embedded image

If this doesn't make sense, it will over time. Tomorrow, I'll tell you how to edit levels.

Lunar Magic v1.82: Basic Level Making [SPLMLVLJ]
If Lunar Magic were a programming language, this section would be a Hello World program. In this part I tell you how to place objects and sprites, how to save your game, and how to test it.

To start, you should always press Ctrl+Del before making a level, getting rid of all the objects and sprites already in the level. This is to ensure that all levels are original, and not just based off of the levels from the original game.

With that done, select the grass button to go into Object Editing mode:
Embedded image
And then select the Turn Block button:
Embedded image
Your screen should look like this:
Embedded image
Now all we need to do is place the objects. To start, we'll make a simple platform out of cement blocks. Select the cement block from the list of objects, and right click on the level. A 4x4 square of cement blocks will appear. Of course, you probably don't want all your objects to be in 4x4 squares. Luckily, you can stretch most objects horizontally and/or vertically. All you need to do is move your mouse to the edge of the object. Your cursor should turn into a pair of arrows (given you haven't changed your cursor, of course). Just hold the left mouse button and drag up, down, left or right. This will make it stretch on the X or Y axis, depending on which side you clicked on.

Now, click on the save button to save your game.
Embedded image
You have just successfully made your first level in Lunar Magic! Of course, you probably want to see it in-game. This is where the emulator comes in handy. Just press F4 on Lunar Magic, select your emulator, and it will load the game. This specific level should be called YOSHI'S ISLAND 1. Congrats, now you can play your level. Note that there are other objects you can place, such as black piranha plants, water, and of course, ground. You may experiment with these as you wish.


Lunar Magic v1.82: Using Objects [SPLMOBJJ]
Eventually, you might want to make levels with more than just water, ground and clappers. Eventually, you'll want to include midpoints, Dragon Coins, Question Blocks with Mushrooms, or Switch Blocks. Well, in this part we get to explore all the different types of objects in Super Mario World.

To access these blocks, click the drop down box in the objects window. This will show four types of objects:

Standard Objects: These objects are common and don't do anything specific to the level itself. Includes basic ground, clappers, vines, and a few other things. These objects are the most used.
Tileset Specific Objects: These objects only work in specific tilesets. You don't need to know what tilesets are yet, but basically, these objects only work in certain levels.
Extended Objects: This is a vast list of objects that can do special things to the level such as transport you, generate sprites, change depending on certain variables, and more. Includes most Question Blocks, Dragon Coins, Midpoints, Switch Blocks, Doors and Berries.
Direct Map16 Access: This is a bit too complicated for now, but basically, these are the tiles that make up the objects.

And, well that's it. Tomorrow, we'll be exploring sprites, and their various uses.

Lunar Magic v1.82: Using Sprites [SPLMSPRJ]

By now, you probably want to add enemies. In this part, we get right onto that. But, first you need to know the difference between sprites and objects:

Sprites can move. The most important thing about sprites is that, unlike objects, they can move around the screen, while objects stay still.

You can only have a certain amount of sprites onscreen before they start to disappear or cause slow-down. Objects, however, don't have this problem.

You can only have a certain amount of sprites in one level. As far as I know, there's no limit to the amount of Objects you can put in.

You can only have 255 different sprites. You can also have 255 custom sprites, but I don't want to get into that just yet.

Most sprites cannot interact with other sprites. If you put a Koopa on a Message Box, it'll fall through. Some sprites also can't interact with objects, but that's easily customizable.

With that said, like with Objects, you must first enter Sprite Editing mode by clicking this button:
Embedded image
Then click this button:
Embedded image
Your screen should look like this:
Embedded image

Just like objects, all you need to do is select a sprite from the list, and right click on the screen to place it. And like objects, there are many different kinds of sprites you can use:

Standard Sprites: Basically, sprites that will work with any level, regardless of tileset.
Tileset Specific Sprites: Similar to objects, some sprites have graphics that only work on some levels. This is bad, as it can lead to glitched graphics in levels, or very confusing enemies. NEVER USE SPRITES WITH GLITCHED GRAPHICS, OR ANY GRAPHICS THAT DON'T LOOK RIGHT. Also, this is a vast list, and you might want to look through it extensively some time.
Special Commands and Generators: Generators are quite the interesting thing. They aren't exactly sprites, but bits of code that run when the sprite is loaded. For example, if I wanted to make a message appear on Screen 5, I'd put the generator there and, when the player reaches screen 5, the message is displayed. This section also contains shooters, which make sprites appear. They're the closest things to sprites on this page.
Custom Collections of Sprites: You do not need to worry about this for a while.

Now you an make basic levels! But what if you want to give the level different time, music, graphics and/or background? We'll be getting to that tomorrow in a few weeks.

Lunar Magic v1.82: Changing Level Properties [SPLMPROJ]

Yeah, it's been a while, but this is a pretty important bit, so you really should read this.

First of all, you've probably heard me mentioning tilesets a few times. Tilesets are basically settings that allow you to edit the graphics used in the level, as well as the way certain objects act. To edit tilesets, simply click the Poison Mushroom button:
Embedded image
It should bring up a dialog with two setting: The sprites' tileset and the objects' tileset. Pretty self-explanatory.

When you edit a tileset, the background will most likely glitch up. To fix this, go to Level > Copy Background Image... and select the level you want to copy the background from. If you want to make your own background, click the leaf button:
Embedded image
Then click the ? Block button:
Embedded image
To place tiles, select the tile from the 16x16 Editor window, and right click on the Background Editor window in the area you want to place it.

There are three dialogs for changing the more advanced level properties, but to start, we'll edit the level header. To do this, click the Mario button:
Embedded image
A dialog should pop up looking like the one below, which I have conveniently added explanations to.
Embedded image

You might have noticed that I didn't explain the music and time boxes. This is because there's a much more flexible way to edit them. To use this method, simply click the Note Block button:
Embedded image
The dialog that appears is pretty much self-explanatory.

There's a separate dialog to edit the sprite settings, however. First, click the Lakitu button:
Embedded image
The first thing you'll see is a dropbox, containing various numbers and letters that probably make no sense to you. This is the sprite tile settings, which basically decide which sprites prioritize other sprites. You'll usually want to use 0E, but in some cases there are other recommended settings. You'll also see two checkboxes, which enable sprite interaction with water and lava, at the cost of something else. You'll usually want to set it to disable Layer 2 interaction, as using the first setting can drastically lag the level.

Keep in mind that, in order to use Podobos and Cheep-Cheeps properly, you MUST have this enabled, other wise the fish will just flop about, and the Podobos will crash the game.

Another thing of note is the Other Settings Dialog, which can be accessed by pressing the fish button:
Embedded image
The dialog that appears can change the scrolling rate of Layer 2 (background or level data) and Layer 3 (special effects). It also has a few other uses, such as Vertical Level Positioning, and Disabling the No Yoshi intro. Again, this dialog is pretty self-explanatory, with the exception of the Layer 2 Scrolling dropbox. Basically, Constant means that it scrolls with the rest of the level, Variable means it scrolls a tad slower than the level, and None means it doesn't scroll at all. If your level uses a Layer 2 Scrolling generator, The Horizontal an Vertical scrolling MUST be set to None.

That's pretty much it for Level Properties. I was also going to go over Palettes in this part, but I think that deserves it's own part. Till then, see you guys!

Lunar Magic v1.82: Changing Level Palettes [SPLMPALJ]

Oh man, working on my tutorial again. If you've followed the tutorial and changed the tilesets in any of your levels, you may have noticed that it looks like an eyesore at first.
Embedded image
That mushroom stem has odd colours, doesn't it? That's because it wasn't intended to use that palette.

For those who don't know, a palette is an arrangement of predetermined colours to be used in an image. Image formats such as GIFs use palettes to decrease file size, and most early video game consoles used palettes as an easy way to access specific colours.
In Super Mario World, there are 16 palettes to access colours from (0F in hexadecimal; I'll explain what that is in the Simple Coding section), and each palette can have up to 16 colours (again, 0F in hexadecimal). The first 8 palettes (0-7) are usuable ONLY for the foreground and background, and the last 8 (8-F) are usable ONLY for sprites.

There are already 24 palettes set up for you; 8 for the foreground, 8 for the background, and 8 for use with certain sprites. To change these, click the rainbow star button:
Embedded image
The following dialog will appear. The colours surrounded by red boxes can be edited via the dropdown box they're connected to. The colours surrounded by blue boxes cannot be edited on a per level basis.
Slightly large image!!!    
Embedded image

You might want to change the palettes to use colours other than the ones in the 24 predetermined ones. To do this, simply click on the colour, change it and click "OK".

Now, once you've changed the palettes to whatever you want, there are two things you can do. If you want the colours to be like that the entire game (e.g. You change palette 5 to be red, and want it to stay red in other levels), click the button in the bottom right labeled "Save RGBs to ROM". (Additionally, if you want to get discard the changes you've made, click the button next to it labeled "Discard RGB Changes.") If you only want the changes to appear in the level you changed them in (e.g. you changed palette 5 to be red while level 1 was open, and want it to be red ONLY in level 1), go to Level > Enable Custom Palette, and then save the game. (If you wish to go back to the original palette in said level, simply click "Enable Custom Palette" again to revert any palette changes made.) Keep in mind that if you don't save the palette before jumping to a new level, the changes won't be made.

Another thing to keep in mind is that Mario's palette can't be changed on a per level basis. In other words, if you change it in one level, it'll stay the same in all the other levels.

Before I finish, there's one neat trick I'd like to show you. If you hold Alt and right click one one colour, and then right click (while holding Alt still!) on another colour in the same palette, it'll make a gradient between the two. Just a useless little mechanic included in Lunar Magic, if you really care about it.

Next time, effing screen exits, how do they work. Till then, see you guys!

Lunar Magic v1.82: Working with Screen Exits [SPLMSCRJ]

The way pipes and doors work in SMW is pretty complicated. Rather than each door and pipe having independent destinations, their destination is determined by what screen they're on. This is what is called a screen exit.

First off, to be able to see screen exits, you'll need to press the blue door button (or just press F1):
Embedded image
This should make blue borders appear at the edge of each screen, as well as making the screen number (in hexadecimal) appear in the top left corner of the screen.

Now, whenever there's an exit on a screen, it will turn a blueish hue and display the screen's destination in the top left corner, an extremely useful feature.

Before we can make a Krabby Patty, let's start out by editing the level entrance settings. This is done by clicking the 1st Door button:
Embedded image
The following dialog will appear, which by this point looks like nothing but numbers and a few letters.
Embedded image
First thing I should point out (to get out of the way) is the FG/BG Initial Position. Back in the days on LM 1.65, it was important to set the BG Initial Position to equal the FG, because if you didn't the background would scroll out of bounds and start to glitch up. However, that problem was fixed in LM 1.70, so now it doesn't matter what you set the BG to, as long as it doesn't look cut off. The FG, on the other hand, should always start at the same level as Mario (this is trial and error so I don't need to explain it).

Next is the X/Y Position. It chooses where on the screen you appear. It's best that you set them using Method 2, because it allows Mario to appear anywhere on the screen, as opposed to predetermined locations.

Finally, you can choose which screen you appear on before and after getting the midpoint. Notice that your X/Y position is the same after you get the midpoint, only the screen you appear on changes.

There's some other self explanatory stuff in there (how you enter a level, if its' slippery, etc), though I'm starting to get off track of the subject here, so let's continue on.

To change screen exits, click on the +/- door button:
Embedded image
A dialog should appear with a dropbox, a text box, and two check marks.
For starters, the dropbox determines which screen you wish to edit. If I had a pipe on screen 2, I'd select screen 2.
The Level Destination is what level the screen will lead to. If you check the first checkbox, however, it determines which SECONDARY exit the screen leads to.
A secondary exit is an exit that can be at any part of any level, to allow for such things as bonus areas in which you reappear in the level when you finish the bonus. To edit secondary exits, click the 2nd Door button:
Embedded image
As you can see, the dialog is very similar to the Level Exit dialog, with the exception of a dropbox and one of the text boxes. The dropbox determines which secondary exit you wish to edit, giving you a total of 512 secondary exits to use.
The new textbox decides which level the secondary exit leads to, and the textbox below it determines which screen you exit from.
Notably, you cannot 'delete' a secondary exit; that is, each exit must lead SOMEWHERE, even if it isn't accessible. Most blank secondary exits lead to the top left corner of levels 0 and 100 (the endless bonus game rooms), and are never used.

I believe I covered everything. If you still have questions on the subject, feel free to ask in the thread, and I'll answer as best as I can. Next time, we'll work on the Overworld, until then, see ya.

Likes 5 – piexing, Cat333Pokémon, OMGITSJAD, NismoZ, Shiny

2. foxbot56 said on March 3, 2011, 09:53:00 AM (-08:00)

Mudkip
42 posts

oh my...
thanks it also helped me to

3. randoguy101 said on March 3, 2011, 12:21:42 PM (-08:00)

Volcarona
688 posts

oh hey thanks for reminding me I need to continue this and my ASM tutorial

Likes 1 – piexing
Page 1 of 1

User List - Contact - Privacy Statement - Lycanroc.Net