Skip to content

PAKFormat

eadmaster edited this page Nov 17, 2025 · 10 revisions

PAK File Format

Introduction

These files contain textures, sprite, and scene information. All data is stored in big endian byte bordering unless otherwise noted.

The latest PAK file is loaded in RAM at address 0x272000.

Header

Offset Size Notes
0x00000000 4 bytes ID ascii string for file. Is either "unkn" or "OVER"
0x00000004 4 bytes File Size
0x00000008 4 bytes Offset to texture information structure
0x0000000C 4 bytes Offset to sprite information structure
0x00000010 4 bytes Offset to sprite group information structure
0x00000014 4 bytes Offset to unknown structure
0x00000018 4 bytes Offset to unknown structure
0x0000001C 4 bytes Unknown data
0x00000020 2 bytes Number of textures
0x00000022 2 bytes Number of sprite groups
0x00000024 2 bytes Unknown data. Number of entries for data pointed to by offset 0x14?
0x00000026 2 bytes Number of entries for data pointed to by offset 0x18
0x00000028 2 bytes Number of entries for data pointed to by offset 0x2C
0x0000002A 2 bytes Number of entries for data pointed to by offset 0x30? + 2?
0x0000002C 4 bytes Offset to unknown data. Structure of 4 bytes per entry
0x00000030 4 bytes Offset to unknown data. Appears to be structure of 4? bytes per entry
0x00000030 4 bytes
0x00000034 12 bytes Always 0xFFFFFFFF000000000001000F

Texture information structure

8-byte records containing the texture dimensions, used to compute the offsets for the CHR files.

Relative Offset Size Notes
0x00000000 4 bytes Address. Overwritten with the actual CHR offset when loaded in RAM. Due to DMA transfers this address is padded to a multiple of 0x20 = 32 bytes.
0x00000004 1 byte Texture width (must be a multiple of 8)
0x00000005 1 byte Texture height
0x00000006 2 bytes Texture Index (can be used to swap textures in the same file)

Sprite information structure

12-byte records containing the relative texture rendering coords.

Relative Offset Size Notes
0x00000000 2 bytes Index. Reference to a single Texture information struct in the previous section (0-indexed)
0x00000002 8 bytes Relative coordinates. Serialized like this XXYYXXYYXXYYXXYY, from the top-left corner in clockwise order. Some values can be negative depending on the following flags.
0x0000000A 2 bytes Origin-crossing flags?

See also

Clone this wiki locally