Skip to content

Level File Structure

BlurOne! edited this page Jun 25, 2024 · 6 revisions

(*.dat) extension

File made of 99 level blocks, each level block contains 116 bytes, making the file 11484 bytes long. If a level is empty, all values are 0x00; thus all Level files should be the same size.

Level block

SS SS 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.
  • XX: Block Type
    • 0x00 empty block
    • 0x01 spinner
    • 0x02 horizontal pipe
    • 0x03 vertical pipe
    • 0x04 cross pipe
    • 0x05 horizontal filter (takes args)
    • 0x06 vertical filter (takes args)
    • 0x07 cross filter (takes args)
    • 0x08 horizontal tp
    • 0x09 vertical tp
    • 0x0A cross tp
    • 0x0B horizontal changer (takes args)
    • 0x0C vertical changer (takes args)
    • 0x0D cross changer (takes args)
    • 0x0E right bumper
    • 0x0F left bumper
    • 0x10 up bumper
    • 0x11 down bumper
    • 0x12 moves
    • 0x13 sandclock
    • 0x14 color job
    • 0x15 traffic light (takes args)
    • 0x16 dropper
    • 0x17 next ball
    • 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