Nintendo parameter archive (AAMP) library
Everything should work correctly for BotW parameter archives, though this hasn't been tested a lot.
Some more esoteric parameter types are left unsupported currently.
Setup
Install with pip install aamp or on Windows py -m pip install aamp.
Converter usage
aamp_to_yml will convert an AAMP to a human readable representation.
yml_to_aamp will do the opposite.
Library usage
To read a parameter archive, create a Reader and give it the binary archive data,
then call parse() to get a ParameterIO. This API is purposefully very similar to Nintendo's
official parameter utils to help with reverse engineering and re-implementing parts of the game code.
Parameter is a simple value, for example a boolean or an integer.
ParameterObject is a key-value mapping where keys are strings and values are always Parameters.
ParameterList is also a key-value mapping, but it contains objects and other lists rather than Parameters.
ParameterIO is a special ParameterList with some extra attributes, like a version number and a type string (usually xml).
>>> import aamp
>>> reader = aamp.Reader(open('test_data/DamageReactionTable.bxml', 'rb').read())
>>> pio = reader.parse()
>>> pio.list('param_root').list('Basic').object('Edge')
ParameterObject(params={375673178: True, 2982974660: True, 4022901097: True, 2861907126: True, 3947755327: True, 1529444359: False})
>>> pio.list('param_root').list('Basic').object('Edge').param('Damage')
True
ParameterObject:
.param(param_name)returns a parameter. KeyError is raised if the parameter doesn't exist..set_param(param_name, value)
ParameterList:
.list(list_name)returns a parameter list. KeyError is raised if the list doesn't exist..object(object_name)returns a parameter object. KeyError is raised if the object doesn't exist..set_list(list_name, param_list).set_object(object_name, param_object)
ParameterIO:
- Same as ParameterList, but with extra attributes
version(usually 0) andtype(usuallyxml).
For writing a binary parameter archive, create a Writer and pass it a ParameterIO,
then call write(stream) with a seekable stream.
License
This software is licensed under the terms of the GNU General Public License, version 2 or later.
Metadata
Release files for aamp 1.4.1.post1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aamp-1.4.1.post1-py3-none-any.whl | Python 3 | none | any | Details for aamp-1.4.1.post1-py3-none-any.whl |
Release files / aamp-1.4.1.post1-py3-none-any.whl
| Download URL | aamp-1.4.1.post1-py3-none-any.whl |
|---|---|
| Size | 337.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4061181c352f5952597971bd79807bc3c0c3df7baf1ce993f8936dad39d67e7d
|
|
BLAKE2b-256 checksum How to use checksums |
0d3c79f5a28902ca5adcbf8255dec183c73457858daf08bad461af4fff33cecb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.12.4
|
Security for aamp 1.4.1.post1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.