AAMP (File Format): Difference between revisions
m (→ParameterIO) |
|||
Line 71: | Line 71: | ||
| agllref || Light reflection information || ''The Legend of Zelda: Breath of the Wild'' (Nintendo Switch) | | agllref || Light reflection information || ''The Legend of Zelda: Breath of the Wild'' (Nintendo Switch) | ||
|- | |- | ||
| aglmf || Multi-filter information || ''1-2-Switch'', ''Animal Crossing: New Horizons'', ''ARMS'', ''Captain Toad: Treasure Tracker'', ''Game Builder Garage'', ''Mario Kart 8/Deluxe'', ''Nintendo Labo - Toy-Con 01: Variety Kit'', ''Nintendo Labo - Toy-Con 02: Robot Kit'', ''Nintendo Labo - Toy-Con 03: Vehicle Kit'', ''Nintendo Labo - Toy-Con 04: VR Kit'', ''Nintendo Switch Sports'', ''Pikmin 3 Deluxe'', ''Ring Fit Adventure'', ''Splatoon 2'', ''Splatoon 3'', ''Super Mario 3D All-Stars'', ''Super Mario Bros. Wonder'', ''The Legend of Zelda: Breath of the Wild'' (Nintendo Switch), ''The Legend of Zelda: Tears of the Kingdom'' | | aglmf || Multi-filter information || ''1-2-Switch'', ''Animal Crossing: New Horizons'', ''ARMS'', ''Captain Toad: Treasure Tracker'', ''Game Builder Garage'', ''Mario Kart 8/Deluxe'', ''Nintendo Labo - Toy-Con 01: Variety Kit'', ''Nintendo Labo - Toy-Con 02: Robot Kit'', ''Nintendo Labo - Toy-Con 03: Vehicle Kit'', ''Nintendo Labo - Toy-Con 04: VR Kit'', ''Nintendo Switch Online Playtest Program'', ''Nintendo Switch Sports'', ''Pikmin 3 Deluxe'', ''Ring Fit Adventure'', ''Splatoon 2'', ''Splatoon 3'', ''Super Mario 3D All-Stars'', ''Super Mario Bros. Wonder'', ''The Legend of Zelda: Breath of the Wild'' (Nintendo Switch), ''The Legend of Zelda: Tears of the Kingdom'' | ||
|- | |- | ||
| aglNmdw || Normal drawer information || {{Unknown-left|'''Unknown'''}} | | aglNmdw || Normal drawer information || {{Unknown-left|'''Unknown'''}} |
Revision as of 14:30, 27 October 2024
AAMP is a file format used on Wii U and Nintendo Switch games. Like BYAML, it stores archived parameters, most commonly used along with resources from AGL.
File Format
The file byte order is always little endian.
Header
Offset | Type | Description |
---|---|---|
0x00 | Char[4] | File magic. Always AAMP in ASCII. |
0x04 | UInt32 | Version number. |
0x08 | UInt32 | Flags. Each one seems to be one bit long. Always 1 in Mario Kart 8; 3 in Mario Kart 8 Deluxe, Super Mario Odyssey and The Legend of Zelda: Breath of the Wild. |
0x0C | Int32 | Size of file in bytes. |
0x10 | Int32 | ParameterIO version. |
0x14 | Int32 | Size of ParameterIO in bytes, including padding. |
If version ≥ 2 | ||
0x18 | Int32 | Total number of branches. |
0x1C | Int32 | Total number of parameter lists. |
0x20 | Int32 | Total number of parameters. |
0x24 | Int32 | Size of parameter data. |
0x28 | Int32 | Size of string table. |
0x2C | Int32 | Number of entries on unknown section. |
ParameterIO
AAMP files are categorized by their first node, ParameterIO, which consists of a null-terminated string aligned to 4 bytes. This category is present as the file extension as well, most of the times (.b + category name). Here is a list of AAMP categories:
Identifier | Description | Found in |
---|---|---|
aglatex | Auto exposure information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars |
aglblm | Bloom information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Online Playtest Program, Nintendo Switch Sports, Pikmin 3 Deluxe, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
aglccr | Color correction information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Mario Kart 8/Deluxe, Nintendo Switch Sports, Splatoon 2, Splatoon 3, Super Mario 3D World, Super Mario Bros. Wonder, Super Mario Odyssey, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
aglcloud | Unknown | Unknown |
aglclwd | Cloud drawer information | The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
aglcube | Cube map information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Captain Toad: Treasure Tracker, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Online Playtest Program, Nintendo Switch Sports, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario 3D World, Super Mario Bros. Wonder, Super Mario Odyssey, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
agldecd | Unknown | Unknown |
agldof | Depth of field information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Captain Toad: Treasure Tracker, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Online Playtest Program, Nintendo Switch Sports, Pikmin 3 Deluxe, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario 3D World, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
aglenv | Environment information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Online Playtest Program, Nintendo Switch Sports, Pikmin 3 Deluxe, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
aglenvset | Environment controller | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Online Playtest Program, Nintendo Switch Sports, Pikmin 3 Deluxe, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
aglfila | Anti-aliasing filter information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Ring Fit Adventure, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
aglflr | Unknown | Unknown |
aglglr | Glare filter information | Unknown |
agllmap | Light map information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Sports, Pikmin 3 Deluxe, Ring Fit Adventure, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
agllref | Light reflection information | The Legend of Zelda: Breath of the Wild (Nintendo Switch) |
aglmf | Multi-filter information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Captain Toad: Treasure Tracker, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Online Playtest Program, Nintendo Switch Sports, Pikmin 3 Deluxe, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
aglNmdw | Normal drawer information | Unknown |
aglofx | Occlusion effects information | 1-2-Switch, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Sports, Pikmin 3 Deluxe, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D World, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
aglprojsdw | Unknown | Unknown |
aglsdw | Unknown | Unknown |
aglshpp | Shadow pre-pass information | 1-2-Switch, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, 'Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Sports, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
aglsky | Skybox information | Nintendo Switch Online Playtest Program, Nintendo Switch Sports, Super Mario Bros. Wonder, The Legend of Zelda: Tears of the Kingdom |
aglssao | Screen space ambient occlusion settings | Super Mario 3D World, Super Mario Odyssey |
envpal | Environment Palette | Super Mario Maker 2 |
gapkginfo | App package information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Sports, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
gapkglist | App package list | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Sports, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
genv | Global environment parameters | 1-2-Switch, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Online Playtest Program, Nintendo Switch Sports, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
glght | Lighting information | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Online Playtest Program, Nintendo Switch Sports, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
glpbd | Light probe data | Mario Kart 8/Deluxe |
glpbm | Movable light probe | Mario Kart 8 Deluxe |
gmsconf | Set of configuration templates | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Sports, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
gsdw | Shadow parameters | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Online Playtest Program, Nintendo Switch Sports, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
gssao | Screen space ambient occlusion information | Super Mario Bros. Wonder |
gsysefx | Unknown | Unknown |
ksky | Sky parameters | Splatoon 2, The Legend of Zelda: Breath of the Wild (Nintendo Switch) |
mscinfo | Music information | The Legend of Zelda: Breath of the Wild (Nintendo Switch) |
phcl | Phive cloth physics | Nintendo Switch Sports |
phhb | Phive helper bone parameters | Nintendo Switch Sports |
pref | Unknown | Animal Crossing: New Horizons, ARMS, Nintendo Switch Sports, Ring Fit Adventure, Splatoon 2 |
ptclconf | Unknown | 1-2-Switch, Animal Crossing: New Horizons, ARMS, Game Builder Garage, Mario Kart 8/Deluxe, Nintendo Labo - Toy-Con 01: Variety Kit, Nintendo Labo - Toy-Con 02: Robot Kit, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, Nintendo Switch Sports, Ring Fit Adventure, Splatoon 2, Splatoon 3, Super Mario 3D All-Stars, Super Mario Bros. Wonder, The Legend of Zelda: Breath of the Wild (Nintendo Switch), The Legend of Zelda: Tears of the Kingdom |
vege | Vegetation parameters | Game Builder Garage, Nintendo Labo - Toy-Con 03: Vehicle Kit, Nintendo Labo - Toy-Con 04: VR Kit, The Legend of Zelda: Breath of the Wild (Nintendo Switch) |
winfo | World information | The Legend of Zelda: Breath of the Wild (Nintendo Switch) |
xml | Various parameters | Captain Toad: Treasure Tracker, Super Mario 3D World, Super Mario Odyssey, The Legend of Zelda: Breath of the Wild (Nintendo Switch) |
Note: on version 1 the ParameterIO string seems to be padded after the null-terminator with 0xCD bytes. The 0xCD bytes seem to are also be null-terminated.
Version 1
The first version of AAMP files is used in Mario Kart 8. Unlike Version 2, the data is not aligned.
Branch
Branches are the main nodes of the AAMP tree. They can only contain other branches or parameter lists.
Offset | Type | Description |
---|---|---|
0x00 | UInt32 | Size of the branch, including all child branches and parameter lists. |
0x04 | Byte[4] | CRC-32 checksum of the branch's name. |
0x08 | Int32 | Number of child branches. |
0x0C | Int32 | Number of parameter lists. |
After the structure, the child branches are stored, and then the parameter lists.
Parameter List
Parameter lists are similar to branches, except that they can only contain parameters.
Offset | Type | Description |
---|---|---|
0x00 | UInt32 | Size of the parameter list, including all parameters. |
0x04 | Int32 | Number of parameters. |
0x08 | Byte[4] | CRC-32 checksum of the parameter list's name. |
0x0C | Byte[4] | Padding. Always 0xCDCDCDCD. |
Parameter
Parameters contain data that can be stored in many different formats.
Offset | Type | Description |
---|---|---|
0x00 | UInt32 | Size of the parameter entry, including the data that follows. |
0x04 | UInt32 | Parameter type. |
0x08 | UInt32 | CRC-32 checksum of the parameter's name. |
Followed by the parameter entry, there's the parameter data. Parameters of type string are always null-terminated.
Version 2
The second version of AAMP is used on many games, such as Mario Kart 8 Deluxe, Super Mario Odyssey and The Legend of Zelda: Breath of the Wild. It has the data sorted in a slightly different way that makes it more optimized. The data is also aligned by 4 now.
Branch
All offsets are divided by 4 and relative to the start of the branch.
Offset | Type | Description |
---|---|---|
0x00 | Byte[4] | CRC-32 checksum of the branch's name. |
0x04 | UInt16 | Offset to the set of child branches. Unknown usage for the branches without any of them. |
0x06 | UInt16 | Number of child branches. |
0x08 | UInt16 | Offset to the set of parameter lists. Unknown usage for the branches without any of them. |
0x0A | UInt16 | Number of parameter lists. |
Parameter List
All offsets are divided by 4 and relative to the start of the parameter list.
Offset | Type | Description |
---|---|---|
0x00 | Byte[4] | CRC-32 checksum of the parameter list's name. |
0x04 | UInt16 | Offset to the set of child parameters. |
0x06 | UInt16 | Number of child parameters. |
Parameter
Unlike in version 1, the parameter data is separated from the parameter entries. This was probably made in order to optimize the usage of equal values for multiple parameters. All offsets are divided by 4 and relative to the start of the parameter entry.
Offset | Type | Description |
---|---|---|
0x00 | Byte[4] | CRC-32 checksum of the parameter's name. |
0x04 | UInt24 | Offset to the value at parameter data or string table. |
0x07 | Byte | Parameter type. |
Parameter Data
All non-string values seem to be placed on this section.
String Table
All strings are placed into this section. They're null-terminated and aligned by 4.
Unknown Section
In some files, there is an extra section with more data. It is unknown for now if this data is used by certain parameter types, or if it's user data, or if it's not used at all.
Parameter Types
This is a list of parameters used by AAMP files:
ID | Name | Description |
---|---|---|
0x00 | Parameter<bool> |
Boolean; a byte that is either 0 or 1. |
0x01 | Parameter<float> |
32-bit single precision float. |
0x02 | Parameter<int> |
32-bit signed integer. |
0x03 | Parameter<sead::Vector2<float>> |
Two 32-bit single precision float. |
0x04 | Parameter<sead::Vector3<float>> |
Three 32-bit single precision float. |
0x05 | Parameter<sead::Vector4<float>> |
Four 32-bit single precision float. |
0x06 | Parameter<sead::Color4f> |
Four 32-bit single precision float that represent RGBA color data. |
0x07 | Parameter<sead::FixedSafeString<32>> |
Null-terminated string with a maximum buffer of 32 bytes. |
0x08 | Parameter<sead::FixedSafeString<64>> |
Null-terminated string with a maximum buffer of 64 bytes. |
0x09 | ParameterCurve<1u> |
Unknown. Seems to be some kind of array with a sub-type. |
0x0A | ParameterCurve<2u> |
Unknown. Seems to be some kind of array with a sub-type. |
0x0B | ParameterCurve<3u> |
Unknown. Seems to be some kind of array with a sub-type. |
0x0C | ParameterCurve<4u> |
Unknown. Seems to be some kind of array with a sub-type. |
0x0D | ParameterBuffer<int> |
Array of 32-bit signed integers. The number of element types are stored before array as an Int32. |
0x0E | ParameterBuffer<float> |
Array of 32-bit single precision floats. The number of element types are stored before array as an Int32. |
0x0F | Parameter<sead::FixedSafeString<256>> |
Null-terminated string with a maximum buffer of 256 bytes. |
0x10 | Parameter<sead::Quat<float>> |
Quaternion. |
0x11 | Parameter<uint> |
32-bit unsigned integer. |
0x12 | ParameterBuffer<unsigned int> |
Array of 32-bit unsigned integers. The number of element types are stored before array as an Int32. |
0x13 | ParameterBuffer<unsigned char> |
Array of bytes. The number of element types are stored before array as an Int32. |
0x14 | Parameter<sead::SafeStringBase<char>> |
Null-terminated string. |
0x15 |
|
Unknown. Seems to be pointers or user data. |
Version List
Tools
The following tools can handle AAMP files:
- (none)