DKRDS Sprite Group (File Format): Difference between revisions

From Wexos's Wiki
Jump to navigationJump to search
mNo edit summary
Line 55: Line 55:
! Offset !! Type !! Description
! Offset !! Type !! Description
|-
|-
| 0x00  || Int16 || '''Tile X position'''.
| 0x00  || Int16[2] || '''Cumulative tile XY position'''. The coordinates are based on the top-left corner, being the origin the previous tile's top-left pixel.
|-
| 0x02 || Int16 || '''Tile Y position'''.
|-
|-
| 0x04 || Byte || '''Number of 8x8 texture blocks''' for this tile.
| 0x04 || Byte || '''Number of 8x8 texture blocks''' for this tile.

Revision as of 23:34, 16 May 2026

DKRDS Sprite Group is the nameless file format used in Diddy Kong Racing DS that stores a formation of tiles and positions to create sprites. Its type identifier in assets.bin is 0x00.

Header

The file starts with a header that is 12 bytes long.

Offset Type Description
0x00 UInt16 Unknown. Always 0?
0x02 UInt16 Unknown. Number of sets? Always 1?
0x04 Int32 Maximum number of blocks in this group to be rendered on the screen.
0x08 Int32 Tile Generator offset. Always 0xC?
0x0C End of header, start of Tile Generator

Tile Generator

All offsets from here on are always relative to the start of this section.

Offset Type Description
0x00 UInt16 Number of Tile Sets (S).
0x02 UInt16 Total number of tile texture blocks.
0x04 Tile Set[S] Tile set entries, 8 bytes long each.

Tile Set

Each tile set links tile information blocks with tile texture data.

Offset Type Description
0x00 UInt16 Tile Texture Data offset.
0x02 UInt16 Tile Information Block offset.
0x04 UInt16 Number of tiles (T).
0x06 UInt16 Total texture data length in bytes, of all tiles in this set.

Tiles

After all tile set entries are defined, each pair of arrays, that is T tile information blocks, and then its corresponding T tile texture data chunks; are stored sequentially.

Tile Information Block

Each information block is 8 bytes long and stores position and tile format data.

Offset Type Description
0x00 Int16[2] Cumulative tile XY position. The coordinates are based on the top-left corner, being the origin the previous tile's top-left pixel.
0x04 Byte Number of 8x8 texture blocks for this tile.
0x05 Byte Texture dimensions. Only the 4 least significant bits are taken into account:
  • 0 = 8x8
  • 1 = 16x16
  • 2 = 32x32
  • 3 = 64x64
  • 4 = 16x8
  • 5 = 32x8
  • 6 = 32x16
  • 7 = 64x32
  • 8 = 8x16
  • 9 = 8x32
  • 10 = 16x32
  • 11 = 32x64
0x06 UInt16 Unknown. Padding?

Tile Texture Data

Texture data is stored as swizzled 8x8 blocks in 16-color palette format (4 bits per pixel). Palette data is stored in separate files.

Tools

The following tools can handle DKRDS Sprite Group:

  • (none)