4.3 KiB
4.3 KiB
Yaze Documentation
Welcome to the Yaze documentation. This cross-platform Zelda 3 ROM editor is built with C++20, SDL2, and ImGui, designed to be compatible with ZScream projects.
Quick Start
- Getting Started - Basic setup and usage
- Build Instructions - How to build yaze
- Contributing - How to contribute to the project
Core Documentation
Architecture & Infrastructure
- Infrastructure - Project structure and architecture
- Assembly Style Guide - 65816 assembly coding standards
Editors
Dungeon Editor
- Dungeon Editor Guide - Complete dungeon editing guide
- Dungeon Editor Design Plan - Architecture and development guide
- Dungeon Integration Tests - Testing framework
Overworld Editor
- Overworld Loading Guide - ZScream vs Yaze implementation
- Overworld Expansion - ZSCustomOverworld features
Graphics & UI
- Canvas Interface Refactoring - Canvas system architecture
- Canvas Migration - Migration guide for canvas changes
Testing
- Integration Test Guide - Comprehensive testing framework
Project Status
Current Version: 0.2.2 (12-31-2024)
✅ Completed Features
- Dungeon Editor: Full dungeon editing with object rendering, sprite management, and room editing
- Overworld Editor: Complete overworld editing with ZSCustomOverworld v2/v3 support
- Canvas System: Refactored pure function interface with backward compatibility
- Graphics System: Optimized rendering with caching and performance monitoring
- Integration Tests: Comprehensive test suite for all major components
🔄 In Progress
- Sprite Builder System: Custom sprite creation and editing
- Emulator Subsystem: SNES emulation for testing modifications
- Music Editor: Music data editing interface
⏳ Planned
- Advanced Object Editing: Multi-object selection and manipulation
- Plugin System: Modular architecture for community extensions
- Performance Optimizations: Further rendering and memory optimizations
Key Features
Dungeon Editing
- Room object editing with real-time rendering
- Sprite management (enemies, NPCs, interactive objects)
- Item placement (keys, hearts, rupees, etc.)
- Entrance/exit management and room connections
- Door management with key requirements
- Chest management with treasure placement
- Undo/redo system with comprehensive state management
Overworld Editing
- ZSCustomOverworld v2/v3 compatibility
- Custom background colors and overlays
- Map properties and metadata editing
- Sprite positioning and management
- Tile16 editing and graphics management
Graphics System
- High-performance object rendering with caching
- SNES palette support and color management
- Graphics sheet editing and management
- Real-time preview and coordinate system management
Compatibility
ROM Support
- Vanilla ROMs: Original Zelda 3 ROMs (US/JP)
- ZSCustomOverworld v2: Enhanced overworld features
- ZSCustomOverworld v3: Advanced features with overlays and custom graphics
Platform Support
- Windows: Full support with native builds
- macOS: Full support with native builds
- Linux: Full support with native builds
- iOS: Basic support (work in progress)
Development
Architecture
- Modular Design: Component-based architecture for maintainability
- Cross-Platform: SDL2 and ImGui for consistent UI across platforms
- Modern C++: C++20 features for performance and safety
- Testing: Comprehensive integration test suite
Contributing
See Contributing for guidelines on:
- Code style and standards
- Testing requirements
- Pull request process
- Development setup
Community
- Discord: Oracle of Secrets Discord
- GitHub: Yaze Repository
- Issues: Report bugs and request features on GitHub
License
This project is licensed under the terms specified in the LICENSE file.
Last updated: December 2024