Decompilation is a fairly advanced skill and can potentially take a long time to learn. Having prior programming experience (especially with C++) is highly recommended, but we are more than willing to help you get up to speed.
If you want an overview of how the process works, take a peek at MattKC's video he made for the Lego Island decompilation project. While obviously not everything covered in this video will apply to Rock Band 3, it still provides a good summary of how decompilation projects usually work.
We use Ghidra with the GameCube loader extension for doing most of our reverse
engineering work. While we currently do not have a dedicated Ghidra server for
the project, there is a script for quickly reimporting symbols from
symbols.txt into your local Ghidra project in tools
.
For newcomers to these types of projects, we recommend VSCode/VSCodium with
Microsoft's C++ plugin. However, you may use any text editor you prefer as
long as you have a good way of running clang-format
.
Any code that is not from a third party library should be formatted with
clang-format
before being submitted to the project. This avoids all questions
about code style and allows us to focus on what's actually important: decompiling the
game.
We make use of GitHub Actions to ensure all code merged to the repository produces a matching binary. If your code fails CI, you must fix it before it can be merged.
We currently lack a formal set of naming conventions. The current advice is to just try and follow what surrounding code does.
If you have any further questions, feel free to join the GC/Wii Decompilation Discord.