Nintendo Badge Arcade/PrizeCollection
Overview
A PrizeCollection SARC file has the following folder structure:
root
└── pc
├── PrizeCollection.xml
├── ci
└── rt
├── At
├── CI
├── Ca
├── Cr
├── FO
└── Pr
Each of the subfolders contains a custom file format storing different properties between those. Each of those files are compressed using Yaz0 compression.
| Subfolder | File type |
|---|---|
| ci | Crane Instance (cib) |
| At | Attachment (atb) |
| CI | Crane Icon (icb) |
| Ca | Category (cab) |
| Cr | Crane (crb) |
| FO | Fixed Object (fob) |
| Pr | Prize (prb) |
PrizeCollection.xml
This file has an index of all of the game data stored here. It has the following data:
<?xml version="1.0" encoding="UTF-8"?>
<CenterPrizeCollectionFile>
<Categories count="x">
<Category name="CategoryName" />
</Categories>
<Cranes count="x">
<Crane name="CraneName" />
</Cranes>
<CraneIcons count="x">
<CraneIcon name="CraneIconName" />
</CraneIcons>
<Prizes count="x">
<Prize name="PrizeName" />
<Attachments count="x">
<Attachment name="AttachmentName" />
</Attachments>
<FixedObjects count="x">
<FixedObject name="FixedObjectName" />
</FixedObjects>
<CraneInstances>
<CraneInstance name="CraneInstanceName" />
</CraneInstances>
</CenterPrizeCollectionFile>
Crane Instance (cib)
A crane instance file stores the data of a set and the components of the machine.
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x4 | Header magic (CIBS) |
| 0x30 | 0x30 | Crane Instance name |
| 0x60 | 0x30 | Crane name |
| 0x90 | 0x30 | Crane Icon name |
| 0x100 | 0x1000 | Language Names |
| 0x1100 + Offset | Offset | Prize name x |
| 0x1880 + Offset | Offset | Fixed Object name x |
Offset = 0x30 * x
Attachment (atb)
An attachment file stores the data of an immovable object and its image.
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x4 | Header magic (ATBS) |
| 0x2C | 0x30 | Attachment name |
| 0x5C | 0x4 | Image width |
| 0x60 | 0x4 | Image height |
| 0x80 | w * h | ETC1A4 image of attachment |
| 0x80 + (w * h) | w * h | A8 data of previous image |
Crane Icon (icb)
A crane icon file stores the icon of a set (crane instance).
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x4 | Header magic (ICBS) |
| 0x1C | 0x30 | Crane icon name |
| 0x100 | 0x2000 | 64x64 RGB565 image |
Category (cab)
A category file stores the data of a group of sets and its category image.
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x4 | Header magic (CABS) |
| 0x24 | 0x4 | Category ID |
| 0x2C | 0x30 | Category name |
| 0x5C | 0x4 | Number of badges |
| 0x60 | 0x4 | Number of sets (crane instances) |
| 0x68 | 0x1000 | Language Names |
| 0x2080 | 0x2000 | 64x64 RGB565 image of category |
Crane (crb)
A crane file stores the background image used on a set (crane instance).
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x4 | Header magic (CRBS) |
| 0x1C | 0x30 | Crane name |
| 0x800 | 0x10000 | ETC1 image? (Unknown resolution) |
Fixed Object (fob)
A fixed object file stores the data of the terrain and its image.
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x4 | Header magic (FOBS) |
| 0x24 | 0x30 | Fixed object name |
| 0x54 | 0x4 | Image width |
| 0x58 | 0x4 | Image height |
| 0x80 | w * h | ETC1A4 image of fixed object |
Prize (prb)
A prize file stores the badge data and its image.
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x4 | Header magic (PRBS) |
| 0x3C | 0x4 | Badge ID |
| 0x44 | 0x30 | Badge name |
| 0x74 | 0x30 | Name of category it belongs |
| 0xA4 | 0x8 | Title ID it opens (0xFFFFFFFF if none) |
| 0xB8 | 0x4 | Tile width |
| 0xBC | 0x4 | Tile height |
| 0xE0 | 0x1000 | Language Names |
If the tile size is 1x1:
| Offset | Size | Description |
|---|---|---|
| 0x1100 | 0x2000 | 64x64 RGB565 image (used in Home Menu) |
| 0x3100 | 0x800 | 64x64 A4 data of previous image |
| 0x3900 | 0x800 | 32x32 RGB565 image (used in badge selector in Home Menu) |
| 0x4100 | 0x200 | 32x32 A4 data of previous image |
| 0x4300 | 0x4000 | 128x128 ETC1A4 image (used ingame) |
| 0x8300 | 0x4000 | 128x128 A8 data of previous image |
If the tile size is anything other than 1x1:
| Offset | Size | Description |
|---|---|---|
| 0x1100 | 0x2000 | 64x64 RGB565 image of full tile |
| 0x3100 | 0x800 | 64x64 A4 data of previous image |
| 0x3900 | 0x800 | 32x32 RGB565 image of full tile |
| 0x4100 | 0x200 | 32x32 A4 data of previous image |
| ... | 0x2000 | 64x64 RGB565 image of tile x |
| ... | 0x800 | 64x64 A4 data of previous image |
| ... | 0x800 | 32x32 RGB565 image of tile x |
| ... | 0x200 | 32x32 A4 data of previous image |
| ... | 0x4000 | 128x128 ETC1A4 image (used ingame) |
| ... | 0x4000 | 128x128 A8 data of previous image |
Language Names
Some files, like the badge and the category, store its name displayed on different languages. Here is the language list:
| Offset | Size | Language |
|---|---|---|
| 0x0 | 0x100 | Japanese |
| 0x100 | 0x100 | English |
| 0x200 | 0x100 | French |
| 0x300 | 0x100 | German |
| 0x400 | 0x100 | Italian |
| 0x500 | 0x100 | Spanish |
| 0x600 | 0x100 | Unknown |
| 0x700 | 0x100 | Unknown |
| 0x800 | 0x100 | Netherlands |
| 0x900 | 0x100 | Portuguese |
| 0xA00 | 0x100 | Russian |
| 0xB00 | 0x100 | Unknown |
| 0xC00 | 0x100 | Unknown |
| 0xD00 | 0x100 | Unknown |
| 0xE00 | 0x100 | Unknown |
| 0xF00 | 0x100 | Unknown |