-
Notifications
You must be signed in to change notification settings - Fork 8
Floating Platforms
Floating platforms hale from SMB1 and come in various flavors. They are all sprites.
0 20 x y
- a two tile wide platform that quickly falls whenever Mario is standing on it
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.
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.
If speed is set to zero, it makes it a static platform that does not move at all.
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.
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 minus80
Follows the same approach as Up/Down platform
1 2 x y <speed/width> <range>
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.
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
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.
It seems to be divided into two nibbles, where even vs odd toggles a setting
- even values - 2 tiles wide
- odd values - 3 tiles wide
- even values - up from bottom
- odd values - down from top
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.
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.