Shop.bin doc
The file shop.bin is composed of 20 shops, each shop having 16 items. Each item as 2 values: The item itself, and the rarity. When “rare” is checked, the item will be shown in shop only if the player as the ability “Familiar” of tonberry. The shop list is sorted, meaning that there is no offset, and the Xeme shop is hardlink to a specific shop.
How the field opens a shop (shop ID remap)
A field script opens a shop with the MENUSHOP opcode (handler 0x521D60), which pops one byte — the shop ID — off the script stack and requests hosted menu 23 (Shop). The shop program (Menu_Prog11_ShopMenu_Init, 0x4EDA40) does not use that ID directly: it passes it through a remap table, SHOP_ID_REMAP_TABLE (0xB88918, 52 bytes), before selecting the shop:
| Field shop ID | Remapped value | Result |
|---|---|---|
| 0 – 20 | 0 – 20 (identity) | Item shop — shop.bin record N |
| 21 – 31 | 0 | Falls back to item shop 0 (effectively invalid) |
| 32 – 42 | 21 | Junk Shop (weapon remodel) |
| 43 – 51 | 0 | Falls back to item shop 0 |
The value 21 is a reserved sentinel, not a real item shop: when SHOP_ID_REMAP_TABLE[id] == 21 the program branches to the Junk Shop (Menu_Prog12_JunkShop_Init, weapon-upgrade menu built from mwepon.bin), never touching shop.bin. This is why shop ID 32 appears to have “no shop” — it is not an item shop at all, it is the first of the 11 junk-shop IDs (32–42). All eleven behave identically: the junk-shop code ignores which ID was used, so 32–42 all open the same weapon-remodel menu.
Consequently shop.bin only needs records 0–20 (the 21 item shops); IDs in 21–31 and 43+ are unused and fall back to shop 0.
Reference
Items description
| Data size | Description |
|---|---|
| 1 byte | Item ID |
| 1 byte | Rarity 0x00 - Rare 0xFF - Common |
Shop description
| Data size | Description |
|---|---|
| 2 bytes | Items Description n°1 |
| 2 bytes | Items Description n°2 |
| 2 bytes | Items Description n°3 |
| 2 bytes | Items Description n°4 |
| 2 bytes | Items Description n°5 |
| 2 bytes | Items Description n°6 |
| 2 bytes | Items Description n°7 |
| 2 bytes | Items Description n°8 |
| 2 bytes | Items Description n°9 |
| 2 bytes | Items Description n°10 |
| 2 bytes | Items Description n°11 |
| 2 bytes | Items Description n°12 |
| 2 bytes | Items Description n°13 |
| 2 bytes | Items Description n°14 |
| 2 bytes | Items Description n°15 |
| 2 bytes | Items Description n°16 |
Shop.bin description
| Data size | Description |
|---|---|
| 32 bytes | Shop Description n°1 |
| 32 bytes | Shop Description n°2 |
| 32 bytes | Shop Description n°3 |
| 32 bytes | Shop Description n°4 |
| 32 bytes | Shop Description n°5 |
| 32 bytes | Shop Description n°6 |
| 32 bytes | Shop Description n°7 |
| 32 bytes | Shop Description n°8 |
| 32 bytes | Shop Description n°9 |
| 32 bytes | Shop Description n°10 |
| 32 bytes | Shop Description n°11 |
| 32 bytes | Shop Description n°12 |
| 32 bytes | Shop Description n°13 |
| 32 bytes | Shop Description n°14 |
| 32 bytes | Shop Description n°15 |
| 32 bytes | Shop Description n°16 |
| 32 bytes | Shop Description n°17 |
| 32 bytes | Shop Description n°18 |
| 32 bytes | Shop Description n°19 |
| 32 bytes | Shop Description n°20 |
Items
Shop name
| Shop ID | Name |
|---|---|
| 0x00 | Timber Pet Shop |
| 0x01 | Balamb Shop |
| 0x02 | Dollet Shop |
| 0x03 | Timber Shop |
| 0x04 | Deling City Shop |
| 0x05 | Winhill Shop |
| 0x06 | FH Shop |
| 0x07 | Trabia Shop - UNUSED! |
| 0x08 | Esthar Shop (Cloud’s Shop) |
| 0x09 | Balamb Shop (Laguna’s World) - UNUSED! |
| 0x0A | Dollet Shop (Laguna’s World) - UNUSED! |
| 0x0B | Timber Shop (Laguna’s World) - UNUSED! |
| 0x0C | Deling City Shop (Laguna’s World) - UNUSED! |
| 0x0D | Winhill Shop (Laguna’s World) |
| 0x0E | FH Shop (Laguna’s World) - UNUSED! |
| 0x0F | Trabia Shop (Laguna’s World) - UNUSED! |
| 0x10 | Man from Garden |
| 0x11 | Esthar Pet Shop (Cheryl’s store) |
| 0x12 | Esthar Book Store (Karen’s shop) |
| 0x13 | Esthar Shop!!! (Johnny’s shop) |