Commit Graph

3138 Commits

Author SHA1 Message Date
scawful
f09e8c0a58 refactor(ci): enhance Windows CI and release workflows
- Removed the installation step for Ninja, simplifying the setup process.
- Added a prefetch step for MSYS runtime to ensure necessary packages are available.
- Updated CMake configuration to use a more structured argument array, improving readability and maintainability.
- Enhanced build output handling to check multiple directories for the built artifacts, ensuring better feedback on the build process.

Benefits:
- Streamlines the CI and release workflows for Windows, leading to a more efficient build process.
- Improves clarity and maintainability of the configuration scripts.
2025-10-15 10:11:58 -04:00
scawful
107475196c refactor(editor): improve session management in EditorManager
- Refactored session management methods in EditorManager to enhance clarity and maintainability.
- Adjusted context handling for session switching and duplication, ensuring proper session IDs are set.
- Updated the editor dependencies to use IRenderer instead of Renderer, aligning with the new graphics interface.

Benefits:
- Streamlines session management logic, leading to a more organized codebase.
- Improves compatibility with future graphics enhancements by adopting the IRenderer interface.
2025-10-15 09:39:38 -04:00
scawful
931a6c0747 fix(ci): simplify Ninja installation for Windows in CI and release workflows
- Replaced the PowerShell script for installing Ninja with a Chocolatey command, streamlining the installation process.
- This change enhances reliability and reduces complexity in the setup for Windows environments.

Benefits:
- Improves the efficiency of the build setup on Windows by ensuring a straightforward installation method for Ninja.
2025-10-15 09:34:28 -04:00
scawful
d5a9c6432d refactor(editor): replace SessionCardRegistry with EditorCardRegistry
- Removed the SessionCardRegistry class and its associated methods, streamlining card management within the editor.
- Updated EditorManager to utilize EditorCardRegistry for card operations, enhancing session awareness and visibility control.
- Refactored related components to ensure compatibility with the new card management structure.

Benefits:
- Simplifies card management, leading to a more organized and efficient user experience.
- Improves maintainability by clearly defining roles for card handling and editor operations.
2025-10-15 09:30:37 -04:00
scawful
c82888cab0 feat(vcpkg): add SDL2, yaml-cpp, and zlib dependencies for Windows
- Introduced new dependencies for SDL2, yaml-cpp, and zlib in the vcpkg.json file, enhancing the project's capability to support additional features on Windows.
- Updated the SDL2 override to specify version 2.30.9, ensuring compatibility with the latest features.

Benefits:
- Expands the project's functionality by integrating essential libraries, improving overall performance and maintainability.
2025-10-15 09:26:17 -04:00
scawful
e071914e83 fix(ci): update Ninja version command in CI and release workflows
- Modified the Ninja version command in both CI and release workflows to ensure the correct environment path is set before executing the version check.
- This change enhances the reliability of the Ninja installation process on Windows.

Benefits:
- Improves the setup process for Windows environments by ensuring accurate feedback on the Ninja installation, leading to more efficient builds.
2025-10-15 09:13:20 -04:00
scawful
e992e70ad9 refactor(vcpkg): remove SDL2 dependency from vcpkg configuration
- Eliminated the SDL2 dependency from the vcpkg.json file, streamlining the project's dependency management.
- Removed the associated overrides for SDL2, simplifying the configuration.

Benefits:
- Reduces complexity in the dependency setup, leading to a more maintainable project structure.
2025-10-15 09:02:17 -04:00
scawful
37a33fe25f refactor(editor): streamline window management in EditorManager
- Removed redundant window management methods from EditorManager, reducing code bloat and improving maintainability.
- Inline delegation for window management functions has been implemented in the header file, enhancing performance and clarity.
- Updated MenuOrchestrator to include new commands for showing the command palette, memory editor, and resource label manager, improving user interaction.

Benefits:
- Simplifies the EditorManager class, leading to a more organized codebase.
- Enhances user experience by providing quick access to additional functionalities through the menu system.
2025-10-15 01:12:44 -04:00
scawful
a8ae108e8a feat(ci): update Ninja installation method for Windows in CI and release workflows
- Replaced the previous method of installing Ninja with a PowerShell script that downloads and extracts Ninja directly from the official release.
- This change ensures that the installation process is more reliable and provides immediate feedback if the installation fails.

Benefits:
- Enhances the setup process for Windows environments by ensuring Ninja is correctly installed, leading to improved build efficiency.
2025-10-15 01:09:33 -04:00
scawful
e2bee5b3ba feat(ci): add Ninja installation step for Windows in CI and release workflows
- Introduced a step to install Ninja for Windows runners in both CI and release workflows, enhancing build efficiency.
- This addition ensures that the necessary build tools are available for Windows environments, streamlining the setup process.

Benefits:
- Improves the build process on Windows by ensuring Ninja is installed, leading to faster and more reliable builds.
2025-10-15 01:06:44 -04:00
scawful
5502b5246a feat(editor): add hex editor and AI agent functionalities to MenuOrchestrator
- Implemented methods in EditorManager to show the hex editor, AI agent, and chat history, enhancing the editor's capabilities.
- Updated MenuOrchestrator to include new menu items for accessing the hex editor, AI agent, chat history, and other UI elements.
- Improved user interaction by providing quick access to essential features through keyboard shortcuts.

Benefits:
- Streamlines the user experience by integrating additional editor functionalities.
- Enhances the overall architecture by clearly defining roles for UI and editor operations within the MenuOrchestrator.
2025-10-15 01:01:21 -04:00
scawful
12480626f7 refactor(editor): enhance MenuOrchestrator with new UI controls and editor actions
- Expanded MenuOrchestrator to include additional UI visibility controls and editor action delegations, improving user interaction and functionality.
- Introduced methods for showing global search, performance dashboard, and ImGui metrics, along with editor actions like undo, redo, cut, copy, paste, and find.
- Updated the EditorManager to support new functionalities, including session management and layout presets.

Benefits:
- Streamlines user experience by providing quick access to essential features and enhancing the overall architecture of the editor.
- Improves maintainability by clearly defining roles for UI and editor operations within the MenuOrchestrator.
2025-10-15 00:50:35 -04:00
scawful
2250f03f7d refactor(editor): integrate EditorCardRegistry for card management
- Introduced EditorCardRegistry class to centralize card registration and management, enhancing session awareness and visibility control.
- Refactored EditorManager to delegate card-related operations to EditorCardRegistry, improving separation of concerns and maintainability.
- Updated CMake configuration to include new source files for the EditorCardRegistry component.

Benefits:
- Streamlines card management within the editor, leading to a more organized and efficient user experience.
- Enhances the overall architecture by clearly defining roles for card handling and editor operations.
2025-10-14 23:35:19 -04:00
scawful
9f41f8c2b8 refactor(editor): introduce UICoordinator for UI management
- Added UICoordinator class to centralize UI drawing operations and state management, improving separation of concerns within the editor.
- Refactored EditorManager to delegate UI-related tasks to UICoordinator, enhancing maintainability and clarity.
- Updated CMake configuration to include new source files for the UICoordinator component.

Benefits:
- Streamlines UI management, leading to a more organized and efficient user experience.
- Enhances the overall architecture by clearly defining roles for UI handling and editor operations.
2025-10-14 22:56:01 -04:00
scawful
0127913ff9 refactor(cmake): simplify Protobuf target handling in dependencies.cmake
- Refactored the logic for appending Protobuf targets to streamline the configuration.
- Removed unnecessary checks and consolidated target handling for improved clarity and maintainability.
- Introduced YAZE_PROTOBUF_WHOLEARCHIVE_TARGETS to facilitate linking without "lite" variants.

Benefits:
- Enhances the organization of CMake configurations, leading to a more efficient build process.
2025-10-14 22:53:14 -04:00
scawful
2f84879ca9 refactor(editor): introduce MenuOrchestrator for menu management
- Added MenuOrchestrator class to handle menu construction and coordination, improving separation of concerns within the editor.
- Refactored EditorManager to delegate menu-related tasks to MenuOrchestrator, enhancing maintainability and clarity.
- Updated CMake configuration to include new source files for the MenuOrchestrator component.

Benefits:
- Streamlines menu management, leading to a more organized and efficient user experience.
- Enhances the overall architecture by clearly defining roles for menu handling and editor operations.
2025-10-14 22:26:34 -04:00
scawful
0b72b56594 refactor(cmake): enhance Protobuf target handling for MSVC
- Introduced YAZE_PROTOBUF_WHOLEARCHIVE_TARGETS to streamline linking of Protobuf targets, excluding "lite" variants.
- Updated CMake configurations across various components (yaze, yaze_core_lib, yaze_editor, yaze_net, yaze_agent, z3ed) to utilize the new whole-archive targets for MSVC builds.
- Improved test suite linking to ensure all Protobuf symbols are included during the build process.

Benefits:
- Enhances compatibility and maintainability of Protobuf linking, leading to a more robust build configuration.
2025-10-14 22:22:00 -04:00
scawful
0113d78978 refactor(editor): extract editor management responsibilities into dedicated classes
- Introduced EditorRegistry, ProjectManager, and RomFileManager to streamline editor operations and improve code organization.
- Refactored EditorManager to delegate responsibilities to the new classes, enhancing maintainability and clarity.
- Updated CMake configuration to include new source files for the extracted components.

Benefits:
- Improves separation of concerns within the editor, leading to a more modular and manageable codebase.
- Enhances the overall architecture by clearly defining roles for editor management, project handling, and ROM file operations.
2025-10-14 22:01:07 -04:00
scawful
6dbc30c11f refactor: Introduced a SessionCardRegistry and WindowDelegate for better session management in the editor.
Benefits:
- Streamlines the build process by allowing for multiple Protobuf targets, enhancing compatibility and maintainability.
- Improves session management capabilities within the editor, leading to a more organized and efficient user experience.
- Enhance Protobuf target handling in CMake configuration
- Updated CMake files to support multiple Protobuf targets, improving flexibility in linking.
- Adjusted target link libraries across various components (yaze, yaze_core_lib, yaze_editor, etc.) to utilize the new
2025-10-14 20:30:25 -04:00
scawful
76a5ab3f39 refactor(ci): update Protobuf flags for improved build configuration
- Enhanced CI and release workflows by adding flags to disable RTTI and enforce copy-in swap for Protobuf, ensuring consistent C and C++ compilation settings.
- This update aims to improve build stability and compatibility across different environments.

Benefits:
- Streamlines the Protobuf configuration, leading to a more efficient and reliable CI process.
2025-10-14 17:51:46 -04:00
scawful
8ba1d68bad refactor(ci): streamline Protobuf and gRPC configuration in workflows
- Updated CI and release workflows to remove unnecessary Protobuf DLL flags and added gRPC plugin build options for better control over the build process.
- Ensured consistent C and C++ flags across both workflows, enhancing compatibility and reducing potential issues.

Benefits:
- Improves build clarity and stability by refining the configuration for Protobuf and gRPC, leading to a more efficient CI process.
2025-10-14 16:35:03 -04:00
scawful
ce36889338 refactor(ci): enhance Protobuf static linking in workflows
- Updated CI and release workflows to include additional flags for static linking of Protobuf, ensuring consistent C and C++ compilation flags.
- Added Protobuf import prefix and suffix options to improve library handling.

Benefits:
- Improves build stability and compatibility by leveraging static linking for Protobuf, enhancing overall CI performance.
2025-10-14 16:21:00 -04:00
scawful
38f145f977 refactor(gfx): reorganize source files in gfx_library.cmake
- Moved `app/gfx/resource/arena.cc` to the GFX_CORE_SRC section and added `app/gfx/render/background_buffer.cc` to the GFX_CORE_SRC section.
- Removed `app/gfx/render/background_buffer.cc` from the GFX_RENDER_SRC section to streamline dependencies.
- Updated target link libraries to ensure correct linking of GFX components.

Benefits:
- Improves organization of graphics source files, enhancing maintainability and clarity in the build configuration.
2025-10-14 15:46:06 -04:00
scawful
f315a73905 refactor(ci): update Protobuf configuration in workflows
- Modified CI and release workflows to use static linking for Protobuf by adding flags for static libraries and MSVC static runtime.
- Ensured consistent C and C++ flags across both workflows to improve compatibility and reduce potential issues.

Benefits:
- Enhances build stability and performance by leveraging static linking for Protobuf, leading to a more reliable CI process.
2025-10-14 15:44:49 -04:00
scawful
977ed78785 refactor(ci): update ccache setup in Windows workflows
- Modified the CI and release workflows to set up ccache directories for Windows, improving build performance.
- Ensured that the ccache environment variables are correctly initialized, enhancing caching efficiency.

Benefits:
- Streamlines the caching process in Windows environments, leading to faster build times and improved CI efficiency.
2025-10-14 13:40:32 -04:00
scawful
2b451fad95 feat(ci): add release metadata preparation step in workflow
- Introduced a new step to prepare release metadata, generating a formatted release name using the tag name.
- Updated the artifact naming to utilize the prepared release name for improved clarity in release outputs.

Benefits:
- Enhances the release workflow by ensuring consistent and informative naming for release artifacts, improving traceability.
2025-10-14 13:37:09 -04:00
scawful
477021f686 update release 2025-10-14 13:35:08 -04:00
scawful
a80fe71620 refactor(ci): update test result handling in CI workflows
- Replaced references to core and additional tests with stable and experimental tests in the CI configuration.
- Adjusted the logic for summarizing test outcomes to reflect the new test categories.
- Updated the paths for test result files to ensure accurate reporting.

Benefits:
- Improves clarity and accuracy in CI test reporting, aligning with the new test structure.
2025-10-14 13:32:24 -04:00
scawful
569a707b06 feat(ci): enhance artifact packaging in release workflow
- Added separate packaging steps for Windows, macOS, and Linux in the release workflow to improve clarity and maintainability.
- Implemented error handling for missing binaries and assets during the packaging process.
- Updated the macOS DMG creation to use a dynamic tag name for better versioning.

Benefits:
- Streamlines the artifact packaging process across different platforms, ensuring a more robust and user-friendly CI workflow.
2025-10-14 13:31:10 -04:00
scawful
24c8e7ac42 refactor(ci): adjust indentation in release workflow for clarity
- Modified the indentation of commands in the release workflow to improve readability and maintainability.
- Ensured consistent formatting for better alignment with coding standards.

Benefits:
- Enhances the clarity of the CI workflow, making it easier for contributors to understand and modify the build process.
2025-10-14 13:28:07 -04:00
scawful
e236ed93c3 refactor(ci): enhance caching and dependency management in workflows
- Added caching for ccache and CMake dependencies in CI and release workflows to improve build performance.
- Updated installation commands to include ccache across Linux, macOS, and Windows environments.
- Enhanced CMake configuration steps to utilize ccache for faster builds and added statistics reporting.

Benefits:
- Reduces build times and improves efficiency in CI processes, facilitating quicker feedback and integration.
2025-10-14 13:24:44 -04:00
scawful
a715912948 feat(tests): improve Ollama server management in agent test suite
- Enhanced the Ollama server startup process with additional logging for better diagnostics.
- Increased the maximum wait time for the server to start from 30 to 60 seconds for CI environments.
- Added checks to ensure the Ollama process remains alive during startup.
- Included a check for the availability of the curl command, which is required for health checks.

Benefits:
- Improves reliability and feedback during the Ollama server integration tests, facilitating easier troubleshooting.
2025-10-14 12:56:26 -04:00
scawful
8cdb1d6bbb feat(tests): enhance Ollama server integration in agent test suite
- Added functionality to start and manage the Ollama server within the agent test suite.
- Implemented checks for the availability of the Ollama model and provided user feedback for setup.
- Updated usage instructions to include environment variables for configuring the Ollama model.

Benefits:
- Improves the testing framework by allowing dynamic management of the Ollama server and model, enhancing test coverage and flexibility.
2025-10-14 12:25:04 -04:00
scawful
8b5429d84e refactor(ci): enable EMU, Z3ED, and tools builds in CI and release workflows
- Updated CI and release workflows to enable building the emulator (YAZE_BUILD_EMU), Z3ED (YAZE_BUILD_Z3ED), and additional tools (YAZE_BUILD_TOOLS).
- Ensured consistent build configurations across different platforms to enhance testing and deployment capabilities.

Benefits:
- Improves the completeness of builds in CI and release processes, facilitating better testing and integration of all components.
2025-10-14 12:23:23 -04:00
scawful
9dbba877c3 Update test discovery 2025-10-14 11:38:12 -04:00
scawful
e9e574cffc Forced gRPC’s bundled dependencies (protobuf + Abseil + gRPC itself) to honor the static MSVC runtime 2025-10-14 10:42:38 -04:00
scawful
f6c5ace099 refactor(editor): streamline menu item separator handling in EditorManager
- Adjusted the order of method calls in BuildModernMenu to improve readability and maintainability.
- Moved the separator method call to follow the item addition for better logical flow.

Benefits:
- Enhances code clarity and organization within the menu building logic of the EditorManager.
2025-10-14 09:43:54 -04:00
scawful
01d3e46e87 refactor(build): enhance CMake configurations for protobuf integration
- Updated CMake files to conditionally link against libprotobuf based on the YAZE_PROTOBUF_TARGET variable across various modules (core, net, agent, z3ed).
- Ensured consistent use of the static MSVC runtime to align with vcpkg static triplets.
- Improved clarity in build logs by adding status messages for whole-archive linking conditions.

Benefits:
- Enhances modularity and compatibility of the build system with protobuf.
- Streamlines the build process for different platforms by ensuring appropriate linking based on configuration options.
2025-10-14 09:01:12 -04:00
scawful
a026207a2d refactor(build): update CMake configurations and toolchain for macOS
- Modified CMake settings to ensure consistent use of the Homebrew LLVM/Clang installation on macOS.
- Added a new toolchain file to specify the correct compiler and header search paths, resolving potential conflicts.
- Updated CMake presets to enable the EMU build and set appropriate compiler flags.

Benefits:
- Enhances build reliability and compatibility on macOS by utilizing the Homebrew LLVM toolchain.
- Streamlines the build process with improved configuration management.
2025-10-14 01:06:35 -04:00
scawful
55f6ed93bc feat(build): align Windows static builds with vcpkg runtime settings
- Updated CMake configuration to align Windows static builds (MSVC, clang-cl) with vcpkg's /MT runtime.
- Added conditional linking for libprotobuf when YAZE_WITH_GRPC is enabled, enhancing modularity.
- Addressed potential macro conflicts by undefining SendMessage in the conversational agent service files.

Benefits:
- Improves compatibility and reliability of builds on Windows platforms.
- Enhances the flexibility of the build system by conditionally linking libraries based on configuration options.
2025-10-14 00:12:08 -04:00
scawful
cafa50b355 refactor(build): enhance MSVC whole-archive linking for protobuf
- Updated CMake configurations across core, net, agent, and z3ed to conditionally apply /WHOLEARCHIVE linking for libprotobuf based on the compiler ID.
- Added status messages to indicate when /WHOLEARCHIVE linking is skipped for clang-cl, improving clarity in build logs.

Benefits:
- Improves compatibility and clarity in the build process for Windows environments using different compilers.
- Ensures that necessary symbols are included when using MSVC, enhancing build reliability.
2025-10-13 23:11:06 -04:00
scawful
7bb0f257ce feat(ci): enhance Windows SDK checks in CI and release workflows
- Added checks to ensure Windows SDK environment variables are set, providing warnings if they are not.
- Included a step to verify the presence of kernel32.lib, improving diagnostics for Windows builds.

Benefits:
- Increases the robustness of the CI and release workflows by ensuring necessary SDK components are available.
- Enhances build reliability on Windows by proactively identifying potential issues with the SDK setup.
2025-10-13 22:21:04 -04:00
scawful
0c8353bb39 feat(ci): add MSVC developer environment initialization to CI and release workflows
- Introduced a new step to initialize the MSVC developer environment in both CI and release workflows for Windows.
- The step checks for the presence of VsDevCmd.bat and exports essential MSVC environment variables, enhancing build reliability.
- This addition improves the automation of the build process by ensuring the correct environment is set up for Visual Studio.

Benefits:
- Streamlines the setup process for Windows builds, reducing manual configuration.
- Increases the robustness of the CI and release workflows by ensuring necessary environment variables are consistently available.
2025-10-13 22:06:32 -04:00
scawful
8c18895ed7 feat(docs): add implementation status for Screen Editor
- Created a comprehensive document detailing the implementation status of the Screen Editor, including sections for Title Screen, Overworld Map, and Dungeon Map editors.
- Document outlines current statuses, functionalities, issues, and next steps for each editor, providing clarity on ongoing development efforts.
- Highlights critical issues with vanilla ROM tilemap loading and outlines priorities for future work.

Benefits:
- Enhances project documentation, aiding developers in understanding the current state and challenges of the Screen Editor.
- Serves as a reference for future development and troubleshooting efforts.
2025-10-13 21:43:00 -04:00
scawful
b51f754f52 feat(ci): add MSVC linker path computation to CI and release workflows
- Implemented a new step to compute the MSVC linker path using vswhere in both CI and release workflows.
- Enhanced the build process by dynamically setting the linker path based on the detected Visual Studio installation.
- Updated CMake configuration to utilize the computed linker path, improving compatibility and reliability on Windows.

Benefits:
- Increases build reliability by ensuring the correct MSVC linker is used, addressing potential issues with fallback options.
- Streamlines the CI and release processes by automating the detection of the appropriate linker path.
2025-10-13 21:42:46 -04:00
scawful
11cdf48909 feat(title_screen): implement composite bitmap rendering for title screen
- Added a new composite bitmap to render BG1 and BG2 layers with transparency.
- Enhanced the Create method to initialize the composite bitmap and set its metadata.
- Updated the LoadTitleScreen method to include the composite bitmap in texture creation.
- Introduced RenderCompositeLayer method to manage the layering of background graphics.

Benefits:
- Improves visual fidelity of the title screen by allowing both background layers to be rendered together.
- Enhances the flexibility of rendering options for the title screen, supporting dynamic visibility of layers.
2025-10-13 21:32:11 -04:00
scawful
bb398e829c fix(ci): improve vcpkg root detection in CI and release workflows
- Added checks to set the vcpkgRoot variable from environment variables RUNVCPKG_VCPKG_ROOT and VCPKG_ROOT if it is not already defined.
- Enhances the reliability of vcpkg setup by ensuring the correct root path is utilized during the build process.

Benefits:
- Increases robustness in CI and release workflows by providing fallback options for vcpkg root detection, improving build consistency.
2025-10-13 21:15:45 -04:00
scawful
0db2f37798 fix(ci): enhance vcpkg setup and toolchain caching in CI and release workflows
- Added a retry mechanism for vcpkg setup in both CI and release workflows to improve reliability on Windows.
- Implemented caching of the vcpkg toolchain path, ensuring that the correct toolchain file is used during the build process.
- Updated the CMake configuration to utilize the cached toolchain file, enhancing build consistency.

Benefits:
- Increases the robustness of the CI and release processes by handling vcpkg setup failures more gracefully.
- Ensures that the correct toolchain is always available, improving build reliability on Windows environments.
2025-10-13 21:00:37 -04:00
scawful
530b4e8f76 refactor(build): improve auto-discovery of GUI library sources in build_cleaner.py
- Enhanced the discover_cmake_libraries function to identify decomposed libraries and handle special cases for source variables.
- Updated gui_library.cmake to utilize auto-maintenance markers, streamlining the management of source lists for GUI components.
- Commented out hardcoded CMake source blocks, allowing for dynamic discovery of source files.

Benefits:
- Simplifies the maintenance of GUI library sources by automating updates and reducing manual configuration.
- Improves clarity and efficiency in the build process for GUI components.
2025-10-13 20:25:00 -04:00
scawful
99424fa2b2 refactor(build): enhance build_cleaner.py for auto-discovery of CMake libraries
- Updated the discover_cmake_libraries function to support new marker comments for auto-maintenance.
- Improved variable extraction logic to handle decomposed libraries and subdirectory detection.
- Removed hardcoded CMake source blocks in favor of auto-discovery, streamlining the management of graphics library sources.

Benefits:
- Simplifies the maintenance of CMake files by automating source list updates.
- Enhances build efficiency and clarity by reducing manual configuration requirements.
2025-10-13 20:09:48 -04:00