Commit Graph

215 Commits

Author SHA1 Message Date
scawful
fabf0c9e51 feat: Implement proposal loading from disk in ProposalRegistry and enhance agent command handling 2025-10-01 20:13:00 -04:00
scawful
12dc71c444 feat: Enhance PerformanceProfiler to handle shutdown state and prevent crashes during destruction 2025-10-01 19:50:44 -04:00
scawful
0b62bcbda0 feat: Implement ProposalDrawer for managing agent proposals with UI controls 2025-10-01 19:38:08 -04:00
scawful
02c6985201 feat: Enhance ROM loading options and proposal management
- Introduced `RomLoadOptions` struct to manage various loading configurations for ROM files, including options for stripping headers, populating metadata, and loading Zelda 3 content.
- Updated `Rom::LoadFromFile` and `Rom::LoadFromData` methods to accept `RomLoadOptions`, allowing for more flexible ROM loading behavior.
- Implemented `MaybeStripSmcHeader` function to conditionally remove SMC headers from ROM data.
- Added new command handler `RomInfo` to display basic ROM information, including title and size.
- Created `ProposalRegistry` class to manage agent-generated proposals, including creation, logging, and status updates.
- Enhanced CLI commands to support proposal listing and detailed diff viewing, improving user interaction with agent-generated modifications.
- Updated resource catalog to include new actions for ROM info and agent proposal management.
2025-10-01 18:18:48 -04:00
scawful
04a4d04f4e feat(cli): Enhance CLI with resource catalog and sandbox management
- Added resource catalog for introspecting CLI resources, including schemas for palettes, ROMs, patches, overworlds, dungeons, and agents.
- Implemented serialization methods for resource schemas in both JSON and YAML formats.
- Introduced RomSandboxManager to manage sandboxed ROM copies, allowing for safe experimentation with ROM modifications.
- Updated ModernCLI to include new commands for palette management and enhanced help output.
- Added unit tests for resource catalog serialization and schema validation.
2025-10-01 14:34:58 -04:00
scawful
4df97fb812 Refactor Windows build instructions and remove legacy scripts
- Updated `02-build-instructions.md` to enhance clarity and organization, including renaming sections for better understanding.
- Removed outdated automated setup scripts (`build-windows.bat`, `build-windows.ps1`, `setup-windows-dev.ps1`, and `validate-windows-build.ps1`) to streamline the build process.
- Introduced optional vcpkg setup for SDL2 dependency management, emphasizing the use of bundled dependencies by default.
- Improved documentation for Visual Studio CMake workflow, highlighting the recommended approach for building the project.
- Consolidated and clarified command line build instructions, ensuring a more straightforward setup experience for developers.
2025-10-01 09:48:05 -04:00
scawful
508c5402ed Enhance documentation for E2E GUI testing framework and Tile16 editor palette system
- Added comprehensive sections on the E2E GUI testing framework in `A1-testing-guide.md`, detailing architecture, test writing, and execution.
- Introduced a new document `E7-tile16-editor-palette-system.md` outlining the redesign and implementation of the Tile16 editor palette system, including problem analysis, solution architecture, and UI/UX refactoring.
- Updated `E6-z3ed-cli-design.md` with recent refactoring improvements and code quality enhancements for the z3ed CLI tool.
- Expanded the YAZE development tracker in `yaze.org` to reflect ongoing issues and features related to the Tile16 editor and E2E testing.
2025-10-01 09:23:59 -04:00
scawful
ba50d89e7d Update z3ed CLI tool and project build configuration
- Updated `.clang-tidy` and `.clangd` configurations for improved code quality checks and diagnostics.
- Added new submodules for JSON and HTTP libraries to support future features.
- Refined README and documentation files to standardize naming conventions and improve clarity.
- Introduced a new command palette in the CLI for easier command access and execution.
- Implemented various CLI handlers for managing ROM, sprites, palettes, and dungeon functionalities.
- Enhanced the TUI components for better user interaction and command execution.
- Added AI service integration for generating commands based on user prompts, expanding the CLI's capabilities.
2025-10-01 08:57:10 -04:00
scawful
dcfdcf71d3 Remove outdated performance analysis documents
- Deleted the `dungeon_editor_bottleneck_analysis.md`, `editor_performance_monitoring_setup.md`, `lazy_loading_optimization_summary.md`, and `overworld_optimization_status.md` files as they are no longer relevant to the current optimization strategies and performance monitoring efforts.
- This cleanup helps streamline the documentation and focuses on the most up-to-date performance insights and optimization techniques.
2025-09-30 19:31:18 -04:00
scawful
f461fb63d1 Add comprehensive Canvas guide and refactor documentation
- Introduced a new `CANVAS_GUIDE.md` file detailing the Canvas system, including core concepts, usage patterns, and features such as tile painting, selection, and custom overlays.
- Created `CANVAS_REFACTORING_STATUS.md` to summarize the current state of refactoring efforts, including completed tasks and outstanding issues.
- Enhanced `overworld_editor` functionality by implementing critical fixes for rectangle selection and painting, ensuring proper handling of large map boundaries.
- Updated `canvas_utils.h` to include configuration options for rectangle clamping, preventing wrapping issues during tile selection.
- Refactored `canvas.cc` and `canvas.h` to improve method signatures and documentation, facilitating better understanding and usage of the Canvas API.
- Improved overall documentation structure for clarity and ease of access, consolidating multiple files into focused references.
2025-09-30 16:24:25 -04:00
scawful
cfbeef333b Implement file dialog fallback for minimal builds on Windows
- Fixed non-functional file dialogs in minimal builds by implementing a Windows COM-based fallback for file open, save, and folder selection dialogs.
- Ensured dialogs work correctly regardless of NFD (Native File Dialog) availability, enhancing user experience across all Windows builds.
2025-09-29 15:53:49 -04:00
scawful
2b11338e20 Update version to 0.3.2 and enhance stability across platforms
- Bump project version to 0.3.2 in CMakeLists.txt, vcpkg.json, and relevant headers.
- Increase Windows stack size to 8MB to prevent stack overflow during asset loading.
- Isolate development utilities from CI builds to ensure cleaner release artifacts.
- Implement comprehensive bounds checking and fix segmentation faults in the graphics system.
- Update documentation to reflect new build instructions and stability improvements.
2025-09-29 15:47:14 -04:00
scawful
22297402fc Implement comprehensive atlas rendering system and performance optimizations
- Introduced the AtlasRenderer class for efficient texture management and batch rendering, significantly reducing draw calls.
- Added RenderTilesBatch function in Tilemap for rendering multiple tiles in a single operation, enhancing performance.
- Implemented memory management features including automatic atlas defragmentation and UV coordinate mapping.
- Integrated performance monitoring dashboard to track atlas statistics and rendering efficiency.
- Developed a benchmarking suite to validate performance improvements and ensure accuracy in rendering speed.
- Enhanced existing graphics components to utilize the new atlas rendering system, improving overall responsiveness in the YAZE editor.
2025-09-29 00:03:43 -04:00
scawful
91a6a49d1a Add comprehensive analysis of ZScream vs YAZE overworld implementations
- Introduced a detailed comparison document highlighting the functional equivalence between ZScream (C#) and YAZE (C++) overworld loading logic.
- Verified key areas such as tile loading, expansion detection, map decompression, and coordinate calculations, confirming consistent behavior across both implementations.
- Documented differences and improvements in YAZE, including enhanced error handling and memory management.
- Provided validation results from integration tests ensuring data integrity and compatibility with existing ROMs.
2025-09-28 22:49:29 -04:00
scawful
c1902687c5 Add comprehensive YAZE Overworld Testing Guide and test scripts
- Introduced a detailed documentation guide for testing the YAZE overworld implementation, covering unit tests, integration tests, end-to-end tests, and golden data validation.
- Added a new script to orchestrate the complete testing workflow, including building the golden data extractor, running tests, and generating reports.
- Implemented new test files for end-to-end testing and integration testing, ensuring compatibility with ZScream logic and validating overworld data integrity.
- Enhanced the Overworld class with additional methods for expanded tile and entrance handling, improving test coverage and functionality.
2025-09-28 21:47:22 -04:00
scawful
a7efecf830 Remove outdated documentation files for vcpkg integration and Visual Studio setup
- Deleted `vcpkg-integration.md`, `vcpkg-triplet-setup.md`, `visual-studio-setup.md`, and `windows-development-guide.md` to streamline documentation and eliminate redundancy.
- These files were replaced by more concise and updated build instructions, ensuring users have access to the latest setup information.
2025-09-28 15:19:46 -04:00
scawful
6cb10aac47 Enhance CI testing framework and documentation
- Updated CI workflow to include the new MessageTest in core tests and refined additional unit tests for better information capture.
- Introduced a simplified CI test executable (`yaze_test_ci.cc`) to improve reliability by excluding ROM-dependent and E2E tests.
- Expanded documentation to detail the testing system, including categories, execution methods, and configuration options for local and CI environments.
- Improved CMake configuration to differentiate between minimal and full-featured test builds, ensuring appropriate test execution based on the build type.
2025-09-28 15:17:38 -04:00
scawful
e10d29b802 Update YAZE project configuration and build instructions
- Increased warning level to Level4 in YAZE.vcxproj for better code quality checks.
- Enhanced preprocessor definitions to address C++23 deprecation warnings and improve compatibility with Clang.
- Added additional compiler options for better build performance and compatibility.
- Updated build instructions to recommend Clang for Windows, highlighting its advantages over MSVC.
- Included detailed setup options for both Clang and MSVC, along with troubleshooting tips for common issues.
2025-09-28 14:47:54 -04:00
scawful
cb107ae69c Remove PNG and ZLIB support from the project
- Eliminated all references to PNG and ZLIB dependencies in CMake configuration and project files.
- Updated documentation to reflect the removal of PNG support and related functionalities.
- Adjusted build scripts and source files to remove unused code related to PNG handling, ensuring a cleaner codebase.
2025-09-28 12:03:29 -04:00
scawful
f321b2350c Revise Visual Studio setup documentation and enhance project generation script
- Updated the Visual Studio setup guide to recommend using a project generation script for easier configuration.
- Added detailed instructions for the new script, including features and usage examples.
- Improved the script to check for vcpkg installation and automatically install dependencies if missing.
- Introduced a test script to verify the project generation process with different configurations.
- Enhanced error handling and output messages in the project generation script for better user experience.
2025-09-28 11:02:25 -04:00
scawful
20a93bc491 Add SDL2main support for Windows builds in CMake configuration
- Updated the CMake configuration to include SDL2main for Windows builds when using the bundled SDL.
- Added a definition to handle SDL main entry point, improving compatibility for Windows applications.
- Updated changelog to reflect the new support for SDL2main in version 0.3.1.
2025-09-28 10:49:46 -04:00
scawful
49c36c457e Update build instructions and project configurations for improved clarity and integration
- Changed the output directory for Doxygen documentation to 'docs/' for better organization.
- Updated Visual Studio project generation command to use Python for enhanced vcpkg integration.
- Revised build instructions to clarify the use of vcpkg and added fallback mechanisms for CI/CD workflows.
- Updated subproject commit IDs for various libraries to ensure consistency across dependencies.
2025-09-28 02:42:17 -04:00
scawful
1cce652cf4 Update build instructions for Visual Studio project generation and vcpkg integration
- Changed the project file generation command from PowerShell to Python for better integration with vcpkg.
- Enhanced documentation to clarify automatic vcpkg dependency management for zlib, libpng, and SDL2.
- Added note that generated project files will remain in sync with CMake configuration.
2025-09-28 02:09:16 -04:00
scawful
ab3272422e Remove Visual Studio project files and update documentation for automated setup
- Deleted `YAZE.sln` and `YAZE.vcxproj` files as they are now generated automatically.
- Updated the Windows development guide to reflect changes in project file generation and vcpkg integration.
- Enhanced troubleshooting section with common issues related to dependencies and project setup.
- Modified setup script messages to clarify the new workflow for opening and building the project in Visual Studio.
2025-09-28 02:08:42 -04:00
scawful
f59af42555 Update vcpkg commit ID across release workflows and add comprehensive documentation for release processes
- Updated the vcpkgGitCommitId to '2024.12.12' in release-complex.yml, release-simplified.yml, and release.yml for consistency.
- Added a new documentation file B4-release-workflows.md detailing the different release workflows, their purposes, features, and use cases.
- Updated index.md to include a link to the new release workflows documentation.
2025-09-28 01:52:17 -04:00
scawful
77b4e8cd40 Refactor Visual Studio solution and project files for improved organization and support
- Removed obsolete project entries from the solution file to streamline structure.
- Updated YAZE project configuration to enable vcpkg integration and multi-architecture support.
- Enhanced build scripts for Windows, including automated setup and testing processes.
- Added new documentation for Windows development setup and build instructions.
2025-09-28 00:34:20 -04:00
scawful
ed299300e3 Update build instructions and enhance Windows development setup
- Revised build instructions to include comprehensive Windows support with automated setup scripts and Visual Studio integration.
- Added detailed sections for Windows development, including recommended setup scripts and manual options for vcpkg integration.
- Improved clarity on build commands and troubleshooting steps for CMake and Visual Studio issues.
- Introduced new scripts for testing CMake configuration and streamlined project generation processes.
2025-09-28 00:00:12 -04:00
scawful
d244fc37c0 Add vcpkg triplet setup documentation for Windows
- Created a new document detailing the installation and configuration of the `x64-windows` triplet for building YAZE on Windows.
- Included multiple methods for triplet installation, common issues and solutions, and alternative triplet options.
- Provided verification steps and instructions for building YAZE using the configured triplet, enhancing clarity for developers.
2025-09-27 21:36:20 -04:00
scawful
8f8d2b7768 Enhance CI/CD integration for Visual Studio builds and update documentation
- Added a new workflow for validating Visual Studio builds on push and pull request events, ensuring that both x64 and x86 configurations are tested.
- Integrated vcpkg setup into the validation process to automatically manage dependencies.
- Implemented a PowerShell script for build validation, checking for executable creation and asset copying.
- Updated documentation to reflect the new CI/CD processes and automated validation features, improving clarity on build requirements and procedures.
- Refactored the EditorManager to streamline testing feature initialization, ensuring better control over testing capabilities.
2025-09-27 21:10:51 -04:00
scawful
4eaf1ffe00 Remove outdated B2 CI/CD fixes documentation to streamline project resources and focus on current build processes. 2025-09-27 21:07:03 -04:00
scawful
ab2198cde7 Add Visual Studio project files and enhance setup documentation
- Introduced `yaze.sln` and `yaze.vcxproj` files for easier integration with Visual Studio, supporting both x64 and x86 configurations.
- Updated the Visual Studio setup guide to reflect changes in project structure and provide clearer instructions for building and running the project.
- Enhanced asset management in the build process, ensuring automatic copying of necessary files during builds.
- Improved the setup script for vcpkg, adding checks for installation and dependencies, and clarifying user instructions for a smoother setup experience.
2025-09-27 21:03:00 -04:00
scawful
bd875c3c5f Refactor vcpkg integration and enhance Windows build documentation
- Removed unnecessary dependencies from vcpkg.json for a cleaner configuration.
- Updated sdl2.cmake to improve handling of ZLIB and PNG dependencies for minimal builds on Windows.
- Added a comprehensive Visual Studio setup guide to assist users in configuring the YAZE project on Windows, including prerequisites and troubleshooting tips.
- Improved app configuration to prevent conflicts with Google Test integration, ensuring a smoother testing experience.
2025-09-27 21:00:28 -04:00
scawful
4b898d7b00 Update Windows build instructions in documentation
- Clarified build commands for Windows, specifying the purpose of each preset.
- Added a new development build preset that includes Google Test and ROM testing.
- Enhanced documentation with a summary of build types for better user understanding.
2025-09-27 20:17:13 -04:00
scawful
5e45c94e59 Integrate vcpkg support for Windows builds and enhance documentation
- Added vcpkg integration in CMake for Windows, enabling automatic dependency management.
- Updated CMakePresets.json to include presets for debug and release builds with vcpkg.
- Created setup scripts for easy vcpkg installation on Windows.
- Enhanced documentation to guide users on vcpkg setup and usage with YAZE.
- Improved logging in Overworld class to track expanded tile flags during map assembly.
2025-09-27 20:05:00 -04:00
scawful
89396b1b57 Enhance Overworld Editor with v3 features and unified settings management
- Implemented full support for ZSCustomOverworld v3, including complex transition calculations and interactive overlays.
- Introduced a new unified settings table in OverworldEditorManager for streamlined management of toolsets and properties.
- Enhanced scratch space functionality with selection transfer capabilities between overworld and scratch slots.
- Removed the outdated ZEML system in favor of a pure ImGui layout for improved performance and maintainability.
- Updated changelog to reflect significant new features and improvements in the Overworld Editor.
2025-09-27 17:33:18 -04:00
scawful
7355294f49 Refactor Overworld Editor and enhance settings management for v3 features
- Removed the outdated ZEML layout file and associated references to streamline the OverworldEditor.
- Introduced the OverworldEditorManager class to encapsulate v3 settings management, improving code organization and maintainability.
- Updated the OverworldEditor to utilize ImGui for layout, enhancing user interaction and flexibility.
- Enhanced the changelog with detailed descriptions of new features and improvements, including a comprehensive undo/redo system and advanced palette management.
- Removed deprecated diagnostic patterns from the clangd configuration to improve code quality checks.
2025-09-27 15:47:22 -04:00
scawful
920e5002ee Update changelog for version 0.3.1 with minor bug fixes related to color themes, ZSCustomOverworld v3 item loading, and Tile16 selection. 2025-09-27 11:40:12 -04:00
scawful
83d31556bb Add clang-tidy configuration and update project version to 0.3.0
- Introduced a new .clang-tidy configuration file for improved code quality checks with a lenient setup.
- Updated Doxyfile to reflect the new project version 0.3.0 and set the output directory for documentation.
- Enhanced README and changelog with new features, including theme management and multi-session support.
- Improved CI workflow to run clang-tidy with specified configurations for better code analysis.
2025-09-26 19:42:09 -04:00
scawful
caffe59800 Update README and build instructions for clarity and organization
- Revised README to enhance feature descriptions and streamline sections for better readability.
- Updated build instructions to clarify platform-specific setup and improve the overall structure.
- Added new documentation files for platform compatibility and build presets, detailing native file dialog support and build configuration options.
- Removed outdated documentation related to overworld expansion to maintain relevance.
2025-09-26 15:00:57 -04:00
scawful
50f83e818c Update README and documentation for YAZE v0.3.0 release
- Revamped README to reflect the new branding and major features of YAZE, including complete Asar 65816 assembler integration and enhanced CLI tools.
- Added new documentation files for getting started, build instructions, Asar integration, and comprehensive testing guides.
- Removed outdated documentation and streamlined the structure for better navigation.
- Introduced a changelog to track version history and significant updates.
- Updated API reference and added detailed guides for dungeon and overworld editing functionalities.
2025-09-25 21:10:35 -04:00
scawful
fd538b8f31 Remove outdated dungeon integration tests documentation and introduce new dungeon object system documentation
- Deleted the `dungeon-integration-tests.md` file, which contained comprehensive integration tests for the dungeon object rendering system.
- Added `dungeon-object-system.md`, detailing the architecture, object types, placement processes, rendering pipeline, and user interface components of the YAZE Dungeon Object System.
- Enhanced the DungeonEditor and DungeonObjectSelector with improved UI methods and object selection callbacks for better user interaction and object management.
2025-09-25 19:19:32 -04:00
scawful
6779c4cc4a Remove outdated Canvas migration and refactoring documentation
- Deleted the `canvas-migration.md` and `canvas-refactor-summary.md` files as they are no longer relevant to the current codebase.
- These documents outlined previous strategies and issues related to the Canvas class, which have since been resolved through recent refactoring efforts.
2025-09-25 15:52:05 -04:00
scawful
e930789f4b Enhance CMake configuration and CI/CD workflows for improved testing
- Updated CMakeLists.txt to introduce options for enabling experimental tests and minimal CI builds.
- Modified CMakePresets.json to refine test presets, including stable and experimental test configurations.
- Enhanced CI workflows in ci.yml to streamline testing processes, ensuring stable tests are prioritized and experimental tests are run separately.
- Added new documentation files outlining the CI/CD testing strategy and testing categories for better clarity on testing practices.
- Improved test discovery in CMakeLists.txt to simplify labeling and enhance CI efficiency.
2025-09-25 09:39:33 -04:00
scawful
a1429a8199 Update README and documentation for v0.3.0 release
- Revamped README.md to provide a clearer overview of the project, including updated platform support, key features, and installation instructions.
- Added a new asar-integration.md file detailing the Asar 65816 assembler integration, including usage examples and API references.
- Updated changelog.md to reflect new features and improvements in version 0.3.0, including Asar integration, ZSCustomOverworld v3, and enhanced message editing.
- Revised getting-started.md to indicate the completion of Asar patching features and updated CLI command statuses.
- Enhanced index.md to include new documentation links and a summary of major new features in the latest release.
- Improved infrastructure.md to reflect the transition to C++23 and modern CMake practices.
2025-09-25 09:28:46 -04:00
scawful
a01200dd29 Update documentation and add index 2025-09-25 00:02:38 -04:00
scawful
7014d73e7b Add Comprehensive Dungeon Editor Design Plan
- Introduced a detailed design plan document for the Yaze Dungeon Editor, outlining the current architecture, main components, and core systems.
- Documented identified issues and applied fixes, including crash prevention and UI simplification, along with a roadmap for future development phases.
- Enhanced clarity on the implementation guidelines, testing strategies, and performance considerations to support ongoing development efforts.
- Established a structured approach for new developers to understand the codebase and contribute effectively to the project.
2025-09-24 23:53:29 -04:00
scawful
04909dc3d0 Add Comprehensive Guide for Yaze Dungeon Editor
- Introduced a new documentation file detailing the Yaze Dungeon Editor, covering its architecture, core components, coordinate system, object rendering system, user interface, and integration with ZScream.
- Included sections on usage examples, testing and validation strategies, and future enhancements to provide a complete overview of the editor's capabilities.
- Removed the outdated dungeon object rendering refactor documentation to streamline resources and focus on the comprehensive guide.
- Enhanced clarity and organization of the documentation to support both novice and expert users in effectively utilizing the dungeon editing tools.
2025-09-24 23:00:44 -04:00
scawful
912cc3fb56 Update overworld map properties and overlay functionality
- Changed the included assembly file for custom overworld to version 3 for improved features.
- Enhanced documentation in the overworld loading guide to clarify overlay effects and configurations.
- Refactored MapPropertiesSystem to support overlay previews and improved mosaic controls.
- Added functionality for loading vanilla overlays and displaying overlay descriptions in the editor.
- Updated UI components in OverworldEditor to integrate new overlay settings and preview options.
2025-09-24 20:16:53 -04:00
scawful
9a78f37105 Add documentation for dungeon object rendering refactor and integration test suite
- Created a comprehensive guide detailing the refactor of the dungeon object rendering system, transitioning from SNES emulation to direct ROM parsing for improved performance and maintainability.
- Documented the new architecture, including components like ObjectParser, ObjectRenderer, and Enhanced RoomObject, along with their features and implementation details.
- Added an integration test suite guide to validate ROM loading and overworld functionality, outlining test structure, execution, and best practices for adding new tests.
- Included an overworld loading guide comparing ZScream and Yaze implementations, highlighting key differences and common issues with solutions.
2025-09-24 19:06:11 -04:00
scawful
8b168864f3 Remove Python build option and update contributing documentation for clarity and structure 2025-08-21 18:58:56 -04:00