scawful 4c6342cb73 Refactor UnpackBppTile and PackBppTile functions for clarity and correctness
- 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.
2025-09-25 11:16:13 -04:00
2024-12-31 15:04:05 -05:00

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

License

YAZE is distributed under the GNU GPLv3 license.

SDL2, ImGui and Abseil are subject to respective licenses.

Screenshots

image

image

image

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%