Item icons
The game's 656 item icons live in a single file:
data/item/itemicon.ofs. Each icon is a 32x32 pixel sprite.
The runtime mapping from item ID to icon index was found in the ARM9
binary at function FUN_02052c54. The formula is
entry[+2] & 0x7ff, which extracts the icon index from
the item database entry. The global palette for item icons comes from
global.lzs.
Crafting product names (ucc_names)
Crafted products have their display names stored in a separate database
table called ucc_names. This table maps a slot number to an
English product name. It is separate from the main dialog entries table --
the crafting UI reads product names from ucc_names rather
than from message files.
Key slots identified:
| Slot | JP source | English name |
|---|---|---|
| 50 | γγγγγγΌγ± | Lure Bouquet |
| 51 | γγγγγγ£γΌ | Sereni-Tea |
The ucc_names table feeds the crafting product display in
shops, inventory, and the Part-Time Cat crafting dialog.
Quality description table (msg99047)
message/msg99/04/msg99047.ofs is a crafting-quality
description lookup table, not regular dialog. Each entry contains exactly
12 NUL-separated segments (one per quality tier). The game's renderer
reads each segment into a fixed-size buffer when displaying a crafted
item's quality description.
The Japanese source text never exceeds 12 characters per segment across all 468 segments (24 entries, each with roughly 12--20 segments). This establishes an empirical 12-character-per-segment cap for this surface.
Entry layout
| Entries | Content |
|---|---|
| 0--2, 15--16, 27 | Placeholder ellipsis segments (twelve repetitions of a filled-ellipsis glyph, NUL-separated) |
| 3--6 | Quality adjectives (Normal, Pretty, Dazzling, Mysterious) |
| 7--14 | Descriptors (shine, vibes, style, etc.) -- 12 segments each, covering quality tiers from lowest to highest |
| 17 | Tone / timbre descriptors (musical quality -- JP γγγ) |
| 18 | Rhythm descriptors |
| 22--25 | Product names (must also fit within 12 characters) |
This is the surface that crashed the game when English segments exceeded the buffer size. Entries like "a sparkly-bright shine" (21 characters) or "Tummy-rumbling rhythm" (21 characters) overflowed the 12-character buffer on real hardware.
Recipe data files
Three files under data/recipe/ hold the crafting recipe
database:
| File | Role |
|---|---|
recipedata.lzs | RESC v3.11 container. Holds the recipe ingredient lists, success conditions, and output product mappings. The RESC format uses 48-byte TOC entries with reversed-ASCII names and string deduplication. |
recipemsg.lzs | Recipe narration strings. 87 unique narration strings, heavily reused via pointer deduplication. These are the step-by-step text shown during the crafting minigame. |
mgcinfo.lzs | Magic info lookup. Binary item_id lookup table for magic-related crafting. |
Category labels (msg99138)
message/msg99/13/msg99138.ofs contains category labels for
the crafting product browser. Entries like "Sereni-Tea, etc." and "Chic
Clothes, etc." appear here as short labels for product categories.
The Part-Time Cat
The Part-Time Cat is the NPC that handles all crafting interactions. Its
dialog lives in message/msg32/10/msg32108.ofs. When the
player brings materials, the cat announces what it will make (for example,
"With these ingredients, I'll make a yummy Sereni-Tea, nya!"). These lines
reference crafted product names and must stay consistent with the
ucc_names table.
Classroom lessons
Crafting recipes are taught in classroom lessons stored in
message/msg52/06/msg52063.ofs (bouquet recipes) and
message/msg52/06/msg52064.ofs (tea and aroma recipes). Each
lesson entry contains multi-page instructions explaining how to craft a
specific product. Product names in these lessons must match the canonical
names in ucc_names and msg99047.
UCC asset files
The data/ucc/ directory (27+ files plus subdirectories) holds
the 2D sprites and UI resources for the crafting interface:
| Path | Contents |
|---|---|
ucc/act/ | Per-action crafting animation sprites (SZL-packed in .ofs containers) |
ucc/brush/ | Paint brush tool UI |
ucc/dishup/ | Cooking / dish-up interface |
ucc/uccact_txt.ofs | Crafting action text sprites (17 SZL entries) |
ucc/uccact_gra.ofs | Crafting action graphic sprites (16 SZL entries) |
uccchtype.uctp | Crafting type table (purpose partially decoded) |
Item name consistency
A single crafted item can appear in five or more different places across
the game's data: the ucc_names table, msg99047
quality descriptions, msg99138 category labels, Part-Time Cat
dialog (msg32108), classroom lessons
(msg52063/msg52064), and sometimes the magic
glyph keyboard. All of these must use the same canonical English name.
Drift between surfaces causes player confusion -- for example,
"Invitation Bouquet" in one place versus "Lure Bouquet" in another for
the same JP item γγγγγγΌγ±.
Source
data/item/itemicon.ofs-- 656 item icons, 32x32 eachdata/recipe/-- recipe database (recipedata, recipemsg, mgcinfo)data/ucc/-- crafting UI sprites and assetsmessage/msg99/04/msg99047.ofs-- quality description lookup tablemessage/msg99/13/msg99138.ofs-- category labelsmessage/msg32/10/msg32108.ofs-- Part-Time Cat dialogmessage/msg52/06/msg52063.ofs,msg52064.ofs-- classroom crafting lessons- ARM9 function
FUN_02052c54-- item icon index extraction