This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
mario_golf:resource_table [2017/04/19 06:35] mib_f8sm9c [Level Data] |
mario_golf:resource_table [2017/06/27 02:11] (current) skeletons ↷ Links adapted because of a move operation |
||
---|---|---|---|
Line 23: | Line 23: | ||
0x28: ? | 0x28: ? | ||
0x30: Surface mapping (whether ground is rough, fair, green, etc) | 0x30: Surface mapping (whether ground is rough, fair, green, etc) | ||
+ | | ||
+ | For more information, see: | ||
+ | * [[mario_golf:level_pointers]] | ||
+ | * [[mario_golf:height_data_info]] | ||
+ | ====== ====== Temporary Notes ====== ====== | ||
+ | |||
+ | |||
+ | Here's some notes about the level data that aren't 100% verified or tested, but should be fairly close to the truth. | ||
+ | |||
+ | ====== Object List ====== | ||
+ | |||
+ | The object list contains information about objects placed in a level. This would include any sort of tree or tree-like object. The format is as follows: | ||
+ | |||
+ | First byte of the object list details the number of entries in the list. Immediately following is a series of 0xC blocks which contain information about the object. Here's a WIP of the contents of each entry: | ||
+ | |||
+ | 0x0: X (ushort or short?) | ||
+ | 0x2: Y | ||
+ | 0x4: Z | ||
+ | 0x6: Type (list of values below) | ||
+ | 0x7: Empty, 0x00 | ||
+ | 0x8: Width factor (ushort) | ||
+ | 0xA: Height factor (half-resolution, 0x2 here matches with 0x1 in width) | ||
+ | | ||
+ | At the end the list is filled with 0xFF to the closest 16-byte address. | ||
+ | |||
+ | [[mario_golf:object_type_list]] | ||
+ | ====== Level Conjecture ====== | ||
+ | |||
+ | It is easily seen by looking at the decompressed surface map that the level is comprised of a 2d array of tiles. Looking at how the level is laid out, I believe that each tile is 0x0010 long when using X/Z coordinates (such as the object list above). The first level is 100 tiles by 200 tiles large, and the X/Z coordinates for the objects in it varied from 0x0000-0x0FFF and 0x0000-0x1FFF. |