Skip to content
This repository has been archived by the owner on Sep 28, 2024. It is now read-only.

Floating Platforms

Matt Greer edited this page Feb 5, 2022 · 16 revisions

Floating platforms hale from SMB1 and come in various flavors. They are all sprites.

Fall Away Platform

0 20 x y - a two tile wide platform that quickly falls whenever Mario is standing on it

Up/Down Platform

1 1 x y <speed> <range> - a three or four tile wide platform that continually goes up and down.

<speed> is a byte value determining how fast it goes. Nintendo tended to use 10, but you can choose a wide range of speeds from stationary (0) to very fast (79) for three wide and 80 to ff for four wide. High speeds impact range, see below. Also see "speed and width" below.

<range> - how far it travels vertically. Nintendo tends to use 74 which is about the vertical screen height. This value seems to be in pixels. The minimum value seems to be 8, and the maximum looks to be ff.

There is some leeway allowing the platform to go beyond the bounds of the level and return. But if it goes too far, it seems to despawn and not come back.

high speeds impacting range

If the platform is traveling slow, say 10, and has a range of 70, it will slowly go up and down 7 tiles worth. But if you make it travel fast, it will travel much farther. It's very easy to get it to travel so far it despawns. For example, if you set speed to 60, then with a range of 50 it will travel too far and despawn. With a speed of 60, it's not possible to confine the platform to the screen, even with a range of 1 it will travel beyond screen boundaries in both directions.

Speed at zero

If speed is set to zero, it makes it a static platform that does not move at all.

range at zero

the minimum range seems to be 8, so if you set it to zero it will still travel 8 pixels at slow speeds. At high speeds, it travels much further.

speed and width

The speed byte is divided equally into two ranges. The first range causes the platform to be 3 tiles wide, and the second makes it 4 tiles wide.

  • 0 - 79: three tiles wide with a speed equal to the byte's value
  • 80 - ff: four tiles wide with a speed equal to the byte's value minus 80

Left/Right Platform

Follows the same approach as Up/Down platform

1 2 x y <speed/width> <range>

alternate left/right up/down platform

1 1e x y <speed/direction> <range> is an alternate platform used in Classic 1-4 (star04). It is two tiles wide, and the first param byte determines both its speed and whether it goes up/down or left right. Seems speeds < 80 go updown, and speeds above 80 go left/right.

Wrap Around Platform

This is the floating platforms as found in SMB 1-2.

0 1d x y <config> <count>

Unlike Up/Down Platform these appear to always travel at the same speed.

They start at whatever the y value is, and proceed until they have exited the bottom of the level. So you can get them as tall as you want by placing them at a tall y

count

count will cause count + 1 platforms to get spawned. the higher the count, the more densely packed in they become. However, there is a limit of 14 total platforms. So if you pack them too densely, they will bunch into a single group with a large gap until they wrap around again. If count goes above f it seems to wrap back to 1. Basically only the bottom nibble is considered.

config

It seems to be divided into two nibbles, where even vs odd toggles a setting

top nibble - width

  • even values - 2 tiles wide
  • odd values - 3 tiles wide

bottom nibble - direction

  • even values - up from bottom
  • odd values - down from top

Pullied Platform

There is a pullied platform in Caped Escape (mushroom 24)

It is two sprites of the form 0 df x y <height>. Where height is how far down that half of the pully has been pulled.

It is in all graphic sets, but interestingly the rope graphics are in rotation set 1.

length of the rope

The length of the rope is very flexible, how far apart the sprites are on the x axis plus the height values altogether influence the rope length.

short/close pullies long/far pullies