Vertical levels

From SMWiki
Jump to: navigation, search

You would think it would be just as easy as making a horizontal level, but most hackers have found that making vertical levels in Super Mario World 1 hacks is vastly different and much harder than making horizontal ones. There are quite a few limitations to making these levels, as well as a few things you have to watch out for.

History

Vertical levels first appeared in Kid Icarus. Just as you couldn't go backwards in Super Mario Bros. 1's levels, you couldn't go down in KI's levels. They had a wraparound feature similar to Pac-Man: if you left the level on the right side, you'd reappear on the left.

The first Mario game to feature vertical levels was Super Mario Bros. 2 (Doki Doki Panic?). Vertical levels were handled similarly to KI, but you could go down in these levels, and the scrolling was very awkward. Once you hit the top or bottom of a screen, the entire thing would shift up or down, giving you access to the next area.

Super Mario Bros. 3 fixed the scrolling problem, but vertical levels were still wraparound. Vertical levels were extremely rare: only six existed, and they all used the "pipes" GFX. They were a secret level in World 4's second castle, part of 5-2, 7-1, 7-6, and the "reward" rooms for both Muncher levels in World 7.

Super Mario World 1 finally perfected the "vertical level" formula by eliminating the wraparound behavior and even extending the horizontal width of the level to approximately two screens. However, the game uses vertical levels about as sparingly as SMB3 did: only Star World 1, Gnarly, and Vanilla Secret 1 are vertical levels accessible from the overworld, while the other vertical levels are accessed only through exit-enabled objects. They are the second half of Morton's Castle, the second half of Ludwig's Castle, the last part of the Sunken Ghost Ship, and room 6 of Front Door. There's also Level 108, but that's just a test level that uses the Underground 1 tileset with a glitched version of Chocolate Island 3's background (switching to Underground 3 eliminates the glitch).

Setting up the level

First, you have to make a level vertical. To do this in Lunar Magic, click the "Change Properties in Header" button (the toolbar button with the Mario's head icon). Level modes 7 and 8 activate vertical Layer 2 levels, with the former effectively being a vertical version of the first room of Ludwig's Castle (it was never used in the original game). Level mode A is a regular vertical level, while level mode D is a vertical dark BG level (also never used). Level mode D is a vertical version of the entrance to Donut Ghost House.

You are most likely going to want to set scrolling to "Vertical Scroll at Will" for vertical levels.

When setting up entrances and stuff, remember that you're dealing with left and right, not top and bottom. So the "S=0"/"S=1" bit will affect Mario's X position, not Y.

Most likely, when you test the level in your emulator, you'll notice that the camera has to scroll up to catch up to Mario and that he's not in view immediately. Fix that by setting the FG initial position to something else.

If making a vertical Layer 2 level, horizontal scrolling will be frozen, so you can only use the left side of the level. The only sprite command you can use with Layer 2 is sprite EF, which, unsurprisingly, is called "Layer 2 Scroll Sideways Short/Long". Use H-Scroll: None, V-Scroll: Constant with this command.

There's also Layer 2 Falls (sprite ED). Normally a useless command, it thrives in vertical levels. To make a level based on this sprite, you have to decide in advance what the bottom-most screen of your level will be and put Mario there. Vertical and horizontal scrolling are frozen (and you have to use H-Scroll: None, V-Scroll: None, too), so this limits what kind of sprites you can put in your levels. For example, you can't use either goal point with Layer 2 Falls, as they don't interact with the level (and they make it too easy). If your level has an exit-enabled object, you have to set the exit at the screen Mario is on, not the screen that you put the object on. This, of course, will cause Lunar Magic to spit the "undefined exits" prompt at you, but you can ignore it. Common uses for Layer 2 Falls include "rising lava" levels, trees being cut down (think DK Country 3's Ripsaw Rage), and elevator shafts.

You can't use true vertical auto-scrolling levels in your hack without a custom sprite.

The maximum amount of screens allowed with a regular vertical level is 28, while Layer 2 levels can only have 14 screens.

Limitations of and problems with making vertical levels

The bottom-most three rows of Lunar Magic aren't visible in-game, as opposed to the bottom-most one row in horizontal levels.

Most objects can't cross subscreen and screen boundaries. In horizontal levels, you only have to deal with Dragon Coins and Midway Points crossing boundaries, but in vertical levels, you have to deal with ordinary land! You can circumvent this by splitting the object up in most cases. However, for your slopes, you may need to use extended objects 91-96. Beginning with version 1.8 of Lunar Magic, objects inserted via Direct Map16 Access no longer have this limitation.

A regular goal point can only be used on screens 0 and 1. On any other screen, they disappear. That's why the Sunken Ghost Ship used the green ? ball. Also, when using either, everything simply freezes. The animation sequence from horizontal levels isn't present in vertical ones. This is probably because in the Sunken Ghost Ship, if the animations were there, Mario would hit the water and eventually fall into a hole two screens down, making a Kaizo trap.

Vertical levels don't seem to have any layer priority.

For the longest time, it was very hard to use a background. At some point, garbage would appear, severely limiting what you could do with your level. You typically had to go from top to bottom, using H-Scroll: <anything>, V-Scroll: Slow, and had to play around with the BG initial position a bit. If you wanted to go from bottom to top, you couldn't go any lower than screen 6 without running into issues, and typically had to use V-Scroll: None. Some hackers even tried using object 6 (the walk-through dirt) as a "background", but that could've led to cutoff. However, Lunar Magic 1.7+ now allocates an extra five rows for the background, which means no more background garbage. So you can now use, say, H-Scroll: Variable, V-Scroll: Variable with a vertical level. In spite of this, the vast majority of hacks on SMW Central, even An SMWC Production, still use V-Scroll: None or Slow. This is due to the fact that the vast majority of backgrounds available were made for horizontal levels. Very few backgrounds tessellate in the Y direction, and using anything other than V-Scroll: Slow or None causes cutoff.

If your vertical level begins with a No-Yoshi intro, sometimes the intro's background could glitch up depending on the BG initial position. Of course, this doesn't affect the level in any way.

You can't use Layer 3 tides without applying a patch available on SMW Central. You also can't use Layer 3 Smash, the Ghost House mist, or the Underground 2 fish. The latter two will actually cause a "ghost" version of the status bar to appear somewhere.

Personal tools