Add infrastructure doc for developers

This commit is contained in:
scawful
2023-10-20 02:53:40 -04:00
parent 73d93d213a
commit 32d20d3a04

52
docs/infrastructure.md Normal file
View File

@@ -0,0 +1,52 @@
# YAZE Infrastructure Overview
For developers to reference.
## Directory Structure
- **.github/workflows**: Contains workflow configuration for running yaze_test.
- **assets**: Hosts assets like fonts.
- **cmake**: Contains CMake configurations.
- **docs**: Stores documentation.
- **src**: Source files.
- **test**: Contains test files and configurations.
## Main Components
- `app` Namespace: Represents the GUI editor YAZE.
- `cli` Namespace: Represents the command line interface Z3ED.
## YAZE app
- **Core Namespace**:
- Contains fundamental functionalities.
- **Editor Namespace**:
- Represents the GUI view.
- Contains a class holding objects such as `zelda3::Overworld` and `gfx::Bitmap` for rendering and user input handling.
- **Gfx Namespace**:
- Handles graphics-related tasks.
- **Gui Namespace**:
- Manages GUI elements.
- **Zelda3 Namespace**:
- Holds business logic specific to Zelda3.
## 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.