Table base + record layout

(DAT_80xxxxxx / PTR_DAT_80xxxxxx are Ghidra names - labels the disassembler assigns to fixed RAM addresses. The table is static data, so those addresses map one-to-one back to bytes in the SCUS_942.54 file on the disc. "Stride" is the size of one record.)

FieldValue
Record baseDAT_80074368
Name-pointer viewPTR_DAT_8007436C (= record base +4); the MES dispatch reads PTR_DAT_8007436C[id*3] (three u32 words per record)
Stride0xC bytes
Id range0x00..=0xFF (256 ids; id 0 = "no item")
OffsetTypeField
+0u8kind (1 = equipment, 2 = item / consumable / key)
+1u8per-kind index byte - equipment (kind 1): index into the stat-bonus table; items (kind 2): effect subtype into the item-effect table, which also carries the accessory-passive index
+2u16shop price in gold - what the buy/sell UI charges; 0 = quest / found-only item the shop never prices
+4u32name_ptr - pointer to the NUL-terminated display name
+8u32secondary pointer (a shared "type" / description string for some classes)

The shop price at +2 is verified live (War God Band = 21000, Healing Leaf = 100, Ra-Seru / quest items = 0). The table's extent is found by reading until the name_ptr words leave the PSX-EXE data segment.

Name strings

The display strings carry the same control prefixes as every other in-game string (MES, the game's text markup): a leading 0x01 icon escape and 0xCE XX colour-control bytes. The parser strips control bytes (keeping printable ASCII) and trims whitespace. A handful of ids (0x00, 0x12, 0x1A, 0x52, 0xB9, 0xFD) have empty names - reserved / gap slots.

Provenance + parser

PTR_DAT_8007436C and the *3-word index form are read straight from the MES 0xC2/0xC4 substitution dispatch. legaia_asset::item_names::ItemNameTable resolves the table from a SCUS_942.54 image at runtime (PSX-EXE t_addr → file-offset map); the disc-gated item_names_real test pins a span of ids against the real executable. Consumers: the web viewer's enemy table joins drop ids to names through it; the shop randomizer reads price_slot (legaia_asset::item_names / legaia_patcher::item_price) to drop quest items from the for-sale pool and price chest-found equipment.

See also