Commit Graph

2942 Commits

Author SHA1 Message Date
scawful
83ad27e6a0 chore: Refactor vcpkg.json and update CMake configurations
- Removed the abseil dependency from vcpkg.json for Windows platform.
- Updated CMake configuration to prevent finding system-installed protobuf and abseil, ensuring gRPC uses bundled versions.
- Modified todo_manager.cc to convert paths to strings for consistency.
- Updated vision_action_refiner.cc to explicitly convert stripped whitespace strings to std::string.
- Added undefinitions for Windows macros in z3ed_network_client.cc to avoid conflicts with method names.
2025-10-09 12:44:07 -04:00
scawful
2d9a2d11f4 chore: Update vcpkg.json and CI workflow for improved platform-specific configurations
- Updated the builtin-baseline in vcpkg.json to '01f602195983451bc83e72f4214af2cbc495aa94' for consistency with the latest vcpkg release.
- Enhanced the CI workflow by separating CMake configuration steps for Windows, macOS, and Linux, improving clarity and error handling.
- Improved error reporting for CMake configuration failures across different platforms, ensuring better diagnostics in CI logs.
2025-10-09 12:24:27 -04:00
scawful
6539f8fb42 chore: Update vcpkg commit ID in CI and release workflows
- Changed vcpkgGitCommitId to '01f602195983451bc83e72f4214af2cbc495aa94' for both CI and release workflows, reflecting the latest vcpkg release (2024.10.21).
- Ensured consistency across workflows by updating the vcpkg commit ID in all relevant sections.
2025-10-09 12:06:32 -04:00
scawful
793a0b798d feat: Refactor CI workflow for platform-specific CMake configuration
- Separated CMake configuration steps for Windows and Unix environments, enhancing clarity and error handling.
- Improved error reporting for CMake configuration failures, ensuring better diagnostics in CI logs.
- Updated the reporting mechanism for configuration outcomes to reflect the success or failure of both Windows and Unix configurations.
2025-10-09 11:51:24 -04:00
scawful
3e1334d567 chore: Update changelog for version 0.3.2 with CI/CD improvements and graphics system enhancements
- Documented fixes for CI/CD workflows, including artifact management and build diagnostics for Windows.
- Highlighted improvements in the graphics editor, including palette management and synchronization across editors.
- Updated system requirements for Windows, macOS, and Linux to reflect recent changes.
- Enhanced the Tile16 editor with new palette coordination and performance optimizations.
2025-10-09 11:47:39 -04:00
scawful
0d8dbddf67 feat: Enhance CI workflow with diagnostics and artifact management
- Added workflow_dispatch inputs for customizable build types and artifact uploads.
- Implemented detailed diagnostics for vcpkg setup, build processes, and post-build checks on Windows.
- Enhanced error handling and reporting for vcpkg-related issues during builds.
- Improved artifact upload conditions and added summary information for better visibility in CI results.
2025-10-09 11:39:24 -04:00
scawful
760bd5fd33 feat: Update CI/CD workflow for artifact handling and packaging
- Enhanced the release workflow to better manage artifacts for Windows, macOS, and Linux, ensuring correct paths and improved error handling.
- Added environment variable settings for package paths to streamline subsequent steps.
- Improved artifact size reporting based on successful builds, providing clearer feedback in the CI process.
- Refactored artifact download steps to organize and list release artifacts more effectively.
2025-10-09 11:35:40 -04:00
scawful
417816a854 feat: Enhance documentation with CI/CD improvements and editor status updates
- Added detailed CI/CD reliability improvements, including retry mechanisms and enhanced error reporting for Windows vcpkg setup and dependency installation.
- Updated Dungeon Editor status to EXPERIMENTAL, highlighting the need for thorough testing and outlining implemented features.
- Introduced a comprehensive A Link to the Past ROM reference, detailing graphics systems, palette management, and memory mapping.
- Improved changelog to reflect recent fixes and ongoing development status across various editors.
2025-10-09 11:30:58 -04:00
scawful
9e5820a338 feat: Enhance graphics loading and editor synchronization
- Implemented default palette application during graphics data loading to ensure immediate visibility of graphics sheets.
- Refactored GraphicsEditor to queue texture creation without palette management, improving performance and clarity.
- Introduced NotifySheetModified method in Arena to handle texture updates across all editors, ensuring consistency in graphics rendering.
- Enhanced logging for better tracking of graphics sheet modifications and texture operations.
2025-10-09 11:18:43 -04:00
scawful
fdb0f18d6a feat: Enhance emulator functionality with card registration and UI improvements
- Registered multiple emulator cards (CPU Debugger, Memory Viewer, PPU Viewer, Audio Mixer) with the EditorCardManager for improved access and organization.
- Updated EditorManager to support the new Emulator editor type in context-sensitive card controls.
- Improved GraphicsEditor loading process with enhanced logging and palette management for graphics sheets.
- Refactored MessageEditor to streamline font bitmap creation and texture queuing, ensuring better performance and clarity in the rendering loop.
2025-10-09 10:54:11 -04:00
scawful
0b0be64d2b feat: Add vcpkg configuration and update dependencies in vcpkg.json
- Introduced a new vcpkg-configuration.json file to define the default registry and baseline for vcpkg.
- Updated vcpkg.json to include a schema reference, a new builtin-baseline, and refined dependency specifications for SDL2, abseil, yaml-cpp, and zlib, ensuring compatibility with Windows platform.
2025-10-09 10:24:13 -04:00
scawful
45d1905469 chore: Enhance CMake and CI configurations for improved vcpkg integration
- Updated CMakeLists.txt to provide clearer logging and error messages for vcpkg integration, including detailed status reports for toolchain and triplet settings.
- Modified CI workflows to utilize manifest mode for vcpkg installations, improving dependency management and build reliability.
- Enhanced SDL2 and gRPC configurations to prioritize vcpkg packages, ensuring faster builds and clearer fallback mechanisms.
- Improved overall CMake structure for better readability and maintainability, including updated messages for build configurations and warnings.
2025-10-09 10:22:11 -04:00
scawful
aac82ae12d move agent policy yaml 2025-10-09 10:03:28 -04:00
scawful
4ddfe900e4 chore: Refactor CMake and CI workflows for improved build management
- Updated CMakeLists.txt to conditionally enable features based on the build type, optimizing for minimal builds in CI.
- Enhanced CI workflows with retry logic for vcpkg setup and dependency installation, improving reliability.
- Added detailed logging and error reporting for CMake configuration and build steps to facilitate troubleshooting.
- Streamlined the installation of dependencies across platforms, removing unnecessary packages and ensuring compatibility.
- Introduced a summary report for build status and artifacts, enhancing visibility into the CI process.
2025-10-09 10:01:07 -04:00
scawful
802e0568ba refactor: Simplify card shortcuts and enhance card control in editor
- Removed individual card shortcuts for dungeon and graphics categories to prevent hash table overflow, consolidating functionality into a Card Browser.
- Introduced a context-sensitive card control feature that dynamically displays relevant cards based on the active editor.
- Updated PaletteEditor to clarify its use of internal tabs instead of separate cards.
- Registered multiple cards in MessageEditor and OverworldEditor, improving visibility and management of editor functionalities.
2025-10-09 09:56:20 -04:00
scawful
219406901d feat: Enhance editor card management and shortcut functionality
- Introduced new shortcut categories for graphics, screen, and sprite editors, improving accessibility and organization.
- Updated DungeonEditorV2 and other editor classes to register cards with the EditorCardManager, allowing for better control and visibility management.
- Refactored shortcut registration for dungeon, graphics, screen, and sprite editors, ensuring consistent user experience across the application.
- Improved initialization processes to handle dynamic card visibility and shortcuts effectively.
2025-10-09 09:46:29 -04:00
scawful
9465195956 feat: Introduce card management system for dungeon editor
- Added EditorCardManager to handle registration, visibility, and management of editor cards.
- Integrated card shortcuts and dynamic menu sections for improved user experience in the dungeon editor.
- Registered multiple dungeon-related cards with associated shortcuts for quick access.
- Enhanced DungeonEditorV2 to utilize the new card management system, allowing independent control of editor cards.
- Updated UI components to support card-based editors, improving layout and usability.
2025-10-09 09:08:17 -04:00
scawful
44cabe48c9 feat: Add manual object renderer for debugging in dungeon editor
- Introduced ManualObjectRenderer class to facilitate manual rendering of dungeon objects for debugging purposes.
- Integrated manual renderer initialization in DungeonEditorV2, allowing for testing and debugging of object rendering.
- Added methods for rendering simple blocks, test patterns, and debugging graphics sheets.
- Updated dungeon_editor_v2.cc and dungeon_editor_v2.h to include the new manual renderer functionality.
2025-10-09 08:50:50 -04:00
scawful
48faee6711 feat: Improve dungeon canvas rendering and object interaction
- Updated DungeonCanvasViewer and DungeonEditor to render room objects as primitives temporarily for debugging purposes.
- Enhanced object interaction with new context menu options for deleting, copying, and pasting selected objects.
- Implemented drag-and-drop functionality for moving selected objects within the dungeon.
- Added texture processing for background layers and deferred texture commands to optimize rendering performance.
- Refactored code for clarity and maintainability, ensuring better handling of object interactions and rendering logic.
2025-10-09 08:37:03 -04:00
scawful
557b89dac4 chore: Update vcpkg configuration in CI workflows
- Added 'doNotUpdateVcpkg: false' to the vcpkg setup in both CI and release workflows to ensure that vcpkg is updated during the installation process, enhancing dependency management consistency.
2025-10-09 08:33:50 -04:00
scawful
2c10d31601 chore: Update CI workflows for improved dependency management
- Removed specific vcpkg Git commit ID from the CI workflow for Windows.
- Simplified the installation steps for dependencies across different operating systems.
- Enhanced CMake configuration to streamline the build process for Windows, macOS, and Linux.
- Consolidated dependency installation into a single step for better clarity and efficiency.
2025-10-09 08:17:15 -04:00
scawful
746d29bbcd chore: Add vcpkg setup for Windows in CI workflow
- Introduced a step to set up vcpkg specifically for Windows runners, ensuring consistent dependency management.
- Updated CMake configuration to utilize the vcpkg toolchain file, enhancing cross-platform build compatibility.
2025-10-09 08:11:06 -04:00
scawful
08ddcf8660 chore: Simplify CI workflow and dependency management
- Removed vcpkg from the CI workflow, transitioning to FetchContent for dependency management.
- Updated the build matrix to eliminate the Windows x86 build due to cpp-httplib incompatibility.
- Streamlined installation steps for dependencies across different operating systems.
- Enhanced CMake configuration for improved clarity and efficiency in the build process.
- Updated documentation to reflect changes in CI/CD pipeline and dependency handling.
2025-10-09 08:07:20 -04:00
scawful
7310fe5e00 chore: Update vcpkg configuration and CI workflow
- Removed the `builtin-baseline` from `vcpkg.json` to prevent version database mismatches.
- Updated the CI workflow to synchronize with the stable vcpkg commit `c8696863d371ab7f46e213d8f5ca923c4aef2a00`.
- Adjusted the CI build matrix to remove the x86 Windows build due to cpp-httplib incompatibility.
- Added compiler definitions in `cmake/grpc.cmake` to prevent Windows macro pollution in protobuf-generated headers.
2025-10-09 07:53:23 -04:00
scawful
35dcdbb2fc docs: audio system and build optimizations
- Introduced a production-quality audio backend abstraction layer, enabling seamless integration with SDL2, SDL3, and custom platforms.
- Implemented APU handshake debugging features for improved monitoring of CPU-APU communication during audio processing.
- Upgraded gRPC to version 1.67.1, resolving MSVC template issues and enhancing compatibility with modern compilers.
- Added MSVC-specific compiler flags to optimize Windows build performance and reduce build times significantly.
- Updated documentation to reflect new audio system architecture and build instructions, ensuring clarity for developers.
2025-10-09 01:16:53 -04:00
scawful
58960d59e7 chore: Update vcpkg Git commit ID in CI workflow
- Changed the vcpkgGitCommitId in the CI workflow from 'c8696863d371ab7f46e213d8f5ca923c4aef2a00' to '4bee3f5aae7aefbc129ca81c33d6a062b02fcf3b' to ensure the use of the latest vcpkg version for dependency management.
2025-10-09 01:08:51 -04:00
scawful
b5ec0cb637 feat: Enhance emulator UI and performance features
- Added new UI components for the emulator, including dedicated panels for CPU and APU debugging, improving user interaction and debugging capabilities.
- Implemented a caching mechanism for rendered objects in the DungeonCanvasViewer to optimize performance and reduce rendering time.
- Updated the CMake configuration to include new UI source files, ensuring proper organization and build management.
- Enhanced the theme manager with improved color definitions for better visibility and consistency across the UI.
- Refactored the emulator interface to delegate rendering tasks to the UI layer, streamlining the codebase and improving maintainability.
2025-10-08 23:38:20 -04:00
scawful
d2dab43358 fix: Correct CMake argument handling in CI workflow
- Updated the CMake command in the CI workflow to properly reference the CMAKE_ARGS array, ensuring correct argument passing during the build process.
2025-10-08 22:12:50 -04:00
scawful
b29a0820ff feat: Enhance gRPC configuration and add dungeon test harness
- Updated gRPC configuration to use version 1.67.1, improving compatibility with modern compilers and fixing MSVC template issues.
- Enhanced warning messages for missing vcpkg gRPC installation, providing clearer instructions for faster builds.
- Introduced a new dungeon test harness tool to capture and dump the state of WRAM and CPU/PPU registers, aiding in emulator testing and development.
- Organized source groups in CMake for better structure and clarity in the input and UI systems.
2025-10-08 21:51:31 -04:00
scawful
0579fc2c65 feat: Implement input management system with SDL2 support
- Introduced a new input management system utilizing SDL2 for continuous polling of SNES controller states, enhancing responsiveness and gameplay experience.
- Replaced the previous ImGui-based event handling with a more robust input manager that supports multiple backends and configurations.
- Added a dedicated input backend for SDL2, allowing for flexible key mapping and improved input handling.
- Updated the Emulator class to integrate the new input manager, ensuring seamless interaction with the emulator's UI and game logic.
- Refactored keyboard configuration UI to facilitate easy remapping of SNES controller buttons, improving user accessibility.
2025-10-08 21:40:21 -04:00
scawful
ba70176ee2 refactor: Improve message parsing and dictionary handling
- Changed the type of dictionary variable from int to int8_t for better type safety.
- Updated the handling of dictionary entries in message parsing to ensure correct formatting and prevent parsing errors with command arguments.
- Refactored message data parsing logic to use index-based loops, improving clarity and correctness in handling command arguments.
- Enhanced the documentation in message_data.h to provide a comprehensive overview of the message data system and its components.
- Added new tests to validate the correct parsing of messages with commands and arguments, ensuring robustness against previous bugs.
2025-10-08 21:17:09 -04:00
scawful
dedfa72068 chore: Update build environment verification and documentation
- Removed the `validate-vs-build.yml` GitHub workflow as it was redundant.
- Enhanced the `verify-build-environment.ps1` script to include checks for Git configuration settings (`core.autocrlf` and `core.longpaths`) to prevent common issues on Windows.
- Updated build instructions in `B1-build-instructions.md` to emphasize the use of the verification script for troubleshooting and automatic fixes.
- Improved documentation in `B2-platform-compatibility.md` to reflect filesystem abstraction changes and ensure consistent cross-platform behavior.
2025-10-08 21:16:59 -04:00
scawful
268921f55e refactor: Remove deprecated instruction logging feature
- Eliminated the kLogInstructions flag and associated logging functionality, as the DisassemblyViewer is now always active and utilizes a more efficient sparse address-map recording method.
- Updated relevant code across multiple files to reflect the removal of the deprecated feature, ensuring cleaner and more maintainable code.
- Adjusted UI elements and serialization methods to remove references to the obsolete logging feature, streamlining the user experience.
2025-10-08 21:00:46 -04:00
scawful
3125ff4b76 feat: Implement audio backend and APU debugging features
- Introduced a new audio backend system with SDL2 support, allowing for flexible audio management and improved performance.
- Added APU handshake tracking capabilities to monitor CPU-APU communication during audio program uploads, enhancing debugging and transfer diagnostics.
- Updated the Emulator class to integrate the new audio backend, ensuring compatibility with existing audio handling.
- Implemented an APU Debugger UI for real-time monitoring of handshake status, port activity, and transfer progress, improving user experience for debugging audio issues.
- Refactored audio-related code to streamline audio sample queuing and management, enhancing overall emulator performance.
2025-10-08 20:57:43 -04:00
scawful
7f4a0f546c refactor: Integrate PlatformPaths for configuration directory management
- Replaced direct calls to GetConfigDirectory with PlatformPaths::GetConfigDirectory across multiple files to standardize configuration directory access.
- Updated RecentFilesManager, EditorManager, and various agent components to handle potential errors when retrieving the configuration directory.
- Enhanced file loading functions to utilize the new LoadFileFromConfigDir method for improved clarity and error handling.
- Introduced new methods in file_util.h for better file management practices, leveraging std::filesystem for cross-platform consistency.
2025-10-08 20:50:49 -04:00
scawful
9bc31bc8fc feat: Add breakpoint and watchpoint management for enhanced debugging
- Introduced BreakpointManager and WatchpointManager classes to manage CPU breakpoints and memory watchpoints, respectively.
- Implemented functionality for adding, removing, enabling, and disabling breakpoints and watchpoints.
- Added support for conditional breakpoints and logging memory access history for watchpoints.
- Enhanced the Emulator class to integrate breakpoint and instruction logging callbacks for improved debugging capabilities.
- Updated DisassemblyViewer to record executed instructions and manage instruction limits for performance optimization.
2025-10-08 17:20:07 -04:00
scawful
3d1d961d0a refactor: Update proto includes and conditional compilation for gRPC 2025-10-08 17:19:02 -04:00
scawful
666b92bd07 chore: Remove outdated GitHub workflows
- Deleted the `build-windows-fallback.yml`, `release-complex.yml`, `release-simplified.yml`, and `release.yml` workflows to streamline CI/CD processes.
- These workflows were redundant and have been replaced by more efficient configurations in the current CI setup.
2025-10-08 17:17:41 -04:00
scawful
6fa3254f32 feat: Introduce yaze emulator Enhancement Roadmap
- Added a comprehensive roadmap document outlining the planned enhancements for the yaze SNES emulator, focusing on achieving Mesen2-level debugging capabilities and AI integration.
- Defined core objectives, current state analysis, and detailed phases for audio system fixes, advanced debugging features, performance optimizations, and AI agent integration.
- Included implementation strategies, estimated efforts, and a timeline for each phase to guide development and ensure systematic progress.
2025-10-08 00:30:51 -04:00
scawful
fc1550a8dc feat: Add collaboration server and testing scripts
- Introduced a new script to launch yaze-server, including checks for server directory, Node.js installation, and npm dependencies.
- Added a test script for APU/SPC700 boot sequence debugging to filter and display critical APU events during execution.
- Created a GUI automation tools test script to verify tool registration, dispatcher handling, and environment checks for GUI-related functionalities.
2025-10-08 00:30:30 -04:00
scawful
68523dbee4 fix: Add workaround for macOS Metal crash during texture updates
- Introduced a small delay after unlocking textures to prevent crashes related to the macOS CoreAnimation/Metal driver, addressing issues with rapid texture updates that corrupt frame tracking.
2025-10-08 00:19:29 -04:00
scawful
97c75e074d feat: Add Known Issues and Next Steps for G3 Renderer Migration
- Documented known issues specific to macOS, including crashes during window resizing and occasional loading indicators during texture processing.
- Outlined high, medium, and low priority stability improvements for future sessions, focusing on texture processing, event handling, and resource management.
- Updated the document version and added testing recommendations to ensure thorough validation before the next major change.
2025-10-07 18:35:14 -04:00
scawful
2edeb9f50d fix: Update Window Event Handling and Emulator Destructor Logic
- Added handling for SDL_WINDOWEVENT_RESIZED, SDL_WINDOWEVENT_MINIMIZED, SDL_WINDOWEVENT_HIDDEN, SDL_WINDOWEVENT_RESTORED, and SDL_WINDOWEVENT_SHOWN in the window event processing to improve rendering behavior during window state changes.
- Modified the Emulator destructor to stop emulation without calling Cleanup(), as the renderer is already destroyed, ensuring proper shutdown behavior.
2025-10-07 18:21:12 -04:00
scawful
defc99b571 feat: Enhance Emulator and Rendering Performance with New Features
- Implemented a Cleanup method in the Emulator class to manage resources effectively during shutdown.
- Added auto-pause functionality to the emulator when the window loses focus, optimizing CPU and battery usage.
- Updated the DoRender method in the Controller class to include frame timing management and a gentle frame rate cap.
- Enhanced texture processing in the Arena class to batch process up to 8 texture commands per frame, improving rendering efficiency.
2025-10-07 18:16:36 -04:00
scawful
0c3c8ebca7 feat: Implement lazy initialization for Emulator and Renderer
- Updated Emulator to support optional lazy initialization of the renderer, enhancing flexibility during runtime.
- Introduced a new method in IRenderer for creating textures with specific pixel formats, improving texture management for the emulator.
- Refactored texture command processing in Arena to handle empty queues more gracefully.
- Enhanced SDL2Renderer to support the new texture creation method, ensuring compatibility with emulator requirements.
2025-10-07 17:49:27 -04:00
scawful
6c331f1fd0 epic: refactor SDL2_Renderer usage to IRenderer and queued texture rendering
- Updated the testing guide to clarify the testing framework's organization and execution methods, improving user understanding.
- Refactored CMakeLists to include new platform-specific files, ensuring proper integration of the rendering backend.
- Modified main application files to utilize the new IRenderer interface, enhancing flexibility in rendering operations.
- Implemented deferred texture management in various components, allowing for more efficient graphics handling and improved performance.
- Introduced new methods for texture creation and updates, streamlining the rendering process across the application.
- Enhanced logging and error handling in the rendering pipeline to facilitate better debugging and diagnostics.
2025-10-07 17:15:11 -04:00
scawful
9e6f538520 feat: Add Comprehensive Dungeon Editor Guide and Overworld Agent Documentation
- Introduced a complete guide for the Dungeon Editor, detailing features, architecture, and usage instructions, ensuring users can effectively utilize the tool for dungeon creation.
- Added an Overworld Agent Guide to facilitate AI interaction with the overworld editor, covering tools, commands, and best practices for automation and AI-generated edits.
- Included a migration plan for transitioning from SDL2 to SDL3, outlining the necessary steps for refactoring the rendering architecture to support modern graphics APIs.
- Enhanced the palette system overview, detailing SNES color formats, palette organization, and common issues, providing developers with essential insights for effective color management.
- Updated the emulator development guide to reflect the latest status and improvements, confirming production readiness and outlining future enhancements.
2025-10-07 14:50:01 -04:00
scawful
b788d93071 refactor: Update Renderer Logic and Introduce Direct Pixel Access Methods
- Removed direct renderer calls from LoadLinkGraphics and LoadAllGraphicsData to prepare for future renderer refactor.
- Added LockTexture and UnlockTexture methods to IRenderer and SDL2Renderer for direct pixel access, enhancing texture management capabilities.
- Updated CMake configuration to include the new SDL2Renderer source file, ensuring proper integration within the graphics backend.
2025-10-07 14:39:36 -04:00
scawful
c6a581b202 feat: Implement SDL2 Renderer as Concrete IRenderer Implementation
- Added IRenderer interface to define abstract rendering operations, decoupling application logic from specific rendering APIs.
- Implemented SDL2Renderer class, providing concrete methods for texture management, rendering primitives, and lifecycle management using SDL2.
- Introduced texture creation, updating, and destruction methods, along with rendering functions to clear the screen and present frames.
- Enhanced backend access for third-party library integration, ensuring flexibility in rendering operations.
2025-10-07 14:19:48 -04:00
scawful
6a439f7255 feat: Implement Custom ImGui Assertion Handler to Enhance Stability
- Added a custom assertion handler for ImGui to log assertion failures instead of crashing the application.
- Implemented a mechanism to back up and reset ImGui workspace settings after multiple assertion failures.
- Updated the window creation process to set the custom assertion handler conditionally based on build configuration.
- Enhanced the welcome screen to truncate project names for better display in the UI.
2025-10-07 13:43:44 -04:00