A cross-platform Zelda 3 ROM editor with a modern C++ GUI, Asar 65816 assembler integration, and an automation-friendly CLI (z3ed). YAZE bundles its toolchain, offers AI-assisted editing flows, and targets reproducible builds on Windows, macOS, and Linux. A preview web version is also available for browser-based editing.
- All-in-one editing: Overworld, dungeon, sprite, palette, and messaging tools with live previews.
- Assembler-first workflow: Built-in Asar integration, symbol extraction, and patch validation.
- Automation & AI:
z3edexposes CLI/TUI automation, proposal workflows, and optional AI agents. - Web preview: Experimental browser-based editor (WASM) - see Web App Guide.
- Testing & CI hooks: CMake presets, ROM-less test fixtures, and gRPC-based GUI automation support.
- Cross-platform toolchains: Single source tree targeting MSVC, Clang, and GCC with identical presets.
- Modular AI stack: Toggle agent UI (
YAZE_BUILD_AGENT_UI), remote automation/gRPC (YAZE_ENABLE_REMOTE_AUTOMATION), and AI runtimes (YAZE_ENABLE_AI_RUNTIME) per preset.
0.5.0-alpha builds are in active development, focusing on the new Music Editor, Web Assembly port, and SDL3 migration. See docs/public/release-notes.md for details.
git clone --recursive https://github.com/scawful/yaze.git
cd yazeRun the environment verifier once per machine:
# macOS / Linux
./scripts/verify-build-environment.sh --fix
# Windows (PowerShell)
.\scripts\verify-build-environment.ps1 -FixIssues- Use the CMake preset that matches your platform (
mac-dbg,lin-dbg,win-dbg, etc.). - Build with
cmake --build --preset <name> [--target …]. - See
docs/public/build/quick-reference.mdfor the canonical list of presets, AI build policy, and testing commands.
| Option | Default | Effect |
|---|---|---|
YAZE_BUILD_AGENT_UI |
ON when GUI builds are enabled |
Compiles the chat/dialog widgets so the editor can host agent sessions. Turn this OFF when you want a lean GUI-only build. |
YAZE_ENABLE_REMOTE_AUTOMATION |
ON for *-ai presets |
Builds the gRPC servers/clients and protobufs that power GUI automation. |
YAZE_ENABLE_AI_RUNTIME |
ON for *-ai presets |
Enables Gemini/Ollama transports, proposal planning, and advanced routing logic. |
YAZE_ENABLE_AGENT_CLI |
ON when CLI builds are enabled |
Compiles the conversational agent stack consumed by z3ed. Disable to skip the CLI entirely. |
Windows win-* presets keep every switch OFF by default (win-dbg, win-rel, ci-windows) so MSVC builds stay fast. Use win-ai, win-vs-ai, or the new ci-windows-ai preset whenever you need remote automation or AI runtime features.
All bundled third-party code (SDL, ImGui, ImGui Test Engine, Asar, nlohmann/json, cpp-httplib, nativefiledialog-extended) now lives under ext/ for easier vendoring and cleaner include paths.
./build/bin/yaze– full GUI editor with multi-session dockspace, theming, and ROM patching.- Web App (Preview) – browser-based editor at your deployed instance; see
docs/public/usage/web-app.mdfor details and limitations. ./build/bin/z3ed --tui– CLI/TUI companion for scripting, AI-assisted edits, and Asar workflows../build_ai/bin/yaze_test --unit|--integration|--e2e– structured test runner for quick regression checks.z3ed+ macOS automation – pair the CLI with sketchybar/yabai/skhd or Emacs/Spacemacs to drive ROM workflows without opening the GUI.
Typical commands:
# Launch GUI with a ROM
./build/bin/yaze zelda3.sfc
# Apply a patch via CLI
./build/bin/z3ed asar patch.asm --rom zelda3.sfc
# Run focused tests
cmake --build --preset mac-ai --target yaze_test
./build_ai/bin/yaze_test --unit./build_ai/bin/yaze_test --unitfor fast checks; add--integrationor--e2e --show-guifor broader coverage.ctest --preset devmirrors CI’s stable set;ctest --preset allruns the full matrix.- Set
YAZE_TEST_ROM_PATHor pass--rom-pathwhen a test needs a real ROM image.
- Human-readable docs live under
docs/public/with an entry point atdocs/public/index.md. - Run
doxygen Doxyfileto generate API + guide pages (build/docs/htmlandbuild/docs/latex). - Agent playbooks, architecture notes, and testing recipes now live in
docs/internal/.
- Review
CONTRIBUTING.mdand the build/test guides indocs/public/. - Conventional commit messages (
feat:,fix:, etc.) keep history clean; use topic branches for larger work. - Chat with the team on Oracle of Secrets Discord.
YAZE is licensed under the GNU GPL v3. See LICENSE for details and third-party notices.