Files
yaze/docs/infrastructure.md
2023-10-20 11:36:50 -04:00

6.1 KiB

YAZE Infrastructure Overview

For developers to reference.

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
    • cli: Contains the command line interface z3ed
    • lib: Contains git submodule dependencies.
      • Abseil-cpp
      • Asar
      • ImGui
        • ImGuiFileDialog
        • ImGuiColorTextEdit
        • imgui_memory_editor
      • SDL2
  • test: Contains testing interface yaze_test

App Organization

Flow of Control

Overworld


  • Construction of Tile16 and Tile32
  • Save and Load Resources
    • Sprites
    • Entrances
    • Tilemaps

Bitmap


  • Initialization: Offers multiple constructors to create bitmaps using different data types.
  • Palette Application: Provides grayscale palettes and can convert SNESPalette to SDL_Palette.
  • Texture Handling: Can create and update textures based on SDL surfaces.
  • SDL Surface Management: Allows for the creation, modification, and saving of SDL surfaces.
  • Memory Management: Uses smart pointers for efficient memory utilization and cleanup.

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.