Nintendo Badge Arcade/PrizeCollection: Difference between revisions

m Crane Instance (cib): Add crane availability
m Minor improvements
 
(7 intermediate revisions by the same user not shown)
Line 158: Line 158:
| 0xD8
| 0xD8
| 0x8
| 0x8
| Unknown
| Unknown (usually zero?)
|-
|-
| 0xE0
| 0xE0
Line 206: Line 206:


=== Crane availability ===
=== Crane availability ===
This section defines when a machine is available to be used.
This section defines where a machine is available to be used.


{| class="wikitable"
{| class="wikitable"
|-
|-
! Value
! Value
! Crane type
! Crane availability
|-
|-
| 0x0
| 0x0
Line 360: 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.


Except for the index, all of the properties are saved as float32 values.
Unless stated otherwise, all of the properties are saved as float32 values.


{| class="wikitable"
{| class="wikitable"
Line 370: Line 370:
| 0x0
| 0x0
| 0x4
| 0x4
| Component index
| Component index (u32)
|-
|-
| 0x4
| 0x4
Line 393: Line 393:
|-
|-
| 0x18
| 0x18
| 0x48
| 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
|}
|}
Line 488: Line 512:
| 0x24
| 0x24
| 0x4
| 0x4
| Start address of collision floating points
| Start address of collision data
|-
|-
| 0x28
| 0x28
| 0x4
| 0x4
| End address of collision floating points
| End address of collision data
|-
|-
| 0x2C
| 0x2C
Line 520: Line 544:
| 0x80 + 2 * (w * h)
| 0x80 + 2 * (w * h)
|  
|  
| Collision floating points
| [[#Collision data|Collision data]]
|}
|}


Line 550: Line 574:
| 0x10
| 0x10
| 0x4
| 0x4
| End address of header data
| End address of header data (ORed with 0x80?)
|-
|-
| 0x14
| 0x14
Line 565: Line 589:
|-
|-
| 0x4C
| 0x4C
| 0x80
| 0xB4
| Unknown (usually zero?)
|-
| 0xCC
| 0x34
| Padding
| Padding
|-
|-
Line 644: Line 664:
| 0x64
| 0x64
| 0x4
| 0x4
| Unknown
| Unknown (related to category ID?)
|-
|-
| 0x68
| 0x68
Line 701: Line 721:
|-
|-
| 0x4C
| 0x4C
| 0xB4
| 0x34
| Padding
| Padding
|-
|-
Line 760: Line 780:
| 0x1C
| 0x1C
| 0x4
| 0x4
| Start address of collision floating points
| Start address of collision data
|-
|-
| 0x20
| 0x20
| 0x4
| 0x4
| End address of collision floating points
| End address of collision data
|-
|-
| 0x24
| 0x24
Line 788: Line 808:
| 0x80 + (w * h)
| 0x80 + (w * h)
|  
|  
| Collision floating points
| [[#Collision data|Collision data]]
|}
|}


Line 854: Line 874:
| 0x34
| 0x34
| 0x4
| 0x4
| Start address of collision floating points
| Start address of collision data
|-
|-
| 0x38
| 0x38
| 0x4
| 0x4
| End address of collision floating points (stuck at 0x45XX, but correct value works)
| End address of collision data (stuck at 0x45XX, but correct value works)
|-
|-
| 0x3C
| 0x3C
Line 866: Line 886:
| 0x40
| 0x40
| 0x4
| 0x4
| Unknown (random identifier?)
| Unknown. Same as value in offset 0x0 in [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]
|-
|-
| 0x44
| 0x44
Line 930: Line 950:
|  
|  
|  
|  
| Collision floating points
| [[#Collision data|Collision data]]
|}
|}


Line 963: 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 979: Line 999:
|  
|  
| 0x800
| 0x800
| 32x32 Optional additional RGB565 image tile(s). Only exists if badge is not 1x1 (unknown use)
| 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 1,019: 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
|}