- Introduced a new document detailing YAZE's dependency architecture, identifying optimization opportunities, and proposing a roadmap for reducing build times and improving maintainability. - Included a complete dependency graph, key findings, and a detailed refactoring plan to enhance modularity and reduce circular dependencies. - Document serves as a reference for future development and architectural decisions, aiming for 40-60% faster incremental builds. Benefits: - Provides a clear understanding of the current state and future direction for YAZE's architecture. - Facilitates better decision-making for developers regarding library organization and build optimization strategies.
5.6 KiB
5.6 KiB
yaze Documentation
Welcome to the official documentation for yaze, a comprehensive ROM editor for The Legend of Zelda: A Link to the Past.
A: Getting Started & Testing
- A1: Getting Started - Basic setup and usage
- A1: Testing Guide - Testing framework and best practices
- A2: Test Dashboard Refactoring - In-app test dashboard architecture
B: Build & Platform
- B1: Build Instructions - How to build yaze on Windows, macOS, and Linux
- B2: Platform Compatibility - Cross-platform support details
- B3: Build Presets - CMake preset system guide
- B4: Git Workflow - Branching strategy, commit conventions, and release process
- B5: Architecture and Networking - System architecture, gRPC, and networking
- B6: Zelda3 Library Refactoring - Core library modularization plan
C: z3ed CLI
- C1:
z3edAgent Guide - AI-powered command-line interface - C2: Testing Without ROMs - Mock ROM mode for testing and CI/CD
- C3: Agent Architecture - AI agent system architecture
- C4: z3ed Refactoring - CLI tool refactoring summary
- C5: z3ed Command Abstraction - Command system design
E: Development & API
- E1: Assembly Style Guide - 65816 assembly coding standards
- E2: Development Guide - Core architectural patterns, UI systems, and best practices
- E3: API Reference - C/C++ API documentation for extensions
- E4: Emulator Development Guide - SNES emulator subsystem implementation guide
- E5: Debugging Guide - Debugging techniques and workflows
- E6: Emulator Improvements - Core accuracy and performance improvements roadmap
- E7: Debugging Startup Flags - CLI flags for quick editor access and testing
- E8: Emulator Debugging Vision - Long-term vision for Mesen2-level debugging features
- E9: AI Agent Debugging Guide - Debugging AI agent integration
- E10: APU Timing Analysis - APU timing fix technical analysis
F: Technical Documentation
- F1: Dungeon Editor Guide - Master guide to the dungeon editing system
- F2: Tile16 Editor Palette System - Design of the palette system
- F3: Overworld Loading - How vanilla and ZSCustomOverworld maps are loaded
- F4: Overworld Agent Guide - AI agent integration for overworld editing
G: Graphics & GUI Systems
- G1: Canvas System and Automation - Core GUI drawing and interaction system
- G2: Renderer Migration Plan - Historical plan for renderer refactoring
- G3: Palette System Overview - SNES palette system and editor integration
- G3: Renderer Migration Complete - Post-migration analysis and results
- G4: Canvas Coordinate Fix - Canvas coordinate synchronization bug fix
- G5: GUI Consistency Guide - Card-based architecture and UI standards
H: Project Info
I: Roadmap & Vision
- I1: Roadmap - Current development roadmap and planned releases
- I2: Future Improvements - Long-term vision and aspirational features
R: ROM Reference
- R1: A Link to the Past ROM Reference - ALTTP ROM structures, graphics, palettes, and compression
Documentation Standards
Naming Convention
- A-series: Getting Started & Testing
- B-series: Build, Platform & Git Workflow
- C-series: CLI Tools (
z3ed) - E-series: Development, API & Emulator
- F-series: Feature-Specific Technical Docs
- G-series: Graphics & GUI Systems
- H-series: Project Info (Changelog, etc.)
- I-series: Roadmap & Vision
- R-series: ROM Technical Reference
File Naming
- Use descriptive, kebab-case names
- Prefix with series letter and number (e.g.,
E4-emulator-development-guide.md) - Keep filenames concise but clear
Organization Tips
For Doxygen integration, this index can be enhanced with:
@mainpagedirective to make this the main documentation page@defgroupto create logical groupings across files@tableofcontentsfor automatic TOC generation- See individual files for
@pageand@sectionusage
Doxygen Integration Tips
- Add a short
@mainpageblock todocs/index.mdso generated HTML mirrors the manual structure. - Define high-level groups with
@defgroup(getting_started,building,graphics_gui, etc.) and attach individual docs using@page ... @ingroup. - Use
@subpage,@section, and@subsectionwhen a document benefits from nested navigation. - Configure
DoxyfilewithUSE_MDFILE_AS_MAINPAGE = docs/index.md,FILE_PATTERNS = *.md *.h *.cc, andEXTENSION_MAPPING = md=C++to combine Markdown and source comments. - Keep Markdown reader-friendly—wrap Doxygen directives in comment fences (
/**…*/) so they are ignored by GitHub while remaining visible to the generator.
Last updated: October 13, 2025 - Version 0.3.2