Commit Graph

55 Commits

Author SHA1 Message Date
scawful
d888ce598d feat(agent): add new emulator commands for enhanced debugging and control
- Introduced several new commands to the emulator, including:
  - `emulator-set-breakpoint`: Set breakpoints for debugging.
  - `emulator-clear-breakpoint`: Remove breakpoints by ID.
  - `emulator-list-breakpoints`: List all active breakpoints.
  - `emulator-step`: Step through CPU instructions.
  - `emulator-run`: Run the emulator until a breakpoint or for a specified number of frames.
  - `emulator-pause`: Pause execution for inspection.
  - `emulator-reset`: Reset the emulator to its initial state.
  - `emulator-get-registers`: Retrieve current CPU register values.
  - `emulator-get-metrics`: Get performance metrics of the emulator.

Benefits:
- Enhances debugging capabilities and provides more control over emulator execution, improving the development experience.
2025-10-12 11:57:52 -04:00
scawful
aacc7795c3 feat(emulator): implement gRPC control server and emulator commands
- Added `AgentControlServer` to manage gRPC connections for emulator control.
- Introduced `EmulatorServiceImpl` with methods for starting, stopping, and controlling the emulator, including button presses and memory operations.
- Created new command handlers for pressing, releasing, and holding emulator buttons.
- Updated CMake configuration to include new source files and proto definitions for the emulator service.

Benefits:
- Enhanced control over the emulator through gRPC, allowing for remote interactions.
- Improved modularity and maintainability of the emulator's command handling.
- Streamlined integration of new features for emulator control and state inspection.
2025-10-11 13:57:07 -04:00
scawful
aac82ae12d move agent policy yaml 2025-10-09 10:03:28 -04:00
scawful
73df4af850 feat: Enhance Agent Tools with Dialogue, Music, and Sprite Commands
- Added new command handlers for dialogue inspection tools: `dialogue-list`, `dialogue-read`, and `dialogue-search`, allowing users to interact with dialogue messages in the ROM.
- Introduced music data tools: `music-list`, `music-info`, and `music-tracks`, enabling users to retrieve information about music tracks and their properties.
- Implemented sprite property tools: `sprite-list`, `sprite-properties`, and `sprite-palette`, providing access to sprite details and color palettes.
- Updated the command dispatcher to support the new tools, enhancing the functionality and usability of the CLI for users working with ROM data.
2025-10-06 01:10:50 -04:00
scawful
e0f0805426 feat: Add Oracle of Secrets Labels and System Prompt
- Introduced a new YAML file, `oracle_of_secrets_labels.yaml`, containing structured data for items, masks, dungeons, bosses, NPCs, and SRAM/WRAM variables specific to the Oracle of Secrets ROM hack.
- Added a system prompt file, `oracle_of_secrets_system_prompt.txt`, outlining the role of the AI assistant, project context, task generation, key data sources, and best practices for user interactions.
- These additions enhance the functionality and usability of the z3ed tool for users working with the Oracle of Secrets project.
2025-10-06 01:02:46 -04:00
scawful
5c7749b7b8 feat: Introduce GUI Automation Tools for YAZE
- Added new GUI automation tools: gui-discover, gui-click, gui-place-tile, and gui-screenshot, enabling users to interact with the YAZE GUI programmatically.
- Implemented command handlers for each tool, allowing for automated GUI interactions such as clicking buttons, placing tiles, and capturing screenshots.
- Updated documentation to include usage instructions and examples for the new GUI tools, enhancing user experience and accessibility.
- Ensured compatibility with the test harness by requiring YAZE to run with the `--enable-test-harness` flag for GUI automation functionalities.
2025-10-06 01:01:33 -04:00
scawful
f2c773dfea feat: Add SNES Hardware Registers and DMA Structures
- Introduced a new assembly file for SNES hardware registers, defining key memory addresses and structures for the PPU and DMA channels.
- Included detailed comments and references for better understanding and usage of the hardware registers.
- Updated the yaze.asm file to disable custom mosaic settings, ensuring compatibility with the new hardware register definitions.
2025-10-05 20:42:15 -04:00
scawful
5034e1e97d feat: Add Common Tiles Reference and Enhance Asset Management
- Introduced a new common_tiles.txt file for AI agents, providing a customizable reference for various tile types used in projects.
- Updated CMake configuration to improve asset copying for macOS and non-Apple platforms, ensuring agent assets are correctly placed in the output directory.
- Enhanced the AssetLoader to support additional search paths for asset retrieval, improving cross-platform compatibility.
- Improved error handling in the AgentEditor for missing prompt files, providing clearer instructions for users on file locations and creation.
2025-10-05 12:16:59 -04:00
scawful
7712456154 feat: Add ROM hacking guides and prompt management for enhanced user support
- Introduced `alttp_rom_hacking_guide.txt` and `oracle_of_secrets_guide.txt` for detailed ROM structure and hacking techniques.
- Implemented `PromptManager` class to manage loading and retrieving prompts based on different modes.
- Enhanced system prompt with new tool capabilities for hex and palette manipulation, along with TODO management features.
- Updated CLI experience with improved command handling and user guidance for ROM exploration tasks.
2025-10-05 01:45:19 -04:00
scawful
277201416c feat: Enhance CMake presets and add new function schemas for ROM manipulation
- Updated CMake presets for macOS to include binary directory and cache variables for improved build configuration.
- Added new function schemas for ROM manipulation, including `hex-read`, `hex-write`, `hex-search`, and palette management functions such as `palette-get-colors` and `palette-set-color`.
- Introduced TODO management functions to create, list, and update tasks, enhancing task tracking capabilities within the application.
2025-10-05 01:00:32 -04:00
scawful
5a35718070 refactor: Update Doxyfile and resource paths for improved organization
- Changed the paths for project logo and icon in Doxyfile to point to the new assets directory.
- Updated CMake configurations to reflect the new locations of resource files, enhancing clarity and maintainability.
- Replaced instances of core utility functions with util functions across various files for consistency in file handling.
- Added new resource files for Windows platform support and removed obsolete resource files, streamlining the build process.
2025-10-05 00:31:46 -04:00
scawful
61f1d6fbac feat: Update function schemas and system prompt for enhanced agent capabilities
- Revised function schemas in `function_schemas.json` to streamline resource listing and searching, including new parameters for dungeon and overworld queries.
- Introduced a new system prompt in `system_prompt_v3.txt` to improve the agent's proactive exploration and multi-tool chaining strategies.
- Updated `GeminiAIService` to support the new prompt version and enhanced function calling logic for better tool integration.
- Added tests for multimodal image analysis and error handling in `test_gemini_vision.cc` to ensure robust functionality.
2025-10-04 22:14:04 -04:00
scawful
85bc14e93e feat: Add overworld sprite and entrance commands to agent tool
- Implemented new commands for listing overworld sprites and retrieving entrance details.
- Enhanced CLI functionality to support filtering by map, world, and sprite ID with JSON and text output formats.
- Introduced tile statistics analysis command for detailed tile usage insights.
- Updated function schemas and system prompts to reflect the new commands and their parameters.
2025-10-04 21:27:10 -04:00
scawful
f38946118c feat: Implement message handling commands for agent tool
- Added functionality for listing, reading, and searching messages in the ROM.
- Introduced new commands: `message-list`, `message-read`, and `message-search` with appropriate parameters and descriptions.
- Enhanced the CLI to support these commands, including JSON and text output formats.
- Updated system prompts and function schemas to reflect the new message handling capabilities.
2025-10-04 20:53:13 -04:00
scawful
c49ef479e5 fix: Correct indentation and formatting in prompt_catalogue.yaml for better readability
- Adjusted indentation for usage notes and descriptions in the resource-list and resource-search tools.
- Ensured consistent formatting across command arguments for clarity.
2025-10-04 17:50:12 -04:00
scawful
2ac363918e Remove ImGui Widget Testing Guide and update documentation structure
- Deleted the ImGui Widget Testing Guide as it is no longer needed.
- Updated the main documentation index to reflect the new Dungeon Editor Guide location.
- Revised z3ed README to clarify core capabilities and quick start instructions.
- Removed the developer guide for z3ed as its content is now integrated into other documentation.
- Enhanced the architecture section to provide a clearer overview of the z3ed system components.
- Updated command references and added details on agent commands and workflows.
2025-10-04 13:47:41 -04:00
scawful
4b61b213c0 feat: Add resource search and dungeon room description commands
- Implemented `resource-search` command to allow fuzzy searching of resource labels.
- Added `dungeon-describe-room` command to summarize metadata for a specified dungeon room.
- Enhanced `agent` command handler to support new commands and updated usage documentation.
- Introduced read-only accessors for room metadata in the Room class.
- Updated AI service to recognize and handle new commands for resource searching and room description.
- Improved metrics tracking for user interactions, including command execution and response times.
- Enhanced TUI to display command metrics and session summaries.
2025-10-04 12:00:51 -04:00
scawful
173685a928 feat: Add z3ed agent test workflow for macOS with Ollama integration and enhanced command generation 2025-10-04 04:00:43 -04:00
scawful
ed75bdc268 feat: Add complex command generation and error handling test cases for agent interactions 2025-10-04 03:54:11 -04:00
scawful
9ab2d2bde8 feat: Implement context and follow-up queries for agent interactions and enhance simple chat command with quiet mode support 2025-10-04 03:49:40 -04:00
scawful
2a6f7d5c15 feat: Add support for prompt versioning and function calling in Gemini AI service 2025-10-04 03:42:22 -04:00
scawful
9acd6ba17f feat: Enhance system prompt JSON schema and clarify tool result formatting in conversational agent 2025-10-04 03:19:28 -04:00
scawful
209e150b18 feat: Update usage notes and examples in prompt catalogue for clarity on resource types 2025-10-04 03:13:34 -04:00
scawful
2931634837 feat: Enhance AI agent capabilities with new tool calling instructions, improved response handling, and terminal color utilities 2025-10-04 03:04:22 -04:00
scawful
164f89e1bb feat: Add INI and JSON format support for project files and update resource label handling 2025-10-04 01:41:55 -04:00
scawful
a6cdc651c3 feat: Implement AgentChatWidget for conversational AI interaction and add ASCII logo support 2025-10-03 23:43:19 -04:00
scawful
57c8434ee1 feat: Add batch testing mode for conversational agent and implement conversation test cases 2025-10-03 22:27:55 -04:00
scawful
42c64db904 Add YAML support and enhance AI service context handling
- Integrated yaml-cpp library into the project for YAML file parsing.
- Updated ConversationalAgentService to set ROM context in AI services.
- Extended AIService interface with SetRomContext method for context injection.
- Implemented SetRomContext in GeminiAIService and OllamaAIService.
- Enhanced PromptBuilder to load resource catalogues from YAML files.
- Added functions to parse commands, tools, examples, and tile references from YAML.
- Improved error handling for loading YAML files and added search paths for catalogues.
- Updated CMake configuration to fetch yaml-cpp if not found.
- Modified vcpkg.json to include yaml-cpp as a dependency.
2025-10-03 16:44:29 -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
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
65b17c5f6a Enhance theme management and add table canvas support
- Introduced new helper functions for managing table canvases in the GUI, allowing for better sizing and layout of elements.
- Updated the theme manager to include additional color properties for navigation elements, tree lines, and tab variations, improving visual consistency.
- Enhanced the theme selection interface with a more organized table layout for built-in and file themes, along with action buttons for theme management.
2025-09-27 09:15:05 -04:00
scawful
1057a3f037 Implement welcome screen and enhance session management in EditorManager
- Added a welcome screen that can be accessed from the View menu, improving user experience for new users.
- Enhanced session management by allowing the reuse of empty sessions when loading ROMs, reducing unnecessary session creation.
- Improved the session table layout for better readability and added a custom overworld feature flag for each session.
- Updated the DrawWelcomeScreen method for better visual integration and added a glow effect to the decorative line.
2025-09-26 20:42:48 -04:00
scawful
997092390a Add theme management and background rendering features
- Introduced a comprehensive theme management system, allowing users to load, save, and switch between multiple themes.
- Added support for various built-in themes, enhancing the visual customization of the application.
- Implemented a background renderer for improved visual effects in docking windows, including grid backgrounds and subtle animations.
- Enhanced the EditorManager UI with themed elements, providing a more cohesive and engaging user experience.
- Updated CMake configuration to include new theme and background renderer source files, ensuring proper integration into the build system.
2025-09-26 19:32:19 -04:00
scawful
edafa79dea Add macOS app icon and bundle properties; remove deprecated settings
- Introduced a new app icon file (yaze.icns) for the macOS bundle.
- Updated CMake configuration to set macOS bundle properties, including icon file, bundle name, executable name, and versioning information.
- Removed outdated macOS bundle settings to streamline the configuration process.
2025-09-26 10:04:29 -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
93b000d1a8 Add usdasm submodule for asset management
- Added a new submodule for usdasm located in assets/asm/usdasm to facilitate asset management.
- Updated .gitmodules to include the new submodule URL for easier integration and updates.
2025-09-24 19:09:50 -04:00
scawful
49b4f6d677 Add ZScreamCustomOverworld ASM v3 and integrate area size support
- Introduced ZScream Custom Overworld ASM to enhance customization of the ALTTP overworld, allowing users to modify various aspects such as palettes, backgrounds, and transitions.
- Updated OverworldEditor to include area size selection for v3 support, enabling users to choose between different area sizes (Small, Large, Wide, Tall).
- Enhanced OverworldMap to load area size information based on the applied ASM version, ensuring compatibility with expanded features.
- Implemented SaveAreaSizes method in Overworld to persist area size settings in the ROM, supporting the new customization capabilities.
- Refactored related classes and methods to accommodate the new area size logic and ensure seamless integration with existing functionalities.
2025-09-24 15:36:29 -04:00
scawful
6201aa963d add ZSCustomOverworld to assets/asm 2024-08-11 11:56:52 -04:00
scawful
db6ff2ec10 add yaze.asm and include mosaic_change.asm 2024-08-11 10:49:09 -04:00
scawful
0bd244b71f add yaze app icon png to assets 2024-08-07 14:59:10 -04:00
scawful
1c76fddff4 add tile16 editor and gfx group editor as tabs 2024-07-19 16:02:00 -04:00
scawful
70cead23cb Add zeml layout to OverworldEditor 2024-04-19 11:12:23 -04:00
scawful
c788f92c20 Add IBM Plex JP font 2023-08-26 12:18:14 -04:00
scawful
b9d06f43bc Add JP font support 2023-08-26 04:51:08 -04:00
scawful
c0d94a5982 Add palettes to GraphicsEditor, build housekeeping 2023-07-09 22:35:10 -04:00
scawful
66e320357a remove experimental asm tests and delta tests 2023-01-01 14:07:41 -06:00
scawful
deaeedfc87 add music editor gui elements 2022-12-30 16:40:58 -06:00
scawful
03e9ec90e7 update cmake 2022-09-17 11:03:47 -05:00
Justin Scofield
465b3fc49b update mosaic_change assembly template 2022-08-07 00:29:01 -04:00
Justin Scofield
d27039cb1f replace asar dll and update SDL 2022-08-06 23:33:06 -04:00