Commit Graph

807 Commits

Author SHA1 Message Date
scawful
405fd43931 feat: Update AgentChatHistoryCodec to use JSON instead of gRPC for chat history management 2025-10-04 14:46:32 -04:00
scawful
ea40e676af feat: Implement AgentChatHistoryCodec for chat history persistence with JSON support 2025-10-04 14:39:53 -04:00
scawful
37e8e77376 feat: Introduce DungeonEditorV2 with component delegation for improved architecture
- Added DungeonEditorV2 to streamline dungeon editing by delegating tasks to specialized components.
- Implemented comprehensive integration tests to validate functionality and ensure proper ROM handling.
- Achieved 100% pass rate for all integration tests, enhancing reliability and performance of the editor.
- Updated test suite to include tests for the new editor, ensuring robust coverage and error handling.
2025-10-04 14:32:56 -04:00
scawful
820e4577df feat: Implement collaboration and multimodal functionality in AgentChatWidget 2025-10-04 14:14:26 -04:00
scawful
3735a0d4a7 feat: Enhance agent chat widget with history management and proposal handling 2025-10-04 14:05:36 -04:00
scawful
207b35df82 feat: Refactor agent chat widget handling and remove unused state variable 2025-10-04 13:48:01 -04:00
scawful
0b9c8900d3 feat: Update palette handling in dungeon editor and room rendering for improved graphics consistency 2025-10-04 03:11:34 -04:00
scawful
9d1f3a0cea feat: Add visual diagnostic tool for dungeon rendering, enabling texture previews, palette inspection, and tile analysis 2025-10-04 02:45:50 -04:00
scawful
d85974be60 feat: Refactor dungeon object selection and editing interfaces for improved usability 2025-10-04 01:23:43 -04:00
scawful
5419633c52 refactor: Improve code readability by applying consistent formatting and using absl::StrContains for string checks 2025-10-03 21:11:51 -04:00
scawful
c3eaace72c feat: Implement modular build system for Yaze
- Added option to enable modular build with `YAZE_USE_MODULAR_BUILD`.
- Updated CMake configuration to support modular libraries for core, editor, graphics, GUI, and emulator functionalities.
- Refactored existing libraries to separate concerns and improve build times.
- Introduced new utility library `yaze_util` for low-level utilities.
- Adjusted CI and release workflows to accommodate the new build system.
- Updated various source files to reflect new include paths and modular structure.
- Enhanced YAML configuration handling in the agent component.
2025-10-03 18:32:51 -04:00
scawful
3715ae98eb Enhance agent chat functionality with ROM context support and structured message rendering 2025-10-03 14:46:22 -04:00
scawful
208b9ade51 Integrate AI Agent Services and Chat Interface
- Added support for AI agent services, including `ConversationalAgentService`, to facilitate user interactions through a chat interface.
- Implemented `ChatTUI` for a terminal-based chat experience, allowing users to send messages and receive responses from the AI agent.
- Updated `EditorManager` to include options for displaying the agent chat widget and performance dashboard.
- Enhanced CMake configurations to include new source files for AI services and chat interface components.

This commit significantly expands the functionality of the z3ed system, paving the way for a more interactive and user-friendly experience in ROM hacking.
2025-10-03 12:39:48 -04:00
scawful
90ddc3d50c Refactor CLI Service Structure and Enhance AI Integration
- Restructured CLI service source files to improve organization, moving files into dedicated directories for better maintainability.
- Introduced new AI service components, including `AIService`, `MockAIService`, and `GeminiAIService`, to facilitate natural language command generation.
- Implemented `PolicyEvaluator` and `ProposalRegistry` for enhanced proposal management and policy enforcement in AI workflows.
- Updated CMake configurations to reflect new file paths and ensure proper linking of the restructured components.
- Enhanced test suite with new test workflow generation capabilities, improving the robustness of automated testing.

This commit significantly advances the architecture of the z3ed system, laying the groundwork for more sophisticated AI-driven features and streamlined development processes.
2025-10-03 09:54:27 -04:00
scawful
6b13c2ea0a Implement GUI Automation Test Commands and Refactor AsarWrapper Usage
- Added new test commands for GUI automation in `test_commands.cc`, including handling test runs, statuses, listings, and results.
- Refactored instances of `app::core::AsarWrapper` to `core::AsarWrapper` across multiple files for consistency.
- Updated CMake configuration to include new test command files.
- Modified integration and unit tests to reflect the changes in AsarWrapper usage.
- Ensured proper error handling and output formatting for test commands.
2025-10-02 19:33:05 -04:00
scawful
fdead0e9e5 feat: Enable conditional compilation for Policy Evaluation Framework in yaze target 2025-10-02 14:29:53 -04:00
scawful
0bc340e06d feat: Implement policy evaluation framework with YAML configuration and UI integration 2025-10-02 14:13:30 -04:00
scawful
b77bd201e2 feat: Implement widget ID registry for Overworld editor and add remote control test script 2025-10-02 10:48:23 -04:00
scawful
defdb3ea32 feat: Implement ROM merging in ProposalDrawer and integrate with EditorManager 2025-10-01 20:35:01 -04:00
scawful
0b62bcbda0 feat: Implement ProposalDrawer for managing agent proposals with UI controls 2025-10-01 19:38:08 -04:00
scawful
36ad718099 Refactor OverworldEditor copy functionality to use selected points
- Updated the `Copy` method in `OverworldEditor` to utilize selected points instead of tiles for copying tile16 IDs to the clipboard, enhancing the selection mechanism.
- Improved the logic for determining the width and height of the selection based on the selected points, ensuring accurate tile copying.
- Adjusted the `DrawSelectRect` method in `Canvas` to correctly calculate local map indices, refining the tile selection process.
- Added a new configuration option in `Canvas` to control clamping behavior for local maps, providing more flexibility in canvas settings.
2025-09-30 19:52:27 -04:00
scawful
5cc5c08122 Add Overworld accessors and enhance testing framework
- Introduced new methods in `Controller`, `EditorManager`, and `OverworldEditor` to access the `Overworld` instance, improving modularity and interaction with the overworld data.
- Added `GetTile` method in `Overworld` to retrieve tile data based on coordinates, enhancing functionality for tile manipulation.
- Implemented a new testing framework with automated GUI tests, including `CanvasSelectionTest` and `FrameworkSmokeTest`, to validate user interactions and ensure robustness.
- Updated `CMakeLists.txt` to include new test files and dependencies, streamlining the build process for testing.
- Refactored logging behavior to ensure proper file handling during logging operations, improving reliability in logging outputs.
2025-09-30 19:32:34 -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
991366113e Update canvas system with enhanced interaction and performance tracking features
- Introduced a new CanvasInteractionHandler for managing tile interactions, including painting and selection modes.
- Added CanvasContextMenu for improved user interaction with context-specific options.
- Implemented CanvasPerformanceIntegration to monitor and report performance metrics during canvas operations.
- Developed CanvasUsageTracker to track user interactions and usage patterns within the canvas.
- Refactored existing canvas utilities and integrated new modal systems for enhanced user experience.
- Updated CMake configuration to include new canvas components and ensure proper linking with existing libraries.
2025-09-30 13:10:32 -04:00
scawful
100fc23a2e Remove PerformanceMonitor and update references to PerformanceProfiler
- Deleted the PerformanceMonitor implementation and header files as functionality has been fully integrated into gfx::PerformanceProfiler.
- Updated all relevant source files to replace PerformanceMonitor and ScopedTimer with their gfx counterparts, ensuring consistent performance monitoring across the application.
2025-09-29 20:30:31 -04:00
scawful
62230fbe5c Remove Windows ARM64 build configuration and delete unused generate-vs-projects.py script
- Removed the Windows ARM64 configuration from the GitHub Actions release workflow to streamline the build process.
- Deleted the generate-vs-projects.py script as it was no longer needed for project setup, simplifying the codebase.
- Updated the OverworldEditor header to improve clarity by renaming a method parameter for better understanding.
- Refactored the Emulator class to enhance the rendering interface, improving the user experience in the emulator's GUI.
2025-09-29 20:23:17 -04:00
scawful
9db03906fa Refactor area size checks in OverworldEditor for ZSCustomOverworld v3 compatibility
- Simplified logic for determining area size usage by removing unnecessary condition for version check.
- Ensured consistent handling of area sizes across relevant methods in OverworldEditor, enhancing compatibility with different ROM versions.
2025-09-29 19:53:32 -04:00
scawful
f6f278bf65 Refactor OverworldEditor and Tile16Editor for enhanced functionality and user experience
- Removed unnecessary build flags for Yaze minimal builds in release.yml.
- Updated version number to 0.3.2 in yaze.h to reflect recent changes.
- Enhanced OverworldEditor with new method to scroll the blockset canvas to the currently selected tile, improving navigation.
- Implemented logic to handle area size checks for ZSCustomOverworld v3, ensuring compatibility with different ROM versions.
- Refactored tile selection and drawing logic in Tile16Editor for improved accuracy and user interaction.
- Updated context menu in OverworldEditor to include a refresh option for map changes, enhancing usability.
2025-09-29 18:56:41 -04:00
scawful
c7d7d2f614 Add scratch space functionality to OverworldEditor
- Introduced a new scratch space feature in OverworldEditor, allowing users to save, load, and clear selections in dedicated slots.
- Implemented methods for transferring selections between the overworld and scratch space, enhancing user interaction and flexibility.
- Added dynamic bitmap handling for scratch spaces, ensuring accurate visual representation of selected tiles.
- Refactored existing drawing methods to accommodate the new scratch space functionality, improving overall usability and performance.
2025-09-29 17:35:18 -04:00
scawful
7a14612f0e Refactor Tile16Editor and Bitmap palette handling for improved accuracy and stability
- Updated Tile16Editor to utilize a fixed height for the scrollable child window, enhancing user interface consistency.
- Simplified pixel data handling by removing unnecessary remapping for the display tile, ensuring accurate palette representation.
- Enhanced Bitmap palette application logic to directly use the specified index for 8-color palettes, preventing errors in color mapping.
- Improved error handling for palette length validation and ensured the complete palette is retained for compatibility with other editors.
2025-09-29 15:32:37 -04:00
scawful
3b59312b86 Enhance Tile16Editor with improved palette management and user interface updates
- Refactored palette synchronization to ensure consistent application of the complete 256-color overworld palette across all graphics.
- Implemented new methods for accurate palette slot mapping and sheet index retrieval, enhancing color alignment during tile editing.
- Updated the user interface for better visual hierarchy and modern styling, improving the overall user experience in the Tile16Editor.
- Enhanced logging for palette updates and tile interactions to provide clearer feedback and facilitate debugging.
2025-09-29 14:20:38 -04:00
scawful
fe7c65ef8a Implement critical updates to Tile16Editor for enhanced user experience and palette management
- Modified tile16 editing workflow to prevent immediate ROM updates, allowing users to preview changes before saving.
- Improved tile8 selection logic with right-click functionality to pick tiles from tile16, enhancing usability.
- Enhanced palette synchronization to ensure consistent application across all graphics, aligning with the overworld palette.
- Updated logging for tile interactions and palette changes to provide better feedback and debugging insights.
2025-09-29 12:11:15 -04:00
scawful
2d3a615fb4 Refactor Tile16Editor for improved tile selection and palette synchronization
- Adjusted tile8 source canvas dimensions for better scaling in Tile16Editor.
- Enhanced click detection and selection logic for tile editing, ensuring a smoother user experience.
- Implemented critical fixes for palette application consistency, aligning with the overworld palette for accurate color representation.
- Improved logging for tile interactions and palette updates to facilitate debugging and user feedback.
2025-09-29 11:11:27 -04:00
scawful
c7aa0f4409 Implement critical palette synchronization fixes in Tile16Editor and OverworldEditor
- Updated Tile16Editor to ensure consistent palette application across all graphics, aligning with the overworld palette for accurate color representation.
- Added functionality to immediately apply palette changes in Tile16Editor, enhancing visual consistency during editing.
- Implemented critical fixes to refresh all graphics with the correct overworld palette, improving user experience and reducing discrepancies in tile appearance.
- Enhanced logging for palette updates to facilitate debugging and provide user feedback on changes.
2025-09-29 10:58:36 -04:00
scawful
2c4ccc9d0a Refactor tile selection and painting logic in OverworldEditor and Tile16Editor
- Updated tile selection handling in Tile16Editor to prevent conflicts with dragging, ensuring a smoother user experience.
- Improved click detection for tile selection and painting, enhancing accuracy and responsiveness.
- Added logging for tile interactions to facilitate debugging and user feedback.
- Implemented critical fixes to ensure consistent behavior during tile editing operations.
2025-09-29 10:45:25 -04:00
scawful
1432e2c3f9 Enhance tile selection and editing functionality in OverworldEditor and Tile16Editor
- Improved handling of single and double clicks for tile selection and editing in OverworldEditor, allowing for more intuitive user interactions.
- Added logging for tile selection actions to aid debugging and user feedback.
- Updated Tile16Editor to ensure proper synchronization with the overworld editor during tile changes, enhancing workflow reliability.
- Implemented critical fixes in Canvas to prevent ImGui assertions by ensuring minimum canvas size during rendering.
2025-09-29 10:34:28 -04:00
scawful
690f77eea0 Implement critical fixes for tile cache issues and optimize resource management
- Updated Tile16Editor to regenerate blockset atlas directly from ROM data, bypassing problematic tile cache.
- Enhanced clipboard functionality to extract tile data directly from the atlas, improving reliability.
- Refactored Arena class shutdown process to ensure safe cleanup of resources, preventing double-free issues.
- Optimized Canvas rendering logic to utilize pre-calculated values for improved performance with large selections.
2025-09-29 09:42:06 -04:00
scawful
94f5c0ec60 Implement safe multi-area map refresh and critical tile update fixes
- Added RefreshMultiAreaMapsSafely method to handle large, wide, and tall area maps without recursion, preventing segmentation faults.
- Updated tile application logic to directly use the currently selected tile, enhancing stability during rectangle selections.
- Improved logging for tile updates and error handling, ensuring better debugging and user feedback.
- Cleared selection state after applying changes to maintain a clean editor state.
2025-09-29 09:30:18 -04:00
scawful
508489cd0e Enhance OverworldEditor with improved selection handling and critical fix for large maps
- Added logging for rectangle selection and tile processing to aid debugging.
- Implemented bounds checks during tile selection to prevent crashes.
- Disabled sibling refresh for large maps to avoid infinite recursion, addressing segmentation faults.
- Updated comments for clarity and future implementation considerations.
2025-09-29 09:22:14 -04:00
scawful
4bf4a13dae Enhance graphics editor performance with batch processing and profiling
- Integrated performance profiling using ScopedTimer in GraphicsEditor and ScreenEditor for better timing insights.
- Implemented batch texture updates in GraphicsEditor and ScreenEditor to reduce individual texture update calls, improving rendering efficiency.
- Enhanced tile rendering in ScreenEditor with pre-allocated vectors for batch operations, optimizing drawing performance.
- Added safety checks and validation in various components to prevent crashes and ensure data integrity during rendering operations.
- Updated Bitmap and Arena classes to support improved texture management and synchronization, enhancing overall graphics performance.
2025-09-29 09:04:10 -04:00
scawful
2d10437888 Remove clipboard functionality and enhance performance monitoring features
- Deleted clipboard-related files (clipboard.cc, clipboard.h, clipboard.mm) to streamline the codebase.
- Added a performance dashboard in the EditorManager to monitor performance metrics and improve user experience.
- Integrated performance monitoring capabilities across various editors, allowing for detailed timing of critical operations.
- Updated the graphics system with batch processing for texture updates, significantly improving rendering performance.
- Introduced a memory pool allocator for efficient memory management during graphics operations.
2025-09-28 23:30:32 -04:00
scawful
ce31906c93 Enhance performance profiling and tile caching mechanisms
- Introduced a new PerformanceProfiler class for detailed timing and performance measurement across graphics operations.
- Implemented a smart tile cache with LRU eviction in the TileCache structure to optimize memory usage and improve tile rendering efficiency.
- Updated various graphics components to utilize the new caching system, reducing redundant texture updates and enhancing overall performance.
- Added dirty region tracking in Bitmap for efficient texture updates, minimizing the area that needs to be refreshed during rendering.
- Enhanced existing methods to leverage performance monitoring, providing insights into operation durations and potential bottlenecks.
2025-09-28 23:13:12 -04:00
scawful
5915391467 add comments for gfx classes and editors 2025-09-28 23:00:32 -04:00
scawful
50c7461e5f Enhance OverworldEditor with on-demand map refresh and texture loading improvements
- Implemented on-demand refresh for overworld maps, optimizing updates based on visibility and modifications.
- Introduced a new method to ensure textures are loaded before drawing, improving user experience with loading indicators.
- Increased the number of textures processed per frame for faster loading times, enhancing performance during map transitions.
- Updated the release workflow to enable additional testing configurations for YAZE builds.
2025-09-28 22:48:56 -04:00
scawful
b911256687 Implement multithreaded room loading in DungeonRoomLoader
- Refactored the LoadAllRooms method to utilize multithreading for improved performance during dungeon room loading.
- Introduced thread-safe data structures and a task-based approach to process room loading in parallel, optimizing resource usage.
- Added performance logging to track the number of threads and rooms processed, enhancing monitoring capabilities.
- Ensured thread safety when collecting results for room sizes and palettes, maintaining data integrity.
2025-09-28 22:37:13 -04:00
scawful
f210cd85b4 Integrate performance monitoring across various editors
- Added performance monitoring capabilities using ScopedTimer in the DungeonEditor, PaletteEditor, ScreenEditor, MessageEditor, MusicEditor, SpriteEditor, and SettingsEditor classes to track loading times.
- Enhanced the Load methods in each editor to include timing for critical operations, improving performance analysis and optimization.
- Removed unnecessary debug output in the Sprite class to clean up the codebase.
2025-09-28 22:32:07 -04:00
scawful
cea73affdd Add performance monitoring capabilities with PerformanceMonitor class
- Introduced PerformanceMonitor and ScopedTimer classes for tracking operation durations, enhancing performance analysis during ROM loading and rendering.
- Integrated performance monitoring into the OverworldEditor and Overworld classes, allowing for detailed timing of critical operations.
- Implemented deferred texture creation strategies to optimize loading times and reduce main thread blocking.
- Updated relevant methods to utilize performance monitoring, providing insights into loading efficiency and potential bottlenecks.
2025-09-28 22:21:15 -04:00
scawful
b463878d6e Refactor GitHub Actions workflow and Tile16Editor for improved functionality
- Updated the concurrency group in the release workflow to use a more consistent reference for tags.
- Enhanced the release notes generation logic for clarity and consistency.
- Improved logging in Tile16Editor to provide better insights during bitmap updates and error handling.
- Refactored the UpdateBlocksetBitmap method to ensure proper handling of active bitmaps and pixel copying, enhancing the editor's responsiveness.
2025-09-28 21:21:38 -04:00
scawful
76cb817f26 Refactor Tile16Editor for improved data handling and bitmap updates
- Changed the storage of current tile16 data from a static variable to an instance variable for better persistence.
- Added a new method to update the blockset bitmap displayed in the editor, ensuring it reflects the current tile16 data.
- Enhanced the DrawToCurrentTile16 method to include updates to the blockset bitmap after drawing.
- Updated the CMake configuration for the tile edit table to ensure proper initialization.
2025-09-28 21:06:57 -04:00
scawful
b02f1fbb7d Enable conditional compilation for testing frameworks in EditorManager
- Added preprocessor directives to include testing-related headers and initialize test suites only when YAZE_ENABLE_TESTING is defined.
- This change enhances the modularity of the code by allowing for optional testing features based on the build configuration.
2025-09-28 20:08:26 -04:00