6f02852d3fd0e835c39b56e5e63434ce0635e348
- Added a new `session_types` module to encapsulate session-related structures and logic, including `EditorSet` and `RomSession`. - Refactored `EditorManager` to utilize `SessionCoordinator` for session management, enhancing modularity and clarity. - Updated various methods to replace direct references to current ROM and editor sets with calls to `SessionCoordinator`, improving session handling. - Removed redundant session management logic from `EditorManager`, delegating responsibilities to `SessionCoordinator`. Benefits: - Streamlines session management, making it easier to handle multiple sessions and their associated editors. - Enhances code maintainability by centralizing session-related logic and reducing coupling within the `EditorManager`. - Improves overall architecture by promoting a clearer separation of concerns between session management and editor functionality.
yaze - Yet Another Zelda3 Editor
A modern, cross-platform editor for The Legend of Zelda: A Link to the Past ROM hacking, built with C++23 and featuring complete Asar 65816 assembler integration.
Version 0.3.2 - Release
z3ed agent - AI-powered CLI assistant
- AI-assisted ROM hacking with ollama and Gemini support
- Natural language commands for editing and querying ROM data
- Tool calling for structured data extraction and modification
- Interactive chat with conversation history and context
ZSCustomOverworld v3
- Enhanced overworld editing capabilities
- Advanced map properties and metadata support
- Custom graphics support and tile management
- Improved compatibility with existing projects
Asar 65816 Assembler Integration
- Cross-platform ROM patching with assembly code support
- Symbol extraction with addresses and opcodes from assembly files
- Assembly validation with comprehensive error reporting
- Modern C++ API with safe memory management
Advanced Features
- Theme Management: Complete theme system with 5+ built-in themes and custom theme editor
- Multi-Session Support: Work with multiple ROMs simultaneously in docked workspace
- Enhanced Welcome Screen: Themed interface with quick access to all editors
- Message Editing: Enhanced text editing interface with real-time preview
- GUI Docking: Flexible workspace management with customizable layouts
- Modern CLI: Enhanced z3ed tool with interactive TUI and subcommands
- Cross-Platform: Full support for Windows, macOS, and Linux
Quick Start
Build
# Clone with submodules
git clone --recursive https://github.com/scawful/yaze.git
cd yaze
# Build with CMake
cmake --preset debug # macOS
cmake -B build && cmake --build build # Linux/Windows
# Windows-specific
scripts\verify-build-environment.ps1 # Verify your setup
cmake --preset windows-debug # Basic build
cmake --preset windows-ai-debug # With AI features
cmake --build build --config Debug # Build
Applications
- yaze: Complete GUI editor for Zelda 3 ROM hacking
- z3ed: Command-line tool with interactive interface
- yaze_test: Comprehensive test suite for development
Usage
GUI Editor
Launch the main application to edit Zelda 3 ROMs:
- Load ROM files using native file dialogs
- Edit overworld maps, dungeons, sprites, and graphics
- Apply assembly patches with integrated Asar support
- Export modifications as patches or modified ROMs
Command Line Tool
# Apply assembly patch
z3ed asar patch.asm --rom=zelda3.sfc
# Extract symbols from assembly
z3ed extract patch.asm
# Interactive mode
z3ed --tui
C++ API
#include "yaze.h"
// Load ROM and apply patch
yaze_project_t* project = yaze_load_project("zelda3.sfc");
yaze_apply_asar_patch(project, "patch.asm");
yaze_save_project(project, "modified.sfc");
Documentation
- Getting Started - Setup and basic usage
- Build Instructions - Building from source
- API Reference - Programming interface
- Contributing - Development guidelines
Supported Platforms
- Windows (MSVC 2019+, MinGW)
- macOS (Intel and Apple Silicon)
- Linux (GCC 13+, Clang 16+)
ROM Compatibility
- Original Zelda 3 ROMs (US/Japan versions)
- ZSCustomOverworld v2/v3 enhanced overworld features
- Community ROM hacks and modifications
Contributing
See Contributing Guide for development guidelines.
Community: Oracle of Secrets Discord
License
GNU GPL v3 - See LICENSE for details.
🙏 Acknowledgments
Takes inspiration from:
- Hyrule Magic - Original Zelda 3 editor
- ZScream - Dungeon editing capabilities
- Asar - 65816 assembler integration
📸 Screenshots
Ready to hack Zelda 3? Get started now!
Description
Languages
C++
85.8%
JavaScript
3.7%
Assembly
2.3%
CMake
2%
Shell
1.6%
Other
4.6%