← Back to project summary Melee Mod Studio
A closer look at what it is, what is in it, and what I built.
What the app does
- Opens a game disc image directly from your own machine and patches it in place, with no upload step and no server copy of the game.
- Gives each kind of mod its own workbench: character gameplay, cosmetics, portraits, stages, music, 3D models, and a checkout flow for assembling a pack.
- Edits character move scripts frame by frame, with hitbox groups, knockback, trajectory, and directional influence shown alongside the numbers.
- Hosts a searchable marketplace of community cosmetic mods with per-fighter filtering and shareable detail pages.
The file formats, all written from scratch
- Reads the GameCube disc image, walks its file system table, and rebuilds that table when a replacement file changes size.
- Parses the game's HSD archive and model format - joints, display objects, materials, textures, and polygon data - and animates fighters from their own animation data.
- Decodes the GameCube GX texture formats, including the compressed CMPR format, for portraits and costume previews.
- Decodes and encodes the game's HPS music container and its DSP-ADPCM audio so tracks can be swapped.
- Draws models with a WebGL2 renderer written for this project rather than a 3D library, sharing one context across every thumbnail on a page.
How the project is run
- Byte patches refuse to guess at a mirrored offset rather than silently writing the wrong one, which is what fixed the stage mods that used to apply and change nothing.
- A Python harness drives the Dolphin emulator through libmelee to check that an edited move actually behaves differently in the running game.
- The repo keeps a delivery audit that checks every completion claim against the source, and tracks work as built, verified, or confirmed rather than just "done".
- GitHub Actions deploy to separate staging and production Workers environments that share one D1 database.
Live project Open Melee Mod Studio Open the site in a new tab ↗