Nintendo Badge Arcade/PrizeCollection: Difference between revisions
DaniElectra (talk | contribs) m →Crane Instance (cib): Expand information |
DaniElectra (talk | contribs) m Minor improvements |
||
(11 intermediate revisions by the same user not shown) | |||
Line 141: | Line 141: | ||
|- | |- | ||
| 0xC0 | | 0xC0 | ||
| | | 0x4 | ||
| Unknown | | [[#Crane availability|Crane availability]] | ||
|- | |||
| 0xC4 | |||
| 0x4 | |||
| Unknown (usually 0x3?) | |||
|- | |- | ||
| 0xC8 | | 0xC8 | ||
Line 154: | Line 158: | ||
| 0xD8 | | 0xD8 | ||
| 0x8 | | 0x8 | ||
| Unknown | | Unknown (usually zero?) | ||
|- | |- | ||
| 0xE0 | | 0xE0 | ||
Line 186: | Line 190: | ||
| 0xFC | | 0xFC | ||
| 0x4 | | 0x4 | ||
| Number of | | Number of attachment badges | ||
|- | |- | ||
| 0x100 | | 0x100 | ||
Line 199: | Line 203: | ||
| 0x2440 | | 0x2440 | ||
| [[#Crane Instance Properties|Crane instance properties]] | | [[#Crane Instance Properties|Crane instance properties]] | ||
|} | |||
=== Crane availability === | |||
This section defines where a machine is available to be used. | |||
{| class="wikitable" | |||
|- | |||
! Value | |||
! Crane availability | |||
|- | |||
| 0x0 | |||
| Available on crane game | |||
|- | |||
| 0x1 | |||
| Unknown | |||
|- | |||
| 0x2 | |||
| Available on tutorial crane | |||
|} | |} | ||
Line 326: | Line 348: | ||
| 0x3E00 | | 0x3E00 | ||
| 0x20 | | 0x20 | ||
| | | Attachment badge property | ||
|- | |- | ||
| | | | ||
| 0x20 | | 0x20 | ||
| Optional | | Optional attachment badge properties | ||
|} | |} | ||
Line 338: | Line 360: | ||
In case of prizes, this allows the player to get a prize more than once or repeat it inside the collection. | In case of prizes, this allows the player to get a prize more than once or repeat it inside the collection. | ||
Unless stated otherwise, all of the properties are saved as float32 values. | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 348: | Line 370: | ||
| 0x0 | | 0x0 | ||
| 0x4 | | 0x4 | ||
| Component index | | Component index (u32) | ||
|- | |- | ||
| 0x4 | | 0x4 | ||
Line 371: | Line 393: | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| | | 0x4 | ||
| Unknown property (usually around 0.2?) | |||
|- | |||
| 0x1C | |||
| 0x4 | |||
| Unknown property | |||
|- | |||
| 0x20 | |||
| 0x4 | |||
| Unknown property (usually 0.5?) | |||
|- | |||
| 0x24 | |||
| 0x4 | |||
| Unknown property (linked with 0x28?) | |||
|- | |||
| 0x28 | |||
| 0x4 | |||
| Unknown property (linked with 0x24?) | |||
|- | |||
| 0x2C | |||
| 0x4 | |||
| Component gravity at start (0x0 = gravity, 0x1 = no gravity) | |||
|- | |||
| 0x30 | |||
| 0x30 | |||
| Unknown properties | | Unknown properties | ||
|} | |} | ||
The position is calculated using the 3DS screen as a reference (400x240). | The position is calculated using the 3DS screen as a reference (400x240). | ||
==== Attachment badge properties ==== | |||
This property sets the union of a badge with an attachment. | |||
{| class="wikitable" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x4 | |||
| Unknown (usually zero?) | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| Unknown (usually 1?) | |||
|- | |||
| 0x8 | |||
| 0x4 | |||
| Unknown | |||
|- | |||
| 0xC | |||
| 0x4 | |||
| Index of attachment selected | |||
|- | |||
| 0x10 | |||
| 0x4 | |||
| Index of badge selected | |||
|- | |||
| 0x14 | |||
| 0x4 | |||
| Width position of attachment (float32) | |||
|- | |||
| 0x18 | |||
| 0x4 | |||
| Height position of attachment (float32) | |||
|- | |||
| 0x1C | |||
| 0x4 | |||
| Unknown (usually zero?) | |||
|} | |||
== Attachment (atb) == | == Attachment (atb) == | ||
An attachment file stores the data of an | An attachment file stores the data of an object with badges attached and its image. | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 424: | Line 512: | ||
| 0x24 | | 0x24 | ||
| 0x4 | | 0x4 | ||
| Start address of collision | | Start address of collision data | ||
|- | |- | ||
| 0x28 | | 0x28 | ||
| 0x4 | | 0x4 | ||
| End address of collision | | End address of collision data | ||
|- | |- | ||
| 0x2C | | 0x2C | ||
Line 456: | Line 544: | ||
| 0x80 + 2 * (w * h) | | 0x80 + 2 * (w * h) | ||
| | | | ||
| Collision | | [[#Collision data|Collision data]] | ||
|} | |} | ||
Line 486: | Line 574: | ||
| 0x10 | | 0x10 | ||
| 0x4 | | 0x4 | ||
| End address of header data | | End address of header data (ORed with 0x80?) | ||
|- | |- | ||
| 0x14 | | 0x14 | ||
Line 501: | Line 589: | ||
|- | |- | ||
| 0x4C | | 0x4C | ||
| | | 0xB4 | ||
| Padding | | Padding | ||
|- | |- | ||
Line 580: | Line 664: | ||
| 0x64 | | 0x64 | ||
| 0x4 | | 0x4 | ||
| Unknown | | Unknown (related to category ID?) | ||
|- | |- | ||
| 0x68 | | 0x68 | ||
Line 637: | Line 721: | ||
|- | |- | ||
| 0x4C | | 0x4C | ||
| | | 0x34 | ||
| Padding | | Padding | ||
|- | |- | ||
Line 658: | Line 742: | ||
== Fixed Object (fob) == | == Fixed Object (fob) == | ||
A fixed object file stores the data of | A fixed object file stores the data of an immovable object and its image. | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 696: | Line 780: | ||
| 0x1C | | 0x1C | ||
| 0x4 | | 0x4 | ||
| Start address of collision | | Start address of collision data | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| 0x4 | | 0x4 | ||
| End address of collision | | End address of collision data | ||
|- | |- | ||
| 0x24 | | 0x24 | ||
Line 724: | Line 808: | ||
| 0x80 + (w * h) | | 0x80 + (w * h) | ||
| | | | ||
| Collision | | [[#Collision data|Collision data]] | ||
|} | |} | ||
Line 746: | Line 830: | ||
| 0x8 | | 0x8 | ||
| 0x4 | | 0x4 | ||
| File length | | File length (stuck at 0x45XX, but correct value works) | ||
|- | |- | ||
| 0xC | | 0xC | ||
Line 790: | Line 874: | ||
| 0x34 | | 0x34 | ||
| 0x4 | | 0x4 | ||
| Start address of collision | | Start address of collision data | ||
|- | |- | ||
| 0x38 | | 0x38 | ||
| 0x4 | | 0x4 | ||
| End address of collision | | End address of collision data (stuck at 0x45XX, but correct value works) | ||
|- | |- | ||
| 0x3C | | 0x3C | ||
Line 802: | Line 886: | ||
| 0x40 | | 0x40 | ||
| 0x4 | | 0x4 | ||
| Unknown | | Unknown. Same as value in offset 0x0 in [[Home_Menu#BadgeIdentifier|BadgeIdentifier]] | ||
|- | |- | ||
| 0x44 | | 0x44 | ||
Line 817: | Line 901: | ||
|- | |- | ||
| 0xAC | | 0xAC | ||
| | | 0x4 | ||
| Unknown | | Same as 0x40? | ||
|- | |||
| 0xB0 | |||
| 0x4 | |||
| Unknown (signed int) | |||
|- | |||
| 0xB4 | |||
| 0x4 | |||
| Unknown (signed int) | |||
|- | |- | ||
| 0xB8 | | 0xB8 | ||
Line 858: | Line 950: | ||
| | | | ||
| | | | ||
| Collision | | [[#Collision data|Collision data]] | ||
|} | |} | ||
Line 891: | Line 983: | ||
| 0x3900 | | 0x3900 | ||
| 0x800 | | 0x800 | ||
| 32x32 RGB565 image of full badge (used in badge selector in Home Menu) | | 32x32 RGB565 image of full badge (used in badge selector in Home Menu if badge is 1x1) | ||
|- | |- | ||
| 0x4100 | | 0x4100 | ||
Line 907: | Line 999: | ||
| | | | ||
| 0x800 | | 0x800 | ||
| 32x32 Optional additional RGB565 image tile(s). Only exists if badge is not 1x1 ( | | 32x32 Optional additional RGB565 image tile(s). Only exists if badge is not 1x1 (used in badge selector in Home Menu if badge is not 1x1) | ||
|- | |- | ||
| | | | ||
Line 947: | Line 1,039: | ||
# Unknown | # Unknown | ||
# Unknown | # Unknown | ||
== Collision data == | |||
The collision of an object is defined by a set of polygons combined together. | |||
The polygons are represented using the vertices of each polygon, and those vertices are represented using their coordinates according to the in game image resolution. | |||
{| class="wikitable" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x4 | |||
| Number of polygons | |||
|- | |||
| 0x4 | |||
| 0x44 | |||
| Polygon data | |||
|- | |||
| | |||
| 0x44 | |||
| Additional polygons data | |||
|} | |||
=== Polygon data === | |||
The data of a polygon starts with the number of vertices. The coordinates of each vertice are then stored as float32 values on an allocated 0x40 byte section. | |||
The vertices can't be next to each other, there is a 2 pixel circular restricted area around each vertice. If the coordinates don't fill the 0x40 byte section, the remaining data is set to null bytes. | |||
{| class="wikitable" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x4 | |||
| Number of vertices | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| X coordinate of vertice | |||
|- | |||
| 0x8 | |||
| 0x4 | |||
| Y coordinate of vertice | |||
|- | |||
| | |||
| 0x4 | |||
| X coordinate of additional vertices | |||
|- | |||
| | |||
| 0x4 | |||
| Y coordinate of additional vertices | |||
|} |