AAMP: Difference between revisions

Jump to navigation Jump to search
imported>Leoetlino
No edit summary
imported>Leoetlino
No edit summary
Line 10: Line 10:
* Parameter Objects are dicts that contain Parameters.
* Parameter Objects are dicts that contain Parameters.
* Parameter Lists are structures that contain Parameters, Parameter Objects, and other Parameter Lists.
* Parameter Lists are structures that contain Parameters, Parameter Objects, and other Parameter Lists.
* The root parameter list is called the Parameter IO. It is associated with a version and type string in the header which is checked by the AAMP library.
=== Section order ===
* Header
* Parameter lists, objects, parameters (the official ordering algorithm is unknown)
* Data section (to store parameter data)
* String section (to store strings)
* Unknown uint32 section (unused?)


=== Header ===
=== Header ===
Line 23: Line 31:
| 0xc || u32 || File size
| 0xc || u32 || File size
|-
|-
| 0x10 || u32 || Padding
| 0x10 || u32 || Parameter IO version
|-
|-
| 0x14 || u32 || Offset to root parameter IO (multiple of 4)
| 0x14 || u32 || Offset to parameter IO (multiple of 4)
|-
|-
| 0x18 || u32 || Number of lists (including root parameter IO)
| 0x18 || u32 || Number of lists (including parameter IO)
|-
|-
| 0x1c || u32 || Number of objects
| 0x1c || u32 || Number of objects
Line 43: Line 51:


=== Parameter list ===
=== Parameter list ===
{{empty section}}
{| class="wikitable"
! Offset !! Type !! Description
|-
| 0x0 || u32 || Name CRC32
|-
| 0x4 || u16 || Offset to child lists, divided by 4 and relative to parameter list start
|-
| 0x6 || u16 || Number of child lists
|-
| 0x8 || u16 || Offset to child objects, divided by 4 and relative to parameter list start
|-
| 0xa || u16 || Number of child objects
|}


=== Parameter object ===
=== Parameter object ===
{{empty section}}
{| class="wikitable"
! Offset !! Type !! Description
|-
| 0x0 || u32 || Name CRC32
|-
| 0x4 || u16 || Offset to child parameters, divided by 4 and relative to parameter object start
|-
| 0x6 || u16 || Number of child parameters
|}


=== Parameter ===
=== Parameter ===
{{empty section}}
{| class="wikitable"
! Offset !! Type !! Description
|-
| 0x0 || u32 || Name CRC32
|-
| 0x4 || u24 || Offset to data, divided by 4 and relative to parameter start
|-
| 0x7 || ParameterType (u8) || Type
|}


=== Parameter types ===
=== ParameterType ===
The following parameter type and class names are ''official'' and come from Nintendo's AAMP library.
The following parameter type and class names are ''official'' and come from Nintendo's AAMP library.