Skip to content

Version 1.0.0 - Initial Release

Latest

Choose a tag to compare

@Bootstrings Bootstrings released this 04 Aug 01:31
· 2 commits to main since this release

Decompilation Dashboard: Feature Walkthrough

This document provides a brief overview of all features available in the dashboard, organized by the main workflow tabs.

Tab 1: Project Setup

This tab is for the initial, one-time configuration of your decompilation project.

  • Project Folder Selection:

    • Use the Select Folder button to choose a parent directory where the melee repository will be cloned. The application will remember this path for future sessions.
  • main.dol Path:

    • Use the Select File button to locate your legally acquired main.dol file. This path is also saved.
  • Configure Environment & Run Setup:

    • This is the main action button. Clicking it initiates an automated sequence:
      1. Verifies that git and python are found. If ninja is missing, it attempts to install it via pip.
      2. Clones the doldecomp/melee repository into your selected Project Folder if it doesn't already exist.
      3. Copies your main.dol into the correct melee/orig/GALE01/sys/ directory.
      4. Runs configure.py to set up the build environment.
      5. Runs an initial ninja build to ensure everything is working.
  • Settings (Gear Icon):

    • Located in the top-right corner.
    • Opens a page where you can manually specify the paths to python.exe, git.exe, and ninja.exe. This is useful if they are not in your system's PATH. Manually set paths always take priority.

Tab 2: Reconnaissance & Decomp

This tab is your primary workspace for finding a function to work on and gathering the necessary information for decomp.me.

  • Select Assembly File Dropdown:

    • This dropdown is populated with all the assembly (.s) files from the project.
    • Each entry shows the file path and a (Vacant/Claimed) count.
    • The Hide Completed checkbox filters out files that have no vacant functions left.
  • Vacant Functions List:

    • Displays all functions within the selected assembly file that have not yet been decompiled in the C source code.
    • Clicking on a function name in this list selects it as your target.
  • Claimed/Done Functions List:

    • Shows all functions in the selected file that are already present in the C code. This serves as a quick reference for finding working examples.
  • decomp.me Scratch Pad:

    • Selected Target: Displays the name of the function you selected from the "Vacant Functions" list.
    • Check Button: Opens a new browser window to decomp.me, pre-filled with a search for your selected target function's name.
    • Target Assembly: Automatically populated with the clean assembly code for your selected function. Use the Copy Assembly button to easily copy this to your clipboard.
    • Context: Automatically populated with the #include directives from the corresponding C file. This provides the necessary context for decomp.me. Use the Copy Context button.

Tab 3: Verification & Submission

Once you have a 100% match on decomp.me, this tab helps you test it locally and prepare it for submission.

  • Paste Your Matched C Code Here:

    • A large textarea where you paste the final, matching C code from your decomp.me scratch.
  • Inject Code & Add to Header Button:

    • This is an intelligent "find and replace" button.
    • It parses the function name and signature from the code you pasted.
    • It replaces the function stub in the .c file with your new code.
    • It replaces the old function signature in the .h file with your new, correct signature, preventing redeclaration errors.
  • Revert Changes Button:

    • A safety feature. This button uses git restore to revert any changes made to the currently selected C file and its corresponding header, returning them to their original state.
  • Run ninja to Verify Button:

    • Executes the ninja command to build the project. Use this to confirm that your injected code compiles successfully without errors.
  • Submission Section:

    • Link to your decomp.me Scratch: A field to paste the URL of your successful scratch.
    • Open GitHub Issue Button: Opens a new issue on the doldecomp/melee GitHub repository, pre-filling the title and body with your function name, file path, and the decomp.me link.

Global Features

  • Output Log:

    • Located at the bottom of the application. It displays real-time output from all commands (git, ninja, etc.) and provides status messages from the dashboard itself, with color-coding for success, errors, and commands.
  • Quick Access Links:

    • Located in the top-left corner. These provide one-click access to the Melee Decompilation GitHub repository and the decomp.me website.