Skip to content

Level File Structure

BlurOne! edited this page Oct 2, 2024 · 6 revisions

(*.dat) extension

File made of 99 level blocks, each level block contains 100 bytes. If a level is empty, all values are 0x00; thus all Level files should be the same size. Said size should be of 9900 bytes, however, it seems as if there was an extra unused level slot, making the file 10000 bytes long.

Level block

SS UU XX YY XX YY XX YY XX YY XX YY XX YY XX YY
XX YY XX YY XX YY XX YY XX YY XX YY XX YY XX YY
XX YY XX YY XX YY XX YY XX YY XX YY XX YY XX YY
XX YY XX YY XX YY XX YY XX YY XX YY XX YY XX YY
XX YY XX YY XX YY XX YY XX YY XX YY XX YY XX YY
XX OO TT NN NN NN NN NN NN NN NN NN NN NN NN NN
NN NN SS SS 
  • SS: Separator, always 0x00.

  • UU: Unknown, previously thought to be an SS block because of it frequently being 0x00. More research needed.

    Non 0 values per level:
    • Level 06: 01/0x01/0b00000001
    • Level 10: 01/0x01/0b00000001
    • Level 27: 01/0x01/0b00000001
    • Level 36: 14/0x0E/0b00001110
    • Level 50: 01/0x01/0b00000001
    • Level 60: 17/0x11/0b00010001
    • Level 79: 14/0x0E/0b00001110
    • Level 83: 01/0x01/0b00000001
    • Level 84: 01/0x01/0b00000001
    • Level 85: 01/0x01/0b00000001
    • Level 87: 01/0x01/0b00000001
    • Level 89: 01/0x01/0b00000001
    • Level 91: 17/0x11/0b00010001
    • Level 95: 01/0x01/0b00000001
    • Level 96: 01/0x01/0b00000001
    • Level 97: 01/0x01/0b00000001
  • XX: Block Type

    • 0x00 empty block
    • 0x01 spinner
    • 0x02 horizontal pipe
    • 0x03 vertical pipe
    • 0x04 cross pipe
    • 0x05 horizontal colour stopper (takes args)
    • 0x06 vertical colour stopper (takes args)
    • 0x07 cross colour stopper (takes args)
    • 0x08 horizontal teleporter
    • 0x09 vertical teleporter
    • 0x0A cross teleporter
    • 0x0B horizontal colour changer (takes args)
    • 0x0C vertical colour changer (takes args)
    • 0x0D cross colour changer (takes args)
    • 0x0E right direction arrow
    • 0x0F left direction arrow
    • 0x10 up direction arrow
    • 0x11 down direction arrow
    • 0x12 marble display
    • 0x13 hour-glass
    • 0x14 colour handicap
    • 0x15 traffic lights (takes args)
    • 0x16 dropper
    • 0x17 colour forecast
    • higher defaults to empty block
  • YY: Block Arguments

    • 0x00 none
    • 0x01 pink
    • 0x02 yellow
    • 0x03 blue
    • 0x04 green
    • higher breaks
  • OO: oTime, normally from 1 to 20 (0x01-0x14).

  • TT: Time, normally from 1 to 10 (0x01-0x0A), if none, 0x0A

  • NN: Char for level name, value is number of the letter in the alphabet plus 4 (ex. A would be 5 and D would be 8), and 0xE4 is a blank space, 0x00 is a block. Character set unknown.

Remarks

Note that the last XX block type does not have its corresponding YY argument. In case of needing args, the original game will take OO as the arguments, which can break the game. The remaster will not allow placing augmented blocks in the last slot, and in case of having one when ported from the original game, the argument will be the remainder of its division by 4.

Clone this wiki locally