Blaze Union:ROM map
This game uses CRIWARE.
The archive file is Data.cpk. The full path is PSP_GAME\USRDIR\Data\Data.cpk. Data.cpk is packed in MODE=ID and there are 3339 files within the archive. Hereafter, sub-files will be referred to by 4-digit numbers (ex: 0003). Data.cpk is the only archive file within the ROM.
PTX Image File Format
IDSTRING = "PTX@" (hex: 50 54 58 40)
0x4: BYTE. 2 ** BYTE = WIDTH of the texture needed to contain the image
0x5: BYTE. 2 ** BYTE = HEIGHT of the texture needed to contain the image
0x6: HALFWORD. Image width aligned to 0x10. I think this is how long the pixel rows are.
0x8: HALFWORD. Image width.
0xA: HALFWORD. Image height.
0xC: BYTE. 0x4 if 4 bits per pixel. 0x5 if 8 bits per pixel. Other values unknown. Not sure.
0xD...0xE: Unknown. Always hex: 01 03. Not sure.
0xF: BYTE. Number of colors divided by 8. Not sure.
0x10: WORD. Number of colors.
0x18: WORD. Offset (absolute) to start of color table
0x1C: WORD. Offset (absolute) to start of bitmap
0x20: Color table.
Colors are in ABGR format, I think.
4 bits per pixel images use a 32x8 tile size. The pixels are stored in little-endian format meaning the first pixel (i.e., further to the left in the image) is stored in the least significant part of each byte.
8 bits per pixel images use a 16x8 tile size
Simple archive file. Example = 0003
IDSTRING = "FCT " (hex: 46 43 54 00)
0x4: WORD. Number of files.
0x8: WORD. Start of TOC.
0x10: Start of TOC. TOC entries have WORD, WORD for offset and file size in that order.
File offsets are aligned to 0x10.
There is archive inside archive at least some of the time.
Text is in SHIFT-JIS.
ASCII, though not used by the developer, gets converted into fullwidth and rendered that way.
Not sure of the pointers just yet.
The values at the top seem to be pointers.
Below this header are values like 02 00 HALFWORD which seem to be voice IDs. After this is the string terminated by a null.
Some of the strings don't have 02 00 HALFWORD on the front of them which signifies they are unvoiced.
In the code section below the strings, there are pointers (WORD) that point to the 02 00 if present or the start of the text if not present. Pointers go like 07 00 PTR. I didn't see another pattern. There might be other points present.
In the code section EB 0B seems to be the opcode for displaying dialog boxes. 00 01 or possibly just 01 introduces the name part of the opcode. 07 00 introduces the "pointer to text" part of this opcode.
File / Data IDs
0003 offset 0x45C50 is the font image.
0003 sub file 16 contains game over and tutorial text.
0004 offset 0x480D0 is the title screen image.
2149 is the first script file.
|Internal Data for Blaze Union|