Justin Scofield fe0dbd3642 Refactor graphics sheet management with singleton class
Refactor the handling of graphics sheets by introducing a singleton class `GraphicsSheetManager`. This centralizes the management of graphics sheets, replacing direct access through the `Rom` object. Key changes include:

- Updated various methods across multiple classes to use `GraphicsSheetManager::GetInstance()` for accessing and manipulating graphics sheets.
- Introduced standalone functions `LoadLinkGraphics`, `LoadAllGraphicsData`, and `SaveAllGraphicsData` for loading and saving graphics data.
- Refactored the `Rom` class to remove methods and member variables related to graphics sheet management.
- Updated `OverworldEditor` to use `std::array` for `maps_bmp_` and added error handling for `std::bad_alloc` exceptions.
- Improved code modularity and error handling throughout the application.
2025-01-04 20:04:00 -05:00
2024-12-31 20:52:08 -05:00
2024-12-31 15:02:35 -05:00
2024-12-31 15:04:05 -05:00
2024-12-31 20:25:05 -05:00
2024-08-30 11:17:33 -04:00

Yet Another Zelda3 Editor

  • Platform: Windows, macOS, iOS, GNU/Linux
  • Dependencies: SDL2, ImGui, abseil-cpp

Description

General purpose editor for The Legend of Zelda: A Link to the Past for the Super Nintendo.

Provides bindings in C and Python for building custom tools and utilities.

Takes heavy inspiration from ALTTP community efforts such as Hyrule Magic and ZScream

Building and installation

CMake is required to build yaze

  1. Clone the repository
  2. Create the build directory and configuration
  3. Build and run the application
  4. (Optional) Run the tests
  git clone --recurse-submodules https://github.com/scawful/yaze.git 
  cmake -S . -B build
  cmake --build build

By default this will build all targets.

  • yaze: Editor Application
  • yaze_c: C Library
  • yaze_emu: SNES Emulator
  • yaze_py: Python Module
  • yaze_test: Unit Tests
  • z3ed: Command Line Interface

Dependencies are included as submodules and will be built automatically. For those who want to reduce compile times, consider installing the dependencies on your system. See build-instructions.md for more information.

Documentation

  • For users, please refer to getting_started.md for instructions on how to use yaze.
  • For developers, please refer to the documentation for information on the project's infrastructure.

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%