Commit Graph

3264 Commits

Author SHA1 Message Date
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
scawful
85e6fb5a83 fix(ci): specify MSVC linker in CI and release workflows
- Added `-DCMAKE_LINKER=link.exe` to both CI and release workflows to ensure compatibility with MSVC, addressing issues with lld-link on protobuf resource files.

Benefits:
- Enhances build reliability on Windows by using the appropriate linker for MSVC, improving the overall CI and release process.
2025-10-13 20:07:10 -04:00
scawful
26faa7e0af feat(editor): enhance ScreenEditor with layer visibility controls and custom map loading/saving
- Added checkboxes for toggling visibility of title screen background layers (BG1 and BG2).
- Implemented a new method for rendering the composite view of the title screen.
- Introduced functionality for loading and saving custom maps from external binary files, enhancing user flexibility in map management.

Benefits:
- Improves user experience by allowing dynamic control over layer visibility during title screen editing.
- Expands the capabilities of the ScreenEditor with custom map handling, facilitating easier map modifications and sharing.
2025-10-13 18:01:12 -04:00
scawful
521df1f546 fix(editor): update message preview bitmap depth to 8-bit indexed format
- Changed the bitmap depth for message previews from 64 to 8 to support indexed palette mode.
- Updated logging to reflect the new depth in message preview creation.
- Enhanced Bitmap class with a new method to update surface pixels, ensuring proper pixel data handling in rendering.

Benefits:
- Improves compatibility with indexed palette formats in message rendering.
- Enhances the clarity of logging for bitmap creation processes.
2025-10-13 17:12:36 -04:00
scawful
668fdc8068 feat(gfx): enhance Bitmap class with palette management and metadata support
- Added methods for applying palettes based on metadata, allowing for flexible palette handling in different bitmap types.
- Introduced a new BitmapMetadata struct to track source format and palette requirements.
- Enhanced ApplyStoredPalette and SetPaletteWithTransparent methods for improved palette application and transparency handling.
- Updated SDL surface pixel management with a new UpdateSurfacePixels method for better pixel data handling.

Benefits:
- Improves the rendering capabilities of the Bitmap class by supporting various palette formats.
- Enhances user experience with more intuitive palette management in graphics operations.
2025-10-13 17:06:10 -04:00
scawful
1314d9daf9 feat(editor): implement overworld map editing features in ScreenEditor
- Added functionality for managing the overworld map, including loading, rendering, and saving map data for both Light and Dark Worlds.
- Introduced new canvas components for overworld map editing, allowing users to select and paint tiles directly onto the map.
- Enhanced the ScreenEditor with controls for tile flipping and palette selection, improving the user interface for overworld map management.

Benefits:
- Expands the capabilities of the ScreenEditor, providing users with tools to edit and manage the overworld map effectively.
- Improves user experience by enabling intuitive tile editing and visual feedback during map modifications.
2025-10-13 16:51:55 -04:00
scawful
965bb0946b fix(emu): link yaze_core_lib in emulator CMake configuration
- Added yaze_core_lib to the target_link_libraries for the yaze_emulator in emu_library.cmake, ensuring proper linkage of core functionalities.
- Updated Arena constructor to initialize background layers directly, improving clarity and performance.

Benefits:
- Enhances the emulator's build configuration by ensuring all necessary libraries are linked.
- Improves the initialization process in the Arena class for better resource management.
2025-10-13 15:58:53 -04:00
scawful
360406bd4c feat(editor): enhance screen editor with on-demand tilemap caching
- Implemented a new tilemap system for 8x8 tiles in the ScreenEditor, allowing for on-demand texture creation and caching of tiles.
- Combined multiple sheets into a single tilemap, improving memory efficiency and rendering performance.
- Updated tile drawing logic to extract and cache tiles from the atlas, ensuring textures are created only when needed.

Benefits:
- Enhances performance by reducing unnecessary texture creation.
- Improves user experience with faster tile rendering and management in the editor.
2025-10-13 15:37:32 -04:00
scawful
c95e5ac7ef refactor(editor): streamline ImGui card management across various editors
- Refactored multiple editor classes to ensure that ImGui::End() is always called after ImGui::Begin(), enhancing state management and preventing potential rendering issues.
- Updated the DungeonEditor, GraphicsEditor, ScreenEditor, MessageEditor, MusicEditor, and SpriteEditor to follow this pattern, improving code consistency and reliability.

Benefits:
- Improves the stability of the editor UI by ensuring proper handling of ImGui state.
- Enhances code readability and maintainability by standardizing the usage of ImGui functions across different editor components.
2025-10-13 15:14:01 -04:00
scawful
27aba01864 feat(editor): enhance screen editor with title screen and inventory item icon features
- Implemented title screen editing capabilities, including loading and rendering of title screen layers.
- Added inventory item icon management, allowing for the display and selection of item icons within the inventory menu.
- Updated the inventory creation process to ensure proper ROM loading and error handling.
- Introduced new canvas components for title screen and inventory item icons, improving the user interface for editing.

Benefits:
- Enhances the functionality of the screen editor, providing users with tools to edit title screens and manage inventory icons effectively.
- Improves user experience by ensuring robust error handling and visual feedback during inventory management.
2025-10-13 14:28:17 -04:00
scawful
a582210fa8 feat(emu): implement SDL audio stream support in emulator
- Added functionality to enable SDL audio streaming in the Emulator class, allowing for improved audio handling.
- Introduced environment variable checks to configure audio streaming on initialization.
- Updated audio backend to support native audio frame queuing and resampling, enhancing audio performance and flexibility.

Benefits:
- Enhances audio playback quality and responsiveness in the emulator.
- Provides users with the option to utilize SDL audio streaming for better audio management.
2025-10-13 14:26:33 -04:00
scawful
cc427d037e fix(build): update protobuf linking for Windows in CMake files
- Modified CMake configurations across multiple files to use `$<TARGET_FILE:libprotobuf>` for whole-archive linking on Windows, ensuring all symbols are included correctly.
- This change enhances compatibility and reliability of the build process when using gRPC.

Benefits:
- Improves build stability on Windows platforms by ensuring proper linking of the protobuf library.
2025-10-13 14:26:06 -04:00
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