scawful 2b11338e20 Update version to 0.3.2 and enhance stability across platforms
- Bump project version to 0.3.2 in CMakeLists.txt, vcpkg.json, and relevant headers.
- Increase Windows stack size to 8MB to prevent stack overflow during asset loading.
- Isolate development utilities from CI builds to ensure cleaner release artifacts.
- Implement comprehensive bounds checking and fix segmentation faults in the graphics system.
- Update documentation to reflect new build instructions and stability improvements.
2025-09-29 15:47:14 -04:00
2024-12-31 15:04:05 -05:00

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.

Build Status License: GPL v3

Version 0.3.2 - Release

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

ZSCustomOverworld v3

  • Enhanced overworld editing capabilities
  • Advanced map properties and metadata support
  • Custom graphics support and tile management
  • Improved compatibility with existing projects

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

🛠️ Technical Improvements

  • Modern CMake 3.16+: Target-based configuration and build system
  • CMakePresets: Development workflow presets for better productivity
  • Cross-platform CI/CD: Automated builds and testing for all platforms
  • Professional packaging: NSIS, DMG, and DEB/RPM installers
  • Enhanced testing: ROM-dependent test separation for CI compatibility

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

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

Complete Documentation

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:

📸 Screenshots

YAZE GUI Editor

Dungeon Editor

Overworld Editor


Ready to hack Zelda 3? Get started now!

Description
Yet Another Zelda3 Editor
Readme 34 MiB
Languages
C++ 85.8%
JavaScript 3.7%
Assembly 2.3%
CMake 2%
Shell 1.6%
Other 4.6%