Files
yaze/docs/infrastructure.md
2024-08-07 14:50:59 -04:00

3.7 KiB

YAZE Infrastructure Overview

For developers to reference.

Targets

  • yaze: Desktop application for Windows/macOS/Linux
  • yaze_c: C Library
  • yaze_py: Python Module
  • yaze_ext: Extensions library
  • yaze_test: Unit test executable

Directory Structure

  • .github/workflows: Contains yaze_test workflow config.
  • assets: Hosts assets like fonts.
  • cmake: Contains CMake configurations.
  • docs: Contains documentation for users and developers.
  • src: Contains source files.
    • app: Contains the GUI editor yaze
    • base: Contains the base data headers for yaze_c
    • cli: Contains the command line interface z3ed
    • ext: Contains the extensions library yaze_ext
    • py: Contains the Python module yaze_py
    • lib: Contains git submodule dependencies.
      • Abseil-cpp
      • Asar
      • ImGui
        • ImGuiFileDialog
        • ImGuiColorTextEdit
        • imgui_memory_editor
      • SDL2
  • test: Contains testing interface yaze_test

Flow of Control

ROM


This ROM class provides methods to manipulate and access data from a ROM.

Bitmap


This class is responsible for creating, managing, and manipulating bitmap data, which can be displayed on the screen using the ImGui library.

Z3ED cli

Command Arg Params Status
Apply BPS Patch -a rom_file bps_file In progress
Create BPS Patch -c bps_file src_file modified_file Not started
Open ROM -o rom_file Complete
Backup ROM -b rom_file [new_file] In progress
Expand ROM -x rom_file file_size Not started
Transfer Tile16 -t src_rom dest_rom tile32_id_list(csv) Complete
Export Graphics -e rom_file bin_file In progress
Import Graphics -i bin_file rom_file Not started
SNES to PC Address -s address Complete
PC to SNES Address -p address Complete

Further Development Ideas

  • Extend zelda3 namespace with additional functionalities.
  • Optimize program performance.
  • Introduce new features in the GUI editor.