Contributions are welcome, no matter how small! This can be new symbols, new type definitions, changes to resymgen
, bug fixes, documentation, etc. Make sure to add yourself to CREDITS.txt
if you're a new contributor!
You can contribute by opening a pull request. If you've never done this before, this tutorial is a friendly introduction to the process. You can also follow GitHub's official quickstart guide, if you prefer.
This repository is designed to make contributing simple while maintaining quality. No setup is required to contribute to the symbol tables and C headers beyond a normal text editor and the ability to create pull requests on GitHub. When you open or update a pull request, the relevant GitHub Actions jobs will automatically test your changes (and run the formatter for you if necessary). Changes to resymgen
require the standard Rust toolchain.
See the symbols/
README for more information on adding new symbols.
NOTE: If you're adding symbols, you might also want to add new types to accompany them. This is optional but recommended, especially if you're adding functions. Providing function signatures in the C headers allows you to strictly specify function parameters and their types. Providing global variable declarations in the C headers allows you to strictly specify data structure types.
See the headers/
README for more information on adding new types.
It's common in reverse engineering to have only a vague idea about how something works. For example, you might have a suspicion about what a function does without being certain about it. Partial or incomplete information is still better than nothing, so feel free to contribute symbols and types anyway (just note the uncertainty in the symbol description and/or as a comment in the C headers). Alternatively, if you feel that more understanding is necessary to make a proper contribution, you can also file a new issue using the "Research topic" issue template.
If you want to contribute to resymgen
(e.g., adding support for more data formats), you'll need to install Rust. The resymgen
package is a standard Cargo project (so build with cargo build
, run tests with cargo test
, etc.). You can view the rendered library docs on Docs.rs.
If you see an error in the existing docs, feel free to make a pull request to correct it. If you want to add a new guide, tutorial, reference, etc., please add it to the docs/
directory.