From 0e0664b17aa1c220a46504de3707fcbc65de45b2 Mon Sep 17 00:00:00 2001 From: scawful Date: Thu, 8 Aug 2024 00:42:53 -0400 Subject: [PATCH] update infra docs --- docs/infrastructure.md | 68 +++++++++++++----------------------------- 1 file changed, 20 insertions(+), 48 deletions(-) diff --git a/docs/infrastructure.md b/docs/infrastructure.md index 7561f210..f17dbc5e 100644 --- a/docs/infrastructure.md +++ b/docs/infrastructure.md @@ -2,9 +2,26 @@ For developers to reference. +## 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 | +| Asar Patch | -asar | asm_file rom_file | In progress | +| 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 | + ## Targets - **yaze**: Desktop application for Windows/macOS/Linux +- **z3ed**: Command Line Interface - **yaze_c**: C Library - **yaze_py**: Python Module - **yaze_ext**: Extensions library @@ -12,8 +29,7 @@ For developers to reference. ## Directory Structure -- **.github/workflows**: Contains `yaze_test` workflow config. -- **assets**: Hosts assets like fonts. +- **assets**: Hosts assets like fonts, icons, assembly source, etc. - **cmake**: Contains CMake configurations. - **docs**: Contains documentation for users and developers. - [Getting Started](./getting-started.md) @@ -24,14 +40,7 @@ For developers to reference. - **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 + - **lib**: Contains the dependencies as git submodules - **test**: Contains testing interface `yaze_test` ### Flow of Control @@ -47,21 +56,7 @@ For developers to reference. - Renders the output to the screen. - Handles the teardown of SDL and ImGui resources. - [app/editor/master_editor.cc](../src/app/editor/master_editor.cc) - - Handles the main menu bar. - - File - - Open - - Save - - Edit - - View - - Emulator - - HEX Editor - - Palette Editor - - Memory Viewer - - ImGui Demo - - GUI Tools - - Runtime Metrics - - Style Editor - - Help + - Handles the main menu bar - Handles `absl::Status` errors as popups delivered to the user. - Update all the editors in a tab view. - [app/editor/assembly_editor.cc](../src/app/editor/assembly_editor.cc) @@ -75,36 +70,13 @@ For developers to reference. ## ROM - [app/rom.cc](../src/app/rom.cc) - [app/rom.h](../src/app/rom.h) ---- This `ROM` class provides methods to manipulate and access data from a ROM. - ## Bitmap - [app/gfx/bitmap.cc](../src/app/gfx/bitmap.cc) - [app/gfx/bitmap.h](../src/app/gfx/bitmap.cc) ---- 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.