This shows you the differences between two versions of the page.
| — |
extreme_g:texture_banks [2020/06/14 20:39] (current) shygoo created |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Extreme-G Texture Bank Formats ===== | ||
| + | |||
| + | Extreme-G's level GFX commands use textures from three bank types. | ||
| + | |||
| + | ---- | ||
| + | ===== "Level" texture banks ===== | ||
| + | |||
| + | This bank type contains CI8/CI4 textures that are unique to each level. | ||
| + | Each bank of this type consists of two files referred to by the [[extreme_g:rom_map#level_header_structure|level header structures]]. | ||
| + | The first file contains a table of texture meta data structures and the second file simply contains the texture data. | ||
| + | |||
| + | ==== Texture meta data structure ==== | ||
| + | |||
| + | ^Offset^Description^ | ||
| + | |00|8-bit texture width| | ||
| + | |01|8-bit texture height| | ||
| + | |02|8-bit format ID (01 = CI8, 02 = CI4)| | ||
| + | |03|Padding byte| | ||
| + | |04|32-bit offset of a texture's color index data| | ||
| + | |08|32-bit offset of a texture's palette data| | ||
| + | |||
| + | Used by [[extreme_g:gfx_collision_commands#level_texture|GFX command 02: "level_texture"]]. | ||
| + | |||
| + | ---- | ||
| + | ===== "Global" texture bank ===== | ||
| + | |||
| + | This bank type contains CI8 textures that are shared between all levels. The global texture bank is stored LZHUF-compressed at 000C3400 in ROM. | ||
| + | |||
| + | ==== High level structure ==== | ||
| + | ^Offset^Description^ | ||
| + | |00|32-bit offset pointing to a single palette at the end of the bank| | ||
| + | |04|4 padding bytes| | ||
| + | |08|Texture meta data structure table| | ||
| + | |...|Texture color index data| | ||
| + | |...|0x200 byte texture palette| | ||
| + | |||
| + | ==== Texture meta data structure === | ||
| + | ^Offset^Description^ | ||
| + | |00|32-bit offset of a texture's color index data| | ||
| + | |04|16-bit texture width| | ||
| + | |06|16-bit texture height| | ||
| + | |||
| + | Used by [[extreme_g:gfx_collision_commands#global_texture|GFX command 0C: "global_texture"]]. | ||
| + | |||
| + | ---- | ||
| + | ===== "Common" texture banks ===== | ||
| + | |||
| + | This bank type contains CI8 textures that are shared between some levels. | ||
| + | The structure of this bank type is the same as the "Global" texture bank's structure described above. | ||
| + | |||
| + | The ROM addresses of these banks are defined in [[extreme_g:rom_map#LZHUF table 00001450|LZHUF Table 00001450]]. | ||
| + | |||
| + | Used by [[extreme_g:gfx_collision_commands#common_texture|GFX command 0D: "common_texture"]]. | ||
| + | |||