How Eggvine renders levels using the DAT-files:
The first ten Bytes of a level are its header (no idea, how exactly the header is rendered; there are 10 Bytes for it, but there are 17 options...)
After those 10 Bytes the object-data begins. For this, the game uses pointers. There are 3 different object-types:
5-Byte-Objects
4-Byte-Objects
4-Byte-Special-Objects
The objects are rendered piece by piece. If the first Byte after the header is 00, Eggvine knows, that the object is a 4-Byte-Special-Object. If it has any other number, it looks up in the DAT-files, if the object is 4 or 5 Bytes. If it's 4 Bytes, Eggvine will use the first 4 Bytes, if it's 5 Bytes, it'll use the first five ones. So if the objects are placed wrong in the DAT-files, and an object, which is actually 4 Bytes is said to be 5 Bytes, the entire level will screw up (see levels 23, 40, 51, 5A, 6, 6A of YI original with the normal DAT-files, you got, when you downloaded EV). With a perfect DAT-list, any object can be rendered well.
Then the Sprite-Data will begin, also determined by a pointer. The advantage is: any Sprites are 3 Bytes, so there CAN'T be rendering problems with them.
EDIT: I've found out a thing about the header:
Ten bytes are 80 bits. And if you add the bits a level-header uses together, you get 80 bits, too. That means, that one option doesn't use one byte, but some options share bytes with other options.
I've found out another thing:
The Sewer-Tileset consists of two different palettes. Pipe Sewers use the Layer One Object Palette, but the Stone Sewers use the Layer Two Object Palette. Layer Two Object Palette 25 is the default Palette for the Stone Sewers. If you type in 2 for the Layer Two Object Palette this will be the result:
NEW! SMW2 Yoshi's Island is done!
Last update: 2012-12-31
The first ten Bytes of a level are its header (no idea, how exactly the header is rendered; there are 10 Bytes for it, but there are 17 options...)
After those 10 Bytes the object-data begins. For this, the game uses pointers. There are 3 different object-types:
5-Byte-Objects
4-Byte-Objects
4-Byte-Special-Objects
The objects are rendered piece by piece. If the first Byte after the header is 00, Eggvine knows, that the object is a 4-Byte-Special-Object. If it has any other number, it looks up in the DAT-files, if the object is 4 or 5 Bytes. If it's 4 Bytes, Eggvine will use the first 4 Bytes, if it's 5 Bytes, it'll use the first five ones. So if the objects are placed wrong in the DAT-files, and an object, which is actually 4 Bytes is said to be 5 Bytes, the entire level will screw up (see levels 23, 40, 51, 5A, 6, 6A of YI original with the normal DAT-files, you got, when you downloaded EV). With a perfect DAT-list, any object can be rendered well.
Then the Sprite-Data will begin, also determined by a pointer. The advantage is: any Sprites are 3 Bytes, so there CAN'T be rendering problems with them.
EDIT: I've found out a thing about the header:
Ten bytes are 80 bits. And if you add the bits a level-header uses together, you get 80 bits, too. That means, that one option doesn't use one byte, but some options share bytes with other options.
I've found out another thing:
The Sewer-Tileset consists of two different palettes. Pipe Sewers use the Layer One Object Palette, but the Stone Sewers use the Layer Two Object Palette. Layer Two Object Palette 25 is the default Palette for the Stone Sewers. If you type in 2 for the Layer Two Object Palette this will be the result:
NEW! SMW2 Yoshi's Island is done!
Last update: 2012-12-31