41adb1b70ecec9752c53196157dfb735483e152a
- Added a comprehensive testing framework with support for unit, integration, and UI tests, improving overall test coverage and reliability. - Integrated ImGui Test Engine for UI testing, allowing for real-time feedback and visualization of test results. - Updated CMake configuration to conditionally include testing components based on build options, enhancing flexibility for developers. - Introduced a new command in the CLI for running asset loading tests on ROMs, providing a straightforward way to validate functionality. - Enhanced error handling and resource management during testing, ensuring stability and clarity in test execution. - Improved user interface with a dedicated test dashboard for monitoring test progress and results, enhancing developer experience.
Yet Another Zelda3 Editor
A modern, cross-platform editor for The Legend of Zelda: A Link to the Past ROM hacking.
- Platform: Windows, macOS, Linux
- Language: C++23 with modern CMake build system
- Features: ROM editing, Asar 65816 assembly patching, ZSCustomOverworld v3, GUI docking
Key Features
- Asar Integration: Apply 65816 assembly patches and extract symbols
- ZSCustomOverworld v3: Enhanced overworld editing capabilities
- Message Editing: Advanced text editing with real-time preview
- GUI Docking: Flexible workspace management
- Modern CLI: Enhanced z3ed tool with interactive TUI
Takes inspiration from Hyrule Magic and ZScream
Building and Installation
Quick Build
git clone --recurse-submodules https://github.com/scawful/yaze.git
cd yaze
cmake --preset default
cmake --build --preset default
Targets
- yaze: GUI Editor Application
- z3ed: Command Line Interface with Asar support
- yaze_c: C Library
- yaze_test: Unit Tests
Asar Examples
# Apply assembly patch
z3ed asar patch.asm --rom=zelda3.sfc
# Extract symbols
z3ed extract patch.asm
# Interactive TUI
z3ed --tui
See build-instructions.md for detailed setup information.
Documentation
- Getting Started - Setup and basic usage
- Asar Integration - Assembly patching and symbol extraction
- Build Instructions - Detailed build guide
- Contributing - How to contribute
- Documentation Index - Complete documentation overview
License
YAZE is distributed under the GNU GPLv3 license.
SDL2, ImGui and Abseil are subject to respective licenses.
Screenshots
Description
Languages
C++
85.8%
JavaScript
3.7%
Assembly
2.3%
CMake
2%
Shell
1.6%
Other
4.6%