feat: Implement ROM version management and proposal approval system
- Introduced `RomVersionManager` for managing ROM snapshots, including automatic backups, manual checkpoints, and corruption detection. - Added `ProposalApprovalManager` to facilitate collaborative proposal submissions and voting, enhancing team workflows. - Updated `CollaborationPanel` to integrate version management features, allowing users to track changes and manage proposals effectively. - Enhanced documentation to reflect new functionalities and usage instructions for version management and collaboration features.
This commit is contained in:
@@ -1,56 +1,65 @@
|
||||
# Getting Started
|
||||
|
||||
This software allows you to modify "The Legend of Zelda: A Link to the Past" (US or JP) ROMs. Built for compatibility with ZScream projects and designed to be cross-platform.
|
||||
This software allows you to modify "The Legend of Zelda: A Link to the Past" (US or JP) ROMs. It is built for compatibility with ZScream projects and designed to be cross-platform.
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. **Download** the latest release for your platform
|
||||
2. **Load ROM** via File > Open ROM
|
||||
3. **Select Editor** from the toolbar (Overworld, Dungeon, Graphics, etc.)
|
||||
4. **Make Changes** and save your project
|
||||
1. **Download** the latest release for your platform from the [releases page](https://github.com/scawful/yaze/releases).
|
||||
2. **Load ROM** via `File > Open ROM`.
|
||||
3. **Select an Editor** from the main toolbar (e.g., Overworld, Dungeon, Graphics).
|
||||
4. **Make Changes** and save your project.
|
||||
|
||||
## General Tips
|
||||
|
||||
- **Experiment Flags**: Enable/disable features in File > Options > Experiment Flags
|
||||
- **Backup Files**: Enabled by default - each save creates a timestamped backup
|
||||
- **Extensions**: Load custom tools via the Extensions menu (C library and Python module support)
|
||||
- **Experiment Flags**: Enable or disable new features in `File > Options > Experiment Flags`.
|
||||
- **Backup Files**: Enabled by default. Each save creates a timestamped backup of your ROM.
|
||||
- **Extensions**: Load custom tools via the `Extensions` menu (C library and Python module support is planned).
|
||||
|
||||
## Supported Features
|
||||
## Feature Status
|
||||
|
||||
| Feature | Status | Details |
|
||||
|---------|--------|---------|
|
||||
| Overworld Maps | ✅ Complete | Edit and save tile32 data |
|
||||
| OW Map Properties | ✅ Complete | Edit and save map properties |
|
||||
| OW Entrances | ✅ Complete | Edit and save entrance data |
|
||||
| OW Exits | ✅ Complete | Edit and save exit data |
|
||||
| OW Sprites | 🔄 In Progress | Edit sprite positions, add/remove sprites |
|
||||
| Dungeon Editor | 🔄 In Progress | View room metadata and edit room data |
|
||||
| Palette Editor | 🔄 In Progress | Edit and save palettes, palette groups |
|
||||
| Graphics Sheets | 🔄 In Progress | Edit and save graphics sheets |
|
||||
| Graphics Groups | ✅ Complete | Edit and save graphics groups |
|
||||
| Hex Editor | ✅ Complete | View and edit ROM data in hex |
|
||||
| Asar Patching | ✅ Complete | Apply Asar 65816 assembly patches to ROM |
|
||||
|---|---|---|
|
||||
| Overworld Editor | ✅ Complete | Full support for vanilla and ZSCustomOverworld v2/v3. |
|
||||
| Dungeon Editor | ✅ Complete | Stable, component-based editor for rooms, objects, and sprites. |
|
||||
| Tile16 Editor | ✅ Complete | Professional-grade tile editor with advanced palette management. |
|
||||
| Palette Editor | ✅ Complete | Edit and save all SNES palette groups. |
|
||||
| Graphics Editor | ✅ Complete | View and edit graphics sheets and groups. |
|
||||
| Sprite Editor | ✅ Complete | Edit sprite properties and attributes. |
|
||||
| Message Editor | ✅ Complete | Edit in-game text and dialogue. |
|
||||
| Hex Editor | ✅ Complete | View and edit raw ROM data. |
|
||||
| Asar Patching | ✅ Complete | Apply Asar 65816 assembly patches to the ROM. |
|
||||
|
||||
## Command Line Interface
|
||||
## Command-Line Interface (`z3ed`)
|
||||
|
||||
The `z3ed` CLI tool provides ROM operations:
|
||||
`z3ed` is a powerful, AI-driven CLI for inspecting and editing ROMs.
|
||||
|
||||
### AI Agent Chat
|
||||
Chat with an AI to perform edits using natural language.
|
||||
|
||||
```bash
|
||||
# Apply Asar assembly patch
|
||||
z3ed asar patch.asm --rom=zelda3.sfc
|
||||
# Start an interactive chat session with the AI agent
|
||||
z3ed agent chat --rom zelda3.sfc
|
||||
```
|
||||
> **Prompt:** "What sprites are in dungeon 2?"
|
||||
|
||||
# Extract symbols from assembly
|
||||
z3ed extract patch.asm
|
||||
### Resource Inspection
|
||||
Directly query ROM data.
|
||||
|
||||
# Validate assembly syntax
|
||||
z3ed validate patch.asm
|
||||
```bash
|
||||
# List all sprites in the Eastern Palace (dungeon 2)
|
||||
z3ed dungeon list-sprites --rom zelda3.sfc --dungeon 2
|
||||
|
||||
# Launch interactive TUI
|
||||
z3ed --tui
|
||||
# Get information about a specific overworld map area
|
||||
z3ed overworld describe-map --rom zelda3.sfc --map 80
|
||||
```
|
||||
|
||||
### Patching
|
||||
Apply assembly patches using the integrated Asar assembler.
|
||||
```bash
|
||||
# Apply an assembly patch to the ROM
|
||||
z3ed asar patch.asm --rom zelda3.sfc
|
||||
```
|
||||
|
||||
## Extending Functionality
|
||||
|
||||
YAZE provides a pure C library interface and Python module for building extensions and custom sprites without assembly. Load these under the Extensions menu.
|
||||
|
||||
This feature is still in development and not fully documented yet.
|
||||
YAZE is designed to be extensible. Future versions will support a full plugin architecture, allowing developers to create custom tools and editors. The C API, while available, is still under development.
|
||||
|
||||
@@ -1,42 +1,29 @@
|
||||
# yaze Documentation
|
||||
|
||||
Yet Another Zelda3 Editor - A comprehensive ROM editor for The Legend of Zelda: A Link to the Past.
|
||||
Welcome to the official documentation for yaze, a comprehensive ROM editor for The Legend of Zelda: A Link to the Past.
|
||||
|
||||
## Quick Start
|
||||
## Core Guides
|
||||
|
||||
- [Getting Started](01-getting-started.md) - Basic setup and usage
|
||||
- [Build Instructions](02-build-instructions.md) - Cross-platform build guide
|
||||
- [API Reference](04-api-reference.md) - C/C++ API documentation
|
||||
- [Getting Started](01-getting-started.md) - Basic setup and usage.
|
||||
- [Build Instructions](02-build-instructions.md) - How to build yaze on Windows, macOS, and Linux.
|
||||
- [z3ed CLI Guide](z3ed/README.md) - The AI-powered command-line interface.
|
||||
|
||||
## Development
|
||||
## Development & API
|
||||
|
||||
- [Testing Guide](A1-testing-guide.md) - Testing framework and best practices
|
||||
- [Platform Compatibility](B2-platform-compatibility.md) - Cross-platform support details
|
||||
- [Build Presets](B3-build-presets.md) - CMake preset usage guide
|
||||
- [Release Workflows](B4-release-workflows.md) - GitHub Actions release pipeline documentation
|
||||
- [Stability Improvements](B5-stability-improvements.md) - Performance optimizations and reliability enhancements
|
||||
- [API Reference](04-api-reference.md) - C/C++ API documentation for extensions.
|
||||
- [Testing Guide](A1-testing-guide.md) - The testing framework and best practices.
|
||||
- [Assembly Style Guide](E1-asm-style-guide.md) - 65816 assembly coding standards.
|
||||
- [Build Presets](B3-build-presets.md) - A guide to the CMake preset system.
|
||||
- [Release Workflows](B4-release-workflows.md) - GitHub Actions release pipeline documentation.
|
||||
|
||||
## Technical Documentation
|
||||
|
||||
### Assembly & Code
|
||||
- [Assembly Style Guide](E1-asm-style-guide.md) - 65816 assembly coding standards
|
||||
|
||||
### Editor Systems
|
||||
- [Dungeon Editor Master Guide](dungeon_editor_master_guide.md) - Complete dungeon editing guide
|
||||
|
||||
### Overworld System
|
||||
- [Overworld Loading](F1-overworld-loading.md) - ZSCustomOverworld v3 implementation
|
||||
|
||||
## Key Features
|
||||
|
||||
- Complete GUI editor for all aspects of Zelda 3 ROM hacking
|
||||
- Integrated Asar 65816 assembler for custom code patches
|
||||
- ZSCustomOverworld v3 support for enhanced overworld editing
|
||||
- Cross-platform support (Windows, macOS, Linux)
|
||||
- Modern C++23 codebase with comprehensive testing
|
||||
- **Windows Development**: Automated setup scripts, Visual Studio integration, vcpkg package management
|
||||
- **CMake Compatibility**: Automatic handling of submodule compatibility issues (abseil-cpp, SDL)
|
||||
- [Dungeon Editor Guide](D2-dungeon-editor-guide.md) - A master guide to the dungeon editing system.
|
||||
- [Canvas Guide](G2-canvas-guide.md) - The core GUI drawing and interaction system.
|
||||
- [Overworld Loading](F1-overworld-loading.md) - How vanilla and ZSCustomOverworld maps are loaded.
|
||||
- [Platform Compatibility](B2-platform-compatibility.md) - Cross-platform support details.
|
||||
- [Tile16 Editor Palette System](E7-tile16-editor-palette-system.md) - Design of the palette system.
|
||||
|
||||
---
|
||||
|
||||
*Last updated: December 2025 - Version 0.3.2*
|
||||
*Last updated: October 2025 - Version 0.3.2*
|
||||
|
||||
@@ -895,7 +895,9 @@ The AI response appears in your chat history and can reference specific details
|
||||
- **Multimodal Vision Testing**: Comprehensive test suite for Gemini vision capabilities with screenshot integration
|
||||
- **AI-Controlled GUI Automation**: Natural language parsing (`AIActionParser`) and test script generation (`GuiActionGenerator`) for automated tile placement
|
||||
- **gRPC Windows Build Optimization**: vcpkg integration for 10-20x faster Windows builds, removed abseil-cpp submodule
|
||||
- **Collaboration UI Panel**: New `CollaborationPanel` widget with ROM sync history, snapshot gallery, and proposal management
|
||||
- **ROM Version Management System**: `RomVersionManager` with automatic snapshots, safe points, corruption detection, and rollback capabilities
|
||||
- **Proposal Approval Framework**: `ProposalApprovalManager` with host/majority/unanimous voting modes to protect ROM from unwanted changes
|
||||
- **Collaboration UI Panel**: `CollaborationPanel` widget with version history, ROM sync tracking, snapshot gallery, and approval workflow
|
||||
- **Improved Documentation**: Consolidated architecture, enhancement plans, and build instructions with JSON-first approach
|
||||
|
||||
## 12. Troubleshooting
|
||||
|
||||
Reference in New Issue
Block a user