Commit Graph

3077 Commits

Author SHA1 Message Date
scawful
dcbfc0173c fix(ci): add preprocessor definition for Windows intrinsics in CI and release workflows
- Updated CMake configuration in both CI and release workflows to include the preprocessor definition `/D__PRFCHWINTRIN_H` alongside the existing definition for `google_protobuf_undef_DWORD`.
- This change ensures compatibility with Windows-specific intrinsics during the build process.

Benefits:
- Improves build reliability on Windows platforms by addressing potential issues with intrinsic functions.
2025-10-13 13:03:32 -04:00
scawful
0e23da21dd feat(docs): add comprehensive refactoring plans for test dashboard and zelda3 library
- Introduced detailed refactoring plans for the in-app test dashboard and the zelda3 library, addressing architectural issues and improving modularity.
- The test dashboard plan outlines a decoupled architecture, enhancing maintainability and build efficiency.
- The zelda3 library plan proposes a migration to a core shared library structure, improving incremental build times and clarifying domain boundaries.

Benefits:
- Enhances the overall structure and maintainability of the codebase.
- Facilitates future development and testing efforts by establishing clear architectural guidelines.
2025-10-13 12:45:30 -04:00
scawful
defbdce4a2 chore(scripts): remove deprecated agent and release scripts
- Deleted the `agent.sh` script, which provided background agent functionality for YAZE, as it is no longer needed.
- Removed the `create_release.sh` script used for creating release tags, streamlining the release process.
- Eliminated the `test_apu_boot.sh` script for APU/SPC700 boot sequence testing, as it is outdated.

Benefits:
- Cleans up the scripts directory by removing unused and deprecated scripts, improving project maintainability.
2025-10-13 12:26:53 -04:00
scawful
8b0fd46580 refactor(build): enhance build_cleaner.py with .gitignore support and auto-discovery
- Added support for .gitignore patterns to the build_cleaner script, allowing it to respect ignored files during maintenance tasks.
- Implemented auto-discovery of CMake libraries marked for auto-maintenance, improving the automation of source list updates.
- Introduced functions for extracting includes and symbols from source files to suggest missing headers based on usage.
- Updated README to reflect new features and usage instructions.

Benefits:
- Streamlines the build process by automating maintenance tasks and ensuring proper header management.
- Enhances code organization and maintainability by integrating with existing project structures.
2025-10-13 12:18:10 -04:00
scawful
02e9d3ba77 refactor(gfx): update include paths for graphics headers
- Changed include paths for SNES color and palette headers to reflect new organization under the 'types' and 'util' directories.
- Ensured consistency in include paths across the graphics subsystem.

Benefits:
- Improves code organization and maintainability by adhering to the updated project structure.
2025-10-13 12:06:31 -04:00
scawful
6edfedff18 chore(ci): update CMake configuration for Linux and macOS builds
- Modified CI configuration to use the D-Bus portal for file dialogs on Linux for improved reliability.
- Updated CMake commands in both CI and release workflows to include the NFD_PORTAL option.
- Removed OpenSSL from vcpkg.json to streamline dependencies.

Benefits:
- Enhances build reliability across different platforms.
- Simplifies dependency management in the project.
2025-10-13 10:29:47 -04:00
scawful
58f3213c62 refactor(gui): reorganize GUI includes and introduce new components
- Updated include paths for various GUI-related headers to improve organization and clarity.
- Introduced new components for better modularity, including PaletteEditorWidget and EditorCardManager.
- Refactored existing code to utilize the new components, ensuring consistency across the GUI subsystem.

Benefits:
- Enhances maintainability and readability of the GUI code.
- Facilitates future enhancements and optimizations within the GUI subsystem.
2025-10-13 10:21:03 -04:00
scawful
6374da6194 refactor(gfx): reorganize graphics includes and introduce new types
- Updated include paths for various graphics-related headers to improve organization and clarity.
- Introduced new types for SNES color, palette, and tile management, enhancing the structure of the graphics subsystem.
- Refactored existing code to utilize the new types, ensuring consistency across the codebase.

Benefits:
- Improves maintainability and readability of the graphics code.
- Facilitates future enhancements and optimizations within the graphics subsystem.
2025-10-13 00:09:34 -04:00
scawful
c0d410d7f0 fix(ci): disable OpenSSL assembly optimizations in CI configuration 2025-10-12 22:41:36 -04:00
scawful
2b107d9cd7 feat(palette): integrate PaletteManager for centralized color management in DungeonEditorV2 2025-10-12 22:40:23 -04:00
scawful
86f85a6afe refactor(cli): streamline command handling by removing unused methods and simplifying session configuration 2025-10-12 22:37:31 -04:00
scawful
0e6935cf5f chore: update submodule references for SDL and imgui 2025-10-12 22:15:52 -04:00
scawful
71ab3f4f40 fix(ci): correct environment variable reference for CMake build type 2025-10-12 22:15:25 -04:00
scawful
dc9b9d5d10 move zelda3 directory to src from app 2025-10-12 22:01:52 -04:00
scawful
9c89ad5843 feat(palette): implement centralized PaletteManager for improved color management
- Introduced PaletteManager to handle all palette-related operations, including color modifications, undo/redo functionality, and batch processing.
- Updated PaletteEditor and PaletteGroupCard to utilize PaletteManager for managing palette states and modifications, streamlining the editing process.
- Enhanced user interface with confirmation popups for discard actions and error notifications for save failures.

Benefits:
- Centralizes palette management, improving consistency and reducing code duplication across editors.
- Enhances user experience by providing clear feedback on unsaved changes and simplifying color operations.
2025-10-12 21:42:13 -04:00
scawful
19cc46614a feat(editor): enhance card management
- Implemented initialization for music-related editor cards, including Music Tracker and Instrument Editor, with appropriate registration and default visibility settings.
- Updated MusicEditor to manage card visibility dynamically and added methods for drawing specific editor views.
- Improved EditorCardManager to handle recent category tracking, enhancing user navigation through editor categories.

Benefits:
- Streamlines access to music editing tools, improving user experience and workflow efficiency within the editor environment.
2025-10-12 21:12:20 -04:00
scawful
a2e219c33b refactor(editor): improve visibility management for card-based editors
- Updated EditorManager to pass visibility flags directly to memory and assembly editors, enhancing the responsiveness of the editor interface.
- Simplified visibility checks by retrieving flags from the EditorCardManager, ensuring accurate updates based on user interactions.

Benefits:
- Streamlines the editor update process, improving user experience by ensuring editors reflect their visibility state accurately.
2025-10-12 20:52:37 -04:00
scawful
e5aff24bfc feat(editor): enhance card-based editor functionality and streamline initialization
- Updated EditorManager to support new card-based editors, including Emulator, Hex, and Assembly editors.
- Added centralized registration of editor cards with EditorCardManager, improving visibility management.
- Implemented methods to retrieve editor types from categories and manage card visibility dynamically.
- Enhanced initialization processes for various editors to ensure proper card registration and default visibility settings.

Benefits:
- Improved user experience by organizing editor cards and providing quick access to new editor functionalities.
- Streamlined editor management, making it easier to switch between different editing contexts and enhancing overall workflow efficiency.
2025-10-12 20:43:42 -04:00
scawful
bdb2d1ed14 fix(ci): remove unnecessary build configuration flag in CI and release workflows
- Simplified CMake build commands in CI and release workflows by removing the redundant `--config ${{ env.BUILD_TYPE }}` flag.
- Updated test commands to eliminate the build configuration flag, streamlining the testing process.

Benefits:
- Enhances clarity and reduces potential confusion in build and test commands, improving overall workflow efficiency.
2025-10-12 17:39:40 -04:00
scawful
3fbf316dba feat(ci): add NASM installation for Windows in CI and release workflows
- Implemented steps to install NASM on Windows runners, required for BoringSSL in gRPC.
- Updated PATH for NASM to ensure it is accessible during the build process.
- Enhanced dependency retry logic to include NASM installation.

Benefits:
- Ensures proper setup for Windows builds, improving compatibility with gRPC requirements.
2025-10-12 12:45:16 -04:00
scawful
8bb58c71ba refactor(editor): centralize sidebar management for card-based editors
- Updated EditorManager to handle sidebar drawing for card-based editors, improving consistency across editor types.
- Removed individual toolbar implementations from GraphicsEditor, ScreenEditor, and SpriteEditor, as sidebar functionality is now centralized.
- Enhanced EditorCardManager to manage card visibility and selection more effectively, including improved UI feedback for empty card categories.

Benefits:
- Streamlined editor interface and improved user experience by consolidating sidebar management, making it easier to navigate and manage editor cards.
2025-10-12 12:40:29 -04:00
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
312522d709 feat(editor): enhance EditorManager with card-based editor functionality
- Introduced methods to determine if an editor is card-based and to retrieve its category.
- Implemented a sidebar toggle shortcut (Ctrl+B) for managing card visibility.
- Added functionality to hide current editor cards when switching editors.
- Updated editor initialization to register global shortcuts for activating specific editors.
- Enhanced the Update method to draw a sidebar for the current category editor.

Benefits:
- Improved user experience by organizing editor cards and providing quick access to editor categories.
- Streamlined editor management, making it easier to switch between different editing contexts.
2025-10-12 11:57:39 -04:00
scawful
b7f78008b7 feat(ci): update CI and release workflows to use Clang on Windows
- Changed the compiler configuration for Windows jobs in CI and release workflows from MSVC to Clang.
- Updated CMake commands to utilize the Ninja generator and set the C and C++ compilers dynamically based on the matrix configuration.
- Simplified artifact paths in the packaging steps to reflect the new build structure.

Benefits:
- Improved compatibility and performance by leveraging Clang for Windows builds, enhancing cross-platform consistency.
2025-10-12 09:45:07 -04:00
scawful
bc09ee05c8 feat(docs): add comprehensive AI agent architecture and debugging guides
- Introduced a new document detailing the architecture of the z3ed AI agent system, covering features like learned knowledge, TODO management, and advanced routing.
- Added a debugging guide for the AI agent, outlining the gRPC-based debugging service, available tools, and practical debugging workflows.
- Updated existing documentation to reflect recent improvements in the emulator's audio system and overall debugging capabilities.

Benefits:
- Provides clear guidance for developers on the AI agent's architecture and debugging processes, enhancing usability and understanding of the system.
- Facilitates faster onboarding and better collaboration by offering structured documentation and real-world examples.
2025-10-12 08:45:23 -04:00
scawful
4fe23b9af2 feat(editor): reorganize palette editor structure and enhance linking
- Moved palette_editor and palette_group_card files to a dedicated palette directory for better organization.
- Updated CMake configuration to link the new palette editor files and added support for the yaze_agent library when not in minimal build.
- Refactored include paths in various editor files to reflect the new structure, ensuring proper linkage and modularity.

Benefits:
- Improved code organization and maintainability by grouping related files.
- Enhanced functionality with the integration of AI features through the yaze_agent library.
2025-10-12 08:05:56 -04:00
scawful
ea9e8d2498 feat(ci): improve build parallelization in CI and release workflows
- Updated CI and release workflows to determine the number of parallel jobs based on available CPU cores, enhancing build efficiency.
- Added checks for `nproc` and `sysctl` commands to dynamically set the core count, defaulting to 2 if neither is available.
- Improved logging to indicate the number of parallel jobs being used during the build process.

Benefits:
- Optimized build performance by utilizing available resources more effectively, leading to faster build times.
2025-10-12 07:43:43 -04:00
scawful
febb3604fe feat(ci): enhance CI workflows with disk space management and improved build logging
- Added a step to free disk space on Linux runners, removing unnecessary software and displaying disk usage before and after cleanup.
- Improved build logging by adding status messages indicating the build configuration and the number of parallel jobs used.
- Updated test suite execution messages for better clarity during CI runs.

Benefits:
- Optimized CI resource usage and improved visibility into the build process, aiding in troubleshooting and efficiency.
2025-10-12 07:26:23 -04:00
scawful
d40ac3372f feat(cmake): enhance OpenSSL linking and whole-archive options for Windows
- Updated CMake configurations to conditionally link OpenSSL only when gRPC is not enabled, preventing duplicate symbol errors.
- Added support for whole-archive linking of protobuf on Windows across core, net, agent, and z3ed components to ensure all symbols are included.
- Improved status messages to reflect the use of gRPC's OpenSSL when applicable.

Benefits:
- Enhanced compatibility and stability of the build process across different platforms and configurations.
2025-10-12 07:16:47 -04:00
scawful
42197eb71f feat(cli): expand agent command handling with new test and conversation features
- Added new source files for test commands and conversation tests to the agent's command handling structure.
- Removed the obsolete GUI command handler, redirecting users to the command registry for GUI automation commands.

Benefits:
- Enhanced testing capabilities and modularity within the agent's command management, facilitating future feature additions.
2025-10-12 02:08:37 -04:00
scawful
45e669ce7a feat(cli): enhance agent with FTXUI components for improved UI
- Added FTXUI components (screen, dom, component) to the agent's CMake configuration, enabling advanced UI capabilities.
- Removed unnecessary include statement from general_commands.cc to streamline the code.

Benefits:
- Improved modularity and extensibility of the agent's UI features, facilitating future enhancements.
2025-10-12 02:04:56 -04:00
scawful
b7e9ff1f21 feat(cli): add general commands handler to agent
- Introduced a new source file for general commands in the agent's command handling structure.
- This addition enhances the command management capabilities of the CLI, allowing for more comprehensive command processing.

Benefits:
- Improved modularity and extensibility of command handling within the agent, facilitating future feature additions.
2025-10-12 02:01:46 -04:00
scawful
2735c47940 refactor(gui): reorder include statements and streamline StatusType definition
- Rearranged the order of include statements in themed_widgets.h for better organization and readability.
- Simplified the definition of StatusType by removing redundant braces, enhancing clarity in the code structure.
- Adjusted formatting in function declarations for consistency.

Benefits:
- Improved code maintainability and readability through better organization and formatting.
2025-10-12 01:59:48 -04:00
scawful
102cd76017 refactor(music): update include path for Hyrule Magic
- Changed the include path for Hyrule Magic from "app/zelda3/hyrule_magic.h" to "util/hyrule_magic.h" in tracker.cc.
- This adjustment improves the modularity of the codebase by aligning the include structure with the new organization of utility headers.
2025-10-12 01:56:43 -04:00
scawful
5dc54e5a73 chore(docs): update build presets and agent guide for clarity and new features
- Removed the DYAZE_USE_MODULAR_BUILD option from build presets documentation.
- Updated the agent guide to reflect the recent completion of version 0.2.2-alpha, highlighting new emulator debugging infrastructure and its benefits for AI agents.
- Enhanced the CLI help output to include a more structured command summary and improved descriptions for better user understanding.
2025-10-12 01:51:50 -04:00
scawful
2ccd49f9e6 refactor(cli): migrate command management to CommandRegistry
- Replaced direct command handling in ModernCLI with a centralized CommandRegistry singleton.
- Removed SetupCommands method and associated command handler logic, simplifying command execution and registration.
- Updated ShowHelp and ShowCommandSummary methods to utilize CommandRegistry for fetching command metadata and descriptions.

Benefits:
- Streamlined command management, enhancing maintainability and clarity in the CLI structure.
- Improved command registration and execution consistency through a unified registry approach.
2025-10-12 01:41:24 -04:00
scawful
55a28661af feat(editor): implement enhanced hierarchical WhichKey navigation
- Introduced a new hierarchical WhichKey feature that allows users to navigate commands using a Spacemacs-style interface.
- Added functionality for breadcrumb navigation and auto-close after a specified duration.
- Implemented keyboard input handling for prefix keys to enter submenus or execute commands.
- Updated the CommandManager header to include new methods and state variables for managing WhichKey navigation.

Benefits:
- Improved user experience by providing a more intuitive command navigation system.
- Enhanced accessibility of commands through visual grouping and structured navigation.
2025-10-12 01:41:12 -04:00
scawful
ecf797d633 feat(agent): implement advanced debugging features in EmulatorService
- Added methods for managing breakpoints, including adding, removing, listing, and enabling/disabling breakpoints.
- Introduced watchpoint management methods, although integration is pending.
- Implemented execution control features such as stepping through instructions and running to breakpoints.
- Enhanced disassembly capabilities to retrieve and display instruction details from memory.
- Updated header file to include new debugging functionalities, ensuring clarity and modularity.

Benefits:
- Improved debugging capabilities for the emulator, facilitating better development and testing workflows.
- Enhanced user experience by providing detailed control over execution and memory analysis.
2025-10-12 01:41:02 -04:00
scawful
b3005b8a2b refactor(gui): reorganize background rendering and layout helpers
- Moved background rendering functionality from the editor to a dedicated GUI module, enhancing modularity and separation of concerns.
- Introduced layout helpers for consistent theme-aware sizing across the GUI, improving UI consistency and maintainability.
- Updated CMake configuration to reflect the new structure, ensuring proper linkage of the background renderer and layout helpers.

Benefits:
- Improved organization of GUI components, facilitating easier updates and enhancements.
- Enhanced user interface consistency through theme-aware layout management.
2025-10-12 01:40:46 -04:00
scawful
f4d8ade66d feat(agent): integrate advanced features for enhanced conversational context
- Added support for advanced features in the ConversationalAgentService, including learned knowledge and TODO management, conditional on Z3ED_AI being enabled.
- Implemented methods for injecting learned context and pretraining prompts into user messages, enhancing the conversational experience.
- Updated header files to include necessary components for advanced features, ensuring modularity and clarity in the service's capabilities.

Benefits:
- Improved user interaction by providing contextually relevant responses.
- Enhanced maintainability and extensibility of the agent's functionality.
2025-10-12 01:23:15 -04:00
scawful
7063294c9d refactor(cmake): enhance test linking for editor with additional support libraries
- Updated CMake configuration to conditionally link the yaze_test_support library when tests are enabled, alongside the existing ImGuiTestEngine.
- Improved status messages to provide clearer feedback on linked libraries during the build process.

Benefits:
- Enhanced testing capabilities for the editor by integrating additional support libraries.
- Improved clarity in build output regarding linked test infrastructure.
2025-10-12 00:31:29 -04:00
scawful
0808c52788 refactor(audio): enhance audio buffering and interpolation methods
- Updated audio buffering strategy to ensure smooth playback by always queuing samples and implementing dynamic rate control.
- Introduced Hermite interpolation for audio resampling, providing better quality than linear interpolation.
- Adjusted audio debug logging for improved monitoring of audio states and buffer management.

Benefits:
- Improved audio playback quality and reduced glitches.
- Enhanced clarity in audio debugging and monitoring processes.
2025-10-11 23:47:17 -04:00
scawful
be4d30b208 refactor(editor): remove MenuManager class and its associated files
- Deleted the MenuManager class implementation and header files from the project.
- Updated CMake configuration to reflect the removal of MenuManager, simplifying the editor's UI management.

Benefits:
- Reduced code complexity by eliminating unused components.
- Improved maintainability of the editor's UI structure.
2025-10-11 23:34:02 -04:00
scawful
c54a7dfa8d refactor(cmake): update test configuration for GUI targets
- Removed experimental test option and modular build option from CMakeLists.txt to simplify configuration.
- Added a definition for YAZE_GUI_TEST_TARGET in the test CMakeLists.txt to mark GUI test targets.
- Updated yaze_test.cc to conditionally register E2E tests only for GUI test targets, enhancing clarity in test registration.

Benefits:
- Streamlined CMake configuration for testing.
- Improved organization of test registration logic for GUI targets.
2025-10-11 23:05:04 -04:00
scawful
47cd835e31 refactor(cmake): streamline GUI test suite configuration
- Updated CMakeLists.txt to always include GUI test sources when tests are built, removing the conditional check for YAZE_ENABLE_UI_TESTS.
- Added a headless test entry for the entire GUI suite, ensuring consistent execution without a GUI.

Benefits:
- Simplified configuration for GUI tests, enhancing clarity and usability.
- Improved test execution flexibility by allowing headless operation.
2025-10-11 22:02:47 -04:00
scawful
8da0cc40ef chore(ci, release): enable tests for full builds and clarify build configurations
- Updated CI and release workflows to enable tests during full builds, ensuring comprehensive testing before releases.
- Added notes to clarify that the builds match release configurations and included a summary of features enabled in the build.
- Improved status messages for better visibility of build configurations and features.

Benefits:
- Enhanced testing coverage for pre-1.0 releases.
- Improved clarity in build configurations and feature availability.
2025-10-11 21:50:30 -04:00
scawful
d91dddfbe0 refactor(cmake): simplify ImGui test engine integration and feature flags
- Updated CMake configuration to always include the ImGui Test Engine when tests are enabled, removing conditional checks for UI tests.
- Simplified feature flag management by enabling JSON and gRPC by default, with a minimal build option to disable only the most expensive features.
- Enhanced status messages to provide clearer feedback on build configurations and feature availability.

Benefits:
- Streamlined integration of the ImGui Test Engine for testing purposes.
- Improved clarity in feature flag settings, making it easier to manage build configurations.
2025-10-11 21:44:01 -04:00
scawful
4358603874 feat(tests): conditionally include ImGui test engine functionality
- Added conditional compilation for ImGui test engine features in `test_utils.cc` and `test_utils.h`, enabling the loading of ROMs and opening of editors only when the YAZE_ENABLE_IMGUI_TEST_ENGINE flag is set.
- Improved modularity by managing includes based on feature flags, enhancing the flexibility of the testing framework.

Benefits:
- Streamlined testing process for ImGui-related functionalities.
- Enhanced code organization by isolating ImGui test engine dependencies.
2025-10-11 15:19:12 -04:00
scawful
8a2b3e3767 feat(tests): add ImGui test speed options to TestConfig and command line parsing
- Updated TestConfig to include ImGui test speed options, conditionally compiled based on the YAZE_ENABLE_IMGUI_TEST_ENGINE flag.
- Enhanced command line argument parsing to support new test speed options: --fast, --normal, and --cinematic, improving flexibility for UI testing.

Benefits:
- Improved configurability for testing scenarios involving ImGui.
- Enhanced user experience by allowing more granular control over test execution speed.
2025-10-11 15:01:06 -04:00
scawful
c809738f8b feat(cmake): enable export of compile commands for LSP support
- Added option to export compile commands for clangd and other Language Server Protocol (LSP) tools by setting CMAKE_EXPORT_COMPILE_COMMANDS to ON in CMake.
- Updated yaze_test.cc to conditionally include ImGui test engine headers based on the YAZE_ENABLE_IMGUI_TEST_ENGINE flag, improving modularity and organization.

Benefits:
- Enhanced development experience with better integration of LSP tools.
- Improved code organization by managing includes based on feature flags.
2025-10-11 14:57:11 -04:00