From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

Notice: Values used to represent data in this doc are:

  • byte: 8 bit unsigned integer
  • ushort: 16 bit unsigned integer
  • uint: 32 bit unsigned integer

WLDTEX.TM2 is an archive containing pieces of raw graphics to be drawn on the PSX VRAM.

Notice: PSX VRAM is treated as a 1024x512, two bytes per pixel raw image.

Each piece of graphics is organized inside a GraphicStructure. A GraphicStructureList is a list of GraphicStructure.

The WLDTEX.TM2 archive structure can be described like this:


sizeof(GraphicStructureList) bytes GraphicStructureList1
sizeof(GraphicStructureList) bytes GraphicStructureList2
. .
. .
. .
sizeof(GraphicStructureList) bytes GraphicStructureListN

Each GraphicStructureList is 2048 (0x800) bytes in size. So, N=sizeInBytes(WLDTEX.TM2)/0x800.


ushort Number of GraphicStructures (for example K) contained in this list
ushort Unknown (always 0, maybe Number of GraphicStructures is an uint)
sizeof(GraphicStructure1) bytes GraphicStructure1
sizeof(GraphicStructure1) bytes GraphicStructure2
. .
. .
. .
sizeof(GraphicStructure1) bytes GraphicStructureK


ushort x-axis on the psx vram (x)
ushort y-axis on the psx vram (y)
ushort width of the current GraphicStructure's piece of raw graphics (w)
ushort height of the current GraphicStructure's piece of raw graphics (h)
w*h*bytesPerPixel bytes current GraphicStructure's piece of raw graphics

Notice: Sometime, the last GraphicStructure of each GraphicStructureList has a piece of raw graphics bigger than w*h*bytesPerPixel bytes (probably to reach the 2048 bytes size). I extracted all graphics ignoring these bytes, it looks like they are not necessary.

Reference [1]