







BoxStudio: Visual editor for N64 Decomp bases to create ROM Hacks
Hey r/emulation,
I wanted to share a project I've been prototyping called BoxStudio. It’s an early visual editor for N64 decomp-based ROM hacking projects (currently focusing on proving the workflow with HackerSM64, with plans for zeldaret's OoT/MM).
Unlike traditional tools that inject raw bytes into a compiled ROM, BoxStudio clones a local decomp workspace into a .boxstudio/ directory, parses the level scripts and model declarations natively, and writes clean code back to the tree so the native decomp toolchain can rebuild it.
Current Technical State:
- Stack: C++17, CMake, Dear ImGui, Win32/DirectX 11 backend.
- Core Systems: Isolated cross-platform CLI layer for project parsing and metadata validation (CI runs on Linux/macOS).
- Viewport: 3D level editor viewport with texture-mode support and orbit/fly controls.
- Safety Rules: Strict guardrails for actor segment groups (e.g., ensuring Goombas stay in common0 and Koopas stay in group14) so it blocks modifications that would compile but crash real hardware.
The Accuracy Bottleneck (Looking for Insight/Contributors)
We are strictly targeting real hardware behavior and accurate emulation, testing primarily on ares v148 and flashcarts.
Right now, we have a highly specific bug shown in our demo video: when adding a Star to Castle Grounds, the asset injects and renders perfectly, but collecting it triggers a crash on ares during the save sequence.
The initial codebase was scaffolded rapidly using LLMs to establish the rendering/Win32 boilerplate, and we are currently running a systematic human refactoring initiative to modularize the parser and abstract the viewport for cross-platform SDL/OpenGL support.
If you are interested in low-level N64 asset pipelines, tool development, or want to look at the ares crash logs, we'd love your insight or contributions.
Repo: https://github.com/ExpansionPak/BoxStudio
EDIT: For anyone seeing this post. Please read https://github.com/orgs/ExpansionPak/discussions/1