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

Transports

Matt Greer edited this page Jun 1, 2021 · 10 revisions

Transports

The transport data in the level file tells the game how to move mario after going down a pipe, through a door, etc

data format

header -- first two bytes, number of transports in the room. transports are not 0xff terminated. crazy that it's two bytes, will one room ever have more than 255 transports?? so it's possible the second byte actually means something else

from there, each transport is ten bytes

byte meaning
0 source Y (note this is backwards from all other info out there, but verified this is correct!)
1 source X
2 dest room number
3 an unknown byte
4 dest Y (similarly backwards as source y/x)
5 dest X
6 center screen Y (also backwards)
7 center screen X
8 an unknown byte
9 exit type

In general, Y comes before X, all previous docs had this the other way around.

locked doors

locks on doors are done with the sprite 0 y x ce. Just place them on top of a door. The player must unlock the lock with a key before the door can be used.

exit types

byte 1 - pipe or door

It seems zero means door exit, 1 means pipe exit

byte 2 - pipe exit type

value exit
0 fall down
1 up from pipe
2 fall down
3 horizontal exit pipe traveling right
4 horizontal exit pipe traveling left