4c6342cb73155a14b83142e80a2b54aff3ef73c5
- Initialized the snes_tile8 structure to zero in UnpackBppTile for safety. - Reordered loops in UnpackBppTile to process rows before columns, improving readability. - Corrected bit manipulation logic in both UnpackBppTile and PackBppTile to ensure accurate color value handling. - Enhanced test cases for 2bpp and 4bpp tile unpacking to validate expected results, improving test coverage.
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%