mirror of https://github.com/zeldaret/mm.git
150 lines
4.9 KiB
JSON
150 lines
4.9 KiB
JSON
{
|
|
"name": "zeldaret_mm_tools",
|
|
"description": "Run Zelda decompilation tools for Majora's Mask using the Docker environment provided by zeldaret/mm. Supports extracting assets, compiling, and verifying against the original ROM. Designed for automation via Camel Owl Agent.",
|
|
"dockerfile_path": "./Dockerfile",
|
|
"entrypoint": "/zeldaret/mm/tools/natural.sh",
|
|
"commands": [
|
|
{
|
|
"name": "diff",
|
|
"description": "Compares the original assembly extracted from the ROM instruction-for-instruction with what the code you have written compiles to.",
|
|
"script": "./tools/diff.py",
|
|
"parameters": [
|
|
{
|
|
"name": "function_symbol",
|
|
"description": "The function symbol name to diff (e.g., ObjTree_Init)",
|
|
"type": "string",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "flags",
|
|
"description": "Optional flags for diff.py (e.g., -mwo, -mwo3, -mwob)",
|
|
"type": "string",
|
|
"required": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "m2ctx",
|
|
"description": "Generates the context for a C file to help mips_to_c. Writes to a file called ctx.c in the root directory of the repo.",
|
|
"script": "./tools/m2ctx.py",
|
|
"parameters": [
|
|
{
|
|
"name": "c_file_path",
|
|
"description": "Path to the C file",
|
|
"type": "string",
|
|
"required": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "actor_symbols",
|
|
"description": "Takes a VRAM or VROM address to get overlay file and offset for an Actor.",
|
|
"script": "./tools/overlayhelpers/actor_symbols.py",
|
|
"parameters": [
|
|
{
|
|
"name": "address",
|
|
"description": "VRAM or VROM address",
|
|
"type": "string",
|
|
"required": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "first_diff",
|
|
"description": "Gives the addresses of first difference in the ROM, the difference, and a count of how many bytes differ, or if the whole ROM is shifted.",
|
|
"script": "./tools/first_diff.py",
|
|
"parameters": []
|
|
},
|
|
{
|
|
"name": "sym_info",
|
|
"description": "Finds ROM, VRAM, and file information for a given symbol (function or variable name) using the map file.",
|
|
"script": "./tools/sym_info.py",
|
|
"parameters": [
|
|
{
|
|
"name": "symbol_name",
|
|
"description": "The symbol name (e.g., ObjTree_Init)",
|
|
"type": "string",
|
|
"required": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "extract_assets",
|
|
"description": "Uses ZAPD to extract assets from the baserom.",
|
|
"script": "./extract_assets.py",
|
|
"parameters": []
|
|
},
|
|
{
|
|
"name": "assist",
|
|
"description": "Searches for similar functions to the one you are passing, and it tells you which one are decompiled. Can also search for similar functions for every function in a given overlay.",
|
|
"script": "./tools/assist.py",
|
|
"parameters": [
|
|
{
|
|
"name": "function_or_overlay_name",
|
|
"description": "Function name or overlay name",
|
|
"type": "string",
|
|
"required": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "get_actor_sizes",
|
|
"description": "Generates a list of actors with various statistics about their function sizes.",
|
|
"script": "./tools/get_actor_sizes.py",
|
|
"parameters": [
|
|
{
|
|
"name": "flags",
|
|
"description": "Optional flags for get_actor_sizes.py",
|
|
"type": "string",
|
|
"required": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "progress",
|
|
"description": "Gives the progress output that the website uses.",
|
|
"script": "./tools/progress.py",
|
|
"parameters": []
|
|
},
|
|
{
|
|
"name": "regconvert",
|
|
"description": "Converts mips2c's gRegEditor->data[n] output (or a raw offset) into the appropriate variable in the REG pages. Can also be run on a file to mass-convert them.",
|
|
"script": "./tools/regconvert.py",
|
|
"parameters": [
|
|
{
|
|
"name": "input",
|
|
"description": "Input (gRegEditor->data[n] output, raw offset, or file path)",
|
|
"type": "string",
|
|
"required": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "rename_global_asm",
|
|
"description": "Renames single-function assembly files in asm/non_matchings when the function they contain has been renamed.",
|
|
"script": "./tools/rename_global_asm.py",
|
|
"parameters": []
|
|
},
|
|
{
|
|
"name": "rename_sym",
|
|
"description": "Renames a symbol throughout the codebase. Use with caution as it has no sanity checks.",
|
|
"script": "./tools/rename_sym.sh",
|
|
"parameters": [
|
|
{
|
|
"name": "old_symbol_name",
|
|
"description": "The old symbol name",
|
|
"type": "string",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "new_symbol_name",
|
|
"description": "The new symbol name",
|
|
"type": "string",
|
|
"required": true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|